NAK/Cmnt: [SRU][Q/N][PATCH 0/1] ipv6: fix a BUG in rt6_get_pcpu_route() under PREEMPT_RT
Benjamin Wheeler
benjamin.wheeler at canonical.com
Mon Mar 23 14:22:34 UTC 2026
The patches should have only gone into noble:linux-realtime (my mistake).
Also the Pro kernels tend to have patches sent to ESM ML.
On Thu, Mar 19, 2026 at 3:15 AM Stefan Bader <stefan.bader at canonical.com>
wrote:
> On 18/03/2026 19:28, Benjamin Wheeler wrote:
> > This already got applied into q:linux via upstream stable updates, and
> > the noble one should actually get re-submitted via the ESM ML.
>
> Why? Noble is still supported...
>
>
> -Stefan
> >
> >
> > On Mon, Mar 16, 2026 at 4:35 PM Benjamin Wheeler
> > <benjamin.wheeler at canonical.com <mailto:benjamin.wheeler at canonical.com>>
>
> > wrote:
> >
> > Buglink: https://bugs.launchpad.net/ubuntu/questing/+source/linux-
> > realtime/+bug/2144318 <https://bugs.launchpad.net/ubuntu/questing/
> > +source/linux-realtime/+bug/2144318>
> >
> > SRU Justification:
> >
> > [Impact]
> >
> > In the Linux kernel, the following vulnerability has been resolved:
> > ipv6: fix a
> > BUG in rt6_get_pcpu_route() under PREEMPT_RT On PREEMPT_RT kernels,
> > after
> > rt6_get_pcpu_route() returns NULL, the current task can be
> > preempted. Another
> > task running on the same CPU may then execute rt6_make_pcpu_route()
> and
> > successfully install a pcpu_rt entry. When the first task resumes
> > execution, its
> > cmpxchg() in rt6_make_pcpu_route() will fail because rt6i_pcpu is no
> > longer
> > NULL, triggering the BUG_ON(prev). It’s easy to reproduce it by
> > adding mdelay()
> > after rt6_get_pcpu_route(). Using preempt_disable/enable is not
> > appropriate here
> > because ip6_rt_pcpu_alloc() may sleep.
> >
> > [Fix]
> >
> > Fix this by handling the cmpxchg() failure gracefully on PREEMPT_RT:
> > free our
> > allocation and return the existing pcpu_rt installed by another
> > task. The BUG_ON
> > is replaced by WARN_ON_ONCE for non-PREEMPT_RT kernels where such
> > races should not occur.
> >
> > [Test Plan]
> >
> > I have successfully compiled and boot tested each realtime
> > derivative kernel this patch is
> > submitted for.
> >
> > [Where problems could occur]
> >
> > Since this patch only changes code that is enabled when
> > CONFIG_PREEMPT_RT is enabled, this should only affect realtime
> > derivative kernels. This means that any regression or behavioral
> change
> > potential should be limited to realtime derivative kernels only. In
> that
> > subset, problems could occur in the network stack's ipv6 logic, since
> > that is what the patch modifies.
> >
> > Jiayuan Chen (1):
> > ipv6: fix a BUG in rt6_get_pcpu_route() under PREEMPT_RT
> >
> > net/ipv6/route.c | 13 ++++++++++++-
> > 1 file changed, 12 insertions(+), 1 deletion(-)
> >
> > --
> > 2.43.0
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20260323/4b79e8a9/attachment.html>
More information about the kernel-team
mailing list