Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp3900522pxy; Mon, 26 Apr 2021 12:30:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwi3+lKo7yNYVQ0QhbejBGvsCyPTU14tP9mG69jNBT1Q0RbY6rLcICJ5CZalt4VUreluCOX X-Received: by 2002:a65:6a50:: with SMTP id o16mr16702640pgu.6.1619465426723; Mon, 26 Apr 2021 12:30:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619465426; cv=none; d=google.com; s=arc-20160816; b=U+kRIH5RuFzRP11I/kpBrSsUZdO1xRAvbw7VaaEBaIGUZdzQbs//VNOcWujgyFvv69 85+2JHaDcvATSxlMso/Ed+JicygTIXS/BXjWFSpSUvHa9oHSPdVjXukvan8j9Jr2lfht cc7TDU0D9g2tA/ZMpzbVGvScO04OlVaZwyDE+aAPzqMvBczB+LgmD2h2f0DQ6oxO/jJb 6I+XzPvqNBb92rEc2BG2DqPw4r5heSZjnJJB3NtV6MtFGSbVzDvb45wndO1b0qciai4m f32uDd9Z3yQkTaCLVOPIQ/AX0gEVtAKOy5BoVNKYZy/AKoPGdZNy9oflXs4v4uCG2WH6 jt0g== 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 :message-id:date:subject:cc:to:from; bh=OxJLtYOVlp3xyrfSEpNB159+do1L91uPXqnHaN/ErIk=; b=BKpaFqRCHMi7lKbLzcaQGHEmMn97xDJmdpOzV7/4/9emXurFdvbuY/wtlDZx0Q5ctl ca3Pq8J/U2l09dBJpQoy95tBkMyrG2n3TA6WerS1eFeRqRehTFIwJAmN2jxnr/Kw/314 vk8OrCnxC3Vq9DC/XipK8LkZJ+2lJPwsizxf36lwUQykMq0YzWZgFPpYaEdaN+Z+ze+V 5mdOzriu4YUW1HVfliBAxR8BpW6iM+eXboQiXta4shWTq5d2mwBqbKu+ReG8a9JEfDwL aWYML/Gs5DmvvO3YSdph+y8D1E1HS/gZ4vvGv1Sl36oAVkPBVwiU6OOyzYpNoxptSssu IA6w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r19si698808pjo.35.2021.04.26.12.30.14; Mon, 26 Apr 2021 12:30:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240303AbhDZTaA (ORCPT + 99 others); Mon, 26 Apr 2021 15:30:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57834 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236653AbhDZT37 (ORCPT ); Mon, 26 Apr 2021 15:29:59 -0400 Received: from sipsolutions.net (s3.sipsolutions.net [IPv6:2a01:4f8:191:4433::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8F3D9C061574 for ; Mon, 26 Apr 2021 12:29:17 -0700 (PDT) Received: by sipsolutions.net with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.94) (envelope-from ) id 1lb6ux-000MWe-MS; Mon, 26 Apr 2021 21:29:15 +0200 From: Johannes Berg To: linux-wireless@vger.kernel.org Cc: Harald Arnesen , Arend van Spriel , =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Johannes Berg Subject: [RFC PATCH] brcmfmac: don't take RTNL if already locked Date: Mon, 26 Apr 2021 21:29:07 +0200 Message-Id: <20210426212905.6b0f78581429.I2ee37448e499091b3ec0b23d642e3113ef670a8e@changeid> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Johannes Berg We should not take the RTNL if we come here already with the RTNL held, so don't take it again. The Fixes tag below might not be completely accurate, that might just have made the problem obvious by showing that the function can be called with RTNL already held. Fixes: b50ddfa8530e ("brcmfmac: fix lockup when removing P2P interface after event timeout") Signed-off-by: Johannes Berg --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c index ea78fe527c5d..ce9d8781b62b 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c @@ -926,9 +926,11 @@ static void brcmf_del_if(struct brcmf_pub *drvr, s32 bsscfgidx, if (ifp->ndev) { if (bsscfgidx == 0) { if (ifp->ndev->netdev_ops == &brcmf_netdev_ops_pri) { - rtnl_lock(); + if (!locked) + rtnl_lock(); brcmf_netdev_stop(ifp->ndev); - rtnl_unlock(); + if (!locked) + rtnl_unlock(); } } else { netif_stop_queue(ifp->ndev); -- 2.30.2