tree e3e1d89d26c53ac4618b9362787257cced8b5a55
parent 0a08ee92b443851cebd1a7d86ebc82fb89471f5f
parent 9cf4111cdf9420fa99792ae16c8de23242bb2e0b
author Meena Shanmugam <meenashanmugam@google.com> 1675293232 +0000
committer Meena Shanmugam <meenashanmugam@google.com> 1675293233 +0000

merge-upstream/v5.15.91 from branch/tag: upstream/v5.15.91 into branch: cos-5.15

Conflicts:
 kernel/exit.c

Changelog:
-------------------------------------------------------------

Adam Ford (1):
      arm64: dts: imx8mm-beacon: Fix ecspi2 pinmux

Alexander Gordeev (1):
      s390: expicitly align _edata and _end symbols on page boundary

Alexander Potapenko (1):
      affs: initialize fsdata in affs_truncate()

Alexey V. Vissarionov (1):
      scsi: hpsa: Fix allocation size for scsi_host_alloc()

Andre Przywara (1):
      r8152: add vendor/device ID pair for Microsoft Devkit

Andrew Halaney (1):
      net: stmmac: enable all safety features by default

Andy Shevchenko (1):
      pinctrl/rockchip: Use temporary variable for struct device

Archie Pusaka (1):
      Bluetooth: hci_sync: cancel cmd_timer if hci_open failed

Arnd Bergmann (2):
      drm/panfrost: fix GENERIC_ATOMIC64 dependency
      drm/i915/selftest: fix intel_selftest_modify_policy argument types

Ashish Mhetre (1):
      memory: tegra: Remove clients SID override programming

Bartosz Golaszewski (1):
      spi: spidev: remove debug messages that access spidev->spi without locking

Biju Das (1):
      ravb: Rename "no_ptp_cfg_active" and "ptp_cfg_active" variables

Caleb Connolly (1):
      net: ipa: disable ipa interrupt during suspend

Chancel Liu (1):
      ASoC: fsl_micfil: Correct the number of steps on SX controls

Chen Zhongjin (1):
      driver core: Fix test_async_probe_init saves device in wrong array

Chris Morgan (2):
      i2c: mv64xxx: Remove shutdown method from driver
      i2c: mv64xxx: Add atomic_xfer method to driver

Christoph Hellwig (1):
      block: fix and cleanup bio_check_ro

Christophe JAILLET (1):
      PM: AVS: qcom-cpr: Fix an error handling path in cpr_probe()

Chun-Tse Shao (1):
      kbuild: Allow kernel installation packaging to override pkg-config

Claudiu Beznea (1):
      ARM: dts: at91: sam9x60: fix the ddr clock for sam9x60

Colin Ian King (1):
      perf/x86/amd: fix potential integer overflow on shift of a int

Cong Wang (2):
      l2tp: convert l2tp_tunnel_list to idr
      l2tp: close all race conditions in l2tp_tunnel_register()

Cristian Marussi (2):
      firmware: arm_scmi: Harden shared memory access in fetch_response
      firmware: arm_scmi: Harden shared memory access in fetch_notification

Dan Carpenter (2):
      thermal/core: fix error code in __thermal_cooling_device_register()
      gpio: mxc: Unlock on error path in mxc_flip_edge()

Daniel Lezcano (2):
      thermal/core: Remove duplicate information when an error occurs
      thermal/core: Rename 'trips' to 'num_trips'

Dario Binacchi (1):
      ARM: imx: add missing of_node_put()

David Christensen (1):
      net/tg3: resolve deadlock in tg3_reset_task() during EEH

David Howells (1):
      cifs: Fix oops due to uncleared server->smbd_conn in reconnect

David Morley (1):
      tcp: fix rate_app_limited to default to 1

Dean Luick (5):
      IB/hfi1: Reject a zero-length user expected buffer
      IB/hfi1: Reserve user expected TIDs
      IB/hfi1: Fix expected receive setup error exit issues
      IB/hfi1: Immediately remove invalid memory from hardware
      IB/hfi1: Remove user expected buffer invalidate race

Deepak Sharma (1):
      x86: ACPI: cstate: Optimize C3 entry on AMD CPUs

Dmitry Torokhov (1):
      Revert "Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode"

Dongliang Mu (1):
      fs: reiserfs: remove useless new_opts in reiserfs_remount

Eric Dumazet (9):
      net/sched: sch_taprio: fix possible use-after-free
      l2tp: prevent lockdep issue in l2tp_tunnel_register()
      netlink: prevent potential spectre v1 gadgets
      netlink: annotate data races around nlk->portid
      netlink: annotate data races around dst_portid and dst_group
      netlink: annotate data races around sk_state
      ipv4: prevent potential spectre v1 gadget in ip_metrics_convert()
      ipv4: prevent potential spectre v1 gadget in fib_metrics_match()
      net/sched: sch_taprio: do not schedule in taprio_reset()

Eric Pilmore (1):
      ptdma: pt_core_execute_cmd() should use spinlock

Eric W. Biederman (2):
      exit: Add and use make_task_dead.
      objtool: Add a missing comma to avoid string concatenation

Esina Ekaterina (1):
      net: wan: Add checks for NULL for utdm in undo_uhdlc_init and unmap_si_regs

Fabio Estevam (4):
      arm64: dts: imx8mp-phycore-som: Remove invalid PMIC property
      ARM: dts: imx6ul-pico-dwarf: Use 'clock-frequency'
      ARM: dts: imx7d-pico: Use 'clock-frequency'
      ARM: dts: imx6qdl-gw560x: Remove incorrect 'uart-has-rtscts'

Gaosheng Cui (2):
      memory: atmel-sdramc: Fix missing clk_disable_unprepare in atmel_ramc_probe()
      memory: mvebu-devbus: Fix missing clk_disable_unprepare in mvebu_devbus_probe()

Geert Uytterhoeven (1):
      phy: phy-can-transceiver: Skip warning if no "max-bitrate"

Geetha sowjanya (1):
      octeontx2-pf: Avoid use of GFP_KERNEL in atomic context

Gergely Risko (1):
      ipv6: fix reachability confirmation with proxy_ndp

Giulio Benetti (1):
      ARM: 9280/1: mm: fix warning on phys_addr_t to void pointer assignment

Greg Kroah-Hartman (1):
      Linux 5.15.91

Haiyang Zhang (1):
      net: mana: Fix IRQ name - add PCI and queue number

Hamza Mahfooz (1):
      drm/amd/display: fix issues with driver unload

Hans de Goede (1):
      platform/x86: asus-nb-wmi: Add alternate mapping for KEY_SCREENLOCK

Harsh Jain (1):
      drm/amdgpu: complete gfxoff allow signal during suspend without delay

Heiko Carstens (1):
      KVM: s390: interrupt: use READ_ONCE() before cmpxchg()

Heiner Kallweit (2):
      net: mdio: validate parameter addr in mdiobus_get_phy()
      net: stmmac: fix invalid call to mdiobus_get_phy()

Hendrik Borghorst (1):
      KVM: x86/vmx: Do not skip segment attributes if unusable bit is set

Hui Tang (1):
      reset: uniphier-glue: Fix possible null-ptr-deref

Hui Wang (1):
      net: usb: cdc_ether: add support for Thales Cinterion PLS62-W modem

Ivo Borisov Shopov (1):
      tools: gpio: fix -c option of gpio-event-mon

Jakub Sitnicki (2):
      l2tp: Serialize access to sk_user_data with sk_callback_lock
      l2tp: Don't sleep and disable BH under writer-side sk_callback_lock

Jann Horn (1):
      exit: Put an upper limit on how often we can oops

Jason Wang (1):
      virtio-net: correctly enable callback during start_xmit

Jason Xing (1):
      tcp: avoid the lookup process failing to get sk in ehash table

Jayesh Choudhary (1):
      dmaengine: ti: k3-udma: Do conditional decrement of UDMA_CHAN_RT_PEER_BCNT_REG

Jeremy Kerr (1):
      net: mctp: mark socks as dead on unhash, prevent re-add

Jerome Brunet (1):
      net: mdio-mux-meson-g12a: force internal PHY off on mux switch

Jiasheng Jiang (1):
      HID: intel_ish-hid: Add check for ishtp_dma_tx_map

Jiri Kosina (1):
      HID: revert CHERRY_MOUSE_000C quirk

Jisoo Jang (1):
      net: nfc: Fix use-after-free in local_cleanup()

Johan Hovold (1):
      scsi: ufs: core: Fix devfreq deadlocks

Jonas Karlman (2):
      pinctrl: rockchip: fix reading pull type on rk3568
      pinctrl: rockchip: fix mux route data for rk3568

Kan Liang (2):
      perf/x86/msr: Add Emerald Rapids
      perf/x86/intel/uncore: Add Emerald Rapids

Kees Cook (9):
      firmware: coreboot: Check size of table entry and use flex-array
      panic: Separate sysctl logic from CONFIG_SMP
      exit: Expose "oops_count" to sysfs
      exit: Allow oops_limit to be disabled
      panic: Consolidate open-coded panic_on_warn checks
      panic: Introduce warn_limit
      panic: Expose "warn_count" to sysfs
      docs: Fix path paste-o for /sys/kernel/warn_count
      exit: Use READ_ONCE() for all oops/warn limit reads

Keith Busch (2):
      nvme-pci: fix timeout request state check
      nvme: fix passthrough csi check

Kevin Hao (3):
      octeontx2-pf: Fix the use of GFP_KERNEL in atomic context on rt
      cpufreq: Move to_gov_attr_set() to cpufreq.h
      cpufreq: governor: Use kobject release() method to free dbs_data

Koba Ko (1):
      dmaengine: Fix double increment of client_count in dma_chan_get()

Konrad Dybcio (4):
      arm64: dts: qcom: msm8992: Don't use sfpb mutex
      arm64: dts: qcom: msm8992-libra: Add CPU regulators
      arm64: dts: qcom: msm8992-libra: Fix the memory map
      cpufreq: Add SM6375 to cpufreq-dt-platdev blocklist

Kuniyuki Iwashima (1):
      netrom: Fix use-after-free of a listening socket.

Kurt Kanzenbach (1):
      net: stmmac: Fix queue statistics reading

Lareine Khawaly (1):
      i2c: designware: use casting of u64 in clock multiplication to avoid overflow

Liao Chang (1):
      riscv/kprobe: Fix instruction simulation of JALR

Linus Torvalds (1):
      treewide: fix up files incorrectly marked executable

Liu Shixin (1):
      dmaengine: xilinx_dma: call of_node_put() when breaking out of for_each_child_of_node()

Luis Gerhorst (1):
      bpf: Fix pointer-leak due to insufficient speculative store bypass mitigation

Manivannan Sadhasivam (2):
      EDAC/device: Respect any driver-supplied workqueue polling value
      EDAC/qcom: Do not pass llcc_driv_data as edac_device_ctl_info's pvt_info

Maor Dickman (1):
      net/mlx5: E-switch, Fix setting of reserved fields on MODIFY_SCHEDULING_ELEMENT

Marc Zyngier (1):
      KVM: arm64: GICv4.1: Fix race with doorbell on VPE activation/deactivation

Marcelo Ricardo Leitner (1):
      sctp: fail if no bound addresses can be used for a given scope

Marek Vasut (2):
      gpio: mxc: Protect GPIO irqchip RMW with bgpio spinlock
      gpio: mxc: Always set GPIOs used as interrupt source to INPUT mode

Marios Makassikis (1):
      ksmbd: do not sign response to session request for guest login

Mark Brown (2):
      ASoC: fsl_ssi: Rename AC'97 streams to avoid collisions with AC'97 CODEC
      ASoC: fsl-asoc-card: Fix naming of AC'97 CODEC widgets

Masahiro Yamada (1):
      tomoyo: fix broken dependency on *.conf.default

Mateusz Guzik (1):
      lockref: stop doing cpu_relax in the cmpxchg loop

Max Filippov (1):
      kcsan: test: don't put the expect array on the stack

Maxim Levitsky (1):
      KVM: SVM: fix tsc scaling cache logic

Miaoqian Lin (2):
      soc: imx8m: Fix incorrect check for of_clk_get_by_name()
      EDAC/highbank: Fix memory leak in highbank_mc_probe()

Michael Klein (1):
      platform/x86: touchscreen_dmi: Add info for the CSL Panther Tab HD

Miklos Szeredi (1):
      ovl: fail on invalid uid/gid mapping at copy up

Miles Chen (1):
      cpufreq: armada-37xx: stop using 0 as NULL pointer

Namjae Jeon (4):
      ksmbd: add smbd max io size parameter
      ksmbd: add max connections parameter
      ksmbd: downgrade ndr version error message to debug
      ksmbd: limit pdu length size according to connection status

Natalia Petrova (1):
      trace_events_hist: add check for return value of 'create_hist_field'

Nathan Chancellor (3):
      hexagon: Fix function name in die()
      h8300: Fix build errors from do_exit() to make_task_dead() transition
      csky: Fix function name in csky_alignment() and die()

Niklas Schnelle (1):
      s390/debug: add _ASM_S390_ prefix to header guard

Nirmoy Das (1):
      drm/i915: Remove unused variable

Pablo Neira Ayuso (2):
      netfilter: nft_set_rbtree: Switch to node list walk for overlap detection
      netfilter: nft_set_rbtree: skip elements in transaction from garbage collection

Paolo Abeni (1):
      net: fix UaF in netns ops registration error path

Patrick Thompson (1):
      drm: Add orientation quirk for Lenovo ideapad D330-10IGL

Paulo Alcantara (1):
      cifs: fix potential deadlock in cache_refresh_path()

Petr Pavlu (1):
      module: Don't wait for GOING modules

Philipp Zabel (1):
      reset: uniphier-glue: Use reset_control_bulk API

Pietro Borrello (3):
      HID: check empty report_list in hid_validate_values()
      HID: check empty report_list in bigben_probe()
      HID: betop: check shape of output reports

Rafael J. Wysocki (1):
      thermal: intel: int340x: Add locking to int340x_thermal_get_trip_type()

Rahul Rameshbabu (1):
      sch_htb: Avoid grafting on htb_destroy_class_offload when destroying htb

Raju Rangoju (2):
      amd-xgbe: TX Flow Ctrl Registers are h/w ver dependent
      amd-xgbe: Delay AN timeout during KR training

Rakesh Sankaranarayanan (1):
      net: dsa: microchip: ksz9477: port map correction in ALU table entry register

Randy Dunlap (3):
      phy: ti: fix Kconfig warning and operator precedence
      net: mlx5: eliminate anonymous module_init & module_exit
      ia64: make IA64_MCA_RECOVERY bool instead of tristate

Robert Hancock (1):
      net: macb: fix PTP TX timestamp failure due to packet padding

Sasha Levin (1):
      Revert "selftests/bpf: check null propagation only neither reg is PTR_TO_BTF_ID"

Schspa Shi (1):
      gpio: use raw spinlock for gpio chip shadowed data

Sebastian Reichel (1):
      pinctrl/rockchip: add error handling for pull/drive register getters

Shang XiaoJing (1):
      phy: rockchip-inno-usb2: Fix missing clk_disable_unprepare() in rockchip_usb2phy_power_on()

Srinivas Pandruvada (1):
      thermal: intel: int340x: Protect trip temperature from concurrent updates

Sriram Yagnaraman (2):
      netfilter: conntrack: fix vtag checks for ABORT/SHUTDOWN_COMPLETE
      netfilter: conntrack: unify established states for SCTP paths

Steven Rostedt (Google) (2):
      tracing: Make sure trace_printk() can output as soon as it can be used
      ftrace/scripts: Update the instructions for ftrace-bisect.sh

Sumit Gupta (1):
      cpufreq: Add Tegra234 to cpufreq-dt-platdev blocklist

Szymon Heidrich (2):
      wifi: rndis_wlan: Prevent buffer overflow in rndis_query_oid
      net: usb: sr9700: Handle negative len

Thomas Gleixner (1):
      x86/i8259: Mark legacy PIC interrupts with IRQ_LEVEL

Thomas Zimmermann (1):
      drm/i915: Allow switching away via vga-switcheroo if uninitialized

Tiezhu Yang (3):
      panic: unset panic_on_warn inside panic()
      ubsan: no need to unset panic_on_warn in ubsan_epilogue()
      kasan: no need to unset panic_on_warn in end_report()

Tim Harvey (1):
      arm64: dts: imx8mm-venice-gw7901: fix USB2 controller OC polarity

Udipto Goswami (2):
      usb: gadget: f_fs: Prevent race during ffs_ep0_queue_wait
      usb: gadget: f_fs: Ensure ep0req is dequeued before free_request

Viresh Kumar (2):
      thermal: Validate new state in cur_state_store()
      thermal: core: call put_device() only after device_register() fails

Vladimir Oltean (1):
      net: enetc: avoid deadlock in enetc_tx_onestep_tstamp()

Wenchao Hao (1):
      scsi: iscsi: Fix multiple iSCSI session unbind events sent to userspace

Willem de Bruijn (1):
      selftests/net: toeplitz: fix race on tpacket_v3 block close

Xiaoming Ni (1):
      sysctl: add a new register_sysctl_init() interface

Xingyuan Mo (1):
      NFSD: fix use-after-free in nfsd4_ssc_setup_dul()

Yang Yingliang (3):
      device property: fix of node refcount leak in fwnode_graph_get_next_endpoint()
      w1: fix deadloop in __w1_remove_master_device()
      w1: fix WARNING after calling w1_process()

Yihang Li (1):
      scsi: hisi_sas: Set a port invalid only if there are no devices attached when refreshing port id

Ying Hsu (1):
      Bluetooth: Fix possible deadlock in rfcomm_sk_state_change

Yonatan Nachum (1):
      RDMA/core: Fix ib block iterator counter overflow

Yoshihiro Shimoda (2):
      net: ravb: Fix lack of register setting after system resumed for Gen3
      net: ravb: Fix possible hang if RIS2_QFF1 happen

tangmeng (1):
      kernel/panic: move panic sysctls to its own file

BUG=b/267419756
TEST=tryjob, validation and K8s e2e
RELEASE_NOTE=Updated the Linux kernel to v5.15.91.

Change-Id: I1563d1e936eb8a11d7b3b4883dd0a6b8b09668df
Signed-off-by: Meena Shanmugam <meenashanmugam@google.com>
