On Sunday 29 April 2007 11:15, Michael Buesch wrote: > On Sunday 29 April 2007 02:33:45 Jiri Benc wrote: > > @@ -631,7 +632,8 @@ struct ieee80211_ops { > > * we need to combine the multicast lists and flags for multiple > > * virtual interfaces), they cannot assign set_multicast_list. > > * The parameters here replace dev->flags and dev->mc_count, > > - * dev->mc_list is replaced by calling ieee80211_get_mc_list_item. */ > > + * dev->mc_list is replaced by calling ieee80211_get_mc_list_item. > > + * Must be atomic. */ > > void (*set_multicast_list)(struct ieee80211_hw *hw, > > unsigned short flags, int mc_count); > > Why is that required to be atomic, actually? Because set_multicast_list callback inside the netdevice structure is also called atomically. So if this should be moved out of atomic context either the kernel shouldn't call it from atomic context or mac80211 needs to reschedule the call to the driver. Ivo - 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