<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-next.git/kernel/entry, branch master</title>
<subtitle>Linux kernel latest source</subtitle>
<id>http://mirrors.hust.edu.cn/git/linux-next.git/atom?h=master</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/linux-next.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/linux-next.git/'/>
<updated>2026-10-04T07:26:10+00:00</updated>
<entry>
<title>Merge branch into tip/master: 'sched/core'</title>
<updated>2026-10-04T07:26:10+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@kernel.org</email>
</author>
<published>2026-10-04T07:26:10+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/linux-next.git/commit/?id=8081533a49ac9f3f60adbb13c131820810861919'/>
<id>urn:sha1:8081533a49ac9f3f60adbb13c131820810861919</id>
<content type='text'>
 # New commits in sched/core:
    4a3b51aab6e2 ("smpboot: Don't park the thread if work is pending")
    40dcc9bdbef3 ("irq_work: Flush lazy work CPU down on PREEMPT_RT")
    791b1760accd ("irq_work: Update a comment regarding CPU hotplug invocation")
    648d44bda731 ("sched/topology: Add asymmetric SMT packing override")
    c8fc4136fd3c ("sched/fair: Honor asymmetric SMT priority in idle selection")
    53bc5c556b82 ("sched: Set TIF_NEED_RESCHED before calling __trace_set_need_resched()")
    4b1f75be23c4 ("sched/core: Fix context analysis errors in non-preferred CPU push")
    1fb28c664a19 ("virt/steal_governor: Enable the driver")
    27d47ebce4d6 ("virt/steal_governor: Implement steal_governor policy loop")
    4b9302d494ff ("virt/steal_governor: Add control knobs for handling steal values")
    9a8e740ee9f6 ("virt: Introduce steal governor driver")
    68957caaa9c0 ("sched/debug: Add migration stats due to non preferred CPUs")
    74699f56ebcf ("sched/core: Push current task from non preferred CPU")
    4ee29b029058 ("sched/fair: Load balance only among preferred CPUs")
    d8a3da0de843 ("sched/core: Try to use a preferred CPU in is_cpu_allowed")
    620824516557 ("sysfs: Add preferred CPU file")
    518b32bd5bb3 ("cpumask: Introduce cpu_preferred_mask")
    06a49ef784ac ("sched/docs: Document cpu_preferred_mask and Preferred CPU concept")
    cfb463b7172d ("cpumask: Introduce cpumask_intersects_and")
    a8d0854a76a8 ("sched/cputime: Add kcpustat_field_total helper")
    be100c77178e ("sched: Add sched_ext hooks for proxy execution")
    57c75e3ae38c ("sched: Add helper to block retained proxy donors")
    a49653d0abeb ("sched/core: Mark wakeups completed through ttwu_runnable()")
    8f8c0417e973 ("sched/core: Dequeue waking proxy donors before reset")
    313b652837d0 ("sched/core: Drop mutex locks before proxy rescheduling")
    627ea30aca3b ("sched/wait: Clarify WF_SYNC wakeup semantics")
    d2e010082757 ("sched/eevdf: Handle more short slice waking cases")
    4bf32ec3327d ("sched/eevdf: Align update_protect_slice to set_protect_slice")
    aae2a33ea662 ("sched/eevdf: Ensure that vprot will never go above a min slice")
    c9ce69fc43bd ("sched/fair: Randomize equally shallow slow-path candidates")
    abe440b3770f ("sched/fair: Drop idle recency from slow-path CPU selection")
    fbbc63fed0b0 ("sched/core: Remove redundant core_sched_seq")
    819224e506bc ("sched/fair: Remove dead code on enqueue_task_fair()")
    c72945693b90 ("sched: Restart fair hrtick after same-task repicks")
    a9b3c7570564 ("sched/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in the &lt;uapi/linux/sched.h&gt; header")
    e81ee0630837 ("sched/fair: Reset NUMA fault locality after scan period update")
    ef9293b3b797 ("sched: dynamic: Fix preemption model strings")
    879eaa76e608 ("sched: Remove unneeded function type cast in do_balance_callbacks()")
    f549101187c8 ("sched/deadline: check start_dl_timer expiry with ktime_before()")
    2a672daa4b27 ("sched/feat: Use the new static key API for sched_feat")
    a5576ebce920 ("sched: Convert paravirt_steal to new static key APIs")
    9650ce11f2e3 ("sched: dynamic: Simplify preempt model accessors")
    5b9a28eeed37 ("sched: dynamic: Remove HAVE_PREEMPT_DYNAMIC_{CALL,KEY}")
    aa4178f63847 ("sched: dynamic: Simplify irqentry_exit_cond_resched()")
    b9d267b9d632 ("sched: dynamic: Simplify preempt_schedule{,_notrace}()")
    88e0b3bb9930 ("sched: dynamic: Simplify {cond,might}_resched()")
    d3d16750693b ("sched: dynamic: Make PREEMPT_DYNAMIC depend on ARCH_HAS_PREEMPT_LAZY")
    772d9ffbfd26 ("sched: Migrate whole chain in proxy_migrate_task()")
    6b73a09e943f ("sched: Break out core of attach_tasks() helper into sched.h")
    1f8805138593 ("sched: Switch rq-&gt;next_class in proxy_reset_donor()")
    09351db90a28 ("sched/core: Don't proxy-exec unmatched cookie lock owners")
    9be817f991e2 ("sched/core: Avoid migrating blocked_on tasks")
    3dd95f077371 ("sched/core: Don't steal a proxy-exec donor")

Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard</title>
<updated>2026-09-07T12:00:56+00:00</updated>
<author>
<name>Karl Mehltretter</name>
<email>kmehltretter@gmail.com</email>
</author>
<published>2026-08-22T07:23:25+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/linux-next.git/commit/?id=353a95f1cd8da8a5436a3f070be07d2f484486cd'/>
<id>urn:sha1:353a95f1cd8da8a5436a3f070be07d2f484486cd</id>
<content type='text'>
Commit 8d75c338f0bc ("sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors
CONFIG_SYSCTL") removed CONFIG_PROC_SYSCTL, but the sysctl added by
commit 5b6e32ba7b59 ("syscall_user_dispatch: Add
kernel.syscall_user_dispatch sysctl") is still guarded by it. Now that
both commits are merged, kernel.syscall_user_dispatch is no longer
registered.

syscall_user_dispatch_allowed defaults to true. SUD therefore remains
available, but administrators cannot disable new activations.

Use CONFIG_SYSCTL for the guard and documentation.

Fixes: 5b6e32ba7b59 ("syscall_user_dispatch: Add kernel.syscall_user_dispatch sysctl")
Assisted-by: Codex:gpt-5.6-sol
Acked-by: Oleg Nesterov &lt;oleg@redhat.com&gt;
Reviewed-by: Joel Granados &lt;joel.granados@kernel.org&gt;
Signed-off-by: Karl Mehltretter &lt;kmehltretter@gmail.com&gt;
Acked-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Reviewed-by: Bradley Morgan &lt;include@grrlz.net&gt;
Signed-off-by: Joel Granados &lt;joel.granados@kernel.org&gt;
</content>
</entry>
<entry>
<title>sched: dynamic: Simplify irqentry_exit_cond_resched()</title>
<updated>2026-09-02T07:37:23+00:00</updated>
<author>
<name>Mark Rutland</name>
<email>mark.rutland@arm.com</email>
</author>
<published>2026-08-03T19:17:29+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/linux-next.git/commit/?id=aa4178f63847f86e3b27b9e53ee8ccbd6ed6bf8c'/>
<id>urn:sha1:aa4178f63847f86e3b27b9e53ee8ccbd6ed6bf8c</id>
<content type='text'>
PREEMPT_DYNAMIC is now limited to the FULL and LAZY preemption models.
In either model, irqentry_exit_cond_resched() is always called and never
disabled.

Remove the unnecessary code for this when PREEMPT_DYNAMIC is selected.

Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Reviewed-by: Shrikanth Hegde &lt;sshegde@linux.ibm.com&gt;
Reviewed-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Tested-by: Mete Durlu &lt;meted@linux.ibm.com&gt;
Tested-by: Shrikanth Hegde &lt;sshegde@linux.ibm.com&gt;
Tested-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Link: https://patch.msgid.link/20260803191731.3244294-5-mark.rutland@arm.com
</content>
</entry>
<entry>
<title>entry: Rework trace_syscall_enter()</title>
<updated>2026-07-20T18:38:40+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@kernel.org</email>
</author>
<published>2026-07-12T21:25:22+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/linux-next.git/commit/?id=dfc98c7a46424683326c8d8ffc70e81548c59fdb'/>
<id>urn:sha1:dfc98c7a46424683326c8d8ffc70e81548c59fdb</id>
<content type='text'>
Reread the syscall number from pt_regs and stop returning the eventually
modified syscall number.

That moves the reread to the end of syscall_trace_enter() and prepares for
moving it to the call site.

No functional change.

Signed-off-by: Thomas Gleixner &lt;tglx@kernel.org&gt;
Tested-by: Michal Suchánek &lt;msuchanek@suse.de&gt;
Reviewed-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Link: https://patch.msgid.link/20260712141346.639115923@kernel.org
</content>
</entry>
<entry>
<title>entry: Rework syscall_audit_enter()</title>
<updated>2026-07-20T18:38:40+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@kernel.org</email>
</author>
<published>2026-07-12T21:25:17+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/linux-next.git/commit/?id=6f25517010ddd3f8080d7e06b9b1cb1b64b73772'/>
<id>urn:sha1:6f25517010ddd3f8080d7e06b9b1cb1b64b73772</id>
<content type='text'>
Move it out of line and let it reread the syscall number on it's own. That
makes the low level entry code denser and allows to move the reread to the
call site of syscall_trace_enter() once the tracer is fixed up.

To prevent the compiler from putting audit_context() out of line and
thereby breaking dead code elimination, mark audit_context()
__always_inline.

Signed-off-by: Thomas Gleixner &lt;tglx@kernel.org&gt;
Tested-by: Michal Suchánek &lt;msuchanek@suse.de&gt;
Reviewed-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Link: https://patch.msgid.link/20260712141346.576865340@kernel.org
</content>
</entry>
<entry>
<title>syscall_user_dispatch: Add kernel.syscall_user_dispatch sysctl</title>
<updated>2026-07-08T08:22:00+00:00</updated>
<author>
<name>Gregory Price</name>
<email>gourry@gourry.net</email>
</author>
<published>2026-07-06T14:00:19+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/linux-next.git/commit/?id=5b6e32ba7b5967a2787fafaa9f4740c590e1e00b'/>
<id>urn:sha1:5b6e32ba7b5967a2787fafaa9f4740c590e1e00b</id>
<content type='text'>
Add a matching sysctl to go with CONFIG_SYSCALL_USER_DISPATCH.

kernel.syscall_user_dispatch (default 1 - allow) controls whether
userspace may arm syscall user dispatch (both via prctl and ptrace).

Disarming is always permitted - same semantics as comparable knobs.

Disabling while a task has armed syscall user dispatch does not
cause it to become inactive - instead it remains active until the
user attempts to disable/re-enable via prctl or ptrace.  On the
next attempt to re-enable, the prctl/ptrace call fails gracefully.

The alternative would cause programs translating non-linux syscalls
to interpret those syscalls as linux syscalls, resulting in undefined
userland behavior.

Signed-off-by: Gregory Price &lt;gourry@gourry.net&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@kernel.org&gt;
Link: https://patch.msgid.link/20260706140020.873735-3-gourry@gourry.net
</content>
</entry>
<entry>
<title>syscall_user_dispatch: Make it configurable in Kconfig</title>
<updated>2026-07-08T08:22:00+00:00</updated>
<author>
<name>Gregory Price</name>
<email>gourry@gourry.net</email>
</author>
<published>2026-07-06T14:00:18+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/linux-next.git/commit/?id=ee935e8dc757614006ac29a7d98a15882cdcaeb2'/>
<id>urn:sha1:ee935e8dc757614006ac29a7d98a15882cdcaeb2</id>
<content type='text'>
Syscall User Dispatch is presently built under CONFIG_GENERIC_SYSCALL and
cannot be disabled independently.

Add CONFIG_SYSCALL_USER_DISPATCH to make it an optional feature.

Signed-off-by: Gregory Price &lt;gourry@gourry.net&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@kernel.org&gt;
Link: https://patch.msgid.link/20260706140020.873735-2-gourry@gourry.net
</content>
</entry>
<entry>
<title>futex: Provide infrastructure to plug the non contended robust futex unlock race</title>
<updated>2026-06-03T09:38:52+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@kernel.org</email>
</author>
<published>2026-06-02T09:10:04+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/linux-next.git/commit/?id=7010c39d8fc5063af69ee63f905e592e046f8e5d'/>
<id>urn:sha1:7010c39d8fc5063af69ee63f905e592e046f8e5d</id>
<content type='text'>
When the FUTEX_ROBUST_UNLOCK mechanism is used for unlocking (PI-)futexes,
then the unlock sequence in user space looks like this:

  1)	robust_list_set_op_pending(mutex);
  2)	robust_list_remove(mutex);

  	lval = gettid();
  3)	if (atomic_try_cmpxchg(&amp;mutex-&gt;lock, lval, 0))
  4)		robust_list_clear_op_pending();
  	else
  5)		sys_futex(OP | FUTEX_ROBUST_UNLOCK, ....);

That still leaves a minimal race window between #3 and #4 where the mutex
could be acquired by some other task, which observes that it is the last
user and:

  1) unmaps the mutex memory
  2) maps a different file, which ends up covering the same address

When then the original task exits before reaching #5 then the kernel robust
list handling observes the pending op entry and tries to fix up user space.

In case that the newly mapped data contains the TID of the exiting thread
at the address of the mutex/futex the kernel will set the owner died bit in
that memory and therefore corrupt unrelated data.

On X86 this boils down to this simplified assembly sequence:

		mov		%esi,%eax	// Load TID into EAX
        	xor		%ecx,%ecx	// Set ECX to 0
   #3		lock cmpxchg	%ecx,(%rdi)	// Try the TID -&gt; 0 transition
	.Lstart:
		jnz    		.Lend
   #4 		movq		%rcx,(%rdx)	// Clear list_op_pending
	.Lend:

If the cmpxchg() succeeds and the task is interrupted before it can clear
list_op_pending in the robust list head (#4) and the task crashes in a
signal handler or gets killed then it ends up in do_exit() and subsequently
in the robust list handling, which then might run into the unmap/map issue
described above.

This is only relevant when user space was interrupted and a signal is
pending. The fix-up has to be done before signal delivery is attempted
because:

   1) The signal might be fatal so get_signal() ends up in do_exit()

   2) The signal handler might crash or the task is killed before returning
      from the handler. At that point the instruction pointer in pt_regs is
      not longer the instruction pointer of the initially interrupted unlock
      sequence.

The right place to handle this is in __exit_to_user_mode_loop() before
invoking arch_do_signal_or_restart() as this covers obviously both
scenarios.

As this is only relevant when the task was interrupted in user space, this
is tied to RSEQ and the generic entry code as RSEQ keeps track of user
space interrupts unconditionally even if the task does not have a RSEQ
region installed. That makes the decision very lightweight:

       if (current-&gt;rseq.user_irq &amp;&amp; within(regs, csr-&gt;unlock_ip_range))
       		futex_fixup_robust_unlock(regs, csr);

futex_fixup_robust_unlock() then invokes a architecture specific function
to return the pending op pointer or NULL. The function evaluates the
register content to decide whether the pending ops pointer in the robust
list head needs to be cleared.

Assuming the above unlock sequence, then on x86 this decision is the
trivial evaluation of the zero flag:

	return regs-&gt;eflags &amp; X86_EFLAGS_ZF ? regs-&gt;dx : NULL;

Other architectures might need to do more complex evaluations due to LLSC,
but the approach is valid in general. The size of the pointer is determined
from the matching range struct, which covers both 32-bit and 64-bit builds
including COMPAT.

The unlock sequence is going to be placed in the VDSO so that the kernel
can keep everything synchronized, especially the register usage. The
resulting code sequence for user space is:

   if (__vdso_futex_robust_list$SZ_try_unlock(lock, tid, &amp;pending_op) != tid)
 	err = sys_futex($OP | FUTEX_ROBUST_UNLOCK,....);

Both the VDSO unlock and the kernel side unlock ensure that the pending_op
pointer is always cleared when the lock becomes unlocked.

Signed-off-by: Thomas Gleixner &lt;tglx@kernel.org&gt;
Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Reviewed-by: André Almeida &lt;andrealmeid@igalia.com&gt;
Link: https://patch.msgid.link/20260602090535.773669210@kernel.org
</content>
</entry>
<entry>
<title>Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux</title>
<updated>2026-04-14T23:48:56+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2026-04-14T23:48:56+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/linux-next.git/commit/?id=c43267e6794a36013fd495a4d81bf7f748fe4615'/>
<id>urn:sha1:c43267e6794a36013fd495a4d81bf7f748fe4615</id>
<content type='text'>
Pull arm64 updates from Catalin Marinas:
 "The biggest changes are MPAM enablement in drivers/resctrl and new PMU
  support under drivers/perf.

  On the core side, FEAT_LSUI lets futex atomic operations with EL0
  permissions, avoiding PAN toggling.

  The rest is mostly TLB invalidation refactoring, further generic entry
  work, sysreg updates and a few fixes.

  Core features:

   - Add support for FEAT_LSUI, allowing futex atomic operations without
     toggling Privileged Access Never (PAN)

   - Further refactor the arm64 exception handling code towards the
     generic entry infrastructure

   - Optimise __READ_ONCE() with CONFIG_LTO=y and allow alias analysis
     through it

  Memory management:

   - Refactor the arm64 TLB invalidation API and implementation for
     better control over barrier placement and level-hinted invalidation

   - Enable batched TLB flushes during memory hot-unplug

   - Fix rodata=full block mapping support for realm guests (when
     BBML2_NOABORT is available)

  Perf and PMU:

   - Add support for a whole bunch of system PMUs featured in NVIDIA's
     Tegra410 SoC (cspmu extensions for the fabric and PCIe, new drivers
     for CPU/C2C memory latency PMUs)

   - Clean up iomem resource handling in the Arm CMN driver

   - Fix signedness handling of AA64DFR0.{PMUVer,PerfMon}

  MPAM (Memory Partitioning And Monitoring):

   - Add architecture context-switch and hiding of the feature from KVM

   - Add interface to allow MPAM to be exposed to user-space using
     resctrl

   - Add errata workaround for some existing platforms

   - Add documentation for using MPAM and what shape of platforms can
     use resctrl

  Miscellaneous:

   - Check DAIF (and PMR, where relevant) at task-switch time

   - Skip TFSR_EL1 checks and barriers in synchronous MTE tag check mode
     (only relevant to asynchronous or asymmetric tag check modes)

   - Remove a duplicate allocation in the kexec code

   - Remove redundant save/restore of SCS SP on entry to/from EL0

   - Generate the KERNEL_HWCAP_ definitions from the arm64 hwcap
     descriptions

   - Add kselftest coverage for cmpbr_sigill()

   - Update sysreg definitions"

* tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (109 commits)
  arm64: rsi: use linear-map alias for realm config buffer
  arm64: Kconfig: fix duplicate word in CMDLINE help text
  arm64: mte: Skip TFSR_EL1 checks and barriers in synchronous tag check mode
  arm64/sysreg: Update ID_AA64SMFR0_EL1 description to DDI0601 2025-12
  arm64/sysreg: Update ID_AA64ZFR0_EL1 description to DDI0601 2025-12
  arm64/sysreg: Update ID_AA64FPFR0_EL1 description to DDI0601 2025-12
  arm64/sysreg: Update ID_AA64ISAR2_EL1 description to DDI0601 2025-12
  arm64/sysreg: Update ID_AA64ISAR0_EL1 description to DDI0601 2025-12
  arm64/hwcap: Generate the KERNEL_HWCAP_ definitions for the hwcaps
  arm64: kexec: Remove duplicate allocation for trans_pgd
  ACPI: AGDI: fix missing newline in error message
  arm64: Check DAIF (and PMR) at task-switch time
  arm64: entry: Use split preemption logic
  arm64: entry: Use irqentry_{enter_from,exit_to}_kernel_mode()
  arm64: entry: Consistently prefix arm64-specific wrappers
  arm64: entry: Don't preempt with SError or Debug masked
  entry: Split preemption from irqentry_exit_to_kernel_mode()
  entry: Split kernel mode logic from irqentry_{enter,exit}()
  entry: Move irqentry_enter() prototype later
  entry: Remove local_irq_{enable,disable}_exit_to_user()
  ...
</content>
</entry>
<entry>
<title>entry: Split kernel mode logic from irqentry_{enter,exit}()</title>
<updated>2026-04-08T09:43:32+00:00</updated>
<author>
<name>Mark Rutland</name>
<email>mark.rutland@arm.com</email>
</author>
<published>2026-04-07T13:16:44+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/linux-next.git/commit/?id=c5538d0141b383808f440186fcd0bc2799af2853'/>
<id>urn:sha1:c5538d0141b383808f440186fcd0bc2799af2853</id>
<content type='text'>
The generic irqentry code has entry/exit functions specifically for
exceptions taken from user mode, but doesn't have entry/exit functions
specifically for exceptions taken from kernel mode.

It would be helpful to have separate entry/exit functions specifically
for exceptions taken from kernel mode. This would make the structure of
the entry code more consistent, and would make it easier for
architectures to manage logic specific to exceptions taken from kernel
mode.

Move the logic specific to kernel mode out of irqentry_enter() and
irqentry_exit() into new irqentry_enter_from_kernel_mode() and
irqentry_exit_to_kernel_mode() functions. These are marked
__always_inline and placed in irq-entry-common.h, as with
irqentry_enter_from_user_mode() and irqentry_exit_to_user_mode(), so
that they can be inlined into architecture-specific wrappers. The
existing out-of-line irqentry_enter() and irqentry_exit() functions
retained as callers of the new functions.

The lockdep assertion from irqentry_exit() is moved into
irqentry_exit_to_user_mode() and irqentry_exit_to_kernel_mode(). This
was previously missing from irqentry_exit_to_user_mode() when called
directly, and any new lockdep assertion failure relating from this
change is a latent bug.

Aside from the lockdep change noted above, there should be no functional
change as a result of this change.

[ tglx: Updated kernel doc ]

Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@kernel.org&gt;
Reviewed-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Acked-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Link: https://patch.msgid.link/20260407131650.3813777-5-mark.rutland@arm.com
</content>
</entry>
</feed>
