On 16 January 2014 12:04, Eliad Peller <eliad@xxxxxxxxxx> wrote: > 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... You're right, thanks! Michał -- 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