1. 02 Mar, 2016 1 commit
  2. 01 Mar, 2016 3 commits
    • Felix Fietkau's avatar
      mac80211: minstrel_ht: fix a logic error in RTS/CTS handling · c36dd3ea
      Felix Fietkau authored
      RTS/CTS needs to be enabled if the rate is a fallback rate *or* if it's
      a dual-stream rate and the sta is in dynamic SMPS mode.
      
      Cc: stable@vger.kernel.org
      Fixes: a3ebb4e1 ("mac80211: minstrel_ht: handle peers in dynamic SMPS")
      Reported-by: default avatarMatías Richart <mrichart@fing.edu.uy>
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      c36dd3ea
    • Jouni Malinen's avatar
      mac80211: Fix Public Action frame RX in AP mode · 1ec7bae8
      Jouni Malinen authored
      Public Action frames use special rules for how the BSSID field (Address
      3) is set. A wildcard BSSID is used in cases where the transmitter and
      recipient are not members of the same BSS. As such, we need to accept
      Public Action frames with wildcard BSSID.
      
      Commit db8e1732 ("mac80211: ignore frames between TDLS peers when
      operating as AP") added a rule that drops Action frames to TDLS-peers
      based on an Action frame having different DA (Address 1) and BSSID
      (Address 3) values. This is not correct since it misses the possibility
      of BSSID being a wildcard BSSID in which case the Address 1 would not
      necessarily match.
      
      Fix this by allowing mac80211 to accept wildcard BSSID in an Action
      frame when in AP mode.
      
      Fixes: db8e1732 ("mac80211: ignore frames between TDLS peers when operating as AP")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      1ec7bae8
    • Johannes Berg's avatar
      mac80211: check PN correctly for GCMP-encrypted fragmented MPDUs · 9acc54be
      Johannes Berg authored
      Just like for CCMP we need to check that for GCMP the fragments
      have PNs that increment by one; the spec was updated to fix this
      security issue and now has the following text:
      
      	The receiver shall discard MSDUs and MMPDUs whose constituent
      	MPDU PN values are not incrementing in steps of 1.
      
      Adapt the code for CCMP to work for GCMP as well, luckily the
      relevant fields already alias each other so no code duplication
      is needed (just check the aliasing with BUILD_BUG_ON.)
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      9acc54be
  3. 23 Feb, 2016 3 commits
  4. 02 Feb, 2016 2 commits
  5. 29 Jan, 2016 3 commits
    • Chris Bainbridge's avatar
      mac80211: fix use of uninitialised values in RX aggregation · f39ea269
      Chris Bainbridge authored
      Use kzalloc instead of kmalloc for struct tid_ampdu_rx to
      initialize the "removed" field (all others are initialized
      manually). That fixes:
      
      UBSAN: Undefined behaviour in net/mac80211/rx.c:932:29
      load of value 2 is not a valid value for type '_Bool'
      CPU: 3 PID: 1134 Comm: kworker/u16:7 Not tainted 4.5.0-rc1+ #265
      Workqueue: phy0 rt2x00usb_work_rxdone
       0000000000000004 ffff880254a7ba50 ffffffff8181d866 0000000000000007
       ffff880254a7ba78 ffff880254a7ba68 ffffffff8188422d ffffffff8379b500
       ffff880254a7bab8 ffffffff81884747 0000000000000202 0000000348620032
      Call Trace:
       [<ffffffff8181d866>] dump_stack+0x45/0x5f
       [<ffffffff8188422d>] ubsan_epilogue+0xd/0x40
       [<ffffffff81884747>] __ubsan_handle_load_invalid_value+0x67/0x70
       [<ffffffff82227b4d>] ieee80211_sta_reorder_release.isra.16+0x5ed/0x730
       [<ffffffff8222ca14>] ieee80211_prepare_and_rx_handle+0xd04/0x1c00
       [<ffffffff8222db03>] __ieee80211_rx_handle_packet+0x1f3/0x750
       [<ffffffff8222e4a7>] ieee80211_rx_napi+0x447/0x990
      
      While at it, convert to use sizeof(*tid_agg_rx) instead.
      
      Fixes: 788211d8 ("mac80211: fix RX A-MPDU session reorder timer deletion")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarChris Bainbridge <chris.bainbridge@gmail.com>
      [reword commit message, use sizeof(*tid_agg_rx)]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      f39ea269
    • Johannes Berg's avatar
      cfg80211/wext: fix message ordering · cb150b9d
      Johannes Berg authored
      Since cfg80211 frequently takes actions from its netdev notifier
      call, wireless extensions messages could still be ordered badly
      since the wext netdev notifier, since wext is built into the
      kernel, runs before the cfg80211 netdev notifier. For example,
      the following can happen:
      
      5: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default
          link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff
      5: wlan1: <BROADCAST,MULTICAST,UP>
          link/ether
      
      when setting the interface down causes the wext message.
      
      To also fix this, export the wireless_nlevent_flush() function
      and also call it from the cfg80211 notifier.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      cb150b9d
    • Johannes Berg's avatar
      wext: fix message delay/ordering · 8bf86273
      Johannes Berg authored
      Beniamino reported that he was getting an RTM_NEWLINK message for a
      given interface, after the RTM_DELLINK for it. It turns out that the
      message is a wireless extensions message, which was sent because the
      interface had been connected and disconnection while it was deleted
      caused a wext message.
      
      For its netlink messages, wext uses RTM_NEWLINK, but the message is
      without all the regular rtnetlink attributes, so "ip monitor link"
      prints just rudimentary information:
      
      5: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default
          link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff
      Deleted 5: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
          link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff
      5: wlan1: <BROADCAST,MULTICAST,UP>
          link/ether
      (from my hwsim reproduction)
      
      This can cause userspace to get confused since it doesn't expect an
      RTM_NEWLINK message after RTM_DELLINK.
      
      The reason for this is that wext schedules a worker to send out the
      messages, and the scheduling delay can cause the messages to get out
      to userspace in different order.
      
      To fix this, have wext register a netdevice notifier and flush out
      any pending messages when netdevice state changes. This fixes any
      ordering whenever the original message wasn't sent by a notifier
      itself.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarBeniamino Galvani <bgalvani@redhat.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      8bf86273
  6. 26 Jan, 2016 2 commits
  7. 14 Jan, 2016 10 commits
    • Helmut Schaa's avatar
      mac80211: Don't buffer non-bufferable MMPDUs · da629cf1
      Helmut Schaa authored
      Non-bufferable MMPDUs are sent out to STAs even while in PS mode
      (for example probe responses). Applying filtered frame handling for
      these doesn't seem to make much sense and will only create more
      air utilization when the STA wakes up. Hence, apply filtered frame
      handling only for bufferable MMPDUs.
      
      Discovered while testing an old VOIP phone that started probing
      for APs while in PS mode. The mac80211/ath9k AP where the STA is
      associated would reply with a probe response but the phone sometimes
      moved to a new channel already and couldn't ack the probe response
      anymore. In that case mac80211 applied filtered frame handling
      for the un-acked probe response.
      Signed-off-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      da629cf1
    • Eliad Peller's avatar
      mac80211: handle sched_scan_stopped vs. hw restart race · 2bc533bd
      Eliad Peller authored
      On hw restart, mac80211 might try to reconfigure already
      stopped sched scan, if ieee80211_sched_scan_stopped_work()
      wasn't scheduled yet.
      
      This in turn will keep the device driver with scheduled scan
      configured, while both mac80211 and cfg80211 will clear
      their sched scan state once the work is scheduled.
      
      Fix it by ignoring ieee80211_sched_scan_stopped() calls
      while in hw restart, and flush the work before starting
      the reconfiguration.
      Signed-off-by: default avatarEliad Peller <eliadx.peller@intel.com>
      Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      2bc533bd
    • Emmanuel Grumbach's avatar
      mac80211: fix PS-Poll handling · 1a57081a
      Emmanuel Grumbach authored
      My commit below broken PS-Poll handling. In case the driver
      has no frames buffered, driver_release_tids will be 0, but
      calling find_highest_prio_tid() with 0 as a parameter is
      not a good idea:
      fls(0) - 1 = -1.
      This bug caused mac80211 to think that frames were buffered
      in the driver which in turn was confused because mac80211
      was asking to release frames that were not reported to
      exist.
      On iwlwifi, this led to the WARNING below:
      
      WARNING: CPU: 0 PID: 11230 at drivers/net/wireless/intel/iwlwifi/mvm/sta.c:1733 iwl_mvm_sta_modify_sleep_tx_count+0x2af/0x320 [iwlmvm]()
      ffffffffc0627c60 ffff8800069b7648 ffffffff81888913 0000000000000000
      0000000000000000 ffff8800069b7688 ffffffff81089d6a ffff8800069b7678
      0000000000000001 ffff88003b35abf0 ffff88000698b128 ffff8800069b76d4
      Call Trace:
      [<ffffffff81888913>] dump_stack+0x4c/0x65
      [<ffffffff81089d6a>] warn_slowpath_common+0x8a/0xc0
      [<ffffffff81089e5a>] warn_slowpath_null+0x1a/0x20
      [<ffffffffc05f36bf>] iwl_mvm_sta_modify_sleep_tx_count+0x2af/0x320 [iwlmvm]
      [<ffffffffc05dae41>] iwl_mvm_mac_release_buffered_frames+0x31/0x40 [iwlmvm]
      [<ffffffffc045d8b6>] ieee80211_sta_ps_deliver_response+0x6e6/0xd80 [mac80211]
      [<ffffffffc0461296>] ieee80211_sta_ps_deliver_poll_response+0x26/0x30 [mac80211]
      [<ffffffffc048f743>] ieee80211_rx_handlers+0xa83/0x2900 [mac80211]
      [<ffffffffc04917ad>] ieee80211_prepare_and_rx_handle+0x1ed/0xa70 [mac80211]
      [<ffffffffc045e3d5>] ? sta_info_get_bss+0x5/0x4a0 [mac80211]
      [<ffffffffc04925b6>] ieee80211_rx_napi+0x586/0xcd0 [mac80211]
      [<ffffffffc05eaa3e>] iwl_mvm_rx_rx_mpdu+0x59e/0xc60 [iwlmvm]
      
      Fixes: 0ead2510 ("mac80211: allow the driver to send EOSP when needed")
      Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      1a57081a
    • Bob Copeland's avatar
      Revert "mac80211_hwsim: support any address in userspace" · 354210f8
      Bob Copeland authored
      This reverts commit cd37a90b.
      
      Different userspace programs interpreted HWSIM_ATTR_ADDR_TRANSMITTER
      and HWSIM_ATTR_ADDR_RECEIVER differently: some expected it to
      be an unchanging hardware address that is tied to the radio despite
      which address is configured on the interface, while others expected
      to be a copy of the address in the frame (the configured address).
      The intent of the original authors is unclear.
      
      The latter interpretation doesn't really work properly with multiple
      vifs and broadcast frames.  Also, as the TA is already in the
      frame, userspace programs can actually support configured addresses
      in the former interpretation by mapping between them and the supplied
      HWSIM_ATTR_ADDR_TRANSMITTER.
      
      So, in the interest of API stability, revert to the previous mode
      of operation and going forward use the former interpretation.
      Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      354210f8
    • Eliad Peller's avatar
      mac80211: clear local->sched_scan_req properly on reconfig · b9f628fc
      Eliad Peller authored
      On reconfig, in case of sched_scan_req->n_scan_plans > 1,
      local->sched_scan_req was never cleared, although
      cfg80211_sched_scan_stopped_rtnl() was called, resulting
      in local->sched_scan_req holding a stale and preventing
      further scheduled scan requests.
      
      Clear it explicitly in this case.
      
      Fixes: 42a7e82c6792 ("mac80211: Do not restart scheduled scan if multiple scan plans are set")
      Signed-off-by: default avatarEliad Peller <eliadx.peller@intel.com>
      Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      b9f628fc
    • Eliad Peller's avatar
      mac80211: avoid ROC during hw restart · 470f4d61
      Eliad Peller authored
      Defer ROC requests during hw restart, as the driver
      might not be fully configured in this stage (e.g.
      channel contexts were not added yet)
      Signed-off-by: default avatarEliad Peller <eliadx.peller@intel.com>
      Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      470f4d61
    • Johannes Berg's avatar
      regulatory: fix world regulatory domain data · c3826807
      Johannes Berg authored
      The rule definitions here aren't really valid, they would
      be rejected if it came from userspace due to the bandwidth
      specified being bigger than the rule's width.
      
      This is fairly much inconsequential since the other rules
      around them do enable the bandwidth, but express that better
      using the NL80211_RRF_AUTO_BW flag.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      c3826807
    • Dave Young's avatar
      wireless: change cfg80211 regulatory domain info as debug messages · 94c4fd64
      Dave Young authored
      cfg80211 module prints a lot of messages like below. Actually printing
      once is acceptable but sometimes it will print again and again, it looks
      very annoying. It is better to change these detail messages to debugging
      only.
      
      cfg80211: World regulatory domain updated:
      cfg80211:  DFS Master region: unset
      cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
      cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
      cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
      cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
      cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
      cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
      cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
      cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
      cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
      
      The changes in this patch is to replace pr_info with pr_debug in function
      print_rd_rules and print_regdomain_info
      Signed-off-by: default avatarDave Young <dyoung@redhat.com>
      [change some pr_err() statements to at least keep the alpha2]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      94c4fd64
    • Johannes Berg's avatar
      mac80211: fix remain-on-channel cancellation · e6a8a3aa
      Johannes Berg authored
      Ilan's previous commit 1b894521 ("mac80211: handle HW
      ROC expired properly") neglected to take into account that
      hw_begun was now always set in the software implementation
      as well as the offloaded case.
      
      Fix hw_begun to only apply to the offloaded case to make
      the check in Ilan's commit safe and correct.
      Reported-by: default avatarJouni Malinen <j@w1.fi>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      e6a8a3aa
    • Johannes Berg's avatar
      mac80211: recalculate SW ROC only when needed · e9db4557
      Johannes Berg authored
      The current (new) code recalculates the new work timeout
      for software remain-on-channel whenever any item started.
      In two of the callers of ieee80211_handle_roc_started(),
      this is completely pointless since they're for hardware
      and will skip the recalculation entirely; it's necessary
      only in the case of having just added a new item to the
      list, as in the last remaining case the recalculation had
      just been done.
      
      This last case, however, is also problematic - if one of
      the items on the list actually expires during the recalc
      the list iteration outside becomes corrupted and crashes.
      
      Fix this by moving the recalculation to the only place
      where it's required.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      e9db4557
  8. 13 Jan, 2016 16 commits
    • wangweidong's avatar
      hip04_eth: fix missing error handle for build_skb failed · 701a0fd5
      wangweidong authored
      when build_skb failed, we should goto refill the buffer.
      Signed-off-by: default avatarWeidong Wang <wangweidong1@huawei.com>
      Acked-by: default avatarDing Tainhong <dingtianhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      701a0fd5
    • David S. Miller's avatar
      Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge · 1adbfc43
      David S. Miller authored
      Antonio Quartulli says:
      
      ====================
      net: batman-adv 20160114
      
      Included bugfixes:
      - avoid freeing batadv_hardif_neigh_node when still in use in other contexts
      - prevent lockdep splat in mcast_free during shutdown
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1adbfc43
    • David S. Miller's avatar
      Merge branch '3c59x-dma-fixes' · e752991a
      David S. Miller authored
      Neil Horman says:
      
      ====================
      3c59x: Fix dma map/unmap imbalances
      
      	recent enhancements to libdma revealed a few minor bugs in 3c59x, in
      which dma ranges were mapped as singles and unmaped as pages, or vice versa.
      These patches fix those up.  Tested by myself with success
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e752991a
    • Neil Horman's avatar
      3c59x: fix another page map/single unmap imbalance · 6e144419
      Neil Horman authored
      libdma debug found another page map/unmap imbalance in 3c59x.  Multi fragment
      frames are mapped such that the lead fragment was mapped as a single entry,
      while all other fragments were mapped as pages.  However, on unmapping they were
      all unmapped as pages.  Fix is pretty easy, just unmap the lead frag as a single
      entry, and bump the for loop initalization up by one so that all subsequent
      frags get unmapped as pages
      Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      CC: "David S. Miller" <davem@davemloft.net>
      CC: Steffen Klassert <klassert@mathematik.tu-chemnitz.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6e144419
    • Neil Horman's avatar
      3c59x: balance page maps and unmaps · 7356f4e4
      Neil Horman authored
      debug kernel noticed a screw up in 3c59x.  skbs being mapped as page were being
      unmapped as singles.  Easy fix.  Tested by myself
      
      Signed-off-by: Neil Horman <nhorman@tuxdriver.com
      CC: "David S. Miller" <davem@davemloft.net>
      CC: Steffen Klassert <klassert@mathematik.tu-chemnitz.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7356f4e4
    • David S. Miller's avatar
      x25_asy: Free x25_asy on x25_asy_open() failure. · 3b780bed
      David S. Miller authored
      Based upon a report by Dmitry Vyukov.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3b780bed
    • Dan Carpenter's avatar
      mlxsw: fix SWITCHDEV_OBJ_ID_PORT_MDB · 00ae40e7
      Dan Carpenter authored
      There is a missing break statement so we always return -EOPNOTSUPP.
      
      Fixes: 3a49b4fd ('mlxsw: Adding layer 2 multicast support')
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      00ae40e7
    • David S. Miller's avatar
      genetlink: Fix off-by-one in genl_allocate_reserve_groups() · b8e429a2
      David S. Miller authored
      The bug fix for adding n_groups to the computation forgot
      to adjust ">=" to ">" to keep the condition correct.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b8e429a2
    • Sven Eckelmann's avatar
      batman-adv: Fix list removal of batadv_hardif_neigh_node · bab7c6c3
      Sven Eckelmann authored
      The neigh_list with batadv_hardif_neigh_node objects is accessed with only
      rcu_read_lock in batadv_hardif_neigh_get and batadv_iv_neigh_print. Thus it
      is not allowed to kfree the object before the rcu grace period ends (which
      may still protects context accessing this object). Therefore the object has
      first to be removed from the neigh_list and then it has either wait with
      synchronize_rcu or call_rcu till the grace period ends before it can be
      freed.
      
      Fixes: cef63419 ("batman-adv: add list of unique single hop neighbors per hard-interface")
      Signed-off-by: default avatarSven Eckelmann <sven@narfation.org>
      Signed-off-by: default avatarMarek Lindner <mareklindner@neomailbox.ch>
      Signed-off-by: default avatarAntonio Quartulli <a@unstable.cc>
      bab7c6c3
    • Simon Wunderlich's avatar
      batman-adv: fix lockdep splat when doing mcast_free · af63cf51
      Simon Wunderlich authored
      While testing, we got something like this:
      
      WARNING: CPU: 0 PID: 238 at net/batman-adv/multicast.c:142 batadv_mcast_mla_tt_retract+0x94/0x205 [batman_adv]()
      [...]
      Call Trace:
      [<ffffffff815fc597>] dump_stack+0x4b/0x64
      [<ffffffff810b34dc>] warn_slowpath_common+0xbc/0x120
      [<ffffffffa0024ec5>] ? batadv_mcast_mla_tt_retract+0x94/0x205 [batman_adv]
      [<ffffffff810b3705>] warn_slowpath_null+0x15/0x20
      [<ffffffffa0024ec5>] batadv_mcast_mla_tt_retract+0x94/0x205 [batman_adv]
      [<ffffffffa00273fe>] batadv_mcast_free+0x36/0x39 [batman_adv]
      [<ffffffffa0020c77>] batadv_mesh_free+0x7d/0x13f [batman_adv]
      [<ffffffffa0036a6b>] batadv_softif_free+0x15/0x25 [batman_adv]
      [...]
      Signed-off-by: default avatarSimon Wunderlich <simon@open-mesh.com>
      Signed-off-by: default avatarMarek Lindner <mareklindner@neomailbox.ch>
      Signed-off-by: default avatarAntonio Quartulli <a@unstable.cc>
      af63cf51
    • wangweidong's avatar
      bgmac: fix a missing check for build_skb · f1640c3d
      wangweidong authored
      when build_skb failed, it may occure a NULL pointer.
      So add a 'NULL check' for it.
      Signed-off-by: default avatarWeidong Wang <wangweidong1@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f1640c3d
    • David S. Miller's avatar
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-4.5-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 67990608
      Linus Torvalds authored
      Pull oower management and ACPI updates from Rafael Wysocki:
       "As far as the number of commits goes, ACPICA takes the lead this time,
        followed by cpufreq and the device properties framework changes.
      
        The most significant new feature is the debugfs-based interface to the
        ACPICA's AML debugger added in the previous cycle and a new user space
        tool for accessing it.
      
        On the cpufreq front, the core is updated to handle governors more
        efficiently, particularly on systems where a single cpufreq policy
        object is shared between multiple CPUs, and there are quite a few
        changes in drivers (intel_pstate, cpufreq-dt etc).
      
        The device properties framework is updated to handle built-in (ie
        included in the kernel itself) device properties better, among other
        things by adding a fallback mechanism that will allow drivers to
        provide default properties to be used in case the plaform firmware
        doesn't provide the properties expected by them.
      
        The Operating Performance Points (OPP) framework gets new DT bindings
        and debugfs support.
      
        A new cpufreq driver for ST platforms is added and the ACPI driver for
        AMD SoCs will now support the APM X-Gene ACPI I2C device.
      
        The rest is mostly fixes and cleanups all over.
      
        Specifics:
      
         - Add a debugfs-based interface for interacting with the ACPICA's AML
           debugger introduced in the previous cycle and a new user space tool
           for that, fix some bugs related to the AML debugger and clean up
           the code in question (Lv Zheng, Dan Carpenter, Colin Ian King,
           Markus Elfring).
      
         - Update ACPICA to upstream revision 20151218 including a number of
           fixes and cleanups in the ACPICA core (Bob Moore, Lv Zheng, Labbe
           Corentin, Prarit Bhargava, Colin Ian King, David E Box, Rafael
           Wysocki).
      
           In particular, the previously added erroneous support for the _SUB
           object is dropped, the concatenate operator will support all ACPI
           objects now, the Debug Object handling is improved, the SuperName
           handling of parameters being control methods is fixed, the
           ObjectType operator handling is updated to follow ACPI 5.0A and the
           handling of CondRefOf and RefOf is updated accordingly, module-
           level code will be executed after loading each ACPI table now
           (instead of being run once after all tables containing AML have
           been loaded), the Operation Region handlers management is updated
           to fix some reported problems and a the ACPICA code in the kernel
           is more in line with the upstream now.
      
         - Update the ACPI backlight driver to provide information on whether
           or not it will generate key-presses for brightness change hotkeys
           and update some platform drivers (dell-wmi, thinkpad_acpi) to use
           that information to avoid sending double key-events to users pace
           for these, add new ACPI backlight quirks (Hans de Goede, Aaron Lu,
           Adrien Schildknecht).
      
         - Improve the ACPI handling of interrupt GPIOs (Christophe Ricard).
      
         - Fix the handling of the list of device IDs of device objects found
           in the ACPI namespace and add a helper for checking if there is a
           device object for a given device ID (Lukas Wunner).
      
         - Change the logic in the ACPI namespace scanning code to create
           struct acpi_device objects for all ACPI device objects found in the
           namespace even if _STA fails for them which helps to avoid device
           enumeration problems on Microsoft Surface 3 (Aaron Lu).
      
         - Add support for the APM X-Gene ACPI I2C device to the ACPI driver
           for AMD SoCs (Loc Ho).
      
         - Fix the long-standing issue with the DMA controller on Intel SoCs
           where ACPI tables have no power management support for the DMA
           controller itself, but it can be powered off automatically when the
           last (other) device on the SoC is powered off via ACPI and clean up
           the ACPI driver for Intel SoCs (acpi-lpss) after previous attempts
           to fix that problem (Andy Shevchenko).
      
         - Assorted ACPI fixes and cleanups (Andy Lutomirski, Colin Ian King,
           Javier Martinez Canillas, Ken Xue, Mathias Krause, Rafael Wysocki,
           Sinan Kaya).
      
         - Update the device properties framework for better handling of
           built-in properties, add support for built-in properties to the
           platform bus type, update the MFD subsystem's handling of device
           properties and add support for passing default configuration data
           as device properties to the intel-lpss MFD drivers, convert the
           designware I2C driver to use the unified device properties API and
           add a fallback mechanism for using default built-in properties if
           the platform firmware fails to provide the properties as expected
           by drivers (Andy Shevchenko, Mika Westerberg, Heikki Krogerus,
           Andrew Morton).
      
         - Add new Device Tree bindings to the Operating Performance Points
           (OPP) framework and update the exynos4412 DT binding accordingly,
           introduce debugfs support for the OPP framework (Viresh Kumar,
           Bartlomiej Zolnierkiewicz).
      
         - Migrate the mt8173 cpufreq driver to the new OPP bindings (Pi-Cheng
           Chen).
      
         - Update the cpufreq core to make the handling of governors more
           efficient, especially on systems where policy objects are shared
           between multiple CPUs (Viresh Kumar, Rafael Wysocki).
      
         - Fix cpufreq governor handling on configurations with
           CONFIG_HZ_PERIODIC set (Chen Yu).
      
         - Clean up the cpufreq core code related to the boost sysfs knob
           support and update the ACPI cpufreq driver accordingly (Rafael
           Wysocki).
      
         - Add a new cpufreq driver for ST platforms and corresponding Device
           Tree bindings (Lee Jones).
      
         - Update the intel_pstate driver to allow the P-state selection
           algorithm used by it to depend on the CPU ID of the processor it is
           running on, make it use a special P-state selection algorithm (with
           an IO wait time compensation tweak) on Atom CPUs based on the
           Airmont and Silvermont cores so as to reduce their energy
           consumption and improve intel_pstate documentation (Philippe
           Longepe, Srinivas Pandruvada).
      
         - Update the cpufreq-dt driver to support registering cooling devices
           that use the (P * V^2 * f) dynamic power draw formula where V is
           the voltage, f is the frequency and P is a constant coefficient
           provided by Device Tree and update the arm_big_little cpufreq
           driver to use that support (Punit Agrawal).
      
         - Assorted cpufreq driver (cpufreq-dt, qoriq, pcc-cpufreq,
           blackfin-cpufreq) updates (Andrzej Hajda, Hongtao Jia, Jacob
           Tanenbaum, Markus Elfring).
      
         - cpuidle core tweaks related to polling and measured_us calculation
           (Rik van Riel).
      
         - Removal of modularity from a few cpuidle drivers (clps711x, ux500,
           exynos) that cannot be built as modules in practice (Paul
           Gortmaker).
      
         - PM core update to prevent devices from being probed during system
           suspend/resume which is generally problematic and may lead to
           inconsistent behavior (Grygorii Strashko).
      
         - Assorted updates of the PM core and related code (Julia Lawall,
           Manuel Pégourié-Gonnard, Maruthi Bayyavarapu, Rafael Wysocki, Ulf
           Hansson).
      
         - PNP bus type updates (Christophe Le Roy, Heiner Kallweit).
      
         - PCI PM code cleanups (Jarkko Nikula, Julia Lawall).
      
         - cpupower tool updates (Jacob Tanenbaum, Thomas Renninger)"
      
      * tag 'pm+acpi-4.5-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (177 commits)
        PM / clk: don't leave clocks enabled when driver not bound
        i2c: dw: Add APM X-Gene ACPI I2C device support
        ACPI / APD: Add APM X-Gene ACPI I2C device support
        ACPI / LPSS: change 'does not have' to 'has' in comment
        Revert "dmaengine: dw: platform: provide platform data for Intel"
        dmaengine: dw: return immediately from IRQ when DMA isn't in use
        dmaengine: dw: platform: power on device on shutdown
        ACPI / LPSS: override power state for LPSS DMA device
        PM / OPP: Use snprintf() instead of sprintf()
        Documentation: cpufreq: intel_pstate: enhance documentation
        ACPI, PCI, irq: remove redundant check for null string pointer
        ACPI / video: driver must be registered before checking for keypresses
        cpufreq-dt: fix handling regulator_get_voltage() result
        cpufreq: governor: Fix negative idle_time when configured with CONFIG_HZ_PERIODIC
        PM / sleep: Add support for read-only sysfs attributes
        ACPI: Fix white space in a structure definition
        ACPI / SBS: fix inconsistent indenting inside if statement
        PNP: respect PNP_DRIVER_RES_DO_NOT_CHANGE when detaching
        ACPI / PNP: constify device IDs
        ACPI / PCI: Simplify acpi_penalize_isa_irq()
        ...
      67990608
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · c17488d0
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "Not much new with tracing for this release.  Mostly just clean ups and
        minor fixes.
      
        Here's what else is new:
      
         - A new TRACE_EVENT_FN_COND macro, combining both _FN and _COND for
           those that want both.
      
         - New selftest to test the instance create and delete
      
         - Better debug output when ftrace fails"
      
      * tag 'trace-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (24 commits)
        ftrace: Fix the race between ftrace and insmod
        ftrace: Add infrastructure for delayed enabling of module functions
        x86: ftrace: Fix the comments for ftrace_modify_code_direct()
        tracing: Fix comment to use tracing_on over tracing_enable
        metag: ftrace: Fix the comments for ftrace_modify_code
        sh: ftrace: Fix the comments for ftrace_modify_code()
        ia64: ftrace: Fix the comments for ftrace_modify_code()
        ftrace: Clean up ftrace_module_init() code
        ftrace: Join functions ftrace_module_init() and ftrace_init_module()
        tracing: Introduce TRACE_EVENT_FN_COND macro
        tracing: Use seq_buf_used() in seq_buf_to_user() instead of len
        bpf: Constify bpf_verifier_ops structure
        ftrace: Have ftrace_ops_get_func() handle RCU and PER_CPU flags too
        ftrace: Remove use of control list and ops
        ftrace: Fix output of enabled_functions for showing tramp
        ftrace: Fix a typo in comment
        ftrace: Show all tramps registered to a record on ftrace_bug()
        ftrace: Add variable ftrace_expected for archs to show expected code
        ftrace: Add new type to distinguish what kind of ftrace_bug()
        tracing: Update cond flag when enabling or disabling a trigger
        ...
      c17488d0
    • Linus Torvalds's avatar
      Merge branch 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 34a9304a
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
      
       - cgroup v2 interface is now official.  It's no longer hidden behind a
         devel flag and can be mounted using the new cgroup2 fs type.
      
         Unfortunately, cpu v2 interface hasn't made it yet due to the
         discussion around in-process hierarchical resource distribution and
         only memory and io controllers can be used on the v2 interface at the
         moment.
      
       - The existing documentation which has always been a bit of mess is
         relocated under Documentation/cgroup-v1/. Documentation/cgroup-v2.txt
         is added as the authoritative documentation for the v2 interface.
      
       - Some features are added through for-4.5-ancestor-test branch to
         enable netfilter xt_cgroup match to use cgroup v2 paths.  The actual
         netfilter changes will be merged through the net tree which pulled in
         the said branch.
      
       - Various cleanups
      
      * 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: rename cgroup documentations
        cgroup: fix a typo.
        cgroup: Remove resource_counter.txt in Documentation/cgroup-legacy/00-INDEX.
        cgroup: demote subsystem init messages to KERN_DEBUG
        cgroup: Fix uninitialized variable warning
        cgroup: put controller Kconfig options in meaningful order
        cgroup: clean up the kernel configuration menu nomenclature
        cgroup_pids: fix a typo.
        Subject: cgroup: Fix incomplete dd command in blkio documentation
        cgroup: kill cgrp_ss_priv[CGROUP_CANFORK_COUNT] and friends
        cpuset: Replace all instances of time_t with time64_t
        cgroup: replace unified-hierarchy.txt with a proper cgroup v2 documentation
        cgroup: rename Documentation/cgroups/ to Documentation/cgroup-legacy/
        cgroup: replace __DEVEL__sane_behavior with cgroup2 fs type
      34a9304a
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · aee3bfa3
      Linus Torvalds authored
      Pull networking updates from Davic Miller:
      
       1) Support busy polling generically, for all NAPI drivers.  From Eric
          Dumazet.
      
       2) Add byte/packet counter support to nft_ct, from Floriani Westphal.
      
       3) Add RSS/XPS support to mvneta driver, from Gregory Clement.
      
       4) Implement IPV6_HDRINCL socket option for raw sockets, from Hannes
          Frederic Sowa.
      
       5) Add support for T6 adapter to cxgb4 driver, from Hariprasad Shenai.
      
       6) Add support for VLAN device bridging to mlxsw switch driver, from
          Ido Schimmel.
      
       7) Add driver for Netronome NFP4000/NFP6000, from Jakub Kicinski.
      
       8) Provide hwmon interface to mlxsw switch driver, from Jiri Pirko.
      
       9) Reorganize wireless drivers into per-vendor directories just like we
          do for ethernet drivers.  From Kalle Valo.
      
      10) Provide a way for administrators "destroy" connected sockets via the
          SOCK_DESTROY socket netlink diag operation.  From Lorenzo Colitti.
      
      11) Add support to add/remove multicast routes via netlink, from Nikolay
          Aleksandrov.
      
      12) Make TCP keepalive settings per-namespace, from Nikolay Borisov.
      
      13) Add forwarding and packet duplication facilities to nf_tables, from
          Pablo Neira Ayuso.
      
      14) Dead route support in MPLS, from Roopa Prabhu.
      
      15) TSO support for thunderx chips, from Sunil Goutham.
      
      16) Add driver for IBM's System i/p VNIC protocol, from Thomas Falcon.
      
      17) Rationalize, consolidate, and more completely document the checksum
          offloading facilities in the networking stack.  From Tom Herbert.
      
      18) Support aborting an ongoing scan in mac80211/cfg80211, from
          Vidyullatha Kanchanapally.
      
      19) Use per-bucket spinlock for bpf hash facility, from Tom Leiming.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1375 commits)
        net: bnxt: always return values from _bnxt_get_max_rings
        net: bpf: reject invalid shifts
        phonet: properly unshare skbs in phonet_rcv()
        dwc_eth_qos: Fix dma address for multi-fragment skbs
        phy: remove an unneeded condition
        mdio: remove an unneed condition
        mdio_bus: NULL dereference on allocation error
        net: Fix typo in netdev_intersect_features
        net: freescale: mac-fec: Fix build error from phy_device API change
        net: freescale: ucc_geth: Fix build error from phy_device API change
        bonding: Prevent IPv6 link local address on enslaved devices
        IB/mlx5: Add flow steering support
        net/mlx5_core: Export flow steering API
        net/mlx5_core: Make ipv4/ipv6 location more clear
        net/mlx5_core: Enable flow steering support for the IB driver
        net/mlx5_core: Initialize namespaces only when supported by device
        net/mlx5_core: Set priority attributes
        net/mlx5_core: Connect flow tables
        net/mlx5_core: Introduce modify flow table command
        net/mlx5_core: Managing root flow table
        ...
      aee3bfa3