<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux-stable.git/arch/powerpc, branch master</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/atom?h=master</id>
<link rel='self' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/'/>
<updated>2026-09-08T14:59:12+00:00</updated>
<entry>
<title>Merge tag 'powerpc-7.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux</title>
<updated>2026-09-08T14:59:12+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2026-09-08T14:59:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5acbae5f7eb3d5275120abfe698c394b7325dcec'/>
<id>urn:sha1:5acbae5f7eb3d5275120abfe698c394b7325dcec</id>
<content type='text'>
Pull powerpc fixes from Madhavan Srinivasan:

 - Clear TIF_SYSCALL_RET before syscall error return

 - Don't drop _TIF_RESTOREALL on syscall restart

 - Do not restore KUAP in arch_exit_to_user_mode_prepare()

 - pci-ioda: Fix the stale irq chip reference

 - Use inclusive range checks in add_usable_mem() and excluded memory

 - Fix irq_soft_mask corruption on replayed interrupt exit

 - MAINTAINERS: powerpc: Add Ritesh and Shrikanth

 - Misc fixes and cleanups

Thanks to Amit Machhiwal, Christophe Leroy (CS GROUP), Gautam Menghani,
Harsh Prateek Bora, Jiangshan Yi, Mukesh Kumar Chaurasiya (IBM), Ritesh
Harjani (IBM), Shivaprasad G Bhat, Shrikanth Hegde, Sourabh Jain,
Tasmiya Nalatwad, Thorsten Blum, and Venkat Rao Bagalkote.

* tag 'powerpc-7.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
  MAINTAINERS: powerpc: Add Ritesh and Shrikanth
  powerpc/ps3: Fix repository.c build failure
  powerpc/entry: Fix irq_soft_mask corruption on replayed interrupt exit
  powerpc/pseries/pci: Fix misleading VF limit error message
  powerpc/kexec_file: Use inclusive range checks for excluded memory
  powerpc/kexec: Simplify kdump_extra_elfcorehdr_size()
  powerpc/kexec_file: Use inclusive range checks in add_usable_mem()
  powerpc/rtas_pci: No hotplug on permanently removed device on pSeries
  powerpc/eeh: Fix recursive locking on devices without EEH sensitive driver
  powerpc: pci-ioda: Fix the stale irq chip reference
  powerpc: Do not restore KUAP in arch_exit_to_user_mode_prepare()
  powerpc: Don't drop _TIF_RESTOREALL on syscall restart
  powerpc/entry: Clear TIF_SYSCALL_RET before syscall error return
</content>
</entry>
<entry>
<title>powerpc/ps3: Fix repository.c build failure</title>
<updated>2026-09-07T04:38:46+00:00</updated>
<author>
<name>Thorsten Blum</name>
<email>thorsten.blum@linux.dev</email>
</author>
<published>2026-07-03T16:58:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5ba79d37403d86082ab4083b0f51ec3008a942cb'/>
<id>urn:sha1:5ba79d37403d86082ab4083b0f51ec3008a942cb</id>
<content type='text'>
GCC fails to build ps3_defconfig with the following errors:

  arch/powerpc/platforms/ps3/repository.c: In function ‘make_first_field.constprop’:
  arch/powerpc/platforms/ps3/repository.c:78:9: error: ‘strnlen’ specified bound 8 exceeds source size 3 [-Werror=stringop-overread]
     78 |         memcpy((char *)&amp;n, text, strnlen(text, sizeof(n)));
        |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  arch/powerpc/platforms/ps3/repository.c: In function ‘make_first_field.constprop’:
  arch/powerpc/platforms/ps3/repository.c:78:9: error: ‘strnlen’ specified bound 8 exceeds source size 4 [-Werror=stringop-overread]
     78 |         memcpy((char *)&amp;n, text, strnlen(text, sizeof(n)));
        |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The current use of strnlen(text, sizeof(n)) triggers -Wstringop-overread
when text is a short string literal that is smaller than sizeof(n), such
as "bi" or "bus". Use strlen(text) instead and clamp the copy length to
sizeof(n) before memcpy().

Drop the redundant char * cast while at it.

Fixes: f94a84a09148 ("powerpc/ps3: refactor strncpy usage")
Cc: stable@vger.kernel.org
Signed-off-by: Thorsten Blum &lt;thorsten.blum@linux.dev&gt;
Signed-off-by: Madhavan Srinivasan &lt;maddy@linux.ibm.com&gt;
Link: https://patch.msgid.link/20260703165834.137242-2-thorsten.blum@linux.dev

</content>
</entry>
<entry>
<title>powerpc/entry: Fix irq_soft_mask corruption on replayed interrupt exit</title>
<updated>2026-09-05T12:09:36+00:00</updated>
<author>
<name>Mukesh Kumar Chaurasiya (IBM)</name>
<email>mkchauras@gmail.com</email>
</author>
<published>2026-09-04T09:08:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=63a7531ca31f9f097d9cc1cc3fe86ae683cdabdd'/>
<id>urn:sha1:63a7531ca31f9f097d9cc1cc3fe86ae683cdabdd</id>
<content type='text'>
When __replay_soft_interrupts() replays a pending interrupt (e.g.
PACA_IRQ_DEC -&gt; timer_interrupt), it calls the handler directly with a
synthetic pt_regs. The DEFINE_INTERRUPT_HANDLER_ASYNC wrapper around
each handler calls arch_interrupt_async_exit_prepare() on the way out,
which calls arch_interrupt_exit_prepare() -&gt; local_irq_disable() -&gt;
arch_local_irq_disable(), which does:

    irq_soft_mask_set(IRQS_DISABLED)   /* 0x1 */

This unconditionally overwrites irq_soft_mask with IRQS_DISABLED (0x1),
stripping the IRQS_PMI_DISABLED (0x2) bit. The result is that
irq_soft_mask is 0x1 instead of IRQS_ALL_DISABLED (0x3) when the
handler returns to __replay_soft_interrupts().

For a normally-taken interrupt this is harmless: the next interrupt
always enters through arch_interrupt_enter_prepare() which
unconditionally sets irq_soft_mask to IRQS_ALL_DISABLED. But during
replay, next_interrupt() is called directly between replayed handlers
without going back through arch_interrupt_enter_prepare(), so the
stripped bit is never restored. next_interrupt() then fires a WARNING:

    WARNING: arch/powerpc/kernel/irq_64.c:75
    WARN_ON(irq_soft_mask_return() != IRQS_ALL_DISABLED)

The warning was observed early in boot on a POWER10 pseries guest
during kmem_cache_init_late(), where a spinlock release triggers
interrupt replay that processes a pending timer interrupt.

Debugger state confirming the bug:
  Before timer_interrupt(&amp;regs):
    irq_soft_mask = 0x3 (IRQS_ALL_DISABLED)   correct
    irq_happened  = 0x41 (HARD_DIS|REPLAYING)  correct
  After timer_interrupt(&amp;regs) returns:
    irq_soft_mask = 0x1 (IRQS_DISABLED)        WRONG - PMI bit stripped
    irq_happened  = 0x41                        unchanged

The fix is to replace local_irq_disable() with hard_irq_disable().

hard_irq_disable() is the right primitive here for two reasons:

1. On PPC64 (hw_irq.h:301) it calls irq_soft_mask_set_return(IRQS_ALL_DISABLED),
   setting the soft mask to 0x3 (both IRQS_DISABLED and IRQS_PMI_DISABLED),
   which preserves the PMI bit and fixes the WARNING. The additional
   work it does (__hard_irq_disable(), PACA_IRQ_HARD_DIS |=) is
   redundant but safe since both are already set at this point in the
   exit path; the trace_hardirqs_off() inside is guarded by
   if (!arch_irqs_disabled_flags(flags)) so it will not double-fire.

2. On PPC32 (hw_irq.h:467) hard_irq_disable() maps to
   arch_local_irq_disable() -&gt; __hard_irq_disable(), which clears
   MSR[EE] in hardware. This is exactly correct: PPC32 has no soft-mask
   PACA mechanism, so the hardware disable is the right way to satisfy
   irqentry_exit()'s requirement. This also fixes a build error on PPC32
   where irq_soft_mask_set() is only defined under CONFIG_PPC64:

       arch/powerpc/include/asm/entry-common.h:273: error: implicit
       declaration of function 'irq_soft_mask_set'

   Using hard_irq_disable() requires no #ifdef and is consistent with
   how the rest of the entry code (e.g. entry-common.h:463) handles the
   same PPC32/PPC64 split.

Fixes: 334f3f6d7a16 ("powerpc/entry: Disable interrupts before irqentry_exit")
Reported-by: Venkat Rao Bagalkote &lt;venkat88@linux.ibm.com&gt;
Closes: https://lore.kernel.org/all/6f9bfb0f-b14c-468e-bb9f-c157d120d0dc@linux.ibm.com/
Tested-by: Venkat Rao Bagalkote &lt;venkat88@linux.ibm.com&gt;
Reviewed-by: Shrikanth Hegde &lt;sshegde@linux.ibm.com&gt;
Signed-off-by: Mukesh Kumar Chaurasiya (IBM) &lt;mkchauras@gmail.com&gt;
Signed-off-by: Madhavan Srinivasan &lt;maddy@linux.ibm.com&gt;
Link: https://patch.msgid.link/20260904090858.128563-1-mkchauras@gmail.com

</content>
</entry>
<entry>
<title>powerpc/pseries/pci: Fix misleading VF limit error message</title>
<updated>2026-09-05T05:41:40+00:00</updated>
<author>
<name>Jiangshan Yi</name>
<email>yijiangshan@kylinos.cn</email>
</author>
<published>2026-08-13T06:37:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b1824233b19c1dffdb5e81283805a9e52e763caa'/>
<id>urn:sha1:b1824233b19c1dffdb5e81283805a9e52e763caa</id>
<content type='text'>
When the number of requested VFs exceeds MAX_VFS_FOR_MAP_PE, the
message prints that limit but labels it "Configurable VFs". Report
the configurable VF limit and the PE mapping limit with separate
error messages.

Suggested-by: Christophe Leroy &lt;chleroy@kernel.org&gt;
Signed-off-by: Jiangshan Yi &lt;yijiangshan@kylinos.cn&gt;
Reviewed-by: Christophe Leroy &lt;chleroy@kernel.org&gt;
[Maddy: Fixed Christophe's reviewed by tag]
Signed-off-by: Madhavan Srinivasan &lt;maddy@linux.ibm.com&gt;
Link: https://patch.msgid.link/20260813063731.399598-1-yijiangshan@kylinos.cn

</content>
</entry>
<entry>
<title>powerpc/kexec_file: Use inclusive range checks for excluded memory</title>
<updated>2026-09-05T05:41:40+00:00</updated>
<author>
<name>Thorsten Blum</name>
<email>thorsten.blum@linux.dev</email>
</author>
<published>2026-08-10T14:58:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=449f60f99f8f3cbe80a9bd2242945e827c5ed003'/>
<id>urn:sha1:449f60f99f8f3cbe80a9bd2242945e827c5ed003</id>
<content type='text'>
arch_check_excluded_range() checks if a kexec segment overlaps an
excluded memory range.

Both ranges use inclusive end addresses, but the overlap check uses
exclusive comparisons. This skips ranges with start == -&gt;ranges[i].end
or end == -&gt;ranges[i].start. Use inclusive comparisons instead.

Fixes: 6e5250eaa665 ("powerpc/crash: use generic APIs to locate memory hole for kdump")
Signed-off-by: Thorsten Blum &lt;thorsten.blum@linux.dev&gt;
Reviewed-by: Sourabh Jain &lt;sourabhjain@linux.ibm.com&gt;
Signed-off-by: Madhavan Srinivasan &lt;maddy@linux.ibm.com&gt;
Link: https://patch.msgid.link/20260810145827.157972-3-thorsten.blum@linux.dev

</content>
</entry>
<entry>
<title>powerpc/kexec: Simplify kdump_extra_elfcorehdr_size()</title>
<updated>2026-09-05T05:41:40+00:00</updated>
<author>
<name>Thorsten Blum</name>
<email>thorsten.blum@linux.dev</email>
</author>
<published>2026-07-30T13:19:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=68832eb08751b4ce23e90bd90e9414a465a99da3'/>
<id>urn:sha1:68832eb08751b4ce23e90bd90e9414a465a99da3</id>
<content type='text'>
Return the size directly and drop the extra_sz variable to simplify
kdump_extra_elfcorehdr_size(). The two warning paths now fall through
to the existing return 0 at the end of the function.

Signed-off-by: Thorsten Blum &lt;thorsten.blum@linux.dev&gt;
Reviewed-by: Christophe Leroy (CS GROUP) &lt;chleroy@kernel.org&gt;
Signed-off-by: Madhavan Srinivasan &lt;maddy@linux.ibm.com&gt;
Link: https://patch.msgid.link/20260730131940.597739-2-thorsten.blum@linux.dev

</content>
</entry>
<entry>
<title>powerpc/kexec_file: Use inclusive range checks in add_usable_mem()</title>
<updated>2026-09-05T05:41:39+00:00</updated>
<author>
<name>Thorsten Blum</name>
<email>thorsten.blum@linux.dev</email>
</author>
<published>2026-08-09T16:24:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=c6755be4838d6ccd641effbcdc3d917b82631ff9'/>
<id>urn:sha1:c6755be4838d6ccd641effbcdc3d917b82631ff9</id>
<content type='text'>
add_usable_mem() adds usable memory ranges for the kdump kernel.

The ranges are inclusive, but the partial overlap check uses exclusive
comparisons. This skips ranges with base == loc_end or end == loc_base.
Use inclusive comparisons instead.

Fixes: 7c64e21a1c5a ("powerpc/kexec_file: Restrict memory usage of kdump kernel")
Signed-off-by: Thorsten Blum &lt;thorsten.blum@linux.dev&gt;
Reviewed-by: Sourabh Jain &lt;sourabhjain@linux.ibm.com&gt;
Signed-off-by: Madhavan Srinivasan &lt;maddy@linux.ibm.com&gt;
Link: https://patch.msgid.link/20260809162403.18142-2-thorsten.blum@linux.dev

</content>
</entry>
<entry>
<title>powerpc/rtas_pci: No hotplug on permanently removed device on pSeries</title>
<updated>2026-09-05T05:41:39+00:00</updated>
<author>
<name>Shivaprasad G Bhat</name>
<email>sbhat@linux.ibm.com</email>
</author>
<published>2026-06-26T09:13:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8a4978c17a144a6583478cce933bcb2dbb25298d'/>
<id>urn:sha1:8a4978c17a144a6583478cce933bcb2dbb25298d</id>
<content type='text'>
The eeh_driver disables and offlines the PE permanently when it
exceeds the freeze count beyond eeh_max_freeze within the last hour.
The PE is only offline, so the device tree entries, eeh device
references are all intact till the real unplug of the device from
the guest/host takes place.

On pSeries, with a new hotplug of any PCI device, the drmgr initiates
a system-wide PCI rescan, which finds devices offlined by the eeh_driver
and there will be attempts to bring them online. This leads to
recurring EEHs either at the config read time itself or a bit
later depending on the type of the problem.

For PowerNV, the commit d2b0f6f77ee5 ("powerpc/eeh: No hotplug on
permanently removed dev") introduced the EEH_DEV_REMOVED flag to
prevent such inadvertent rescans on hierarchical toplogies relavent in
Baremetal setups. For pSeries, such topologies don't really make sense
as the devices are either part of the same PE OR exposed as independent
devices on multiple virtual PHBs. However, the inadvertent rescans are
still a possibility with either hotplug of a new device or otherwise
with manual system-wide pci bus rescan attempts.

So the patch checks for EEH_DEV_REMOVED before allowing config space
access just like PowerNV, making the PCI core omit the PE, and thus
preventing subsequent EEH recurances. The patch is tested on PowerVM
and KVM machines with single and multi-function devices, and on the
devices behind a switch. The unplug of the affected devices post EEH
removal is also working fine as expected.

Signed-off-by: Shivaprasad G Bhat &lt;sbhat@linux.ibm.com&gt;
Reported-by: Tasmiya Nalatwad &lt;tasmiya@linux.ibm.com&gt;
Tested-by: Tasmiya Nalatwad &lt;tasmiya@linux.ibm.com&gt;
Reviewed-by: Harsh Prateek Bora &lt;harshpb@linux.ibm.com&gt;
References: d2b0f6f77ee5 ("powerpc/eeh: No hotplug on permanently removed dev")
Signed-off-by: Madhavan Srinivasan &lt;maddy@linux.ibm.com&gt;
Link: https://patch.msgid.link/178246517230.1267.12206176311111155505.stgit@linux.ibm.com

</content>
</entry>
<entry>
<title>powerpc/eeh: Fix recursive locking on devices without EEH sensitive driver</title>
<updated>2026-09-05T05:41:39+00:00</updated>
<author>
<name>Shivaprasad G Bhat</name>
<email>sbhat@linux.ibm.com</email>
</author>
<published>2026-07-14T17:16:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=c5e68706527968282e49de205cc2b935823cb88a'/>
<id>urn:sha1:c5e68706527968282e49de205cc2b935823cb88a</id>
<content type='text'>
The commit 1010b4c012b0 ("powerpc/eeh: Make EEH driver device hotplug
safe") refactored the EEH code such that the pci_rescan_remove_lock is
held at the beginning of eeh_handle_normal_event() and the
eeh_reset_device() is called with that lock being held. Looks like the
commit missed to remove the existing lock/unlock inside eeh_rmv_device()
which is no longer necessary. This is causing the eehd to hang on the
lock which it actually holds when that code path is taken.

[&lt;0&gt;] 0xc00000011c78f870
[&lt;0&gt;] __switch_to+0xfc/0x1a0
[&lt;0&gt;] pci_lock_rescan_remove+0x30/0x44
[&lt;0&gt;] eeh_rmv_device+0x290/0x2e0
[&lt;0&gt;] eeh_pe_dev_traverse+0x80/0x130
[&lt;0&gt;] eeh_reset_device+0xcc/0x23c
[&lt;0&gt;] eeh_handle_normal_event+0x830/0xa80
[&lt;0&gt;] eeh_event_handler+0xf8/0x190
[&lt;0&gt;] kthread+0x194/0x1b0
[&lt;0&gt;] start_kernel_thread+0x14/0x18

The issue is seen for cases where the errors are detected on the PHB
directly AND|OR for devices where the driver error_detected() returns
PCI_ERS_RESULT_NEED_RESET, and driver being not EEH sensitive(i.e no
error handlers like slot_reset(), resume() etc defined).

Fixes: 1010b4c012b0 ("powerpc/eeh: Make EEH driver device hotplug safe")
Cc: stable &lt;stable@kernel.org&gt;
Reviewed-by: Ritesh Harjani (IBM) &lt;ritesh.list@gmail.com&gt;
Signed-off-by: Shivaprasad G Bhat &lt;sbhat@linux.ibm.com&gt;
Reviewed-by: Amit Machhiwal &lt;amachhiw@linux.ibm.com&gt;
Signed-off-by: Madhavan Srinivasan &lt;maddy@linux.ibm.com&gt;
Link: https://patch.msgid.link/178404937381.913.2759874335293830160.stgit@linux.ibm.com

</content>
</entry>
<entry>
<title>powerpc: pci-ioda: Fix the stale irq chip reference</title>
<updated>2026-09-05T05:41:39+00:00</updated>
<author>
<name>Shivaprasad G Bhat</name>
<email>sbhat@linux.ibm.com</email>
</author>
<published>2026-08-19T17:58:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d96171d911e3b89ca2957c04264019cf2f96287b'/>
<id>urn:sha1:d96171d911e3b89ca2957c04264019cf2f96287b</id>
<content type='text'>
The commit f0ac60e6e311 ("powerpc/powernv/pci: Switch to use
msi_create_parent_irq_domain()") removed the legacy MSI irq chip
pnv_pci_msi_irq_chip but left behind the static definition of it and
its reference in is_pnv_opal_msi().

The KVM IRQ bypass for vfio devices is broken because the
comparision in is_pnv_opal_msi() fails on the comparision with
stale unused variable showing the below errors in dmesg.

 kvmppc_set_passthru_irq_hv: Could not assign IRQ map for (X,Y)
 kvmppc_set_passthru_irq (irq X, gsi Y) fails: -2
 vfio-pci A:B:C.D irq bypass producer (eventfd Z) registration fails: -2

The patch removes the stale variable definition and fixes the
is_pnv_opal_msi() by comparing against the chip name prefix.

Fixes: f0ac60e6e311 ("powerpc/powernv/pci: Switch to use msi_create_parent_irq_domain()")
Cc: stable@kernel.org
Signed-off-by: Shivaprasad G Bhat &lt;sbhat@linux.ibm.com&gt;
Tested-by: Gautam Menghani &lt;gautam@linux.ibm.com&gt;
Signed-off-by: Madhavan Srinivasan &lt;maddy@linux.ibm.com&gt;
Link: https://patch.msgid.link/178716225364.1437.6201568081502251835.stgit@linux.ibm.com

</content>
</entry>
</feed>
