Herbert Xu said the following on 2007-12-1 9:54: > On Fri, Nov 30, 2007 at 11:19:49AM +0000, Gerrit Renker wrote: >> | csum_copy_err: >> | - UDP6_INC_STATS_USER(UDP_MIB_INERRORS, is_udplite); >> | + UDP6_INC_STATS_BH(UDP_MIB_INERRORS, is_udplite); >> | skb_kill_datagram(sk, skb, flags); >> | >> | if (flags & MSG_DONTWAIT) >> | >> Is it not the other way round ?? :- > > I agree. Wang Chen, please change this and other appropriate > BH calls to USER. Basically recvmsg should always be USER while > rcv is BH. >
Resubmit the patch. System calls should be USER. So change the BH to USER for UDP*_INC_STATS_BH(). Signed-off-by: Wang Chen <[EMAIL PROTECTED]> --- ipv4/udp.c | 4 ++-- ipv6/udp.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) --- linux-2.6.24.rc3.org/net/ipv4/udp.c 2007-12-03 15:10:49.000000000 +0800 +++ linux-2.6.24.rc3/net/ipv4/udp.c 2007-12-03 14:52:54.000000000 +0800 @@ -874,7 +874,7 @@ try_again: if (err) goto out_free; - UDP_INC_STATS_BH(UDP_MIB_INDATAGRAMS, is_udplite); + UDP_INC_STATS_USER(UDP_MIB_INDATAGRAMS, is_udplite); sock_recv_timestamp(msg, sk, skb); @@ -899,7 +899,7 @@ out: return err; csum_copy_err: - UDP_INC_STATS_BH(UDP_MIB_INERRORS, is_udplite); + UDP_INC_STATS_USER(UDP_MIB_INERRORS, is_udplite); skb_kill_datagram(sk, skb, flags); --- linux-2.6.24.rc3.org/net/ipv6/udp.c 2007-12-03 15:10:49.000000000 +0800 +++ linux-2.6.24.rc3/net/ipv6/udp.c 2007-12-03 15:09:55.000000000 +0800 @@ -164,7 +164,7 @@ try_again: if (err) goto out_free; - UDP6_INC_STATS_BH(UDP_MIB_INDATAGRAMS, is_udplite); + UDP6_INC_STATS_USER(UDP_MIB_INDATAGRAMS, is_udplite); sock_recv_timestamp(msg, sk, skb); -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html