Search Linux Wireless

Re: [PATCH v3 13/13] mac80211: implement multi-vif in-place reservations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1 April 2014 10:10, Eliad Peller <eliad@xxxxxxxxxx> wrote:
> On Tue, Apr 1, 2014 at 10:54 AM, Michal Kazior <michal.kazior@xxxxxxxxx> wrote:
>> On 1 April 2014 09:46, Eliad Peller <eliad@xxxxxxxxxx> wrote:
>>> On Tue, Apr 1, 2014 at 8:10 AM, Michal Kazior <michal.kazior@xxxxxxxxx> wrote:
>>>> On 31 March 2014 18:15, Eliad Peller <eliad@xxxxxxxxxx> wrote:
>>>>> On Mon, Mar 31, 2014 at 1:39 PM, Michal Kazior <michal.kazior@xxxxxxxxx> wrote:
>>
>> [...]
>>
>>>>>> +err_unassign:
>>>>>> +       list_for_each_entry_continue_reverse(sdata, &ctx->reserved_vifs,
>>>>>> +                                            reserved_chanctx_list)
>>>>>> +               drv_unassign_vif_chanctx(local, sdata, ctx);
>>>>>> +       ieee80211_del_chanctx(local, new_ctx);
>>>>>> +err_revert:
>>>>>> +       kfree_rcu(new_ctx, rcu_head);
>>>>>> +       WARN_ON(ieee80211_add_chanctx(local, ctx));
>>>>>> +       list_add_rcu(&ctx->list, &local->chanctx_list);
>>>>>> +       list_for_each_entry(sdata, &ctx->reserved_vifs, reserved_chanctx_list) {
>>>>>> +               sdata->radar_required = sdata->reserved_radar_required;
>>>>>> +               rcu_assign_pointer(sdata->vif.chanctx_conf, &ctx->conf);
>>>>>> +               WARN_ON(drv_assign_vif_chanctx(local, sdata, ctx));
>>>>>> +       }
>>>>> seems like the list_for_each_entry should actually be under err_unassign?
>>>>
>>>> No. This is correct. The err_unassign is used to bail out if any
>>>> drv_assign_vif_chanctx fails mid-way. We want to unassign only those
>>>> vif-chanctx we only managed to assign.
>>>>
>>> sure. i failed to explain - i'm referring only to the radar_required
>>> swapping - it seems to happen only later.
>>
>> You mean to split the list_for_each_entry from err_revert into 2
>> parts: one that reverts the radar_required swapping and the other one
>> re-assigning vif-chanctx? I'm not really sure if that's necessary? The
>> `ctx` (old chanctx) should still be configured as it was wrt radar
>> detection. Or is there something that I'm missing?
>>
> ctx is correct, but sdata->radar_required doesn't seem to derive its
> value from it.
> i mean that you should either split the list_for_each_entry as you
> suggested, or move the radar_enabled swapping loop before the
> ieee80211_add_chanctx() call.

Yeah. I'll do that. It seems like a good idea regardless if this makes
no difference with current codebase.


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




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux