- 24 Nov, 2003 1 commit
-
-
James Bottomley authored
All the users of this function in the SCSI tree call it with the host lock held. With the new list traversal code, it was trying to take the lock again to traverse the list. Fix it to use the unlocked version of list traversal and modify the header comments to make it clear that the lock is expected to be held on calling it.
-
- 22 Nov, 2003 2 commits
-
-
James Bottomley authored
I've been looking at enforcing lifetime phases for SCSI devices (primarily to try to get the mid layer to offload as much of the device creation and hotplug pieces as it can). I've hijacked the sdev_state field of the struct scsi_device (formerly this was a bitmap, now it becomes an enumerated state). I've also begun adding references sdev_gendev into the code to pin the scsi_device---initially in the queue function, but possibly this should also be done in the scsi_command_get/put, the idea being to prevent scsi_device freeing while there's still device activity. The object phases I identified are: 1. SDEV_CREATED - we've just allocated the device. It may respond to internally generated commands, but not to user ones (the user should actually have no way to access a device in this state, but just in case). 2. SDEV_RUNNING - the device is fully operational 3. SDEV_CANCEL - The device is cleanly shutting down. It may respond to internally generated commands (for cancellation/recovery) only; all user commands are errored unless they have already been queued (QUEUE_FULL handling and the like). 4. SDEV_DEL - The device is gone. *all* commands are errored out. Ordinarily, the device should move through all four phases from creation to destruction, but moving SDEV_RUNNING->SDEV_DEL because of surprise ejection should work. It's starting to look like the online flag should be absorbed into this (offlined devices move essentially to SDEV_CANCEL and could be reactivated by moving to SDEV_RUNNING). I haven't altered the similar bitmap model that scsi_host has, although this too should probably move to an enumerated state model. I've tested this by physically yanking a module out from underneath a running filesystem with no ill effects (other than a slew of I/O errors). The obvious problem is that this kills possible user error handling, but we don't do any of that yet.
-
Mike Anderson authored
This patch is against scsi-bugfixes-2.6. I updated it based on comments received. It breaks up the reference count initialization for scsi_device and restores calling slave_destroy for all scsi_devices configured or not. I ran a small regression using the scsi_debug, aic7xxx, and qla2xxx driver. I also had a debug patch for more verbose kobject cleanup and patch for a badness check on atomic_dec going negative (previously provided by Linus). The object cleanup appears to being functioning correctly. I only saw previously reported badness output: - Synchronizing SCSI cache fails on cleanup. - scsi_debug.c missing release (I believe Doug posted a patch) - aic7xxx warnings on rmmod due to ahc_platform_free calling scsi_remove_host with ahc_list_lock held. This patch splits the scsi device struct device register into init and add. It also addresses memory leak issues of not calling slave_destroy on scsi_devices that are not configured in. Details: * Make scsi_device_dev_release extern for scsi_scan to use in alloc_sdev. * Move scsi_free_sdev code to scsi_device_dev_release. Have previous callers of scsi_free_sdev call slave_destroy plus put_device. * Changed name of scsi_device_register to scsi_sysfs_add_sdev to match host call and align with split struct device init. * Move sdev_gendev device and class init to scsi_alloc_sdev. Thu Nov 20 22:56:11 PST 2003 drivers/scsi/scsi_priv.h | 4 +- drivers/scsi/scsi_scan.c | 63 +++++++++++++++++++++------------------------- drivers/scsi/scsi_sysfs.c | 58 ++++++++++++++++++++++-------------------- 3 files changed, 62 insertions(+), 63 deletions(-)
-
- 21 Nov, 2003 12 commits
-
-
Adam Belay authored
A bug prevents the PnP layer from reserving some of the resources specified by the PnPBIOS. As a result some systems will have unpredicable (random crashes etc.) problems because of resource conflicts, especially when PCMCIA support is enabled. This patch fixes the problem by ensuring that the proper resource data is reserved.
-
Linus Torvalds authored
into home.osdl.org:/home/torvalds/v2.5/linux
-
David S. Miller authored
into nuts.ninka.net:/disk1/davem/BK/sparc-2.5
-
David Stevens authored
It did not account for extension headers properly. If we get this length wrong, we do not determine if a multicast packet is MLDv1 vs. MLDv2 correctly.
-
David S. Miller authored
into nuts.ninka.net:/disk1/davem/BK/net-2.5
-
Linus Torvalds authored
This caused the system call code to test for the wrong number of system calls, with resulting exciting results.
-
Linus Torvalds authored
-
bk://linux-scsi.bkbits.net/scsi-bugfixes-2.6Linus Torvalds authored
into home.osdl.org:/home/torvalds/v2.5/linux
-
http://lia64.bkbits.net/to-linus-2.5Linus Torvalds authored
into home.osdl.org:/home/torvalds/v2.5/linux
-
David Mosberger authored
for 2.6.0. The proper fix is to replace ia64_ni_syscall with sys_ni_syscall, but that would make the patch quite large, so we defer that till 2.6.1.
-
David Mosberger authored
restore_sigcontext(). Also update ia32 subsystem accordingly.
-
David Mosberger authored
in practice, but it's clearly wrong and just waiting there to get triggered...
-
- 20 Nov, 2003 6 commits
-
-
David Stevens authored
RFC2710 says: 1) MLD messages are never sent for multicast addresses whose scope is 0 (reserved) or 1 (node-local). 2) MLD messages ARE sent for multicast addresses whose scope is 2 (link-local), including Solicited-Node multicast addersses [ADDR-ARCH], except for the link-scope, all-nodes address (FF02::1). The current MLDv1 code does not send reports for link-scope addresses and doesn't restrict scope 0. This may break switches that snoop reports for determining which ports should receive particular addresses. Patch below.
-
David S. Miller authored
into nuts.ninka.net:/disk1/davem/BK/net-2.5
-
Herbert Xu authored
-
David S. Miller authored
into nuts.ninka.net:/disk1/davem/BK/sparc-2.5
-
Amir Noam authored
Fix the creation of the /proc/net/bonding dir. Patch is against 2.6. Amir
-
Amir Noam authored
This patch (against latest 2.6.0) is also waiting for almost a month. It's already in 2.4 but is still very much needed for 2.6. Old ifenslave versions (like the one in Red Hat 9) don't work with the bonding module in the latest 2.6 kernel without it. Amir
-
- 19 Nov, 2003 8 commits
-
-
David S. Miller authored
-
David S. Miller authored
EBUS DMA fixes: - Add EBUS_DMA_FLAG_TCI_DISABLE that the client can set if it wants only to hear device interrupts, not DMA complete ones. - When initially resetting the EBUS DMA unit, put valid burst etc. encodings in the CSR register. Not doing this appears to leave the attached ISA device in a weird state. PCI FLOPPY fixes: - Do ebus_dma_enable() before ebus_dma_request() - In sun_pci_fd_set_dma_mode() do not forget to set the direction. - Set EBUS_DMA_FLAG_TCI_DISABLE in ebus_dma flags. - Make sure that in error paths sun_fdc/FCD1 will be -1 (invalid). Thanks to Soyoung Park for loaning her Ultra5 to me so I could fix this.
-
Thomas Habets authored
-
Hideaki Yoshifuji authored
-
David Stevens authored
-
David Stevens authored
-
David S. Miller authored
-
Andrew Morton authored
Original report and bug fix from: Amit Patel <patelamitv@yahoo.com> The problem was a signed vs unsigned char problem when computing luns for scanning.
-
- 18 Nov, 2003 11 commits
-
-
Andrew Morton authored
From: Adrian Bunk <bunk@fs.tum.de> Modular BINFMT_ELF doesn't build, and is pretty pathological anyway. So just make it a boolean rather than a tristate.
-
Andrew Morton authored
From: Herbert Xu <herbert@gondor.apana.org.au> The recent patch produces a message with no terminating newline on the machine in question. This is because one of the four bytes that you're printing out is NUL. The following patch avoids that problem.
-
Andrew Morton authored
From: Jeremy Higdon <jeremy@classic.engr.sgi.com> I believe there is a bug in kernel/resource.c. We (SGI sn2 I/O code) are using this for allocating dma map resources, and we tracked failures we were seeing to find_resource(). The problem is that when testing bounds in the forever loop, the end bound would be one higher than it should be if it gets set from another resource (it's set to the proper value when it gets set from the root), causing find_resource to return an invalid min/max when the requested size was one greater than would fit between two existing resources.
-
Andrew Morton authored
From: Andreas Gruenbacher <agruen@suse.de> 64-bit pointer arithmetic bug in xattr code The int offset is not enought to hold the difference between arbitraty pointers on 64-bit machines. Compute the offset of here and last inside HDR(bh) instead.
-
Andrew Morton authored
From: James Cleverdon <jamesclv@us.ibm.com> On summit-based machines the cpu_sibling_map data has been hosed for some time. I found out why in Intel's IA-32 Software Deveveopers' Manual Vol 2 under CPUID. Looks like the value that cpuid returns is the one latched at reset, and doesn't reflect any changes made by the BIOS later: * Local APIC ID (high byte of EBX)--this number is the 8-bit ID that is assigned to the local APIC on the processor during power up. This field was introduced in the Pentium 4 processor. Also, the code in init_intel was a bit overdesigned. Until Intel releases a chip with a non-power-of-2 sibling count on it, there's no point in all that bit bashing.
-
Andrew Morton authored
From: Jun Sun <jsun@mvista.com> It is needed for all those "__attribute_used__" etc to be valid. Also, it seems that when compiling a file ending in ".S", gcc-2.95.3 does not expand __GNUC__ at all. This causes the compiler version check to fail when building vsyscall.S. So add __ASSEMBLY__ wrappers in there.
-
Andrew Morton authored
Fix a couple of problems which were introduced by a recent race fix in the ext2 block allocator: - if the allocation attempt raced, and lost the race then a new attempt is made. But the earlier reservation must be put back first. Add a call to group_release_blocks() to fix this. - if the filesystem is genuinely corrupted then the code as-is can get stuck in an infinite loop, thinking that a blockgroup has free blocks and then discovering that its bitmap is full. Fix this by baling out after having scanned all blockgroups twice. (Thanks Muli Ben-Yehuda <mulix@mulix.org> for spotting this).
-
Andrew Morton authored
From: Alex Tomas <alex@clusterfs.com> If the ext3 inode allocator tries to claim an inode and fails because another CPU got in there first it will then advance onto the next blockgroup and try again. Change it to advance onto the next inode within the same blockgroup instead.
-
Andrew Morton authored
From: Jens Axboe <axboe@suse.de> Print a runtime warning if ide-scsi is used on a cd device. Modify the ide-scsi menuconfig help to reflect that ide-scsi should not be used for cd burning.
-
Andrew Morton authored
If both ext2 and ext3 are built as modules there is nothing to pull percpu_counter_mod() into the kernel build and the ext2 and ext3 modules do not load. So move percpu_counter_mod() out of lib.a.
-
Andrew Morton authored
It now has no callers.
-