Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1553996pxf; Fri, 9 Apr 2021 11:12:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxsEFjw0TiHa7mFP+FgXDDTbDxtdjskM6XRl74OD4LUxN4Lu52Q9WGATctX9Ytyq4gQj1XY X-Received: by 2002:a05:6402:3c7:: with SMTP id t7mr18819273edw.196.1617991920187; Fri, 09 Apr 2021 11:12:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617991920; cv=none; d=google.com; s=arc-20160816; b=y6oaMtoLasWoCRTAEw2K1A5xm3kUoKn+LoadajktbzPSZcBunePmCFhymcXjwfJw0v K2lDD6Rvc+b0m8p/e74arEd+DPE5IOtVZL5YegRKNwp7nCGN37M9am3xph+YhWYGOYML 1rPqm4+IRdzvcEcoR1wHgcGQ3ru8agiJm7EaMNzdXbJ88z/enagGGugED1BEBZ+FWf2b 6+Bw3Ob5gjbu4cPI62ahofFcQObe0GJXRlaEm4MqmIDecZFkGLS17vlmw6vbUD8gJc+V pMn/eFqOKRaIG8MOwCSoM6ZseYLft9fM38BPWidEafLrGY9kKqVnkI0yz2CJfTmjh8CR 4muA== 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=TXhHFiYFF9iWch/VwVE0yX0wx2RhwOIfVPloQrSS3Fw=; b=mlpH3Es9jXOIXPAI5ychCSUj1pPOk7oL3FW7aQA97ug8U5jWhBxqdWfYKdowUNAq7n fXVEodw0/7CipR0ImxsL+075bfjynHZhBJVqLeUYz69spxBGJZbV7cpQt9srEFyqVTg7 cgtBUEnH3ngGxJXneCO3rs0ixtJJ7hclNrASUKUtKGutssvds5d+oHIDOrOKXAmApvXe 0ivNIzo1MOtV2moBt69ry+lMCeuaNzus2YdTX9Nhti2w0b5/9nOCFRZba4y6htTKrBZ6 fwTpSVe+sl7KVLjEMo+Q2+tSfa9pRK17zGLsTgiBSuj2ayMKbLTSUWJUeV1Dcm6HbH0M kbjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=mbNLrHib; 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 b16si2613780ejj.404.2021.04.09.11.11.37; Fri, 09 Apr 2021 11:12:00 -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=mbNLrHib; 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 S234531AbhDISHt (ORCPT + 99 others); Fri, 9 Apr 2021 14:07:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48170 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234493AbhDISHm (ORCPT ); Fri, 9 Apr 2021 14:07:42 -0400 Received: from mail-il1-x130.google.com (mail-il1-x130.google.com [IPv6:2607:f8b0:4864:20::130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 36A79C061762 for ; Fri, 9 Apr 2021 11:07:29 -0700 (PDT) Received: by mail-il1-x130.google.com with SMTP id n4so5413479ili.8 for ; Fri, 09 Apr 2021 11:07:29 -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=TXhHFiYFF9iWch/VwVE0yX0wx2RhwOIfVPloQrSS3Fw=; b=mbNLrHibsxMliMZoSJFoQ2UV3n6ebW6uxI8EsiRIxq1T8yEoj2tw2lr/F+dmsCJf9q MaZX2mEMWvID+8xCF1gM8pVf4CZWcW3twZur3Bio1wBIH1pk0jcKm4IfGdGkrjMAAYsh SCObZJ+PCmRCwEtG06u2UK3wfRPQUlqV1BpNIvmCMhS9bxQ97rFZc2p69tjKUGUXvxdj I/HIsCb9V7hFyWb81WRsbCEfrSIr+dZ7dMR7D/SGRb3VAVOgd4207OEphPQnQMB95pbP zHtNrv+Ju3CUpEaNUUGCR+TPbfasSykxI3Fybk2IqS5LxyddmSi+hLIKG9tUyvXmlVO0 wf/Q== 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=TXhHFiYFF9iWch/VwVE0yX0wx2RhwOIfVPloQrSS3Fw=; b=K407zmuaD4rblLklm8pDXX1H7Iy1ZL5h4A7cywZUsmp8DJmcm26R9tUgR/iSEqvaJ7 mORm2elWfUvbdCpATNuYXkGcpl/Us5Jf//ZaP6MJ6m/B3SWshajmY6fimQn059PN8QE5 XmjKklDMiUmq2dog8iCVA5CTQPR+zLhG+tqh4LCZhPpA2cDnDnG24S5CtQ3dBex8bVsf nCmaXh3bbI86j9nRbyVr7QXQBE4VR0tQjm+YbRe0QBwxqfsffnu5TQT2AvRsEZkMj1KQ qGcbzF9rApS6sAab2is3kKxwR83VmFaz/pIprURmnK9h+2g/FN6W/9iUa25j9UH5Kr4e JtKQ== X-Gm-Message-State: AOAM531xSGKTetuS3YlEaOLoL0YRTn0GptjXMYMXFbPw4F4L8tCiFWKX 4zTC+/JmUA3lvSFJ82nSvNCxaw== X-Received: by 2002:a05:6e02:1a06:: with SMTP id s6mr11782812ild.289.1617991648619; Fri, 09 Apr 2021 11:07:28 -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 g12sm1412786ile.71.2021.04.09.11.07.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Apr 2021 11:07:28 -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 3/7] net: ipa: only set endpoint netdev pointer when in use Date: Fri, 9 Apr 2021 13:07:18 -0500 Message-Id: <20210409180722.1176868-4-elder@linaro.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210409180722.1176868-1-elder@linaro.org> References: <20210409180722.1176868-1-elder@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In ipa_modem_start(), we set endpoint netdev pointers before the network device is registered. If registration fails, we don't undo those assignments. Instead, wait to assign the netdev pointer until after registration succeeds. Set these endpoint netdev pointers to NULL in ipa_modem_stop() before unregistering the network device. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_modem.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/net/ipa/ipa_modem.c b/drivers/net/ipa/ipa_modem.c index 9b08eb8239846..8a6ccebde2889 100644 --- a/drivers/net/ipa/ipa_modem.c +++ b/drivers/net/ipa/ipa_modem.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved. - * Copyright (C) 2018-2020 Linaro Ltd. + * Copyright (C) 2018-2021 Linaro Ltd. */ #include @@ -213,18 +213,18 @@ int ipa_modem_start(struct ipa *ipa) goto out_set_state; } - ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = netdev; - ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = netdev; - SET_NETDEV_DEV(netdev, &ipa->pdev->dev); priv = netdev_priv(netdev); priv->ipa = ipa; ret = register_netdev(netdev); - if (ret) - free_netdev(netdev); - else + 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 { + free_netdev(netdev); + } out_set_state: if (ret) @@ -263,6 +263,8 @@ int ipa_modem_stop(struct ipa *ipa) if (ret) goto out_set_state; + 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); free_netdev(netdev); -- 2.27.0