Linux/linux 9d58691 — kernel reboot.c, kernel/printk printk.c nbcon.c

Merge tag 'printk-for-7.3-hotfix' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux

Pull printk fixes from Petr Mladek:

 - Switch NBCON consoles to the emergency mode in emergency_restart() to
   see messages even in this shutdown code path

 - Postpone the start of printk kthreads after smp_init(). It prevents
   boot stalls on some HW

 - Typo fix in a previous hot-fix patch

* tag 'printk-for-7.3-hotfix' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
  printk: Postpone kthread startup
  printk: fix kernel-doc name for nbcon_write_context_is_braille
  nbcon/reboot: Switch NBCON consoles into the emergency mode in emergency_restart()
DeltaFile
+9-0kernel/reboot.c
+2-1kernel/printk/nbcon.c
+1-1kernel/printk/printk.c
+12-23 files

Linux/linux e2c278b — kernel/trace undefsyms_base.c trace_snapshot.c

Merge tag 'trace-v7.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace

Pull tracing fixes from Steven Rostedt:

 - Fix NULL dereference when copying histogram field variable

   If event_hist_trigger_parse() creates an action that uses one of
   pseudo fields for its keys, the hist_data field element will have a
   NULL for its field member. When looking to match that key, the lookup
   uses key_field->field->name which will dereference a NULL pointer.
   Instead use the helper function that handles such cases:
   expr_field_str().

 - Take the trace_types_lock when dropping the buffer_meta reference

   The tracing_buffer_meta_open() error return drops the trace_array
   reference with __trace_array_put() instead of trace_array_put() where
   the former doesn't take the lock and the latter does.


    [142 lines not shown]
DeltaFile
+29-31kernel/trace/ring_buffer.c
+25-3kernel/trace/trace.c
+14-7kernel/trace/trace_events_hist.c
+4-5kernel/trace/trace_events_filter.c
+4-1kernel/trace/undefsyms_base.c
+4-1kernel/trace/trace_snapshot.c
+80-481 files not shown
+83-507 files

Linux/linux 2d2fe9f — kernel/trace trace_probe.c

Merge tag 'probes-fixes-v7.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace

Pull probes fix from Masami Hiramatsu:

 - error out if BTF is required but unavailable

   Fix to return an error instead of NULL if BTF is not available when
   user specify '$args*' meta fetch argument for probe events.

* tag 'probes-fixes-v7.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  tracing: probes: error if BTF is required but unavailable
DeltaFile
+1-2kernel/trace/trace_probe.c
+1-21 files

Linux/linux 54e1e89 — kernel reboot.c, kernel/printk printk.c nbcon.c

Merge branch 'for-7.3-hotfix' into for-linus
DeltaFile
+9-0kernel/reboot.c
+2-1kernel/printk/nbcon.c
+1-1kernel/printk/printk.c
+12-23 files

Linux/linux 70dd4ee — drivers/pinctrl pinctrl-amd.c, drivers/pinctrl/qcom pinctrl-nord.c pinctrl-maili.c

Merge tag 'pinctrl-v7.3-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl

Pull pin control fixes from Linus Walleij:

 - AMD: Clear S4 wake bits when firmware has _AEI, this is important for
   some AMD systems.

 - Do not accumulate sunxi npins across probe() attempts with deferred
   probe. (desc->npins just went ++ and ++...)

 - Qualcomm patch galore: split QUP functions on the Nord pin
   controller, fix an OF module alias on IPQ5210 so the module
   modprobes, fix two groups on the IPQ5018, make direction changes
   exclusive on the SPMI-GPIO, and fix the interrupt target width on
   four different SoCs.

* tag 'pinctrl-v7.3-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
  pinctrl: sunxi: dt: do not accumulate npins across probe attempts
  pinctrl: amd: Clear S4 wake bits when firmware has _AEI

    [10 lines not shown]
DeltaFile
+29-8drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
+10-10drivers/pinctrl/qcom/pinctrl-ipq5018.c
+9-0drivers/pinctrl/pinctrl-amd.c
+1-0drivers/pinctrl/qcom/pinctrl-nord.c
+1-0drivers/pinctrl/qcom/pinctrl-maili.c
+1-0drivers/pinctrl/qcom/pinctrl-hawi.c
+51-182 files not shown
+53-188 files

Linux/linux 7b441fe — drivers/power/sequencing pwrseq-qcom-wcn.c

Merge tag 'pwrseq-fixes-for-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull power sequencing fix from Bartosz Golaszewski:

 - with the PCIe code reworked to power the endpoint via pwrctl before
   it starts the link training, we can now remove the workaround for
   WLAN power which instead started causing an issue with endpoint
   enumeration

* tag 'pwrseq-fixes-for-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
  power: sequencing: qcom-wcn: power off WLAN at probe
DeltaFile
+1-15drivers/power/sequencing/pwrseq-qcom-wcn.c
+1-151 files

Linux/linux 586a28a — drivers/gpio gpio-nct6694.c gpiolib.c, tools/gpio Makefile

Merge tag 'gpio-fixes-for-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull gpio fixes from Bartosz Golaszewski:

 - gracefully handle unsupported fwnode-only, no-device GPIO lookup for
   shared pins

 - mark the GPIO controller as sleeping in gpio-nct6694

 - fix a GPIO device reference leak in kunit tests

 - fix memory leak in error path in gpiod_set_array_value_complex()

 - fix races in GPIO controller and its associated irqchip setup in
   gpio-mxc

 - use atomic bitops where races can occur in gpio-mxc

 - fix build failure in gpio tools

    [12 lines not shown]
DeltaFile
+22-14drivers/gpio/gpio-mxc.c
+14-5drivers/gpio/gpiolib-shared.c
+5-4drivers/gpio/gpiolib.c
+7-2drivers/gpio/gpiolib-kunit.c
+6-0tools/gpio/Makefile
+1-1drivers/gpio/gpio-nct6694.c
+55-266 files

Linux/linux 5f339c4 — kernel/printk printk.c

printk: Postpone kthread startup

There have been various bug reports related to SMP systems hanging
on boot. The reports vary but seem to have some overlap with regard
to missed IPI's during SMP setup. The reports also show that
reverting NBCON console usage allows the bugs to disappear.

The NBCON kthreads for console printing are started very early
during boot using early_initcall(). Since these kthreads are
asynchronously enabling/disabling interrupts during early boot, they
may be interfering with early SMP setup on some hardware platforms.

Starting the console printing kthreads later has shown to avoid the
hanging on systems that could previously reproduce the issue.

Postpone kthread starting until after all arch initcalls have
completed.

Reported-by: Derek Barbosa <debarbos at redhat.com>

    [6 lines not shown]
DeltaFile
+1-1kernel/printk/printk.c
+1-11 files

Linux/linux 1dbb742 — fs namei.c namespace.c, fs/autofs waitq.c

Merge tag 'vfs-7.3-rc8.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs fixes from Christian Brauner:

 - Fix a range of use-after-frees during rcu pathwalk caused by non-rcu
   frees.

   Whatever ->permission(), ->d_revalidate(), ->get_link(), ->d_hash()
   and ->d_compare() read in rcu mode has to be freed after a grace
   period. umount(2) hides most of it because namespace_unlock() waits
   for one, but a chdir() out of a lazily unmounted directory or the
   close() of the last file on it drops the last reference without.

    * ext4_get_link() reads the sbi and the extent status counters for a
      symlink stored in a data block. Both are freed after a grace
      period now.

    * The unicode map of casefolded ext4, f2fs and tmpfs was freed under
      generic_ci_d_hash() and generic_ci_d_compare().

    [96 lines not shown]
DeltaFile
+122-0tools/testing/selftests/filesystems/umount_propagation/locked_mount_test.c
+36-13fs/ntfs3/super.c
+23-10fs/namespace.c
+1-31fs/namei.c
+19-6fs/autofs/waitq.c
+17-4fs/unicode/utf8-core.c
+218-6428 files not shown
+325-9234 files

Linux/linux 519abe8 — . MAINTAINERS

MAINTAINERS: remove myself

After 14 years at Oracle and 23 years working on Linux, I've decided to
step back for a while.

Signed-off-by: "Darrick J. Wong" <djwong at kernel.org>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
DeltaFile
+0-1MAINTAINERS
+0-11 files

Linux/linux 9020135 — drivers/net/wireless/ath/ath9k wmi.h wmi.c

wifi: atk9k: Revert "wifi: ath9k: reject short WMI command responses"

This reverts commit 93ce8ea70451e800601bc9444aa33043de15d67b.

Mehmet reported that the offending commit breaks his AR9271 USB adapter
which uses zero-length replies to commands that don't return a value.
Revert the whole thing to restore the functionality.

Cc: stable at vger.kernel.org # the offending commit is in 6.12.113
Reported-by: Mehmet Fide <mehmet.fide at gmail.com>
Signed-off-by: Toke Høiland-Jørgensen <toke at toke.dk>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
DeltaFile
+2-14drivers/net/wireless/ath/ath9k/wmi.c
+0-1drivers/net/wireless/ath/ath9k/wmi.h
+2-152 files

Linux/linux 214897a — fs namei.c

Revert "namei: don't reveal overmounted entries in refwalk"

This reverts commit 8189ab688f5a2c745dc90b63374da02f213d6994.

This bug class is bigger than can be fixed with this simple patch.
Back out of it and give us some time to fix this properly.

Signed-off-by: Christian Brauner <brauner at kernel.org>
DeltaFile
+0-29fs/namei.c
+0-291 files

Linux/linux 2f2f7ee — arch/arm/boot/dts/ti/omap dra7xx-clocks.dtsi, arch/arm/configs sama5_defconfig

Merge tag 'soc-fixes-7.3-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull SoC fixes from Arnd Bergmann:
 "A small number of last minute bug fixes came up since LPC.
  Most of these are for devicetree files:

   - Tegra264 needs fan descriptions to keep the system from overheating

   - A cleanup on TI DRA7 caused a regression on PCI support and needs a
     fixup

   - The beaglev-fire board can no longer probe the mcp3564 sensor after
     a an inconsistent update in 7.1

   - A few fixes address compile time dtc warnings on tegra

  The other three patches are all addressing minor problems
  in tegra drivers and the sama5 defconfig"


    [10 lines not shown]
DeltaFile
+156-24arch/arm64/boot/dts/nvidia/tegra264.dtsi
+0-18arch/riscv/boot/dts/microchip/mpfs-beaglev-fire.dts
+13-0arch/arm64/boot/dts/nvidia/tegra264-p4071-0000+p3834.dtsi
+2-2arch/arm/configs/sama5_defconfig
+1-1drivers/soc/tegra/fuse/tegra-apbmisc.c
+1-1arch/arm/boot/dts/ti/omap/dra7xx-clocks.dtsi
+173-461 files not shown
+174-467 files

Linux/linux c47a7b1 — kernel/trace trace_events_filter.c

tracing: Check operator stack capacity before pushing

predicate_parse() uses the first operator stack entry before processing
any opening parentheses. A push then increments top before writing.
The existing check still permits that write when top already points to
the last allocated entry, which can access beyond the operator stack.

Reject the push when top reaches the last allocated entry.

Cc: stable at vger.kernel.org
Fixes: 39f7c41c908b ("tracing/filters: Enable filtering a cpumask field by another cpumask")
Link: https://patch.msgid.link/atELO9L0I9kg5CpC@Taeyangs-MacBook-Pro.local
Signed-off-by: Taeyang Lee <0wn at theori.io>
Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
DeltaFile
+1-1kernel/trace/trace_events_filter.c
+1-11 files

Linux/linux 803aa6f — kernel/trace trace_events_filter.c

tracing: Keep the predicate limit separate from program capacity

predicate_parse() adds two to nr_preds to reserve the terminal TRUE
and FALSE entries. It also uses that increased value as the limit for
parsed predicates. If the initial count is smaller than the number
actually parsed, the program can fill the allocation and subsequent
accesses can go past its end.

Keep nr_preds as the predicate limit and use a separate value for the
allocation size. This leaves space for both terminal entries and a
zeroed entry when parsing stops at the limit.

Cc: stable at vger.kernel.org
Fixes: 39f7c41c908b ("tracing/filters: Enable filtering a cpumask field by another cpumask")
Link: https://patch.msgid.link/atELCd1XjKVhrkFL@Taeyangs-MacBook-Pro.local
Signed-off-by: Taeyang Lee <0wn at theori.io>
Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
DeltaFile
+3-4kernel/trace/trace_events_filter.c
+3-41 files

Linux/linux 3cc1175 — kernel/trace trace.c

tracing: Fix crash in print_graph_function_event()

tracing_set_tracer() assigns the flags of the newly selected tracer
with:

        tr->current_trace_flags = t->flags ? : t->tracer->flags;

If the new tracer defines neither static flags nor default flags, like
hwlat, irqsoff or wakeup, add_tracer() has no per instance flags copy
for it, and both operands are NULL, so tr->current_trace_flags ends up
being NULL as well.

The ring buffer is not cleared when switching tracers: it is reset
inside tracer_init(), after current_trace_flags was already assigned.
If the buffer still holds function_graph entries of the previous
tracer, printing one of them dereferences the NULL pointer. This was
hit by cat trace during an ftrace stress test:

  BUG: kernel NULL pointer dereference, address: 0000000000000000

    [31 lines not shown]
DeltaFile
+18-2kernel/trace/trace.c
+18-21 files

Linux/linux 62f482f — drivers/iommu/amd init.c iommu.c, drivers/iommu/generic_pt/fmt Makefile

Merge tag 'iommu-fixes-v7.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux

Pull IOMMU fixes from Joerg Roedel:
 "AMD IOMMU:

   - Revert an interrupt remapping check removal that caused GPU
     regressions on some platforms

  Generic page tables:

   - Fix KUnit builds with distributed Clang ThinLTO by preserving
     compiler flags, preventing x86-64 code generation from arm64
     bitcode"

* tag 'iommu-fixes-v7.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux:
  iommupt/kunit: Use if_changed_rule for the kunit
  Revert "iommu/amd: Remove redundant check in irq_remapping_select()"
DeltaFile
+3-0drivers/iommu/amd/iommu.c
+3-0drivers/iommu/amd/amd_iommu_types.h
+1-1drivers/iommu/generic_pt/fmt/Makefile
+1-1drivers/iommu/amd/init.c
+8-24 files

Linux/linux 045958a — drivers/net/ethernet/broadcom/genet bcmgenet.c, net/netlink af_netlink.c

Merge tag 'net-7.3-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

Pull networking fixes from Paolo Abeni:
 "This is considerably smaller than in recent history, mostly due to
  reduced capacity and increased backlog. Also we actively redirected
  more stuff towards next. I'm not aware of any pending regression.

  Current release - regressions:

   - eth: move netops initialization to fix crash

  Previous releases - regressions:

   - sched: fix use-after-free in __tcf_action_put()

   - rds: fix uninitialized trans dereference in CM event handler

  Previous releases - always broken:


    [28 lines not shown]
DeltaFile
+33-5net/rds/rdma_transport.c
+21-12net/sctp/socket.c
+8-9net/vmw_vsock/af_vsock.c
+5-6net/sched/act_api.c
+7-3net/netlink/af_netlink.c
+10-0drivers/net/ethernet/broadcom/genet/bcmgenet.c
+84-3514 files not shown
+117-5120 files

Linux/linux 9aa622d — arch/x86/kernel kvm.c, arch/x86/kvm/vmx nested.c

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull kvm fixes from Paolo Bonzini:
 "Even more x86 fixes:

   - Avoid a false positive panic in the #PF handler, if the kernel
     triggers a page fault within the asynchronous page fault handler
     before the flags are reset.

     This can happen for example because of a perf NMI.

   - Always reset a vCPU's MMU pointer back to the root MMU when loading
     nested guest state fails during RSM or KVM_SET_NESTED_STATE.

     Otherwise KVM tries to run a non-nested guest with a nested MMU,
     which can result in a NULL pointer dereference attempting to get
     the nested MMU's pgd (EPTP or nested CR3)"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:

    [2 lines not shown]
DeltaFile
+29-3arch/x86/kernel/kvm.c
+3-1arch/x86/kvm/vmx/nested.c
+32-42 files

Linux/linux 6a66840 — . MAINTAINERS, arch/x86/hyperv hv_init.c

Merge tag 'hyperv-fixes-signed-20261015' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux

Pull Hyper-V fixes from Wei Liu:

 - Typo and comment fixes (Hemanth Selam, Jiangshan Yi)

 - Update maintainers list (Wei Liu, Long Li)

 - Two Hyper-V PCI driver fixes (Naman Jain, Sahil Chandna)

 - Small fixes for core Hyper-V code (Hardik Garg, Michael Kelley,
   Waiman Long)

* tag 'hyperv-fixes-signed-20261015' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
  MAINTAINERS: drop KY from Hyper-V maintainers list
  PCI: hv: Warn when wait_for_response() waits indefinitely
  PCI: hv: Probe vPCI buses asynchronously
  MAINTAINERS: remove myself from the Hyper-V entries
  mshv_vtl: Check per-CPU register page before mmap

    [6 lines not shown]
DeltaFile
+39-10drivers/pci/controller/pci-hyperv.c
+7-12drivers/hv/vmbus_drv.c
+9-3drivers/hv/channel_mgmt.c
+4-3arch/x86/hyperv/hv_init.c
+0-3MAINTAINERS
+3-0drivers/hv/mshv_vtl_main.c
+62-313 files not shown
+64-349 files

Linux/linux aa07285 — drivers/net/ethernet/stmicro/stmmac dwmac1000_core.c

net: stmmac: dwmac1000: clear the RGMII status interrupt

Since commit 2e2c878a3141 ("net: stmmac: remove SGMII/RGMII/SMII
interrupt handling") nothing on the RGMII path reads GMAC_RGSMIIIS, so
RGSMIIIS stays pending behind GMAC_INT_MASK from the first link change
on. stmmac_resume() resets the MAC in stmmac_hw_setup(); the reset sets
GMAC_INT_MASK to 0 until dwmac1000_core_init() writes the mask again,
and the pending status storms the line:

  dwmac_dma_interrupt: unexpected status 04000000

A register dump at the first message on ODROID-HC4 showed it:

  core int_status 00000001 int_mask 00000000 pmt 00000000 rgsmiiis 0000000d

When the resume thread runs on the CPU that takes the MAC interrupt,
the storm starves it: a soft lockup, then a watchdog reset or a hang.

Read GMAC_RGSMIIIS in dwmac1000_irq_status() when the status is not

    [15 lines not shown]
DeltaFile
+6-0drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
+6-01 files

Linux/linux a244c24 — kernel/trace trace_events_hist.c

tracing/histograms: Reject non-stacktrace fields for synthetic stacktrace fields

In check_synth_field(), when a synthetic event field is a stacktrace
(field->is_stack) and the histogram field is not a "long[" stacktrace
array, validation falls through to the generic size and signedness
comparison.

Because parse_synth_field() sets a stacktrace field's type to
"__data_loc unsigned long[]", its size is sizeof(u64) and
synth_field_signed() marks it as signed.  Consequently, any 8-byte
signed scalar histogram field passes the fallback check, and its scalar
value is subsequently dereferenced as a kernel stacktrace pointer in
get_field_size() and trace_stack().

Furthermore, checking strstr(hist_field->type, "long[") is insufficient
because tracepoint fields defined with __bitmask() or __rel_bitmask()
also have type "__data_loc unsigned long[]" or "__rel_loc unsigned
long[]", whilst create_hist_field() treats them as 4-byte scalar values
without HIST_FIELD_FL_STACKTRACE.

    [12 lines not shown]
DeltaFile
+11-4kernel/trace/trace_events_hist.c
+11-41 files

Linux/linux 13d530f — kernel/trace ring_buffer.c

ring-buffer: Use subbuf_order in available memory estimation

To avoid failing in the middle of an allocation of a ring-buffer,
__rb_allocate_pages() looks at the available memory estimation with
si_mem_available(). Use the subbuffer order with this estimation to fail
early if necessary for ring-buffers with an order > 0.

Link: https://patch.msgid.link/20261013102047.1488347-3-vdonnefort@google.com
Fixes: f9b94daa542a ("ring-buffer: Set new size of the ring buffer sub page")
Reviewed-by: Masami Hiramatsu (Google) <mhiramat at kernel.org>
Signed-off-by: Vincent Donnefort <vdonnefort at google.com>
Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
DeltaFile
+4-4kernel/trace/ring_buffer.c
+4-41 files

Linux/linux b7719c5 — drivers/gpio gpio-mxc.c

gpio: mxc: fix both_edges bit operations

gpio_set_irq_type() can be called concurrently for different pins on
the same port.  The IRQ core serializes per irq descriptor, but
different pins have different descriptors, so on SMP systems two
concurrent gpio_set_irq_type() calls for pins on the same port run
without mutual exclusion.

The read-modify-write of port->both_edges is performed outside the
port-wide scoped_guard(gpio_generic_lock_irqsave) section, so
concurrent updates for different pins can overwrite each other,
causing missed interrupts or stuck IRQ lines on dual-edge triggered
pins.

The original uniprocessor MXC SoCs were not affected; the race
became reachable on multi-core i.MX7 and i.MX8 SoCs that reuse this
driver.

Convert both_edges from u32 to unsigned long and use set_bit(),

    [9 lines not shown]
DeltaFile
+5-4drivers/gpio/gpio-mxc.c
+5-41 files

Linux/linux 170aeff — drivers/gpio gpio-mxc.c

gpio: mxc: fix wakeup_pads bit operations

gpio_set_wake_irq() can be called concurrently for different pins on
the same port. The writer-vs-writer race is the concern: two concurrent
gpio_set_wake_irq() calls for different pins on the same port both do
a non-atomic read-modify-write on the same wakeup_pads word. The old
|= and &= compile to separate load/modify/store instructions that can
interleave, losing one CPU's update.

assign_bit() uses an atomic RMW instruction, so concurrent writers to
different bits in the same word are safe.

The reader side (for_each_set_bit in noirq_suspend, wakeup_pads > 0)
runs in noirq context where no concurrent writer can execute, so
reader atomicity is not needed.

wakeup_pads is a u32, while assign_bit() operates on unsigned long
pointers. On 64-bit platforms, this causes an 8-byte read-modify-write
on a 4-byte field, corrupting the adjacent is_pad_wakeup. So change

    [13 lines not shown]
DeltaFile
+6-4drivers/gpio/gpio-mxc.c
+6-41 files

Linux/linux 205cccd — drivers/gpio gpio-mxc.c

gpio: mxc: fix race between gpiochip registration and IRQ domain setup

devm_gpiochip_add_data() makes the GPIO chip visible to consumers
immediately. Since the chip sets .to_irq = mxc_gpio_to_irq, which calls
irq_find_mapping(port->domain, offset), any to_irq() call between
gpiochip registration and IRQ domain creation will operate on a NULL
domain.

Fix by moving devm_gpiochip_add_data() after the IRQ domain and generic
irq chip are fully initialized, ensuring port->domain and the irq chip
handlers are ready before the chip becomes visible to consumers.

Fixes: d37a65bb4663 ("gpio/mxc: Move Freescale MXC gpio driver to drivers/gpio")
Signed-off-by: Peng Fan <peng.fan at nxp.com>
Reviewed-by: Linus Walleij <linusw at kernel.org>
Reviewed-by: Frank Li <Frank.Li at nxp.com>
Reviewed-by: Andy Shevchenko <andy at kernel.org>
Link: https://patch.msgid.link/20261013-gpio-mxc-cleanup-v7-4-c4d769587d3e@nxp.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski at oss.qualcomm.com>
DeltaFile
+9-4drivers/gpio/gpio-mxc.c
+9-41 files

Linux/linux 38d44f7 — drivers/gpio gpio-mxc.c

gpio: mxc: fix race between chained IRQ handler install and probe completion

mxc_update_irq_chained_handler() is called before the IRQ domain, the
generic IRQ chip, and the port list entry are set up. If an interrupt
arrives in that window:

 - mx3_gpio_irq_handler() calls generic_handle_domain_irq() with
   port->domain still NULL.
 - mx2_gpio_irq_handler() walks mxc_gpio_ports, but the port has not
   been added to the list yet.

Additionally, if any of the subsequent probe steps
(gpio_generic_chip_init(), devm_gpiochip_add_data(),
irq_domain_create_legacy(), or mxc_gpio_init_gc()) fail, the error
paths never unregister the chained handler, leaving a dangling handler
that points at freed memory.

Move the handler installation after all its dependencies are ready and
after list_add_tail(), so the handler is never live while the data

    [11 lines not shown]
DeltaFile
+2-2drivers/gpio/gpio-mxc.c
+2-21 files

Linux/linux c28846c — drivers/gpio gpiolib.c

gpiolib: fix memory leak in gpiod_set_array_value_complex() on error paths

A drive-by review by Sashiko reports that, after a failed call to
gpiochip_set_multiple(), gpiod_set_array_value() returns abruptly,
bypassing the freeing of possibly alloced bitmaps, potentially leaking
memory. It is an unlikely error path, but is possible.

Defer the return code check until after the bitmap_free() block.

Fixes: 9b407312755f ("gpiolib: rework the wrapper around gpio_chip::set_multiple()")
Reported-by: Sashiko <sashiko-bot at kernel.org>
Link: https://lore.kernel.org/linux-gpio/sashiko-outbox-168233@kernel.org/
Signed-off-by: Kent Gibson <warthog618 at gmail.com>
Link: https://patch.msgid.link/20261015025749.47039-1-warthog618@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski at oss.qualcomm.com>
DeltaFile
+5-4drivers/gpio/gpiolib.c
+5-41 files

Linux/linux 851bb4a — drivers/gpio gpiolib-kunit.c

gpio: kunit: fix GPIO device reference leak with __free()

KUnit aborts the test thread immediately using kthread_exit() so the
variable annotated with __free() never really goes out of scope and the
associated callback is not called. Schedule a kunit action instead.

Fixes: a05cfd98c5ec ("gpio: kunit: add test cases for software node hogs")
Reported-by: Sashiko <sashiko-bot at kernel.org>
Closes: https://sashiko.dev/#/patchset/20261013-gpio-kunit-plat-lookup-v3-0-3907f913e964%40oss.qualcomm.com?part=1
Link: https://patch.msgid.link/20261014-gpio-kunit-autofree-leak-fix-v1-1-5bfa7be0eb1f@oss.qualcomm.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski at oss.qualcomm.com>
DeltaFile
+7-2drivers/gpio/gpiolib-kunit.c
+7-21 files

Linux/linux cf73c3f — drivers/gpio gpiolib-shared.c

gpio: shared: gracefully handle no-device lookup of shared GPIOs

We use platform lookup tables for shared GPIOs. This mechanism needs a
struct device to work so fwnode-based lookup with no device associated
currently causes a NULL-pointer deference.

Adding this functionality will require a larger rework and it has never
worked anyway so add a check that allows the kernel to gracefully handle
this situation with an error ahead of implementing that functionality as
a new feature.

Cc: stable at vger.kernel.org
Reported-by: Abel Vesa <abelvesa at kernel.org>
Fixes: a060b8c511ab ("gpiolib: implement low-level, shared GPIO support")
Link: https://patch.msgid.link/20261014-gpio-shared-fwnode-lookup-v4-2-2253ad645fd6@oss.qualcomm.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski at oss.qualcomm.com>
DeltaFile
+6-1drivers/gpio/gpiolib-shared.c
+6-11 files