On 2016-08-11 15:02, Eduardo Abinader wrote:
> On 11.08.2016 14:16, Felix Fietkau wrote:
>> On 2016-08-11 14:02, Eduardo Abinader wrote:
>>> When netifd failed to load a valid configuration, after an invalid one,
>>> it was not possible to setup the wireless device. This patch
>>> aims to track this situation and behave acordingly, by keeping
>>> track of failed setup without affecting autostart behavior. Also
>>> block the restart of the wdev, when not applied.
>>>
>>> Signed-off-by: Eduardo Abinader <eduardoabina...@gmail.com>
>>> ---
>>>  wireless.c | 26 ++++++++++++++++++++------
>>>  wireless.h |  1 +
>>>  2 files changed, 21 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/wireless.c b/wireless.c
>>> index 34dd328..1212a77 100644
>>> --- a/wireless.c
>>> +++ b/wireless.c
>>> @@ -287,7 +287,7 @@ __wireless_device_set_up(struct wireless_device *wdev)
>>>     if (wdev->disabled)
>>>             return;
>>>  
>>> -   if (wdev->state != IFS_DOWN || config_init)
>>> +   if ((wdev->config_state != IFC_RELOAD) && (wdev->state != IFS_DOWN || 
>>> config_init))
>>>             return;
>>>  
>>>     free(wdev->prev_config);
>> This part looks like it should be dropped now.
>> 
> 
> Based on your next comment, right? I mean, replace by the proper
> placement of earlier return of __wireless_device_set_up on
> reload/autostart/retry_setup, ok?
Yes.

>>> @@ -681,6 +693,7 @@ wireless_device_create(struct wireless_driver *drv, 
>>> const char *name, struct blo
>>>     wdev->config_state = IFC_NORMAL;
>>>     wdev->name = strcpy(name_buf, name);
>>>     wdev->config = data;
>>> +   wdev->retry_setup_failed = false;
>>>     wdev->config_autostart = true;
>>>     wdev->autostart = wdev->config_autostart;
>>>     INIT_LIST_HEAD(&wdev->script_proc);
>>> @@ -991,6 +1004,7 @@ wireless_start_pending(void)
>>>     struct wireless_device *wdev;
>>>  
>>>     vlist_for_each_element(&wireless_devices, wdev, node)
>>> -           if (wdev->autostart)
>>> +           if (wdev->autostart && wdev->state == IFS_DOWN)
>> Why did you make this change?
>> 
> 
> To avoid settinp up wdev while a teardown is still in progress, I
> noticed the previous hostapd instance was still running, so it seems
> more appropriate to defer it to wireless_device_check_script_tasks.
> Should it be a separate patch?
I think the issue you're trying to work around here is actually
introduced by that other change above that I suggested removing.
If that's the case, you can drop this one as well.

- Felix

_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to