Received: by 2002:a05:7412:8598:b0:f9:33c2:5753 with SMTP id n24csp358947rdh; Tue, 19 Dec 2023 00:39:02 -0800 (PST) X-Google-Smtp-Source: AGHT+IFulsFjxtreVSfWDyOULzrlp6+LVNMbo2y9qtUeV4CTqHAoOjjy3gEr45elxOYvn/fqVVsb X-Received: by 2002:a05:6214:19c8:b0:67f:279f:b31a with SMTP id j8-20020a05621419c800b0067f279fb31amr8623926qvc.77.1702975141912; Tue, 19 Dec 2023 00:39:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702975141; cv=none; d=google.com; s=arc-20160816; b=G4MYK2yailkTKnJFCLzfYMzW9B2enUzchE7w4fqIghLQknYNUSXdBdpFVunTAA8Z4r UOythq2Xk9SRyEgt5jCDRSRycK4nCsFlvVQaDjUnE2Vv5gopqpI28SdLZgORyhLABGPH 1IsHhltaOkgUGtVRmHpPXbzeet3zYeEgj+Oo0LSBd0qaPsOPYSi6eBUZp2izvYtH4//8 szkJk8CGmfDvR314GBhtZUCxL1ToTlIOwQNReHd87PDf5Bd8JLfyU887FZQFsluv5px9 TOiuaGYCBsTS4/UfIO5WY5IHGS7QJ2u7b8b9HyiQnlcmxXBQcInRdJaqxg095NsrmPQj Tctg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:organization:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=Cd9qlzFg9O7rvW766+jSZibFv6WibLhW0n54sQi0u2M=; fh=3ygC9s7PpPQO6c/QZAToNFiUz3mp/9dRWGoYZllH/mo=; b=qOAsf0nNkHZs64uvH8RyJqFz0KSO8QWEF/Ckx+G1gRI0qtNEU9ium4ve2r0TUSMGIx MyWo/HbCoYtEJHtagC/OWXSueNy22wVqzeJwMZx+ZyTCC84VYsDukzetlNaJQWNyGOzH BCVgtL+2zqAqX9ZtOdirXK1/6e2A6t2B9UDna/7oNJQkxkD2i0TQxFjax3kd7/wRvZb0 oiZwaiB+C4BmDagn+7fR5HJPdSeq/qEUesum4FkTf64QisBvYMAwjhLf0ymuHX4i0lL4 1jJtslHB7g3ijiBYl2i46Yl9YHWgB/DNV/UkeCWXCjMQ+0GQKUiw8hQ8fXtTTrG+RWdO 6FEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@intel.com header.s=Intel header.b="A/efFh/H"; spf=pass (google.com: domain of linux-wireless+bounces-977-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-wireless+bounces-977-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id y10-20020a05620a25ca00b0077dc688e20asi26711238qko.259.2023.12.19.00.39.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Dec 2023 00:39:01 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless+bounces-977-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=fail header.i=@intel.com header.s=Intel header.b="A/efFh/H"; spf=pass (google.com: domain of linux-wireless+bounces-977-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-wireless+bounces-977-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id A21DF1C23983 for ; Tue, 19 Dec 2023 08:39:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DEF0F125C2; Tue, 19 Dec 2023 08:38:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=intel.com header.i=@intel.com header.b="A/efFh/H" X-Original-To: linux-wireless@vger.kernel.org Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7CFF4125B0 for ; Tue, 19 Dec 2023 08:38:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702975117; x=1734511117; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7kHpD3v2RLXhDg+fg+xWvL/tntpE9aSEKwY1Ui5Y0y4=; b=A/efFh/H1O3Q0Kj8iGgboYUumLLhwMwxYwYbcRSp8Skb5+JI9gOBExs6 gMDtTm2z4HqqcAcNDQh0dTbrzT/1+OwA0N0PDUvSk+S0r7pbe4Wq+eiTi BzjU/K6bsXhlz1h5SjqC1+/DhQoTZrsw96X/cv3z4k3jPiFctUDFvZY8p SaNBB8bYnyNC++r/aZLDa9FME8+I/tl3fDP8raYRCGQ9En8hp7FvkN8ca gqWbCAJz3dHl3y7/Fyl9BkIsdToDOax1SzVnlaKjaK9aoQzTwASfmM60T AhB92RH/dt6NKqndvJwfsoyKPG/EMk+3Iw+YTyzBtU+bSLqZrn2MLK5EU A==; X-IronPort-AV: E=McAfee;i="6600,9927,10928"; a="459969306" X-IronPort-AV: E=Sophos;i="6.04,287,1695711600"; d="scan'208";a="459969306" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Dec 2023 00:38:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10928"; a="846266545" X-IronPort-AV: E=Sophos;i="6.04,287,1695711600"; d="scan'208";a="846266545" Received: from unknown (HELO WEIS0040.iil.intel.com) ([10.12.217.108]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Dec 2023 00:38:35 -0800 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Benjamin Berg , Greenman@web.codeaurora.org, Gregory , Berg@web.codeaurora.org, Johannes Subject: [PATCH 13/15] wifi: mac80211: add/remove driver debugfs entries as appropriate Date: Wed, 20 Dec 2023 04:38:01 +0200 Message-Id: <20231220043149.a9f64c359424.I7076526b5297ae8f832228079c999f7b8e147a4c@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231220023803.2901117-1-miriam.rachel.korenblit@intel.com> References: <20231220023803.2901117-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited Content-Transfer-Encoding: 8bit From: Benjamin Berg When an interface is removed, we should also be deleting the driver debugfs entries (as it might still exist in DOWN state in mac80211). At the same time, when adding an interface, we can check the IEEE80211_SDATA_IN_DRIVER flag to know whether the interface was previously known to the driver and is simply being reconfigured. Fixes: a1f5dcb1c0c1 ("wifi: mac80211: add a driver callback to add vif debugfs") Signed-off-by: Benjamin Berg Reviewed-by: Greenman, Gregory Reviewed-by: Berg, Johannes Signed-off-by: Miri Korenblit --- net/mac80211/debugfs_netdev.c | 9 ++++++--- net/mac80211/driver-ops.c | 10 +++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c index ec91e131b29e..f879a0f2728e 100644 --- a/net/mac80211/debugfs_netdev.c +++ b/net/mac80211/debugfs_netdev.c @@ -983,9 +983,12 @@ void ieee80211_debugfs_recreate_netdev(struct ieee80211_sub_if_data *sdata, { ieee80211_debugfs_remove_netdev(sdata); ieee80211_debugfs_add_netdev(sdata, mld_vif); - drv_vif_add_debugfs(sdata->local, sdata); - if (!mld_vif) - ieee80211_link_debugfs_drv_add(&sdata->deflink); + + if (sdata->flags & IEEE80211_SDATA_IN_DRIVER) { + drv_vif_add_debugfs(sdata->local, sdata); + if (!mld_vif) + ieee80211_link_debugfs_drv_add(&sdata->deflink); + } } void ieee80211_link_debugfs_add(struct ieee80211_link_data *link) diff --git a/net/mac80211/driver-ops.c b/net/mac80211/driver-ops.c index 5e0435db2f9c..3b7f70073fc3 100644 --- a/net/mac80211/driver-ops.c +++ b/net/mac80211/driver-ops.c @@ -75,9 +75,9 @@ int drv_add_interface(struct ieee80211_local *local, if (ret) return ret; - sdata->flags |= IEEE80211_SDATA_IN_DRIVER; + if (!(sdata->flags & IEEE80211_SDATA_IN_DRIVER)) { + sdata->flags |= IEEE80211_SDATA_IN_DRIVER; - if (!local->in_reconfig && !local->resuming) { drv_vif_add_debugfs(local, sdata); /* initially vif is not MLD */ ieee80211_link_debugfs_drv_add(&sdata->deflink); @@ -113,9 +113,13 @@ void drv_remove_interface(struct ieee80211_local *local, if (!check_sdata_in_driver(sdata)) return; + sdata->flags &= ~IEEE80211_SDATA_IN_DRIVER; + + /* Remove driver debugfs entries */ + ieee80211_debugfs_recreate_netdev(sdata, sdata->vif.valid_links); + trace_drv_remove_interface(local, sdata); local->ops->remove_interface(&local->hw, &sdata->vif); - sdata->flags &= ~IEEE80211_SDATA_IN_DRIVER; trace_drv_return_void(local); } -- 2.34.1