vserver 1.9.3
[linux-2.6.git] / drivers / usb / net / rtl8150.c
index 2be3eba..640aa5b 100644 (file)
@@ -160,7 +160,7 @@ 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;
 };
@@ -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);
@@ -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;