On 2020/11/29 3:36, Jakub Kicinski wrote: > On Sat, 28 Nov 2020 16:20:54 +1100 Stephen Rothwell wrote: >> On Fri, 27 Nov 2020 17:56:42 -0800 Jakub Kicinski <kuba@xxxxxxxxxx> wrote: >>> >>> What's the offending structure in hisilicon? I'd rather have a look >>> packing structs with pointers in 'em sounds questionable. >>> >>> I only see these two: >>> >>> $ git grep packed drivers/net/ethernet/hisilicon/ >>> drivers/net/ethernet/hisilicon/hns/hnae.h:struct __packed hnae_desc { >>> drivers/net/ethernet/hisilicon/hns3/hns3_enet.h:struct __packed hns3_desc { >> >> struct hclge_dbg_reg_type_info which is 28 bytes long due to the >> included struct struct hclge_dbg_reg_common_msg (which is 12 bytes >> long). They are surrounded by #pragma pack(1)/pack(). >> >> This forces the 2 pointers in each second array element of >> hclge_dbg_reg_info[] to be 4 byte aligned (where pointers are 8 bytes >> long on PPC64). > > Ah! Thanks, I don't see a reason for these to be packed. > Looks like an accident, there is no reason to pack anything > past struct hclge_dbg_reg_common_msg AFAICT. > > Huawei folks, would you mind sending a fix if the analysis is correct? Yes, will send a patch to fix that. Thanks for the analysis. > . >