net: marvell: prestera: Add explicit padding
On m68k:
In function ‘prestera_hw_build_tests’,
inlined from ‘prestera_hw_switch_init’ at drivers/net/ethernet/marvell/prestera/prestera_hw.c:788:2:
././include/linux/compiler_types.h:335:38: error: call to ‘__compiletime_assert_345’ declared with attribute error: BUILD_BUG_ON failed: sizeof(struct prestera_msg_switch_attr_req) != 16
...
The driver assumes structure members are naturally aligned, but does not
add explicit padding, thus breaking architectures where integral values
are not always naturally aligned (e.g. on m68k, __alignof(int) is 2, not
4).
Fixes: bb5dbf2cc6
("net: marvell: prestera: add firmware v4.0 support")
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20211102082433.3820514-1-geert@linux-m68k.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Родитель
6ab9f57a64
Коммит
236f57fe1b
|
@ -189,6 +189,7 @@ struct prestera_msg_switch_attr_req {
|
|||
struct prestera_msg_cmd cmd;
|
||||
__le32 attr;
|
||||
union prestera_msg_switch_param param;
|
||||
u8 pad[2];
|
||||
};
|
||||
|
||||
struct prestera_msg_switch_init_resp {
|
||||
|
@ -313,6 +314,7 @@ struct prestera_msg_port_info_resp {
|
|||
__le32 hw_id;
|
||||
__le32 dev_id;
|
||||
__le16 fp_id;
|
||||
u8 pad[2];
|
||||
};
|
||||
|
||||
struct prestera_msg_vlan_req {
|
||||
|
@ -345,11 +347,13 @@ struct prestera_msg_bridge_req {
|
|||
__le32 port;
|
||||
__le32 dev;
|
||||
__le16 bridge;
|
||||
u8 pad[2];
|
||||
};
|
||||
|
||||
struct prestera_msg_bridge_resp {
|
||||
struct prestera_msg_ret ret;
|
||||
__le16 bridge;
|
||||
u8 pad[2];
|
||||
};
|
||||
|
||||
struct prestera_msg_acl_action {
|
||||
|
@ -408,16 +412,19 @@ struct prestera_msg_acl_ruleset_bind_req {
|
|||
__le32 port;
|
||||
__le32 dev;
|
||||
__le16 ruleset_id;
|
||||
u8 pad[2];
|
||||
};
|
||||
|
||||
struct prestera_msg_acl_ruleset_req {
|
||||
struct prestera_msg_cmd cmd;
|
||||
__le16 id;
|
||||
u8 pad[2];
|
||||
};
|
||||
|
||||
struct prestera_msg_acl_ruleset_resp {
|
||||
struct prestera_msg_ret ret;
|
||||
__le16 id;
|
||||
u8 pad[2];
|
||||
};
|
||||
|
||||
struct prestera_msg_span_req {
|
||||
|
@ -425,11 +432,13 @@ struct prestera_msg_span_req {
|
|||
__le32 port;
|
||||
__le32 dev;
|
||||
u8 id;
|
||||
u8 pad[3];
|
||||
};
|
||||
|
||||
struct prestera_msg_span_resp {
|
||||
struct prestera_msg_ret ret;
|
||||
u8 id;
|
||||
u8 pad[3];
|
||||
};
|
||||
|
||||
struct prestera_msg_stp_req {
|
||||
|
@ -443,6 +452,7 @@ struct prestera_msg_stp_req {
|
|||
struct prestera_msg_rxtx_req {
|
||||
struct prestera_msg_cmd cmd;
|
||||
u8 use_sdma;
|
||||
u8 pad[3];
|
||||
};
|
||||
|
||||
struct prestera_msg_rxtx_resp {
|
||||
|
@ -455,12 +465,14 @@ struct prestera_msg_lag_req {
|
|||
__le32 port;
|
||||
__le32 dev;
|
||||
__le16 lag_id;
|
||||
u8 pad[2];
|
||||
};
|
||||
|
||||
struct prestera_msg_cpu_code_counter_req {
|
||||
struct prestera_msg_cmd cmd;
|
||||
u8 counter_type;
|
||||
u8 code;
|
||||
u8 pad[2];
|
||||
};
|
||||
|
||||
struct mvsw_msg_cpu_code_counter_ret {
|
||||
|
|
Загрузка…
Ссылка в новой задаче