From patchwork Sat Jan 13 01:11:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brent Pappas X-Patchwork-Id: 187858 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:693c:2614:b0:101:6a76:bbe3 with SMTP id mm20csp540478dyc; Fri, 12 Jan 2024 17:22:51 -0800 (PST) X-Google-Smtp-Source: AGHT+IGU8WHYIUpoO1JCvZy0UWyO20xgPSkwUpLigXJBKhCssA1cdhKu4VyLT7g4vnzv02GNLUnd X-Received: by 2002:a17:902:ce81:b0:1d4:e0ea:f760 with SMTP id f1-20020a170902ce8100b001d4e0eaf760mr1770201plg.103.1705108971411; Fri, 12 Jan 2024 17:22:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1705108971; cv=none; d=google.com; s=arc-20160816; b=P+pPLVbRAJ25SGB+akjliejWWlqIiFgP87PmHnV5R677H3ORD7LS/TJVU89McQy0MZ rQVfjAjcCxRQ0oyCVY9QjMgD8U5Bcgz4su5/6+3KRt9Wo63C04rid3r7V6W3l+RbpDeB sJzs0YmtF2lTfuDUvcNM7UT/Us6OC8wDrnxN4wnfTZNmGlu5UkLZ2y7Hto03GlUQzb3P mR3dE4m0eey0zEJdyUyNke0OAKcewefK0Na0RjqUYLhTypN4ZQPwj37SXVJyjTE8j6dZ 6m0JO2lnxs2TIy1zcAPWrocXd9QmC9ZZ5UWPmMAPzIBWRktP461S3IM/0FjqmMa+6Av7 QQbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=0Ctx+/zmCcVG6P4rZ04GNVj1+tQXzo6XO+o7DACNcLo=; fh=XwLEJ0qdoxBRTcTu3fetdunu0G7wpnFq1jUPX55ozZ4=; b=InoR1ZpOjFpHvwC0TPMbjNyz8D7UgeKCFdQMfegXAIrlaO5CC6nS/4VKTEQtHIok6X BPk6WOUaq69JKWCDEZY4Om4wR/Eo9j2miL3KvDgpYrssoRZuzZ7gFu+/slVMBU6vYU1L PVn2RV8SgBt8LgXV2An+F5RxAwyqgq6jb858wjRaO1YMMSNGz25yvpkPMAMP/DQJ/eUJ dSeQo5qIugfOAumslaUcwyROu/Mrd7y8GjcaKiYn9lK0gKiIzf95KoeFoUvq1aVn4fvF VuFyXV5xYenbgCp/ouLAUiVv/Mk+xFguVhWQ0nDn7ub2+IX2hfJzX0AnEkJOWjAhH0ZZ u3TA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@pappasbrent.com header.s=default header.b="QcbN3/tm"; spf=pass (google.com: domain of linux-kernel+bounces-25153-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-25153-ouuuleilei=gmail.com@vger.kernel.org" Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id n9-20020a1709026a8900b001d5486faf60si4289543plk.272.2024.01.12.17.22.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jan 2024 17:22:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-25153-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@pappasbrent.com header.s=default header.b="QcbN3/tm"; spf=pass (google.com: domain of linux-kernel+bounces-25153-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-25153-ouuuleilei=gmail.com@vger.kernel.org" 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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 34AAD286D35 for ; Sat, 13 Jan 2024 01:22:51 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4FB5718EBF; Sat, 13 Jan 2024 01:22:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pappasbrent.com header.i=@pappasbrent.com header.b="QcbN3/tm" Received: from h5.fbrelay.privateemail.com (h5.fbrelay.privateemail.com [162.0.218.228]) (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 98D41134C2; Sat, 13 Jan 2024 01:22:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pappasbrent.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pappasbrent.com Received: from MTA-10-4.privateemail.com (mta-10.privateemail.com [198.54.118.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by h5.fbrelay.privateemail.com (Postfix) with ESMTPSA id B138B60562; Sat, 13 Jan 2024 01:14:49 +0000 (UTC) Received: from mta-10.privateemail.com (localhost [127.0.0.1]) by mta-10.privateemail.com (Postfix) with ESMTP id E443E180020E; Fri, 12 Jan 2024 20:14:40 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pappasbrent.com; s=default; t=1705108481; bh=5tLeUjD4Wuj2pnMpbrqMQhIri6Cryus27QrLloXWnoE=; h=From:To:Cc:Subject:Date:From; b=QcbN3/tm2Mzp1wE86PFCzJsLp8ocsCOFrvclQrhYXpGSYMFuMcvh5Hcl7VqAZ7Cc+ aAel++fm523ubqNQ3B13GH33fzD4tydNS3woLkLuvXHjYQZOMyzdhxXuIUKUPncqhV jEz4pHOSNjWR5LYlJOIXMmDTz6bCNOkDdmNXm6L6UoD41wC0BB7xbs4KHFgJDtUXBX BrizwHfnjtfM3m7rD3k+WrsSWsf7q4R62lOGrWaKZfCt/FLidHWkdme37WDtGhhQea QtH7sXMOlNVFfbOCFD/KmB/t9CPXKKF5HkVv3RBlafVAfH9/2Ev3m+LGItkigT2Rv6 tSCasZnAe62EQ== Received: from bpappas-XPS-13-9310.cfl.rr.com (050-088-208-203.res.spectrum.com [50.88.208.203]) by mta-10.privateemail.com (Postfix) with ESMTPA; Fri, 12 Jan 2024 20:14:30 -0500 (EST) From: Brent Pappas To: Johannes Berg , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Brent Pappas , linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] wifi: mac80211: tx: Add __must_hold() annotation Date: Fri, 12 Jan 2024 20:11:45 -0500 Message-ID: <20240113011145.10888-2-bpappas@pappasbrent.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Virus-Scanned: ClamAV using ClamSMTP X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1787936344740512241 X-GMAIL-MSGID: 1787936344740512241 Annotates ieee80211_set_beacon_cntdwn() with a __must_hold() annotation to make it clear that ieee80211_set_beacon_cntdwn() is only intended to be called when the caller has a lock on the argument "link." Signed-off-by: Brent Pappas --- Currently, ieee80211_set_beacon_cntdwn() calls rcu_dereference(), but without calling rcu_read_lock() beforehand and rcu_read_unlock() afterward. At first I thought this was a bug, since (if I understand the RCU API correctly) rcu_dereference() should only be called in RCU read-side critical sections. However, upon closer inspection of the code, I realized that ieee80211_set_beacon_cntdwn() is only ever called inside critical sections. Therefore it seems appropriate to me to annotate ieee80211_set_beacon_cntdwn() with a __must_hold() annotation to make this apparent precondition explicit. This is my first time submitting an RCU-related patch so please tell me if I am misunderstanding the RCU API. net/mac80211/tx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 314998fdb1a5..7245f2e641ba 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -10,6 +10,7 @@ * Transmit and frame generation functions. */ +#include "linux/compiler_types.h" #include #include #include @@ -4974,6 +4975,7 @@ static int ieee80211_beacon_add_tim(struct ieee80211_sub_if_data *sdata, static void ieee80211_set_beacon_cntdwn(struct ieee80211_sub_if_data *sdata, struct beacon_data *beacon, struct ieee80211_link_data *link) + __must_hold(link) { u8 *beacon_data, count, max_count = 1; struct probe_resp *resp;