Hi, So I guess after all the discussion, you should amend the commit log a bit, certainly at least to mention the hidden-node issue. Regarding the patch itself, I'm not super happy with how big it is, some additional comments below: > +struct mesh_tx_queue { > + struct list_head list; > + struct sk_buff *skb; > +}; This seems awkward, what's wrong with using an SKB list (struct sk_buff_head, skb_queue_* etc)? > + /* Spinlock for trasmitted MPATH frames */ > + spinlock_t mesh_tx_queue_lock; That would also contain the extra spinlock. > + struct mesh_tx_queue tx_queue; This was always a bad idea, since you never need the skb pointer here - should've just used struct list_head. > + int tx_queue_len; Also contained in the skb queue. > + struct delayed_work tx_work; I don't really see any value here for a delayed work - a pure timer would work just as well? Also, these fields should be in ifmsh, I think? johannes