1. 30 7月, 2017 2 次提交
    • W
      team: use a larger struct for mac address · 996f6e12
      WANG Cong 提交于
      IPv6 tunnels use sizeof(struct in6_addr) as dev->addr_len,
      but in many places especially bonding, we use struct sockaddr
      to copy and set mac addr, this could lead to stack out-of-bounds
      access.
      
      Fix it by using a larger address storage like bonding.
      Reported-by: NAndrey Konovalov <andreyknvl@google.com>
      Cc: Jiri Pirko <jiri@resnulli.us>
      Signed-off-by: NCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      996f6e12
    • W
      net: check dev->addr_len for dev_set_mac_address() · 0254e0c6
      WANG Cong 提交于
      Historically, dev_ifsioc() uses struct sockaddr as mac
      address definition, this is why dev_set_mac_address()
      accepts a struct sockaddr pointer as input but now we
      have various types of mac addresse whose lengths
      are up to MAX_ADDR_LEN, longer than struct sockaddr,
      and saved in dev->addr_len.
      
      It is too late to fix dev_ifsioc() due to API
      compatibility, so just reject those larger than
      sizeof(struct sockaddr), otherwise we would read
      and use some random bytes from kernel stack.
      
      Fortunately, only a few IPv6 tunnel devices have addr_len
      larger than sizeof(struct sockaddr) and they don't support
      ndo_set_mac_addr(). But with team driver, in lb mode, they
      can still be enslaved to a team master and make its mac addr
      length as the same.
      
      Cc: Jiri Pirko <jiri@resnulli.us>
      Signed-off-by: NCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0254e0c6
  2. 28 7月, 2017 2 次提交
    • A
      phy: bcm-ns-usb3: fix MDIO_BUS dependency · 245db3c3
      Arnd Bergmann 提交于
      The driver attempts to 'select MDIO_DEVICE', but the code
      is actually a loadable module when PHYLIB=m:
      
      drivers/phy/broadcom/phy-bcm-ns-usb3.o: In function `bcm_ns_usb3_mdiodev_phy_write':
      phy-bcm-ns-usb3.c:(.text.bcm_ns_usb3_mdiodev_phy_write+0x28): undefined reference to `mdiobus_write'
      drivers/phy/broadcom/phy-bcm-ns-usb3.o: In function `bcm_ns_usb3_module_exit':
      phy-bcm-ns-usb3.c:(.exit.text+0x18): undefined reference to `mdio_driver_unregister'
      drivers/phy/broadcom/phy-bcm-ns-usb3.o: In function `bcm_ns_usb3_module_init':
      phy-bcm-ns-usb3.c:(.init.text+0x18): undefined reference to `mdio_driver_register'
      phy-bcm-ns-usb3.c:(.init.text+0x38): undefined reference to `mdio_driver_unregister'
      
      Using 'depends on MDIO_BUS' instead will avoid the link error.
      
      Fixes: af850e14 ("phy: bcm-ns-usb3: add MDIO driver using proper bus layer")
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      245db3c3
    • A
      net: phy: rework Kconfig settings for MDIO_BUS · 4c3464a8
      Arnd Bergmann 提交于
      I still see build errors in randconfig builds and have had this
      patch for a while to locally work around it:
      
      drivers/built-in.o: In function `xgene_mdio_probe':
      mux-core.c:(.text+0x352154): undefined reference to `of_mdiobus_register'
      mux-core.c:(.text+0x352168): undefined reference to `mdiobus_free'
      mux-core.c:(.text+0x3521c0): undefined reference to `mdiobus_alloc_size'
      
      The idea is that CONFIG_MDIO_BUS now reflects whether the mdio_bus
      code is built-in or a module, and other drivers that use the core
      code can simply depend on that, instead of having a complex
      dependency line.
      
      Fixes: 90eff909 ("net: phy: Allow splitting MDIO bus/device support from PHYs")
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4c3464a8
  3. 27 7月, 2017 8 次提交
  4. 26 7月, 2017 7 次提交
  5. 25 7月, 2017 17 次提交
  6. 21 7月, 2017 4 次提交
    • K
      Merge tag 'iwlwifi-for-kalle-2017-07-21' of... · d755cbc2
      Kalle Valo 提交于
      Merge tag 'iwlwifi-for-kalle-2017-07-21' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes
      
      Some iwlwifi fixes for 4.13:
      
      * A few NULL pointer dereferences in the recovery flow;
      * A small but important fix for IBSS;
      * A one-liner fix for tracing, which was including too much data;
      * Some of these are bugzilla bug fixes;
      d755cbc2
    • J
      iwlwifi: mvm: defer setting IWL_MVM_STATUS_IN_HW_RESTART · bf8b286f
      Johannes Berg 提交于
      A hardware/firmware error may happen at any point in time. In
      particular, it might happen while mac80211 is in the middle of
      a flow. We observed the following situation:
       * mac80211 is in authentication flow, in ieee80211_prep_connection()
       * iwlwifi firmware crashes, but no error can be reported at this
         precise point (mostly because the driver method is void, but even
         if it wasn't we'd just shift to a race condition)
       * mac80211 continues the flow, trying to add the AP station
       * iwlwifi has already set its internal restart flag, and so thinks
         that adding the station is part of the restart and already set up,
         so it uses the information that's supposed to already be in the
         struct
      
      This can happen with any flow in mac80211 and with any information
      we try to preserve across hardware restarts.
      
      To fix this, only set a new HW_RESTART_REQUESTED flag and translate
      that to IN_HW_RESTART once mac80211 actually starts the restart by
      calling our start() method. As a consequence, any mac80211 flow in
      progress at the time of the restart will properly finish (certainly
      with errors), before the restart is attempted.
      
      This fixes https://bugzilla.kernel.org/show_bug.cgi?id=195299.
      Reported-by: Ndjagoo <dev@djagoo.io>
      Reported-by: NŁukasz Siudut <lsiudut@gmail.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      bf8b286f
    • L
      iwlwifi: mvm: handle IBSS probe_queue in a few missing places · 7b758a11
      Luca Coelho 提交于
      When IBSS was implemented for DQA, we missid a few places where it
      should be handled in the same way as AP.
      
      Fixes: ee48b722 ("iwlwifi: mvm: support ibss in dqa mode")
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      7b758a11
    • E
      iwlwifi: fix tracing when tx only is enabled · 5462bcd8
      Emmanuel Grumbach 提交于
      iwl_trace_data is somewhat confusing. It returns a bool
      that tells if the payload of the skb should be added to
      the tx_data event. If it returns false, then the payload
      of the skb is added to the tx event.
      
      The purpose is to be able to start tracing with
      -e iwlwifi
      and record non-data packets only which saves bandwidth.
      
      Since EAPOLs are important, seldom and not real data
      packet (despite being WiFi data packets), they are
      included in tx event and thus iwl_trace_data returns false
      on those. This last part was buggy, and because of that,
      all the data packets were included in the tx event.
      
      Fix that.
      
      Fixes: 0c4cb731 ("iwlwifi: tracing: decouple from mac80211")
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      5462bcd8