Thread (5 messages) flat view 5 messages, 3 authors, 2012-01-23

Re: [PATCH/RESEND net 5/5][NON-TRIVIAL] drivers/net/ethernet: dev_alloc_skb to netdev_alloc_skb

From: David Miller <davem@davemloft.net>
Date: 2012-01-23 21:55:41
Also in: lkml

From: Eric Dumazet <redacted>
Date: Mon, 23 Jan 2012 22:04:27 +0100
Le mardi 24 janvier 2012 à 02:24 +0530, Pradeep A. Dalvi a écrit :
quoted
Replaced deprecating dev_alloc_skb with netdev_alloc_skb in drivers/net/ethernet
  - Removed extra skb->dev = dev after netdev_alloc_skb
quoted
 
 /* Initialize the LANCE Rx and Tx rings. */
 static void
-lance_init_ring(struct net_device *dev, gfp_t gfp)
+lance_init_ring(struct net_device *dev)
 {
 	struct lance_private *lp = dev->ml_priv;
 	int i;
@@ -871,13 +871,12 @@ lance_init_ring(struct net_device *dev, gfp_t gfp)
 		struct sk_buff *skb;
 		void *rx_buff;
 
-		skb = alloc_skb(PKT_BUF_SZ, GFP_DMA | gfp);
+		skb = netdev_alloc_skb(dev, PKT_BUF_SZ);
 		lp->rx_skbuff[i] = skb;
-		if (skb) {
-			skb->dev = dev;
+		if (skb)
 			rx_buff = skb->data;
-		} else
-			rx_buff = kmalloc(PKT_BUF_SZ, GFP_DMA | gfp);
+		else
+			rx_buff = kmalloc(PKT_BUF_SZ, GFP_DMA | GFP_AUTOMIC);
 		if (rx_buff == NULL)
 			lp->rx_ring[i].base = 0;
 		else
Thats really crap, please dont send us such patches, not even compiled.

alloc_skb() has nothing to do with dev_alloc_skb(), and there is a
reason GFP_DMA is used in this driver.
This is really terrible.

Pradeep please stop sending these changes until you have your house
in order.  Your patches are buggy and ill conceived.

Please do not submit more patches in this area until you spend the
necessary time to truly understand these interfaces and how these code
snippets actually work.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help