#include <linux/ip.h>
  #include <linux/ipv6.h>
  #include <net/ip6_checksum.h>
 +#include <uapi/linux/mdio.h>
 +#include <linux/mdio.h>
  
  /* Version Information */
- #define DRIVER_VERSION "v1.06.0 (2014/03/03)"
+ #define DRIVER_VERSION "v1.06.1 (2014/10/01)"
  #define DRIVER_AUTHOR "Realtek linux nic maintainers <nic_swsd@realtek.com>"
  #define DRIVER_DESC "Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"
  #define MODULENAME "r8152"
        for (i = 0; i < 1000; i++) {
                if (ocp_read_word(tp, MCU_TYPE_PLA, PLA_TCR0) & TCR0_TX_EMPTY)
                        break;
 -              mdelay(1);
 +              usleep_range(1000, 2000);
        }
  
-       for (i = 0; i < RTL8152_MAX_RX; i++)
-               usb_kill_urb(tp->rx_info[i].urb);
+       rtl_stop_rx(tp);
  
        rtl8152_nic_reset(tp);
  }
                } else {
                        tp->rtl_ops.up(tp);
                        rtl8152_set_speed(tp, AUTONEG_ENABLE,
 -                              tp->mii.supports_gmii ? SPEED_1000 : SPEED_100,
 -                              DUPLEX_FULL);
 +                                        tp->mii.supports_gmii ?
 +                                        SPEED_1000 : SPEED_100,
 +                                        DUPLEX_FULL);
+                       tp->speed = 0;
+                       netif_carrier_off(tp->netdev);
+                       set_bit(WORK_ENABLE, &tp->flags);
                }
-               tp->speed = 0;
-               netif_carrier_off(tp->netdev);
-               set_bit(WORK_ENABLE, &tp->flags);
                usb_submit_urb(tp->intr_urb, GFP_KERNEL);
        }