1. 15 Mar, 2017 19 commits
    • David S. Miller's avatar
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · e0304f58
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      40GbE Intel Wired LAN Driver Updates 2017-03-15
      
      This series contains updates to i40e and i40evf only.
      
      Aaron fixes an issue on x710 devices where simultaneous read accesses
      were interfering with each other, so make sure all devices acquire the
      NVM lock before reads on all devices.
      
      Shannon adds Wake On LAN support feature for x722 devices and cleaned
      up the opcodes so that they are in numerical order.
      
      Mitch adds a client interface to the VF driver, in preparation for the
      upcoming RDMA-capable hardware (and client driver).  Cleaned up the
      client interface in the PF driver, since it was originally over
      engineered to handle multiple clients on multiple netdevs, but that
      did not happen and now there will be one client per driver, so apply
      the "KISS" (Keep It Simple & Stupid) to the i40e client interface.
      Bumped the number of MAC filters an untrusted VF can create.
      
      Jake fixes an issue where a recent refactor of queue pairs accidentally
      added all remaining vecotrs to the num_lan_msix which can adversely
      affect performance.
      
      Lihong fixes an ethtool issue with x722 devices where "-e" will error
      out since its EEPROM has a scope limit at offset 0x5B9FFF, so set the
      EEPROM length to the scope limit.  Also fixed an issue where RSS
      offloading only worked on PF0.
      
      Filip cleans up and clarifies code comment so there is no confusion
      about MAC/VLAN filter initialization routine.
      
      Alex adds support for DMA_ATTR_SKIP_CPU_SYNC and DMA_ATTR_WEAK_ORDERING,
      which improves performance on architectures that implement either one.
      
      Harshitha cleans up confusion on flags disabled due to hardware limitation
      versus featured disabled by the user, so rename auto_disable_flags to
      hw_disabled_flags to avoid the confusion.
      
      v2: Merged patch #1 and #4 in first version to make patch #3 in this
          series based on feedback from David Miller.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e0304f58
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 101c4314
      David S. Miller authored
      Conflicts:
      	drivers/net/ethernet/broadcom/genet/bcmgenet.c
      	net/core/sock.c
      
      Conflicts were overlapping changes in bcmgenet and the
      lockdep handling of sockets.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      101c4314
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 95422dec
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is a rather large set of fixes. The bulk are for lpfc correcting
        a lot of issues in the new NVME driver code which just went in in the
        merge window.
      
        The others are:
      
         - fix a hang in the vmware paravirt driver caused by incorrect
           handling of the new MSI vector allocation
      
         - long standing bug in storvsc, which recent block changes turned
           from being a harmless annoyance into a hang
      
         - yet more fallout (in mpt3sas) from the changes to device blocking
      
        The remainder are small fixes and updates"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (34 commits)
        scsi: lpfc: Add shutdown method for kexec
        scsi: storvsc: Workaround for virtual DVD SCSI version
        scsi: lpfc: revise version number to 11.2.0.10
        scsi: lpfc: code cleanups in NVME initiator discovery
        scsi: lpfc: code cleanups in NVME initiator base
        scsi: lpfc: correct rdp diag portnames
        scsi: lpfc: remove dead sli3 nvme code
        scsi: lpfc: correct double print
        scsi: lpfc: Rename LPFC_MAX_EQ_DELAY to LPFC_MAX_EQ_DELAY_EQID_CNT
        scsi: lpfc: Rework lpfc Kconfig for NVME options
        scsi: lpfc: add transport eh_timed_out reference
        scsi: lpfc: Fix eh_deadline setting for sli3 adapters.
        scsi: lpfc: add NVME exchange aborts
        scsi: lpfc: Fix nvme allocation bug on failed nvme_fc_register_localport
        scsi: lpfc: Fix IO submission if WQ is full
        scsi: lpfc: Fix NVME CMD IU byte swapped word 1 problem
        scsi: lpfc: Fix RCTL value on NVME LS request and response
        scsi: lpfc: Fix crash during Hardware error recovery on SLI3 adapters
        scsi: lpfc: fix missing spin_unlock on sql_list_lock
        scsi: lpfc: don't dereference dma_buf->iocbq before null check
        ...
      95422dec
    • Linus Torvalds's avatar
      Merge tag 'gfs2-4.11-rc3.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · aabcf5fc
      Linus Torvalds authored
      Pull gfs2 fix from Bob Peterson:
       "This is an emergency patch for 4.11-rc3
      
        The GFS2 developers uncovered a really nasty problem that can lead to
        random corruption and kernel panic, much like the last one. Andreas
        Gruenbacher wrote a simple one-line patch to fix the problem."
      
      * tag 'gfs2-4.11-rc3.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Avoid alignment hole in struct lm_lockname
      aabcf5fc
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · defc7d75
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
      
       - self-test failure of crc32c on powerpc
      
       - regressions of ecb(aes) when used with xts/lrw in s5p-sss
      
       - a number of bugs in the omap RNG driver
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: s5p-sss - Fix spinlock recursion on LRW(AES)
        hwrng: omap - Do not access INTMASK_REG on EIP76
        hwrng: omap - use devm_clk_get() instead of of_clk_get()
        hwrng: omap - write registers after enabling the clock
        crypto: s5p-sss - Fix completing crypto request in IRQ handler
        crypto: powerpc - Fix initialisation of crc32c context
      defc7d75
    • Andreas Gruenbacher's avatar
      gfs2: Avoid alignment hole in struct lm_lockname · 28ea06c4
      Andreas Gruenbacher authored
      Commit 88ffbf3e switches to using rhashtables for glocks, hashing over
      the entire struct lm_lockname instead of its individual fields.  On some
      architectures, struct lm_lockname contains a hole of uninitialized
      memory due to alignment rules, which now leads to incorrect hash values.
      Get rid of that hole.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      CC: <stable@vger.kernel.org> #v4.3+
      28ea06c4
    • Harshitha Ramamurthy's avatar
      i40e: rename auto_disable_flags to hw_disabled_flags · b77ac975
      Harshitha Ramamurthy authored
      A previous commit introduced a field that tracks the features
      that are disabled due to HW resource limitations as opposed
      to the featured disabled by the user. This patch changes the
      name of the field to make it more readable since it might get
      confusing when looking at code containing both the flags
      field and the auto_disable_features field together.
      
      Change-ID: Idcc9888659698f6fe3ccff17c8c3f09b5026f708
      Signed-off-by: default avatarHarshitha Ramamurthy <harshitha.ramamurthy@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      b77ac975
    • Bimmy Pujari's avatar
    • Mitch Williams's avatar
      i40e: Allow untrusted VFs to have more filters · 4dbc5661
      Mitch Williams authored
      Our original filter limit of 8 was based on behavior that we saw from
      Linux VMs. Now we're running Other Operating Systems under KVM and we
      see that they commonly use more MAC filters. Since it seems weird to
      require people to enable trusted VFs just to boot their OS, bump the
      number of filters allowed by default.
      
      Change-ID: I76b2dcb2ad6017e39231ad3096c3fb6f065eef5e
      Signed-off-by: default avatarMitch Williams <mitch.a.williams@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      4dbc5661
    • Alexander Duyck's avatar
      i40e/i40evf: Add support for mapping pages with DMA attributes · 59605bc0
      Alexander Duyck authored
      This patch adds support for DMA_ATTR_SKIP_CPU_SYNC and
      DMA_ATTR_WEAK_ORDERING. By enabling both of these for the Rx path we
      are able to see performance improvements on architectures that implement
      either one due to the fact that page mapping and unmapping only has to
      sync what is actually being used instead of the entire buffer. In addition
      by enabling the weak ordering attribute enables a performance improvement
      for architectures that can associate a memory ordering with a DMA buffer
      such as Sparc.
      
      Change-ID: If176824e8231c5b24b8a5d55b339a6026738fc75
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      59605bc0
    • Filip Sadowski's avatar
      i40e: Clarify steps in MAC/VLAN filters initialization routine · 3954b391
      Filip Sadowski authored
      This patch clarifies the reason for removal of automatically
      firmware-generated filter and explicit addition of filter which
      accepts frames with any VLAN id.
      
      Change-ID: Iabf180b6d61c4d8a36d3bcf8457c377a6f2aca0e
      Signed-off-by: default avatarFilip Sadowski <filip.sadowski@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      3954b391
    • Lihong Yang's avatar
      i40e: fix RSS queues only operating on PF0 · 26f77e53
      Lihong Yang authored
      This patch fixes the issue that RSS offloading only works on PF0 by
      using the direct register writing of the hash keys for the VFs instead
      of using the admin queue command to do so.
      
      Change-ID: Ia02cda7dbaa23def342e8786097a2c03db6f580b
      Signed-off-by: default avatarLihong Yang <lihong.yang@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      26f77e53
    • Lihong Yang's avatar
      i40e: fix ethtool to get EEPROM data from X722 interface · c271dd6c
      Lihong Yang authored
      Currently ethtool -e will error out with a X722 interface
      as its EEPROM has a scope limit at offset 0x5B9FFF.
      This patch fixes the issue by setting the EEPROM length to
      the scope limit to avoid NVM read failure beyond that.
      
      Change-ID: I0b7d4dd6c7f2a57cace438af5dffa0f44c229372
      Signed-off-by: default avatarLihong Yang <lihong.yang@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      c271dd6c
    • Jacob Keller's avatar
      i40e: don't add more vectors to num_lan_msix than number of CPUs · c0cf70a6
      Jacob Keller authored
      This is a solution to avoid adding too many queues to num_lan_msix.
      A recent refactor of queue pairs accidentally added all remaining
      vectors to the num_lan_msix which can have adverse performance issues,
      due to enabling more queues than the number of CPU cores.
      
      This patch removes the old calculation, and replaces it with a simple
      algorithm.
      
      1) add queue pairs up to num_online_cpus(), but capped at half of total
         vectors
      2) then add alternative features such as flow directory and similar
      3) finally, add the remaining vectors back to queue pairs, but capped
         such that the total number of queue pairs does not exceed
         num_online_cpus().
      
      Change-ID: I668abf67d5011a1248866daba8885f4ff00cb8d9
      Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Signed-off-by: default avatarHarshitha Ramamurthy <harshitha.ramamurthy@intel.com>
      Signed-off-by: default avatarCarolyn Wyborny <carolyn.wyborny@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      c0cf70a6
    • Mitch Williams's avatar
      i40e: KISS the client interface · 0ef2d5af
      Mitch Williams authored
      (KISS is Keep It Simple, Stupid. Or is it?)
      
      The client interface vastly overengineered for what it needs to do.
      It was originally designed to support multiple clients on multiple
      netdevs, possibly even with multiple drivers. None of this happened,
      and now we know that there will only ever be one client for i40e
      (i40iw) and one for i40evf (i40iwvf). So, time for some KISS. Since
      i40e and i40evf are a Dynasty, we'll simplify this one to match the
      VF interface.
      
      First, be a Destroyer and remove all of the lists and locks required
      to support multiple clients. Keep one static around to keep track of
      one client, and track the client instances for each netdev in the
      driver's pf (or adapter) struct. Now it's Almost Human.
      
      Since we already know the client type is iWarp, get rid of any checks
      for this. Same for VSI type - it's always going to be the same type,
      so it's just a Parasite.
      
      While we're at it, fix up some comments. This makes the function
      headers actually match the functions.
      
      These changes reduce code complexity, simplify maintenance,
      squash some lurking timing bugs, and allow us to Rock and Roll All
      Nite.
      
      Change-ID: I1ea79948ad73b8685272451440a34507f9a9012e
      Signed-off-by: default avatarMitch Williams <mitch.a.williams@intel.com>
      Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      0ef2d5af
    • Mitch Williams's avatar
      i40evf: add client interface · ed0e894d
      Mitch Williams authored
      In preparation for upcoming RDMA-capable hardware, add a client
      interface to the VF driver. This is a slightly-simplified version
      of the PF client interface, with the names changed to protect the
      innocent.
      
      Due to the nature of the VF<->PF interactions, the client interface
      sometimes needs to call back into itself to pass messages. Because
      of this, we can't use the coarse-grained locking like the PF's
      client interface uses. Instead, we handle all client interactions
      in a separate thread so the watchdog can still run and process
      virtual channel messages.
      Signed-off-by: default avatarMitch Williams <mitch.a.williams@intel.com>
      Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Signed-off-by: default avatarAnjali Singhai Jain <anjali.singhai@intel.com>
      Signed-off-by: default avatarAvinash Dayanand <avinash.dayanand@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      ed0e894d
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · ae50dfd6
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Ensure that mtu is at least IPV6_MIN_MTU in ipv6 VTI tunnel driver,
          from Steffen Klassert.
      
       2) Fix crashes when user tries to get_next_key on an LPM bpf map, from
          Alexei Starovoitov.
      
       3) Fix detection of VLAN fitlering feature for bnx2x VF devices, from
          Michal Schmidt.
      
       4) We can get a divide by zero when TCP socket are morphed into
          listening state, fix from Eric Dumazet.
      
       5) Fix socket refcounting bugs in skb_complete_wifi_ack() and
          skb_complete_tx_timestamp(). From Eric Dumazet.
      
       6) Use after free in dccp_feat_activate_values(), also from Eric
          Dumazet.
      
       7) Like bonding team needs to use ETH_MAX_MTU as netdev->max_mtu, from
          Jarod Wilson.
      
       8) Fix use after free in vrf_xmit(), from David Ahern.
      
       9) Don't do UDP Fragmentation Offload on IPComp ipsec packets, from
          Alexey Kodanev.
      
      10) Properly check napi_complete_done() return value in order to decide
          whether to re-enable IRQs or not in amd-xgbe driver, from Thomas
          Lendacky.
      
      11) Fix double free of hwmon device in marvell phy driver, from Andrew
          Lunn.
      
      12) Don't crash on malformed netlink attributes in act_connmark, from
          Etienne Noss.
      
      13) Don't remove routes with a higher metric in ipv6 ECMP route replace,
          from Sabrina Dubroca.
      
      14) Don't write into a cloned SKB in ipv6 fragmentation handling, from
          Florian Westphal.
      
      15) Fix routing redirect races in dccp and tcp, basically the ICMP
          handler can't modify the socket's cached route in it's locked by the
          user at this moment. From Jon Maxwell.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (108 commits)
        qed: Enable iSCSI Out-of-Order
        qed: Correct out-of-bound access in OOO history
        qed: Fix interrupt flags on Rx LL2
        qed: Free previous connections when releasing iSCSI
        qed: Fix mapping leak on LL2 rx flow
        qed: Prevent creation of too-big u32-chains
        qed: Align CIDs according to DORQ requirement
        mlxsw: reg: Fix SPVMLR max record count
        mlxsw: reg: Fix SPVM max record count
        net: Resend IGMP memberships upon peer notification.
        dccp: fix memory leak during tear-down of unsuccessful connection request
        tun: fix premature POLLOUT notification on tun devices
        dccp/tcp: fix routing redirect race
        ucc/hdlc: fix two little issue
        vxlan: fix ovs support
        net: use net->count to check whether a netns is alive or not
        bridge: drop netfilter fake rtable unconditionally
        ipv6: avoid write to a possibly cloned skb
        net: wimax/i2400m: fix NULL-deref at probe
        isdn/gigaset: fix NULL-deref at probe
        ...
      ae50dfd6
    • Shannon Nelson's avatar
      i40e: fix up recent proxy and wol bits for X722_SUPPORT · d60be2ca
      Shannon Nelson authored
      Some opcodes added & reordered to be in numerical order with the
      rest of the opcodes.
      This patch adds admin queue structs to support Wake on LAN feature
      for X722.
      Signed-off-by: default avatarShannon Nelson <shannon.nelson@intel.com>
      Signed-off-by: default avatarCarolyn Wyborny <carolyn.wyborny@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      d60be2ca
    • Aaron Salter's avatar
      i40e: Acquire NVM lock before reads on all devices · 96a39aed
      Aaron Salter authored
      Acquire NVM lock before reads on all devices.  Previously, locks were
      only used for X722 and later.  Fixes an issue where simultaneous X710
      NVM accesses were interfering with each other.
      
      Change-ID: If570bb7acf958cef58725ec2a2011cead6f80638
      Signed-off-by: default avatarAaron Salter <aaron.k.salter@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      96a39aed
  2. 14 Mar, 2017 21 commits