From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (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 E6D5E3822AA for ; Fri, 31 Jul 2026 07:11:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785481876; cv=none; b=ozfxsHiB5+YwCtVFAD9jp7A9S+ZarsKM4I8tPpkYcWvpsouKXfXlmN+ldawV7KFYaDeNOzPjSWlw2dS6DOQEdPTLcfBSB2Yan+tjqWTKyeZRUZhm7lMbdeG9uQ0z3eM/nsiPanSQO6wwtG3wBE5chmKC0oQSbEtp0MWcBJvyAXY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785481876; c=relaxed/simple; bh=QBxqLpkuoclvdW87kAV0VwP082ao16ty49gstGMK74c=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=GTTmMbP6biOv1/IrQBkXPG3r0zWuoB3QoRy+Ie/GN6ZnLHVkLF20cQqnNuan8hSpJEtWlzs3/cQyMYM4PP9GbNApzus5xE7AFQHnrWGc3wGegaXATBnKFh4PFenMNZ0NjXhK/SkF6pQT29W98dK2YKMmkUbJlG48bop55Edu/t4= 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=mq5udmqn; arc=none smtp.client-ip=209.85.214.181 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="mq5udmqn" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2cc97653887so6722485ad.1 for ; Fri, 31 Jul 2026 00:11:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785481869; x=1786086669; 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:content-type; bh=9fQeZIHEBXy4iMTbzliIUKRsXdr80McjIgofNNYPCn0=; b=mq5udmqnVuDrioyTKOLhDr1oYsKTSDYMVyTMvu5ewL/G9pJWiBRW7/P/bdcqvFRrpN tiPqPdoReXhb4JtbRvqISDaXAwMTnvRGW5Tw/5f71r5Dr47vNsXJX3+xjdCZTFHklKzT zwZc+tMflhBZEMZxZYI0bFShAY7/RhhdW1AhyebczYBz6eaxTgZIWkh+CCHHo6B4RCBS tLHPqipvsMkbHVbaoUZKHXw9hk9F/i5q3r+dk+BiQMLOAmk2FGgrOq59YhGI15VYrtLJ YvyoRKGZrO+A6LimCp8yWgsEQA9NqYl+5jh0zEa99fp8bEmkkhWdbuDY9IRmNox4JwLY Ympg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785481869; x=1786086669; 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:content-type; bh=9fQeZIHEBXy4iMTbzliIUKRsXdr80McjIgofNNYPCn0=; b=dNPWGzdWqeaL9Ez6r/zeMdqLzEE794lENVPCojB3eEpSX1q5eJGNVmcwC+Ih+r6PlX vvUk8PDICjIj/dqosJTOi0O1RbKuFxZKWcRpOUHEVfXD84Mi/BxXx3lEO3AXumbMQbI1 v4Vphwl0A18DH5kPlglGqqAwIcj7TlpX7mk/m8xzP+2orC02b3VDZTZnp4l2FfHAjQk8 MwQmfZwdTvYlCoe9NEnZx82J3zC+eZv2mmU6hrj7cWnqy6dYcPczQBAd4e54+P8mdoe4 yHLfu8ddCtNQV+j1bxjQOpmE8emHL6o8OfD+z5EitTzVf4JlPRAdW//+Q/zWCodZONaH 2w3w== X-Forwarded-Encrypted: i=1; AHgh+Rpzu/DfTESyEsY+RxEaz3lasxyzNQjMdCCautuSZcIDDD7H68YMgaMzUisCKNn87BhkBQc7gq0kKufWUJA=@vger.kernel.org X-Gm-Message-State: AOJu0Yy3QgR7Q4v/8OryTAR01PEMzbtgvYsxR0PcBsUIzs8l84/Mpfr1 47LJDpGdmfqfogadTS9JXisYWFjc61qXXHyJX0dTkUxpjzvq6o8+Gpg+UXVqjsH/5pg= X-Gm-Gg: AR+sD109iOFOGeUgXSdMGCVzqTmFDhHbmZcc32ic4b7X0DGb0xf5MXuJDuaEqKkoZpX +DG/RXtWiiqO7Zlo/9/a6EmRxHzu+oUAKvvOFh9jdTXsHgwNi6s3UV/NjkvgruNhExRAhNmCY9a bNKQ02udJx3BBiml1toeDmCBh2yEe6N8ZdPF6N2Ox1+cXthyN6D/o9raOGrL+ZNoGVH0C1ge6hw kcJWN6XcCFGUkRyEsUU4iY9K2jsBBwuNmtq6sDydh43NQ9ex1hFIemOhoJ/OYthSLHs688rr/mz 163zQm7EL1U0yZ1b9JNq1vzHHzwfxegA2ET0fIn1YjMY+BM+ktlk4ApO/dR8Rs/O4Fr6GxblIQe XFuVZDh2P5mK8tSWeF4ba8uJwhzIo9cfOZvib6cFDtUZRZFRtfolGlrY/Jo8py/cVcJKrfqD8b1 W5kUJhDLMNlzu4tQvWXzNT34nilu8WH+JGwM8tqCEbVpD8ajkjIqM6kQ3PBbr8RYNlsqoM8zR0G ve5nIMUWk9J5hdHbtmffWVh+Xhw5yDbD6dfsVo8+9dG0K9z X-Received: by 2002:a17:903:4410:b0:2cf:7bfe:6043 with SMTP id d9443c01a7336-2d046db01b9mr10032235ad.19.1785481869104; Fri, 31 Jul 2026 00:11:09 -0700 (PDT) Received: from KRHW1CJW23.bytedance.net ([203.208.189.5]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3153dd9be04sm2082881eec.9.2026.07.31.00.11.07 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 31 Jul 2026 00:11:08 -0700 (PDT) From: Zhao Li To: Johannes Berg Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] wifi: cfg80211: stop PMSR before P2P and NAN teardown Date: Fri, 31 Jul 2026 15:11:03 +0800 Message-ID: <20260731071103.73563-1-enderaoelyther@gmail.com> X-Mailer: git-send-email 2.50.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 PMSR request teardown must abort active measurements while the wireless_dev is still present in the driver. cfg80211_leave_locked() and cfg80211_stop_pd() already do this before invoking the driver's stop callback, but cfg80211_stop_p2p_device() and cfg80211_stop_nan() do not. Those helpers are also called directly by nl80211, rfkill shutdown, and wireless_dev unregister paths. If one of these paths stops a P2P device or NAN interface with a pending request, it removes the mac80211 subinterface from the driver first. Subsequent request cleanup cannot reach the lower driver's abort callback, but cfg80211 frees the request regardless. Driver state can then retain a stale request and use it when it later reports a result. Call cfg80211_pmsr_wdev_down() before stopping the P2P device or NAN interface. This keeps lower-driver request state and cfg80211 request ownership in sync for all of the helpers' callers. Fixes: 9bb7e0f24e7e ("cfg80211: add peer measurement with FTM initiator API") Assisted-by: Codex:gpt-5.6-sol Signed-off-by: Zhao Li --- net/wireless/core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/wireless/core.c b/net/wireless/core.c index 610238d723ff..d13310fef691 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c @@ -237,6 +237,7 @@ void cfg80211_stop_p2p_device(struct cfg80211_registered_device *rdev, if (!wdev_running(wdev)) return; + cfg80211_pmsr_wdev_down(wdev); rdev_stop_p2p_device(rdev, wdev); wdev->is_running = false; @@ -264,6 +265,8 @@ void cfg80211_stop_nan(struct cfg80211_registered_device *rdev, if (!wdev_running(wdev)) return; + cfg80211_pmsr_wdev_down(wdev); + /* * If there is a scheduled update pending, mark it as canceled, so the * empty schedule will be accepted base-commit: 4a0bd262df757b25fc4e2a53c947317c119ced4e -- 2.50.1 (Apple Git-155)