aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* [PATCH] Cpuset: fix ABBA deadlock with cpu hotplug lockPaul Jackson2006-07-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix ABBA deadlock between lock_cpu_hotplug() and the cpuset callback_mutex lock. It only happens on cpu_exclusive cpusets, due to the dynamic sched domain code trying to take the cpu hotplug lock inside the cpuset callback_mutex lock. This bug has apparently been here for several months, but didn't get hit until the right customer load on a large system. This fix appears right from inspection, but it will take a few more days running it on that customers workload to be confident we nailed it. We don't have any other reproducible test case. The cpu_hotplug_lock() tends to cover large runs of code. The other places that hold both that lock and the cpuset callback mutex lock always nest the cpuset lock inside the hotplug lock. This place tries to do the reverse, risking an ABBA deadlock. This is in the cpuset_rmdir() code, where we: * take the callback_mutex lock * mark the cpuset CS_REMOVED * call update_cpu_domains for cpu_exclusive cpusets * in that call, take the cpu_hotplug lock if the cpuset is marked for removal. Thanks to Jack Steiner for identifying this deadlock. The fix is to tear down the dynamic sched domain before we grab the cpuset callback_mutex lock. This way, the two locks are serialized, with the hotplug lock taken and released before trying for the cpuset lock. I suspect that this bug was introduced when I changed the cpuset locking from one lock to two. The dynamic sched domain dependency on cpu_exclusive cpusets and its hotplug hooks were added to this code earlier, when cpusets had only a single lock. It may well have been fine then. Signed-off-by: Paul Jackson <pj@sgi.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* cpu hotplug: simplify and hopefully fix lockingLinus Torvalds2006-07-23
| | | | | | | | | | | | | | | | | The CPU hotplug locking was quite messy, with a recursive lock to handle the fact that both the actual up/down sequence wanted to protect itself from being re-entered, but the callbacks that it called also tended to want to protect themselves from CPU events. This splits the lock into two (one to serialize the whole hotplug sequence, the other to protect against the CPU present bitmaps changing). The latter still allows recursive usage because some subsystems (ondemand policy for cpufreq at least) had already gotten too used to the lax locking, but the locking mistakes are hopefully now less fundamental, and we now warn about recursive lock usage when we see it, in the hope that it can be fixed. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [cpufreq] ondemand: make shutdown sequence more robustLinus Torvalds2006-07-23
| | | | | | | | | | | Shutting down the ondemand policy was fraught with potential problems, causing issues for SMP suspend (which wants to hot- unplug) all but the last CPU. This should fix at least the worst problems (divide-by-zero and infinite wait for the workqueue to shut down). Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds2006-07-21
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (21 commits) [TIPC]: Removing useless casts [IPV4]: Fix nexthop realm dumping for multipath routes [DUMMY]: Avoid an oops when dummy_init_one() failed [IFB] After ifb_init_one() failed, i is increased. Decrease [NET]: Fix reversed error test in netif_tx_trylock [MAINTAINERS]: Mark LAPB as Oprhan. [NET]: Conversions from kmalloc+memset to k(z|c)alloc. [NET]: sun happymeal, little pci cleanup [IrDA]: Use alloc_skb() in IrDA TX path [I/OAT]: Remove pci_module_init() from Intel I/OAT DMA engine [I/OAT]: net/core/user_dma.c should #include <net/netdma.h> [SCTP]: ADDIP: Don't use an address as source until it is ASCONF-ACKed [SCTP]: Set chunk->data_accepted only if we are going to accept it. [SCTP]: Verify all the paths to a peer via heartbeat before using them. [SCTP]: Unhash the endpoint in sctp_endpoint_free(). [SCTP]: Check for NULL arg to sctp_bucket_destroy(). [PKT_SCHED] netem: Fix slab corruption with netem (2nd try) [WAN]: Converted synclink drivers to use netif_carrier_*() [WAN]: Cosmetic changes to N2 and C101 drivers [WAN]: Added missing netif_dormant_off() to generic HDLC ...
| * [TIPC]: Removing useless castsPanagiotis Issaris2006-07-21
| | | | | | | | | | | | | | Removing useless casts Signed-off-by: Panagiotis Issaris <takis@issaris.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [IPV4]: Fix nexthop realm dumping for multipath routesPatrick McHardy2006-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | Routing realms exist per nexthop, but are only returned to userspace for the first nexthop. This is due to the fact that iproute2 only allows to set the realm for the first nexthop and the kernel refuses multipath routes where only a single realm is present. Dump all realms for multipath routes to enable iproute to correctly display them. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [DUMMY]: Avoid an oops when dummy_init_one() failedNicolas Dichtel2006-07-21
| | | | | | | | | | Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [IFB] After ifb_init_one() failed, i is increased. DecreaseNicolas Dichtel2006-07-21
| | | | | | | | | | | | | | | | It before entering in the loop for freeing the other ifb devices. Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Acked-by: Jamal Hadi Salim <hadi@cyberus.ca> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [NET]: Fix reversed error test in netif_tx_trylockHerbert Xu2006-07-21
| | | | | | | | | | | | | | | | A non-zero return value indicates success from spin_trylock, not error. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [MAINTAINERS]: Mark LAPB as Oprhan.David S. Miller2006-07-21
| | | | | | | | | | | | Maintainer email not longer exists. Signed-off-by: David S. Miller <davem@davemloft.net>
| * [NET]: Conversions from kmalloc+memset to k(z|c)alloc.Panagiotis Issaris2006-07-21
| | | | | | | | | | | | Signed-off-by: Panagiotis Issaris <takis@issaris.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [NET]: sun happymeal, little pci cleanupJiri Slaby2006-07-21
| | | | | | | | | | | | | | Use pci_register_driver instead of pci_module_init. Use PCI_DEVICE macro. Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [IrDA]: Use alloc_skb() in IrDA TX pathSamuel Ortiz2006-07-21
| | | | | | | | | | | | | | | | | | As pointed out by Christoph Hellwig, dev_alloc_skb() is not intended to be used for allocating TX sk_buff. The IrDA stack was exclusively calling dev_alloc_skb() on the TX path, and this patch fixes that. Signed-off-by: Samuel Ortiz <samuel@sortiz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [I/OAT]: Remove pci_module_init() from Intel I/OAT DMA engineHenrik Kretzschmar2006-07-21
| | | | | | | | | | | | | | Changes pci_module_init() to pci_register_driver(). Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [I/OAT]: net/core/user_dma.c should #include <net/netdma.h>Adrian Bunk2006-07-21
| | | | | | | | | | | | | | | | | | | | | | Every file should #include the headers containing the prototypes for its global functions. Especially in cases like this one where gcc can tell us through a compile error that the prototype was wrong... Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [SCTP]: ADDIP: Don't use an address as source until it is ASCONF-ACKedSridhar Samudrala2006-07-21
| | | | | | | | | | | | | | This implements Rules D1 and D4 of Sec 4.3 in the ADDIP draft. Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [SCTP]: Set chunk->data_accepted only if we are going to accept it.Sridhar Samudrala2006-07-21
| | | | | | | | | | | | | | | | Currently there is a code path in sctp_eat_data() where it is possible to set this flag even when we are dropping this chunk. Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [SCTP]: Verify all the paths to a peer via heartbeat before using them.Sridhar Samudrala2006-07-21
| | | | | | | | | | | | | | | | This patch implements Path Initialization procedure as described in Sec 2.36 of RFC4460. Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [SCTP]: Unhash the endpoint in sctp_endpoint_free().Vlad Yasevich2006-07-21
| | | | | | | | | | | | | | | | | | This prevents a race between the close of a socket and receive of an incoming packet. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [SCTP]: Check for NULL arg to sctp_bucket_destroy().Sridhar Samudrala2006-07-21
| | | | | | | | | | Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [PKT_SCHED] netem: Fix slab corruption with netem (2nd try)Guillaume Chazarain2006-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CONFIG_DEBUG_SLAB found the following bug: netem_enqueue() in sch_netem.c gets a pointer inside a slab object: struct netem_skb_cb *cb = (struct netem_skb_cb *)skb->cb; But then, the slab object may be freed: skb = skb_unshare(skb, GFP_ATOMIC) cb is still pointing inside the freed skb, so here is a patch to initialize cb later, and make it clear that initializing it sooner is a bad idea. [From Stephen Hemminger: leave cb unitialized in order to let gcc complain in case of use before initialization] Signed-off-by: Guillaume Chazarain <guichaz@yahoo.fr> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [WAN]: Converted synclink drivers to use netif_carrier_*()Krzysztof Halasa2006-07-21
| | | | | | | | | | | | | | | | WAN: Converted synclink drivers to use netif_carrier_*() instead of hdlc_set_carrier(). Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [WAN]: Cosmetic changes to N2 and C101 driversKrzysztof Halasa2006-07-21
| | | | | | | | | | | | | | WAN: Cosmetic changes to N2 and C101 drivers Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [WAN]: Added missing netif_dormant_off() to generic HDLCKrzysztof Halasa2006-07-21
| | | | | | | | | | | | | | | | WAN: Fixed a problem with PPP/raw HDLC/X.25 protocols not doing netif_dormant_off() at startup. Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [IPV4]: Get rid of redundant IPCB->opts initialisationHerbert Xu2006-07-21
| | | | | | | | | | | | | | | | Now that we always zero the IPCB->opts in ip_rcv, it is no longer necessary to do so before calling netif_rx for tunneled packets. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC64]: Update defconfig.David S. Miller2006-07-21
| | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC]: Fix length parameter verification in sys_getdomainname().David S. Miller2006-07-21
| | | | | | | | | | | | Found by scrashme. Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SERIAL] sunzilog: Fix instance enumeration.David S. Miller2006-07-21
| | | | | | | | | | | | | | | | | | | | | | Just do a linear enumeration so that we handle sun4d systems correctly. As a consequence, eliminate the hard coded keyboard and mouse channel line values, use the CONS_{KEYB,MS} flags instead. Also, report the keyboard/mouse Zilog channels just like the uart ones do. Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SERIAL] sunzilog: Remove duplicate IRQ registry in zs_probe().David S. Miller2006-07-21
| | | | | | | | | | | | | | We do it now in sunzilog_init() after all devices have been probed. Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC]: Get sun4d SMP building again.Raymond Burns2006-07-21
| | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC]: Do not call sun4m_irq_rotate on sun4d.Raymond Burns2006-07-21
| | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC]: Simplify and correct __cpu_find_by()David S. Miller2006-07-21
| | | | | | | | | | | | | | | | | | By using for_each_node_by_type(). Also, correct a spurioud test in check_cpu_node() on sparc64. It is only called with nodes that have device_type "cpu". Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC]: Initialize iounit spinlock in iounit_init().Raymond Burns2006-07-21
| | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC]: Fix initialization of sun4d SBUS interrupts.David S. Miller2006-07-21
| | | | | | | | | | | | | | | | | | 1) Explicitly traverse to the root looking for the "sbi". 2) Grab the "board#" property from the sbi's parent and verify that this parent is an "io-unit" node. 3) Skip IRQ initialization when device lacks "reg" property. Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SERIAL] sunzilog: Register IRQ after all devices have been probed.David S. Miller2006-07-21
| | | | | | | | | | | | | | Otherwise we will deref half-initialized channel pointers and crash in the interrupt handler. Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC] sbus: Make sure sbus nodes are named uniquely.David S. Miller2006-07-21
| | | | | | | | | | | | | | | | | | Just name them "sbus%d" otherwise on sun4d we try to register multiple entries named "sbi@0,0" which does not work. Based upon a report from Raymond Burns. Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC]: Fix property name acquisition in prom.cBob Breuer2006-07-21
| | | | | | | | | | | | | | | | | | On sparc32 the prom_{first,next}prop() interfaces work a little differently. The buffer argument is ignored on sparc32 and the firmware just returns a raw pointer to the property name. Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SERIAL] sunsab: Get line numbers and table sizing correct.David S. Miller2006-07-21
| | | | | | | | | | | | | | | | Table sizing code should look for "se" not "su" nodes. The chip at the lower address should get the first index. Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC64] Fix sunsab ports orderingMarc Zyngier2006-07-21
| | | | | | | | | | | | | | | | Register second SAB port before the first one, as serial A is wired to it, and expected to appear as ttyS0. Signed-off-by: Marc Zyngier <maz@misterjones.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC]: Kill prom_getname, unused and not implemented properly.David S. Miller2006-07-21
| | | | | | | | | | | | | | The m68k port's sun3 asm/oplib.h had a stray reference too, so I killed that off as well. Signed-off-by: David S. Miller <davem@davemloft.net>
* | [SPARC64]: Fix more of_device layer IRQ bugs, and correct PROMREG_MAX.David S. Miller2006-07-21
|/ | | | | | | | | | | | | | | | | | Sabre and Psycho PCI controllers can have partial interrupt-map properties, meaning that on-board devices don't match up to any entries. Instead, they are fully specified from the beginning and we should pass them directly to the IRQ translator as-is. Also, fill in the necessary translator slots for the "graphics" and "expansion UPA" interrupts on Sabre, Psycho, and SYSIO SBUS. Increase PROMREG_MAX to 24, as seen on SUNW,ffb devices. Finally, prevent accidentally writing past the end of the of_device struct resource[] and irqs[] arrays. Spit out a log message when we ignore some entries because there are too many of them. Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6Linus Torvalds2006-07-21
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (38 commits) [SCSI] More buffer->request_buffer changes [SCSI] mptfusion: bump version to 3.04.01 [SCSI] mptfusion: misc fix's [SCSI] mptfusion: firmware download boot fix's [SCSI] mptfusion: task abort fix's [SCSI] mptfusion: sas nexus loss support [SCSI] mptfusion: sas loginfo update [SCSI] mptfusion: mptctl panic when loading [SCSI] mptfusion: sas enclosures with smart drive [SCSI] NCR_D700: misc fixes (section and argument ordering) [SCSI] scsi_debug: must_check fixes [SCSI] scsi_transport_sas: kill the use of channel [SCSI] scsi_transport_sas: add expander backlink [SCSI] hide EH backup data outside the scsi_cmnd [SCSI] ibmvscsi: handle inactive SCSI target during probe [SCSI] ibmvscsi: allocate lpevents for ibmvscsi on iseries [SCSI] aic7[9x]xx: Remove last vestiges of reverse_scan [SCSI] aha152x: stop poking at saved scsi_cmnd members [SCSI] st.c: Improve sense output [SCSI] lpfc 8.1.7: Change version number to 8.1.7 ...
| * [SCSI] More buffer->request_buffer changesChristoph Hellwig2006-07-14
| | | | | | | | | | | | | | | | Seem like quite a few splipped through the cracks. Here's a patch to update all references I could find: Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] mptfusion: bump version to 3.04.01Eric Moore2006-07-13
| | | | | | | | | | | | | | bump version to 3.04.01 Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] mptfusion: misc fix'sEric Moore2006-07-13
| | | | | | | | | | | | | | | | | | | | * removing obsolete 1066, 1066E from Kconfig * initializing aen_event_read_flag after host reset * remove oem references * remove obsolete mpt_pq_filter command line option Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] mptfusion: firmware download boot fix'sEric Moore2006-07-13
| | | | | | | | | | | | | | | | | | | | Fix's to insure download boot could occur when either channel of 1030 is reset. Necessary in order for onboard controller in flashless environment to become operational. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] mptfusion: task abort fix'sEric Moore2006-07-13
| | | | | | | | | | | | | | | | | | | | | | | | Fix's to insure proper status is returned to midlayer when a task abort failed to be aborted by controller firmware. Also sanity checks to prevent scsi cmd from being double completed during error recovery. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] mptfusion: sas nexus loss supportEric Moore2006-07-13
| | | | | | | | | | | | | | sas nexus loss support for systems that suport failover. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] mptfusion: sas loginfo updateEric Moore2006-07-13
| | | | | | | | | | | | | | Adding more sas loginfo strings. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] mptfusion: mptctl panic when loadingEric Moore2006-07-13
| | | | | | | | | | | | | | | | Fix panic for when mptctl is loading at the same time when one of the fusion llds (mptsas/mptfc/mptspi) is loading. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>