/* This routine is called when the OS wants the adapter's stats returned. It returns the address of the net_device_stats stucture for the device. If the statistics are currently being updated, then they might be incorrect for a short while. However, since this cannot actually cause damage, no locking is used.  */
struct net_device_stats * usbdrv_get_stats(struct net_device *)
/* This routine is called when the OS wants the adapter's stats returned. It returns the address of the net_device_stats stucture for the device. If the statistics are currently being updated, then they might be incorrect for a short while. However, since this cannot actually cause damage, no locking is used.  */
struct net_device_stats * usbdrv_get_stats(struct net_device *)
{
    struct usbdrv_private *macp = dev->ml_priv;
    macp->drv_stats.net_stats.tx_errors =
        macp->drv_stats.net_stats.tx_carrier_errors +
        macp->drv_stats.net_stats.tx_aborted_errors;
    macp->drv_stats.net_stats.rx_errors =
        macp->drv_stats.net_stats.rx_crc_errors +
        macp->drv_stats.net_stats.rx_frame_errors +
        macp->drv_stats.net_stats.rx_length_errors;
    return &(macp->drv_stats.net_stats);
}