lkml.org 
[lkml]   [2013]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 3/9 ] sfc: Convert firmware subtypes to native byte order in efx_mcdi_get_board_cfg()
    From: Ben Hutchings <bhutchings@solarflare.com>

    [ Upstream commit bfeed902946a31692e7a24ed355b6d13ac37d014 ]

    On big-endian systems the MTD partition names currently have mangled
    subtype numbers and are not recognised by the firmware update tool
    (sfupdate).

    Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    ---
    drivers/net/ethernet/sfc/mcdi.c | 18 +++++++++++-------
    1 file changed, 11 insertions(+), 7 deletions(-)

    diff --git a/drivers/net/ethernet/sfc/mcdi.c b/drivers/net/ethernet/sfc/mcdi.c
    index fc5e7bb..516a437 100644
    --- a/drivers/net/ethernet/sfc/mcdi.c
    +++ b/drivers/net/ethernet/sfc/mcdi.c
    @@ -641,9 +641,8 @@ int efx_mcdi_get_board_cfg(struct efx_nic *efx, u8 *mac_address,
    u16 *fw_subtype_list, u32 *capabilities)
    {
    uint8_t outbuf[MC_CMD_GET_BOARD_CFG_OUT_LENMIN];
    - size_t outlen;
    + size_t outlen, offset, i;
    int port_num = efx_port_num(efx);
    - int offset;
    int rc;

    BUILD_BUG_ON(MC_CMD_GET_BOARD_CFG_IN_LEN != 0);
    @@ -663,11 +662,16 @@ int efx_mcdi_get_board_cfg(struct efx_nic *efx, u8 *mac_address,
    : MC_CMD_GET_BOARD_CFG_OUT_MAC_ADDR_BASE_PORT0_OFST;
    if (mac_address)
    memcpy(mac_address, outbuf + offset, ETH_ALEN);
    - if (fw_subtype_list)
    - memcpy(fw_subtype_list,
    - outbuf + MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_OFST,
    - MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MINNUM *
    - sizeof(fw_subtype_list[0]));
    + if (fw_subtype_list) {
    + offset = MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_OFST;
    + for (i = 0;
    + i < MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MINNUM;
    + i++) {
    + fw_subtype_list[i] =
    + le16_to_cpup((__le16 *)(outbuf + offset));
    + offset += 2;
    + }
    + }
    if (capabilities) {
    if (port_num)
    *capabilities = MCDI_DWORD(outbuf,
    --
    1.7.10.4



    \
     
     \ /
      Last update: 2013-04-12 01:41    [W:2.711 / U:0.128 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site