vserver 1.9.3
[linux-2.6.git] / drivers / usb / net / rtl8150.c
index 10de618..640aa5b 100644 (file)
@@ -160,14 +160,14 @@ struct rtl8150 {
        spinlock_t rx_pool_lock;
        struct usb_ctrlrequest dr;
        int intr_interval;
-       u16 rx_creg;
+       __le16 rx_creg;
        u8 *intr_buff;
        u8 phy;
 };
 
 typedef struct rtl8150 rtl8150_t;
 
-unsigned long multicast_filter_limit = 32;
+static unsigned long multicast_filter_limit = 32;
 
 static void fill_skb_pool(rtl8150_t *);
 static void free_skb_pool(rtl8150_t *);
@@ -265,7 +265,7 @@ static int read_mii_word(rtl8150_t * dev, u8 phy, __u8 indx, u16 * reg)
 
        if (i < MII_TIMEOUT) {
                get_registers(dev, PHYDAT, 2, data);
-               *reg = le16_to_cpup(data);
+               *reg = data[0] | (data[1] << 8);
                return 0;
        } else
                return 1;
@@ -398,6 +398,21 @@ static void unlink_all_urbs(rtl8150_t * dev)
        usb_unlink_urb(dev->ctrl_urb);
 }
 
+static inline struct sk_buff *pull_skb(rtl8150_t *dev)
+{
+       struct sk_buff *skb;
+       int i;
+
+       for (i = 0; i < RX_SKB_POOL_SIZE; i++) {
+               if (dev->rx_skb_pool[i]) {
+                       skb = dev->rx_skb_pool[i];
+                       dev->rx_skb_pool[i] = NULL;
+                       return skb;
+               }
+       }
+       return NULL;
+}
+
 static void read_bulk_callback(struct urb *urb, struct pt_regs *regs)
 {
        rtl8150_t *dev;
@@ -435,7 +450,7 @@ static void read_bulk_callback(struct urb *urb, struct pt_regs *regs)
                goto goon;
 
        res = urb->actual_length;
-       rx_stat = le16_to_cpu(*(short *)(urb->transfer_buffer + res - 4));
+       rx_stat = le16_to_cpu(*(__le16 *)(urb->transfer_buffer + res - 4));
        pkt_len = res - 4;
 
        skb_put(dev->rx_skb, pkt_len);
@@ -516,7 +531,7 @@ static void write_bulk_callback(struct urb *urb, struct pt_regs *regs)
        netif_wake_queue(dev->netdev);
 }
 
-void intr_callback(struct urb *urb, struct pt_regs *regs)
+static void intr_callback(struct urb *urb, struct pt_regs *regs)
 {
        rtl8150_t *dev;
        __u8 *d;
@@ -603,21 +618,6 @@ static void free_skb_pool(rtl8150_t *dev)
                        dev_kfree_skb(dev->rx_skb_pool[i]);
 }
 
-static inline struct sk_buff *pull_skb(rtl8150_t *dev)
-{
-       struct sk_buff *skb;
-       int i;
-
-       for (i = 0; i < RX_SKB_POOL_SIZE; i++) {
-               if (dev->rx_skb_pool[i]) {
-                       skb = dev->rx_skb_pool[i];
-                       dev->rx_skb_pool[i] = NULL;
-                       return skb;
-               }
-       }
-       return NULL;
-}
-
 static int enable_net_traffic(rtl8150_t * dev)
 {
        u8 cr, tcr, rcr, msr;
@@ -776,13 +776,13 @@ static int rtl8150_close(struct net_device *netdev)
        return res;
 }
 
-static int rtl8150_ethtool_ioctl(struct net_device *netdev, void *uaddr)
+static int rtl8150_ethtool_ioctl(struct net_device *netdev, void __user *uaddr)
 {
        rtl8150_t *dev;
        int cmd;
 
        dev = netdev->priv;
-       if (get_user(cmd, (int *) uaddr))
+       if (get_user(cmd, (int __user *) uaddr))
                return -EFAULT;
 
        switch (cmd) {
@@ -856,7 +856,7 @@ static int rtl8150_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
        int res;
 
        dev = netdev->priv;
-       data = (u16 *) & rq->ifr_data;
+       data = (u16 *) & rq->ifr_ifru;
        res = 0;
 
        switch (cmd) {
@@ -977,13 +977,13 @@ static void rtl8150_disconnect(struct usb_interface *intf)
        }
 }
 
-int __init usb_rtl8150_init(void)
+static int __init usb_rtl8150_init(void)
 {
        info(DRIVER_DESC " " DRIVER_VERSION);
        return usb_register(&rtl8150_driver);
 }
 
-void __exit usb_rtl8150_exit(void)
+static void __exit usb_rtl8150_exit(void)
 {
        usb_deregister(&rtl8150_driver);
 }