diff options
Diffstat (limited to 'drivers/net/ethernet/sfc/mcdi.c')
-rw-r--r-- | drivers/net/ethernet/sfc/mcdi.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/net/ethernet/sfc/mcdi.c b/drivers/net/ethernet/sfc/mcdi.c index eb59abb57e85..7bd4b14bf3b3 100644 --- a/drivers/net/ethernet/sfc/mcdi.c +++ b/drivers/net/ethernet/sfc/mcdi.c | |||
@@ -1187,6 +1187,9 @@ int efx_mcdi_get_board_cfg(struct efx_nic *efx, u8 *mac_address, | |||
1187 | int rc; | 1187 | int rc; |
1188 | 1188 | ||
1189 | BUILD_BUG_ON(MC_CMD_GET_BOARD_CFG_IN_LEN != 0); | 1189 | BUILD_BUG_ON(MC_CMD_GET_BOARD_CFG_IN_LEN != 0); |
1190 | /* we need __aligned(2) for ether_addr_copy */ | ||
1191 | BUILD_BUG_ON(MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_OFST & 1); | ||
1192 | BUILD_BUG_ON(MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT1_OFST & 1); | ||
1190 | 1193 | ||
1191 | rc = efx_mcdi_rpc(efx, MC_CMD_GET_BOARD_CFG, NULL, 0, | 1194 | rc = efx_mcdi_rpc(efx, MC_CMD_GET_BOARD_CFG, NULL, 0, |
1192 | outbuf, sizeof(outbuf), &outlen); | 1195 | outbuf, sizeof(outbuf), &outlen); |
@@ -1199,11 +1202,10 @@ int efx_mcdi_get_board_cfg(struct efx_nic *efx, u8 *mac_address, | |||
1199 | } | 1202 | } |
1200 | 1203 | ||
1201 | if (mac_address) | 1204 | if (mac_address) |
1202 | memcpy(mac_address, | 1205 | ether_addr_copy(mac_address, |
1203 | port_num ? | 1206 | port_num ? |
1204 | MCDI_PTR(outbuf, GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT1) : | 1207 | MCDI_PTR(outbuf, GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT1) : |
1205 | MCDI_PTR(outbuf, GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0), | 1208 | MCDI_PTR(outbuf, GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0)); |
1206 | ETH_ALEN); | ||
1207 | if (fw_subtype_list) { | 1209 | if (fw_subtype_list) { |
1208 | for (i = 0; | 1210 | for (i = 0; |
1209 | i < MCDI_VAR_ARRAY_LEN(outlen, | 1211 | i < MCDI_VAR_ARRAY_LEN(outlen, |
@@ -1532,7 +1534,7 @@ static int efx_mcdi_wol_filter_set(struct efx_nic *efx, u32 type, | |||
1532 | MCDI_SET_DWORD(inbuf, WOL_FILTER_SET_IN_WOL_TYPE, type); | 1534 | MCDI_SET_DWORD(inbuf, WOL_FILTER_SET_IN_WOL_TYPE, type); |
1533 | MCDI_SET_DWORD(inbuf, WOL_FILTER_SET_IN_FILTER_MODE, | 1535 | MCDI_SET_DWORD(inbuf, WOL_FILTER_SET_IN_FILTER_MODE, |
1534 | MC_CMD_FILTER_MODE_SIMPLE); | 1536 | MC_CMD_FILTER_MODE_SIMPLE); |
1535 | memcpy(MCDI_PTR(inbuf, WOL_FILTER_SET_IN_MAGIC_MAC), mac, ETH_ALEN); | 1537 | ether_addr_copy(MCDI_PTR(inbuf, WOL_FILTER_SET_IN_MAGIC_MAC), mac); |
1536 | 1538 | ||
1537 | rc = efx_mcdi_rpc(efx, MC_CMD_WOL_FILTER_SET, inbuf, sizeof(inbuf), | 1539 | rc = efx_mcdi_rpc(efx, MC_CMD_WOL_FILTER_SET, inbuf, sizeof(inbuf), |
1538 | outbuf, sizeof(outbuf), &outlen); | 1540 | outbuf, sizeof(outbuf), &outlen); |