From: Arnd Bergmann <arnd@kernel.org>
To: "Kees Cook" <keescook@chromium.org>,
"Kalle Valo" <kvalo@kernel.org>,
"Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: linux-hardening@vger.kernel.org, linux-wireless@vger.kernel.org,
Arnd Bergmann <arnd@arndb.de>,
Jeff Johnson <quic_jjohnson@quicinc.com>,
Dmitry Antipov <dmantipov@yandex.ru>,
Hancheng Yang <hyang@freebox.fr>,
Remi Pommarel <repk@triplefau.lt>,
Johannes Berg <johannes.berg@intel.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH 2/2] wifi: ath9k: work around memset overflow warning
Date: Thu, 28 Mar 2024 14:55:05 +0100 [thread overview]
Message-ID: <20240328135509.3755090-3-arnd@kernel.org> (raw)
In-Reply-To: <20240328135509.3755090-1-arnd@kernel.org>
From: Arnd Bergmann <arnd@arndb.de>
gcc-9 and some other older versions produce a false-positive warning
for zeroing two fields
In file included from include/linux/string.h:369,
from drivers/net/wireless/ath/ath9k/main.c:18:
In function 'fortify_memset_chk',
inlined from 'ath9k_ps_wakeup' at drivers/net/wireless/ath/ath9k/main.c:140:3:
include/linux/fortify-string.h:462:25: error: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning]
462 | __write_overflow_field(p_size_field, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Using a struct_group seems to reliably avoid the warning and
not make the code much uglier. The combined memset() should even
save a couple of cpu cycles.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
This is from randconfig testing, see https://pastebin.com/yjKk5N81
for a reproducer
---
drivers/net/wireless/ath/ath.h | 6 ++++--
drivers/net/wireless/ath/ath9k/main.c | 3 +--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
index f02a308a9ffc..34654f710d8a 100644
--- a/drivers/net/wireless/ath/ath.h
+++ b/drivers/net/wireless/ath/ath.h
@@ -171,8 +171,10 @@ struct ath_common {
unsigned int clockrate;
spinlock_t cc_lock;
- struct ath_cycle_counters cc_ani;
- struct ath_cycle_counters cc_survey;
+ struct_group(cc,
+ struct ath_cycle_counters cc_ani;
+ struct ath_cycle_counters cc_survey;
+ );
struct ath_regulatory regulatory;
struct ath_regulatory reg_world_copy;
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index a2943aaecb20..01173aac3045 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -135,8 +135,7 @@ void ath9k_ps_wakeup(struct ath_softc *sc)
if (power_mode != ATH9K_PM_AWAKE) {
spin_lock(&common->cc_lock);
ath_hw_cycle_counters_update(common);
- memset(&common->cc_survey, 0, sizeof(common->cc_survey));
- memset(&common->cc_ani, 0, sizeof(common->cc_ani));
+ memset(&common->cc, 0, sizeof(common->cc));
spin_unlock(&common->cc_lock);
}
--
2.39.2
next prev parent reply other threads:[~2024-03-28 13:55 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-28 13:55 [PATCH 0/2] wifi: ath: false-positive fortified-memset warnings Arnd Bergmann
2024-03-28 13:55 ` [PATCH 1/2] [RESEND] wifi: carl9170: re-fix fortified-memset warning Arnd Bergmann
2024-03-28 21:51 ` Kees Cook
2024-03-29 12:56 ` Christian Lamparter
2024-04-04 10:10 ` Kalle Valo
2024-03-28 13:55 ` Arnd Bergmann [this message]
2024-03-28 21:14 ` [PATCH 2/2] wifi: ath9k: work around memset overflow warning Toke Høiland-Jørgensen
2024-03-28 21:50 ` Kees Cook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240328135509.3755090-3-arnd@kernel.org \
--to=arnd@kernel.org \
--cc=arnd@arndb.de \
--cc=dmantipov@yandex.ru \
--cc=hyang@freebox.fr \
--cc=johannes.berg@intel.com \
--cc=keescook@chromium.org \
--cc=kvalo@kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=quic_jjohnson@quicinc.com \
--cc=repk@triplefau.lt \
--cc=toke@toke.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.