Changeset 3075
- Timestamp:
- 12/23/07 21:11:05 (4 years ago)
- Files:
-
- madwifi/trunk/net80211/ieee80211_input.c (modified) (1 diff)
- madwifi/trunk/net80211/ieee80211_output.c (modified) (6 diffs)
- madwifi/trunk/net80211/ieee80211_power.c (modified) (6 diffs)
- madwifi/trunk/net80211/ieee80211_power.h (modified) (1 diff)
- madwifi/trunk/net80211/ieee80211_proto.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
madwifi/trunk/net80211/ieee80211_input.c
r3069 r3075 3732 3732 M_PWR_SAV_SET(skb); /* ensure MORE_DATA bit is set correctly */ 3733 3733 3734 ieee80211_parent_queue_xmit(skb); /* Submit to parent device, including updating stats */3734 (void)ieee80211_parent_queue_xmit(skb); /* Submit to parent device, including updating stats */ 3735 3735 } 3736 3736 madwifi/trunk/net80211/ieee80211_output.c
r3074 r3075 233 233 if (vap->iv_opmode == IEEE80211_M_MONITOR) { 234 234 ieee80211_monitor_encap(vap, skb); 235 ieee80211_parent_queue_xmit(skb); 236 return 0; 235 return ieee80211_parent_queue_xmit(skb); 237 236 } 238 237 … … 249 248 else 250 249 ni = ieee80211_find_txnode(vap, eh->ether_dhost); 251 252 250 if (ni == NULL) { 253 251 /* NB: ieee80211_find_txnode does stat+msg */ 254 252 goto bad; 255 253 } 254 256 255 /* calculate priority so drivers can find the TX queue */ 257 256 if (ieee80211_classify(ni, skb)) { … … 269 268 M_FLAG_SET(skb, M_UAPSD); 270 269 } else if ((ni->ni_flags & IEEE80211_NODE_PWR_MGT)) { 271 /* 272 * Station in power save mode; stick the frame 270 /* Station in power save mode; stick the frame 273 271 * on the STA's power save queue and continue. 274 * We'll get the frame back when the time is right. 275 */ 276 ieee80211_pwrsave(ni, skb); 272 * We'll get the frame back when the time is right. */ 277 273 ieee80211_unref_node(&ni); 278 return 0;274 return ieee80211_pwrsave(skb); 279 275 } 280 276 … … 294 290 SKB_CB(skb1)->ni = ieee80211_find_txnode(vap->iv_xrvap, 295 291 eh->ether_dhost); 296 ieee80211_parent_queue_xmit(skb1); 292 /* Ignore this return code. */ 293 (void)ieee80211_parent_queue_xmit(skb1); 297 294 } 298 295 } 299 296 #endif 300 ieee80211_parent_queue_xmit(skb);301 297 ieee80211_unref_node(&ni); 302 return 0;298 return ieee80211_parent_queue_xmit(skb); 303 299 304 300 bad: … … 310 306 } 311 307 312 voidieee80211_parent_queue_xmit(struct sk_buff *skb) {308 int ieee80211_parent_queue_xmit(struct sk_buff *skb) { 313 309 struct ieee80211vap *vap = skb->dev->priv; 310 int ret; 314 311 315 312 vap->iv_devstats.tx_packets++; … … 320 317 skb->dev = vap->iv_ic->ic_dev; 321 318 322 if ( dev_queue_xmit(skb) == NET_XMIT_DROP)319 if ((ret = dev_queue_xmit(skb)) == NET_XMIT_DROP) 323 320 vap->iv_devstats.tx_dropped++; 321 322 return ret; 324 323 } 325 324 madwifi/trunk/net80211/ieee80211_power.c
r3074 r3075 53 53 #include <net80211/ieee80211_proto.h> 54 54 55 #ifndef NETDEV_TX_OK 56 #define NETDEV_TX_OK 0 57 #define NETDEV_TX_BUSY 1 58 #endif 59 55 60 static void ieee80211_set_tim(struct ieee80211_node *ni, int set); 56 61 … … 206 211 * is changed, if necessary. 207 212 */ 208 void 209 ieee80211_pwrsave(struct ieee80211_node *ni, struct sk_buff *skb) 210 { 213 int 214 ieee80211_pwrsave(struct sk_buff *skb) 215 { 216 struct ieee80211_node *ni = SKB_CB(skb)->ni; 211 217 struct ieee80211vap *vap = ni->ni_vap; 212 218 struct ieee80211com *ic = ni->ni_ic; … … 227 233 ieee80211_unref_node(&SKB_CB(skb)->ni); 228 234 ieee80211_dev_kfree_skb(&skb); 229 return ;235 return NETDEV_TX_BUSY; 230 236 } 231 237 … … 254 260 if (qlen == 1 && vap->iv_set_tim != NULL) 255 261 vap->iv_set_tim(ni, 1); 262 263 return NETDEV_TX_OK; 256 264 } 257 265 … … 332 340 #endif 333 341 334 ieee80211_parent_queue_xmit(skb);342 (void)ieee80211_parent_queue_xmit(skb); 335 343 } 336 344 vap->iv_set_tim(ni, 0); … … 373 381 if (skb == NULL) 374 382 break; 375 ieee80211_parent_queue_xmit(skb);383 (void)ieee80211_parent_queue_xmit(skb); 376 384 } 377 385 } madwifi/trunk/net80211/ieee80211_power.h
r1441 r3075 48 48 int ieee80211_node_saveq_drain(struct ieee80211_node *); 49 49 int ieee80211_node_saveq_age(struct ieee80211_node *); 50 void ieee80211_pwrsave(struct ieee80211_node *,struct sk_buff *);50 int ieee80211_pwrsave(struct sk_buff *); 51 51 void ieee80211_node_pwrsave(struct ieee80211_node *, int); 52 52 void ieee80211_sta_pwrsave(struct ieee80211vap *, int); madwifi/trunk/net80211/ieee80211_proto.h
r3069 r3075 72 72 void ieee80211_recv_mgmt(struct ieee80211_node *, struct sk_buff *, 73 73 int, int, u_int64_t); 74 void ieee80211_sta_pwrsave(struct ieee80211vap *, int);75 74 int ieee80211_hardstart(struct sk_buff *, struct net_device *); 76 voidieee80211_parent_queue_xmit(struct sk_buff *);75 int ieee80211_parent_queue_xmit(struct sk_buff *); 77 76 int ieee80211_send_nulldata(struct ieee80211_node *); 78 77 int ieee80211_send_qosnulldata(struct ieee80211_node *, int); … … 84 83 const u_int8_t *, size_t, const void *, size_t); 85 84 struct sk_buff *ieee80211_encap(struct ieee80211_node *, struct sk_buff *, int *); 86 void ieee80211_pwrsave(struct ieee80211_node *, struct sk_buff *);87 85 88 86 void ieee80211_reset_erp(struct ieee80211com *, enum ieee80211_phymode);
