lkml.org 
[lkml]   [2021]   [Mar]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 088/157] i40e: Fix endianness conversions
    Date
    From: Norbert Ciosek <norbertx.ciosek@intel.com>

    [ Upstream commit b32cddd2247cf730731f93f1967d0147a40682c7 ]

    Fixes the following sparse warnings:
    i40e_main.c:5953:32: warning: cast from restricted __le16
    i40e_main.c:8008:29: warning: incorrect type in assignment (different base types)
    i40e_main.c:8008:29: expected unsigned int [assigned] [usertype] ipa
    i40e_main.c:8008:29: got restricted __le32 [usertype]
    i40e_main.c:8008:29: warning: incorrect type in assignment (different base types)
    i40e_main.c:8008:29: expected unsigned int [assigned] [usertype] ipa
    i40e_main.c:8008:29: got restricted __le32 [usertype]
    i40e_txrx.c:1950:59: warning: incorrect type in initializer (different base types)
    i40e_txrx.c:1950:59: expected unsigned short [usertype] vlan_tag
    i40e_txrx.c:1950:59: got restricted __le16 [usertype] l2tag1
    i40e_txrx.c:1953:40: warning: cast to restricted __le16
    i40e_xsk.c:448:38: warning: invalid assignment: |=
    i40e_xsk.c:448:38: left side has type restricted __le64
    i40e_xsk.c:448:38: right side has type int

    Fixes: 2f4b411a3d67 ("i40e: Enable cloud filters via tc-flower")
    Fixes: 2a508c64ad27 ("i40e: fix VLAN.TCI == 0 RX HW offload")
    Fixes: 3106c580fb7c ("i40e: Use batched xsk Tx interfaces to increase performance")
    Fixes: 8f88b3034db3 ("i40e: Add infrastructure for queue channel support")
    Signed-off-by: Norbert Ciosek <norbertx.ciosek@intel.com>
    Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/intel/i40e/i40e_main.c | 12 ++++++------
    drivers/net/ethernet/intel/i40e/i40e_txrx.c | 2 +-
    2 files changed, 7 insertions(+), 7 deletions(-)

    diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
    index 3e4a4d6f0419..4a2d03cada01 100644
    --- a/drivers/net/ethernet/intel/i40e/i40e_main.c
    +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
    @@ -5920,7 +5920,7 @@ static int i40e_add_channel(struct i40e_pf *pf, u16 uplink_seid,
    ch->enabled_tc = !i40e_is_channel_macvlan(ch) && enabled_tc;
    ch->seid = ctxt.seid;
    ch->vsi_number = ctxt.vsi_number;
    - ch->stat_counter_idx = cpu_to_le16(ctxt.info.stat_counter_idx);
    + ch->stat_counter_idx = le16_to_cpu(ctxt.info.stat_counter_idx);

    /* copy just the sections touched not the entire info
    * since not all sections are valid as returned by
    @@ -7599,8 +7599,8 @@ static inline void
    i40e_set_cld_element(struct i40e_cloud_filter *filter,
    struct i40e_aqc_cloud_filters_element_data *cld)
    {
    - int i, j;
    u32 ipa;
    + int i;

    memset(cld, 0, sizeof(*cld));
    ether_addr_copy(cld->outer_mac, filter->dst_mac);
    @@ -7611,14 +7611,14 @@ i40e_set_cld_element(struct i40e_cloud_filter *filter,

    if (filter->n_proto == ETH_P_IPV6) {
    #define IPV6_MAX_INDEX (ARRAY_SIZE(filter->dst_ipv6) - 1)
    - for (i = 0, j = 0; i < ARRAY_SIZE(filter->dst_ipv6);
    - i++, j += 2) {
    + for (i = 0; i < ARRAY_SIZE(filter->dst_ipv6); i++) {
    ipa = be32_to_cpu(filter->dst_ipv6[IPV6_MAX_INDEX - i]);
    - ipa = cpu_to_le32(ipa);
    - memcpy(&cld->ipaddr.raw_v6.data[j], &ipa, sizeof(ipa));
    +
    + *(__le32 *)&cld->ipaddr.raw_v6.data[i * 2] = cpu_to_le32(ipa);
    }
    } else {
    ipa = be32_to_cpu(filter->dst_ipv4);
    +
    memcpy(&cld->ipaddr.v4.data, &ipa, sizeof(ipa));
    }

    diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
    index 38dec49ac64d..899714243af7 100644
    --- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
    +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
    @@ -1782,7 +1782,7 @@ void i40e_process_skb_fields(struct i40e_ring *rx_ring,
    skb_record_rx_queue(skb, rx_ring->queue_index);

    if (qword & BIT(I40E_RX_DESC_STATUS_L2TAG1P_SHIFT)) {
    - u16 vlan_tag = rx_desc->wb.qword0.lo_dword.l2tag1;
    + __le16 vlan_tag = rx_desc->wb.qword0.lo_dword.l2tag1;

    __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
    le16_to_cpu(vlan_tag));
    --
    2.30.1


    \
     
     \ /
      Last update: 2022-09-17 16:10    [W:3.252 / U:1.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site