sky2: WoL changes
[safe/jmp/linux-2.6] / drivers / net / sc92031.c
index e3156c9..00ff899 100644 (file)
@@ -428,9 +428,9 @@ static void _sc92031_set_mar(struct net_device *dev)
        void __iomem *port_base = priv->port_base;
        u32 mar0 = 0, mar1 = 0;
 
-       if ((dev->flags & IFF_PROMISC)
-                       || dev->mc_count > multicast_filter_limit
-                       || (dev->flags & IFF_ALLMULTI))
+       if ((dev->flags & IFF_PROMISC) ||
+           netdev_mc_count(dev) > multicast_filter_limit ||
+           (dev->flags & IFF_ALLMULTI))
                mar0 = mar1 = 0xffffffff;
        else if (dev->flags & IFF_MULTICAST) {
                struct dev_mc_list *mc_list;
@@ -777,10 +777,10 @@ static void _sc92031_rx_tasklet(struct net_device *dev)
 
                rx_ring_offset = (rx_ring_offset + 4) % RX_BUF_LEN;
 
-               if (unlikely(rx_status == 0
-                               || rx_size > (MAX_ETH_FRAME_SIZE + 4)
-                               || rx_size < 16
-                               || !(rx_status & RxStatesOK))) {
+               if (unlikely(rx_status == 0 ||
+                            rx_size > (MAX_ETH_FRAME_SIZE + 4) ||
+                            rx_size < 16 ||
+                            !(rx_status & RxStatesOK))) {
                        _sc92031_rx_tasklet_error(dev, rx_status, rx_size);
                        break;
                }
@@ -793,7 +793,7 @@ static void _sc92031_rx_tasklet(struct net_device *dev)
 
                rx_len -= rx_size_align + 4;
 
-               skb = netdev_alloc_skb(dev, pkt_size + NET_IP_ALIGN);
+               skb = netdev_alloc_skb_ip_align(dev, pkt_size);
                if (unlikely(!skb)) {
                        if (printk_ratelimit())
                                printk(KERN_ERR "%s: Couldn't allocate a skb_buff for a packet of size %u\n",
@@ -801,8 +801,6 @@ static void _sc92031_rx_tasklet(struct net_device *dev)
                        goto next;
                }
 
-               skb_reserve(skb, NET_IP_ALIGN);
-
                if ((rx_ring_offset + pkt_size) > RX_BUF_LEN) {
                        memcpy(skb_put(skb, RX_BUF_LEN - rx_ring_offset),
                                rx_ring + rx_ring_offset, RX_BUF_LEN - rx_ring_offset);
@@ -941,7 +939,8 @@ static struct net_device_stats *sc92031_get_stats(struct net_device *dev)
        return &dev->stats;
 }
 
-static int sc92031_start_xmit(struct sk_buff *skb, struct net_device *dev)
+static netdev_tx_t sc92031_start_xmit(struct sk_buff *skb,
+                                     struct net_device *dev)
 {
        struct sc92031_priv *priv = netdev_priv(dev);
        void __iomem *port_base = priv->port_base;
@@ -1590,7 +1589,7 @@ out:
        return 0;
 }
 
-static struct pci_device_id sc92031_pci_device_id_table[] __devinitdata = {
+static DEFINE_PCI_DEVICE_TABLE(sc92031_pci_device_id_table) = {
        { PCI_DEVICE(PCI_VENDOR_ID_SILAN, 0x2031) },
        { PCI_DEVICE(PCI_VENDOR_ID_SILAN, 0x8139) },
        { PCI_DEVICE(0x1088, 0x2031) },