small patch - 2.4.21-pre7 net/core/bk

From: Grzegorz Jaskiewicz (gj@pointblue.com.pl)
Date: Mon Apr 21 2003 - 13:46:50 EST


Maybe i just don't understeand this part of code, but i think we should
not give calling driver five chances :)

---------------------------------------------------------------
--- net/core/skbuff.c 2003-04-21 19:43:10.000000000 +0100
+++ net/core/skbuff.c.org 2003-04-21 19:42:35.000000000 +0100
@@ -167,9 +167,13 @@
        u8 *data;
 
        if (in_interrupt() && (gfp_mask & __GFP_WAIT)) {
- printk(KERN_ERR "alloc_skb called nonatomically "
- "from interrupt %p\n", NET_CALLER(size));
- BUG();
+ static int count = 0;
+ if (++count < 5) {
+ printk(KERN_ERR "alloc_skb called nonatomically
"
+ "from interrupt %p\n", NET_CALLER(size));
+ BUG();
+ }
+ gfp_mask &= ~__GFP_WAIT;
        }
 
        /* Get the HEAD */
---------------------------------------------------------------

Also, i am bit confused with this part :
     /* Get the DATA. Size must match skb_add_mtu(). */
        size = SKB_DATA_ALIGN(size);
        data = kmalloc(size + sizeof(struct skb_shared_info), gfp_mask);
        if (data == NULL)
                goto nodata;

        /* XXX: does not include slab overhead */
        skb->truesize = size + sizeof(struct sk_buff);

can anybody explain me please why skb->truesize gets size+sizeof(struct
sk_buff) (acording to XXX above it, it is incorrect).

-- 
Grzegorz Jaskiewicz aka Kain/K4
K4 labs

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



This archive was generated by hypermail 2b29 : Wed Apr 23 2003 - 22:00:30 EST