[patch] Re: v5.15-rc2-rt3: WARNING: CPU: 0 PID: 12 at ./include/linux/seqlock.h:271

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2021-09-24 at 07:22 +0200, Mike Galbraith wrote:
> Greetings,
>
> I met this lockdep_assert_preemption_disabled() gripe when starting
> ltp zram tests.

Before actually, I just wasn't paying attention.

<snip gripe>

net: bridge: mcast: Disable preemption in br_multicast_update_querier() for RT

write_seqcount_begin() in br_multicast_update_querier() complains about
preemption not being disabled during RT softirq processesing.  Since the
read side spins, disable preemption across the tiny write side for RT.

Signed-off-by: Mike Galbraith <efault@xxxxxx>
---
 net/bridge/br_multicast.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -1679,10 +1679,14 @@ static void br_multicast_update_querier(
 {
 	lockdep_assert_held_once(&brmctx->br->multicast_lock);

+	if (IS_ENABLED(CONFIG_PREEMPT_RT))
+		preempt_disable();
 	write_seqcount_begin(&querier->seq);
 	querier->port_ifidx = ifindex;
 	memcpy(&querier->addr, saddr, sizeof(*saddr));
 	write_seqcount_end(&querier->seq);
+	if (IS_ENABLED(CONFIG_PREEMPT_RT))
+		preempt_enable();
 }

 static void br_multicast_send_query(struct net_bridge_mcast *brmctx,





[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux