linux-2.6
16 years agoIPV4: route use jhash3
Stephen Hemminger [Thu, 10 Apr 2008 08:54:01 +0000 (01:54 -0700)] 
IPV4: route use jhash3

Since route hash is a triple, use jhash_3words rather doing the mixing
directly. This should be as fast and give better distribution.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoIPV4: route inline changes
Stephen Hemminger [Thu, 10 Apr 2008 08:52:09 +0000 (01:52 -0700)] 
IPV4: route inline changes

Don't mark functions that are large as inline, let compiler decide.
Also, use inline rather than __inline__.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosocket: sk_filter deinline
Stephen Hemminger [Thu, 10 Apr 2008 08:43:09 +0000 (01:43 -0700)] 
socket: sk_filter deinline

The sk_filter function is too big to be inlined. This saves 2296 bytes
of text on allyesconfig.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosocket: sk_filter minor cleanups
Stephen Hemminger [Thu, 10 Apr 2008 08:33:47 +0000 (01:33 -0700)] 
socket: sk_filter minor cleanups

Some minor style cleanups:
  * Move __KERNEL__ definitions to one place in filter.h
  * Use const for sk_filter_len
  * Line wrapping
  * Put EXPORT_SYMBOL next to function definition

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agomac80211: fix key debugfs default_key link
Johannes Berg [Tue, 8 Apr 2008 20:46:36 +0000 (16:46 -0400)] 
mac80211: fix key debugfs default_key link

The default_key symlink points to the key index rather than
they key counter, fix it.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agodrivers/net/wireless/p54/net2280.h: silence checkpatch.pl
Christian Lamparter [Tue, 8 Apr 2008 19:40:53 +0000 (15:40 -0400)] 
drivers/net/wireless/p54/net2280.h: silence checkpatch.pl

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agop54: move to separate directory
Christian Lamparter [Tue, 8 Apr 2008 19:38:00 +0000 (15:38 -0400)] 
p54: move to separate directory

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: rename files
Johannes Berg [Tue, 8 Apr 2008 19:14:40 +0000 (15:14 -0400)] 
mac80211: rename files

This patch renames all mac80211 files (except ieee80211_i.h) to get rid
of the useless ieee80211_ prefix.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: fix key vs. sta locking problems
Johannes Berg [Tue, 8 Apr 2008 15:56:52 +0000 (17:56 +0200)] 
mac80211: fix key vs. sta locking problems

Up to now, key manipulation is supposed to run under RTNL to
avoid concurrent manipulations and also allow the set_key()
hardware callback to sleep. This is not feasible because STA
structs are rcu-protected and thus a lot of operations there
cannot take the RTNL. Also, key references are rcu-protected
so we cannot do things atomically.

This patch changes key locking completely:
 * key operations are now atomic
 * hardware crypto offload is enabled and disabled from
   a workqueue, due to that key freeing is also delayed
 * debugfs code is also run from a workqueue
 * keys reference STAs (and vice versa!) so during STA
   unlink the STAs key reference is removed but not the
   keys STA reference, to avoid races key todo work is
   run before STA destruction.
 * fewer STA operations now need the RTNL which was
   required due to key operations

This fixes the locking problems lockdep pointed out and also
makes things more light-weight because the rtnl isn't required
as much.

Note that the key todo lock/key mutex are global locks, this
is not required, of course, they could be per-hardware instead.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: fix sta-info pinning
Johannes Berg [Tue, 8 Apr 2008 11:08:20 +0000 (13:08 +0200)] 
mac80211: fix sta-info pinning

When a STA is supposed to be unlinked but is pinned, it still needs
to be unlinked from all structures. Only at the end of the unlink
process should we check for pin status and invalidate the callers
reference if it is pinned. Move the pin status check down.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: fix defined but not used
Jiri Slaby [Mon, 7 Apr 2008 19:53:49 +0000 (21:53 +0200)] 
mac80211: fix defined but not used

These two symbols are used only in ifdeffed function. Move them to that
section too.
net/mac80211/sta_info.c:387: warning: `__sta_info_pin' defined but not used
net/mac80211/sta_info.c:397: warning: `__sta_info_unpin' defined but not used

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Cc: Michael Wu <flamingice@sourmilk.net>
Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: Jiri Benc <jbenc@suse.cz>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoadm8211: remove commented-out code
Pavel Machek [Mon, 7 Apr 2008 19:08:55 +0000 (21:08 +0200)] 
adm8211: remove commented-out code

Remove some commented-out code from adm8211.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: BA session debug prints changes
Ron Rindjunsky [Mon, 7 Apr 2008 17:16:56 +0000 (10:16 -0700)] 
mac80211: BA session debug prints changes

This patch contains next issues:
1 - prevents "stop BA session" multiple warnings
2 - adds debug print to stop Rx BA session flow
3 - adds EOL in one debug print

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agob43: use b43_is_mode() call
Michael Buesch [Sat, 5 Apr 2008 13:19:36 +0000 (15:19 +0200)] 
b43: use b43_is_mode() call

We must use the b43_is_mode() call to check the current interface
operation mode.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agob43: Fix PHY TX control words in SHM
Michael Buesch [Sat, 5 Apr 2008 13:05:00 +0000 (15:05 +0200)] 
b43: Fix PHY TX control words in SHM

This fixes the initialization of the PHY TX control words in
shared memory. These control words are used for management frames
like beacons.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agob43: Fix beacon BH update
Michael Buesch [Sat, 5 Apr 2008 13:02:09 +0000 (15:02 +0200)] 
b43: Fix beacon BH update

This fixes beacon updating in the bottomhalf.
In case the device is busy, we will defer to later in the IRQ handler.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: notify mac from low level driver (iwlwifi)
Mohamed Abbas [Fri, 4 Apr 2008 23:59:58 +0000 (16:59 -0700)] 
mac80211: notify mac from low level driver (iwlwifi)

Add new API to MAC80211 to allow low level driver to
notify MAC with driver status.

Signed-off-by: Mohamed Abbas <mabbas@linux.intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: fix ieee80211_ioctl_giwrate
Johannes Berg [Fri, 4 Apr 2008 21:40:35 +0000 (23:40 +0200)] 
mac80211: fix ieee80211_ioctl_giwrate

The ieee80211_ioctl_giwrate() ioctl handler doesn't rcu_read_lock()
its access to the sta table, fix it.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: make debugfs files root-only
Johannes Berg [Fri, 4 Apr 2008 21:33:37 +0000 (23:33 +0200)] 
mac80211: make debugfs files root-only

Unfortunately, debugfs can be made to access invalid memory by
open()ing a file and then waiting until the corresponding debugfs
file has been removed (and, probably, the underlying object.)

That could be exploited by any user if the user is able to open
debugfs files and can cause networking devices, STA entries or
similar to disappear which is quite easy to do.

Hence, all debugfs files should be root-only.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agob43: Beaconing fixes
Michael Buesch [Fri, 4 Apr 2008 19:40:06 +0000 (21:40 +0200)] 
b43: Beaconing fixes

These are some beaconing related fixes. Basically it prevents
the card from triggering the beacon IRQ over and over again.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoiwlwifi: honour regulatory restrictions in scan code
Johannes Berg [Fri, 4 Apr 2008 08:41:56 +0000 (10:41 +0200)] 
iwlwifi: honour regulatory restrictions in scan code

When doing firmware-assisted scanning, iwlwifi drivers do not
honour the regulatory control code that might disable channels
that are enabled in the EEPROM, for example when the user is
visiting another country and adjusted the regulatory domain
accordingly. This patch fixes that.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Acked-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: notify upper layers after lower
Reinette Chatre [Thu, 3 Apr 2008 23:08:49 +0000 (16:08 -0700)] 
mac80211: notify upper layers after lower

When drivers receive change notification they may do work that
will enable the changes to take effect. For example, if new association
the device needs to be programmed with this information.
Give the driver chance to make the changes before notifying the
upper layer - thus preventing race condition where upper layer
attempts to utilize state that may not be configured yet.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoiwlwifi: fix rfkill memory error
Mohamed Abbas [Thu, 3 Apr 2008 23:05:24 +0000 (16:05 -0700)] 
iwlwifi: fix rfkill memory error

Do not free reference to device twice. After rfkill registration succeeds
we only need to call rfkill_unregister() and not rfkill_free().
Also add some debugging.

Signed-off-by: Mohamed Abbas <mabbas@linux.intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoiwlwifi: ensure led registration complete as part of initialization
Reinette Chatre [Thu, 3 Apr 2008 23:05:23 +0000 (16:05 -0700)] 
iwlwifi: ensure led registration complete as part of initialization

After the workqueue is notified the LED code may be accessed. Ensure
that LED registration completes completely as part of initialization
before anything waiting on this is notified.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoiwlwifi: use ieee80211_frequency_to_channel
Tomas Winkler [Thu, 3 Apr 2008 23:05:22 +0000 (16:05 -0700)] 
iwlwifi: use ieee80211_frequency_to_channel

This patch replaces ieee80211chan2mhz from radiotap with
ieee80211_frequency_to_channel provided by mac80211

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>
16 years agoiwlwifi: move driver status inliners into iwl-core.h
Tomas Winkler [Thu, 3 Apr 2008 23:05:21 +0000 (16:05 -0700)] 
iwlwifi: move driver status inliners into iwl-core.h

This patch moves inline functions into iwl-core.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>
16 years agoiwlwifi: hw names cleanup
Tomas Winkler [Thu, 3 Apr 2008 23:05:20 +0000 (16:05 -0700)] 
iwlwifi: hw names cleanup

This patch make some cleanup in HW names

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>
16 years agort2x00: Use lib->config_filter() during scheduled packet filter config
Ivo van Doorn [Thu, 3 Apr 2008 22:01:43 +0000 (00:01 +0200)] 
rt2x00: Use lib->config_filter() during scheduled packet filter config

Now rt2x00lib handles the initial configure_filter() command, we can
directly call lib->config_filter() in scheduled context since the
called function will no longer check if anything has changed (which is
now handled in rt2x00lib as well).

This fixes a endless loop with USB drivers where the config_filter
command was scheduled time and time again without sending any command
to the device.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agocfg80211: default to regulatory max power for channel
John W. Linville [Thu, 3 Apr 2008 19:32:54 +0000 (15:32 -0400)] 
cfg80211: default to regulatory max power for channel

If the driver does not specify a maximum power output, default to the
regulatory max.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agob43: Fix TBTT and PU timings
Michael Buesch [Thu, 3 Apr 2008 16:56:19 +0000 (18:56 +0200)] 
b43: Fix TBTT and PU timings

This fixes some timings for pre-TBTT and synthetic PU.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agob43: Add more N-PHY stuff
Michael Buesch [Thu, 3 Apr 2008 16:01:12 +0000 (18:01 +0200)] 
b43: Add more N-PHY stuff

This adds some minor stuff for N-PHY support. Nothing special.
Adds Analog switching and some TODOs for RSSI processing.
Just a patch I had floating around for quite some time now.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: clean up IEEE80211_FC use
Johannes Berg [Thu, 3 Apr 2008 13:17:31 +0000 (15:17 +0200)] 
mac80211: clean up IEEE80211_FC use

Really doesn't need to be defined four times.

Also, while at it, remove a useless macro (IEEE80211_ALIGN32_PAD)
and a function prototype for a function we don't actually have
(ieee80211_set_compression.)

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: fix possible sta-debugfs work lockup
Johannes Berg [Thu, 3 Apr 2008 12:31:05 +0000 (14:31 +0200)] 
mac80211: fix possible sta-debugfs work lockup

Because we queue the sta-debugfs-adding work on our mac80211
workqueue (which needs to be flushed under RTNL) and that work
needs the RTNL, it can currently deadlock, thanks to Reinette
Chatre for pointing out the lockdep warning about this.

This patch fixes it by moving this work to the common kernel
workqueue (using schedule_work) and canceling it as appropriate.

It also fixes a related problem: When a STA is pinned by the
debugfs adding work and sta_info_flush() runs concurrently
it is not guaranteed that all STAs are removed from the driver
before the corresponding interface is removed which may lead
to bugs.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agob43: Use SSB block-I/O to do PIO
Michael Buesch [Wed, 2 Apr 2008 17:58:20 +0000 (19:58 +0200)] 
b43: Use SSB block-I/O to do PIO

This changes the b43-PIO code to use the new SSB block-I/O.
This reduces the overhead by removing lots of function calls, pointer
dereferencing, if-conditionals any byteswapping for each packet data word.

This also fixes a harmless sparse endianness warning.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoiwl4965: use IWLWIFI_LEDS config variable
Reinette Chatre [Wed, 2 Apr 2008 17:50:35 +0000 (10:50 -0700)] 
iwl4965: use IWLWIFI_LEDS config variable

Fix error reported by Miles Lane <miles.lane@gmail.com>

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
CC: Miles Lane <miles.lane@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agossb: Add support for block-I/O
Michael Buesch [Wed, 2 Apr 2008 17:46:56 +0000 (19:46 +0200)] 
ssb: Add support for block-I/O

This adds support for block based I/O to SSB.
This is needed in order to efficiently support PIO data
transfers to the card.
The block-I/O support is only compiled, if it's selected by the
weird driver that needs it. So there's no overhead for sane devices.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agodrivers/net/wireless/iwlwifi/iwl-3945.h: correct CONFIG_IWL4965_LEDS typo
John W. Linville [Wed, 2 Apr 2008 15:35:32 +0000 (11:35 -0400)] 
drivers/net/wireless/iwlwifi/iwl-3945.h: correct CONFIG_IWL4965_LEDS typo

Thakns to Winfried Tilanus <winfried@tilanus.com> for identifying the
problem!

Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agossb: Fix build for non-PCIhost
Michael Buesch [Wed, 2 Apr 2008 15:03:26 +0000 (17:03 +0200)] 
ssb: Fix build for non-PCIhost

This fixes a build error when PCMCIA-host support is built,
but PCI-host support is disabled.
Hell, who on earth would use such a weird configuration. :D

drivers/built-in.o: In function `ssb_attr_sprom_store':
(.text+0x1c4b79): undefined reference to `ssb_devices_freeze'
drivers/built-in.o: In function `ssb_attr_sprom_store':
(.text+0x1c4bb3): undefined reference to `ssb_devices_thaw'
make[1]: *** [.tmp_vmlinux1] Error 1

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agolibertas: remove lbs_get_fwversion()
Holger Schurig [Wed, 2 Apr 2008 16:04:35 +0000 (18:04 +0200)] 
libertas: remove lbs_get_fwversion()

It was used only at one place anyway.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agolibertas: move lbs_update_channel out of assoc.c
Holger Schurig [Wed, 2 Apr 2008 14:52:19 +0000 (16:52 +0200)] 
libertas: move lbs_update_channel out of assoc.c

... as it has nothing to do with pure association

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agolibertas: move association code from scan.c into assoc.c
Holger Schurig [Wed, 2 Apr 2008 14:27:42 +0000 (16:27 +0200)] 
libertas: move association code from scan.c into assoc.c

Besides code moving, I did the following changes:

* made some functions static
* removed some unneeded #include's
* made patch checkpatch.pl clean

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agolibertas: move association code from join.c into scan.c
Holger Schurig [Wed, 2 Apr 2008 14:27:10 +0000 (16:27 +0200)] 
libertas: move association code from join.c into scan.c

Besides code moving, I did the following changes:

* made some functions static
* removed some unneeded #include's
* made patch checkpatch.pl clean

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoiwlwifi/Kconfg: make IWLWIFI_LEDS invisible
John W. Linville [Wed, 2 Apr 2008 16:10:04 +0000 (12:10 -0400)] 
iwlwifi/Kconfg: make IWLWIFI_LEDS invisible

Select IWLWIFI_LEDS automatically when either IWL3945_LEDS or
IWL4965_LEDS is selected.  This avoids potential misconfigurations
which lead to build failures for iwl-led.c.

Cc: Miles Lane <miles.lane@gmail.com>
Cc: reinette.chatre@intel.com
Signed-off-by: John w. Linville <linville@tuxdriver.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoiwlwifi: fix some warnings
Johannes Berg [Tue, 1 Apr 2008 15:51:47 +0000 (17:51 +0200)] 
iwlwifi: fix some warnings

This fixes all kinds of warnings in iwlwifi.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agodrivers/net/wireless/iwlwifi/iwl-debugfs.c: fix another '%llu' warning
John W. Linville [Wed, 2 Apr 2008 00:59:32 +0000 (20:59 -0400)] 
drivers/net/wireless/iwlwifi/iwl-debugfs.c: fix another '%llu' warning

drivers/net/wireless/iwlwifi/iwl-debugfs.c: In function â€˜iwl_dbgfs_stations_read’:
drivers/net/wireless/iwlwifi/iwl-debugfs.c:247: warning: format â€˜%llu’ expects type â€˜long long unsigned int’, but argument 4 has type â€˜u64’

Cc: Reinette Chatre <reinette.chatre@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: add station aid into ieee80211_tx_control
Chr [Tue, 1 Apr 2008 19:45:18 +0000 (21:45 +0200)] 
mac80211: add station aid into ieee80211_tx_control

This patch is necessary for the upcoming Accesspoint patch for p54.

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agowavelan_cs: stop inlining largish static functions
Denys Vlasenko [Tue, 1 Apr 2008 00:56:32 +0000 (02:56 +0200)] 
wavelan_cs: stop inlining largish static functions

Hi John,

Can you please take a look at this patch?

drivers/net/wireless/wavelan_cs.c has unusually large number
of static inline functions - 27.

I looked through them and 20 of them do not seem to warrant inlining.
Some are really big; others call mdelay(1) or busy-wait for a bit
to be set in a hardware register - it's pointless
to optimize such functions for speed.

This patch removes "inline" from these static function
(regardless of number of callsites - gcc nowadays auto-inlines
statics with one callsite).

Size difference for 32bit x86:

   text    data     bss     dec     hex filename
  17020     372       8   17400    43f8 linux-2.6-ALLYES/drivers/net/wireless/wavelan_cs.o
  14032     356       8   14396    383c linux-2.6.inline-ALLYES/drivers/net/wireless/wavelan_cs.o

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
--
vda
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoprism54: set carrier flags correctly
Luis R. Rodriguez [Tue, 1 Apr 2008 19:17:36 +0000 (15:17 -0400)] 
prism54: set carrier flags correctly

> prism54 should set the carrier flags correctly when it thinks the
> link can be used.

Agreed, so sure, this is OK but I rather we turn the carrier on
or off *before* sending an event, like this.

Signed-off-by: Roy Marples <uberlord@gentoo.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@winlab.rutgers.edu>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agossb: Turn suspend/resume upside down
Michael Buesch [Sat, 29 Mar 2008 23:10:50 +0000 (00:10 +0100)] 
ssb: Turn suspend/resume upside down

Turn the SSB bus suspend mechanism upside down.
Instead of deciding by an internal reference count when to suspend/resume,
let the parent bus call us in their suspend/resume routine.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agob43: Add PIO support for PCMCIA devices
Michael Buesch [Sat, 29 Mar 2008 20:01:16 +0000 (21:01 +0100)] 
b43: Add PIO support for PCMCIA devices

This adds PIO support back (D'oh!) for PCMCIA devices.
This is a complete rewrite of the old PIO code. It does actually work
and we get reasonable performance out of it on a modern machine.
On a PowerBook G4 I get a few MBit for TX and a few more for RX.
So it doesn't work as well as DMA (of course), but it's a _lot_ faster
than the old PIO code (only got a few kBit with that).

The limiting factor is the host CPU speed. So it will generate 100%
CPU usage when the network interface is heavily loaded. A voluntary preemption
point in the RX path makes sure Desktop Latency isn't hurt.

PIO is needed for 16bit PCMCIA devices, as we really don't want to poke with
the braindead DMA mechanisms on PCMCIA sockets. Additionally, not all
PCMCIA sockets do actually support DMA in 16bit mode (mine doesn't).

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoiwlwifi: Eliminate association from beacon
Tomas Winkler [Fri, 28 Mar 2008 23:33:35 +0000 (16:33 -0700)] 
iwlwifi: Eliminate association from beacon

This patch removes association from beacon
using bss_info_change handler for association

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: add association capabilty and timing info into bss_conf
Tomas Winkler [Fri, 28 Mar 2008 23:33:34 +0000 (16:33 -0700)] 
mac80211: add association capabilty and timing info into bss_conf

This patch adds assocation capability, timestamp (tsf) and beacon interval
to bss_conf. This is required for successful assocation of iwlwifi drivers

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoiwlwifi: eliminate conf_ht
Tomas Winkler [Fri, 28 Mar 2008 23:33:33 +0000 (16:33 -0700)] 
iwlwifi: eliminate conf_ht

This patch eliminates the use of conf_ht in iwlwifi driver, replacing it
with bss_info_changed.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: eliminate conf_ht
Tomas Winkler [Fri, 28 Mar 2008 23:33:32 +0000 (16:33 -0700)] 
mac80211: eliminate conf_ht

This patch eliminates the use of conf_ht, replacing it with
bss_info_changed.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agossb-pcmcia: IRQ and DMA related fixes
Michael Buesch [Fri, 28 Mar 2008 09:34:55 +0000 (10:34 +0100)] 
ssb-pcmcia: IRQ and DMA related fixes

Here come some IRQ and DMA related fixes for the ssb PCMCIA-host code.
Not much to say, actually. I think the patch explains itself.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoRevert "mac80211: use a struct for bss->mesh_config"
John W. Linville [Tue, 8 Apr 2008 18:15:46 +0000 (14:15 -0400)] 
Revert "mac80211: use a struct for bss->mesh_config"

This reverts commit 6c4711b4697d93424e4b1f76a9929ba844d714a5.

That patch breaks mesh config comparison between beacons/probe reponses, so
every beacon from a mesh network would be added as a new bss. Since the
comparison has to be performed for every received beacon I believe it is best to
save the mesh config in a format easy to compare, rather than do a bunch of
unaligned accesses to compare field by field.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoMerge branch 'net-2.6.26-isatap-20080403' of git://git.linux-ipv6.org/gitroot/yoshfuj...
David S. Miller [Tue, 8 Apr 2008 09:33:36 +0000 (02:33 -0700)] 
Merge branch 'net-2.6.26-isatap-20080403' of git://git.linux-ipv6.org/gitroot/yoshfuji/linux-2.6-dev

16 years ago[IPV6] MROUTE: Use skb_tail_pointer(skb) instead of skb->tail.
YOSHIFUJI Hideaki [Sat, 5 Apr 2008 13:17:39 +0000 (22:17 +0900)] 
[IPV6] MROUTE: Use skb_tail_pointer(skb) instead of skb->tail.

This bug resulted in compilation error on 64bit machines.
Pointed out by Rami Rosen <roszenrami@gmail.com>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[IPV6]: Comment MRT6_xxx sockopts in include/linux/in6.h.
YOSHIFUJI Hideaki [Thu, 3 Apr 2008 00:22:56 +0000 (09:22 +0900)] 
[IPV6]: Comment MRT6_xxx sockopts in include/linux/in6.h.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[IPV6] MROUTE: Support PIM-SM (SSM).
YOSHIFUJI Hideaki [Thu, 3 Apr 2008 00:22:54 +0000 (09:22 +0900)] 
[IPV6] MROUTE: Support PIM-SM (SSM).

Based on ancient patch by Mickael Hoerdt
<hoerdt@clarinet.u-strasbg.fr>, which is available at
<http://www-r2.u-strasbg.fr/~hoerdt/dev/linux_ipv6_mforwarding/patch-linux-ipv6-mforwarding-0.1a>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[IPV6] MROUTE: Support multicast forwarding.
YOSHIFUJI Hideaki [Thu, 3 Apr 2008 00:22:53 +0000 (09:22 +0900)] 
[IPV6] MROUTE: Support multicast forwarding.

Based on ancient patch by Mickael Hoerdt
<hoerdt@clarinet.u-strasbg.fr>, which is available at
<http://www-r2.u-strasbg.fr/~hoerdt/dev/linux_ipv6_mforwarding/patch-linux-ipv6-mforwarding-0.1a>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[IPV4] MROUTE: Adjust include files for user-space.
YOSHIFUJI Hideaki [Thu, 3 Apr 2008 00:22:52 +0000 (09:22 +0900)] 
[IPV4] MROUTE: Adjust include files for user-space.

<linux/mroute.h> needs <linux/types.h>.
Avoid including <linux/in.h> in user-space, which conflicts with
standard <netinet/in.h>.
Add basic struct and constant in <linux/pim.h>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[IPV4] MROUTE: Move PIM definitions to <linux/pim.h>.
YOSHIFUJI Hideaki [Thu, 3 Apr 2008 00:22:09 +0000 (09:22 +0900)] 
[IPV4] MROUTE: Move PIM definitions to <linux/pim.h>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[IPV6] ADDRCONF: Fix array size for sysctls.
YOSHIFUJI Hideaki [Mon, 24 Mar 2008 15:25:11 +0000 (00:25 +0900)] 
[IPV6] ADDRCONF: Fix array size for sysctls.

We have been using __NET_IPV6_MAX for adjusting the size of array
for sysctl table, but it does not work any longer because of the
deprecation of NET_IPV6_xxx constants.  Let's use DEVCONF_MAX
instead.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[ATM] drivers/atm/ambassador.c: stop inlining largish static functions
Denys Vlasenko [Thu, 3 Apr 2008 21:59:55 +0000 (14:59 -0700)] 
[ATM] drivers/atm/ambassador.c: stop inlining largish static functions

drivers/atm/ambassador.c has unusually large number
of static inline functions - 22.

I looked through them and half of them seem to be too big
to warrant inlining.

This patch removes "inline" from these static functions
(regardless of number of callsites - gcc nowadays auto-inlines
statics with one callsite).

Size difference for 32bit x86:
   text    data     bss     dec     hex filename
  10209    8488       4   18701    490d linux-2.6-ALLYES/drivers/atm/ambassador.o
   9462    8488       4   17954    4622 linux-2.6.inline-ALLYES/drivers/atm/ambassador.o

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Thu, 3 Apr 2008 21:33:42 +0000 (14:33 -0700)] 
Merge branch 'master' of git://git./linux/kernel/git/davem/net-2.6

16 years ago[NETNS]: Use TCP control socket from a correct namespace.
Denis V. Lunev [Thu, 3 Apr 2008 21:32:00 +0000 (14:32 -0700)] 
[NETNS]: Use TCP control socket from a correct namespace.

Signed-off-by: Denis V.Lunev <den@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NETNS]: Create tcp control socket in the each namespace.
Denis V. Lunev [Thu, 3 Apr 2008 21:31:33 +0000 (14:31 -0700)] 
[NETNS]: Create tcp control socket in the each namespace.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IPV6]: Simplify IPv6 control sockets creation.
Denis V. Lunev [Thu, 3 Apr 2008 21:31:03 +0000 (14:31 -0700)] 
[IPV6]: Simplify IPv6 control sockets creation.

Do this by replacing sock_create_kern with inet_ctl_sock_create.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[INET]: uc_ttl assignment in inet_ctl_sock_create is redundant.
Denis V. Lunev [Thu, 3 Apr 2008 21:30:12 +0000 (14:30 -0700)] 
[INET]: uc_ttl assignment in inet_ctl_sock_create is redundant.

uc_ttl is initialized in inet(6)_create and never changed except
setsockopt ioctl. Remove this assignment.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[ICMP]: Simplify ICMP control socket creation.
Denis V. Lunev [Thu, 3 Apr 2008 21:29:00 +0000 (14:29 -0700)] 
[ICMP]: Simplify ICMP control socket creation.

Replace sock_create_kern with inet_ctl_sock_create.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NETNS]: Inet control socket should not hold a namespace.
Denis V. Lunev [Thu, 3 Apr 2008 21:28:30 +0000 (14:28 -0700)] 
[NETNS]: Inet control socket should not hold a namespace.

This is a generic requirement, so make inet_ctl_sock_create namespace
aware and create a inet_ctl_sock_destroy wrapper around
sk_release_kernel.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[INET]: Let inet_ctl_sock_create return sock rather than socket.
Denis V. Lunev [Thu, 3 Apr 2008 21:27:58 +0000 (14:27 -0700)] 
[INET]: Let inet_ctl_sock_create return sock rather than socket.

All upper protocol layers are already use sock internally.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[SCTP]: Replace socket with sock for SCTP control socket.
Denis V. Lunev [Thu, 3 Apr 2008 21:27:26 +0000 (14:27 -0700)] 
[SCTP]: Replace socket with sock for SCTP control socket.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[SCTP]: Use inet_ctl_sock_create for control socket creation.
Denis V. Lunev [Thu, 3 Apr 2008 21:26:36 +0000 (14:26 -0700)] 
[SCTP]: Use inet_ctl_sock_create for control socket creation.

sk->sk_proc->(un)hash is noop right now, so the unification is correct.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[INET]: Rename inet_csk_ctl_sock_create to inet_ctl_sock_create.
Denis V. Lunev [Thu, 3 Apr 2008 21:22:32 +0000 (14:22 -0700)] 
[INET]: Rename inet_csk_ctl_sock_create to inet_ctl_sock_create.

This call is nothing common with INET connection sockets code. It
simply creates an unhashes kernel sockets for protocol messages.

Move the new call into af_inet.c after the rename.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[DCCP]: dccp_v(4|6)_ctl_socket is leaked.
Denis V. Lunev [Thu, 3 Apr 2008 21:21:33 +0000 (14:21 -0700)] 
[DCCP]: dccp_v(4|6)_ctl_socket is leaked.

This seems a purism as module can't be unloaded, but though if cleanup
method is present it should be correct and clean all staff created.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[DCCP]: Replace socket with sock for reset sending.
Denis V. Lunev [Thu, 3 Apr 2008 21:20:52 +0000 (14:20 -0700)] 
[DCCP]: Replace socket with sock for reset sending.

Replace dccp_v(4|6)_ctl_socket with sock to unify a code with TCP/ICMP.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP]: Replace socket with sock for reset sending.
Denis V. Lunev [Thu, 3 Apr 2008 21:19:38 +0000 (14:19 -0700)] 
[TCP]: Replace socket with sock for reset sending.

Replace tcp_socket with tcp_sock. This is more effective (less
derefferences on fast paths). Additionally, the approach is unified to
one used in ICMP.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NETNS]: Declare init_net even without CONFIG_NET defined.
Denis V. Lunev [Thu, 3 Apr 2008 20:04:33 +0000 (13:04 -0700)] 
[NETNS]: Declare init_net even without CONFIG_NET defined.

This does not look good, but there is no other choice. The compilation
without CONFIG_NET is broken and can not be fixed with ease.

After that there is no need for the following commits:
1567ca7eec7664b8be3b07755ac59dc1b1ec76cb
3edf8fa5ccf10688a9280b5cbca8ed3947c42866
2d38f9a4f8d2ebdc799f03eecf82345825495711

Revert them.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Thu, 3 Apr 2008 05:35:23 +0000 (22:35 -0700)] 
Merge branch 'master' of git://git./linux/kernel/git/davem/net-2.6

Conflicts:

drivers/net/s2io.c

16 years ago[IPV6] NDISC: Don't rely on node-type hint from L2 unless required.
YOSHIFUJI Hideaki [Sun, 16 Mar 2008 03:59:18 +0000 (23:59 -0400)] 
[IPV6] NDISC: Don't rely on node-type hint from L2 unless required.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[IPV6]: Unify ip6_onlink() and ipip6_onlink().
YOSHIFUJI Hideaki [Sun, 16 Mar 2008 02:54:23 +0000 (22:54 -0400)] 
[IPV6]: Unify ip6_onlink() and ipip6_onlink().

Both are identical, let's create ipv6_chk_prefix() and use it
in both places.

16 years ago[IPV6] NDISC: Ignore route information with /0 prefix from interior router.
YOSHIFUJI Hideaki [Sun, 16 Mar 2008 03:56:52 +0000 (23:56 -0400)] 
[IPV6] NDISC: Ignore route information with /0 prefix from interior router.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[IPV6] SIT: Add SIOCGETPRL ioctl to get/dump PRL.
YOSHIFUJI Hideaki [Mon, 24 Mar 2008 09:28:39 +0000 (18:28 +0900)] 
[IPV6] SIT: Add SIOCGETPRL ioctl to get/dump PRL.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[IPV6] SIT: Disallow 0.0.0.0 in PRL and Flush PRL if given for DEL.
YOSHIFUJI Hideaki [Sat, 22 Mar 2008 08:50:59 +0000 (17:50 +0900)] 
[IPV6] SIT: Disallow 0.0.0.0 in PRL and Flush PRL if given for DEL.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[IPV6] SIT: Fix locking issues in PRL management.
YOSHIFUJI Hideaki [Sat, 22 Mar 2008 08:42:57 +0000 (17:42 +0900)] 
[IPV6] SIT: Fix locking issues in PRL management.

To protect PRL list, use ipip6_lock.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years ago[IPV6] SIT: Add PRL management for ISATAP.
Templin, Fred L [Tue, 11 Mar 2008 22:35:59 +0000 (18:35 -0400)] 
[IPV6] SIT: Add PRL management for ISATAP.

This patch updates the Linux the Intra-Site Automatic Tunnel Addressing
Protocol (ISATAP) implementation. It places the ISATAP potential router
list (PRL) in the kernel and adds three new private ioctls for PRL
management.

[Add several changes of structure name, constant names etc. - yoshfuji]

Signed-off-by: Fred L. Templin <fred.l.templin@boeing.com>
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
Linus Torvalds [Wed, 2 Apr 2008 22:56:18 +0000 (15:56 -0700)] 
Merge git://git./linux/kernel/git/gregkh/usb-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
  USB: ohci: fix 2 timers to fire at jiffies + 1s
  USB: Allow initialization of broken keyspan serial adapters.
  USB: fix bug in sg initialization in usbtest
  USB: serial: fix regression in Visor/Palm OS module for kernels >= 2.6.24
  USB: cp2101: Add identifiers for the Telegesys ETRX2USB
  USB: serial: ti_usb_3410_5052: Correct TUSB3410 endpoint requirements.
  USB: another ehci_iaa_watchdog fix

16 years agoalpha: get_current(): don't add zero to current_thread_info()->task
Andrew Morton [Wed, 2 Apr 2008 20:04:52 +0000 (13:04 -0700)] 
alpha: get_current(): don't add zero to current_thread_info()->task

A nasty compile error:

In file included from security/keys/internal.h:16,
                 from security/keys/sysctl.c:14:
include/linux/key-ui.h: In function 'key_permission':
include/linux/key-ui.h:51: error: invalid use of undefined type 'struct task_struct'

apparently the compiler has decided that it needs to know sizeof(task_struct)
so that it can add zero to a task_struct* (which is rather dumb of it).

Getting task_struct in scope in these deeply-nested headers is scary-looking,
so let's just remove the "+ 0".

Cc: David Howells <dhowells@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agomarkers: use synchronize_sched()
Mathieu Desnoyers [Wed, 2 Apr 2008 20:04:51 +0000 (13:04 -0700)] 
markers: use synchronize_sched()

Markers do not mix well with CONFIG_PREEMPT_RCU because it uses
preempt_disable/enable() and not rcu_read_lock/unlock for minimal
intrusiveness.  We would need call_sched and sched_barrier primitives.

Currently, the modification (connection and disconnection) of probes
from markers requires changes to the data structure done in RCU-style :
a new data structure is created, the pointer is changed atomically, a
quiescent state is reached and then the old data structure is freed.

The quiescent state is reached once all the currently running
preempt_disable regions are done running.  We use the call_rcu mechanism
to execute kfree() after such quiescent state has been reached.
However, the new CONFIG_PREEMPT_RCU version of call_rcu and rcu_barrier
does not guarantee that all preempt_disable code regions have finished,
hence the race.

The "proper" way to do this is to use rcu_read_lock/unlock, but we don't
want to use it to minimize intrusiveness on the traced system.  (we do
not want the marker code to call into much of the OS code, because it
would quickly restrict what can and cannot be instrumented, such as the
scheduler).

The temporary fix, until we get call_rcu_sched and rcu_barrier_sched in
mainline, is to use synchronize_sched before each call_rcu calls, so we
wait for the quiescent state in the system call code path.  It will slow
down batch marker enable/disable, but will make sure the race is gone.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agovmcoreinfo: add the symbol "phys_base"
Ken'ichi Ohmichi [Wed, 2 Apr 2008 20:04:50 +0000 (13:04 -0700)] 
vmcoreinfo: add the symbol "phys_base"

Fix the problem that makedumpfile sometimes fails on x86_64 machine.

This patch adds the symbol "phys_base" to a vmcoreinfo data.  The
vmcoreinfo data has the minimum debugging information only for dump
filtering.  makedumpfile (dump filtering command) gets it to distinguish
unnecessary pages, and makedumpfile creates a small dumpfile.

On x86_64 kernel which compiled with CONFIG_PHYSICAL_START=0x0 and
CONFIG_RELOCATABLE=y, makedumpfile fails like the following:

 # makedumpfile -d31 /proc/vmcore dumpfile
 The kernel version is not supported.
 The created dumpfile may be incomplete.
 _exclude_free_page: Can't get next online node.

 makedumpfile Failed.
 #

The cause is the lack of the symbol "phys_base" in a vmcoreinfo data.
If the symbol "phys_base" does not exist, makedumpfile considers an
x86_64 kernel as non relocatable.  As the result, makedumpfile
misunderstands the physical address where the kernel is loaded, and it
cannot translate a kernel virtual address to physical address correctly.

To fix this problem, this patch adds the symbol "phys_base" to a
vmcoreinfo data.

Signed-off-by: Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: <stable@kernel.org>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoefs: update error msg to not refer to deleted read_inode()
Robert P. J. Day [Wed, 2 Apr 2008 20:04:49 +0000 (13:04 -0700)] 
efs: update error msg to not refer to deleted read_inode()

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoChar: rio, fix sparse warnings
Jiri Slaby [Wed, 2 Apr 2008 20:04:48 +0000 (13:04 -0700)] 
Char: rio, fix sparse warnings

Add some locks and unlocks to some code paths.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoChar: ip2, fix sparse warnings
Jiri Slaby [Wed, 2 Apr 2008 20:04:48 +0000 (13:04 -0700)] 
Char: ip2, fix sparse warnings

Unlock two grabbed locks on some paths.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agonbd: prevent sock_xmit from attempting to use a NULL socket
Mike Snitzer [Wed, 2 Apr 2008 20:04:47 +0000 (13:04 -0700)] 
nbd: prevent sock_xmit from attempting to use a NULL socket

NBD does not protect the nbd_device's socket from becoming NULL during
receives.

This closes a race with the NBD_CLEAR_SOCK ioctl (nbd-client -d) setting
the nbd_device's socket to NULL right before NBD calls sock_xmit.

Signed-off-by: Mike Snitzer <snitzer@gmail.com>
Cc: Paul Clements <paul.clements@steeleye.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agodoc: fix typo in SubmittingPatches
Jim Meyering [Wed, 2 Apr 2008 20:04:46 +0000 (13:04 -0700)] 
doc: fix typo in SubmittingPatches

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoFix typos in Documentation/unaligned-memory-access.txt
Dmitri Vorobiev [Wed, 2 Apr 2008 20:04:45 +0000 (13:04 -0700)] 
Fix typos in Documentation/unaligned-memory-access.txt

This patch deletes a couple of superfluous word occurrences in the
document Documentation/unaligned-memory-access.txt.

Thanks to Sebastien Dugue for the remark about English usage.

Signed-off-by: Dmitri Vorobiev <dmitri.vorobiev@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoalpha: fix ALSA DMA mmap crash
Ivan Kokshaysky [Wed, 2 Apr 2008 20:04:43 +0000 (13:04 -0700)] 
alpha: fix ALSA DMA mmap crash

Make dma_alloc_coherent respect gfp flags (__GFP_COMP is one that
matters).

Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Tested-by: Michael Cree <mcree@orcon.net.nz>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoatmel_serial: fix uart/console concurrent access
Marc Pignat [Wed, 2 Apr 2008 20:04:42 +0000 (13:04 -0700)] 
atmel_serial: fix uart/console concurrent access

Strange chars appear on the serial port when a printk and a printf
happens at the same time.  This is caused by the pdc sending chars while
atmel_console_write (called from printk) is executing

Concurent access of uart and console to the same port leads to corrupted
data to be transmitted, so disable tx dma (PDC) while writing to the
console.

Signed-off-by: Marc Pignat <marc.pignat@hevs.ch>
Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>