]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/sis900.c
sis900: Allocate rx replacement buffer before rx operation
[linux-2.6-omap-h63xx.git] / drivers / net / sis900.c
index dea0126723daa562451663854424d19ac02dade3..2cb2e156c7587cbd1878ab743b3fda3f754ac41f 100644 (file)
@@ -1753,6 +1753,7 @@ static int sis900_rx(struct net_device *net_dev)
                        sis_priv->rx_ring[entry].cmdsts = RX_BUF_SIZE;
                } else {
                        struct sk_buff * skb;
+                       struct sk_buff * rx_skb;
 
                        pci_unmap_single(sis_priv->pci_dev,
                                sis_priv->rx_ring[entry].bufptr, RX_BUF_SIZE,
@@ -1786,10 +1787,10 @@ static int sis900_rx(struct net_device *net_dev)
                        }
 
                        /* give the socket buffer to upper layers */
-                       skb = sis_priv->rx_skbuff[entry];
-                       skb_put(skb, rx_size);
-                       skb->protocol = eth_type_trans(skb, net_dev);
-                       netif_rx(skb);
+                       rx_skb = sis_priv->rx_skbuff[entry];
+                       skb_put(rx_skb, rx_size);
+                       rx_skb->protocol = eth_type_trans(rx_skb, net_dev);
+                       netif_rx(rx_skb);
 
                        /* some network statistics */
                        if ((rx_status & BCAST) == MCAST)