@@ -49,12 +49,13 @@ static void mac802154_xmit_worker(struct work_struct *work)
49
49
struct wpan_xmit_cb * cb = container_of (work , struct wpan_xmit_cb , work );
50
50
struct ieee802154_local * local = cb -> local ;
51
51
struct sk_buff * skb = cb -> skb ;
52
+ struct net_device * dev = skb -> dev ;
52
53
int res ;
53
54
54
55
rtnl_lock ();
55
56
56
57
/* check if ifdown occurred while schedule */
57
- if (!netif_running (skb -> dev ))
58
+ if (!netif_running (dev ))
58
59
goto err_tx ;
59
60
60
61
res = local -> ops -> xmit_sync (& local -> hw , skb );
@@ -63,6 +64,9 @@ static void mac802154_xmit_worker(struct work_struct *work)
63
64
64
65
ieee802154_xmit_complete (& local -> hw , skb );
65
66
67
+ dev -> stats .tx_packets ++ ;
68
+ dev -> stats .tx_bytes += skb -> len ;
69
+
66
70
rtnl_unlock ();
67
71
68
72
return ;
@@ -72,13 +76,14 @@ static void mac802154_xmit_worker(struct work_struct *work)
72
76
ieee802154_wake_queue (& local -> hw );
73
77
rtnl_unlock ();
74
78
kfree_skb (skb );
75
- netdev_dbg (skb -> dev , "transmission failed\n" );
79
+ netdev_dbg (dev , "transmission failed\n" );
76
80
}
77
81
78
82
static netdev_tx_t
79
83
mac802154_tx (struct ieee802154_local * local , struct sk_buff * skb )
80
84
{
81
85
struct wpan_xmit_cb * cb = wpan_xmit_cb (skb );
86
+ struct net_device * dev = skb -> dev ;
82
87
int ret ;
83
88
84
89
mac802154_monitors_rx (local , skb );
@@ -102,6 +107,9 @@ mac802154_tx(struct ieee802154_local *local, struct sk_buff *skb)
102
107
ieee802154_wake_queue (& local -> hw );
103
108
goto err_tx ;
104
109
}
110
+
111
+ dev -> stats .tx_packets ++ ;
112
+ dev -> stats .tx_bytes += skb -> len ;
105
113
} else {
106
114
INIT_WORK (& cb -> work , mac802154_xmit_worker );
107
115
cb -> skb = skb ;
@@ -122,8 +130,6 @@ netdev_tx_t mac802154_monitor_xmit(struct sk_buff *skb, struct net_device *dev)
122
130
struct ieee802154_sub_if_data * sdata = IEEE802154_DEV_TO_SUB_IF (dev );
123
131
124
132
skb -> skb_iif = dev -> ifindex ;
125
- dev -> stats .tx_packets ++ ;
126
- dev -> stats .tx_bytes += skb -> len ;
127
133
128
134
return mac802154_tx (sdata -> local , skb );
129
135
}
@@ -141,8 +147,6 @@ netdev_tx_t mac802154_wpan_xmit(struct sk_buff *skb, struct net_device *dev)
141
147
}
142
148
143
149
skb -> skb_iif = dev -> ifindex ;
144
- dev -> stats .tx_packets ++ ;
145
- dev -> stats .tx_bytes += skb -> len ;
146
150
147
151
return mac802154_tx (sdata -> local , skb );
148
152
}
0 commit comments