patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / drivers / net / ibmveth.c
index c3836f6..5fa162f 100644 (file)
@@ -55,7 +55,6 @@
 #include <asm/iommu.h>
 #include <asm/vio.h>
 #include <asm/uaccess.h>
-#include <linux/proc_fs.h>
 #include <linux/seq_file.h>
 
 #include "ibmveth.h"
@@ -874,14 +873,14 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
        struct net_device *netdev;
        struct ibmveth_adapter *adapter;
 
-       unsigned int *mac_addr_p;
+       unsigned char *mac_addr_p;
        unsigned int *mcastFilterSize_p;
 
 
        ibmveth_debug_printk_no_adapter("entering ibmveth_probe for UA 0x%x\n", 
                                        dev->unit_address);
 
-       mac_addr_p = (unsigned int *) vio_get_attribute(dev, VETH_MAC_ADDR, 0);
+       mac_addr_p = (unsigned char *) vio_get_attribute(dev, VETH_MAC_ADDR, 0);
        if(!mac_addr_p) {
                ibmveth_error_printk("Can't find VETH_MAC_ADDR attribute\n");
                return 0;
@@ -902,7 +901,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
 
        adapter = netdev->priv;
        memset(adapter, 0, sizeof(adapter));
-       dev->driver_data = netdev;
+       dev->dev.driver_data = netdev;
 
        adapter->vdev = dev;
        adapter->netdev = netdev;
@@ -916,8 +915,8 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
                The RPA doc specifies that the first byte must be 10b, so 
                we'll just look for it to solve this 8 vs. 6 byte field issue */
 
-       while (*((char*)mac_addr_p) != (char)(0x02))
-               ((char*)mac_addr_p)++;
+       if ((*mac_addr_p & 0x3) != 0x02)
+               mac_addr_p += 2;
 
        adapter->mac_addr = 0;
        memcpy(&adapter->mac_addr, mac_addr_p, 6);
@@ -935,6 +934,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
        netdev->do_ioctl           = ibmveth_ioctl;
        netdev->ethtool_ops           = &netdev_ethtool_ops;
        netdev->change_mtu         = ibmveth_change_mtu;
+       SET_NETDEV_DEV(netdev, &dev->dev);
 
        memcpy(&netdev->dev_addr, &adapter->mac_addr, netdev->addr_len);
 
@@ -971,7 +971,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
 
 static int __devexit ibmveth_remove(struct vio_dev *dev)
 {
-       struct net_device *netdev = dev->driver_data;
+       struct net_device *netdev = dev->dev.driver_data;
        struct ibmveth_adapter *adapter = netdev->priv;
 
        unregister_netdev(netdev);