On Fri, 9 Feb 2007 10:56:42 -0500, Michael Wu wrote: > @@ -4096,13 +4084,12 @@ static void ieee80211_tasklet_handler(un > (skb = skb_dequeue(&local->skb_queue_unreliable))) { > switch (skb->pkt_type) { > case ieee80211_rx_msg: > - /* get pointer to saved status out of skb->cb */ > - memcpy(&rx_status, skb->cb, sizeof(rx_status)); > + /* status is in skb->cb */ > + rx_status = (struct ieee80211_rx_status *) skb->cb; > /* Clear skb->type in order to not confuse kernel > * netstack. */ > skb->pkt_type = 0; > __ieee80211_rx(local_to_hw(local), skb, rx_status); Uh, sorry, I haven't noticed it before: you should copy cb to a local rx_status structure as __ieee80211_rx is allowed to destroy the skb, yet it still needs the rx_status. Thanks, Jiri -- Jiri Benc SUSE Labs - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html