ice: fix Get link status data length
authorPaul Greenwalt <paul.greenwalt@intel.com>
Thu, 21 Dec 2023 21:40:28 +0000 (16:40 -0500)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Wed, 3 Jan 2024 19:19:47 +0000 (11:19 -0800)
Get link status version 2 (opcode 0x0607) is returning an error because FW
expects a data length of 56 bytes, and this is causing the driver to fail
probe.

Update the get link status version 2 data length to 56 bytes by adding 5
byte reserved5 field to the end of struct ice_aqc_get_link_status_data and
passing it as parameter to offsetofend() to the fix error.

Fixes: 2777d24ec6d1 ("ice: Add ice_get_link_status_datalen")
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Paul Greenwalt <paul.greenwalt@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h

index d7fdb7b..fbd5d92 100644 (file)
@@ -1359,8 +1359,9 @@ struct ice_aqc_get_link_status_data {
        u8 lp_flowcontrol;
 #define ICE_AQ_LINK_LP_PAUSE_ADV       BIT(0)
 #define ICE_AQ_LINK_LP_ASM_DIR_ADV     BIT(1)
+       u8 reserved5[5];
 #define ICE_AQC_LS_DATA_SIZE_V2 \
-       offsetofend(struct ice_aqc_get_link_status_data, lp_flowcontrol)
+       offsetofend(struct ice_aqc_get_link_status_data, reserved5)
 } __packed;
 
 /* Set event mask command (direct 0x0613) */