1. 11 2月, 2017 40 次提交
    • D
      Merge branch 'netronome-NFP4000-and-NFP6000-PF-driver' · e40d5d78
      David S. Miller 提交于
      Jakub Kicinski says:
      
      ====================
      Netronome NFP4000 and NFP6000 PF driver
      
      This is a base PF driver for Netronome NFP4000 and NFP6000 chips.  This
      series doesn't add any exciting new features, it provides a foundation
      for supporting more advanced firmware applications.
      
      Patch 1 moves a bitfield-related helper from our BPF code to the global
      header.
      
      Patch 2 renames the kernel module and adds a new main file.  We were
      considering 3-module approach (pf, vf, common netdev library) but
      ultimately settled on a single module to keep things simple.
      
      Patch 3 adds support for accessing chip internals.  It provides a way of
      configuring access windows to different parts of chip memory and issuing
      pretty much any commands on chip's NoC.
      
      Patches 4, 5, 6, 7, 8 provide support for accessing and interpreting
      various hardware and firmware information structures.
      
      Patch 9 introduces service processor (NSP) ABI.  This ABI gives us
      access to PHY/SFP module configuration and information as well as
      methods for unloading and loading application firmware.
      
      Patches 10 and 11 modify the existing netdev code to make it possible
      to support multi-port devices (sharing a PCI device).
      
      Patch 12 adds a new driver probe path which will be used for the PF
      PCI device IDs.  It utilizes the newly added infrastructure and is able
      to load application FW and spawn netdevs for all card's ports.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e40d5d78
    • J
      nfp: add the PF driver · 63461a02
      Jakub Kicinski 提交于
      Add PF driver for NFP4000 and NFP6000.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      63461a02
    • J
      nfp: allocate irqs in lower driver · fdace6c2
      Jakub Kicinski 提交于
      PF services multiple ports using single PCI device therefore
      IRQs can no longer be allocated in the netdev code.  Lower
      portion of the driver has to allocate the IRQs and hand them
      out to ports.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fdace6c2
    • J
      nfp: add port layer to debugfs directories · 6f1cd5ca
      Jakub Kicinski 提交于
      PF driver will support multiple ports per PCI device, add port
      number to DebugFS paths.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6f1cd5ca
    • J
      nfp: add support for service processor access · 1a64821c
      Jakub Kicinski 提交于
      NFP Service Processor (NSP) is an ARM core inside the chip which
      is responsible for management and control functions.  Add support
      for chip reset, FW load and external module access using the NSP.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1a64821c
    • J
      nfp: add rtsym support · 5f30fe4d
      Jakub Kicinski 提交于
      Add support for using application FW symbol table to look up
      location of information in device memory.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5f30fe4d
    • J
      nfp: add MIP reading support · ab78c1d2
      Jakub Kicinski 提交于
      MIP is a vector of information which linker can optionally include
      in application firmware.  It will be used to retrieve the location
      of symbol tables.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ab78c1d2
    • J
      nfp: add support for reading nffw info · a0d8e02c
      Jakub Kicinski 提交于
      NFFW info is a resource which contains information about
      the loaded application firmware.  Add code which will allow
      us to decode it and retrieve MIP location.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a0d8e02c
    • J
      nfp: add hwinfo support · 59a84748
      Jakub Kicinski 提交于
      Hwinfo is a simple key=value store of information which is read
      from the flash and populated during chip power on.  Add code to
      look up information in it.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      59a84748
    • J
      nfp: add support for resources · f01a2161
      Jakub Kicinski 提交于
      Resource table is an array placed in a well defined location
      in device's memory which describes device resources and contains
      locks which have to be acquired to use them.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f01a2161
    • J
      nfp: add CPP access core · 4cb584e0
      Jakub Kicinski 提交于
      Command Push Pull is the name of NFP's network on a chip.
      PCIe PF can access the interconnect through a number of mappings
      controlled via Base Access Registers.  BARs allow the PF to issue
      pretty much any command or address any memory on the chip.
      
      Add appropriate logic and a handful of helper for simple operations
      like reading scalars from memories.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4cb584e0
    • J
      nfp: rename the driver and add new main file · 2633beb9
      Jakub Kicinski 提交于
      Support for the PF driver is about to be added and will share
      much of the code.  When the VF driver was added we planned to
      maintain the PF driver as a separate module but have decided
      that for our simple use case just maintaining a single module
      is more reasonable.  Rename the driver to just "nfp" and update
      the Kconfig.
      
      While at it remove latent references to NFP3200.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2633beb9
    • J
      bitfield.h: add FIELD_FIT() helper · 1697599e
      Jakub Kicinski 提交于
      Add a helper for checking at runtime that a value will fit inside
      a specified field/mask.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1697599e
    • D
      Merge branch 'devlink-small-cleanups' · 4f2bd6b3
      David S. Miller 提交于
      Jiri Pirko says:
      
      ====================
      devlink: small cleanup around eswitch [sg]et
      
      Contains small devlink cleanup around eswitch get/set commands.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4f2bd6b3
    • J
      devlink: allow to fillup eswitch attrs even if mode_get op does not exist · 4456f61c
      Jiri Pirko 提交于
      Even when mode_get op is not present, other eswitch attrs need to be
      filled-up.
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4456f61c
    • J
      devlink: use nla_put_failure goto label instead of out · 1a6aa36b
      Jiri Pirko 提交于
      Be aligned with the rest of the code and use label named nla_put_failure.
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1a6aa36b
    • J
      devlink: rename devlink_eswitch_fill to devlink_nl_eswitch_fill · 21e3d2dd
      Jiri Pirko 提交于
      Be aligned with the rest of the file and name the helper function
      accordingly.
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      21e3d2dd
    • J
      devlink: fix the name of eswitch commands · adf200f3
      Jiri Pirko 提交于
      The eswitch_[gs]et command is supposed to be similar to port_[gs]et
      command - for multiple eswitch attributes. However, when it was introduced
      by 08f4b591 ("net/devlink: Add E-Switch mode control") it was wrongly
      named with the word "mode" in it. So fix this now, make the oririnal
      enum value existing but obsolete.
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      adf200f3
    • D
      Merge tag 'mac80211-next-for-davem-2017-02-09' of... · 0d2164af
      David S. Miller 提交于
      Merge tag 'mac80211-next-for-davem-2017-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
      
      Johannes Berg says:
      
      ====================
      Some more updates:
       * use shash in mac80211 crypto code where applicable
       * some documentation fixes
       * pass RSSI levels up in change notifications
       * remove unused rfkill-regulator
       * various other cleanups
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0d2164af
    • I
      net: ethernet: ti: netcp_core: remove netif_trans_update · 1deeaa0b
      Ivan Khoronzhuk 提交于
      No need to update jiffies in txq->trans_start twice and only for tx 0,
      it's supposed to be done in netdev_start_xmit() and per tx queue.
      Signed-off-by: NIvan Khoronzhuk <ivan.khoronzhuk@linaro.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1deeaa0b
    • D
      Merge branch 'dsa-phy-include' · 1254856c
      David S. Miller 提交于
      Florian Fainelli says:
      
      ====================
      net: dsa: remove unnecessary phy.h include
      
      Including phy.h and phy_fixed.h into net/dsa.h causes phy*.h to be an
      unnecessary dependency for quite a large amount of the kernel.  There's
      very little which actually requires definitions from phy.h in net/dsa.h
      - the include itself only wants the declaration of a couple of
      structures and IFNAMSIZ.
      
      Add linux/if.h for IFNAMSIZ, declarations for the structures, phy.h to
      mv88e6xxx.h as it needs it for phy_interface_t, and remove both phy.h
      and phy_fixed.h from net/dsa.h.
      
      This patch reduces from around 800 files rebuilt to around 40 - even
      with ccache, the time difference is noticable.
      
      In order to make this change, several drivers need to be updated to
      include necessary headers that they were picking up through this
      include.  This has resulted in a much larger patch series.
      
      I'm assuming the 0-day builder has had 24 hours with this series, and
      hasn't reported any further issues with it - the last issue was two
      weeks ago (before I became ill) which I fixed over the last weekend.
      
      I'm hoping this doesn't conflict with what's already in net-next...
      
      David, this should probably go via your tree considering the diffstat.
      
      Changes in v2:
      
      - took Russell's patch series
      - removed Qualcomm EMAC patch
      - rebased against net-next/master
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1254856c
    • R
      net: dsa: remove unnecessary phy*.h includes · 4d56a29f
      Russell King 提交于
      Including phy.h and phy_fixed.h into net/dsa.h causes phy*.h to be an
      unnecessary dependency for quite a large amount of the kernel.  There's
      very little which actually requires definitions from phy.h in net/dsa.h
      - the include itself only wants the declaration of a couple of
      structures and IFNAMSIZ.
      
      Add linux/if.h for IFNAMSIZ, declarations for the structures, phy.h to
      mv88e6xxx.h as it needs it for phy_interface_t, and remove both phy.h
      and phy_fixed.h from net/dsa.h.
      
      This patch reduces from around 800 files rebuilt to around 40 - even
      with ccache, the time difference is noticable.
      Tested-by: NVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4d56a29f
    • R
      net: ath5k: fix build errors when linux/phy*.h is removed from net/dsa.h · 7ecb6227
      Russell King 提交于
      Fix these errors reported by the 0-day builder by replacing the
      linux/export.h include with linux/module.h.
      
      In file included from include/linux/platform_device.h:14:0,
                       from drivers/net/wireless/ath/ath5k/ahb.c:20:
      include/linux/device.h:1463:1: warning: data definition has no type or storage class
       module_init(__driver##_init); \
       ^
      include/linux/platform_device.h:228:2: note: in expansion of macro 'module_driver'
        module_driver(__platform_driver, platform_driver_register, \
        ^~~~~~~~~~~~~
      drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
       module_platform_driver(ath_ahb_driver);
       ^~~~~~~~~~~~~~~~~~~~~~
      include/linux/device.h:1463:1: error: type defaults to 'int' in declaration of 'module_init' [-Werror=implicit-int]
       module_init(__driver##_init); \
       ^
      include/linux/platform_device.h:228:2: note: in expansion of macro 'module_driver'
        module_driver(__platform_driver, platform_driver_register, \
        ^~~~~~~~~~~~~
      drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
       module_platform_driver(ath_ahb_driver);
       ^~~~~~~~~~~~~~~~~~~~~~
      drivers/net/wireless/ath/ath5k/ahb.c:233:1: warning: parameter names (without types) in function declaration
      In file included from include/linux/platform_device.h:14:0,
                       from drivers/net/wireless/ath/ath5k/ahb.c:20:
      include/linux/device.h:1468:1: warning: data definition has no type or storage class
       module_exit(__driver##_exit);
       ^
      include/linux/platform_device.h:228:2: note: in expansion of macro 'module_driver'
        module_driver(__platform_driver, platform_driver_register, \
        ^~~~~~~~~~~~~
      drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
       module_platform_driver(ath_ahb_driver);
       ^~~~~~~~~~~~~~~~~~~~~~
      include/linux/device.h:1468:1: error: type defaults to 'int' in declaration of 'module_exit' [-Werror=implicit-int]
       module_exit(__driver##_exit);
       ^
      include/linux/platform_device.h:228:2: note: in expansion of macro 'module_driver'
        module_driver(__platform_driver, platform_driver_register, \
        ^~~~~~~~~~~~~
      drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
       module_platform_driver(ath_ahb_driver);
       ^~~~~~~~~~~~~~~~~~~~~~
      drivers/net/wireless/ath/ath5k/ahb.c:233:1: warning: parameter names (without types) in function declaration
      In file included from include/linux/platform_device.h:14:0,
                       from drivers/net/wireless/ath/ath5k/ahb.c:20:
      drivers/net/wireless/ath/ath5k/ahb.c:233:24: warning: 'ath_ahb_driver_exit' defined but not used [-Wunused-function]
       module_platform_driver(ath_ahb_driver);
                              ^
      include/linux/device.h:1464:20: note: in definition of macro 'module_driver'
       static void __exit __driver##_exit(void) \
                          ^~~~~~~~
      drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
       module_platform_driver(ath_ahb_driver);
       ^~~~~~~~~~~~~~~~~~~~~~
      drivers/net/wireless/ath/ath5k/ahb.c:233:24: warning: 'ath_ahb_driver_init' defined but not used [-Wunused-function]
       module_platform_driver(ath_ahb_driver);
                              ^
      include/linux/device.h:1459:19: note: in definition of macro 'module_driver'
       static int __init __driver##_init(void) \
                         ^~~~~~~~
      drivers/net/wireless/ath/ath5k/ahb.c:233:1: note: in expansion of macro 'module_platform_driver'
       module_platform_driver(ath_ahb_driver);
       ^~~~~~~~~~~~~~~~~~~~~~
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Acked-by: NKalle Valo <kvalo@codeaurora.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7ecb6227
    • R
      net: liquidio: fix build errors when linux/phy*.h is removed from net/dsa.h · e3bfc6e7
      Russell King 提交于
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:30: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:30: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:30: error: type defaults to 'int' in declaration of 'MODULE_AUTHOR'
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:30: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:31: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:31: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:31: error: type defaults to 'int' in declaration of 'MODULE_DESCRIPTION'
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:31: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:32: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:32: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:32: error: type defaults to 'int' in declaration of 'MODULE_LICENSE'
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:32: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:33: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:33: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:33: error: type defaults to 'int' in declaration of 'MODULE_VERSION'
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:33: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:36: error: expected ')' before 'int'
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:37: error: expected ')' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:325: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:325: error: type defaults to 'int' in declaration of 'MODULE_DEVICE_TABLE'
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:325: warning: parameter names (without types) in function declaration
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3250: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3250: error: type defaults to 'int' in declaration of 'module_init'
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3250: warning: parameter names (without types) in function declaration
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3251: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3251: error: type defaults to 'int' in declaration of 'module_exit'
      drivers/net/ethernet/cavium/liquidio/lio_vf_main.c:3251: warning: parameter names (without types) in function declaration
      drivers/net/ethernet/cavium/liquidio/lio_main.c:36: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_main.c:36: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_main.c:36: error: type defaults to 'int' in declaration of 'MODULE_AUTHOR'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:36: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_main.c:37: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_main.c:37: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_main.c:37: error: type defaults to 'int' in declaration of 'MODULE_DESCRIPTION'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:37: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_main.c:38: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_main.c:38: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_main.c:38: error: type defaults to 'int' in declaration of 'MODULE_LICENSE'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:38: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_main.c:39: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_main.c:39: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_main.c:39: error: type defaults to 'int' in declaration of 'MODULE_VERSION'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:39: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_main.c:40: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_main.c:40: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_main.c:40: error: type defaults to 'int' in declaration of 'MODULE_FIRMWARE'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:40: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_main.c:41: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_main.c:41: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_main.c:41: error: type defaults to 'int' in declaration of 'MODULE_FIRMWARE'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:41: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_main.c:42: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_main.c:42: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_main.c:42: error: type defaults to 'int' in declaration of 'MODULE_FIRMWARE'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:42: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_main.c:43: error: expected declaration specifiers or '...' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_main.c:43: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_main.c:43: error: type defaults to 'int' in declaration of 'MODULE_FIRMWARE'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:43: error: function declaration isn't a prototype
      drivers/net/ethernet/cavium/liquidio/lio_main.c:46: error: expected ')' before 'int'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:48: error: expected ')' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_main.c:53: error: expected ')' before 'int'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:54: error: expected ')' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_main.c:57: error: expected ')' before 'sizeof'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:58: error: expected ')' before string constant
      drivers/net/ethernet/cavium/liquidio/lio_main.c:498: warning: data definitionhas no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_main.c:498: error: type defaults to 'int' in declaration of 'MODULE_DEVICE_TABLE'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:498: warning: parameter names (without types) in function declaration
      drivers/net/ethernet/cavium/liquidio/lio_main.c: In function 'octeon_recv_vf_drv_notice':
      drivers/net/ethernet/cavium/liquidio/lio_main.c:4393: error: implicit declaration of function 'try_module_get'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:4400: error: implicit declaration of function 'module_put'
      drivers/net/ethernet/cavium/liquidio/lio_main.c: At top level:
      drivers/net/ethernet/cavium/liquidio/lio_main.c:4670: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_main.c:4670: error: type defaults to 'int' in declaration of 'module_init'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:4670: warning: parameter names (without types) in function declaration
      drivers/net/ethernet/cavium/liquidio/lio_main.c:4671: warning: data definition has no type or storage class
      drivers/net/ethernet/cavium/liquidio/lio_main.c:4671: error: type defaults to 'int' in declaration of 'module_exit'
      drivers/net/ethernet/cavium/liquidio/lio_main.c:4671: warning: parameter names (without types) in function declaration
      
      Add linux/module.h to both these files.
      
      drivers/net/ethernet/cavium/liquidio/octeon_console.c:40:31: error: expected ')' before 'int'
      drivers/net/ethernet/cavium/liquidio/octeon_console.c:42:4: error: expected ')' before string constant
      
      Add linux/moduleparam.h to this file.
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Acked-by: NFelix Manlunas <felix.manlunas@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e3bfc6e7
    • R
      MIPS: Octeon: Remove unnecessary MODULE_*() · 7ca2ea82
      Russell King 提交于
      octeon-platform.c can not be built as a module for two reasons:
      
      (a) the Makefile doesn't allow it:
          obj-y := cpu.o setup.o octeon-platform.o octeon-irq.o csrc-octeon.o
      
      (b) the multiple *_initcall() statements, each of which are translated
          to a module_init() call when attempting a module build, become
          aliases to init_module().  Having more than one alias will cause a
          build error.
      
      Hence, rather than adding a linux/module.h include, remove the redundant
      MODULE_*() from this file.
      Acked-by: NDavid Daney <david.daney@cavium.com>
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7ca2ea82
    • R
      iscsi: fix build errors when linux/phy*.h is removed from net/dsa.h · da5df620
      Russell King 提交于
      drivers/target/iscsi/iscsi_target_login.c:1135:7: error: implicit declaration of function 'try_module_get' [-Werror=implicit-function-declaration]
      
      Add linux/module.h to iscsi_target_login.c.
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Reviewed-by: NBart Van Assche <bart.vanassche@sandisk.com>
      Acked-by: NNicholas Bellinger <nab@linux-iscsi.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      da5df620
    • R
      net: mvneta: fix build errors when linux/phy*.h is removed from net/dsa.h · 9303ab2b
      Russell King 提交于
      drivers/net/ethernet/marvell/mvneta.c:2694:26: error: storage size of 'status' isn't known
      drivers/net/ethernet/marvell/mvneta.c:2695:26: error: storage size of 'changed' isn't known
      drivers/net/ethernet/marvell/mvneta.c:2695:9: error: variable 'changed' has initializer but incomplete type
      drivers/net/ethernet/marvell/mvneta.c:2709:2: error: implicit declaration of function 'fixed_phy_update_state' [-Werror=implicit-function-declaration]
      
      Add linux/phy_fixed.h to mvneta.c
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Acked-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9303ab2b
    • R
      net: fman: fix build errors when linux/phy*.h is removed from net/dsa.h · f225e4e6
      Russell King 提交于
      drivers/net/ethernet/freescale/fman/fman_memac.c:519:21: error: dereferencing pointer to incomplete type 'struct fixed_phy_status'
      
      Add linux/phy_fixed.h to fman_memac.c
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f225e4e6
    • R
      net: bgmac: fix build errors when linux/phy*.h is removed from net/dsa.h · 13bf7760
      Russell King 提交于
      drivers/net/ethernet/broadcom/bgmac.c:1015:17: error: dereferencing pointer to incomplete type 'struct mii_bus'
      drivers/net/ethernet/broadcom/bgmac.c:1185:2: error: implicit declaration of function 'phy_start' [-Werror=implicit-function-declaration]
      drivers/net/ethernet/broadcom/bgmac.c:1198:2: error: implicit declaration of function 'phy_stop' [-Werror=implicit-function-declaration]
      drivers/net/ethernet/broadcom/bgmac.c:1239:9: error: implicit declaration of function 'phy_mii_ioctl' [-Werror=implicit-function-declaration]
      drivers/net/ethernet/broadcom/bgmac.c:1389:28: error: 'phy_ethtool_get_link_ksettings' undeclared here (not in a function)
      drivers/net/ethernet/broadcom/bgmac.c:1390:28: error: 'phy_ethtool_set_link_ksettings' undeclared here (not in a function)
      drivers/net/ethernet/broadcom/bgmac.c:1403:13: error: dereferencing pointer to incomplete type 'struct phy_device'
      drivers/net/ethernet/broadcom/bgmac.c:1417:3: error: implicit declaration of function 'phy_print_status' [-Werror=implicit-function-declaration]
      drivers/net/ethernet/broadcom/bgmac.c:1424:26: error: storage size of 'fphy_status' isn't known
      drivers/net/ethernet/broadcom/bgmac.c:1424:9: error: variable 'fphy_status' has initializer but incomplete type
      drivers/net/ethernet/broadcom/bgmac.c:1425:11: warning: excess elements in struct initializer
      drivers/net/ethernet/broadcom/bgmac.c:1425:3: error: unknown field 'link' specified in initializer
      drivers/net/ethernet/broadcom/bgmac.c:1426:12: note: in expansion of macro 'SPEED_1000'
      drivers/net/ethernet/broadcom/bgmac.c:1426:3: error: unknown field 'speed' specified in initializer
      drivers/net/ethernet/broadcom/bgmac.c:1427:13: note: in expansion of macro 'DUPLEX_FULL'
      drivers/net/ethernet/broadcom/bgmac.c:1427:3: error: unknown field 'duplex' specified in initializer
      drivers/net/ethernet/broadcom/bgmac.c:1432:12: error: implicit declaration of function 'fixed_phy_register' [-Werror=implicit-function-declaration]
      drivers/net/ethernet/broadcom/bgmac.c:1432:31: error: 'PHY_POLL' undeclared (first use in this function)
      drivers/net/ethernet/broadcom/bgmac.c:1438:8: error: implicit declaration of function 'phy_connect_direct' [-Werror=implicit-function-declaration]
      drivers/net/ethernet/broadcom/bgmac.c:1439:6: error: 'PHY_INTERFACE_MODE_MII' undeclared (first use in this function)
      drivers/net/ethernet/broadcom/bgmac.c:1521:2: error: implicit declaration of function 'phy_disconnect' [-Werror=implicit-function-declaration]
      drivers/net/ethernet/broadcom/bgmac.c:1541:15: error: expected declaration specifiers or '...' before string constant
      
      Add linux/phy.h to bgmac.c
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Acked-by: NRafał Miłecki <rafal@milecki.pl>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      13bf7760
    • R
      net: lan78xx: fix build errors when linux/phy*.h is removed from net/dsa.h · 8c56ea41
      Russell King 提交于
      drivers/net/usb/lan78xx.c:394:33: sparse: expected ; at end of declaration
      drivers/net/usb/lan78xx.c:394:33: sparse: Expected } at end of struct-union-enum-specifier
      drivers/net/usb/lan78xx.c:394:33: sparse: got interface
      drivers/net/usb/lan78xx.c:403:1: sparse: Expected ; at the end of type declaration
      drivers/net/usb/lan78xx.c:403:1: sparse: got }
      
      Add linux/phy.h to lan78xx.c
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8c56ea41
    • R
      net: macb: fix build errors when linux/phy*.h is removed from net/dsa.h · fc182b85
      Russell King 提交于
      drivers/net/ethernet/cadence/macb.h:862:33: sparse: expected ; at end of declaration
      drivers/net/ethernet/cadence/macb.h:862:33: sparse: Expected } at end of struct-union-enum-specifier
      drivers/net/ethernet/cadence/macb.h:862:33: sparse: got phy_interface
      drivers/net/ethernet/cadence/macb.h:877:1: sparse: Expected ; at the end of type declaration
      drivers/net/ethernet/cadence/macb.h:877:1: sparse: got }
      In file included from drivers/net/ethernet/cadence/macb_pci.c:29:0:
      drivers/net/ethernet/cadence/macb.h:862:2: error: unknown type name 'phy_interface_t'
           phy_interface_t  phy_interface;
           ^~~~~~~~~~~~~~~
      
      Add linux/phy.h to macb.h
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Acked-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fc182b85
    • R
      net: cgroups: fix build errors when linux/phy*.h is removed from net/dsa.h · 43cc277a
      Russell King 提交于
      net/core/netprio_cgroup.c:303:16: error: expected declaration specifiers or '...' before string constant
          MODULE_LICENSE("GPL v2");
                         ^~~~~~~~
      
      Add linux/module.h to fix this.
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      43cc277a
    • R
      net: sunrpc: fix build errors when linux/phy*.h is removed from net/dsa.h · f39b2dde
      Russell King 提交于
      Removing linux/phy.h from net/dsa.h reveals a build error in the sunrpc
      code:
      
      net/sunrpc/xprtrdma/svc_rdma_backchannel.c: In function 'xprt_rdma_bc_put':
      net/sunrpc/xprtrdma/svc_rdma_backchannel.c:277:2: error: implicit declaration of function 'module_put' [-Werror=implicit-function-declaration]
      net/sunrpc/xprtrdma/svc_rdma_backchannel.c: In function 'xprt_setup_rdma_bc':
      net/sunrpc/xprtrdma/svc_rdma_backchannel.c:348:7: error: implicit declaration of function 'try_module_get' [-Werror=implicit-function-declaration]
      
      Fix this by adding linux/module.h to svc_rdma_backchannel.c
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Acked-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f39b2dde
    • D
      Merge tag 'wireless-drivers-next-for-davem-2017-02-09' of... · e3f29c48
      David S. Miller 提交于
      Merge tag 'wireless-drivers-next-for-davem-2017-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
      
      Kalle Valo says:
      
      ====================
      wireless-drivers-next patches for 4.11
      
      Mostly smaller changeds and fixes all over, nothing really major
      standing out.
      
      Major changes:
      
      iwlwifi
      
      * work on support for new A000 devices continues
      * fix 802.11w, which was failing to due an IGTK bug
      
      ath10k
      
      * add debugfs file peer_debug_trigger for debugging firmware
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e3f29c48
    • J
      spectrum: flower: Treat ETH_P_ALL as a special case and translate for HW · dc371700
      Jiri Pirko 提交于
      HW does not understand ETH_P_ALL. So treat this special case differently
      and translate to 0/0 key/mask. That will allow HW to match all ethertypes.
      
      Fixes: 7aa0f5aa ("mlxsw: spectrum: Implement TC flower offload")
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Reviewed-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dc371700
    • D
      Merge branch 'net-checkpatch' · 201dacbb
      David S. Miller 提交于
      Tobin C. Harding says:
      
      ====================
      Whitespace checkpatch fixes
      
      This patch set fixes various whitespace checkpatch errors and warnings.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      201dacbb
    • T
      net: Fix checkpatch, Missing a blank line after declarations · f4563a75
      tcharding 提交于
      This patch fixes multiple occurrences of checkpatch WARNING: Missing
      a blank line after declarations.
      Signed-off-by: NTobin C. Harding <me@tobin.cc>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f4563a75
    • T
      net: Fix checkpatch block comments warnings · eb13da1a
      tcharding 提交于
      Fix multiple occurrences of checkpatch warning. WARNING: Block
      comments use * on subsequent lines. Also make comment blocks
      more uniform.
      Signed-off-by: NTobin C. Harding <me@tobin.cc>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      eb13da1a
    • T
      net: Fix checkpatch whitespace errors · 643aa9cb
      tcharding 提交于
      This patch fixes two trivial whitespace errors. Brace should be
      on the previous line and trailing statements should be on next line.
      Signed-off-by: NTobin C. Harding <me@tobin.cc>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      643aa9cb
    • T
      net: Fix checkpatch WARNING: please, no space before tabs · 722c9a0c
      tcharding 提交于
      This patch fixes multiple occurrences of space before tabs warnings.
      More lines of code were moved than required to keep kernel-doc
      comments uniform.
      Signed-off-by: NTobin C. Harding <me@tobin.cc>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      722c9a0c