pandora-kernel.git
16 years agoMerge branch 'upstream' of git://lost.foo-projects.org/~ahkok/git/netdev-2.6 into...
Jeff Garzik [Wed, 5 Jul 2006 18:32:39 +0000 (14:32 -0400)]
Merge branch 'upstream' of git://lost.foo-projects.org/~ahkok/git/netdev-2.6 into upstream

Conflicts:

drivers/net/e1000/e1000_main.c

16 years ago[PATCH] 8139too deadlock fix
Arjan van de Ven [Wed, 5 Jul 2006 13:00:40 +0000 (15:00 +0200)]
[PATCH] 8139too deadlock fix

> stack backtrace:

>  [<f9099d31>] rtl8139_start_xmit+0xd9/0xff [8139too]
>  [<c11ad5ea>] netpoll_send_skb+0x98/0xea

This seems to be a real deadlock...

So netpoll_send_skb takes the _xmit_lock, which is all nitty gritty
but then rtl8139_start_xmit comes around while that lock is taken, and
does

      spin_unlock_irq(&tp->lock);

which.. enables interrupts and softirqs; this is quite bad because the
xmit lock is taken in softirq context for the watchdog like this:
  [<c1200376>] _spin_lock+0x23/0x32
  [<c11af282>] dev_watchdog+0x14/0xb1
  [<c101dab2>] run_timer_softirq+0xf2/0x14a
  [<c101a691>] __do_softirq+0x55/0xb0
  [<c1004a8d>] do_softirq+0x58/0xbd

Which would deadlock now that the spin_unlock_irq() has enabled
irqs/softirqs while the _xmit_lock is still held.

The patch below turns this into a irqsave/irqrestore pair so that
interrupts don't get enabled unconditionally.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[netdrvr] 3c59x: snip changelog from source code
Jeff Garzik [Wed, 5 Jul 2006 18:28:34 +0000 (14:28 -0400)]
[netdrvr] 3c59x: snip changelog from source code

Driver source code is not the preferred place to store change history.

Acked-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] myri10ge - Export more parameters to ethtool
Brice Goglin [Mon, 3 Jul 2006 22:16:46 +0000 (18:16 -0400)]
[PATCH] myri10ge - Export more parameters to ethtool

Add the IRQ line, the tx_boundary, and whether Write-combining and MSI
are enabled to the list of parameters that are exported to ethtool.

Signed-off-by: Brice Goglin <brice@myri.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] myri10ge - Use dev_info() when printing parameters after probe
Brice Goglin [Mon, 3 Jul 2006 22:41:30 +0000 (18:41 -0400)]
[PATCH] myri10ge - Use dev_info() when printing parameters after probe

Displaying the interface name when listing the device parameters
at the end of myri10ge_probe is not a good idea since udev might
rename the interface soon afterwards.
Print the bus id instead, using dev_info().

Signed-off-by: Brice Goglin <brice@myri.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] myri10ge - Drop ununsed nvidia chipset id
brice@myri.com [Mon, 3 Jul 2006 22:02:32 +0000 (18:02 -0400)]
[PATCH] myri10ge - Drop ununsed nvidia chipset id

The workaround for the AER capability of the nVidia chipset has been
removed, we don't need this PCI id anymore. Drop it.

Signed-off-by: Brice Goglin <brice@myri.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] myri10ge - Drop unused pm_state
brice@myri.com [Mon, 3 Jul 2006 22:02:31 +0000 (18:02 -0400)]
[PATCH] myri10ge - Drop unused pm_state

The pm_state field in the myri10ge_priv structure is unused. Drop it.

Signed-off-by: Brice Goglin <brice@myri.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] Fix freeing of net device
Ralf Baechle [Fri, 30 Jun 2006 12:56:13 +0000 (13:56 +0100)]
[PATCH] Fix freeing of net device

Plus optical sugar.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] remove dead entry in net wan Kconfig
Paul Fulghum [Fri, 30 Jun 2006 09:27:19 +0000 (02:27 -0700)]
[PATCH] remove dead entry in net wan Kconfig

Remove dead entry from net wan Kconfig and net wan Makefile..  This entry is
left over from 2.4 where synclink used syncppp driver directly.  synclink
drivers now use generic HDLC

Signed-off-by: Paul Fulghum <paulkf@microgate.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] NI5010 netcard cleanup
Andreas Mohr [Fri, 30 Jun 2006 09:25:07 +0000 (02:25 -0700)]
[PATCH] NI5010 netcard cleanup

- updated MAINTAINERS entry to new format
- updated Jan-Pascal's (ACKed) and my email address
- driver cleanup/modernization (runtime-, not hardware-tested)

[bunk@stusta.de: build fix]
Signed-off-by: Andreas Mohr <andi@lisas.de>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: Jan-Pascal van Best <jvbest@qv3pluto.leidenuniv.nl>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] lock validator: fix ns83820.c irq-flags bug
Ingo Molnar [Fri, 30 Jun 2006 09:25:06 +0000 (02:25 -0700)]
[PATCH] lock validator: fix ns83820.c irq-flags bug

Barry K. Nathan reported the following lockdep warning:

[  197.343948] BUG: warning at kernel/lockdep.c:1856/trace_hardirqs_on()
[  197.345928]  [<c010329b>] show_trace_log_lvl+0x5b/0x105
[  197.346359]  [<c0103896>] show_trace+0x1b/0x20
[  197.346759]  [<c01038ed>] dump_stack+0x1f/0x24
[  197.347159]  [<c012efa2>] trace_hardirqs_on+0xfb/0x185
[  197.348873]  [<c029b009>] _spin_unlock_irq+0x24/0x2d
[  197.350620]  [<e09034e8>] do_tx_done+0x171/0x179 [ns83820]
[  197.350895]  [<e090445c>] ns83820_irq+0x149/0x20b [ns83820]
[  197.351166]  [<c013b4b8>] handle_IRQ_event+0x1d/0x52
[  197.353216]  [<c013c6c2>] handle_level_irq+0x97/0xe1
[  197.355157]  [<c01048c3>] do_IRQ+0x8b/0xac
[  197.355612]  [<c0102d9d>] common_interrupt+0x25/0x2c

this is caused because the ns83820 driver re-enables irq flags
in hardirq context.

While legal in theory, in practice it should only be done if the
hardware is really old and has some very high overhead in its ISR.
(such as PIO IDE)

For modern hardware, running ISRs with irqs enabled is discouraged,
because 1) new hardware is fast enough to not cause latency problems
2) allowing the nesting of hardware interrupts only 'spreads out'
the handling of the current ISR, causing extra cachemisses that would
otherwise not happen. Furthermore, on architectures where ISRs share
the kernel stacks, enabling interrupts in ISRs introduces a much
higher kernel-stack-nesting and thus kernel-stack-overflow risk.
3) not managing irq-flags via the _irqsave / _irqrestore variants
is dangerous: it's easy to forget whether one function nests inside
another, and irq flags might be mismanaged.

In the few cases where re-enabling interrupts in an ISR is considered
useful (and unavoidable), it has to be taught to the lock validator
explicitly (because the lock validator needs the "no ISR ever enables
hardirqs" artificial simplification to keep the IRQ/softirq locking
dependencies manageable).

This teaching is done via the explicit use local_irq_enable_in_hardirq().
On a stock kernel this maps to local_irq_enable(). If the lock validator
is enabled then this does not enable interrupts.

Now, the analysis of drivers/net/ns83820.c's irq flags use: the
irq-enabling in irq context seems intentional, but i dont think it's
justified. Furthermore, the driver suffers from problem #3 above too,
in ns83820_tx_timeout() it disables irqs via local_irq_save(), but
then it calls do_tx_done() which does a spin_unlock_irq(),
re-enabling for a function that does not expect it! While currently
this bug seems harmless (only some debug printout seems to be
affected by it), it's nevertheless something to be fixed.

So this patch makes the ns83820 ISR irq-flags-safe, and cleans up
do_tx_done() use and locking to avoid the ns83820_tx_timeout() bug.

From: Arjan van de Ven <arjan@linux.intel.com>

  ns83820_mib_isr takes the misc_lock in IRQ context.  All other places that
  do this in the ISR already use _irqsave versions, make this consistent at
  least.  At some point in the future someone should audit the driver to see
  if all _irqsave's in the ISR can go away, this is generally an iffy/fragile
  proposition though; for now get it safe, simple and consistent.

From: Arjan van de Ven <arjan@linux.intel.com>

ok this is a real driver deadlock:

The ns83820 driver enabled interrupts (by unlocking the misc_lock with
_irq) while still holding the rx_info.lock, which is required to be irq
safe since it's used in the ISR like this:
                writel(1, dev->base + IER);
                spin_unlock_irq(&dev->misc_lock);
                kick_rx(ndev);
                spin_unlock_irq(&dev->rx_info.lock);

This is can cause a deadlock if an irq was pending at the first
spin_unlock_irq already, or if one would hit during kick_rx().
Simply remove the first _irq solves this

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Benjamin LaHaise <bcrl@kvack.org>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] pcnet32: Cleanup rx buffers after loopback test.
Don Fry [Thu, 29 Jun 2006 20:55:27 +0000 (13:55 -0700)]
[PATCH] pcnet32: Cleanup rx buffers after loopback test.

More cleanup to pcnet32_loopback_test to release receive buffers if
device is not up.  Created common routine to free rx buffers.

Tested ia32 and ppc64

Signed-off-by: Don Fry <brazilnut@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] pcnet32: Suspend the chip rather than restart when changing multicast/promisc
Don Fry [Thu, 29 Jun 2006 20:55:02 +0000 (13:55 -0700)]
[PATCH] pcnet32: Suspend the chip rather than restart when changing multicast/promisc

Suspend the chip if possible rather than stop and discard all tx and rx
frames, when changing the mcast list or entering/leaving promiscuous
mode.  Created common pcnet32_suspend routine.

Tested ia32 and ppc64

Signed-off-by: Don Fry <brazilnut@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] pcnet32: Handle memory allocation failures cleanly when resizing tx/rx rings
Don Fry [Thu, 29 Jun 2006 20:54:38 +0000 (13:54 -0700)]
[PATCH] pcnet32: Handle memory allocation failures cleanly when resizing tx/rx rings

Fix pcnet32_set_ringparam to handle memory allocation errors without
leaving the adapter in an inoperative state and null pointers waiting to
be dereferenced.

Tested ia32 and ppc64.

Signed-off-by: Don Fry <brazilnut@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] pcnet32: Use kcalloc instead of kmalloc and memset
Don Fry [Thu, 29 Jun 2006 20:53:48 +0000 (13:53 -0700)]
[PATCH] pcnet32: Use kcalloc instead of kmalloc and memset

On 2006-03-08 Eric Sesterhenn wrote:
converts drivers/net to kzalloc usage.

Don Fry modified it to use netif_msg_drv.  Tested ia32 and ppc64.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Don Fry <brazilnut@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] pcnet32: Fix off-by-one in get_ringparam
Don Fry [Thu, 29 Jun 2006 20:53:23 +0000 (13:53 -0700)]
[PATCH] pcnet32: Fix off-by-one in get_ringparam

Fix off-by-one in pcnet32_get_ringparam

Signed-off-by: Don Fry <brazilnut@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] pcnet32: Use PCI_DEVICE macro
Don Fry [Thu, 29 Jun 2006 20:52:58 +0000 (13:52 -0700)]
[PATCH] pcnet32: Use PCI_DEVICE macro

Jon Mason wrote on Thu, 12 Jan 2006 17:07:49 -0600:
This patch adds the PCI_DEVICE macro to the pcnet32 driver.

This has been tested on my opteron with my "trident" adapter.

Don Fry modified it slightly and tested on ia32 and ppc64.

Signed-off-by: Jon Mason <jdmason@us.ibm.com>
Signed-off-by: Don Fry <brazilnut@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] pcnet32: Fix Section mismatch error
Don Fry [Thu, 29 Jun 2006 20:52:29 +0000 (13:52 -0700)]
[PATCH] pcnet32: Fix Section mismatch error

Fix Section mismatch error.  Tested ia32 and ppc64.

Signed-off-by: Don Fry <brazilnut@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] Add support for the Cicada 8201 PHY
Kim Phillips [Thu, 29 Jun 2006 02:13:23 +0000 (21:13 -0500)]
[PATCH] Add support for the Cicada 8201 PHY

Add support for the Cicada 8201 PHY, a.k.a Vitesse VSC8201.  This PHY is present on the MPC8349mITX.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[PATCH] zd1211rw: disable TX queue during stop
Daniel Drake [Sun, 11 Jun 2006 22:18:54 +0000 (23:18 +0100)]
[PATCH] zd1211rw: disable TX queue during stop

This avoids some potential races.

Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] ZyDAS ZD1211 USB-WLAN driver
Daniel Drake [Fri, 2 Jun 2006 16:11:32 +0000 (17:11 +0100)]
[PATCH] ZyDAS ZD1211 USB-WLAN driver

There are 60+ USB wifi adapters available on the market based on the ZyDAS
ZD1211 chip.

Unlike the predecessor (ZD1201), ZD1211 does not have a hardware MAC, so most
data operations are coordinated by the device driver. The ZD1211 chip sits
alongside an RF transceiver which is also controlled by the driver. Our driver
currently supports 2 RF types, we know of one other available in a few marketed
products which we will be supporting soon.

Our driver also supports the newer revision of ZD1211, called ZD1211B. The
initialization and RF operations are slightly different for the new revision,
but the main difference is 802.11e support. Our driver does not support the
QoS features yet, but we think we know how to use them.

This driver is based on ZyDAS's own GPL driver available from www.zydas.com.tw.
ZyDAS engineers have been responsive and supportive of our efforts, so thumbs
up to them. Additionally, the firmware is redistributable and they have
provided device specs.

This driver has been written primarily by Ulrich Kunitz and myself. Graham
Gower, Greg KH, Remco and Bryan Rittmeyer have also contributed. The
developers of ieee80211 and softmac have made our lives so much easier- thanks!

We maintain a small info-page: http://zd1211.ath.cx/wiki/DriverRewrite

If there is enough time for review, we would like to aim for inclusion in
2.6.18. The driver works nicely as a STA, and can connect to both open and
encrypted networks (we are using software-based encryption for now). We will
work towards supporting more advanced features in the future (ad-hoc, master
mode, 802.11a, ...).

Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] softmac: fix build-break from 881ee6999d66c8fc903b429b73bbe6045b38c549
John W. Linville [Mon, 26 Jun 2006 20:34:29 +0000 (16:34 -0400)]
[PATCH] softmac: fix build-break from 881ee6999d66c8fc903b429b73bbe6045b38c549

Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] CONFIG_WIRELESS_EXT is neccessary after all
Horms [Mon, 26 Jun 2006 08:44:38 +0000 (17:44 +0900)]
[PATCH] CONFIG_WIRELESS_EXT is neccessary after all

WARNING: /lib/modules/2.6.17-mm2/kernel/net/ieee80211/ieee80211.ko
needs unknown symbol wireless_spy_update

Someone removed the `#ifdef CONFIG_WIRELESS_EXT' from around the callsite
in net/ieee80211/ieee80211_rx.c and didn't update Kconfig appropriately.

The offending patchset seems to be 35c14b855f52c49e4f3d078b9532b056005ed321
which is tittled

  [PATCH] ieee80211: remove unnecessary CONFIG_WIRELESS_EXT checking

After a quick look it seems that wireless_spy_update() lives in
net/core/wirless.c, and that file is only compiled if
CONFIG_WIRELESS_EXT is set. Perhaps this is Kconig work, but
in the mean time here is a reversal of the recent change.

Signed-Off-By: Horms <horms@verge.net.au>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] SoftMAC: Add network to ieee80211softmac_call_events when associate times out
Joseph Jezak [Sun, 11 Jun 2006 16:01:03 +0000 (12:01 -0400)]
[PATCH] SoftMAC: Add network to ieee80211softmac_call_events when associate times out

The ieee80211softmac_call_events function, when called with event type
IEEE80211SOFTMAC_EVENT_ASSOCIATE_TIMEOUT should pass the network as the
third parameter.  This patch does that.

Signed-off-by: Joseph Jezak <josejx@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] SoftMAC: Prevent multiple authentication attempts on the same network
Joseph Jezak [Sun, 11 Jun 2006 16:00:37 +0000 (12:00 -0400)]
[PATCH] SoftMAC: Prevent multiple authentication attempts on the same network

This patch addresses the "No queue exists" messages commonly seen during
authentication and associating.  These appear due to scheduling multiple
authentication attempts on the same network.  To prevent this, I added a
flag to stop multiple authentication attempts by the association layer.
I also added a check to the wx handler to see if we're connecting to a
different network than the one already in progress.  This scenario was
causing multiple requests on the same network because the network BSSID
was not being updated despite the fact that the ESSID changed.

Signed-off-by: Joseph Jezak <josejx@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] bcm43xx: enable shared key authentication
Daniel Drake [Fri, 16 Jun 2006 19:50:22 +0000 (20:50 +0100)]
[PATCH] bcm43xx: enable shared key authentication

I recently patched softmac to enable shared key authentication. This small patch
will enable crazy or unfortunate bcm43xx users to use this new capability.

Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] 2.6.17 missing a call to ieee80211softmac_capabilities from ieee80211softmac_...
Larry Finger [Tue, 20 Jun 2006 14:19:18 +0000 (09:19 -0500)]
[PATCH] 2.6.17 missing a call to ieee80211softmac_capabilities from ieee80211softmac_assoc_req

In commit ba9b28d19a3251bb1dfe6a6f8cc89b96fb85f683, routine
ieee80211softmac_capabilities was added to ieee80211softmac_io.c. As
denoted by its name, it completes the capabilities IE that is
needed in the associate and reassociate requests sent to the
AP. For at least one AP, the Linksys WRT54G V5, the capabilities
field must set the 'short preamble' bit or the AP refuses to
associate. In the commit noted above, there is a call to the
new routine from ieee80211softmac_reassoc_req, but not from
ieee80211softmac_assoc_req. This patch fixes that oversight.

As noted in the subject, v2.6.17 is affected. My bcm43xx card had been
unable to associate since I was forced to buy a new AP. I finally was
able to get a packet dump and traced the problem to the capabilities
info. Although I had heard that a patch was "floating around", I had
not seen it before 2.6.17 was released. As this bug does not affect
security and I seem to have the only AP affected by it, there should
be no problem in leaving it for 2.6.18.

Signed-Off-By: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] Convert bcm43xx-softmac to use the ieee80211_is_valid_channel routine
Larry Finger [Mon, 26 Jun 2006 02:32:21 +0000 (21:32 -0500)]
[PATCH] Convert bcm43xx-softmac to use the ieee80211_is_valid_channel routine

The current version of bcm43xx-softmac uses local routines to check
if a channel is valid. As noted in the comments, these routines do
not take any regulatory information into account. This patch converts
the code to use the equivalent routine in ieee80211, which is being
converted to know about regulatory information.

Signed-Off-By: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] skb used after passing to netif_rx in net/ieee80211/ieee80211_rx.c
Eric Sesterhenn [Wed, 21 Jun 2006 19:05:58 +0000 (21:05 +0200)]
[PATCH] skb used after passing to netif_rx in net/ieee80211/ieee80211_rx.c

this patch fixes coverity id #913. ieee80211_monitor_rx() passes the skb
to netif_rx() and we should not reference it any longer.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] ieee80211: fix not allocating IV+ICV space when usingencryption in ieee80211_...
Hong Liu [Wed, 21 Jun 2006 03:35:08 +0000 (11:35 +0800)]
[PATCH] ieee80211: fix not allocating IV+ICV space when usingencryption in ieee80211_tx_frame

We should preallocate IV+ICV space when encrypting the frame.
Currently no problem shows up just because dev_alloc_skb aligns the
data len to SMP_CACHE_BYTES which can be used for ICV.

Signed-off-by: Hong Liu <hong.liu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] bcm43xx: workaround init_board vs. IRQ race
Michael Buesch [Sat, 17 Jun 2006 13:19:05 +0000 (15:19 +0200)]
[PATCH] bcm43xx: workaround init_board vs. IRQ race

Place the Init-vs-IRQ workaround before any card register
access, because we might not have the wireless core mapped
at all times in init. So this will result in a Machine Check
caused by a bus error.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] bcm43xx: use softmac-suggested TX rate
Daniel Drake [Wed, 14 Jun 2006 15:51:14 +0000 (17:51 +0200)]
[PATCH] bcm43xx: use softmac-suggested TX rate

Use Softmac-suggested TX ratecode:
ieee80211softmac_suggest_txrate()

Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[PATCH] Add two PLX device IDs
Faidon Liambotis [Sat, 10 Jun 2006 17:54:58 +0000 (20:54 +0300)]
[PATCH] Add two PLX device IDs

This patch adds device IDs for Symbol LA-4123 and Global Sun Tech
GL24110P to the HostAP PLX driver.
This is not tested with real hardware, but there is no reason why it
shouldn't work.
Please test.

Signed-off-by: Faidon Liambotis <faidon@cube.gr>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years ago[netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ...
Jeff Garzik [Tue, 27 Jun 2006 15:39:50 +0000 (11:39 -0400)]
[netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ...

Suggested by Jiri Slaby.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[netdrvr] Use dev_printk() when ethernet interface isn't available
Jeff Garzik [Tue, 27 Jun 2006 14:47:51 +0000 (10:47 -0400)]
[netdrvr] Use dev_printk() when ethernet interface isn't available

For messages prior to register_netdev(), prefer dev_printk() because
that prints out both our driver name and our [PCI | whatever] bus id.

Updates: 8139{cp,too}, b44, bnx2, cassini, {eepro,epic}100, fealnx,
 hamachi, ne2k-pci, ns83820, pci-skeleton, r8169.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[netdrvr] via-velocity: remove io_size struct member, it is invariant
Jeff Garzik [Tue, 27 Jun 2006 13:25:28 +0000 (09:25 -0400)]
[netdrvr] via-velocity: remove io_size struct member, it is invariant

Replace io_size struct members with VELOCITY_IO_SIZE constant.

Also, constify chip_info_table[].

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[netdrvr] via-velocity: misc. cleanups
Jeff Garzik [Tue, 27 Jun 2006 13:20:08 +0000 (09:20 -0400)]
[netdrvr] via-velocity: misc. cleanups

- const-ify pci_device_id table
- clean up pci_device_id table with PCI_DEVICE()
- don't store internal pointer in pci_device_id table,
  use pci_device_id::driver_data as an integer index
- use dev_printk() for messages where eth%d prefix is unavailable
- formatting fixes

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[netdrvr] minor cleanups in Becker-derived drivers
Jeff Garzik [Tue, 27 Jun 2006 13:12:38 +0000 (09:12 -0400)]
[netdrvr] minor cleanups in Becker-derived drivers

- fealnx: convert #define to enum
- fealnx, sundance: mark chip info table __devinitdata
- fealnx: use dev_printk() during probe
- fealnx: formatting cleanups
- starfire: remove obsolete comment
- sundance, via-rhine: add some whitespace where useful, in tables
- sundance: prefer "{ }" table terminator
- via-rhine: mark PCI probe table const

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[netdrvr] via-velocity: use netdev_priv() where appropriate
Jeff Garzik [Tue, 27 Jun 2006 12:56:23 +0000 (08:56 -0400)]
[netdrvr] via-velocity: use netdev_priv() where appropriate

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[netdrvr] Remove Becker-template 'io_size' member, when invariant
Jeff Garzik [Tue, 27 Jun 2006 12:54:34 +0000 (08:54 -0400)]
[netdrvr] Remove Becker-template 'io_size' member, when invariant

Becker-derived drivers often have the 'io_size' member in their chip
info struct, indicating the minimum required size of the I/O resource
(usually a PCI BAR).  For many situations, this number is either
constant or irrelevant (due to pci_iomap convenience behavior).

This change removes the io_size invariant member, and replaces it with a
compile-time constant.

Drivers updated: fealnx, gt96100eth, winbond-840, yellowfin

Additionally,
- gt96100eth: unused 'drv_flags' removed from gt96100eth
- winbond-840: unused struct match_info removed
- winbond-840: mark pci_id_tbl[] const, __devinitdata

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[netdrvr] Remove Linux-specific changelogs from several Becker template drivers
Jeff Garzik [Tue, 27 Jun 2006 11:57:22 +0000 (07:57 -0400)]
[netdrvr] Remove Linux-specific changelogs from several Becker template drivers

When in-kernel net drivers branched from Donald Becker's vanilla driver
set, in the days before BitKeeper and git, a driver changelog was
maintained in the driver source code.  These days, the kernel's
changelog is far superior and much more accurate, so the in-driver
changelogs are removed.

Another relic of the Becker/kernel split was version numbering, using
"foo-LKx.y.z" notation, resulting in weird version numbers like
"1.17b-LK1.1.9".  These drivers are for older hardware, and see few
changes these days, so the version numbers were all bumped to something
more simple.

Finally, in xircom_tulip_cb specifically, an additional cleanup removes
the always-enabled CARDBUS cpp macro.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[netdrvr] epic100: minor cleanups
Jeff Garzik [Tue, 27 Jun 2006 11:38:33 +0000 (07:38 -0400)]
[netdrvr] epic100: minor cleanups

- Remove in-source changelog, it's in the global kernel history.
- convert silly and useless version to useful one
- replace invariant pci_id_tbl[]::io_size uses with EPIC_TOTAL_SIZE
- remove now-unused io_size member from pci_id_tbl[]
- current kernel style prefers dev_printk() for the rare ethernet driver
  messages that cannot print an 'eth%d' prefix.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
Linus Torvalds [Tue, 4 Jul 2006 21:00:26 +0000 (14:00 -0700)]
Merge /pub/scm/linux/kernel/git/davej/cpufreq

* master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:
  Move workqueue exports to where the functions are defined.
  [CPUFREQ] Misc cleanups in ondemand.
  [CPUFREQ] Make ondemand sampling per CPU and remove the mutex usage in sampling path.
  [CPUFREQ] Add queue_delayed_work_on() interface for workqueues.
  [CPUFREQ] Remove slowdown from ondemand sampling path.

16 years agoFix up headers_install wrt devfs removal
Linus Torvalds [Tue, 4 Jul 2006 21:00:06 +0000 (14:00 -0700)]
Fix up headers_install wrt devfs removal

No devfs_fs.h header any more..

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years agoMerge git://git.infradead.org/hdrinstall-2.6
Linus Torvalds [Tue, 4 Jul 2006 19:55:45 +0000 (12:55 -0700)]
Merge git://git.infradead.org/hdrinstall-2.6

* git://git.infradead.org/hdrinstall-2.6:
  Remove export of include/linux/isdn/tpam.h
  Remove <linux/i2c-id.h> and <linux/i2c-algo-ite.h> from userspace export
  Restrict headers exported to userspace for SPARC and SPARC64
  Add empty Kbuild files for 'make headers_install' in remaining arches.
  Add Kbuild file for Alpha 'make headers_install'
  Add Kbuild file for SPARC 'make headers_install'
  Add Kbuild file for IA64 'make headers_install'
  Add Kbuild file for S390 'make headers_install'
  Add Kbuild file for i386 'make headers_install'
  Add Kbuild file for x86_64 'make headers_install'
  Add Kbuild file for PowerPC 'make headers_install'
  Add generic Kbuild files for 'make headers_install'
  Basic implementation of 'make headers_check'
  Basic implementation of 'make headers_install'

16 years ago[PATCH] fix AB-BA deadlock inversion at cs46xx_dsp_remove_scb
Arjan van de Ven [Tue, 4 Jul 2006 10:07:22 +0000 (03:07 -0700)]
[PATCH] fix AB-BA deadlock inversion at cs46xx_dsp_remove_scb

There is a code sequence where the locking is substream->self_group.lock
-> ins->scbs[index].lock

substream->self_group.lock is interrupt safe, and taken from irq context
as well (trace is snipped for brevity)

so what can happen is

   cpu 0                    cpu 1
   user context user context

take ins->scbs[index].lock without disabling interrupts

   get substream->self_group.lock (irqsafe)
   try to get ins->scbs[index].lock (spins)

interrupt happens
try to get substream->self_group.lock (spins)

which is an obvious AB-BA deadlock

fix is to just take the lock with _irqsafe

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Cc: Jaroslav Kysela <perex@suse.cz>
Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] mthca: initialize send and receive queue locks separately
Zach Brown [Tue, 4 Jul 2006 09:57:52 +0000 (02:57 -0700)]
[PATCH] mthca: initialize send and receive queue locks separately

mthca: initialize send and receive queue locks separately

lockdep identifies a lock by the call site of its initialization.  By
initializing the send and receive queue locks in mthca_wq_init() we confuse
lockdep.  It warns that that the ordered acquiry of both locks in
mthca_modify_qp() is recursive acquiry of one lock:

  =============================================
  [ INFO: possible recursive locking detected ]
  ---------------------------------------------
  modprobe/1192 is trying to acquire lock:
   (&wq->lock){....}, at: [<f892b4db>] mthca_modify_qp+0x60/0xa7b [ib_mthca]
  but task is already holding lock:
   (&wq->lock){....}, at: [<f892b4ce>] mthca_modify_qp+0x53/0xa7b [ib_mthca]

Initializing the locks separately in mthca_alloc_qp_common() stops the
warning and will let lockdep enforce proper ordering on paths that acquire
both locks.

Signed-off-by: Zach Brown <zach.brown@oracle.com>
Cc: Roland Dreier <rolandd@cisco.com>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] Fix copying of pgdat array on each node for ia64 memory hotplug
Yasunori Goto [Tue, 4 Jul 2006 09:57:51 +0000 (02:57 -0700)]
[PATCH] Fix copying of pgdat array on each node for ia64 memory hotplug

I found a bug in memory hot-add code for ia64.

IA64's code has copies of pgdat's array on each node to reduce memory
access over crossing node.  This array is used by NODE_DATA() macro.  When
new node is hot-added, this pgdat's array should be updated and copied on
new node too.

However, I used for_each_online_node() in scatter_node_data() to copy
it. This meant its array is not copied on new node.
Because initialization of structures for new node was halfway,
so online_node_map couldn't be set at this time.

To copy arrays on new node, I changed it to check value of pgdat_list[]
which is source array of copies.  I tested this patch with my Memory Hotadd
emulation on Tiger4.  This patch is for 2.6.17-git20.

Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] uclinux: fix proc_task()/get_proc-task() naming
Greg Ungerer [Tue, 4 Jul 2006 05:04:39 +0000 (15:04 +1000)]
[PATCH] uclinux: fix proc_task()/get_proc-task() naming

Fix changed name of proc_task() to get_proc_task().

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
Linus Torvalds [Tue, 4 Jul 2006 04:32:50 +0000 (21:32 -0700)]
Merge branch 'release' of git://git./linux/kernel/git/lenb/linux-acpi-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (44 commits)
  ACPI: remove function tracing macros from drivers/acpi/*.c
  ACPI: add support for Smart Battery
  ACPI: handle battery notify event on broken BIOS
  ACPI: handle AC notify event on broken BIOS
  ACPI: asus_acpi: add S1N WLED control
  ACPI: asus_acpi: correct M6N/M6R display nodes
  ACPI: asus_acpi: add S1N WLED control
  ACPI: asus_acpi: rework model detection
  ACPI: asus_acpi: support L5D
  ACPI: asus_acpi: handle internal Bluetooth / support W5A
  ACPI: asus_acpi: support A4G
  ACPI: asus_acpi: support W3400N
  ACPI: asus_acpi: LED display support
  ACPI: asus_acpi: support A3G
  ACPI: asus_acpi: misc cleanups
  ACPI: video: Remove unneeded acpi_handle from driver.
  ACPI: thermal: Remove unneeded acpi_handle from driver.
  ACPI: power: Remove unneeded acpi_handle from driver.
  ACPI: pci_root: Remove unneeded acpi_handle from driver.
  ACPI: pci_link: Remove unneeded acpi_handle from driver.
  ...

16 years agoMerge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-serial
Linus Torvalds [Tue, 4 Jul 2006 04:31:05 +0000 (21:31 -0700)]
Merge branch 'devel' of /home/rmk/linux-2.6-serial

* 'devel' of master.kernel.org:/home/rmk/linux-2.6-serial:
  [SERIAL] Ensure 8250_pci quirks are not marked __devinit
  [SERIAL] Convert fifosize to an unsigned int

16 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Tue, 4 Jul 2006 04:30:03 +0000 (21:30 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] Fix lh7a40x_udc.c
  [ARM] Fix warning in consistent.c
  [ARM] Fix warnings in arch/arm/kernel/setup.c
  [ARM] Fix ecard.c resource warnings.
  [ARM] Fix ISA IRQ resources
  [ARM] Fix bad asm instruction in proc-arm925.S
  [ARM] More missing proc-macros.S includes
  [ARM] 3708/2: fix SMP build after section ioremap changes

16 years agoMerge git://git.infradead.org/mtd-2.6
Linus Torvalds [Tue, 4 Jul 2006 04:29:08 +0000 (21:29 -0700)]
Merge git://git.infradead.org/mtd-2.6

* git://git.infradead.org/mtd-2.6:
  [JFFS2][XATTR] Fix memory leak in POSIX-ACL support
  fs/jffs2/: make 2 functions static
  [MTD] NAND: Fix broken sharpsl driver
  [JFFS2][XATTR] Fix xd->refcnt race condition
  MTD: kernel-doc fixes + additions
  MTD: fix all kernel-doc warnings
  [MTD] DOC: Fixup read functions and do a little cleanup

16 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Tue, 4 Jul 2006 04:28:14 +0000 (21:28 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits)
  [Bluetooth] Add RFCOMM role switch support
  [Bluetooth] Allow disabling of credit based flow control
  [Bluetooth] Small cleanup of the L2CAP source code
  [Bluetooth] Use real devices for host controllers
  [Bluetooth] Add platform device for virtual and serial devices
  [Bluetooth] Add automatic sniff mode support
  [Bluetooth] Correct SCO buffer size on request
  [Bluetooth] Add suspend/resume support to the HCI USB driver
  [Bluetooth] Use raw mode for the Frontline sniffer device
  [BRIDGE]: br_dump_ifinfo index fix
  [ATM]: add+use poison defines
  [NET]: add+use poison defines
  [IOAT]: fix kernel-doc in source files
  [IOAT]: fix header file kernel-doc
  [TG3]: Add ipv6 TSO feature
  [IPV6]: Fix ipv6 GSO payload length
  [TIPC] Fixed sk_buff panic caused by tipc_link_bundle_buf (REVISED)
  [NET]: Verify gso_type too in gso_segment
  [IPVS]: Add sysctl documentation
  [ROSE]: Try all routes when establishing a ROSE connections.
  ...

16 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
Linus Torvalds [Tue, 4 Jul 2006 04:27:18 +0000 (21:27 -0700)]
Merge /pub/scm/linux/kernel/git/jejb/scsi-misc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (57 commits)
  [SCSI] fix error handling in scsi_io_completion
  [SCSI] qla1280: fix section mismatch warnings
  [SCSI] mptsas: eliminate ghost devices
  [SCSI] qla2xxx: make some more functions static
  [SCSI] small whitespace cleanup for qlogic driver
  [SCSI] mptbase: mpt_interrupt should return IRQ_NONE
  [SCSI] mptsas: make two functions static
  [SCSI] sg.c: Fix bad error handling in
  [SCSI] 53c700: fix breakage caused by the autosense update
  [SCSI] iscsi: add async notification of session events
  [SCSI] iscsi: pass target nr to session creation
  [SCSI] iscsi: break up session creation into two stages
  [SCSI] iscsi: rm channel usage from iscsi
  [SCSI] iscsi: fix session refcouting
  [SCSI] iscsi: convert iscsi_tcp to new set/get param fns
  [SCSI] iscsi: convert iser to new set/get param fns
  [SCSI] iscsi: fixup set/get param functions
  [SCSI] iscsi: add target discvery event to transport class
  [SCSI] st: remove unused st_buffer.in_use
  [SCSI] atp870u: reduce huge stack usage
  ...

16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild
Linus Torvalds [Tue, 4 Jul 2006 04:26:12 +0000 (21:26 -0700)]
Merge git://git./linux/kernel/git/sam/kbuild

* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild:
  kbuild: introduce utsrelease.h
  kbuild: explicit turn off gcc stack-protector

16 years ago[PATCH] revert "kthread: convert stop_machine into a kthread"
Andrew Morton [Tue, 4 Jul 2006 00:32:22 +0000 (17:32 -0700)]
[PATCH] revert "kthread: convert stop_machine into a kthread"

Jiri reports that the stop_machin kthread conversion caused his machine to
hang when suspending.  Hyperthreading is apparently involved.

I don't see why that would be and I can't reproduce it.  Revert to the 2.6.17
code.

Cc: "Serge E. Hallyn" <serue@us.ibm.com>
Cc: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] zfcp: fix incorrect usage of fsf_req_list_lock
Heiko Carstens [Tue, 4 Jul 2006 00:32:21 +0000 (17:32 -0700)]
[PATCH] zfcp: fix incorrect usage of fsf_req_list_lock

  =================================
  [ INFO: inconsistent lock state ]
  ---------------------------------
  inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
  swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
   (&adapter->fsf_req_list_lock){++..}, at: [<0000000000274486>] zfcp_qdio_reqid_check+0x46/0x178
  {in-hardirq-W} state was registered at:
    [<000000000005fb0c>] __lock_acquire+0xad8/0xed0
    [<00000000000604ae>] lock_acquire+0x9a/0xc8
    [<000000000035a326>] _spin_lock+0x4e/0x68
    [<0000000000274486>] zfcp_qdio_reqid_check+0x46/0x178
    [<000000000027469e>] zfcp_qdio_response_handler+0xe6/0x430
    [<0000000000219dd4>] tiqdio_thinint_handler+0xd20/0x213c
    [<000000000020229a>] do_adapter_IO+0xb2/0xc0
    [<0000000000206f32>] do_IRQ+0x136/0x16c
    [<0000000000020462>] io_no_vtime+0x16/0x1c
    [<0000000000019432>] cpu_idle+0x222/0x250
  irq event stamp: 129220
  hardirqs last  enabled at (129220): [<00000000000411e6>] tasklet_hi_action+0x5a/0x19c
  hardirqs last disabled at (129219): [<00000000000411c0>] tasklet_hi_action+0x34/0x19c
  softirqs last  enabled at (129212): [<0000000000040b62>] __do_softirq+0x13a/0x180
  softirqs last disabled at (129217): [<000000000001fd58>] do_softirq+0xec/0xf0

  other info that might help us debug this:
  no locks held by swapper/0.

  stack backtrace:
  00000000012bb670 0000000000000002 0000000000000000 00000000012bb780
         00000000012bb6e8 0000000000399122 0000000000399122 0000000000016b0a
         0000000000000000 0000000000000000 0000000000000000 00000000004660e8
         0000000000000000 000000000000000d 00000000012bb6e0 00000000012bb758
         0000000000368b90 0000000000016b0a 00000000012bb6e0 00000000012bb730
  Call Trace:
  ([<0000000000016a26>] show_trace+0x76/0xdc)
   [<0000000000016b2c>] show_stack+0xa0/0xd0
   [<0000000000016b8a>] dump_stack+0x2e/0x3c
   [<000000000005e3da>] print_usage_bug+0x27e/0x290
   [<000000000005ea9c>] mark_lock+0x6b0/0x6c0
   [<000000000005f33e>] __lock_acquire+0x30a/0xed0
   [<00000000000604ae>] lock_acquire+0x9a/0xc8
   [<000000000035a326>] _spin_lock+0x4e/0x68
   [<0000000000274486>] zfcp_qdio_reqid_check+0x46/0x178
   [<000000000027469e>] zfcp_qdio_response_handler+0xe6/0x430
   [<0000000000217bd2>] tiqdio_tl+0xd02/0x2120
   [<000000000004123a>] tasklet_hi_action+0xae/0x19c
   [<0000000000040ae4>] __do_softirq+0xbc/0x180
   [<000000000001fd58>] do_softirq+0xec/0xf0
   [<0000000000040c38>] irq_exit+0x90/0xa8
   [<0000000000206f40>] do_IRQ+0x144/0x16c
   [<0000000000020462>] io_no_vtime+0x16/0x1c
   [<0000000000019432>] cpu_idle+0x222/0x250
  ([<0000000000019416>] cpu_idle+0x206/0x250)
   [<000000000001405a>] rest_init+0x5a/0x68
   [<0000000000536998>] start_kernel+0x39c/0x3dc
   [<0000000000013046>] _stext+0x46/0x1000

Fix incorrect usage of fsf_req_list_lock. It's used in tasklet context
(irqs on) as well as in irq context. Therefore use the spin_lock_irqsave
variant to avoid deadlocks.

Acked-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] zfcp: fix incorrect usage of erp_lock
Heiko Carstens [Tue, 4 Jul 2006 00:32:20 +0000 (17:32 -0700)]
[PATCH] zfcp: fix incorrect usage of erp_lock

  =================================
  [ INFO: inconsistent lock state ]
  ---------------------------------
  inconsistent {hardirq-on-W} -> {in-hardirq-W} usage.
  swapper/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
   (&adapter->erp_lock){+-..}, at: [<000000000026c7f8>] zfcp_erp_async_handler+0x3c/0x70
  {hardirq-on-W} state was registered at:
    [<000000000005f33e>] __lock_acquire+0x30a/0xed0
    [<00000000000604ae>] lock_acquire+0x9a/0xc8
    [<000000000035a7ae>] _write_lock+0x4e/0x68
    [<000000000026d822>] zfcp_erp_adapter_strategy_generic+0x286/0xd94
    [<000000000026fd72>] zfcp_erp_strategy_do_action+0x91e/0x1a94
    [<0000000000271a3a>] zfcp_erp_thread+0x21a/0x1568
    [<0000000000019096>] kernel_thread_starter+0x6/0xc
    [<0000000000019090>] kernel_thread_starter+0x0/0xc
  irq event stamp: 12078
  hardirqs last  enabled at (12077): [<0000000000019416>] cpu_idle+0x206/0x250
  hardirqs last disabled at (12078): [<0000000000020458>] io_no_vtime+0xc/0x1c
  softirqs last  enabled at (12072): [<0000000000040b62>] __do_softirq+0x13a/0x180
  softirqs last disabled at (12059): [<000000000001fd58>] do_softirq+0xec/0xf0

  other info that might help us debug this:
  no locks held by swapper/0.

  stack backtrace:
  00000000012bb648 0000000000000002 0000000000000000 00000000012bb758
         00000000012bb6c0 0000000000399122 0000000000399122 0000000000016b0a
         0000000000000000 0000000000000001 0000000000000000 00000000004660e8
         0000000000000000 000000000000000d 00000000012bb6b8 00000000012bb730
         0000000000368b90 0000000000016b0a 00000000012bb6b8 00000000012bb708
  Call Trace:
  ([<0000000000016a26>] show_trace+0x76/0xdc)
   [<0000000000016b2c>] show_stack+0xa0/0xd0
   [<0000000000016b8a>] dump_stack+0x2e/0x3c
   [<000000000005e3da>] print_usage_bug+0x27e/0x290
   [<000000000005e934>] mark_lock+0x548/0x6c0
   [<000000000005fb0c>] __lock_acquire+0xad8/0xed0
   [<00000000000604ae>] lock_acquire+0x9a/0xc8
   [<000000000035a662>] _write_lock_irqsave+0x62/0x80
   [<000000000026c7f8>] zfcp_erp_async_handler+0x3c/0x70
   [<0000000000279178>] zfcp_fsf_req_dispatch+0xd8/0x1fa8
   [<000000000027e538>] zfcp_fsf_req_complete+0x104/0xe4c
   [<0000000000274534>] zfcp_qdio_reqid_check+0xf4/0x178
   [<000000000027469e>] zfcp_qdio_response_handler+0xe6/0x430
   [<0000000000219dd4>] tiqdio_thinint_handler+0xd20/0x213c
   [<000000000020229a>] do_adapter_IO+0xb2/0xc0
   [<0000000000206f32>] do_IRQ+0x136/0x16c
   [<0000000000020462>] io_no_vtime+0x16/0x1c
   [<0000000000019432>] cpu_idle+0x222/0x250
  ([<0000000000019416>] cpu_idle+0x206/0x250)
   [<000000000001405a>] rest_init+0x5a/0x68
   [<0000000000536998>] start_kernel+0x39c/0x3dc
   [<0000000000013046>] _stext+0x46/0x1000

Fix incorrect usage of erp_lock. Using the write_lock() variant is wrong,
since this might lead to deadlocks.

Acked-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] Fix modular cpuid.ko
OGAWA Hirofumi [Tue, 4 Jul 2006 00:32:20 +0000 (17:32 -0700)]
[PATCH] Fix modular cpuid.ko

With recent change, if CONFIG_HOTPLUG_CPU is disabled,
register_cpu_notifier() is not exported.  And it breaked moduler msr/cpuid
(msr.c was already fixed).

We need to use register_hotcpu_notifier() now in module, instead of
register_cpu_notifier().

Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[Bluetooth] Add RFCOMM role switch support
Marcel Holtmann [Mon, 3 Jul 2006 08:37:55 +0000 (10:37 +0200)]
[Bluetooth] Add RFCOMM role switch support

This patch adds the support for RFCOMM role switching before the
connection is fully established.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
16 years ago[Bluetooth] Allow disabling of credit based flow control
Marcel Holtmann [Mon, 3 Jul 2006 08:02:51 +0000 (10:02 +0200)]
[Bluetooth] Allow disabling of credit based flow control

This patch adds the module parameter disable_cfc which can be used to
disable the credit based flow control. The credit based flow control
was introduced with the Bluetooth 1.1 specification and devices can
negotiate its support, but for testing purpose it is helpful to allow
disabling of it.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
16 years ago[Bluetooth] Small cleanup of the L2CAP source code
Marcel Holtmann [Mon, 3 Jul 2006 08:02:46 +0000 (10:02 +0200)]
[Bluetooth] Small cleanup of the L2CAP source code

This patch is a small cleanup of the L2CAP source code. It makes some
coding style changes and moves some functions around to avoid forward
declarations.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
16 years ago[Bluetooth] Use real devices for host controllers
Marcel Holtmann [Mon, 3 Jul 2006 08:02:41 +0000 (10:02 +0200)]
[Bluetooth] Use real devices for host controllers

This patch converts the Bluetooth class devices into real devices. The
Bluetooth class is kept and the driver core provides the appropriate
symlinks for backward compatibility.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
16 years ago[Bluetooth] Add platform device for virtual and serial devices
Marcel Holtmann [Mon, 3 Jul 2006 08:02:37 +0000 (10:02 +0200)]
[Bluetooth] Add platform device for virtual and serial devices

This patch adds a generic Bluetooth platform device that can be used
as parent device by virtual and serial devices.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
16 years ago[Bluetooth] Add automatic sniff mode support
Marcel Holtmann [Mon, 3 Jul 2006 08:02:33 +0000 (10:02 +0200)]
[Bluetooth] Add automatic sniff mode support

This patch introduces the automatic sniff mode feature. This allows
the host to switch idle connections into sniff mode to safe power.

Signed-off-by: Ulisses Furquim <ulissesf@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
16 years ago[Bluetooth] Correct SCO buffer size on request
Marcel Holtmann [Mon, 3 Jul 2006 08:02:29 +0000 (10:02 +0200)]
[Bluetooth] Correct SCO buffer size on request

This patch introduces a quirk that allows the drivers to tell the host
to correct the SCO buffer size values.

Signed-off-by: Olivier Galibert <galibert@pobox.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
16 years ago[Bluetooth] Add suspend/resume support to the HCI USB driver
Marcel Holtmann [Mon, 3 Jul 2006 08:02:24 +0000 (10:02 +0200)]
[Bluetooth] Add suspend/resume support to the HCI USB driver

This patch implements the suspend/resume methods for the HCI USB
driver by killing all outstanding URBs on suspend, and re-issuing
them on resume.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
16 years ago[Bluetooth] Use raw mode for the Frontline sniffer device
Marcel Holtmann [Mon, 3 Jul 2006 08:02:18 +0000 (10:02 +0200)]
[Bluetooth] Use raw mode for the Frontline sniffer device

The Frontline sniffer device looks like a normal H:2 Bluetooth device,
but it is not and so mark it as raw mode device.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
16 years ago[BRIDGE]: br_dump_ifinfo index fix
Andrey Savochkin [Tue, 4 Jul 2006 02:50:14 +0000 (19:50 -0700)]
[BRIDGE]: br_dump_ifinfo index fix

Fix for inability of br_dump_ifinfo to handle non-zero start index:
loop index never increases when entered with non-zero start.
Spotted by Kirill Korotaev.

Signed-off-by: Andrey Savochkin <saw@swsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[ATM]: add+use poison defines
Randy Dunlap [Tue, 4 Jul 2006 02:48:25 +0000 (19:48 -0700)]
[ATM]: add+use poison defines

ATM: add and use POISON define values.

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: add+use poison defines
Randy Dunlap [Tue, 4 Jul 2006 02:47:27 +0000 (19:47 -0700)]
[NET]: add+use poison defines

Add and use poison defines in net/.

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IOAT]: fix kernel-doc in source files
Randy Dunlap [Tue, 4 Jul 2006 02:45:31 +0000 (19:45 -0700)]
[IOAT]: fix kernel-doc in source files

Fix kernel-doc warnings in drivers/dma/:
- use correct function & parameter names
- add descriptions where omitted

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IOAT]: fix header file kernel-doc
Randy Dunlap [Tue, 4 Jul 2006 02:44:51 +0000 (19:44 -0700)]
[IOAT]: fix header file kernel-doc

Fix kernel-doc problems in include/linux/dmaengine.h:
- add some fields/parameters
- expand some descriptions
- fix typos

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TG3]: Add ipv6 TSO feature
Michael Chan [Tue, 4 Jul 2006 02:42:14 +0000 (19:42 -0700)]
[TG3]: Add ipv6 TSO feature

Enable ipv6 TSO feature on chips that support it.

Update version to 3.61.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IPV6]: Fix ipv6 GSO payload length
Michael Chan [Tue, 4 Jul 2006 02:41:11 +0000 (19:41 -0700)]
[IPV6]: Fix ipv6 GSO payload length

Fix ipv6 GSO payload length calculation.

The ipv6 payload length excludes the ipv6 base header length and so
must be subtracted.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TIPC] Fixed sk_buff panic caused by tipc_link_bundle_buf (REVISED)
Allan Stephens [Tue, 4 Jul 2006 02:39:36 +0000 (19:39 -0700)]
[TIPC] Fixed sk_buff panic caused by tipc_link_bundle_buf (REVISED)

The recent change to direct inspection of bundle buffer tailroom did not
account for the possiblity of unrequested tailroom added by skb_alloc(),
thereby allowing a bundle to be created that exceeds the current link MTU.
An additional check now ensures that bundling works correctly no matter
if the bundle buffer is smaller, larger, or equal to the link MTU.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Per Liden <per.liden@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: Verify gso_type too in gso_segment
Herbert Xu [Tue, 4 Jul 2006 02:38:35 +0000 (19:38 -0700)]
[NET]: Verify gso_type too in gso_segment

We don't want nasty Xen guests to pass a TCPv6 packet in with gso_type set
to TCPv4 or even UDP (or a packet that's both TCP and UDP).

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IPVS]: Add sysctl documentation
Horms [Tue, 4 Jul 2006 02:35:40 +0000 (19:35 -0700)]
[IPVS]: Add sysctl documentation

* Derived from http://www.linuxvirtualserver.org/docs/sysctl.html, v1.4
  maintained by Wensong Zhang

* Adjusted preample to match ip-sysctl.txt

* Sorted options into alphabetical order

* Added expire_quiescent_template

* Removed timeout_* which are no longer present

* Incoporated doc/debug-levels.txt from IPVS source tree into
  description of ipvs_debug

* Minor spelling fixes

* Further editing more than welcome

Signed-Off-By: Horms <horms@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[ROSE]: Try all routes when establishing a ROSE connections.
Ralf Baechle [Tue, 4 Jul 2006 02:32:23 +0000 (19:32 -0700)]
[ROSE]: Try all routes when establishing a ROSE connections.

From Jean-Paul F6FBB

ROSE will only try to establish a route using the first route in its
routing table.  Fix to iterate through all additional routes if a
connection attempt has failed.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NETROM]: Use socket helpers instead of direct fiddling with struct sock
Ralf Baechle DL5RB [Tue, 4 Jul 2006 02:31:14 +0000 (19:31 -0700)]
[NETROM]: Use socket helpers instead of direct fiddling with struct sock

Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[AX.25]: Reference counting for AX.25 routes.
Ralf Baechle DL5RB [Tue, 4 Jul 2006 02:30:18 +0000 (19:30 -0700)]
[AX.25]: Reference counting for AX.25 routes.

In the past routes could be freed even though the were possibly in use ...

Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[ROSE]: Fix dereference of skb pointer after free.
Ralf Baechle [Tue, 4 Jul 2006 02:29:15 +0000 (19:29 -0700)]
[ROSE]: Fix dereference of skb pointer after free.

If rose_route_frame return success we'll dereference a stale pointer.
Likely this is only going to result in bad statistics for the ROSE
interface.

This fixes coverity 946.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IOAT]: Fix a warning in ioatdma
Benoit Boissinot [Tue, 4 Jul 2006 02:28:13 +0000 (19:28 -0700)]
[IOAT]: Fix a warning in ioatdma

drivers/dma/ioatdma.c: In function 'ioat_init_module':
drivers/dma/ioatdma.c:830: warning: control reaches end of non-void function

Signed-off-by: Benoit Boissinot <benoit.boissinot@ens-lyon.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IOAT]: drivers/dma/iovlock.c: make num_pages_spanned() static
Adrian Bunk [Tue, 4 Jul 2006 02:27:20 +0000 (19:27 -0700)]
[IOAT]: drivers/dma/iovlock.c: make num_pages_spanned() static

This patch makes the needlessly global num_pages_spanned() static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[AF_UNIX]: datagram getpeersec fix
Andrew Morton [Tue, 4 Jul 2006 02:26:15 +0000 (19:26 -0700)]
[AF_UNIX]: datagram getpeersec fix

The unix_get_peersec_dgram() stub should have been inlined so that it
disappears.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IOAT]: fix sparse ulong warning
Randy Dunlap [Tue, 4 Jul 2006 02:24:19 +0000 (19:24 -0700)]
[IOAT]: fix sparse ulong warning

Fix sparse warning:
drivers/dma/ioatdma.c:444:32: warning: constant 0xFFFFFFFFFFFFFFC0 is so big it is unsigned long

Also needs a MAINTAINERS entry.

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
Linus Torvalds [Mon, 3 Jul 2006 22:28:34 +0000 (15:28 -0700)]
Merge git://git./linux/kernel/git/paulus/powerpc

* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
  powerpc: add defconfig for Freescale MPC8349E-mITX board
  powerpc: Add base support for the Freescale MPC8349E-mITX eval board
  Documentation: correct values in MPC8548E SEC example node
  [POWERPC] Actually copy over i8259.c to arch/ppc/syslib this time
  [POWERPC] Add new interrupt mapping core and change platforms to use it
  [POWERPC] Copy i8259 code back to arch/ppc
  [POWERPC] New device-tree interrupt parsing code
  [POWERPC] Use the genirq framework
  [PATCH] genirq: Allow fasteoi handler to retrigger disabled interrupts
  [POWERPC] Update the SWIM3 (powermac) floppy driver
  [POWERPC] Fix error handling in detecting legacy serial ports
  [POWERPC] Fix booting on Momentum "Apache" board (a Maple derivative)
  [POWERPC] Fix various offb and BootX-related issues
  [POWERPC] Add a default config for 32-bit CHRP machines
  [POWERPC] fix implicit declaration on cell.
  [POWERPC] change get_property to return void *

16 years ago[PATCH] sched: cleanup, convert sched.c-internal typedefs to struct
Ingo Molnar [Mon, 3 Jul 2006 07:25:42 +0000 (00:25 -0700)]
[PATCH] sched: cleanup, convert sched.c-internal typedefs to struct

convert:

 - runqueue_t to 'struct rq'
 - prio_array_t to 'struct prio_array'
 - migration_req_t to 'struct migration_req'

I was the one who added these but they are both against the kernel coding
style and also were used inconsistently at places.  So just get rid of them at
once, now that we are flushing the scheduler patch-queue anyway.

Conversion was mostly scripted, the result was reviewed and all secondary
whitespace and style impact (if any) was fixed up by hand.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] sched: cleanup, remove task_t, convert to struct task_struct
Ingo Molnar [Mon, 3 Jul 2006 07:25:41 +0000 (00:25 -0700)]
[PATCH] sched: cleanup, remove task_t, convert to struct task_struct

cleanup: remove task_t and convert all the uses to struct task_struct. I
introduced it for the scheduler anno and it was a mistake.

Conversion was mostly scripted, the result was reviewed and all
secondary whitespace and style impact (if any) was fixed up by hand.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] sched: clean up fallout of recent changes
Ingo Molnar [Mon, 3 Jul 2006 07:25:40 +0000 (00:25 -0700)]
[PATCH] sched: clean up fallout of recent changes

Clean up some of the impact of recent (and not so recent) scheduler
changes:

 - turning macros into nice inline functions
 - sanitizing and unifying variable definitions
 - whitespace, style consistency, 80-lines, comment correctness, spelling
   and curly braces police

Due to the macro hell and variable placement simplifications there's even 26
bytes of .text saved:

   text    data     bss     dec     hex filename
  25510    4153     192   29855    749f sched.o.before
  25484    4153     192   29829    7485 sched.o.after

[akpm@osdl.org: build fix]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] lockdep: irqtrace subsystem, move account_system_vtime() calls into kernel...
Paul Mackerras [Mon, 3 Jul 2006 07:25:40 +0000 (00:25 -0700)]
[PATCH] lockdep: irqtrace subsystem, move account_system_vtime() calls into kernel/softirq.c

At the moment, powerpc and s390 have their own versions of do_softirq which
include local_bh_disable() and __local_bh_enable() calls.  They end up
calling __do_softirq (in kernel/softirq.c) which also does
local_bh_disable/enable.

Apparently the two levels of disable/enable trigger a warning from some
validation code that Ingo is working on, and he would like to see the outer
level removed.  But to do that, we have to move the account_system_vtime
calls that are currently in the arch do_softirq() implementations for
powerpc and s390 into the generic __do_softirq() (this is a no-op for other
archs because account_system_vtime is defined to be an empty inline
function on all other archs).  This patch does that.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] lockdep: annotate forcedeth.c disable_irq()
Ingo Molnar [Mon, 3 Jul 2006 07:25:39 +0000 (00:25 -0700)]
[PATCH] lockdep: annotate forcedeth.c disable_irq()

nv_do_nic_poll() is called from timer softirqs, which has interrupts enabled,
but np->lock might also be taken by some other interrupt context.

The driver does disable_irq() to get around this problem, so annotate the
disable_irq()/enable_irq() calls for lockdep.

Has no effect on non-lockdep kernels.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Cc: Ayaz Abdulla <aabdulla@nvidia.com>
Cc: Manfred Spraul <manfred@colorfullife.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] forcedeth: typecast cleanup
Andrew Morton [Mon, 3 Jul 2006 07:25:37 +0000 (00:25 -0700)]
[PATCH] forcedeth: typecast cleanup

Someone went nuts in there.

Cc: Ayaz Abdulla <aabdulla@nvidia.com>
Cc: Manfred Spraul <manfred@colorfullife.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] lockdep: annotate hostap netdev ->xmit_lock
Arjan van de Ven [Mon, 3 Jul 2006 07:25:36 +0000 (00:25 -0700)]
[PATCH] lockdep: annotate hostap netdev ->xmit_lock

On Fri, 2006-06-30 at 15:45 -0700, Miles Lane wrote:
> Okay, I rebuilt my kernel with your combo patch applied.
> Then, I inserted my US Robotics USR2210 PCMCIA wifi card,
> ran "pccardutil eject", popped out the card and then inserted
> a Compaq iPaq wifi card.  This triggered the following.
>
> [ INFO: possible circular locking dependency detected ]
> -------------------------------------------------------
> syslogd/1886 is trying to acquire lock:
>  (&dev->queue_lock){-+..}, at: [<c11a50b5>] dev_queue_xmit+0x120/0x24b
>
> but task is already holding lock:
>  (&dev->_xmit_lock){-+..}, at: [<c11a5118>] dev_queue_xmit+0x183/0x24b
>
> which lock already depends on the new lock.

ok this appears to be hostap playing games... it has 2 network devices
for one piece of hardware and one calls the other via the networking
layer; there is thankfully a natural ordering between the two, so just
making the slave one a separate type ought to make this work.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: "John W. Linville" <linville@tuxdriver.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] lockdep: annotate sk_locks
Ingo Molnar [Mon, 3 Jul 2006 07:25:35 +0000 (00:25 -0700)]
[PATCH] lockdep: annotate sk_locks

Teach sk_lock semantics to the lock validator.  In the softirq path the
slock has mutex_trylock()+mutex_unlock() semantics, in the process context
sock_lock() case it has mutex_lock()/mutex_unlock() semantics.

Thus we treat sock_owned_by_user() flagged areas as an exclusion area too,
not just those areas covered by a held sk_lock.slock.

Effect on non-lockdep kernels: minimal, sk_lock_sock_init() has been turned
into an inline function.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] lockdep: annotate on-stack completions, mmc
Ingo Molnar [Mon, 3 Jul 2006 07:25:35 +0000 (00:25 -0700)]
[PATCH] lockdep: annotate on-stack completions, mmc

lockdep needs to have the waitqueue lock initialized for on-stack
waitqueues implicitly initialized by DECLARE_COMPLETION().

Annotate mmc_wait_for_req()'s on-stack completion accordingly.

Has no effect on non-lockdep kernels.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] lockdep: annotate vlan net device as being a special class
Arjan van de Ven [Mon, 3 Jul 2006 07:25:33 +0000 (00:25 -0700)]
[PATCH] lockdep: annotate vlan net device as being a special class

vlan network devices have devices nesting below it, and are a special
"super class" of normal network devices; split their locks off into a
separate class since they always nest.

[deweerdt@free.fr: fix possible null-pointer deref]
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] lockdep: annotate blkdev nesting
Ingo Molnar [Mon, 3 Jul 2006 07:25:33 +0000 (00:25 -0700)]
[PATCH] lockdep: annotate blkdev nesting

Teach special (recursive) locking code to the lock validator.

Effects on non-lockdep kernels:

- the introduction of the following function variants:

  extern struct block_device *open_partition_by_devnum(dev_t, unsigned);

  extern int blkdev_put_partition(struct block_device *);

  static int
  blkdev_get_whole(struct block_device *bdev, mode_t mode, unsigned flags);

 which on non-lockdep are the same as open_by_devnum(), blkdev_put()
 and blkdev_get().

- a subclass parameter to do_open(). [unused on non-lockdep]

- a subclass parameter to __blkdev_put(), which is a new internal
  function for the main blkdev_put*() functions. [parameter unused
  on non-lockdep kernels, except for two sanity check WARN_ON()s]

these functions carry no semantical difference - they only express
object dependencies towards the lockdep subsystem.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Cc: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
16 years ago[PATCH] lockdep: annotate SLAB code
Ingo Molnar [Mon, 3 Jul 2006 07:25:28 +0000 (00:25 -0700)]
[PATCH] lockdep: annotate SLAB code

Teach special (recursive) locking code to the lock validator.  Has no effect
on non-lockdep kernels.

Fix initialize-locks-via-memcpy assumptions.

Effects on non-lockdep kernels: the subclass nesting parameter is passed into
cache_free_alien() and __cache_free(), and turns one internal
kmem_cache_free() call into an open-coded __cache_free() call.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Christoph Lameter <clameter@engr.sgi.com>
Cc: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>