09 Jul, 2008
35 commits
-
Conflicts:
drivers/net/wireless/iwlwifi/iwl-3945.c
net/mac80211/mlme.c -
- vlan_dev_reorder_header() is only called on the receive path after
calling skb_share_check(). This means we can use skb_cow() since
all we need is a writable header.- vlan_dev_hard_header() includes a work-around for some apparently
broken out of tree MPLS code. The hard_header functions can expect
to always have a headroom of at least there own hard_header_len
available, so the reallocation check is unnecessary.- __vlan_put_tag() can use skb_cow_head() to avoid the skb_unshare()
copy when the header is writable.Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller -
Consider the following scenario:
ipv6_del_addr(ifp)
ipv6_ifa_notify(RTM_DELADDR, ifp)
ip6_del_rt(ifp->rt)after returning from the ipv6_ifa_notify and enabling BH-s
back, but *before* calling the addrconf_del_timer the
ifp->timer fires and:addrconf_dad_timer(ifp)
addrconf_dad_completed(ifp)
ipv6_ifa_notify(RTM_NEWADDR, ifp)
ip6_ins_rt(ifp->rt)then return back to the ipv6_del_addr and:
in6_ifa_put(ifp)
inet6_ifa_finish_destroy(ifp)
dst_release(&ifp->rt->u.dst)After this we have an ifp->rt inserted into fib6 lists, but
queued for gc, which in turn can result in oopses in the
fib6_run_gc. Maybe some other nasty things, but we caught
only the oops in gc so far.The solution is to disarm the ifp->timer before flushing the
rt from it.Signed-off-by: Andrey Vagin
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Although I only tested similar code (I don't use any of this wireless
code), the state maintainance between Netlink dump callback invocations
seems wrong here and should lead to an endless loop. There are also other
examples in the same file which might have the same problem. Perhaps someone
can actually test this (or refute my logic).Take the simple example with only one element in the list (which should fit
into the message):1. invocation:
Start:
idx = 0, start = 0
Loop:
condition (++idx < start) => (1 < 0) => false
=> no continue, fill one entry, exit loop, return skb->len > 02. invocation:
Start:
idx = 0, start = 1
Loop:
condition (++idx < start) => (1 < 1) => false
=> no continue, fill the same entry again, exit loop, return skb->len > 03. invocation:
Same as 2. invocation, endless invocation of callback.Also, iterations where the filling of an element fails should not be counted as
completed, so idx should not be incremented in this case.Signed-off-by: Julius Volz
Signed-off-by: John W. Linville -
Some early versions of RTL8187B devices have a USB ID of 0x8187
rather than the 0x8189 of later models. In addition, it appears
that these early units also must be programmed with lower power.
Previous patches used the Product ID string to detect this situation,
but did not address the low power question. This patch uses the
hardware version and sets the power accordingly.Signed-off-by: Hin-Tak Leung
Signed-off-by: Larry Finger
Signed-off-by: John W. Linville -
Signed-off-by: Larry Finger
Signed-off-by: Herton Ronaldo Krzesinski
Signed-off-by: Hin-Tak Leung
Signed-off-by: Pavel Roskin
Signed-off-by: John W. Linville -
Signed-off-by: Larry Finger
Signed-off-by: Herton Ronaldo Krzesinski
Signed-off-by: Hin-Tak Leung
Signed-off-by: Pavel Roskin
Signed-off-by: John W. Linville -
Signed-off-by: Larry Finger
Signed-off-by: Herton Ronaldo Krzesinski
Signed-off-by: Hin-Tak Leung
Signed-off-by: Pavel Roskin
Signed-off-by: John W. Linville -
Signed-off-by: Larry Finger
Signed-off-by: Herton Ronaldo Krzesinski
Signed-off-by: Hin-Tak Leung
Signed-off-by: Pavel Roskin
Signed-off-by: John W. Linville -
Signed-off-by: Larry Finger
Signed-off-by: Herton Ronaldo Krzesinski
Signed-off-by: Hin-Tak Leung
Signed-off-by: Pavel Roskin
Signed-off-by: John W. Linville -
Signed-off-by: Larry Finger
Signed-off-by: Herton Ronaldo Krzesinski
Signed-off-by: Hin-Tak Leung
Signed-off-by: Pavel Roskin
Signed-off-by: John W. Linville -
Fix some register documentation in the register header files.
This allows better parsing by userspace scripts which in turn
helps debugging.Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
Signed-off-by: Pavel Roskin
Signed-off-by: John W. Linville -
The gcc 3.4 fork used to compile the MN10300 port emits unwanted
__ucmpdi2() calls for switch statements that use a 64bit value.This patch removes such a switch from b43legacy, and makes the code
more like that used in b43. Thanks to Adrian Bunk
for reporting the problem.Signed-off-by: Larry Finger
Signed-off-by: John W. Linville -
rt2400 is the only currently available rt2x00 driver which
supports reporting of the RX end time for frames.
Since mac80211 uses this information for IBSS syncing, it
is important that it is being reported.v2: Complement 32 bits of RX timestamp with upper 32bits from TSF
Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
Remove the rt2x00 singlethreaded workqueue and move
the link tuner and packet filter scheduled work to
the ieee80211_hw->workqueue again.
The only exception is the interface scheduled work
handler which uses the mac80211 interface iterator
under the RTNL lock. This work needs to be handled
on the kernel workqueue to prevent lockdep issues.Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
We only need 4 bytes of headroom for alignment
purposes in the RX frame. It was previously higher
for optimization purposes which are no longer
possible due to DMA mappings.v2: Fix patch error
Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
With the new rfkill interface there is no longer a need
for the input_polldev. Create a delayed_work structure
which we can put on the mac80211 workqueue and poll the
hardware every 1000ms.v2: Decrease poll frequency from 100ms to 1000ms
Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
Add some error checking to the new beacon configuration code.
Signed-off-by: Daniel Drake
Signed-off-by: John W. Linville -
Fix more than 50 kernel-doc warnings in ieee80211/mac80211 kernel-doc notation.
Fix a few typos also.Note: Some fields are marked as TBD and need to have their description
corrected.Signed-off-by: Randy Dunlap
Signed-off-by: John W. Linville -
rfkill_add_switch() calls rfkill_toggle_radio() to set the state of a
recently registered rfkill class to the current global state [for that
rfkill->type].The rfkill_toggle_radio() call is going to error out if the hardware is
RFKILL_STATE_HARD_BLOCKED, and the global state is RFKILL_STATE_UNBLOCKED.That is a quite normal situation which I missed to account for. As things
stand, the error return from rfkill_toggle_radio ends up causing
rfkill_register to bail out with an error (de-registering the new switch in
the process), which is Not Nice.Change rfkill_add_switch() to not return errors because of a failed call to
rfkill_toggle_radio(). We can go back to returning errors again (if that's
indeed the right thing to do) if we define the exact error codes the
rfkill->toggle_radio callbacks are to return in each situation, so that we
can ignore the right ones only.Bug reported by "kionez ".
Signed-off-by: Henrique de Moraes Holschuh
Cc: kionez
Acked-by: Ivo van Doorn
Signed-off-by: John W. Linville -
Improve rfkill_toggle_radio's kernel-doc header a bit.
Signed-off-by: Henrique de Moraes Holschuh
Acked-by: Ivo van Doorn
Signed-off-by: John W. Linville -
Signed-off-by: Emmanuel Grumbach
Signed-off-by: Tomas Winkler
Signed-off-by: John W. Linville -
Signed-off-by: Harvey Harrison
Signed-off-by: John W. Linville -
Recalculate the offset pointers in the ccmp calculations rather than
in the callers.Signed-off-by: Harvey Harrison
Signed-off-by: John W. Linville -
Signed-off-by: Harvey Harrison
Signed-off-by: John W. Linville -
Signed-off-by: Harvey Harrison
Signed-off-by: John W. Linville -
This patch removes call of ieee80211_bss_info_change_notify from within
ieee80211_reset_erp_info. This allows gathering all bss info changes
into one call to the driver in the disassociation flow.Signed-off-by: Tomas Winkler
Acked-by: Johannes Berg
Signed-off-by: John W. Linville -
Do the check for sufficient skb->len explicitly and pass a pointer
to the struct ieee80211_hdr directly to the michael_mic calculation.Signed-off-by: Harvey Harrison
Signed-off-by: John W. Linville -
ccmp_special_blocks was only using it to calculate data_len,
calculate that directly.Use unaligned helpers rather than masking/shifting.
Use symbolic constants for the masked frame_control, and do it directly
on a le16 value.Signed-off-by: Harvey Harrison
Signed-off-by: John W. Linville -
ETH_ALEN and IEEE80211_QOS_CTL_LEN
Signed-off-by: Harvey Harrison
Signed-off-by: John W. Linville -
Also remove the WLAN_IS_QOS_DATA inline after removing the last
two users. This starts moving away from using rx->fc to using
the header frame_control directly.Signed-off-by: Harvey Harrison
Signed-off-by: John W. Linville -
Signed-off-by: Helmut Schaa
Signed-off-by: John W. Linville -
This patch removes MAC80211_DEBUG from /net/mac80211/Kconfig
(in MAC80211_DEBUG_COUNTERS config entry), and replaces
MAC80211_DEBUG_MENU instead of MAC80211_DEBUG
(in MAC80211_VERBOSE_SPECT_MGMT_DEBUG config entry).Signed-off-by: Rami Rosen
Signed-off-by: John W. Linville
08 Jul, 2008
5 commits
-
This patch fixes the iwlwifi rfkill. It removes the input device from iwl3945,
adds support for RFKILL_STATE_HARD_BLOCKED and calls rfkill_force_state() to
update the state rather than accessing it directly.
The calls to iwl|iwl3945_rfkill_set_hw_state() had to be moved because
rfkill_force_state() cannot be called from an atomic context.
Tested on iwl3945 and seems to work fine.Cc: Randy Dunlap
Cc: Ivo van Doorn
Cc: Fabien Crespel
Cc: Zhu Yi
Cc: Henrique de Moraes Holschuh
Signed-off-by: Adel Gadllah
Signed-off-by: John W. Linville -
This patch fixes warning unused variable ifsta
when compiling without CONFIG_MAC80211_VERBOSE_DEBUGSigned-off-by: Tomas Winkler
Acked-by: Johannes Berg
Signed-off-by: John W. Linville -
This patch sets the block ack request flag if needed
Signed-off-by: Ron Rindjunsky
Signed-off-by: Tomas Winkler
Signed-off-by: John W. Linville -
This patch removes useless tid assignment for management and control frames
Signed-off-by: Tomas Winkler
Acked-by: Johannes Berg
Signed-off-by: John W. Linville -
This patch adds block ack request capability
Signed-off-by: Ester Kummer
Signed-off-by: Tomas Winkler
Signed-off-by: Ron Rindjunsky
Acked-by: Johannes Berg
Signed-off-by: John W. Linville