WAN: convert drivers to use built-in netdev_stats
There is no point in using separate net_device_stats structs when the one in struct net_device is present. Compiles. Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:

کامیت شده توسط
Jeff Garzik

والد
844290e560
کامیت
198191c4a7
@@ -136,7 +136,6 @@ typedef struct pvc_device_struct {
|
||||
}pvc_device;
|
||||
|
||||
struct pvc_desc {
|
||||
struct net_device_stats stats;
|
||||
pvc_device *pvc;
|
||||
};
|
||||
|
||||
@@ -184,11 +183,6 @@ static inline struct pvc_desc* pvcdev_to_desc(struct net_device *dev)
|
||||
return dev->priv;
|
||||
}
|
||||
|
||||
static inline struct net_device_stats* pvc_get_stats(struct net_device *dev)
|
||||
{
|
||||
return &pvcdev_to_desc(dev)->stats;
|
||||
}
|
||||
|
||||
static inline pvc_device* find_pvc(hdlc_device *hdlc, u16 dlci)
|
||||
{
|
||||
pvc_device *pvc = state(hdlc)->first_pvc;
|
||||
@@ -425,7 +419,6 @@ static int pvc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
||||
static int pvc_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
pvc_device *pvc = pvcdev_to_desc(dev)->pvc;
|
||||
struct net_device_stats *stats = pvc_get_stats(dev);
|
||||
|
||||
if (pvc->state.active) {
|
||||
if (dev->type == ARPHRD_ETHER) {
|
||||
@@ -435,7 +428,7 @@ static int pvc_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
if (skb_tailroom(skb) < pad)
|
||||
if (pskb_expand_head(skb, 0, pad,
|
||||
GFP_ATOMIC)) {
|
||||
stats->tx_dropped++;
|
||||
dev->stats.tx_dropped++;
|
||||
dev_kfree_skb(skb);
|
||||
return 0;
|
||||
}
|
||||
@@ -445,17 +438,17 @@ static int pvc_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
skb->protocol = __constant_htons(ETH_P_802_3);
|
||||
}
|
||||
if (!fr_hard_header(&skb, pvc->dlci)) {
|
||||
stats->tx_bytes += skb->len;
|
||||
stats->tx_packets++;
|
||||
dev->stats.tx_bytes += skb->len;
|
||||
dev->stats.tx_packets++;
|
||||
if (pvc->state.fecn) /* TX Congestion counter */
|
||||
stats->tx_compressed++;
|
||||
dev->stats.tx_compressed++;
|
||||
skb->dev = pvc->frad;
|
||||
dev_queue_xmit(skb);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
stats->tx_dropped++;
|
||||
dev->stats.tx_dropped++;
|
||||
dev_kfree_skb(skb);
|
||||
return 0;
|
||||
}
|
||||
@@ -955,7 +948,7 @@ static int fr_rx(struct sk_buff *skb)
|
||||
|
||||
|
||||
if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) {
|
||||
dev_to_hdlc(frad)->stats.rx_dropped++;
|
||||
frad->stats.rx_dropped++;
|
||||
return NET_RX_DROP;
|
||||
}
|
||||
|
||||
@@ -1003,11 +996,10 @@ static int fr_rx(struct sk_buff *skb)
|
||||
}
|
||||
|
||||
if (dev) {
|
||||
struct net_device_stats *stats = pvc_get_stats(dev);
|
||||
stats->rx_packets++; /* PVC traffic */
|
||||
stats->rx_bytes += skb->len;
|
||||
dev->stats.rx_packets++; /* PVC traffic */
|
||||
dev->stats.rx_bytes += skb->len;
|
||||
if (pvc->state.becn)
|
||||
stats->rx_compressed++;
|
||||
dev->stats.rx_compressed++;
|
||||
netif_rx(skb);
|
||||
return NET_RX_SUCCESS;
|
||||
} else {
|
||||
@@ -1016,7 +1008,7 @@ static int fr_rx(struct sk_buff *skb)
|
||||
}
|
||||
|
||||
rx_error:
|
||||
dev_to_hdlc(frad)->stats.rx_errors++; /* Mark error */
|
||||
frad->stats.rx_errors++; /* Mark error */
|
||||
dev_kfree_skb_any(skb);
|
||||
return NET_RX_DROP;
|
||||
}
|
||||
@@ -1122,7 +1114,6 @@ static int fr_add_pvc(struct net_device *frad, unsigned int dlci, int type)
|
||||
dlci_to_q922(dev->broadcast, dlci);
|
||||
}
|
||||
dev->hard_start_xmit = pvc_xmit;
|
||||
dev->get_stats = pvc_get_stats;
|
||||
dev->open = pvc_open;
|
||||
dev->stop = pvc_close;
|
||||
dev->do_ioctl = pvc_ioctl;
|
||||
|
مرجع در شماره جدید
Block a user