On Wed, Jan 15, 2014 at 2:04 PM, Michal Kazior <michal.kazior@xxxxxxxxx> wrote: > This implements a fairly simple multi-interface > CSA. It doesn't support multiple channel > contexts so it doesn't support multi-channel. > > Once a CSA is started other CSA requests are > denied until the first one is completed. A single > CSA may affect multiple interfaces. CSA can happen > only if it all target CSA chandefs are compatible > and it affects all interfaces are sharing a single > channel context exclusively. > > A new worker is introduced: csa_complete_work > which is used to account per-interface countdowns > and issue the actual channel switch after last > interface completes its CSA. > > Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx> > --- [...] > > +static int ieee80211_ap_beacon_presp_backup(struct ieee80211_sub_if_data *sdata) > +{ > + struct beacon_data *beacon; > + struct probe_resp *probe_resp; > + > + beacon = sdata_dereference(sdata->u.ap.beacon, sdata); > + if (beacon) { > + sdata->u.ap.prev_beacon = kmemdup(beacon, sizeof(beacon) + > + beacon->head_len + > + beacon->tail_len, GFP_KERNEL); > + if (!sdata->u.ap.prev_beacon) > + return -ENOMEM; > + } > + you must also update the pointers here... Eliad. -- 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