1. 29 Oct, 2015 15 commits
  2. 28 Oct, 2015 25 commits
    • Maharaja's avatar
      ath10k: enable adaptive CCA · 62f77f09
      Maharaja authored
      European Union has made it mandatory that all devices working in 2.4 GHz
      has to adhere to the ETSI specification (ETSI EN 300 328 V1.9.1)
      beginnig this year. The standard basically speaks about interferences
      in 2.4Ghz band.
      For example, when 802.11 device detects interference, TX must be stopped
      as long as interference is present.
      
      Adaptive CCA is a feature, when enabled the device learns from the
      environment and configures CCA levels adaptively. This will improve
      detecting interferences and the device can stop trasmissions till the
      interference is present eventually leading to good performances in
      varying interference conditions.
      
      The patch includes code for enabling adaptive CCA for 10.2.4 firmware on
      QCA988X.
      Signed-off-by: default avatarMaharaja <c_mkenna@qti.qualcomm.com>
      Signed-off-by: default avatarManikanta Pubbisetty <c_mpubbi@qti.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      62f77f09
    • Rafał Miłecki's avatar
      ssb: add Kconfig entry for compiling SoC related code · 845da6e5
      Rafał Miłecki authored
      This allows saving a little of space when not using ssb on Broadcom SoC.
      Signed-off-by: default avatarRafał Miłecki <zajec5@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      845da6e5
    • Rafał Miłecki's avatar
      ssb: move functions specific to SoC hosted bus to separated file · 830c7df4
      Rafał Miłecki authored
      This cleans main.c a bit and will allow us to compile SoC related code
      conditionally in the future.
      Signed-off-by: default avatarRafał Miłecki <zajec5@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      830c7df4
    • Rafał Miłecki's avatar
      ssb: pick PCMCIA host code support from b43 driver · 399500da
      Rafał Miłecki authored
      ssb bus can be found on various "host" devices like PCI/PCMCIA/SDIO.
      Every ssb bus contains cores AKA devices.
      The main idea is to have ssb driver scan/initialize bus and register
      ready-to-use cores. This way ssb drivers can operate on a single core
      mostly ignoring underlaying details.
      
      For some reason PCMCIA support was split between ssb and b43. We got
      PCMCIA host device probing in b43, then bus scanning in ssb and then
      wireless core probing back in b43. The truth is it's very unlikely we
      will ever see PCMCIA ssb device with no 802.11 core but I still don't
      see any advantage of the current architecture.
      
      With proposed change we get the same functionality with a simpler
      architecture, less Kconfig symbols, one killed EXPORT and hopefully
      cleaner b43. Since b43 supports both: ssb & bcma I prefer to keep ssb
      specific code in ssb driver.
      
      This mostly moves code from b43's pcmcia.c to bridge_pcmcia_80211.c. We
      already use similar solution with b43_pci_bridge.c. I didn't use "b43"
      in name of this new file as in theory any driver can operate on wireless
      core.
      Signed-off-by: default avatarRafał Miłecki <zajec5@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      399500da
    • Marty Faltesek's avatar
      mwifiex: toggle carrier state in start_ap/stop_ap. · 0117e78a
      Marty Faltesek authored
      In uap mode the carrier is not enabled until after the first STA joins.
      The carrier triggers the bridge to start its state machine, and if STP
      is enabled, it takes 4 seconds as it transitions from disabled to
      forwarding. During this time the bridge drops all traffic, and the EAPOL
      handshake times out after 3 seconds, preventing stations from joining.
      
      Follow the logic used in mac80211 and start the carrier in start_ap
      and disable it in stop_ap. This has a nice benefit of allowing the
      first station connection time to be reduced by up to 75% when STP is
      in use.
      Signed-off-by: default avatarMartin Faltesek <mfaltesek@google.com>
      Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      0117e78a
    • yfw's avatar
      wcn36xx: Remove warning message when dev is NULL for arm64 dma_alloc. · 07225524
      yfw authored
      arm64 has requirement that all the dma operations have actual device.
      Otherwise, following warnning message shown and dma allocation fails:
      
      WARNING: CPU: 0 PID: 954 at arch/arm64/mm/dma-mapping.c:106 __dma_alloc+0x24c/0x258()
      Use an actual device structure for DMA allocation
      Modules linked in: wcn36xx wcn36xx_platform
      CPU: 0 PID: 954 Comm: ifconfig Not tainted 4.0.0+ #14
      Hardware name: Qualcomm Technologies, Inc. MSM 8916 MTP (DT)
      Call trace:
      [<ffffffc000089904>] dump_backtrace+0x0/0x124
      [<ffffffc000089a38>] show_stack+0x10/0x1c
      [<ffffffc000627114>] dump_stack+0x80/0xc4
      [<ffffffc0000b2e64>] warn_slowpath_common+0x98/0xd0
      [<ffffffc0000b2ee8>] warn_slowpath_fmt+0x4c/0x58
      [<ffffffc00009487c>] __dma_alloc+0x248/0x258
      [<ffffffbffc009270>] wcn36xx_dxe_allocate_mem_pools+0xc4/0x108 [wcn36xx]
      [<ffffffbffc0079c4>] wcn36xx_start+0x38/0x240 [wcn36xx]
      [<ffffffc0005f161c>] ieee80211_do_open+0x1b0/0x9a4
      [<ffffffc0005f1e68>] ieee80211_open+0x58/0x68
      [<ffffffc00051693c>] __dev_open+0xb0/0x120
      [<ffffffc000516c10>] __dev_change_flags+0x88/0x150
      [<ffffffc000516cf4>] dev_change_flags+0x1c/0x5c
      [<ffffffc000570950>] devinet_ioctl+0x644/0x6f0
      Signed-off-by: default avatarYin, Fengwei <fengwei.yin@linaro.org>
      Acked-by: default avatarBjorn Andersson <bjorn.andersson@sonymobile.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      07225524
    • Bob Copeland's avatar
      wcn36xx: introduce per-channel ring buffer locks · 8e8e54c4
      Bob Copeland authored
      wcn36xx implements a ring buffer for transmitted frames for each
      (high and low priority) DMA channel.  The ring buffers are lockless:
      new frames are inserted at the head of the queue, while finished
      packets are reaped from the tail.
      
      Unfortunately, the list manipulations are missing any kind of barriers
      so are susceptible to various races: for example, a TX completion
      handler might read an updated desc->ctrl before the head has actually
      advanced, and then null out the ctl->skb pointer while it is still
      being used in the TX path.
      
      Simplify things here by adding a spin lock when traversing the ring.
      This change increased stability for me without adding any noticeable
      overhead on my platform (xperia z).
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      8e8e54c4
    • Zefir Kurtisi's avatar
      ath9k: fix phyerror codes · 56bae464
      Zefir Kurtisi authored
      Some of the ath9k_phyerr enums were wrong from the
      beginning (and even before). Most of the time the
      codes were used for counters to be displayed over
      debugfs, which made this a non-functional issue.
      
      Some (e.g. ATH9K_PHYERR_FALSE_RADAR_EXT) are used
      for radar detection and require the correct code
      to work as intended.
      
      This patch includes:
      a) fixes
        ATH9K_PHYERR_FALSE_RADAR_EXT:    24 => 36
        ATH9K_PHYERR_CCK_LENGTH_ILLEGAL: 32 => 28
        ATH9K_PHYERR_CCK_POWER_DROP:     33 => 29
        ATH9K_PHYERR_HT_CRC_ERROR:       34 => 32
        ATH9K_PHYERR_HT_LENGTH_ILLEGAL:  35 => 33
        ATH9K_PHYERR_HT_RATE_ILLEGAL:    36 => 34
      
      b) extensions
        ATH9K_PHYERR_CCK_BLOCKER = 24
        ATH9K_PHYERR_HT_ZLF      = 35
        ATH9K_PHYERR_GREEN_FIELD = 37
      
      Aside from the correction and completion made in
      the enum, the patch also extends the display of
      the related counters in the debugfs.
      Signed-off-by: default avatarZefir Kurtisi <zefir.kurtisi@neratec.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      56bae464
    • John Linville's avatar
      orinoco_usb: return error in ezusb_probe when alloc_orinocodev fails · 989b8376
      John Linville authored
      The current code exits after alloc_orinocodev, but fails to change the
      return value to something that indicates the failure.  This patch
      changes the return value to -ENOMEM.
      
      https://bugzilla.kernel.org/show_bug.cgi?id=106181Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      989b8376
    • Ondrej Zary's avatar
      airo: fix scan after SIOCSIWAP (airo_set_wap) · dae0412d
      Ondrej Zary authored
      SIOCSIWAP (airo_set_wap) affects scan: only the AP specified by
      SIOCSIWAP is present in scan results.
      
      This makes NetworkManager work for the first time but then unable to
      find any other APs.
      
      Clear APList before starting scan and set it back after scan completes
      to work-around the problem.
      
      To avoid losing packets during scan, modify disable_MAC() to omit
      netif_carrier_off() call when lock == 2.
      Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      dae0412d
    • Ondrej Zary's avatar
      airo: Track APList_rid in struct airo_info · f675f93a
      Ondrej Zary authored
      Instead of dynamically allocating APList, make it a member of struct
      airo_info to always track state of APList_rid.
      This simplifies suspend/resume and allows removal of readAPListRid.
      Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      f675f93a
    • Kalle Valo's avatar
      Merge tag 'iwlwifi-next-for-kalle-2015-10-25' of... · b3bcb1b2
      Kalle Valo authored
      Merge tag 'iwlwifi-next-for-kalle-2015-10-25' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
      
      * bug fix for TDLS
      * fixes and cleanups in scan
      * support of several scan plans
      * improvements in FTM
      * fixes in FW API
      * improvements in the failure paths when the bus is dead
      * other various small things here and there
      b3bcb1b2
    • yankejian's avatar
      net: hisilicon: updates HNS config and documents · 6d08f617
      yankejian authored
      updates the bindings documents and dtsi file according to the review
      comments[https://lkml.org/lkml/2015/9/21/670] from Rob Herring <robh@kernel.org>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avataryankejian <yankejian@huawei.com>
      Signed-off-by: default avatarhuangdaode <huangdaode@hisilicon.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6d08f617
    • Li Peng's avatar
      net: hns: fixes the bug tested XGE by ethtool -p · edc9b427
      Li Peng authored
      delete action of ETHTOOL_ID_ON/ETHTOOL_ID_OFF in XGE ethtool -p,
      so Hardware control the LED state instead of software.
      Signed-off-by: default avatarLi Peng <lipeng321@huawei.com>
      Signed-off-by: default avatarYisen Zhuang <yisen.zhuang@huawei.com>
      Signed-off-by: default avataryankejian <yankejian@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      edc9b427
    • Abhimanyu's avatar
      gianfar: Increase TX_TIMEOUT to 5HZ · 8fcc6033
      Abhimanyu authored
      Increased TX_TIMEOUT to 5HZ to accommodate worst case situation
      for traffic and CPU intensive use cases
      Signed-off-by: default avatarPriyanka Jain <Priyanka.Jain@freescale.com>
      Signed-off-by: default avatarAbhimanyu <abhimanyu@freescale.com>
      Acked-by: default avatarClaudiu Manoil <claudiu.manoil@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8fcc6033
    • David S. Miller's avatar
      Merge tag 'wireless-drivers-next-for-davem-2015-10-27' of... · d59542dd
      David S. Miller authored
      Merge tag 'wireless-drivers-next-for-davem-2015-10-27' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
      
      Kalle Valo says:
      
      ====================
      here's a bigger pull request for 4.4. The diffstat looks scary as we
      created a new directory realtek for all realtek drivers. In the future
      I'm planning to create similar directories for all vendors, currently we
      just have ath, mediatek and realtek. This change has been in linux-next
      for a couple of weeks so it should be safe, but of course you never
      know.
      
      There's also a new driver rtl8xxxu for few realtek USB devices. This
      just made it to the last linux-next build.
      
      Otherwise there's nothing really special, more info below. If time
      permits, and it's ok for you, I'm hoping to send you a one more pull
      request this week.
      
      brcmfmac
      
      * using netdev carrier state
      * add and rework some cfg80211 callbacks mainly for AP mode
      * use devcoredump when triggered by firmware event
      
      realtek
      
      * create new directory drivers/net/wireless/realtek/ for all realtek
        drivers, not visible to users (no kconfig changes etc)
      * add rtl8xxxu, a new mac80211 driver for RTL8723AU, RTL8188CU,
        RTL8188RU, RTL8191CU, RTL8192CU and hopefully more in the future
      
      ath10k
      
      * add board 2 API support for automatically choosing correct board file
      * data path optimisations
      * disable PCI power save for qca988x and QCA99x0 due to interop reasons
      
      wil6210
      
      * BlockAckReq support
      * firmware crashdump using devcoredump
      * capture all frames with sniffer
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d59542dd
    • Tycho Andersen's avatar
      seccomp, ptrace: add support for dumping seccomp filters · f8e529ed
      Tycho Andersen authored
      This patch adds support for dumping a process' (classic BPF) seccomp
      filters via ptrace.
      
      PTRACE_SECCOMP_GET_FILTER allows the tracer to dump the user's classic BPF
      seccomp filters. addr should be an integer which represents the ith seccomp
      filter (0 is the most recently installed filter). data should be a struct
      sock_filter * with enough room for the ith filter, or NULL, in which case
      the filter is not saved. The return value for this command is the number of
      BPF instructions the program represents, or negative in the case of errors.
      Command specific errors are ENOENT: which indicates that there is no ith
      filter in this seccomp tree, and EMEDIUMTYPE, which indicates that the ith
      filter was not installed as a classic BPF filter.
      
      A caveat with this approach is that there is no way to get explicitly at
      the heirarchy of seccomp filters, and users need to memcmp() filters to
      decide which are inherited. This means that a task which installs two of
      the same filter can potentially confuse users of this interface.
      
      v2: * make save_orig const
          * check that the orig_prog exists (not necessary right now, but when
             grows eBPF support it will be)
          * s/n/filter_off and make it an unsigned long to match ptrace
          * count "down" the tree instead of "up" when passing a filter offset
      
      v3: * don't take the current task's lock for inspecting its seccomp mode
          * use a 0x42** constant for the ptrace command value
      
      v4: * don't copy to userspace while holding spinlocks
      
      v5: * add another condition to WARN_ON
      
      v6: * rebase on net-next
      Signed-off-by: default avatarTycho Andersen <tycho.andersen@canonical.com>
      Acked-by: default avatarKees Cook <keescook@chromium.org>
      CC: Will Drewry <wad@chromium.org>
      Reviewed-by: default avatarOleg Nesterov <oleg@redhat.com>
      CC: Andy Lutomirski <luto@amacapital.net>
      CC: Pavel Emelyanov <xemul@parallels.com>
      CC: Serge E. Hallyn <serge.hallyn@ubuntu.com>
      CC: Alexei Starovoitov <ast@kernel.org>
      CC: Daniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f8e529ed
    • David S. Miller's avatar
      Merge branch 'mpls-multipath-improvements' · 5b9e3bd5
      David S. Miller authored
      Robert Shearman says:
      
      ====================
      mpls: mulipath improvements
      
      Two improvements to the recently added mpls multipath support. The
      first is a fix for missing initialisation the nexthop address length
      for the v4 and v6 explicit null label routes, and the second is to
      reduce the amount of memory used by mpls routes by changing the way
      the via addresses are stored.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5b9e3bd5
    • Robert Shearman's avatar
      mpls: reduce memory usage of routes · cf4b24f0
      Robert Shearman authored
      Nexthops for MPLS routes have a via address field sized for the
      largest via address that is expected, which is 32 bytes. This means
      that in the most common case of having ipv4 via addresses, 28 bytes of
      memory more than required are used per nexthop. In the other common
      case of an ipv6 nexthop then 16 bytes more than required are
      used. With large numbers of MPLS routes this extra memory usage could
      start to become significant.
      
      To avoid allocating memory for a maximum length via address when not
      all of it is required and to allow for ease of iterating over
      nexthops, then the via addresses are changed to be stored in the same
      memory block as the route and nexthops, but in an array after the end
      of the array of nexthops. New accessors are provided to retrieve a
      pointer to the via address.
      
      To allow for O(1) access without having to store a pointer or offset
      per nh, the via address for each nexthop is sized according to the
      maximum via address for any nexthop in the route, which is stored in a
      new route field, rt_max_alen, but this is in an existing hole in
      struct mpls_route so it doesn't increase the size of the
      structure. Each via address is ensured to be aligned to VIA_ALEN_ALIGN
      to account for architectures that don't allow unaligned accesses.
      Signed-off-by: default avatarRobert Shearman <rshearma@brocade.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cf4b24f0
    • Robert Shearman's avatar
      mpls: fix forwarding using v4/v6 explicit null · b4e04fc7
      Robert Shearman authored
      Fill in the via address length for the predefined IPv4 and IPv6
      explicit-null label routes.
      
      Fixes: f8efb73c ("mpls: multipath route support")
      Signed-off-by: default avatarRobert Shearman <rshearma@brocade.com>
      Acked-by: default avatarRoopa Prabhu <roopa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b4e04fc7
    • Bert Kenward's avatar
      sfc: replace spinlocks with bit ops for busy poll locking · c0f9c7e4
      Bert Kenward authored
      This patch reduces the overhead of locking for busy poll.
      Previously the state was protected by a lock, whereas now
      it's manipulated solely with atomic operations.
      Signed-off-by: default avatarShradha Shah <sshah@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c0f9c7e4
    • Hannes Frederic Sowa's avatar
      sock: don't enable netstamp for af_unix sockets · 080a270f
      Hannes Frederic Sowa authored
      netstamp_needed is toggled for all socket families if they request
      timestamping. But some protocols don't need the lower-layer timestamping
      code at all. This patch starts disabling it for af-unix.
      
      E.g. systemd enables timestamping during boot-up on the journald af-unix
      sockets, thus causing the system to globally enable timestamping in the
      lower networking stack. Still, it is very probable that timestamping
      gets activated, by e.g. dhclient or various NTP implementations.
      Reported-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      080a270f
    • David S. Miller's avatar
      Merge branch 'qed-driver' · 6092db1a
      David S. Miller authored
      Ariel Elior says:
      
      ====================
      Add new drivers: qed & qede
      
      This series implements the driver set for Qlogic's new QL4xxx series.
      These are 10/20/25/40/50/100 Gig capable converged nics, supporting
      ethernet (obviously), iscsi, fcoe, roce and iwarp protocols.
      
      The overall driver design includes a common module ('qed') and protocol
      specific dependent modules for ethernet ('qede'), fcoe ('qedf'),
      iscsi ('qedi') and roce ('qedr').
      The common module contains all of the common logic, e.g. initialization,
      cleanup, infrastructure for interrupt handling, link management, slowpath
      etc. as well as protocol agnostic features, and supplying an abstraction
      layer for other modules.
      The protocol specific modules can be compiled and operated independently
      of each other, with the exception of the rdma modules which are dependent
      on the ethernet module, in accordance with the kernel rdma stack design.
      
      This series only adds the core and ethernet modules, with basic L2
      capabilities. Future series will add the rest of the modules and enhance
      the L2 functionality.
      
      Ths patch series is constructed of the following patches:
      qed:  Add module with basic common support
      qed:  Add basic L2 interface
      qede: Add basic Network driver
      qed:  Add slowpath L2 support
      qede: Add basic network device support
      qede: Add classification configuration
      qed:  Add link support
      qede: Add support for link
      qed:  Add statistics support
      qede: Add basic ethtool support
      
      This project is a team effort, thanks go to Yuval Mintz, Dmitry Kravkov,
      Michal Kalderon, Tomer Tayar, Manish Chopra, Sudarsana Kalluru,
      Rajesh Borundia, Sony Chacko, Artum Zolotushko, Harish Patil, Rasesh Mody,
      Sergey Ukhterov and Elad Manela, as well as former team members,
      Eilon Greenstein and Shmulik Ravid.
      
      Changes from previos version:
      -----------------------------
      
      From Version 7:
        - Various small fixes according to Dave's suggestions; Largest change
          [code-wise] - don't use tabs for indenting function arguments.
      
      From Version 6:
        - Reduced the number of arguments for functions with exceptionally
          high number of parameters.
      
      From Version 5:
        - Style change and fixes [mostly in 1, 4 and 7].
          Thanks go to Francois Romieu, a mere mortal. ;-)
      
      From Version 4:
        - Drop dependency for x86_64.
      
      From Version 3:
        - Limit support of initial submission to x86_64.
        - Fix endian problems appearing via sparse [although no BE support yet].
        - Fix small issues suggested by the kbuild test robot.
      
      From Version 2:
        - Removed U64_{HI,LO}; Using {upper,lower}_32_bits instead.
        - Use regular napi weight definition.
        - [We still use the __le variants for variables, since we didn't get
           a reply regarding the change into non-user API types].
      
      From Version 1:
        - Removed private license file; Instead revised comments at source headers.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6092db1a
    • Sudarsana Kalluru's avatar
      qede: Add basic ethtool support · 133fac0e
      Sudarsana Kalluru authored
      This adds basic ethtool operations to the qed driver, allowing support in:
       - Statistics gathering [ethtool -S]
       - Setting of debug level [ethtool -s <interface> msglvl]
       - Getting basic information [ethtool, ethtool -i]
      
      In addition it adds the ability to change the MTU.
      Signed-off-by: default avatarSudarsana Kalluru <Sudarsana.Kalluru@qlogic.com>
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: default avatarAriel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      133fac0e
    • Manish Chopra's avatar
      qed: Add statistics support · 9df2ed04
      Manish Chopra authored
      Device statistics can be gathered on-demand. This adds the qed support for
      reading the statistics [both function and port] from the device, and adds
      to the public API a method for requesting the current statistics.
      Signed-off-by: default avatarManish Chopra <Manish.Chopra@qlogic.com>
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: default avatarAriel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9df2ed04