1. 16 9月, 2008 6 次提交
  2. 12 9月, 2008 1 次提交
  3. 23 8月, 2008 1 次提交
  4. 15 7月, 2008 4 次提交
    • J
      mac80211: fix TX sequence numbers · f591fa5d
      Johannes Berg 提交于
      This patch makes mac80211 assign proper sequence numbers to
      QoS-data frames. It also removes the old sequence number code
      because we noticed that only the driver or hardware can assign
      sequence numbers to non-QoS-data and especially management
      frames in a race-free manner because beacons aren't passed
      through mac80211's TX path.
      
      This patch also adds temporary code to the rt2x00 drivers to
      not break them completely, that code will have to be reworked
      for proper sequence numbers on beacons.
      
      It also moves sequence number assignment down in the TX path
      so no sequence numbers are assigned to frames that are dropped.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f591fa5d
    • J
      mac80211: push interface checks down · f3947e2d
      Johannes Berg 提交于
      This patch pushes the "netif_running()" and "same type as before"
      checks down into ieee80211_if_change_type() to centralise the
      logic instead of duplicating it for cfg80211 and wext.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f3947e2d
    • J
      mac80211: revamp virtual interface handling · 75636525
      Johannes Berg 提交于
      This patch revamps the virtual interface handling and makes the
      code much easier to follow. Fewer functions, better names, less
      spaghetti code.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      75636525
    • J
      mac80211: make master netdev handling sane · 3e122be0
      Johannes Berg 提交于
      Currently, almost every interface type has a 'bss' pointer
      pointing to BSS information. This BSS information, however,
      is for a _local_ BSS, not for the BSS we joined, so having
      it on a STA mode interface makes little sense, but now they
      have it pointing to the master device, which is an AP mode
      virtual interface. However, except for some bitrate control
      data, this pointer is only used in AP/VLAN modes (for power
      saving stations.)
      
      Overall, it is not necessary to even have the master netdev
      be a valid virtual interface, and it doesn't have to be on
      the list of interfaces either.
      
      This patch changes the master netdev to be special, it now
       - no longer is on the list of virtual interfaces, which
         lets me remove a lot of tests for that
       - no longer has sub_if_data attached, since that isn't used
      
      Additionally, this patch changes some vlan/ap mode handling
      that is related to these 'bss' pointers described above (but
      in the VLAN case they actually make sense because there they
      point to the AP they belong to); it also adds some debugging
      code to IEEE80211_DEV_TO_SUB_IF to validate it is not called
      on the master netdev any more.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3e122be0
  5. 03 7月, 2008 1 次提交
  6. 22 5月, 2008 1 次提交
  7. 15 5月, 2008 1 次提交
  8. 13 5月, 2008 1 次提交
  9. 08 5月, 2008 1 次提交
  10. 09 4月, 2008 1 次提交
  11. 07 3月, 2008 5 次提交
  12. 06 3月, 2008 1 次提交
  13. 01 3月, 2008 3 次提交
  14. 29 1月, 2008 4 次提交
  15. 11 10月, 2007 9 次提交
    • J
      [PATCH] ieee80211_if_set_type: make check for master dev more explicit · 0654ff05
      John W. Linville 提交于
      Problem description by Daniel Drake <dsd@gentoo.org>:
      
      "This sequence of events causes loss of connectivity:
      
      <plug in>
      <associate as normal in managed mode>
      ifconfig eth7 down
      iwconfig eth7 mode monitor
      ifconfig eth7 up
      ifconfig eth7 down
      iwconfig eth7 mode managed
      <associate as normal>
      
      At this point you are associated but TX does not work. This is because
      the eth7 hard_start_xmit is still ieee80211_monitor_start_xmit."
      
      The problem is caused by ieee80211_if_set_type checking for a non-zero
      hard_start_xmit pointer value in order to avoid changing that value for
      master devices.  The fix is to make that check more explicitly linked to
      master devices rather than simply checking if the value has been
      previously set.
      
      CC: Daniel Drake <dsd@gentoo.org>
      Acked-by: NMichael Wu <flamingice@sourmilk.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0654ff05
    • J
      [MAC80211]: remove management interface · f9d540ee
      Johannes Berg 提交于
      Removes the management interface since it is only required
      for hostapd/userspace MLME, will not be in the final tree
      at least in this form and hostapd/userspace MLME currently
      do not work against this tree anyway.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f9d540ee
    • J
      [MAC80211]: add "invalid" interface type · a2897552
      Johannes Berg 提交于
      Since I cannot convince the lazy driver authors (hello Michael)
      to stop (ab)using the MGMT interface type internally in their
      drivers, this patch introduces a new _INVALID type especially
      for their use and changes all affected drivers to use it.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a2897552
    • J
      [PATCH] mac80211: remove generic IE for AP interfaces · b4010e08
      Johannes Berg 提交于
      This is not useful since we do not support probe response
      offload to hardware at this time and beacons are set in
      another way.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b4010e08
    • J
      [PATCH] mac80211: fix vlan bug · fb1c1cd6
      Johannes Berg 提交于
      VLAN interfaces have yet another bug: they aren't accounted
      for properly in the receive path in prepare_for_handlers().
      I noticed this by code inspection, but it would be easy for
      the compiler to catch such things if we'd just use the proper
      enum where appropriate.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      fb1c1cd6
    • J
      [PATCH] mac80211: fix interface initialisation and deinitialisation · 5b2812e9
      Johannes Berg 提交于
      When an interface is registered it is still uninitialised so
      ieee80211_if_reinit() can't be called on it (it will oops.)
      Hence, we need to move the uninit method assignment.
      
      Also, this patch fixes the bug that the master device is never
      initialised nor deinitialised at all. Oddly, the deinit code
      had an if statement to not run some code when running for the
      master interface (which never happened), but that if statement
      is also wrong. Fix that too.
      
      Now that the uninit code is run for the master device, another
      bug surfaced: it tries to remove all dependent interfaces and
      that oopses or BUGs at some point, either because it unregisters
      already unregistered interfaces (missing list_del bug) or due
      to trying to iterate a list that has had other things removed.
      Fix this too by handling the master interface specially.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5b2812e9
    • J
      [PATCH] mac80211: fix virtual interface locking · 79010420
      Johannes Berg 提交于
      Florian Lohoff noticed a bug in mac80211: when bringing the
      master interface down while other virtual interfaces are up
      we call dev_close() under a spinlock which is not allowed.
      This patch removes the sub_if_lock used by mac80211 in favour
      of using an RCU list. All list manipulations are already done
      under rtnl so are well protected against each other, and the
      read-side locks we took in the RX and TX code are already in
      RCU read-side critical sections.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Cc: Florian Lohoff <flo@rfc822.org>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
      Cc: Satyam Sharma <satyam@infradead.org>
      Signed-off-by: NMichael Wu <flamingice@sourmilk.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      79010420
    • J
      [PATCH] mac80211: validate VLAN interfaces better · 0ec3ca44
      Johannes Berg 提交于
      This patch changes mac80211 to verify that VLAN interfaces
      are valid and not bother drivers about them any more.
      VLAN interfaces are now only valid when an AP interface
      is up with the same MAC address, and are automatically
      turned off when the AP interface is set down.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Cc: Jouni Malinen <j@w1.fi>
      Signed-off-by: NMichael Wu <flamingice@sourmilk.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0ec3ca44
    • J
      [MAC80211]: rework key handling · 11a843b7
      Johannes Berg 提交于
      This moves all the key handling code out from ieee80211_ioctl.c
      into key.c and also does the following changes including documentation
      updates in mac80211.h:
      
       1) Turn off hardware acceleration for keys when the interface
          is down. This is necessary because otherwise monitor
          interfaces could be decrypting frames for other interfaces
          that are down at the moment. Also, it should go some way
          towards better suspend/resume support, in any case the
          routines used here could be used for that as well.
          Additionally, this makes the driver interface nicer, keys
          for a specific local MAC address are only ever present
          while an interface with that MAC address is enabled.
      
       2) Change driver set_key() callback interface to allow only
          return values of -ENOSPC, -EOPNOTSUPP and 0, warn on all
          other return values. This allows debugging the stack when
          a driver notices it's handed a key while it is down.
      
       3) Invert the flag meaning to KEY_FLAG_UPLOADED_TO_HARDWARE.
      
       4) Remove REMOVE_ALL_KEYS command as it isn't used nor do we
          want to use it, we'll use DISABLE_KEY for each key. It is
          hard to use REMOVE_ALL_KEYS because we can handle multiple
          virtual interfaces with different key configuration, so we'd
          have to keep track of a lot of state for this and that isn't
          worth it.
      
       5) Warn when disabling a key fails, it musn't.
      
       6) Remove IEEE80211_HW_NO_TKIP_WMM_HWACCEL in favour of per-key
          IEEE80211_KEY_FLAG_WMM_STA to let driver sort it out itself.
      
       7) Tell driver that a (non-WEP) key is used only for transmission
          by using an all-zeroes station MAC address when configuring.
      
       8) Change the set_key() callback to have access to the local MAC
          address the key is being added for.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: NMichael Wu <flamingice@sourmilk.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      11a843b7