Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-U10.2

From: K.R. Foley
Date: Sat Oct 23 2004 - 09:05:21 EST


Ingo Molnar wrote:
* K.R. Foley <kr@xxxxxxxxxx> wrote:


Oct 22 14:37:14 swdev14 kernel: BUG: sleeping function called from invalid context ksoftirqd/0(3) at kernel/mutex.c:37
Oct 22 14:37:14 swdev14 kernel: in_atomic():1 [00000001], irqs_disabled():0
Oct 22 14:37:14 swdev14 kernel: [<c011ac3d>] __might_sleep+0xc4/0xd6 (12)
Oct 22 14:37:14 swdev14 kernel: [<c0132ae8>] _mutex_lock+0x3e/0x63 (36)
Oct 22 14:37:14 swdev14 kernel: [<e0a8b297>] ipxitf_find_using_phys+0x1e/0x4c [ipx] (28)
Oct 22 14:37:14 swdev14 kernel: [<e0a8d5a6>] ipx_rcv+0xdc/0x1dd [ipx] (20)
Oct 22 14:37:14 swdev14 kernel: [<c024050b>] snap_rcv+0x5f/0xe0 (32)


does the patch below fix these?

Ingo


I will try reproducing it here (at home). Otherwise it'll have to wait till Monday.

--- linux/net/802/psnap.c.orig
+++ linux/net/802/psnap.c
@@ -55,7 +55,7 @@ static int snap_rcv(struct sk_buff *skb,
.type = __constant_htons(ETH_P_SNAP),
};
- rcu_read_lock();
+ rcu_read_lock_spin(&snap_lock);
proto = find_snap_client(skb->h.raw);
if (proto) {
/* Pass the frame on. */
@@ -68,7 +68,7 @@ static int snap_rcv(struct sk_buff *skb,
rc = 1;
}
- rcu_read_unlock();
+ rcu_read_unlock_spin(&snap_lock);
return rc;
}



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/