aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/marvell/libertas/host.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2022-05-23 18:02:01 +0200
committerKalle Valo <kvalo@kernel.org>2022-05-30 12:13:25 +0300
commitd944e09ea839033476e43fe03db0121b7be5154e (patch)
tree2dfd288053fd645d04082ac82ded2f5e70171f0f /drivers/net/wireless/marvell/libertas/host.h
parentnet: sched: fixed barrier to prevent skbuff sticking in qdisc backlog (diff)
downloadlinux-dev-d944e09ea839033476e43fe03db0121b7be5154e.tar.xz
linux-dev-d944e09ea839033476e43fe03db0121b7be5154e.zip
wifi: libertas: use variable-size data in assoc req/resp cmd
The firmware has a 512 limit here, but we use less, so gcc starts complaining about it: drivers/net/wireless/marvell/libertas/cfg.c:1198:63: warning: array subscript ‘struct cmd_ds_802_11_associate_response[0]’ is partly outside array bounds of ‘unsigned char[203]’ [-Warray-bounds] 1198 | "aid 0x%04x\n", status, le16_to_cpu(resp->statuscode), | ^~ Since we size the command and response buffer per our needs and not per the firmware maximum, change to a variable size data array and put the 512 only into a comment. In the end, that's actually what the code always wanted, and it simplifies the code that used to subtract the fixed size buffer size in two places. Reported-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Acked-by: Kalle Valo <kvalo@kernel.org> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220523180200.115fa27fbece.Ie66d874b047e7afad63900aa2df70f031711147e@changeid
Diffstat (limited to '')
-rw-r--r--drivers/net/wireless/marvell/libertas/host.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/marvell/libertas/host.h b/drivers/net/wireless/marvell/libertas/host.h
index ceff4b92e7a1..a202b716ad5d 100644
--- a/drivers/net/wireless/marvell/libertas/host.h
+++ b/drivers/net/wireless/marvell/libertas/host.h
@@ -528,7 +528,8 @@ struct cmd_ds_802_11_associate {
__le16 listeninterval;
__le16 bcnperiod;
u8 dtimperiod;
- u8 iebuf[512]; /* Enough for required and most optional IEs */
+ /* 512 permitted - enough for required and most optional IEs */
+ u8 iebuf[];
} __packed;
struct cmd_ds_802_11_associate_response {
@@ -537,7 +538,8 @@ struct cmd_ds_802_11_associate_response {
__le16 capability;
__le16 statuscode;
__le16 aid;
- u8 iebuf[512];
+ /* max 512 */
+ u8 iebuf[];
} __packed;
struct cmd_ds_802_11_set_wep {