1. 25 Jun, 2020 7 commits
    • Thomas Martitz's avatar
      net: bridge: enfore alignment for ethernet address · 206e7323
      Thomas Martitz authored
      The eth_addr member is passed to ether_addr functions that require
      2-byte alignment, therefore the member must be properly aligned
      to avoid unaligned accesses.
      
      The problem is in place since the initial merge of multicast to unicast:
      commit 6db6f0ea bridge: multicast to unicast
      
      Fixes: 6db6f0ea ("bridge: multicast to unicast")
      Cc: Roopa Prabhu <roopa@cumulusnetworks.com>
      Cc: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Felix Fietkau <nbd@nbd.name>
      Signed-off-by: default avatarThomas Martitz <t.martitz@avm.de>
      Acked-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      206e7323
    • Denis Kirjanov's avatar
      tcp: don't ignore ECN CWR on pure ACK · 25702840
      Denis Kirjanov authored
      there is a problem with the CWR flag set in an incoming ACK segment
      and it leads to the situation when the ECE flag is latched forever
      
      the following packetdrill script shows what happens:
      
      // Stack receives incoming segments with CE set
      +0.1 <[ect0]  . 11001:12001(1000) ack 1001 win 65535
      +0.0 <[ce]    . 12001:13001(1000) ack 1001 win 65535
      +0.0 <[ect0] P. 13001:14001(1000) ack 1001 win 65535
      
      // Stack repsonds with ECN ECHO
      +0.0 >[noecn]  . 1001:1001(0) ack 12001
      +0.0 >[noecn] E. 1001:1001(0) ack 13001
      +0.0 >[noecn] E. 1001:1001(0) ack 14001
      
      // Write a packet
      +0.1 write(3, ..., 1000) = 1000
      +0.0 >[ect0] PE. 1001:2001(1000) ack 14001
      
      // Pure ACK received
      +0.01 <[noecn] W. 14001:14001(0) ack 2001 win 65535
      
      // Since CWR was sent, this packet should NOT have ECE set
      
      +0.1 write(3, ..., 1000) = 1000
      +0.0 >[ect0]  P. 2001:3001(1000) ack 14001
      // but Linux will still keep ECE latched here, with packetdrill
      // flagging a missing ECE flag, expecting
      // >[ect0] PE. 2001:3001(1000) ack 14001
      // in the script
      
      In the situation above we will continue to send ECN ECHO packets
      and trigger the peer to reduce the congestion window. To avoid that
      we can check CWR on pure ACKs received.
      
      v3:
      - Add a sequence check to avoid sending an ACK to an ACK
      
      v2:
      - Adjusted the comment
      - move CWR check before checking for unacknowledged packets
      Signed-off-by: default avatarDenis Kirjanov <denis.kirjanov@suse.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      25702840
    • Ard Biesheuvel's avatar
      net: phy: mscc: avoid skcipher API for single block AES encryption · 5a3235e5
      Ard Biesheuvel authored
      The skcipher API dynamically instantiates the transformation object
      on request that implements the requested algorithm optimally on the
      given platform. This notion of optimality only matters for cases like
      bulk network or disk encryption, where performance can be a bottleneck,
      or in cases where the algorithm itself is not known at compile time.
      
      In the mscc case, we are dealing with AES encryption of a single
      block, and so neither concern applies, and we are better off using
      the AES library interface, which is lightweight and safe for this
      kind of use.
      
      Note that the scatterlist API does not permit references to buffers
      that are located on the stack, so the existing code is incorrect in
      any case, but avoiding the skcipher and scatterlist APIs entirely is
      the most straight-forward approach to fixing this.
      
      Cc: Antoine Tenart <antoine.tenart@bootlin.com>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Heiner Kallweit <hkallweit1@gmail.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Fixes: 28c5107a ("net: phy: mscc: macsec support")
      Reviewed-by: default avatarEric Biggers <ebiggers@google.com>
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Tested-by: default avatarAntoine Tenart <antoine.tenart@bootlin.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5a3235e5
    • David S. Miller's avatar
      Merge branch 'net-bcmgenet-use-hardware-padding-of-runt-frames' · eb2932b0
      David S. Miller authored
      Doug Berger says:
      
      ====================
      net: bcmgenet: use hardware padding of runt frames
      
      Now that scatter-gather and tx-checksumming are enabled by default
      it revealed a packet corruption issue that can occur for very short
      fragmented packets.
      
      When padding these frames to the minimum length it is possible for
      the non-linear (fragment) data to be added to the end of the linear
      header in an SKB. Since the number of fragments is read before the
      padding and used afterward without reloading, the fragment that
      should have been consumed can be tacked on in place of part of the
      padding.
      
      The third commit in this set corrects this by removing the software
      padding and allowing the hardware to add the pad bytes if necessary.
      
      The first two commits resolve warnings observed by the kbuild test
      robot and are included here for simplicity of application.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eb2932b0
    • Doug Berger's avatar
      net: bcmgenet: use hardware padding of runt frames · 20d1f2d1
      Doug Berger authored
      When commit 474ea9ca ("net: bcmgenet: correctly pad short
      packets") added the call to skb_padto() it should have been
      located before the nr_frags parameter was read since that value
      could be changed when padding packets with lengths between 55
      and 59 bytes (inclusive).
      
      The use of a stale nr_frags value can cause corruption of the
      pad data when tx-scatter-gather is enabled. This corruption of
      the pad can cause invalid checksum computation when hardware
      offload of tx-checksum is also enabled.
      
      Since the original reason for the padding was corrected by
      commit 7dd39913 ("net: bcmgenet: fix skb_len in
      bcmgenet_xmit_single()") we can remove the software padding all
      together and make use of hardware padding of short frames as
      long as the hardware also always appends the FCS value to the
      frame.
      
      Fixes: 474ea9ca ("net: bcmgenet: correctly pad short packets")
      Signed-off-by: default avatarDoug Berger <opendmb@gmail.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      20d1f2d1
    • Doug Berger's avatar
      net: bcmgenet: use __be16 for htons(ETH_P_IP) · d966d2ef
      Doug Berger authored
      The 16-bit value that holds a short in network byte order should
      be declared as a restricted big endian type to allow type checks
      to succeed during assignment.
      
      Fixes: 3e370952 ("net: bcmgenet: add support for ethtool rxnfc flows")
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Signed-off-by: default avatarDoug Berger <opendmb@gmail.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d966d2ef
    • Doug Berger's avatar
      net: bcmgenet: re-remove bcmgenet_hfb_add_filter · 673bafd5
      Doug Berger authored
      This function was originally removed by Baoyou Xie in
      commit e2072600 ("net: bcmgenet: remove unused function in
      bcmgenet.c") to prevent a build warning.
      
      Some of the functions removed by Baoyou Xie are now used for
      WAKE_FILTER support so his commit was reverted, but this function
      is still unused and the kbuild test robot dutifully reported the
      warning.
      
      This commit once again removes the remaining unused hfb functions.
      
      Fixes: 14da1510 ("Revert "net: bcmgenet: remove unused function in bcmgenet.c"")
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Signed-off-by: default avatarDoug Berger <opendmb@gmail.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      673bafd5
  2. 24 Jun, 2020 18 commits
  3. 23 Jun, 2020 15 commits
    • David S. Miller's avatar
      Merge branch 'cxgb4-cxgb4vf-fix-warnings-reported-by-sparse' · a83024b9
      David S. Miller authored
      Rahul Lakkireddy says:
      
      ====================
      cxgb4/cxgb4vf: fix warnings reported by sparse
      
      This series of patches fix various warnings reported by the sparse
      tool.
      
      Patches 1 and 2 fix lock context imbalance warnings.
      
      Patch 3 fixes cast to restricted __be64 warning when fetching
      timestamp in PTP path.
      
      Patch 4 fixes several cast to restricted __be32 warnings in TC-U32
      offload parser.
      
      Patch 5 fixes several cast from restricted __be16 warnings in parsing
      L4 ports for filters.
      
      Patch 6 fixes several restricted __be32 degrades to integer warnings
      when comparing IP address masks for exact-match filters.
      
      Patch 7 fixes cast to restricted __be64 warning when fetching SGE
      queue contexts in device dump collection.
      
      Patch 8 fixes cast from restricted __sum16 warning when saving IPv4
      partial checksum.
      
      Patch 9 fixes issue with string array scope in DCB path.
      
      Patch 10 fixes a set but unused variable warning when DCB is disabled.
      
      Patch 11 fixes several kernel-doc comment warnings in cxgb4 driver.
      
      Patch 12 fixes several kernel-doc comment warnings in cxgb4vf driver.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a83024b9
    • Rahul Lakkireddy's avatar
      cxgb4vf: update kernel-doc line comments · 20bb0c8f
      Rahul Lakkireddy authored
      Update several kernel-doc line comments to fix warnings reported by
      make W=1.
      
      Fixes following class of warnings reported by make W=1 in several
      places:
      cxgb4vf_main.c:275: warning: Function parameter or member 'persistent'
      not described in 'cxgb4vf_change_mac'
      cxgb4vf_main.c:275: warning: Excess function parameter 'persist'
      description in 'cxgb4vf_change_mac'
      
      Fixes: 16f8bd4b ("cxgb4vf: Add core T4 PCI-E SR-IOV Virtual Function hardware definitions and device communication code")
      Fixes: c6e0d914 ("cxgb4vf: Add T4 Virtual Function Scatter-Gather Engine DMA code")
      Fixes: e0a8b34a ("cxgb4vf: Add and initialize some sge params for VF driver")
      Fixes: c3168cab ("cxgb4/cxgbvf: Handle 32-bit fw port capabilities")
      Fixes: 0e23daeb ("drivers/net: chelsio/cxgb*: Convert timers to use timer_setup()")
      Fixes: 3f8cfd0d ("cxgb4/cxgb4vf: Program hash region for {t4/t4vf}_change_mac()")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      20bb0c8f
    • Rahul Lakkireddy's avatar
      cxgb4: update kernel-doc line comments · 29bbf5d7
      Rahul Lakkireddy authored
      Update several kernel-doc line comments to fix warnings reported by
      make W=1.
      
      Fixes following class of warnings reported by make W=1 in several
      places:
      l2t.c:616: warning: Cannot understand  * @dev: net_device pointer
      t4_hw.c:3175: warning: Function parameter or member 'adap' not
      described in 't4_get_exprom_version'
      t4_hw.c:3175: warning: Excess function parameter 'adapter' description
      in 't4_get_exprom_version'
      
      Fixes: 56d36be4 ("cxgb4: Add HW and FW support code")
      Fixes: fd3a4790 ("cxgb4: Add packet queues and packet DMA code")
      Fixes: 26f7cbc0 ("cxgb4: Don't attempt to upgrade T4 firmware when cxgb4 will end up as a slave")
      Fixes: 793dad94 ("RDMA/cxgb4: Fix bug for active and passive LE hash collision path")
      Fixes: ba3f8cd5 ("cxgb4: Add support in cxgb4 to get expansion rom version via ethtool")
      Fixes: f7502659 ("cxgb4: Add API to alloc l2t entry; also update existing ones")
      Fixes: ddc7740d ("cxgb4: Decode link down reason code obtained from firmware")
      Fixes: 193c4c28 ("cxgb4: Update T6 Buffer Group and Channel Mappings")
      Fixes: 8f46d467 ("cxgb4: Use Firmware params to get buffer-group map")
      Fixes: a4569504 ("cxgb4: time stamping interface for PTP")
      Fixes: 9c33e420 ("cxgb4: Add PTP Hardware Clock (PHC) support")
      Fixes: c3168cab ("cxgb4/cxgbvf: Handle 32-bit fw port capabilities")
      Fixes: 5ccf9d04 ("cxgb4: update API for TP indirect register access")
      Fixes: 3bdb376e ("cxgb4: introduce SMT ops to prepare for SMAC rewrite support")
      Fixes: 736c3b94 ("cxgb4: collect egress and ingress SGE queue contexts")
      Fixes: f56ec676 ("cxgb4: Add support for ethtool i2c dump")
      Fixes: 9d5fd927 ("cxgb4/cxgb4vf: add support for ndo_set_vf_vlan")
      Fixes: 98f3697f ("cxgb4: add tc flower match support for tunnel VNI")
      Fixes: 02d805dc ("cxgb4: use new fw interface to get the VIN and smt index")
      Fixes: 3f8cfd0d ("cxgb4/cxgb4vf: Program hash region for {t4/t4vf}_change_mac()")
      Fixes: d429005f ("cxgb4/cxgb4vf: Add support for SGE doorbell queue timer")
      Fixes: 0e395b3c ("cxgb4: add FLOWC based QoS offload")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      29bbf5d7
    • Rahul Lakkireddy's avatar
      cxgb4: fix set but unused variable when DCB is disabled · 00e31cfc
      Rahul Lakkireddy authored
      Remove the set but unused variable when DCB is disabled. Instead,
      do the calculation directly inline.
      
      Fixes following warning in make W=1:
      cxgb4_main.c: In function 'cfg_queues':
      cxgb4_main.c:5380:29: warning: variable 'n1g' set but not used
      [-Wunused-but-set-variable]
        u32 i, n10g = 0, qidx = 0, n1g = 0;
                                   ^
      
      Fixes: 116ca924 ("cxgb4: fix checks for max queues to allocate")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      00e31cfc
    • Rahul Lakkireddy's avatar
      cxgb4: move DCB version extern to header file · bab3bcf3
      Rahul Lakkireddy authored
      Move the DCB version string array extern to header file.
      
      Fixes following sparse warning:
      cxgb4_dcb.c:13:12: warning: symbol 'dcb_ver_array' was not declared.
      Should it be static?
      
      Fixes: ebddd97a ("cxgb4: add support to display DCB info")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bab3bcf3
    • Rahul Lakkireddy's avatar
      cxgb4: remove cast when saving IPv4 partial checksum · 2f667016
      Rahul Lakkireddy authored
      The checksum field in IPv4 header is in __sum16 and ip_fast_csum()
      also returns __sum16. So, no need to cast it to u16.
      
      Fixes following sparse warning:
      sge.c:1539:47: warning: cast from restricted __sum16
      sge.c:1539:44: warning: incorrect type in assignment (different base types)
      sge.c:1539:44:    expected restricted __sum16 [usertype] check
      sge.c:1539:44:    got unsigned short [usertype]
      
      Fixes: d0a1299c ("cxgb4: add support for vxlan segmentation offload")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2f667016
    • Rahul Lakkireddy's avatar
      cxgb4: fix SGE queue dump destination buffer context · 1992ded5
      Rahul Lakkireddy authored
      The data in destination buffer is expected to be be parsed in big
      endian. So, use the right context.
      
      Fixes following sparse warning:
      cudbg_lib.c:2041:44: warning: incorrect type in assignment (different
      base types)
      cudbg_lib.c:2041:44:    expected unsigned long long [usertype]
      cudbg_lib.c:2041:44:    got restricted __be64 [usertype]
      
      Fixes: 736c3b94 ("cxgb4: collect egress and ingress SGE queue contexts")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1992ded5
    • Rahul Lakkireddy's avatar
      cxgb4: use correct type for all-mask IP address comparison · f286dd8e
      Rahul Lakkireddy authored
      Use correct type to check for all-mask exact match IP addresses.
      
      Fixes following sparse warnings due to big endian value checks
      against 0xffffffff in is_addr_all_mask():
      cxgb4_filter.c:977:25: warning: restricted __be32 degrades to integer
      cxgb4_filter.c:983:37: warning: restricted __be32 degrades to integer
      cxgb4_filter.c:984:37: warning: restricted __be32 degrades to integer
      cxgb4_filter.c:985:37: warning: restricted __be32 degrades to integer
      cxgb4_filter.c:986:37: warning: restricted __be32 degrades to integer
      
      Fixes: 3eb8b62d ("cxgb4: add support to create hash-filters via tc-flower offload")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f286dd8e
    • Rahul Lakkireddy's avatar
      cxgb4: fix endian conversions for L4 ports in filters · 63b53b0b
      Rahul Lakkireddy authored
      The source and destination L4 ports in filter offload need to be
      in CPU endian. They will finally be converted to Big Endian after
      all operations are done and before giving them to hardware. The
      L4 ports for NAT are expected to be passed as a byte stream TCB.
      So, treat them as such.
      
      Fixes following sparse warnings in several places:
      cxgb4_tc_flower.c:159:33: warning: cast from restricted __be16
      cxgb4_tc_flower.c:159:33: warning: incorrect type in argument 1 (different
      base types)
      cxgb4_tc_flower.c:159:33:    expected unsigned short [usertype] val
      cxgb4_tc_flower.c:159:33:    got restricted __be16 [usertype] dst
      
      Fixes: dca4faeb ("cxgb4: Add LE hash collision bug fix path in LLD driver")
      Fixes: 62488e4b ("cxgb4: add basic tc flower offload support")
      Fixes: 557ccbf9 ("cxgb4: add tc flower support for L3/L4 rewrite")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      63b53b0b
    • Rahul Lakkireddy's avatar
      cxgb4: parse TC-U32 key values and masks natively · 27f78cb2
      Rahul Lakkireddy authored
      TC-U32 passes all keys values and masks in __be32 format. The parser
      already expects this and hence pass the value and masks in __be32
      natively to the parser.
      
      Fixes following sparse warnings in several places:
      cxgb4_tc_u32.c:57:21: warning: incorrect type in assignment (different base
      types)
      cxgb4_tc_u32.c:57:21:    expected unsigned int [usertype] val
      cxgb4_tc_u32.c:57:21:    got restricted __be32 [usertype] val
      cxgb4_tc_u32_parse.h:48:24: warning: cast to restricted __be32
      
      Fixes: 2e8aad7b ("cxgb4: add parser to translate u32 filters to internal spec")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      27f78cb2
    • Rahul Lakkireddy's avatar
      cxgb4: use unaligned conversion for fetching timestamp · 589b1c9c
      Rahul Lakkireddy authored
      Use get_unaligned_be64() to fetch the timestamp needed for ns_to_ktime()
      conversion.
      
      Fixes following sparse warning:
      sge.c:3282:43: warning: cast to restricted __be64
      
      Fixes: a4569504 ("cxgb4: time stamping interface for PTP")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      589b1c9c
    • Rahul Lakkireddy's avatar
      cxgb4: move PTP lock and unlock to caller in Tx path · 030c9882
      Rahul Lakkireddy authored
      Check for whether PTP is enabled or not at the caller and perform
      locking/unlocking at the caller.
      
      Fixes following sparse warning:
      sge.c:1641:26: warning: context imbalance in 'cxgb4_eth_xmit' -
      different lock contexts for basic block
      
      Fixes: a4569504 ("cxgb4: time stamping interface for PTP")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      030c9882
    • Rahul Lakkireddy's avatar
      cxgb4: move handling L2T ARP failures to caller · 11d8cd5c
      Rahul Lakkireddy authored
      Move code handling L2T ARP failures to the only caller.
      
      Fixes following sparse warning:
      skbuff.h:2091:29: warning: context imbalance in
      'handle_failed_resolution' - unexpected unlock
      
      Fixes: 749cb5fe ("cxgb4: Replace arpq_head/arpq_tail with SKB double link-list code")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      11d8cd5c
    • David S. Miller's avatar
      Merge branch 'net-qed-qede-various-stability-fixes' · 6199496b
      David S. Miller authored
      Alexander Lobakin says:
      
      ====================
      net: qed/qede: various stability fixes
      
      This set addresses several near-critical issues that were observed
      and reproduced on different test and production configurations.
      
      v2:
       - don't split the "Fixes:" tag across several lines in patch 9;
       - no functional changes.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6199496b
    • Alexander Lobakin's avatar
      net: qed: fix "maybe uninitialized" warning · 10f468ea
      Alexander Lobakin authored
      Variable 'abs_ppfid' in qed_dev.c:qed_llh_add_mac_filter() always gets
      printed, but is initialized only under 'ref_cnt == 1' condition. This
      results in:
      
      In file included from ./include/linux/kernel.h:15:0,
                       from ./include/asm-generic/bug.h:19,
                       from ./arch/x86/include/asm/bug.h:86,
                       from ./include/linux/bug.h:5,
                       from ./include/linux/io.h:11,
                       from drivers/net/ethernet/qlogic/qed/qed_dev.c:35:
      drivers/net/ethernet/qlogic/qed/qed_dev.c: In function 'qed_llh_add_mac_filter':
      ./include/linux/printk.h:358:2: warning: 'abs_ppfid' may be used uninitialized
      in this function [-Wmaybe-uninitialized]
        printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
        ^~~~~~
      drivers/net/ethernet/qlogic/qed/qed_dev.c:983:17: note: 'abs_ppfid' was declared
      here
        u8 filter_idx, abs_ppfid;
                       ^~~~~~~~~
      
      ...under W=1+.
      
      Fix this by initializing it with zero.
      
      Fixes: 79284ade ("qed: Add llh ppfid interface and 100g support for offload protocols")
      Signed-off-by: default avatarAlexander Lobakin <alobakin@marvell.com>
      Signed-off-by: default avatarIgor Russkikh <irusskikh@marvell.com>
      Signed-off-by: default avatarMichal Kalderon <michal.kalderon@marvell.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      10f468ea