static void write_bulk_callback(struct urb *urb)
 {
        struct net_device_stats *stats;
+       struct net_device *netdev;
        unsigned long flags;
        struct tx_agg *agg;
        struct r8152 *tp;
        if (!tp)
                return;
 
-       stats = rtl8152_get_stats(tp->netdev);
+       netdev = tp->netdev;
+       stats = rtl8152_get_stats(netdev);
        if (status) {
                if (net_ratelimit())
-                       netdev_warn(tp->netdev, "Tx status %d\n", status);
+                       netdev_warn(netdev, "Tx status %d\n", status);
                stats->tx_errors += agg->skb_num;
        } else {
                stats->tx_packets += agg->skb_num;
 
        usb_autopm_put_interface_async(tp->intf);
 
-       if (!netif_carrier_ok(tp->netdev))
+       if (!netif_carrier_ok(netdev))
                return;
 
        if (!test_bit(WORK_ENABLE, &tp->flags))