[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1329998028.15610.14.camel@edumazet-laptop>
Date: Thu, 23 Feb 2012 12:53:48 +0100
From: Eric Dumazet <eric.dumazet@...il.com>
To: Francois Romieu <romieu@...zoreil.com>
Cc: Shreyas Bhatewara <sbhatewara@...are.com>,
Jongman Heo <jongman.heo@...sung.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"Scott J. Goldman" <scottjg@...are.com>,
VMware PV-Drivers <pv-drivers@...are.com>,
Peter Zijlstra <peterz@...radead.org>
Subject: Re: Re: WARNING: at kernel/softirq.c:159
_local_bh_enable_ip+0x35/0x71()
Le jeudi 23 février 2012 à 11:42 +0100, Francois Romieu a écrit :
> (Heo, your mua broke threading)
>
> Jongman Heo <jongman.heo@...sung.com> :
> > Francois Romieu<romieu@...zoreil.com>
> > > > Jongman Heo <jongman.heo@...sung.com> :
> > > > Following warning triggered with my VMware Linux guest, when NFS connection is requested from outside.
> > >
> > > I'd try reverting 39d4a96fd7d2926e46151adbd18b810aeeea8ec0.
> [...]
> > I confirm that reverting the commit fixes the warning.
>
> Shreyas, can you provide a proper fix for this bug (see
> http://www.spinics.net/lists/netdev/msg189554.html for details).
>
> As far as I understand it you can not claim a fake transport layer header
> size for udp and blindly check the available buffer size through
> pskb_may_pull later. With a 32 bits HIGHMEM guest config (yuck...) it ends
> up enabling bh within a network device start_xmit context.
>
Hmm, I am not sure we still need local_bh_disable()/local_bh_enable() in
kmap_skb_frag()/ kunmap_skb_frag() anymore after commit 3e4d3af501ccc
(mm: stack based kmap_atomic() )
diff --git a/net/core/kmap_skb.h b/net/core/kmap_skb.h
index 81e1ed7..06be5ee 100644
--- a/net/core/kmap_skb.h
+++ b/net/core/kmap_skb.h
@@ -2,18 +2,10 @@
static inline void *kmap_skb_frag(const skb_frag_t *frag)
{
-#ifdef CONFIG_HIGHMEM
- BUG_ON(in_irq());
-
- local_bh_disable();
-#endif
return kmap_atomic(skb_frag_page(frag), KM_SKB_DATA_SOFTIRQ);
}
static inline void kunmap_skb_frag(void *vaddr)
{
kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
-#ifdef CONFIG_HIGHMEM
- local_bh_enable();
-#endif
}
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists