Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp312784pxt; Wed, 4 Aug 2021 11:47:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwV97UTsQEBorfdAoO14YA5hNRwpNUpJ+fLMCHY0T432dFuj6h6vUCXmfxBBUthbBVRf/YQ X-Received: by 2002:a05:6e02:1bcc:: with SMTP id x12mr772507ilv.275.1628102834121; Wed, 04 Aug 2021 11:47:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628102834; cv=none; d=google.com; s=arc-20160816; b=tmNbRzvOErV3/X5vB2NNUr4LY+aKSyLGkOKLdazenXuWZ/60F0ddGAZnh7MI9t1eta KSyebMNZhXkdMyPG5/1rT65QYWgNdycU6X64/eH2JCXgrrjEKgDWLlWtcq9Ii+Fsw31o KHc042lKFPFQhSRMD9/BwpSM7KcfeKbI/4OFsWo+KBuZ3VDxYHvDkOf6ama43WZPvGKK o4APQMfVu1Q7loBhwT5PIVVW4RZo3hyWG3FRQkZhoEWAPxc687v6HzWByoR45FkLKn5h 3B5GUBtLRn+FBDQoyf0qIsdUq9L+UXAfw8FUOMLTNvdZTx4jyTzCGy/IZ8sknn+wveMf pXqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=fYPy0EiH44k22cfOkFHbddfBvF8NraMV8hju0p8WV3I=; b=nEGY/ZdBj0rTud3gWaxanZe9TiePHy0enZ6AZum5jkBs3B3V+wcJUC86n89K+3SJXL Qh/ETGROvjXeQLR8IDYLJ56avFsT4/H4Z+SxOfAA6YFwjl89ROdETzsea+3JXnm25mFs t5VgvUkAG4JpPxqMWW/weVpSiYuIjVtQ1/8rgEgmMgKOMPBHjT9dN3lY0O1cLXUZdE4Y 4HI70bQdIFPZ+4FMQT+MZJol1Jsn5nucoT7Fh9X85LqrolvOccGSniOtTFLwX9zhgC8F ZmdHnNDxvkWyRlVJr9UUc4U+IRTR4it5bPcARcwvKAJLH4+/KRg2WWZVkEgHAlLNVPxu SQ2g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=nfa3a3gi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b24si2888894jar.119.2021.08.04.11.47.00; Wed, 04 Aug 2021 11:47:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=nfa3a3gi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239165AbhHDPgt (ORCPT + 99 others); Wed, 4 Aug 2021 11:36:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42224 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239128AbhHDPgp (ORCPT ); Wed, 4 Aug 2021 11:36:45 -0400 Received: from mail-il1-x12f.google.com (mail-il1-x12f.google.com [IPv6:2607:f8b0:4864:20::12f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C100C061798 for ; Wed, 4 Aug 2021 08:36:32 -0700 (PDT) Received: by mail-il1-x12f.google.com with SMTP id a14so2056728ila.1 for ; Wed, 04 Aug 2021 08:36:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=fYPy0EiH44k22cfOkFHbddfBvF8NraMV8hju0p8WV3I=; b=nfa3a3gifGAmzcnPuZcW28cXDmG7gslzHVrpFLibwHKn64pSf5F/fFXAkN5hxytTFh c0t9+UkVdA1SGhzdUZGHw4bKRUh7vheepR4V2huVhnQGjCoMaUISEC37qvUHyLPLcWjZ W64vnSt7ckWVNnG7lG9SI0LODBArDaedcM3lpze2zHX+DVRCAsibwTl9ReYUa28PiqWV BTfrDCUlzG49F3K6xUtadCNjZT61slN9YjELEpkE+okX9aFEx99mGnCrieUQvDVgspeD BVYUIMEFZ+xezpvVatoESVQsGVCq4nGfQz0wiNrWNVRlmaOgIEEiPoUsaPIlgdntuSWM nq/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=fYPy0EiH44k22cfOkFHbddfBvF8NraMV8hju0p8WV3I=; b=SRrJ4RtHBYp4n7lD0I0JD+u/lDeb2UAZLzkF4dWWvSXYunPH3o/sSHiytsXV7IXVLN foqvhVcM+Z7CrTs9Zv/Aouh0aeYyWJrauIISXv9P7Z5MvGfZCa20dSdY77HhlZmG/mSF yUudg25Wl81B7I0/clEw4CNDMHSuXDUPu+ManTXRSU2R06B7qARMVsea+r4hrcnuEHyX jtTrUTAki6BtnUD7Kjk2E84aIslVIi9nqYmSEv9+k5HCaYHRFMStdUQKp4k4akGSyFXB 83vw38U4YmCPzT49Y0x+bu7T8d+Cqne/b/F8ZvOIx0xL0MGFEnoeqHu3kQPQWnAPdYUG yMgw== X-Gm-Message-State: AOAM531XVFmJ0ugP526iLvehRJoEsItjNWcvkOGXM4X1nbrAeCwwVpvj cQFhI3X2+oxQKFN/GPhDKesdSw== X-Received: by 2002:a92:d088:: with SMTP id h8mr11704ilh.165.1628091391490; Wed, 04 Aug 2021 08:36:31 -0700 (PDT) Received: from presto.localdomain (c-73-185-129-58.hsd1.mn.comcast.net. [73.185.129.58]) by smtp.gmail.com with ESMTPSA id z11sm1687480ioh.14.2021.08.04.08.36.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Aug 2021 08:36:31 -0700 (PDT) From: Alex Elder To: davem@davemloft.net, kuba@kernel.org Cc: bjorn.andersson@linaro.org, evgreen@chromium.org, cpratapa@codeaurora.org, subashab@codeaurora.org, elder@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 2/6] net: ipa: reorder netdev pointer assignments Date: Wed, 4 Aug 2021 10:36:22 -0500 Message-Id: <20210804153626.1549001-3-elder@linaro.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210804153626.1549001-1-elder@linaro.org> References: <20210804153626.1549001-1-elder@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Assign the ipa->modem_netdev and endpoint->netdev pointers *before* registering the network device. As soon as the device is registered it can be opened, and by that time we'll want those pointers valid. Similarly, don't make those pointers NULL until *after* the modem network device is unregistered in ipa_modem_stop(). Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_modem.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/net/ipa/ipa_modem.c b/drivers/net/ipa/ipa_modem.c index 663a610979e70..ad4019e8016ec 100644 --- a/drivers/net/ipa/ipa_modem.c +++ b/drivers/net/ipa/ipa_modem.c @@ -231,13 +231,15 @@ int ipa_modem_start(struct ipa *ipa) SET_NETDEV_DEV(netdev, &ipa->pdev->dev); priv = netdev_priv(netdev); priv->ipa = ipa; + ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = netdev; + ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = netdev; + ipa->modem_netdev = netdev; ret = register_netdev(netdev); - if (!ret) { - ipa->modem_netdev = netdev; - ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = netdev; - ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = netdev; - } else { + if (ret) { + ipa->modem_netdev = NULL; + ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = NULL; + ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = NULL; free_netdev(netdev); } @@ -276,10 +278,10 @@ int ipa_modem_stop(struct ipa *ipa) /* If it was opened, stop it first */ if (netdev->flags & IFF_UP) (void)ipa_stop(netdev); - ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = NULL; - ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = NULL; - ipa->modem_netdev = NULL; unregister_netdev(netdev); + ipa->modem_netdev = NULL; + ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = NULL; + ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = NULL; free_netdev(netdev); } -- 2.27.0