Merge to Fedora kernel-2.6.7-1.441
[linux-2.6.git] / drivers / net / e1000 / e1000_main.c
index 8a8173c..b575268 100644 (file)
@@ -52,7 +52,7 @@
 
 char e1000_driver_name[] = "e1000";
 char e1000_driver_string[] = "Intel(R) PRO/1000 Network Driver";
-char e1000_driver_version[] = "5.2.52-k2";
+char e1000_driver_version[] = "5.2.52-k4";
 char e1000_copyright[] = "Copyright (c) 1999-2004 Intel Corporation.";
 
 /* e1000_pci_tbl - PCI Device ID Table
@@ -2143,6 +2143,7 @@ e1000_clean(struct net_device *netdev, int *budget)
        if(work_done < work_to_do || !netif_running(netdev)) {
                netif_rx_complete(netdev);
                e1000_irq_enable(adapter);
+               return 0;
        }
 
        return (work_done >= work_to_do);
@@ -2366,7 +2367,6 @@ e1000_alloc_rx_buffers(struct e1000_adapter *adapter)
        struct e1000_rx_desc *rx_desc;
        struct e1000_buffer *buffer_info;
        struct sk_buff *skb;
-       int reserve_len = 2;
        unsigned int i;
 
        i = rx_ring->next_to_use;
@@ -2375,7 +2375,7 @@ e1000_alloc_rx_buffers(struct e1000_adapter *adapter)
        while(!buffer_info->skb) {
                rx_desc = E1000_RX_DESC(*rx_ring, i);
 
-               skb = dev_alloc_skb(adapter->rx_buffer_len + reserve_len);
+               skb = dev_alloc_skb(adapter->rx_buffer_len + NET_IP_ALIGN);
 
                if(!skb) {
                        /* Better luck next round */
@@ -2386,7 +2386,7 @@ e1000_alloc_rx_buffers(struct e1000_adapter *adapter)
                 * this will result in a 16 byte aligned IP header after
                 * the 14 byte MAC header is removed
                 */
-               skb_reserve(skb, reserve_len);
+               skb_reserve(skb, NET_IP_ALIGN);
 
                skb->dev = netdev;
 
@@ -2503,7 +2503,7 @@ static int
 e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
 {
        struct e1000_adapter *adapter = netdev->priv;
-       struct mii_ioctl_data *data = (struct mii_ioctl_data *)&ifr->ifr_data;
+       struct mii_ioctl_data *data = if_mii(ifr);
        int retval;
        uint16_t mii_reg;
        uint16_t spddplx;