On Thu, 2009-10-08 at 21:56 +0300, Luciano Coelho wrote: > + /* first, get the filter parameters */ > + spin_lock_irqsave(&wl->wl_lock, flags); > + fp = wl->filter_params; > + wl->filter_params = NULL; > + spin_unlock_irqrestore(&wl->wl_lock, flags); > + > + if (!fp) > + return; > + kfree(fp); > +static u64 wl1271_op_prepare_multicast(struct ieee80211_hw *hw, int mc_count, > + struct dev_addr_list *mc_list) > +{ > + struct wl1271 *wl = hw->priv; > + struct wl1271_filter_params *fp; > + unsigned long flags; > + int i; > + > + /* > + * FIXME: we should return a hash that will be passed to > + * configure_filter() instead of saving everything in the context. > + */ > + > + fp = kzalloc(sizeof(*fp), GFP_KERNEL); > + if (!fp) { > + wl1271_error("Out of memory setting filters."); > + return 0; > + } It's a u64 on purpose, you can return the parameters struct to pass it through to configure_filter. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part