AgeCommit message (Collapse)AuthorFilesLines
2006-05-11Linux v2.6.17-rc4v2.6.17-rc4Linus Torvalds1-1/+1
2006-05-11Merge Torvalds4-339/+607
* [ARM] 3508/1: Update collie defconfig [ARM] Fix thread struct allocator for SMP case [ARM] Update mach-types [ARM] Update versatile_defconfig
2006-05-11Merge Torvalds4-72/+122
* [SERIAL] 8250: add locking to console write function [SERIAL] Remove unconditional enable of TX irq for console [SERIAL] 8250: set divisor register correctly for AMD Alchemy SoC uart [SERIAL] AMD Alchemy UART: claim memory range [SERIAL] Clean up serial locking when obtaining a reference to a port
2006-05-11Merge Torvalds16-609/+558
* [NET_SCHED]: HFSC: fix thinko in hfsc_adjust_levels() [IPV6]: skb leakage in inet6_csk_xmit [BRIDGE]: Do sysfs registration inside rtnl. [NET]: Do sysfs registration as part of register_netdevice. [TG3]: Fix possible NULL deref in tg3_run_loopback(). [NET] linkwatch: Handle jiffies wrap-around [IRDA]: Switching to a workqueue for the SIR work [IRDA]: smsc-ircc: Minimal hotplug support. [IRDA]: Removing unused EXPORT_SYMBOLs [IRDA]: New maintainer. [NET]: Make netdev_chain a raw notifier. [IPV4]: ip_options_fragment() has no effect on fragmentation [NET]: Add missing operstates documentation.
2006-05-11Merge Torvalds29-383/+632
* (25 commits) [SCSI] mptfc: race between mptfc_register_dev and mptfc_target_alloc [SCSI] lpfc 8.1.6 : Fix Data Corruption in Bus Reset Path [SCSI] mptspi: revalidate negotiation parameters after host reset and resume [SCSI] srp.h: avoid padding of structs [SCSI] ibmvscsi: fix leak when failing to send srp event [SCSI] qla2xxx: Correct eh_abort recovery logic. [SCSI] megaraid_{mm,mbox}: fix a bug in reset handler [SCSI] fusion - bug fix stack overflow in mptbase [SCSI] scsi: Add IBM 2104-DU3 to blist [SCSI] Fix DVD burning issues. [SCSI] SCSI: aic7xxx_osm_pci resource leak fix. [SCSI] - fusion - mptfc bug fix's to prevent deadlock situations [SCSI] mptfusion: bug fix's for raid components adding/deleting [SCSI] aic7xxx: ahc_pci_write_config() fix [SCSI] megaraid: unused variable [SCSI] qla2xxx: only free_irq() after request_irq() succeeds [SCSI] Overrun in drivers/scsi/sim710.c [SCSI] lpfc 8.1.5 : Change version number to 8.1.5 [SCSI] lpfc 8.1.5 : Misc small fixes [SCSI] lpfc 8.1.5 : Additional fixes to LOGO, PLOGI, and RSCN processing ...
2006-05-11[BLOCK] limit request_fn recursionJens Axboe2-3/+22
Don't recurse back into the driver even if the unplug threshold is met, when the driver asks for a requeue. This is both silly from a logical point of view (requeues typically happen due to driver/hardware shortage), and also dangerous since we could hit an endless request_fn -> requeue -> unplug -> request_fn loop and crash on stack overrun. Also limit blk_run_queue() to one level of recursion, similar to how blk_start_queue() works. This patch fixed a real problem with SLES10 and lpfc, and it could hit any SCSI lld that returns non-zero from it's ->queuecommand() handler. Signed-off-by: Jens Axboe <> Signed-off-by: Linus Torvalds <>
2006-05-11[NET_SCHED]: HFSC: fix thinko in hfsc_adjust_levels()Patrick McHardy1-3/+3
When deleting the last child the level of a class should drop to zero. Noticed by Andreas Mueller <> Signed-off-by: Patrick McHardy <> Signed-off-by: David S. Miller <>
2006-05-11ptrace_attach: fix possible deadlock schenario with irqsLinus Torvalds1-1/+19
Eric Biederman points out that we can't take the task_lock while holding tasklist_lock for writing, because another CPU that holds the task lock might take an interrupt that then tries to take tasklist_lock for writing. Which would be a nasty deadlock, with one CPU spinning forever in an interrupt handler (although admittedly you need to really work at triggering it ;) Since the ptrace_attach() code is special and very unusual, just make it be extra careful, and use trylock+repeat to avoid the possible deadlock. Cc: Oleg Nesterov <> Cc: Eric W. Biederman <> Cc: Roland McGrath <> Signed-off-by: Linus Torvalds <>
2006-05-10Merge branch 'for-linus' of ↵Linus Torvalds10-137/+202
git:// * 'for-linus' of git:// IB/mthca: FMR ioremap fix IPoIB: Free child interfaces properly IB/mthca: Fix race in reference counting IB/srp: Fix tracking of pending requests during error handling IB: Fix display of 4-bit port counters in sysfs
2006-05-10IB/mthca: FMR ioremap fixMichael S. Tsirkin1-4/+11
Addresses for ioremap must be calculated off of pci_resource_start; we can't directly use the bus address as seen by the HCA. Fix the code that remaps device memory for FMR access. Based on patch by Klaus Smolin. Signed-off-by: Michael S. Tsirkin <> Signed-off-by: Roland Dreier <>
2006-05-10Merge branch 'upstream' of ↵Linus Torvalds5-9/+14 * 'upstream' of sis900: phy for FoxCon motherboard dl2k: use DMA_48BIT_MASK constant phy: mdiobus_register(): initialize all phy_map entries sky2: ifdown kills irq mask
2006-05-10sis900: phy for FoxCon motherboardJames Cameron1-0/+1
661FX7MI-S motherboard which uses the SiS 661FX chipset. The patch adds an entry to mii_chip_info for the transceiver. The PHY ids were found using the sis900_c_122.diff patch from but that patch didn't solve the problem, because the PHY at address 1 was already being chosen. Without my patch, when bursts of packets arrive from other hosts on a LAN, the interface dropped one roughly 10% of the time, causing retransmits. There were fifth second pauses in refresh of large xterms, and it made Netrek suck. I can provide further test data. Workaround in lieu of patch is to use mii-tool to advertise 100baseTx-HD, then force renegotiation. I wasn't able to identify the actual transceiver, so the description field is a guess. This patch is similar to Artur Skawina's patch: I'm not sure, but I wonder if it means the default behaviour should be changed, so as to better handle future transceivers. Diff is against Signed-off-by: James Cameron <> Signed-off-by: Stephen Hemminger <>
2006-05-10dl2k: use DMA_48BIT_MASK constantFrancois Romieu2-6/+7
Typo will be harder with this one. Signed-off-by: Francois Romieu <> Signed-off-by: Stephen Hemminger <>
2006-05-10phy: mdiobus_register(): initialize all phy_map entriesHerbert Valerio Riedel1-1/+3
make sure phy_map entries whose PHY address is masked are initialized to NULL, given that other code (such as mdiobus_unregister for instance) assumes that non-NULL phy_map entries are allocated phy_devices Signed-off-by: Herbert Valerio Riedel <> Signed-off-by: Stephen Hemminger <>
2006-05-10sky2: ifdown kills irq maskStephen Hemminger1-2/+3
Bringing down a port also masks off the status and other IRQ's needed for device to function due to missing paren's. Signed-off-by: Stephen Hemminger <>
2006-05-10[Cardman 40x0] Fix udev device creationHarald Welte2-8/+13
This patch corrects the order of the calls to register_chrdev() and pcmcia_register_driver(). Now udev correctly creates userspace device files /dev/cmmN and /dev/cmxN respectively. Based on an earlier patch by Jan Niehusmann <>. Signed-off-by: Harald Welte <> Signed-off-by: Linus Torvalds <>
2006-05-10[IPV6]: skb leakage in inet6_csk_xmitAlexey Kuznetsov1-0/+2
inet6_csk_xit does not free skb when routing fails. Signed-off-by: Alexey Kuznetsov <> Signed-off-by: David S. Miller <>
2006-05-10[BRIDGE]: Do sysfs registration inside rtnl.Stephen Hemminger1-14/+7
Now that netdevice sysfs registration is done as part of register_netdevice; bridge code no longer has to be tricky when adding it's kobjects to bridges. Signed-off-by: Stephen Hemminger <> Signed-off-by: David S. Miller <>
2006-05-10[NET]: Do sysfs registration as part of register_netdevice.Stephen Hemminger2-38/+28
The last step of netdevice registration was being done by a delayed call, but because it was delayed, it was impossible to return any error code if the class_device registration failed. Side effects: * one state in registration process is unnecessary. * register_netdevice can sleep inside class_device registration/hotplug * code in netdev_run_todo only does unregistration so it is simpler. Signed-off-by: Stephen Hemminger <> Signed-off-by: David S. Miller <>
2006-05-10[SCSI] mptfc: race between mptfc_register_dev and mptfc_target_allocmdr@sgi.com1-4/+7
A race condition exists in mptfc between the thread registering a device with the fc transport and the scan work generated by the transport. This race existed prior to the application of the mptfc bug fix patch. mptfc_register_dev() calls fc_remote_port_add() with the FC_RPORT_ROLE_TARGET bit set in the rport ids passed to the function. Having this bit set causes fc_remote_port_add() to schedule a scan of the device. This scan can execute before mptfc_register_dev() can fill in the dd_data in the rport structure. When this happens, mptfc_target_alloc() will fail because dd_data is null. Attached is a patch which fixes the problem. The patch changes the rport ids passed to fc_remote_port_add() to not have the TARGET bit set. This prevents the scan from being scheduled. After mptfc_register_dev() fills in the rport dd_data field, fc_remote_port_rolechg() is called, changing the role of the rport to TARGET. Thus, the scan is scheduled after dd_data is filled in which prevents the failure in mptfc_target_alloc(). Signed-off-by: Michael Reed <> Signed-off-by: Eric Moore <> Signed-off-by: James Bottomley <>
2006-05-09[TG3]: Fix possible NULL deref in tg3_run_loopback().Jesper Juhl1-0/+3
tg3_run_loopback doesn't check that dev_alloc_skb() returns anything useful. Even if dev_alloc_skb() fails to return an skb to us we'll happily go on and assume it did, so we risk dereferencing a NULL pointer. Much better to fail gracefully by returning -ENOMEM than crashing here. Signed-off-by: Jesper Juhl <> Signed-off-by: David S. Miller <>
2006-05-09IPoIB: Free child interfaces properlyRoland Dreier1-3/+1
When deleting a child interface with a non-default P_Key via /sys/class/net/ibX/delete_child, the interface must be freed with free_netdev() (rather than kfree() on the private data). Signed-off-by: Roland Dreier <>
2006-05-09[NET] linkwatch: Handle jiffies wrap-aroundHerbert Xu1-5/+5
The test used in the linkwatch does not handle wrap-arounds correctly. Since the intention of the code is to eliminate bursts of messages we can afford to delay things up to a second. Using that fact we can easily handle wrap-arounds by making sure that we don't delay things by more than one second. This is based on diagnosis and a patch by Stefan Rompf. Signed-off-by: Herbert Xu <> Acked-by: Stefan Rompf <> Signed-off-by: David S. Miller <>
2006-05-09[IRDA]: Switching to a workqueue for the SIR workChristoph Hellwig4-524/+314
Since sir_kthread.c pretty much duplicates the workqueue functionality, we'd better switch. The SIR fsm has been merged into sir_dev.c and thus sir_kthread.c is deleted. Signed-off-by: Christoph Hellwig <> Signed-off-by: Samuel Ortiz <> Signed-off-by: David S. Miller <>
2006-05-09[IRDA]: smsc-ircc: Minimal hotplug support.David Brownell1-1/+13
Minimal PNP hotplug support for the smsc-ircc2 driver. A modular driver will be modprobed via hotplug, but still bypasses driver model probing. Signed-off-by: David Brownell <> Signed-off-by: Samuel Ortiz <> Signed-off-by: David S. Miller <>
2006-05-09[IRDA]: Removing unused EXPORT_SYMBOLsAdrian Bunk1-3/+0
This patch removes the following unused EXPORT_SYMBOL's: - irias_find_attrib - irias_new_string_value - irias_new_octseq_value Signed-off-by: Adrian Bunk <> Signed-off-by: Samuel Ortiz <> Signed-off-by: David S. Miller <>
2006-05-09[IRDA]: New maintainer.Samuel Ortiz1-2/+3
As agreed with Jean Tourrilhes, I am taking over IrDA maintainership. Signed-off-by: Samuel Ortiz <> Signed-off-by: David S. Miller <>
2006-05-09[NET]: Make netdev_chain a raw notifier.Alan Stern1-18/+18
From: Alan Stern <> This chain does it's own locking via the RTNL semaphore, and can also run recursively so adding a new mutex here was causing deadlocks. Signed-off-by: David S. Miller <>
2006-05-09[IPV4]: ip_options_fragment() has no effect on fragmentationWei Yongjun1-1/+1
Fix error point to options in ip_options_fragment(). optptr get a error pointer to the ipv4 header, correct is pointer to ipv4 options. Signed-off-by: Wei Yongjun <> Signed-off-by: David S. Miller <>
2006-05-09[NET]: Add missing operstates documentation.Stefan Rompf1-0/+161
Signed-off-by: Stefan Rompf <> Signed-off-by: David S. Miller <>
2006-05-09[ARM] 3508/1: Update collie defconfigPavel Machek1-174/+256
Patch from Pavel Machek Update collie defconfig to something that can bring closer-to-working system to its user. Signed-off-by: Pavel Machek <> Signed-off-by: Russell King <>
2006-05-09[ARM] Fix thread struct allocator for SMP caseRussell King1-12/+25
The ARM thread struct allocator is racy on SMP systems. Fix it by turning it into a per-cpu based allocator. This also allows keeps the cache cache warm for thread structs and kernel stacks. Signed-off-by: Russell King <>
2006-05-09IB/mthca: Fix race in reference countingRoland Dreier5-45/+74
Fix races in in destroying various objects. If a destroy routine waits for an object to become free by doing wait_event(&obj->wait, !atomic_read(&obj->refcount)); /* now clean up and destroy the object */ and another place drops a reference to the object by doing if (atomic_dec_and_test(&obj->refcount)) wake_up(&obj->wait); then this is susceptible to a race where the wait_event() and final freeing of the object occur between the atomic_dec_and_test() and the wake_up(). And this is a use-after-free, since wake_up() will be called on part of the already-freed object. Fix this in mthca by replacing the atomic_t refcounts with plain old integers protected by a spinlock. This makes it possible to do the decrement of the reference count and the wake_up() so that it appears as a single atomic operation to the code waiting on the wait queue. While touching this code, also simplify mthca_cq_clean(): the CQ being cleaned cannot go away, because it still has a QP attached to it. So there's no reason to be paranoid and look up the CQ by number; it's perfectly safe to use the pointer that the callers already have. Signed-off-by: Roland Dreier <>
2006-05-09IB/srp: Fix tracking of pending requests during error handlingRoland Dreier2-84/+115
If a SCSI abort completes, or the command completes successfully, then the driver must remove the command from its queue of pending commands. Similarly, if a device reset succeeds, then all commands queued for the given device must be removed from the queue. Signed-off-by: Roland Dreier <>
2006-05-09IB: Fix display of 4-bit port counters in sysfsRalph Campbell1-1/+1
The code to display local_link_integrity_errors and excessive_buffer_overrun_errors in /sys/class/infiniband/<hca>/ports/<n>/counters/ uses the wrong shift to extract the 4 bit values. Signed-off-by: Ralph Campbell <> Signed-off-by: Roland Dreier <>
2006-05-09Merge branch 'upstream' of ↵Linus Torvalds19-178/+283
git:// * 'upstream' of git:// [PATCH] bcm43xx: Fix access to non-existent PHY registers [PATCH] bcm43xx: Fix array overrun in bcm43xx_geo_init [PATCH] bcm43xx: check for valid MAC address in SPROM [PATCH] ieee80211: Fix A band channel count (resent) [PATCH] bcm43xx: fix iwmode crash when down [PATCH] softmac: make non-operational after being stopped [PATCH] softmac: don't reassociate if user asked for deauthentication spidernet: enable support for bcm5461 ethernet phy spidernet: introduce new setting Fix RTL8019AS init for Toshiba RBTX49xx boards au1000_eth.c: use ether_crc() from <linux/crc32.h> sky2: version 1.3 Add more support for the Yukon Ultra chip found in dual core centino laptops. sky2: synchronize irq on remove sky2: dont write status ring sky2: edge triggered workaround enhancement sky2: use mask instead of modulo operation sky2: tx ring index mask fix sky2: status irq hang fix sky2: backout NAPI reschedule
2006-05-09[PATCH] ppc32/8xx: Fix r3 trashing due to 8MB TLB page instantiationMarcelo Tosatti1-4/+0
Instantiation of 8MB pages on the TLB cache for the kernel static mapping trashes r3 register on !CONFIG_8xx_CPU6 configurations. This ensures r3 gets saved and restored. Signed-off-by: Marcelo Tosatti <> Signed-off-by: Paul Mackerras <>
2006-05-09powerpc/32: Define an is_kernel_addr() to fix ARCH=ppc compilationPaul Mackerras1-0/+1
My commit 6bfd93c32a5065d0e858780b3beb0b667081601c broke the ARCH=ppc compilation by using the is_kernel_addr() macro in asm/uaccess.h. This fixes it by defining a suitable is_kernel_addr() for ARCH=ppc. Signed-off-by: Paul Mackerras <>
2006-05-08Merge git:// Torvalds4-20/+26
* git:// [XFS] Fix a possible metadata buffer (AGFL) refcount leak when fixing an [XFS] Fix a project quota space accounting leak on rename. [XFS] Fix a possible forced shutdown due to mishandling write barriers
2006-05-08Merge branch 'upstream-fixes' of ↵Stephen Hemminger10-30/+84
2006-05-08spidernet: enable support for bcm5461 ethernet phyJens Osterkamp3-9/+47
A newer board revision changed the type of ethernet phy. Moreover, this generalizes the way that a phy gets switched into fiber mode when autodetection is not available. Signed-off-by: Jens Osterkamp <> Signed-off-by: Arnd Bergmann <> Signed-off-by: Stephen Hemminger <>
2006-05-08spidernet: introduce new settingJens Osterkamp2-0/+4
We found a new chip setting that we need in order to make the driver work more reliable. Signed-off-by: Arnd Bergmann <> Signed-off-by: Stephen Hemminger <>
2006-05-08Fix RTL8019AS init for Toshiba RBTX49xx boardsSergei Shtylyov1-12/+19
Ensure that 8-bit mode is selected for the on-board Realtek RTL8019AS chip on Toshiba RBHMA4x00, get rid of the duplicate #ifdef's when setting ei_status.word16. The chip's datasheet says that the PSTOP register shouldn't exceed 0x60 in 8-bit mode -- ensure this too. Signed-off-by: Sergei Shtylyov <> Signed-off-by: Stephen Hemminger <>
2006-05-08au1000_eth.c: use ether_crc() from <linux/crc32.h>Herbert Valerio Riedel1-17/+1
since the au1000 driver already selects the CRC32 routines, simply replace the internal ether_crc() implementation with the semantically equivalent one from <linux/crc32.h> Signed-off-by: Herbert Valerio Riedel <> Signed-off-by: Stephen Hemminger <>
2006-05-08sky2: version 1.3Stephen Hemminger1-1/+1
Update version number, to track changes. Signed-off-by: Stephen Hemminger <>
2006-05-08Add more support for the Yukon Ultra chip found in dual core centino laptops.Stephen Hemminger2-29/+62
The newest Yukon Ultra chipset's require more special tweaks. They seem to be like the Yukon XL chipsets. This code is transliterated from the latest SysKonnect driver; I don't have any Ultra hardware. Signed-off-by: Stephe Hemminger <> Signed-off-by: Stephen Hemminger <>
2006-05-08sky2: synchronize irq on removeStephen Hemminger1-0/+2
Need to make sure interrupt is not racing with unregister of network device. Signed-off-by: Stephen Hemminger <>
2006-05-08sky2: dont write status ringStephen Hemminger1-14/+7
It is more efficient not to write the status ring from the processor and just read the active portion. Signed-off-by: Stephen Hemminger <>
2006-05-08sky2: edge triggered workaround enhancementStephen Hemminger1-8/+12
Need to make the edge-triggered workaround timer faster to get marginally better peformance. The test_and_set_bit in schedule_prep() acts as a barrier already. Make it a module parameter so that laptops who are concerned about power can set it to 0; and user's stuck with broken BIOS's can turn the driver into pure polling. Signed-off-by: Stephen Hemminger <>
2006-05-08sky2: use mask instead of modulo operationStephen Hemminger1-6/+8
Gcc isn't smart enough to know that it can do a modulo operation with power of 2 constant by doing a mask. So add macro to do it for us. Signed-off-by: Stephen Hemminger <>