From nobody Tue Dec 2 02:31:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 4BE2E2F49F1; Wed, 19 Nov 2025 08:41:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763541693; cv=none; b=maF/Zj699SFPpmLRDuPqRyf7Cm3aJORzJz4YQEDx/swWJ5509jdPL/NH8GZwrwGHDT4noAu6fWZgKBFyHYWFigUiyUvegdeVdQNc6/Oyx4kREpS9bfxtZDzVgJWVxkXSeh/KOfJhFj1MYS2pG0LfhTDG8d0r9tR2CKGK0Nhf/a8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763541693; c=relaxed/simple; bh=dksIa9QT6oEbWiAmLz25H8n5pzertf8zaOAbLvM1J0k=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=IvU+yBduhtjv2M0eRgrchXQfFZBPPH82+RUxw5wS5EBry16gSUJjMSM83nLy0/t4XdWybly6DRiKnADu8H5sI3fUqZ+Wzh5BzWj5LmyCdRZm5Xt+Ia7IMnMWDGWq+97Yhvw9+/LEQEm9RCCM2x72+OuL6KO/QGo8DZsx+QReSLU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lTXcESib; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lTXcESib" Received: by smtp.kernel.org (Postfix) with ESMTPSA id ABC27C4CEF5; Wed, 19 Nov 2025 08:41:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763541692; bh=dksIa9QT6oEbWiAmLz25H8n5pzertf8zaOAbLvM1J0k=; h=Date:From:To:Cc:Subject:From; b=lTXcESiboV/AhVdMwTc5oSQdgg30Hlfpmy4Bk/LRPnoOLlkc8kZSCD6sYk7rRWWc/ ixEyUXceUQt/v2z1ZQkRm7Plvb3pS0DrgXTqG8SaDnImgTq0Uh/3JyNBkFrdc/MqhO 6rQkzUfBnj60A0ZbnaYIhVm0k1sARAz1TorUAJ0wqpIPTzZa7dew1t425adzcTkcpr o693kk4Cq5/iaesGeMEmBtQqGhPmn3eGQvg0Ak0QLCY3hnDJS1oUCVRzKVuLcdOUo8 H03CpwsWFnIjdqkvjBV9fWqfRI+LO4DxOrA2AfNliRrs6F1YTPZxGzAj/KX4IQb1wG VomU+Qnr3sDQA== Date: Wed, 19 Nov 2025 17:41:26 +0900 From: "Gustavo A. R. Silva" To: Stanislaw Gruszka Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org Subject: [PATCH][next] iwlegacy: Avoid multiple -Wflex-array-member-not-at-end warnings Message-ID: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" -Wflex-array-member-not-at-end was introduced in GCC-14, and we are getting ready to enable it, globally. Move the conflicting declarations (which in a couple of cases happens to be in a union, so we're moving the entire unions) to the end of the corresponding structures. Notice that `struct il_tx_beacon_cmd`, `struct il4965_tx_resp`, and `struct il3945_tx_beacon_cmd` are flexible structures, this is structures that contain a flexible-array member. With these changes fix the following warnings: 11 drivers/net/wireless/intel/iwlegacy/common.h:526:11: warning: structure = containing a flexible array member is not at the end of another structure [= -Wflex-array-member-not-at-end] 11 drivers/net/wireless/intel/iwlegacy/commands.h:2667:31: warning: structu= re containing a flexible array member is not at the end of another structur= e [-Wflex-array-member-not-at-end] 4 drivers/net/wireless/intel/iwlegacy/3945.h:131:11: warning: structure con= taining a flexible array member is not at the end of another structure [-Wf= lex-array-member-not-at-end] Signed-off-by: Gustavo A. R. Silva --- drivers/net/wireless/intel/iwlegacy/3945.h | 4 +++- drivers/net/wireless/intel/iwlegacy/commands.h | 4 +++- drivers/net/wireless/intel/iwlegacy/common.h | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/intel/iwlegacy/3945.h b/drivers/net/wirel= ess/intel/iwlegacy/3945.h index fb1e33c89d0e..ed63b31fee9a 100644 --- a/drivers/net/wireless/intel/iwlegacy/3945.h +++ b/drivers/net/wireless/intel/iwlegacy/3945.h @@ -123,13 +123,15 @@ enum il3945_antenna { #define IEEE80211_FRAME_LEN (IEEE80211_DATA_LEN + IEEE80211_HL= EN) =20 struct il3945_frame { + struct list_head list; + + /* Must be last as it ends in a flexible-array member. */ union { struct ieee80211_hdr frame; struct il3945_tx_beacon_cmd beacon; u8 raw[IEEE80211_FRAME_LEN]; u8 cmd[360]; } u; - struct list_head list; }; =20 #define SUP_RATE_11A_MAX_NUM_CHANNELS 8 diff --git a/drivers/net/wireless/intel/iwlegacy/commands.h b/drivers/net/w= ireless/intel/iwlegacy/commands.h index b61b8f377702..2e665072f6d3 100644 --- a/drivers/net/wireless/intel/iwlegacy/commands.h +++ b/drivers/net/wireless/intel/iwlegacy/commands.h @@ -2664,10 +2664,12 @@ struct il3945_beacon_notif { } __packed; =20 struct il4965_beacon_notif { - struct il4965_tx_resp beacon_notify_hdr; __le32 low_tsf; __le32 high_tsf; __le32 ibss_mgr_status; + + /* Must be last as it ends in a flexible-array member. */ + struct il4965_tx_resp beacon_notify_hdr; } __packed; =20 /* diff --git a/drivers/net/wireless/intel/iwlegacy/common.h b/drivers/net/wir= eless/intel/iwlegacy/common.h index 4c9836ab11dd..21f1c7702add 100644 --- a/drivers/net/wireless/intel/iwlegacy/common.h +++ b/drivers/net/wireless/intel/iwlegacy/common.h @@ -518,13 +518,15 @@ struct il_channel_info { #define IEEE80211_FRAME_LEN (IEEE80211_DATA_LEN + IEEE80211_HL= EN) =20 struct il_frame { + struct list_head list; + + /* Must be last as it ends in a flexible-array member. */ union { struct ieee80211_hdr frame; struct il_tx_beacon_cmd beacon; u8 raw[IEEE80211_FRAME_LEN]; u8 cmd[360]; } u; - struct list_head list; }; =20 enum { --=20 2.43.0