linux-2.6
15 years agoath9k: add comments for ath9k_hw_configpcipowersave()
Luis R. Rodriguez [Tue, 10 Feb 2009 23:35:22 +0000 (15:35 -0800)] 
ath9k: add comments for ath9k_hw_configpcipowersave()

This is used for ASPM.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: fix FAT channel config for 5000 series
Reinette Chatre [Tue, 10 Feb 2009 23:19:04 +0000 (15:19 -0800)] 
iwlwifi: fix FAT channel config for 5000 series

The test to find out if we have FAT channels do not consider that
the value of regulatory_bands for the 5000 series is larger than its
eeprom size. Using the eeprom size is strange in itself.

Use a new EEPROM_REGULATORY_BAND_NO_FAT to indicate no FAT support
and test for that explicitly.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Acked-by: Samuel Ortiz <samuel.ortiz@intel.com>
Tested-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: drop PCIe workaround applicable for development boards
Tomas Winkler [Tue, 10 Feb 2009 23:19:03 +0000 (15:19 -0800)] 
iwlwifi: drop PCIe workaround applicable for development boards

This patch remove w/a used for development boards.
These boards are not available thus no need to keep it inside driver

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: use pci registers defined in pci_regs.h
Tomas Winkler [Tue, 10 Feb 2009 23:19:02 +0000 (15:19 -0800)] 
iwlwifi: use pci registers defined in pci_regs.h

This patch replaces where possible usage of pci register
defined in the driver by ones defined in pci_regs.h

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: split managed/ibss code a little more
Johannes Berg [Tue, 10 Feb 2009 20:26:03 +0000 (21:26 +0100)] 
mac80211: split managed/ibss code a little more

It appears that you can completely mess up mac80211 in IBSS
mode by sending it a disassoc or deauth: it'll stop queues
and do a lot more but not ever do anything again. Fix this
by not handling all those frames in IBSS mode,

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: fix IBSS auth
Johannes Berg [Tue, 10 Feb 2009 20:26:02 +0000 (21:26 +0100)] 
mac80211: fix IBSS auth

The code beyond this point is supposed to be used for
non-IBSS (managed) mode only.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Jouni Malinen <j@w1.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: calculate wstats_flags on the fly
Johannes Berg [Tue, 10 Feb 2009 20:26:01 +0000 (21:26 +0100)] 
mac80211: calculate wstats_flags on the fly

Just to make wext.c more self-contained.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: use cfg80211s BSS infrastructure
Johannes Berg [Tue, 10 Feb 2009 20:26:00 +0000 (21:26 +0100)] 
mac80211: use cfg80211s BSS infrastructure

Remove all the code from mac80211 to keep track of BSSes
and use the cfg80211-provided code completely.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agocfg80211: add more flexible BSS lookup
Johannes Berg [Tue, 10 Feb 2009 20:25:59 +0000 (21:25 +0100)] 
cfg80211: add more flexible BSS lookup

Add a more flexible BSS lookup function so that mac80211 or
other drivers can actually use this for getting the BSS to
connect to.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agocfg80211: allow users to request removing a BSS
Johannes Berg [Tue, 10 Feb 2009 20:25:58 +0000 (21:25 +0100)] 
cfg80211: allow users to request removing a BSS

This patch introduces cfg80211_unlink_bss, a function to
allow a driver to remove a BSS from the internal list and
make it not show up in scan results any more -- this is
to be used when the driver detects that the BSS is no
longer available.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agocfg80211: free_priv for BSS info
Johannes Berg [Tue, 10 Feb 2009 20:25:57 +0000 (21:25 +0100)] 
cfg80211: free_priv for BSS info

When cfg80211 users have their own allocated data in the per-BSS
private data, they will need to free this when the BSS struct is
destroyed. Add a free_priv method and fix one place where the BSS
was kfree'd rather than released properly.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: dont add BSS when creating IBSS
Johannes Berg [Tue, 10 Feb 2009 20:25:56 +0000 (21:25 +0100)] 
mac80211: dont add BSS when creating IBSS

There's no need to create a BSS struct only to pass it to
ieee80211_sta_join_ibss, so refactor this function into
__ieee80211_sta_join_ibss which takes all the relevant
paramters, and ieee80211_sta_join_ibss which takes a BSS
struct (used when joining an IBSS that already has other
members).

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agocfg80211/nl80211: scanning (and mac80211 update to use it)
Johannes Berg [Tue, 10 Feb 2009 20:25:55 +0000 (21:25 +0100)] 
cfg80211/nl80211: scanning (and mac80211 update to use it)

This patch adds basic scan capability to cfg80211/nl80211 and
changes mac80211 to use it. The BSS list that cfg80211 maintains
is made driver-accessible with a private area in each BSS struct,
but mac80211 doesn't yet use it. That's another large project.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: further cleanups to stopping BA sessions
Johannes Berg [Tue, 10 Feb 2009 20:25:54 +0000 (21:25 +0100)] 
mac80211: further cleanups to stopping BA sessions

Essentially consisting of passing the sta_info pointer around,
instead of repeatedly doing hash lookups.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: RX aggregation: clean up stop session
Johannes Berg [Tue, 10 Feb 2009 20:25:53 +0000 (21:25 +0100)] 
mac80211: RX aggregation: clean up stop session

Clean up the locking by splitting it into two functions,
this will also enable further cleanups of stopping all
sessions.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: clean up BA session teardown
Johannes Berg [Tue, 10 Feb 2009 20:25:52 +0000 (21:25 +0100)] 
mac80211: clean up BA session teardown

The sta_info pointer can very well be passed to
ieee80211_sta_tear_down_BA_sessions, this will
later allow us to pass it through even further.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: fix aggregation timer lockups
Johannes Berg [Tue, 10 Feb 2009 20:25:51 +0000 (21:25 +0100)] 
mac80211: fix aggregation timer lockups

As far as I can tell, there are possible lockups because both the RX
session_timer and TX addba_resp_timer are del_timer_sync'ed under
the sta spinlock which both timer functions take. Additionally, the
TX agg code seems to leak memory when TX aggregation is not disabled
before the sta_info is freed.

Fix this by making the free code a little smarter in the RX agg case,
and actually make the sta_info_destroy code free the TX agg info in
the TX agg case. We won't notify the peer, but it'll notice something
is wrong anyway, and normally this only happens after we've told it
in some other way we will no longer talk to it.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: fix race in TX aggregation
Johannes Berg [Tue, 10 Feb 2009 20:25:50 +0000 (21:25 +0100)] 
mac80211: fix race in TX aggregation

When disabling TX aggregation because it was rejected or from
the timer (it was not accepted), there is a window where we
first set the state to operation, unlock, and then undo the
whole thing. Avoid that by splitting up the stop function.
Also get rid of the pointless sta_info indirection in the timer.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: document TX aggregation (and small cleanup)
Johannes Berg [Tue, 10 Feb 2009 20:25:49 +0000 (21:25 +0100)] 
mac80211: document TX aggregation (and small cleanup)

Add documentation and move ieee80211_start_tx_ba_cb_irqsafe to right
after ieee80211_start_tx_ba_cb.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: hardware should not deny going back to legacy
Johannes Berg [Tue, 10 Feb 2009 20:25:48 +0000 (21:25 +0100)] 
mac80211: hardware should not deny going back to legacy

Doing so would be an MLME protocol violation when the peer disabled
the aggregation session. Quick driver review indicates that there are
error codes passed all over the drivers but cannot ever be nonzero
except in error conditions that would indicate mac80211 bugs.

No real changes here, since no drivers currently can return -EBUSY.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: restrict aggregation to supported interface modes
Johannes Berg [Tue, 10 Feb 2009 20:25:47 +0000 (21:25 +0100)] 
mac80211: restrict aggregation to supported interface modes

We can only support aggregation on AP/STA right now. HT isn't defined
for IBSS, WDS or MESH. In the WDS/MESH cases it's not clear what to
put into the IBSS field, and we don't handle that in the code at all.
Also fix the code to handle VLAN correctly.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: restructure HT code
Johannes Berg [Tue, 10 Feb 2009 20:25:46 +0000 (21:25 +0100)] 
mac80211: restructure HT code

Create two new files, agg-tx.c and agg-rx.c to make it clearer
which code is common (ht.c) and which is specific (agg-*.c).

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: fix RX aggregation timeouts
Johannes Berg [Tue, 10 Feb 2009 20:25:45 +0000 (21:25 +0100)] 
mac80211: fix RX aggregation timeouts

The values are in TUs (1.024ms), not ms.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: remove stray aggregation debugfs definition
Johannes Berg [Tue, 10 Feb 2009 20:25:44 +0000 (21:25 +0100)] 
mac80211: remove stray aggregation debugfs definition

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: remove bssid argument from prepare_for_handlers
Johannes Berg [Tue, 10 Feb 2009 20:25:43 +0000 (21:25 +0100)] 
mac80211: remove bssid argument from prepare_for_handlers

It's a little confusing to get the BSSID outside the function
and pass it in, when it's only needed for this function, so
change that.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: fix beacon enable more
Johannes Berg [Tue, 10 Feb 2009 20:25:42 +0000 (21:25 +0100)] 
mac80211: fix beacon enable more

Hopefully the last required fix ... disable beaconing
only on beaconing interfaces, and thus avoid calling
ieee80211_if_config for purely virtual interfaces
(those driver doesn't know about).

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: reject extra IEs for probe request when hw_scan
Johannes Berg [Tue, 10 Feb 2009 20:25:41 +0000 (21:25 +0100)] 
mac80211: reject extra IEs for probe request when hw_scan

We cannot currently hand off extra IEs to hw_scan, so reject
configuring extra IEs for probe request frames when hw_scan
is set.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Jouni Malinen <j@w1.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: properly validate/translate IW_AUTH_MFP values
Johannes Berg [Tue, 10 Feb 2009 20:25:40 +0000 (21:25 +0100)] 
mac80211: properly validate/translate IW_AUTH_MFP values

Make sure nobody passes in bogus values, and translate the values
(although it isn't necessary).

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agozd1211rw: honour enable_beacon conf
Johannes Berg [Tue, 10 Feb 2009 20:25:39 +0000 (21:25 +0100)] 
zd1211rw: honour enable_beacon conf

This makes zd1211rw honour enable_beacon, as well as fixing
a memory leak: the beacon skb is leaked when configuring it
to the hardware fails.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: disable IBSS beacon before join
Johannes Berg [Tue, 10 Feb 2009 20:25:38 +0000 (21:25 +0100)] 
mac80211: disable IBSS beacon before join

Before we have a probe response frame (which is used as the
beacon too) there's no need to ask drivers to beacon, they
will not get a beacon anyway.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agozd1211rw: do not ratelimit no-ops
Johannes Berg [Tue, 10 Feb 2009 20:25:37 +0000 (21:25 +0100)] 
zd1211rw: do not ratelimit no-ops

It is rather confusing to see this in the log:
[  695.606877] __ratelimit: 40 callbacks suppressed
[  700.726878] __ratelimit: 40 callbacks suppressed

without ever seeing any actual message. This is because
zd1211rw doesn't compile out the net_ratelimit() call
properly if debugging is not enabled.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: use ps-poll when dynamic power save mode is disabled
Kalle Valo [Tue, 10 Feb 2009 15:09:31 +0000 (17:09 +0200)] 
mac80211: use ps-poll when dynamic power save mode is disabled

When a directed tim bit is set, mac80211 currently disables power save
ands sends a null frame to the AP. But if dynamic power save is
disabled, mac80211 will not enable power save ever gain. Fix this by
adding ps-poll functionality to mac80211. When a directed tim bit is
set, mac80211 sends a ps-poll frame to the AP and checks for the more
data bit in the returned data frames.

Using ps-poll is slower than waking up with null frame, but it's saves more
power in cases where the traffic is low. Userspace can control if either
ps-poll or null wakeup method is used by enabling and disabling dynamic
power save.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: remove multicast check from check_tim()
Kalle Valo [Tue, 10 Feb 2009 15:09:24 +0000 (17:09 +0200)] 
mac80211: remove multicast check from check_tim()

Currently mac80211 checks for the multicast tim bit from beacons,
disables power save and sends a null frame if the bit is set. This was
added to support ath9k. But this is a bit controversial because the AP will
send multicast frames immediately after the beacon and the time constraints
are really high. Relying mac80211 to be fast enough here might not be
reliable in all situations. And there's no need to send a null frame, AP
will send the frames immediately after the dtim beacon no matter what.

Also if dynamic power save is disabled (iwconfig wlan0 power timeout 0)
currently mac80211 disables power save whenever the multicast bit is set
but it's never enabled again after receiving the first multicast/broadcast
frame.

The current implementation is not usable on p54/stlc45xx and the
easiest way to fix this is to remove the multicast tim bit check
altogether. Handling multicast tim bit in host is rare, most of the
designs do this in firmware/hardware, so it's better not to have it in
mac80211. It's a lot better to do this in firmware/hardware, or if
that's not possible it could be done in the driver.

Also renamed the function to ieee80211_check_tim() to follow the style
of the file.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: Storage class should be before const qualifier
Tobias Klauser [Mon, 9 Feb 2009 22:06:53 +0000 (23:06 +0100)] 
orinoco: Storage class should be before const qualifier

The C99 specification states in section 6.11.5:

The placement of a storage-class specifier other than at the beginning
of the declaration specifiers in a declaration is an obsolescent
feature.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath5k: Storage class should be before const qualifier
Tobias Klauser [Mon, 9 Feb 2009 22:05:40 +0000 (23:05 +0100)] 
ath5k: Storage class should be before const qualifier

The C99 specification states in section 6.11.5:

The placement of a storage-class specifier other than at the beginning
of the declaration specifiers in a declaration is an obsolescent
feature.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Acked-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Remove all the useless ah_ variable prefixes
Sujith [Mon, 9 Feb 2009 07:57:26 +0000 (13:27 +0530)] 
ath9k: Remove all the useless ah_ variable prefixes

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Cleanup EEPROM operations
Sujith [Mon, 9 Feb 2009 07:57:24 +0000 (13:27 +0530)] 
ath9k: Cleanup EEPROM operations

This patch removes the various function pointer
assignments and unifies them in a single ops structure.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Add callbacks hooks for EEPROM operations
Sujith [Mon, 9 Feb 2009 07:57:15 +0000 (13:27 +0530)] 
ath9k: Add callbacks hooks for EEPROM operations

This is preparatory work for removing the individual
function pointer assignments in eeprom.c

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Merge ath_hal and ath_hal_5416 structures
Sujith [Mon, 9 Feb 2009 07:57:12 +0000 (13:27 +0530)] 
ath9k: Merge ath_hal and ath_hal_5416 structures

Finally, merge these structures and have a single
HW specific data structure.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Remove duplicate variables
Sujith [Mon, 9 Feb 2009 07:57:10 +0000 (13:27 +0530)] 
ath9k: Remove duplicate variables

A few variables (bssid, bssidmask, curaid) were duplicated in
struct ath_softc and in ath_hal, remove them.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Move regulatory information to a separate structure
Sujith [Mon, 9 Feb 2009 07:57:08 +0000 (13:27 +0530)] 
ath9k: Move regulatory information to a separate structure

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Store HW version information in a separate structure
Sujith [Mon, 9 Feb 2009 07:57:06 +0000 (13:27 +0530)] 
ath9k: Store HW version information in a separate structure

This patch moves all the HW version/revision specific
information into a separate structure.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Remove all the sc_ prefixes
Sujith [Mon, 9 Feb 2009 07:57:03 +0000 (13:27 +0530)] 
ath9k: Remove all the sc_ prefixes

This patch removes the useless sc_ prefixes for all variables.
Also, refer to interfaces as VIFs and not as VAPs anymore.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Convert ANI channel to a pointer
Sujith [Mon, 9 Feb 2009 07:59:49 +0000 (13:29 +0530)] 
ath9k: Convert ANI channel to a pointer

This patch converts the ANI channel reference to a pointer,
this facilitates moving struct ar5416AniState to ani.h

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Header file cleanup
Sujith [Mon, 9 Feb 2009 07:56:54 +0000 (13:26 +0530)] 
ath9k: Header file cleanup

Split the core header files into manageable pieces.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath5k: Don't call reset on config_interface
Nick Kossifidis [Mon, 9 Feb 2009 04:17:45 +0000 (06:17 +0200)] 
ath5k: Don't call reset on config_interface

 * We call reset too often and this can result various PHY problems.
  On config_interface we don't need to reset the whole device.

  TODO: Create a function hw_fast_reset that only resets the PCU
  (tx/rx stuff) and not the whole device so that we can use this for
  stuck beacons etc.

Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath5k: Disable BMISS interrupts
Nick Kossifidis [Mon, 9 Feb 2009 04:15:42 +0000 (06:15 +0200)] 
ath5k: Disable BMISS interrupts

 * Don't enable BMISS interrupts as we don't handle them yet

Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath5k: Update reset code
Nick Kossifidis [Mon, 9 Feb 2009 04:12:58 +0000 (06:12 +0200)] 
ath5k: Update reset code

 * Update reset and sync with HALs

 * Clean up eeprom settings and tweaking of initvals and
   put them on separate functions

 * Set/Restore 32KHz ref clk operation

 * Add some more documentation

 TODO: Spur mitigation, tpc, half/quarter rate, compression etc

 v2: Address comments from Bob and Felix and fix RSSI threshold bug
 introduced on the first version of the patch

Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath5k: Update initvals
Nick Kossifidis [Mon, 9 Feb 2009 04:08:51 +0000 (06:08 +0200)] 
ath5k: Update initvals

 * Update initvals to match legacy and Sam's HAL

Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath5k: Update RF Buffer handling
Nick Kossifidis [Mon, 9 Feb 2009 04:06:34 +0000 (06:06 +0200)] 
ath5k: Update RF Buffer handling

 * Use the new way to modify rf buffer and put some rf buffer
   documentation on rfbufer.h

 * Merge all rf regs functions to one

 * Sync with legacy HAL and Sam's HAL

 * Set gain_F settings so that gain_F optimization engine works
   on RF5111/RF5112 (note that both HALs only use step 0 for RF5111
   and they don't use gain_F optimization for this chip, code is
   there but is never used)

Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath5k: Update gain_F calibration code and add documentation
Nick Kossifidis [Mon, 9 Feb 2009 04:03:41 +0000 (06:03 +0200)] 
ath5k: Update gain_F calibration code and add documentation

 * Update and cleanup rf gain optimization code

 * Add comments and refferences to docs and use sane function names

 * Use only step index on ath5k_gain, no need to have a pointer to
   the current step since we can determine te step from it's index,
   this also allows us to put all other structs on rfgain.h and cleanup
   ath5k.h a little

 * No need for ah_rfgain variable, we use ah_gain.g_state for everything

 * Tested on RF2112B chip but gain_F calibration is not yet done
   (we will finish this on the next patch where we'll rewrite rf-buffer
   handling)

 * Use initial rf gain settings for 2316 and 2317 SoCs introduced on a previous patch

 It seems big but it's mostly cleanup, very few functional changes have been made on phy.c

Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath5k: PHY code cleanup
Nick Kossifidis [Mon, 9 Feb 2009 04:00:34 +0000 (06:00 +0200)] 
ath5k: PHY code cleanup

 * Clean up initial rf buffer settings (new file rfbufer.h) and introduce a
   new way to access specific rf registers (will use it later)

 * Clean up initial rf gain settings by moving them on a new file (rfgain.h)
   so we can later work on gain optimization functions

 * Update initial rf buffer settings and initial rf gain settings from HALs.
   This breaks things for now because our current dumps come from pre-configured
   rf buffer (regdumps already had the needed values set from binary HAL).

Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: Remove TSF atomic requirement from the documentation
Alina Friedrichsen [Thu, 5 Feb 2009 16:58:34 +0000 (17:58 +0100)] 
mac80211: Remove TSF atomic requirement from the documentation

The atomic requirement for the TSF callbacks
is outdated. get_tsf() is only called by
ieee80211_rx_bss_info() which is indirectly
called by the work queue ieee80211_sta_work().
In the same context are called several other
non-atomic functions, too.
And the atomic requirement causes problems
for drivers of USB wifi cards.

Signed-off-by: Alina Friedrichsen <x-alina@gmx.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: Fix the wrong WARN_ON message appearing on enabling power save.
Vivek Natarajan [Thu, 5 Feb 2009 14:35:15 +0000 (20:05 +0530)] 
mac80211: Fix the wrong WARN_ON message appearing on enabling power save.

This issue happens only when we are associated with a 11n AP and power save
is enabled. In the function 'ieee80211_master_start_xmit', ps_disable_work
is queued where wake_queues is called. But before this work is executed,
we check if the queues are stopped in _ieee80211_tx and return TX_AGAIN to
ieee8011_tx which leads to the warning message.
This patch fixes this erroneous case.

Signed-off-by: Vivek Natarajan <vnatarajan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: hermes doesn't need to be a separate module
David Kilroy [Wed, 4 Feb 2009 23:05:58 +0000 (23:05 +0000)] 
orinoco: hermes doesn't need to be a separate module

Just compile it into the orinoco module. If we merge USB support, the
module can then be split as appropriate.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: hermes_dld does not need to be a module
David Kilroy [Wed, 4 Feb 2009 23:05:57 +0000 (23:05 +0000)] 
orinoco: hermes_dld does not need to be a module

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: Move WEXT handlers into a separate file
David Kilroy [Wed, 4 Feb 2009 23:05:56 +0000 (23:05 +0000)] 
orinoco: Move WEXT handlers into a separate file

No functional change.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: Move hardware functions into separate file
David Kilroy [Wed, 4 Feb 2009 23:05:55 +0000 (23:05 +0000)] 
orinoco: Move hardware functions into separate file

No functional change.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: Add hardware function to set multicast mode
David Kilroy [Wed, 4 Feb 2009 23:05:54 +0000 (23:05 +0000)] 
orinoco: Add hardware function to set multicast mode

No functional change.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: Use accessor functions for bitrate tables
David Kilroy [Wed, 4 Feb 2009 23:05:53 +0000 (23:05 +0000)] 
orinoco: Use accessor functions for bitrate tables

... when used by the WEXT ioctl functions. This will allow us to
separate the card specific stuff from the WEXT code.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: Move firmware handling into a separate file
David Kilroy [Wed, 4 Feb 2009 23:05:52 +0000 (23:05 +0000)] 
orinoco: Move firmware handling into a separate file

No functional change.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: Move MIC helpers into new file
David Kilroy [Wed, 4 Feb 2009 23:05:51 +0000 (23:05 +0000)] 
orinoco: Move MIC helpers into new file

No functional change.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: Move scan helpers to a separate file
David Kilroy [Wed, 4 Feb 2009 23:05:50 +0000 (23:05 +0000)] 
orinoco: Move scan helpers to a separate file

No functional change.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: use orinoco_private instead of net_device in scan helper
David Kilroy [Wed, 4 Feb 2009 23:05:49 +0000 (23:05 +0000)] 
orinoco: use orinoco_private instead of net_device in scan helper

This makes the interface to the scan helpers consistent, so we can split
them out.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: Rename orinoco.c
David Kilroy [Wed, 4 Feb 2009 23:05:48 +0000 (23:05 +0000)] 
orinoco: Rename orinoco.c

So that we can split up the file and still produce a module named
orinoco.o.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: Fix interesting checkpatch errors
David Kilroy [Wed, 4 Feb 2009 23:05:47 +0000 (23:05 +0000)] 
orinoco: Fix interesting checkpatch errors

ERROR: "foo * bar" should be "foo *bar"
ERROR: do not initialise statics to 0 or NULL
WARNING: printk() should include KERN_ facility level
WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: keep line length below 80 characters
David Kilroy [Wed, 4 Feb 2009 23:05:46 +0000 (23:05 +0000)] 
orinoco: keep line length below 80 characters

Remove most checkpatch warnings of the type
WARNING: line over 80 characters

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: remove unnecessary braces
David Kilroy [Wed, 4 Feb 2009 23:05:45 +0000 (23:05 +0000)] 
orinoco: remove unnecessary braces

Remove the following checkpatch warnings

WARNING: braces {} are not necessary for any arm of this statement
WARNING: braces {} are not necessary for single statement blocks

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: spaces in parenthesised expressions
David Kilroy [Wed, 4 Feb 2009 23:05:44 +0000 (23:05 +0000)] 
orinoco: spaces in parenthesised expressions

Remove checkpatch warnings of the following type:

ERROR: space prohibited after that open parenthesis '('
ERROR: space prohibited before that close parenthesis ')'
ERROR: space prohibited after that '!' (ctx:BxW)
ERROR: space required before the open parenthesis '('
ERROR: space required before the open brace '{'

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoorinoco: address leading and trailing whitespace
David Kilroy [Wed, 4 Feb 2009 23:05:43 +0000 (23:05 +0000)] 
orinoco: address leading and trailing whitespace

Remove the following checkpatch errors from orinoco.c

ERROR: trailing whitespace
ERROR: code indent should use tabs where possible
WARNING: suspect code indent for conditional statements

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agob43: Add parts of LP-PHY TX power control
Michael Buesch [Wed, 4 Feb 2009 18:55:22 +0000 (19:55 +0100)] 
b43: Add parts of LP-PHY TX power control

This adds the initial parts of the LP-PHY TX power control.
This also adds helper functions for bulk access of LP tables.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: Free current bss information in few places where we don't need it any more
Vasanthakumar Thiagarajan [Wed, 4 Feb 2009 12:58:48 +0000 (18:28 +0530)] 
mac80211: Free current bss information in few places where we don't need it any more

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Add retry counters to rate control debug file
Sujith [Wed, 4 Feb 2009 02:40:26 +0000 (08:10 +0530)] 
ath9k: Add retry counters to rate control debug file

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Handle mac80211's FIF_CONTROL flag properly
Sujith [Wed, 4 Feb 2009 02:40:22 +0000 (08:10 +0530)] 
ath9k: Handle mac80211's FIF_CONTROL flag properly

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Remove all the redundant internal buffer types
Sujith [Wed, 4 Feb 2009 02:40:19 +0000 (08:10 +0530)] 
ath9k: Remove all the redundant internal buffer types

Use mac80211's primitives for identifying the frame type,
and cleanup the driver-specific macros.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: Lock mac80211 callbacks with a mutex
Sujith [Wed, 4 Feb 2009 02:40:07 +0000 (08:10 +0530)] 
ath9k: Lock mac80211 callbacks with a mutex

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoixgbe: Removing the unused PAGE_USE_COUNT() macro.
Breno Leitão [Wed, 11 Feb 2009 01:24:48 +0000 (17:24 -0800)] 
ixgbe: Removing the unused PAGE_USE_COUNT() macro.

Removing the unused PAGE_USE_COUNT() macro. Also removing the unused
pages variable at ixgbe_configure_rx() function.

Signed-off-by: Breno Leitão <leitao@linux.vnet.ibm.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoe1000e: Serdes - attempt autoneg when link restored.
dave graham [Tue, 10 Feb 2009 12:52:28 +0000 (12:52 +0000)] 
e1000e: Serdes - attempt autoneg when link restored.

This patch addresses an issue where we did not restart auto-negotiation on
serdes links when the link partner was disabled and re-enabled. It includes
reworking the serdes link detect mechanism to be a state machine for
82571 and 82572 parts only.

Signed-off-by: dave graham <david.graham@intel.com>
Acked-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoe1000e: remove RXSEQ link monitoring for serdes
dave graham [Tue, 10 Feb 2009 12:52:05 +0000 (12:52 +0000)] 
e1000e: remove RXSEQ link monitoring for serdes

RXSEQ interrupts were used to force link state interrogation of serdes
links, as the Si was not guaranteed to report LSC interrupts when the
link changed state. On some bladeservers this resulted in false link up
reports if no link partner was connected. The RXSEQ treatment is
not necessary, as the link can be monitored from the watchdog timer, and
the false link indications cease.

Signed-off-by: dave graham <david.graham@intel.com>
Acked-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoe1000e: Disable dynamic clock gating for 82571 per si errata.
dave graham [Tue, 10 Feb 2009 12:51:41 +0000 (12:51 +0000)] 
e1000e: Disable dynamic clock gating for 82571 per si errata.

82571 and 82572 Errata #13 documents that the Si feature DMA Dynamic
Clock Gating should be disabled, and identifies the workaround of
disabling the feature by EEPROM setting. EEPROM versions that do not
include the recommended workaround have been found in the field, and so
some customers remain at risk. Because the feature DMA Dynamic clock
Gating can be disabled by directly setting the appropriate bit in the
E1000_CTRL_EXT register, this patch overrides the EEPROM setting, and
force-disables the feature.

Signed-off-by: dave graham <david.graham@intel.com>
Acked-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoe1000e: add aer support
Jesse Brandeburg [Tue, 10 Feb 2009 12:51:20 +0000 (12:51 +0000)] 
e1000e: add aer support

most if not all of the devices supported by e1000e support
AER (Advanced Error Reporting) so we attempt to register
with the OS that we know how to reset ourselves after
a fatal error.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonet: Move skbuff symbol exports after each symbol's definition.
David S. Miller [Tue, 10 Feb 2009 10:09:24 +0000 (02:09 -0800)] 
net: Move skbuff symbol exports after each symbol's definition.

net/core/skbuff.c is a hodge-podge of symbol export placement.
Some of the exports are right after the definition of the
symbol being exported, others are clumped together into a big
group at the end of the file.

Make things consistent.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoirda: Use __netdev_alloc_skb() instead of __dev_alloc_skb().
David S. Miller [Tue, 10 Feb 2009 09:54:22 +0000 (01:54 -0800)] 
irda: Use __netdev_alloc_skb() instead of __dev_alloc_skb().

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetdev: Use __netdev_alloc_skb() instead of __dev_alloc_skb().
David S. Miller [Tue, 10 Feb 2009 09:56:45 +0000 (01:56 -0800)] 
netdev: Use __netdev_alloc_skb() instead of __dev_alloc_skb().

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agopkt_sched: sch_multiq: Change errno on non-multiqueue devices use.
Jarek Poplawski [Tue, 10 Feb 2009 08:11:21 +0000 (00:11 -0800)] 
pkt_sched: sch_multiq: Change errno on non-multiqueue devices use.

Current "RTNETLINK answers: Invalid argument" warning, while trying to
add multiq qdisc to non-multiqueue device, isn't very helpful and some
of these devs can be changed btw., so let's use a better errno.

With feedback from Stephen Hemminger <shemminger@vyatta.com>

Reported-by: Badalian Vyacheslav <slavon@bigtelecom.ru>
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonet: Kill skbuff macros from the stone ages.
David S. Miller [Tue, 10 Feb 2009 07:45:29 +0000 (23:45 -0800)] 
net: Kill skbuff macros from the stone ages.

This kills of HAVE_ALLOC_SKB and HAVE_ALIGNABLE_SKB.

Nothing in-tree uses them and nothing in-tree has used them
since 2.0.x times.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
David S. Miller [Tue, 10 Feb 2009 07:30:44 +0000 (23:30 -0800)] 
Merge branch 'master' of git://git./linux/kernel/git/linville/wireless-next-2.6

15 years agoenic: Add api for link down count and to get firmware notification status.
Scott Feldman [Tue, 10 Feb 2009 07:25:33 +0000 (23:25 -0800)] 
enic: Add api for link down count and to get firmware notification status.

Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoenic: bug fix: tx_timeout reset path fix-ups
Scott Feldman [Tue, 10 Feb 2009 07:24:24 +0000 (23:24 -0800)] 
enic: bug fix: tx_timeout reset path fix-ups

tx_timeout reset path needs to re-init dev and re-apply nic cfg to
enable vlan stripping.

Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoenic: record all bad FCS errs as frame errors
Scott Feldman [Tue, 10 Feb 2009 07:24:08 +0000 (23:24 -0800)] 
enic: record all bad FCS errs as frame errors

Report all bad FCS errs as frames errs.  This includes frames with bad
FCS on wire detected by MAC and frames which may be truncated due to
ingress FIFO overruns.  No longer print a driver msg on bad FCS err.

Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoenic: bug fix: return notify intr credits
Scott Feldman [Tue, 10 Feb 2009 07:23:50 +0000 (23:23 -0800)] 
enic: bug fix: return notify intr credits

Return notify intr credits after notify intr from firmware.  This is
especially important for legacy PCI intr mode, where not returning
credits would cause PBA to remain asserted which would get us right
back into the ISR.

Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Tue, 10 Feb 2009 07:22:21 +0000 (23:22 -0800)] 
Merge branch 'master' of /linux/kernel/git/davem/net-2.6

Conflicts:
drivers/net/gianfar.c

15 years agoppp: section fixes re netns
Alexey Dobriyan [Tue, 10 Feb 2009 02:05:16 +0000 (18:05 -0800)] 
ppp: section fixes re netns

PPP is modular code so no initdata on netns hooks.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agobridge: Fix LRO crash with tun
Herbert Xu [Mon, 9 Feb 2009 23:07:18 +0000 (15:07 -0800)] 
bridge: Fix LRO crash with tun

> Kernel BUG at drivers/net/tun.c:444
> invalid opcode: 0000 [1] SMP
> last sysfs file: /class/net/lo/ifindex
> CPU 0
> Modules linked in: tun ipt_MASQUERADE iptable_nat ip_nat xt_state ip_conntrack
> nfnetlink ipt_REJECT xt_tcpudp iptable_filter d
> Pid: 6912, comm: qemu-kvm Tainted: G      2.6.18-128.el5 #1
> RIP: 0010:[<ffffffff886f57b0>]  [<ffffffff886f57b0>]
> :tun:tun_chr_readv+0x2b1/0x3a6
> RSP: 0018:ffff8102202c5e48  EFLAGS: 00010246
> RAX: 0000000000000000 RBX: ffff8102202c5e98 RCX: 0000000004010000
> RDX: ffff810227063680 RSI: ffff8102202c5e9e RDI: ffff8102202c5e92
> RBP: 0000000000010ff6 R08: 0000000000000000 R09: 0000000000000001
> R10: ffff8102202c5e94 R11: 0000000000000202 R12: ffff8102275357c0
> R13: ffff81022755e500 R14: 0000000000000000 R15: ffff8102202c5ef8
> FS:  00002ae4398db980(0000) GS:ffffffff803ac000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> CR2: 00002ae4ab514000 CR3: 0000000221344000 CR4: 00000000000026e0
> Process qemu-kvm (pid: 6912, threadinfo ffff8102202c4000, task
ffff81022e58d820)
> Stack:  00000000498735cb ffff810229d1a3c0 0000000000000000 ffff81022e58d820
>  ffffffff8008a461 ffff81022755e528 ffff81022755e528 ffffffff8009f925
>  000005ea05ea0000 ffff8102209d0000 00001051143e1600 ffffffff8003c00e
> Call Trace:
>  [<ffffffff8008a461>] default_wake_function+0x0/0xe
>  [<ffffffff8009f925>] enqueue_hrtimer+0x55/0x70
>  [<ffffffff8003c00e>] hrtimer_start+0xbc/0xce
>  [<ffffffff886f58bf>] :tun:tun_chr_read+0x1a/0x1f
>  [<ffffffff8000b3f3>] vfs_read+0xcb/0x171
>  [<ffffffff800117d4>] sys_read+0x45/0x6e
>  [<ffffffff8005d116>] system_call+0x7e/0x83
>
>
> Code: 0f 0b 68 40 62 6f 88 c2 bc 01 f6 42 0a 08 74 0c 80 4c 24 41
> RIP  [<ffffffff886f57b0>] :tun:tun_chr_readv+0x2b1/0x3a6
>  RSP <ffff8102202c5e48>
>  <0>Kernel panic - not syncing: Fatal exception

This crashed when an LRO packet generated by bnx2x reached a
tun device through the bridge.  We're supposed to drop it at
the bridge.  However, because the check was placed in br_forward
instead of __br_forward, it's only effective if we are sending
the packet through a single port.

This patch fixes it by moving the check into __br_forward.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoIPv6: fix to set device name when new IPv6 over IPv6 tunnel device is created.
Noriaki TAKAMIYA [Mon, 9 Feb 2009 23:01:19 +0000 (15:01 -0800)] 
IPv6: fix to set device name when new IPv6 over IPv6 tunnel device is created.

When the user creates IPv6 over IPv6 tunnel, the device name created
by the kernel isn't set to t->parm.name, which is referred as the
result of ioctl().

Signed-off-by: Noriaki TAKAMIYA <takamiya@po.ntts.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agogianfar: Fix boot hangs while bringing up gianfar ethernet
Jarek Poplawski [Mon, 9 Feb 2009 22:59:30 +0000 (14:59 -0800)] 
gianfar: Fix boot hangs while bringing up gianfar ethernet

Ira Snyder found that commit 8c7396aebb68994c0519e438eecdf4d5fa9c7844
"gianfar: Merge Tx and Rx interrupt for scheduling clean up ring" can
cause hangs. It's because there was removed clearing of interrupts in
gfar_schedule_cleanup() (which is called by an interrupt handler) in
case when netif scheduling has been disabled. This patch brings back
this action and a comment.

Reported-by: Ira Snyder <iws@ovro.caltech.edu>
Reported-by: Peter Korsgaard <jacmet@sunsite.dk>
Bisected-by: Ira Snyder <iws@ovro.caltech.edu>
Tested-by: Peter Korsgaard <jacmet@sunsite.dk>
Tested-by: Ira Snyder <iws@ovro.caltech.edu>
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetfilter: xt_sctp: sctp chunk mapping doesn't work
Qu Haoran [Mon, 9 Feb 2009 22:34:56 +0000 (14:34 -0800)] 
netfilter: xt_sctp: sctp chunk mapping doesn't work

When user tries to map all chunks given in argument, kernel
works on a copy of the chunkmap, but at the end it doesn't
check the copy, but the orginal one.

Signed-off-by: Qu Haoran <haoran.qu@6wind.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetfilter: ctnetlink: fix echo if not subscribed to any multicast group
Pablo Neira Ayuso [Mon, 9 Feb 2009 22:34:26 +0000 (14:34 -0800)] 
netfilter: ctnetlink: fix echo if not subscribed to any multicast group

This patch fixes echoing if the socket that has sent the request to
create/update/delete an entry is not subscribed to any multicast
group. With the current code, ctnetlink would not send the echo
message via unicast as nfnetlink_send() would be skip.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetfilter: ctnetlink: allow changing NAT sequence adjustment in creation
Pablo Neira Ayuso [Mon, 9 Feb 2009 22:33:57 +0000 (14:33 -0800)] 
netfilter: ctnetlink: allow changing NAT sequence adjustment in creation

This patch fixes an inconsistency in the current ctnetlink code
since NAT sequence adjustment bit can only be updated but not set
in the conntrack entry creation.

This patch is used by conntrackd to successfully recover newly
created entries that represent connections with helpers and NAT
payload mangling.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetfilter: nf_conntrack_ipv6: don't track ICMPv6 negotiation message
Eric Leblond [Mon, 9 Feb 2009 22:33:20 +0000 (14:33 -0800)] 
netfilter: nf_conntrack_ipv6: don't track ICMPv6 negotiation message

This patch removes connection tracking handling for ICMPv6 messages
related to Stateless Address Autoconfiguration, MLD, and MLDv2. They
can not be tracked because they are massively using multicast (on
pre-defined address). But they are not invalid and should not be
detected as such.

Signed-off-by: Eric Leblond <eric@inl.fr>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>