From patchwork Mon Jul 25 13:38:46 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eduardo Abinader X-Patchwork-Id: 652273 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2001:1868:205::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3ryj872q64z9sCy for ; Mon, 25 Jul 2016 23:41:11 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bRg6A-00008l-ER; Mon, 25 Jul 2016 13:39:10 +0000 Received: from eng.riverbed.com ([208.70.196.45] helo=smtp1.riverbed.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bRg68-0008VL-DI for lede-dev@lists.infradead.org; Mon, 25 Jul 2016 13:39:08 +0000 Received: from unknown (HELO tlssmtp) ([10.16.4.52]) by smtp1.riverbed.com with ESMTP; 25 Jul 2016 06:38:48 -0700 Received: from [10.20.14.62] (unknown [5.158.136.57]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by tlssmtp (Postfix) with ESMTP id 97D116B8D9; Mon, 25 Jul 2016 06:38:47 -0700 (PDT) To: lede-dev@lists.infradead.org, openwrt-devel@lists.openwrt.org From: Eduardo Abinader Message-ID: <6afaf1c8-149d-2016-3ad5-c206eb76ab21@riverbed.com> Date: Mon, 25 Jul 2016 15:38:46 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160725_063908_518824_61D2FA9E X-CRM114-Status: UNSURE ( 8.43 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -3.3 (---) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-3.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [208.70.196.45 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -1.4 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Subject: [LEDE-DEV] [PATCH 1/1] netifd: reload wireless device when config changes X-BeenThere: lede-dev@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: nbd@openwrt.org Sender: "Lede-dev" Errors-To: lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Based on config_state to reload, triggered by config changes, make netifd to proceed accordingly, either started via wdev up or netifd reload. Thus the restart of wdev would be based on actual config changes, letting autostart aside from this. Signed-off-by: Eduardo Abinader --- wireless.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/wireless.c b/wireless.c index a6e4fb0..3509095 100644 --- a/wireless.c +++ b/wireless.c @@ -284,7 +284,8 @@ __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); @@ -310,11 +311,13 @@ wdev_handle_config_change(struct wireless_device *wdev) switch(state) { case IFC_NORMAL: - case IFC_RELOAD: - wdev->config_state = IFC_NORMAL; if (wdev->autostart) __wireless_device_set_up(wdev); break; + case IFC_RELOAD: + __wireless_device_set_up(wdev); + wdev->config_state = IFC_NORMAL; + break; case IFC_REMOVE: wireless_device_free(wdev); break;