/* Check for short packet */
if (urb->actual_length == 0) {
- ++(wlandev->linux_stats.rx_errors);
- ++(wlandev->linux_stats.rx_length_errors);
+ wlandev->netdev->stats.rx_errors++;
+ wlandev->netdev->stats.rx_length_errors++;
action = RESUBMIT;
}
break;
wlandev->netdev->name);
if (!test_and_set_bit(WORK_RX_HALT, &hw->usb_flags))
schedule_work(&hw->usb_work);
- ++(wlandev->linux_stats.rx_errors);
+ wlandev->netdev->stats.rx_errors++;
action = ABORT;
break;
!timer_pending(&hw->throttle)) {
mod_timer(&hw->throttle, jiffies + THROTTLE_JIFFIES);
}
- ++(wlandev->linux_stats.rx_errors);
+ wlandev->netdev->stats.rx_errors++;
action = ABORT;
break;
case -EOVERFLOW:
- ++(wlandev->linux_stats.rx_over_errors);
+ wlandev->netdev->stats.rx_over_errors++;
action = RESUBMIT;
break;
default:
pr_debug("urb status=%d, transfer flags=0x%x\n",
urb->status, urb->transfer_flags);
- ++(wlandev->linux_stats.rx_errors);
+ wlandev->netdev->stats.rx_errors++;
action = RESUBMIT;
break;
}
if (!test_and_set_bit
(WORK_TX_HALT, &hw->usb_flags))
schedule_work(&hw->usb_work);
- ++(wlandev->linux_stats.tx_errors);
+ wlandev->netdev->stats.tx_errors++;
break;
}
mod_timer(&hw->throttle,
jiffies + THROTTLE_JIFFIES);
}
- ++(wlandev->linux_stats.tx_errors);
+ wlandev->netdev->stats.tx_errors++;
netif_stop_queue(wlandev->netdev);
break;
}
default:
netdev_info(wlandev->netdev, "unknown urb->status=%d\n",
urb->status);
- ++(wlandev->linux_stats.tx_errors);
+ wlandev->netdev->stats.tx_errors++;
break;
} /* switch */
}
/* netdevice method functions */
static int p80211knetdev_init(netdevice_t *netdev);
-static struct net_device_stats *p80211knetdev_get_stats(netdevice_t *netdev);
static int p80211knetdev_open(netdevice_t *netdev);
static int p80211knetdev_stop(netdevice_t *netdev);
static int p80211knetdev_hard_start_xmit(struct sk_buff *skb,
return 0;
}
-/*----------------------------------------------------------------
-* p80211knetdev_get_stats
-*
-* Statistics retrieval for linux netdevices. Here we're reporting
-* the Linux i/f level statistics. Hence, for the primary numbers,
-* we don't want to report the numbers from the MIB. Eventually,
-* it might be useful to collect some of the error counters though.
-*
-* Arguments:
-* netdev Linux netdevice
-*
-* Returns:
-* the address of the statistics structure
-----------------------------------------------------------------*/
-static struct net_device_stats *p80211knetdev_get_stats(netdevice_t *netdev)
-{
- wlandevice_t *wlandev = netdev->ml_priv;
-
- /* TODO: review the MIB stats for items that correspond to
- linux stats */
-
- return &(wlandev->linux_stats);
-}
-
/*----------------------------------------------------------------
* p80211knetdev_open
*
if (skb_p80211_to_ether(wlandev, wlandev->ethconv, skb) == 0) {
skb->dev->last_rx = jiffies;
- wlandev->linux_stats.rx_packets++;
- wlandev->linux_stats.rx_bytes += skb->len;
+ wlandev->netdev->stats.rx_packets++;
+ wlandev->netdev->stats.rx_bytes += skb->len;
netif_rx_ni(skb);
return 0;
}
skb->protocol = htons(ETH_P_80211_RAW);
dev->last_rx = jiffies;
- wlandev->linux_stats.rx_packets++;
- wlandev->linux_stats.rx_bytes += skb->len;
+ dev->stats.rx_packets++;
+ dev->stats.rx_bytes += skb->len;
netif_rx_ni(skb);
continue;
} else {
if (skb->protocol != ETH_P_80211_RAW) {
netif_start_queue(wlandev->netdev);
netdev_notice(netdev, "Tx attempt prior to association, frame dropped.\n");
- wlandev->linux_stats.tx_dropped++;
+ netdev->stats.tx_dropped++;
result = 0;
goto failed;
}
netdev->trans_start = jiffies;
- wlandev->linux_stats.tx_packets++;
+ netdev->stats.tx_packets++;
/* count only the packet payload */
- wlandev->linux_stats.tx_bytes += skb->len;
+ netdev->stats.tx_bytes += skb->len;
txresult = wlandev->txframe(wlandev, skb, &p80211_hdr, &p80211_wep);
.ndo_init = p80211knetdev_init,
.ndo_open = p80211knetdev_open,
.ndo_stop = p80211knetdev_stop,
- .ndo_get_stats = p80211knetdev_get_stats,
.ndo_start_xmit = p80211knetdev_hard_start_xmit,
.ndo_set_rx_mode = p80211knetdev_set_multicast_list,
.ndo_do_ioctl = p80211knetdev_do_ioctl,