aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
Commit message (Collapse)AuthorAgeFilesLines
* Automatic merge of 'misc-fixes' branch fromLinus Torvalds2005-05-2914-5/+31
|\ | | | | | | rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
| * libata: bump versionJeff Garzik2005-05-291-1/+1
| |
| * Automatic merge of /spare/repo/netdev-2.6 branch use-after-unmap2005-05-2913-4/+28
| |\
| | * libata: Fix use-after-iounmapJeff Garzik2005-05-2613-4/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Jens Axboe pointed out that the iounmap() call in libata was occurring too early, and some drivers (ahci, probably others) were using ioremap'd memory after it had been unmapped. The patch should address that problem by way of improving the libata driver API: * move ->host_stop() call after all ->port_stop() calls have occurred. * create default helper function ata_host_stop(), and move iounmap() call there. * add ->host_stop_prewalk() hook, use it in sata_qstor.c (hi Mark). sata_qstor appears to require the host-stop-before-port-stop ordering that existed prior to applying the attached patch.
| * | [PATCH] drivers/scsi/ahci: add #include req'd for the DMA_{64,32}BIT_MASK ↵domen@coderock.org2005-05-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | constants The previous patch did not compile cleanly on all architectures so here's a fixed one which #includes <linux/dma-mapping.h>. Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling pci_set_dma_mask() or pci_set_consistent_dma_mask() This patch includes dma-mapping.h explicitly because it caused errors on some architectures otherwise. See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch> Signed-off-by: Domen Puncer <domen@coderock.org> diff -puN drivers/scsi/ahci.c~dma_mask-drivers_scsi_ahci drivers/scsi/ahci.c
| * | [PATCH] drivers/scsi/sata_vsc: add #include req'd for DMA_32BIT_MASK constantdomen@coderock.org2005-05-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous patch did not compile cleanly on all architectures so here's a fixed one which #includes <linux/dma-mapping.h>. Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling pci_set_dma_mask() or pci_set_consistent_dma_mask() This patch includes dma-mapping.h explicitly because it caused errors on some architectures otherwise. See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch> Signed-off-by: Domen Puncer <domen@coderock.org> diff -puN drivers/scsi/sata_vsc.c~dma_mask-drivers_scsi_sata_vsc drivers/scsi/sata_vsc.c
* | | [PATCH] swsusp: ahd_dv_0 can't be stoppedShaohua Li2005-05-281-1/+1
|/ / | | | | | | | | | | | | | | | | This driver wants to set PF_NOFREEZE. Cc: James Bottomley <James.Bottomley@steeleye.com> Cc: Pavel Machek <pavel@ucw.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | Merge of 'misc-fixes' branch fromLinus Torvalds2005-05-261-6/+7
|\ \ | | | | | | | | | rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
| * | [PATCH] libata: Fix zero sg_dma_len() on 64-bit platformAlbert Lee2005-05-261-6/+7
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When testing ATAPI PIO data transfer on the ppc64 platform, __atapi_pio_bytes() got zero when sg_dma_len() is used. I checked the <asm-ppc64/scatterlish.h>, the struct scatterlist is defined as: struct scatterlist { struct page *page; unsigned int offset; unsigned int length; /* For TCE support */ u32 dma_address; u32 dma_length; }; #define sg_dma_address(sg) ((sg)->dma_address) #define sg_dma_len(sg) ((sg)->dma_length) So, if the scatterlist is not DMA mapped, sg_dma_len() will return zero on ppc64. The same problem should occur on the x86-64 platform. On the i386 platform, sg_dma_len() returns sg->length, that's why the problem does not occur on an i386. Changes: - Use sg->length if the scatterlist is not DMA mapped (yet). Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
* | [PATCH] ide-scsi: kmap scatter/gather before doing PIO Stuart Hayes2005-05-261-4/+24
| | | | | | | | | | | | | | | | | | | | | | From: Stuart Hayes <Stuart_Hayes@dell.com> The system can panic with a null pointer dereference using ide-scsi if PIO is being done on scatter gather pages that are in high memory, because page_address() returns 0. We are actually seeing this using a tape drive. This patch will kmap_atomic() the pages before performing PIO. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
* | [PATCH] convert IDE device drivers to driver-modelBartlomiej Zolnierkiewicz2005-05-261-32/+26
|/ | | | | | | | | | | | | | | | | | | * add ide_bus_match() and export ide_bus_type * split ide_remove_driver_from_hwgroup() out of ide_unregister() * move device cleanup from ide_unregister() to drive_release_dev() * convert ide_driver_t->name to driver->name * convert ide_driver_t->{attach,cleanup} to driver->{probe,remove} * remove ide_driver_t->busy as ide_bus_type->subsys.rwsem protects against concurrent ->{probe,remove} calls * make ide_{un}register_driver() void as it cannot fail now * use driver_{un}register() directly, remove ide_{un}register_driver() * use device_register() instead of ata_attach(), remove ata_attach() * add proc_print_driver() and ide_drivers_show(), remove ide_drivers_op * fix ide_replace_subdriver() and move it to ide-proc.c * remove ide_driver_t->drives, ide_drives and drives_lock * remove ide_driver_t->drivers, drivers and drivers_lock * remove ide_drive_t->driver and DRIVER() macro Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
* [PATCH] sata_promise: add PCI ID for FastTrak TX2200 2-portsFrancisco Javier2005-05-251-0/+2
|
* [PATCH] sata_sil: new ID 1002:437A for ATI IXP400NAKAMURA Kenta2005-05-251-0/+1
|
* [PATCH] aic7xxx_osm build fixAndrew Morton2005-05-241-2/+5
| | | | | | | | Fix a c99ism. Cc: James Bottomley <James.Bottomley@steeleye.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Automatic merge of rsync://www.parisc-linux.org/~jejb/git/scsi-for-linus-2.6.gitLinus Torvalds2005-05-207-1310/+524
|\
| * [SCSI] aic7xxx: fix U160 modeJames Bottomley2005-05-201-0/+11
| | | | | | | | | | | | | | | | | | | | The new period/dt setting routines don't get the coupling of these parameters correct. This means that Domain Validation never gets DT set, and thus the drive gets restricted to U80. Fix this by restoring the couplings in the set routines. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic7xxx: add back lockingJames Bottomley2005-05-201-4/+11
| | | | | | | | | | | | | | | | Tampering with the settings has to be done under the host lock ... slave_alloc isn't called under any lock, so this has to be done explicitly. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic7xxx: make correct use of slave_alloc/destroy and remove the per ↵James Bottomley2005-05-202-112/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | device timer The allocation of all of our components should be done in slave alloc. Currently it's rather fancifully refcounted in the queuecommand callback. This patch moves allocation and destroy to their correct places in slave_alloc/slave_destory. Now we can guarantee that everywhere a device is requested, it's actually been allocated, so don't check for this anymore. Additionally, the per device busy timer was the only source of potential use after free. It's been deleted because Linux does the correct thing with busy returns, so there's no need to implement a separate timer in the driver. Finally, implement code that forces all the device parameters to zero (i.e. async and narrow) in the slave alloc, inform the spi class of the bios recorded maximums and wait until slave configure before trying anything more adventurous. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic7xxx: remove the completeqJames Bottomley2005-05-202-133/+5
| | | | | | | | | | | | | | | | This should finish the spurious queue removal from aic7xxx (there are other queues that are probably unnecessary, but at least the major and obviously unnecessary ones are done with). Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic7xxx: remove the last vestiges of the runqJames Bottomley2005-05-202-7/+0
| | | | | | | | | | | | | | This was rendered obsolete by the busyq removal; remove some of the last remnants of its presence. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic7xxx: remove usage of obsolete typedefsChristoph Hellwig2005-05-203-51/+38
| | | | | | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] remove dma_mask hacksChristoph Hellwig2005-05-203-46/+6
| | | | | | | | | | | | | | pci_alloc_consistent is under 4G by default. Also simplify the definition of bus_dmamap_t. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic7xxx: remove Linux 2.4 ifdefsChristoph Hellwig2005-05-205-472/+5
| | | | | | | | | | | | | | There's not much sense in sharing code anymore now that aic7xxx uses various transport class facilities. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic7xxx: remove some DV leftoversChristoph Hellwig2005-05-201-6/+0
| | | | | | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] remove aic7xxx busyqJames Bottomley2005-05-202-438/+191
| | | | | | | | | | | | | | | | | | | | | | | | | | The aic7xxx driver has two spurious queues in it's linux glue code: the busyq which queues incoming commands to the driver and the completeq which queues finished commands before sending them back to the mid-layer This patch just removes the busyq and makes the aic finally return the correct status to get the mid-layer to manage its queueing, so a command is either committed to the sequencer or returned to the midlayer for requeue. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] correct aic7xxx period setting routinesJames Bottomley2005-05-201-34/+37
| | | | | | | | | | | | | | | | This is similar to the previous sym2 problem. For Domain Validation to work we can't allow any period setting to turn wide on if it was previously off. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] implement parameter limits in the SPI transport classJames Bottomley2005-05-201-27/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There's a basic need not to have parameters go under or over certain values when doing domain validation. The basic ones are max_offset, max_width and min_period This patch makes the transport class take and enforce these three limits. Currently they can be set by the user, although they could obviously be read from the HBA's on-board NVRAM area during slave_configure (if it has one). Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | Merge of ↵2005-05-172-6/+11
|\ \ | | | | | | | | | rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git
| * | [PATCH] libata: flush COMRESET set and clearBrett Russ2005-05-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updated patch to fix erroneous flush of COMRESET set and missing flush of COMRESET clear. Created a new routine scr_write_flush() to try to prevent this in the future. Also, this patch is based on libata-2.6 instead of the previous libata-dev-2.6 based patch. Signed-off-by: Brett Russ <russb@emc.com> Index: libata-2.6/drivers/scsi/libata-core.c ===================================================================
| * | [PATCH] libata: Prevent the interrupt handler from completing a command twiceAlbert Lee2005-05-151-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: During the libata CD-ROM stress test, sometimes the "BUG: timeout without command" error is seen. Root cause: Unexpected interrupt occurs after the ata_qc_complete() is called, but before the SCSI error handler. The interrupt handler is invoked before the SCSI error handler, and it clears the command by calling ata_qc_complete() again. Later when the SCSI error handler is run, the ata_queued_cmd is already gone, causing the "BUG: timeout without command" error. Changes: - Use the ATA_QCFLAG_ACTIVE flag to prevent the interrupt handler from completing the command twice, before the scsi_error_handler. Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
| * | [PATCH] libata: stop setting sdev->host->max_sectors for lba48 drivesJohn W. Linville2005-05-151-1/+4
| |/ | | | | | | | | | | | | | | Avoid changing sdev->host->max_sectors because it can prevent use of non-lba48 drives on other ports of the same adapter. Signed-off-by: Stuart Hayes <stuart_hayes@Dell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | [PATCH] typo fix in drivers/scsi/sata_svw.c commentRolf Eike Beer2005-05-121-1/+1
|/ | | | Add missing brace.
* Automatic merge of rsync://www.parisc-linux.org/~jejb/git/scsi-for-linus-2.6.gitLinus Torvalds2005-05-0610-37/+47
|\
| * [SCSI] correct the sym2 period setting routinesJames Bottomley2005-05-061-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | There's a slight bug in the routines in that if the period requires dt, then the routine will unconditionally set it. DT may only be set if Wide is also set, so this turns back on the wide bit. For domain validation to work correctly, we need to observe the wide bit absolutely. Acked by: Matthew Wilcox <willy@debian.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] fix command retries in spi_transport classJames Bottomley2005-05-051-15/+34
| | | | | | | | | | | | | | | | | | | | | | The premise is that domain validation is likely to trigger errors which it wants to know about, so the only time it should be retrying them is when it gets a unit attention (likely as the result of a previous bus or device reset). Ironically, the previous coding retried three times in all cases except those of unit attention. The attached fixes this to do the right thing. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] call correct scsi_done function in scsi_dispatch_cmdMike Christie2005-05-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | scsi_dispatch_cmd currently calls scsi_done when the device is in the SDEV_DEL state, but at this point the command has not had a timer added to it (this is done a couple lines down) so scsi_done just returns and the command is lost. The attached patch made against 2.6.12-rc3 calls __scsi_done in this case so the comamnd will be returned upwards. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aacraid: Fix adapter open errorMark Haverkamp2005-04-261-1/+1
| | | | | | | | | | | | | | | | This fixes an error on the device open code that allows a non-existent device to be opened causing later panic problems. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] drivers/scsi/sr_ioctl.c: check for failed allocationNate Dailey2005-04-211-0/+3
| | | | | | | | | | | | | | | | I noticed a case in sr_ioctl.c's sr_get_mcn where a buffer is allocated, but the pointer isn't checked for null. Signed-off-by: Nate Dailey <nate.dailey@stratus.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic7xxx: remove inquiry sniffing leftoversChristoph Hellwig2005-04-212-8/+0
| | | | | | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] qla2xxx: remove a transport #includeAndrew Vasquez2005-04-213-10/+5
| | | | | | | | | | | | | | | | Make transport-functions structure non-static. Replace #include of scsi_transport.h with a forward declaration. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | [PATCH] drivers/scsi/sym53c416.c: fix a wrong checkAdrian Bunk2005-05-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The Coverity checker found that this for loop was wrong. This patch changes it to what seems to be intended. Signed-off-by: Adrian Bunk <bunk@stusta.de> Cc: James Bottomley <James.Bottomley@steeleye.com> Cc: Matthew Wilcox <willy@debian.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] fix NCR53C9x.c compile warningAdrian Bunk2005-05-051-1/+4
| | | | | | | | | | | | | | | | | | drivers/scsi/NCR53C9x.c: In function `esp_do_data': drivers/scsi/NCR53C9x.c:1838: warning: unused variable `flags' Signed-off-by: Adrian Bunk <bunk@fs.tum.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] ISA DMA Kconfig fixes - part 3Al Viro2005-05-041-6/+6
| | | | | | | | | | | | | | Drivers that expect ISA DMA API are marked as such in Kconfig. Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] make lots of things staticAdrian Bunk2005-05-011-3/+3
| | | | | | | | | | | | | | | | Another large rollup of various patches from Adrian which make things static where they were needlessly exported. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] ultrastor build fixakpm@osdl.org2005-05-011-1/+1
| | | | | | | | | | | | | | | | | | Fix a typo. James Bottomley <James.Bottomley@steeleye.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] qla trivial iomem annotationAl Viro2005-04-261-1/+1
| | | | | | | | | | Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] drivers/scsi NULL noise removalAl Viro2005-04-262-4/+4
| | | | | | | | | | | | | | NULL noise in sbus scsi drivers got missed Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [SPARC]: module version cleanupsTom 'spot' Callaway2005-04-241-0/+5
| | | | | | | | | | | | | | | | | | Minor cleanups for sparc specific drivers (sunbmac, sunqe, sunlance, sunhme, esp) so that they have a full module version definition that is consistent with other upstream drivers. Signed-off-by: Tom 'spot' Callaway <tcallawa@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | [PATCH] SCSI GFP fixesAl Viro2005-04-242-2/+2
|/ | | | | | | | | Somebody forgot that | has higher priority than ?:. As the result, allocation is done with bogus flags - instead of GFP_ATOMIC + possibly GFP_DMA we always get GFP_DMA and no GFP_ATOMIC. Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Fix aic7xxx_osm.c compile with older gcc'sJames Bottomley2005-04-211-3/+2
| | | | | | | | | My version of gcc doesn't warn about this error (declaration in the middle of a set of statements). The fix is simple (this also corrects return code; for init functions it should be zero or error).