1. 06 3月, 2013 8 次提交
    • J
      nl80211: conditionally add back radar information · cdc89b97
      Johannes Berg 提交于
      If userspace is updated to deal with large split wiphy
      information dumps, add back the radar information that
      could otherwise push the data over the limit of the
      netlink dump messages.
      
      Cc: Simon Wunderlich <simon.wunderlich@s2003.tu-chemnitz.de>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      cdc89b97
    • J
      nl80211: allow splitting wiphy information in dumps · 3713b4e3
      Johannes Berg 提交于
      The per-wiphy information is getting large, to the point
      where with more than the typical number of channels it's
      too large and overflows, and userspace can't get any of
      the information at all.
      
      To address this (in a way that doesn't require making all
      messages bigger) allow userspace to specify that it can
      deal with wiphy information split across multiple parts
      of the dump, and if it can split up the data. This also
      splits up each channel separately so an arbitrary number
      of channels can be supported.
      
      Additionally, since GET_WIPHY has the same problem, add
      support for filtering the wiphy dump and get information
      for a single wiphy only, this allows userspace apps to
      use dump in this case to retrieve all data from a single
      device.
      
      As userspace needs to know if all this this is supported,
      add a global nl80211 feature set and include a bit for
      this behaviour in it.
      
      Cc: Dennis H Jensen <dennis.h.jensen@siemens.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      3713b4e3
    • J
      mac80211: clarify alignment comment · 191922cd
      Johannes Berg 提交于
      The comment says something about __skb_push(), but that
      isn't even called in the code any more. Looking at the
      git history, that comment never even made sense when it
      was still called, so just replace that part to note it
      still works even when align isn't 0 or 2.
      Reported-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      191922cd
    • S
      net: rfkill: Fix sparse warning in rfkill-regulator.c · 9fed3096
      Sachin Kamat 提交于
      'rfkill_regulator_ops' is used only in this file. Hence make it static.
      Silences the following warning:
      net/rfkill/rfkill-regulator.c:54:19: warning:
      symbol 'rfkill_regulator_ops' was not declared. Should it be static?
      Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      9fed3096
    • J
      cfg80211: comprehensively check station changes · 77ee7c89
      Johannes Berg 提交于
      The station change API isn't being checked properly before
      drivers are called, and as a result it is difficult to see
      what should be allowed and what not.
      
      In order to comprehensively check the API parameters parse
      everything first, and then have the driver call a function
      (cfg80211_check_station_change()) with the additionally
      information about the kind of station that is being changed;
      this allows the function to make better decisions than the
      old code could.
      
      While at it, also add a few checks, particularly in mesh
      and clarify the TDLS station lifetime in documentation.
      
      To be able to reduce a few checks, ignore any flag set bits
      when the mask isn't set, they shouldn't be applied then.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      77ee7c89
    • J
      cfg80211: unify station WME parsing · ff276691
      Johannes Berg 提交于
      Instead of copying the code, create a new function
      to parse the station's WME information.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      ff276691
    • J
      cfg80211: clean up station WME attribute parsing · 984c311b
      Johannes Berg 提交于
      Parse the attributes first, and then disable the apply
      flag if needed.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      984c311b
    • J
      cfg80211: clean up mesh plink station change API · f8bacc21
      Johannes Berg 提交于
      Make the ability to leave the plink_state unchanged not use a
      magic -1 variable that isn't in the enum, but an explicit change
      flag; reject invalid plink states or actions and move the needed
      constants for plink actions to the right header file. Also
      reject plink_state changes for non-mesh interfaces.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      f8bacc21
  2. 03 3月, 2013 2 次提交
  3. 02 3月, 2013 1 次提交
    • J
      mac80211: fix VHT MCS calculation · 24af717c
      Johannes Berg 提交于
      The VHT MCSes we advertise to the AP were supposed to
      be restricted to the AP, but due to a bug in the logic
      mac80211 will advertise rates to the AP that aren't
      even supported by the local device. To fix this skip
      any adjustment if the NSS isn't supported at all.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      24af717c
  4. 01 3月, 2013 4 次提交
  5. 28 2月, 2013 5 次提交
    • J
      mac80211: really fix monitor mode channel reporting · feda3027
      Johannes Berg 提交于
      After Felix's patch it was still broken in case you
      used more than just a single monitor interface. Fix
      it better now.
      Reported-by: NSujith Manoharan <sujith@msujith.org>
      Tested-by: NSujith Manoharan <sujith@msujith.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      feda3027
    • S
      hlist: drop the node parameter from iterators · b67bfe0d
      Sasha Levin 提交于
      I'm not sure why, but the hlist for each entry iterators were conceived
      
              list_for_each_entry(pos, head, member)
      
      The hlist ones were greedy and wanted an extra parameter:
      
              hlist_for_each_entry(tpos, pos, head, member)
      
      Why did they need an extra pos parameter? I'm not quite sure. Not only
      they don't really need it, it also prevents the iterator from looking
      exactly like the list iterator, which is unfortunate.
      
      Besides the semantic patch, there was some manual work required:
      
       - Fix up the actual hlist iterators in linux/list.h
       - Fix up the declaration of other iterators based on the hlist ones.
       - A very small amount of places were using the 'node' parameter, this
       was modified to use 'obj->member' instead.
       - Coccinelle didn't handle the hlist_for_each_entry_safe iterator
       properly, so those had to be fixed up manually.
      
      The semantic patch which is mostly the work of Peter Senna Tschudin is here:
      
      @@
      iterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;
      
      type T;
      expression a,c,d,e;
      identifier b;
      statement S;
      @@
      
      -T b;
          <+... when != b
      (
      hlist_for_each_entry(a,
      - b,
      c, d) S
      |
      hlist_for_each_entry_continue(a,
      - b,
      c) S
      |
      hlist_for_each_entry_from(a,
      - b,
      c) S
      |
      hlist_for_each_entry_rcu(a,
      - b,
      c, d) S
      |
      hlist_for_each_entry_rcu_bh(a,
      - b,
      c, d) S
      |
      hlist_for_each_entry_continue_rcu_bh(a,
      - b,
      c) S
      |
      for_each_busy_worker(a, c,
      - b,
      d) S
      |
      ax25_uid_for_each(a,
      - b,
      c) S
      |
      ax25_for_each(a,
      - b,
      c) S
      |
      inet_bind_bucket_for_each(a,
      - b,
      c) S
      |
      sctp_for_each_hentry(a,
      - b,
      c) S
      |
      sk_for_each(a,
      - b,
      c) S
      |
      sk_for_each_rcu(a,
      - b,
      c) S
      |
      sk_for_each_from
      -(a, b)
      +(a)
      S
      + sk_for_each_from(a) S
      |
      sk_for_each_safe(a,
      - b,
      c, d) S
      |
      sk_for_each_bound(a,
      - b,
      c) S
      |
      hlist_for_each_entry_safe(a,
      - b,
      c, d, e) S
      |
      hlist_for_each_entry_continue_rcu(a,
      - b,
      c) S
      |
      nr_neigh_for_each(a,
      - b,
      c) S
      |
      nr_neigh_for_each_safe(a,
      - b,
      c, d) S
      |
      nr_node_for_each(a,
      - b,
      c) S
      |
      nr_node_for_each_safe(a,
      - b,
      c, d) S
      |
      - for_each_gfn_sp(a, c, d, b) S
      + for_each_gfn_sp(a, c, d) S
      |
      - for_each_gfn_indirect_valid_sp(a, c, d, b) S
      + for_each_gfn_indirect_valid_sp(a, c, d) S
      |
      for_each_host(a,
      - b,
      c) S
      |
      for_each_host_safe(a,
      - b,
      c, d) S
      |
      for_each_mesh_entry(a,
      - b,
      c, d) S
      )
          ...+>
      
      [akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]
      [akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]
      [akpm@linux-foundation.org: checkpatch fixes]
      [akpm@linux-foundation.org: fix warnings]
      [akpm@linux-foudnation.org: redo intrusive kvm changes]
      Tested-by: NPeter Senna Tschudin <peter.senna@gmail.com>
      Acked-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: NSasha Levin <sasha.levin@oracle.com>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: Gleb Natapov <gleb@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b67bfe0d
    • T
      sctp: convert to idr_alloc() · 94960e8c
      Tejun Heo 提交于
      Convert to the much saner new idr interface.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Acked-by: NVlad Yasevich <vyasevich@gmail.com>
      Cc: Sridhar Samudrala <sri@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      94960e8c
    • T
      mac80211: convert to idr_alloc() · 9475af6e
      Tejun Heo 提交于
      Convert to the much saner new idr interface.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9475af6e
    • T
      net/9p: convert to idr_alloc() · 19a101a0
      Tejun Heo 提交于
      Convert to the much saner new idr interface.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Eric Van Hensbergen <ericvh@gmail.com>
      Cc: Ron Minnich <rminnich@sandia.gov>
      Cc: Latchesar Ionkov <lucho@ionkov.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      19a101a0
  6. 27 2月, 2013 12 次提交
  7. 26 2月, 2013 8 次提交