From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C40442CAE6 for ; Mon, 6 Jul 2026 12:38:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783341487; cv=none; b=dJw8StM156ULH3W31JpStoVaawXOKEKjjbFWwUasZ50JV3pM9BzTX3P4hHkWJ4XXjNWzYntLRyqVEIw0ntHE2LWeHLpgSZFxIYCK0HpoLuBk1HcziLyqt+rTyEQnux1Scl1ys3GF6EVNq4HJtr01mkn54XIupFyM2tgPsJbpc/8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783341487; c=relaxed/simple; bh=KTWgBS2LveFv+3JGpa4YwPUoQcfmFEjv/BChcCid2Mw=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=g//81MTwe4595mxohOp98zu7A+zmaGSRuy2+d9i6HWny5z92xYX3PhTCM4vp/NijsLV+Ih7y6oEacHFRWhiKTbmqPpxym+74t+C1OeviBeUnmxYvQXkTy238UcqxaMSEg+pwU9iwtkr2vsyEi+NFWGxS8uHzPvun/+DNsfyCPiA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ATgxXhik; arc=none smtp.client-ip=209.85.216.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ATgxXhik" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-3811f512167so2687953a91.3 for ; Mon, 06 Jul 2026 05:38:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783341483; x=1783946283; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=uXJCzkj2a4rope5496Yz8M7a7yyPQg8Zuq+VELoHYjI=; b=ATgxXhikboBBr06CHV8gvlLgmWmGSQrHaAymIjh+nnMZYHn7rDH6MdAvJtHRaxeWC8 Rhp2tiN922k7+XWrWRb0jVaYp6JoLCT0h3SVAders25vk3Nh34fInyDMGMvCHg0j5YHv /p1+Gh+4m4RBBF8MpMfShMqEbTSyxp3kwOpx+06gk+/cJB5vhcGEuzQCALLiI7hEgH9Y f3adRPCFHcPCCbyXXdbtjKwKgsgLUiYoNkhIY8yF7paIQZoaXwiyCAZU1+ONH6DbDMTk G4L9zEecsdUdA3PjpnTxIEernpG9T+KZxP45DSFDPnkjnhQLwUD8Cdu9Acf/a82B2wwM WWKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783341483; x=1783946283; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=uXJCzkj2a4rope5496Yz8M7a7yyPQg8Zuq+VELoHYjI=; b=Vr3VZJ3xNE6h15z5nXXExpyUrBz0tj1zH7Lk97qFacgTPub9aJeW72+6lkoQg2snSL DOom/Hn/XCWJSO5Oxado+Fjbpht/CxmOsfXe660ALrrT9Pg6bWSAoKAJyd+EkW0gOOqt yxAiKJ0vnCzqAnwC8pqPJ/Qj+yWRD7FjpyBS/EZjxkNOIXzgRUU4LLUdBm6++jBpQkS1 p3CqGPrdEzSFeyWJC8w3graGC2UBWSSt+GUjSi2dijrj/IlyeICje7tpjTHnViI7wicr Sz9R+AU9WpGgQI9ysfQgQp9bwYXa0fu0m8nr9rxoBtURfC8GxwGeN1M4VhLShcVZnoQu MrBA== X-Forwarded-Encrypted: i=1; AHgh+Rqi2T3qvIcZzfc5xontYTDA10rVZ7Hk1Egg9gX/GttVAkbrzKId+FSEcuiP1U1yWwnDIPo5YIOiFP+5a5s=@vger.kernel.org X-Gm-Message-State: AOJu0YwsnVrTHVyJDD5xD9v16rhKmAkZUmi2dlO9Ca9sGZ80jBc5H40B /psVBEc2T8iUy8zlX4dQidwxOpl6OXHuQwenAAkbZDovV9Qf6LSXWnqd X-Gm-Gg: AfdE7cmPvyBlBt/qIqEd7c6aQOg5SAkkgOoLBZPw5wadbU0z4+5XWNMZfbvuR8ZulxW VMj2gKg5fqp28AlslR8PTgl8uYuiZZcShSCLImZPuUYoPetLR3CfcnqbjRDKxkRV15gd7lPoEPW juNCIyN31zZeR/k8D98VADAaydpV5Bzpx4x/uvRhP4IrGwgF6B36h3JFLzN2bONlNekDxKO5EJ5 rLy64XI7NO7BmwbaZ9a5Fd16ajzI0NuTGXMCMnIFwqZTr/SB/K9uPYGNu/ug1xtIv7Zf5j8GXwB qzwhxNyqNlT+v2/sx4IFYS1wWJXaN1+e1juO52YwKC6e3BQf6ZciZE3+MDh2pIZsUJbXsYH3xOh YpqTM77eqJ6uImUe1cQmmHRLSEx3HuZwCQ+gyTZ8x7LCJFXdT6JQJNaU5UqYGhqvJrinQMVS6aK 7A/B903+WLfWDjX6YxhQ== X-Received: by 2002:a17:90b:5625:b0:37f:ad36:8fc5 with SMTP id 98e67ed59e1d1-38758938a18mr119087a91.23.1783341483154; Mon, 06 Jul 2026 05:38:03 -0700 (PDT) Received: from localhost ([111.228.63.84]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3812815c10fsm4942969a91.13.2026.07.06.05.37.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jul 2026 05:38:02 -0700 (PDT) From: Cen Zhang To: Johannes Berg Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, baijiaju1990@gmail.com, zzzccc427@gmail.com Subject: [PATCH v2] wifi: mac80211_hwsim: clean up radio rhashtable on free Date: Mon, 6 Jul 2026 20:37:56 +0800 Message-Id: <20260706123756.343818-1-zzzccc427@gmail.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit mac80211_hwsim_free() removes each radio from hwsim_radios before calling mac80211_hwsim_del_radio(), but leaves the matching hwsim_radios_rht entry in place until the whole table is destroyed. Other radio removal paths remove both the list entry and data->rht while holding hwsim_radio_lock, before dropping the lock and deleting the radio. Do the same here so the all-radio cleanup path follows the same object visibility ordering. This helper is used while all radios are being torn down, either after callback users have already been unregistered or while module init is unwinding, so no hwsim_radios_generation update is needed. Assisted-by: Codex:gpt-5.5 Signed-off-by: Cen Zhang --- v2: - Reword as a small cleanup rather than a sanitizer/race report. - Do not update hwsim_radios_generation while all radios are being torn down. - Drop the Fixes tag from v1. drivers/net/wireless/virtual/mac80211_hwsim_main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/wireless/virtual/mac80211_hwsim_main.c b/drivers/net/wireless/virtual/mac80211_hwsim_main.c index 0dd8a6c85953..5c59c1a8e720 100644 --- a/drivers/net/wireless/virtual/mac80211_hwsim_main.c +++ b/drivers/net/wireless/virtual/mac80211_hwsim_main.c @@ -6274,6 +6274,8 @@ static void mac80211_hwsim_free(void) struct mac80211_hwsim_data, list))) { list_del(&data->list); + rhashtable_remove_fast(&hwsim_radios_rht, &data->rht, + hwsim_rht_params); spin_unlock_bh(&hwsim_radio_lock); mac80211_hwsim_del_radio(data, wiphy_name(data->hw->wiphy), NULL); -- 2.43.0