- 29 8月, 2005 14 次提交
-
-
由 James Bottomley 提交于
The new bio code was incorrectly converted from stack allocated to kmalloc'd buffer handling. There are two places where it incorrectly uses sizeof(*sense) to get the size of the sense buffer. This actually produces one, so no sense data was ever getting back, causing failure in things like disk spin up. Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James Bottomley 提交于
The 3ware emulated commands all expect they are executing in the use_sg == 0 case, which isn't true either in the block layer rework or an SG_IO ioctl. Fix this by adding the correct kmapping of the first element in the sg list. Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 Christoph Hellwig 提交于
Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 akpm@osdl.org 提交于
Older gcc's require variable definitions at the beginning of a block. Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James Bottomley 提交于
I also tinkered with it's sense recognition routines to make them take scsi_sense_hdr structures instead of raw sense data. Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James Bottomley 提交于
This follows almost the identical model to sd, except that there's one ioctl which returns raw sense data, so it had to use scsi_execute() instead. Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James Bottomley 提交于
This one removes struct scsi_request entirely from sd. In the process, I noticed we have no callers of scsi_wait_req who don't immediately normalise the sense, so I updated the API to make it take a struct scsi_sense_hdr instead of simply a big sense buffer. Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James Bottomley 提交于
This one's slightly more difficult. The transport class uses REQ_FAILFAST, so another interface (scsi_execute) had to be invented to take the extra flag. Also, the sense functions are shifted around to allow spi_execute to place data directly into a struct scsi_sense_hdr. With this change, there's probably a lot of unnecessary sense buffer allocation going on which we can fix later. Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James Bottomley 提交于
After this, we just have some drivers, all the ULDs and the SPI transport class using scsi_wait_req(). Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 Pete Zaitcev 提交于
Here's the problem. Try to do this on 2.6.12: - Kill udev and HAL - Insert a CD-ROM into a SCSI or USB CD-ROM drive - Run dd if=/dev/scd0 - cat /sys/block/sr0/size - Eject the CD, insert a different one - Run dd if=/dev/scd0 This is likely to do "access beyond the end of device", if you let it - cat /sys/block/sr0/size This shows the size of a previous CD, even though dd was supposed to revalidate the device. - Run dd if=/dev/scd0 The second run of dd works correctly! The bug was introduced in 2.5.31, when Al fixes the recursive opens in partitioning. Before, the code worked like this: - Block layer called cdrom_open directly - cdrom_open called sr_open - sr_open called check_disk_change - check_disk_change called sr_media_change - sr_media_change did cd->needs_disk_change=1 - before returning sr_open tested cd->needs_disk_change and called get_sector_size. In 2.6.12, the check_disk_change is called from cdrom_open only. Thus: - Block layer calls sr_bd_open - sr_bd_open calls cdrom_open - cdrom_open calls sr_open - sr_open tests cd->needs_disk_change, which wasn't set yet; returns - cdrom_open calls check_disk_change - check_disk_change calls sr_media_change - sr_media_change does cd->needs_disk_change=1, but nobody cares Acked by: Alexander Viro <aviro@redhat.com> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 Dave C Boutcher 提交于
This patch fixes a long term borkenness in ibmvscsi where we were using the wrong timeout field from the scsi command (and using the wrong units.) Now broken by the fact that the scsi_cmnd timeout field is gone entirely. This only worked before because all the SCSI targets assumed that 0 was default. Signed-off-by: NDave Boutcher <boutcher@us.ibm.com> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 Adrian Bunk 提交于
C files should include the files with the prototypes for their global functions. Signed-off-by: NAdrian Bunk <bunk@stusta.de> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 Dave C Boutcher 提交于
With the removal of the spinlocking around eh calls, we need to add a little more locking back in, otherwise we do some naked list manipulation. Signed-off-by: NDave Boutcher <boutcher@us.ibm.com> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 Mark Haverkamp 提交于
This patch fixes the bad assumption of the aacraid driver with use_sg. I used the 3w-xxxx driver fix as a guide for this. Signed-off-by: NMark Haverkamp <markh@osdl.org> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
- 28 8月, 2005 4 次提交
-
-
由 James Bottomley 提交于
Original From: Mike Christie <michaelc@cs.wisc.edu> Add scsi_execute_req() as a replacement for scsi_wait_req() Fixed up various pieces (added REQ_SPECIAL and caught req use after free) Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James Bottomley 提交于
Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James Bottomley 提交于
Here's the proof of concept for this one. It converts scsi_wait_req to do correct REQ_BLOCK_PC submission (and works nicely in my setup). The final goal should be to eliminate struct scsi_request, but that can't be done until the character submission paths of sg and st are also modified. There's some loss of functionality to this: retries are no longer controllable (except by setting REQ_FASTFAIL) and the wait_req API needs to be altered, but it looks very nice. Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 Jan Blunck 提交于
I know that scsi procfs is legacy code but this is a fix for a memory leak. While reading through sg.c I realized that the implementation of /proc/scsi/sg/devices with seq_file is leaking memory due to freeing the pointer returned by the next() iterator method. Since next() might return NULL or an error this is wrong. This patch fixes it through using the seq_files private field for holding the reference to the iterator object. Here is a small bash script to trigger the leak. Use slabtop to watch the size-32 usage grow and grow. #!/bin/sh while true; do cat /proc/scsi/sg/devices > /dev/null done Signed-off-by: NJan Blunck <j.blunck@tu-harburg.de> Acked-by: NJames Bottomley <James.Bottomley@steeleye.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 24 8月, 2005 2 次提交
-
-
由 Al Viro 提交于
non-modular scsi drivers depend on built-in scsi Signed-off-by: NAl Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Al Viro 提交于
acornscsi had been broken for a long time; marked as such Signed-off-by: NAl Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 23 8月, 2005 1 次提交
-
-
由 Jeff Garzik 提交于
- bump versions where necessary - remove two duplicated+outdated doc comments - add MODULE_VERSION() to AHCI driver
-
- 15 8月, 2005 6 次提交
-
-
由 Christoph Hellwig 提交于
remove lots of completely dead code from aiclib, there's not a lot left and even what's left is rather useless. Signed-off-by: NChristoph Hellwig <hch@lst.de> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 Christoph Hellwig 提交于
remove ahd_tailq and do sane pci probing. ported over from aic7xxx. Signed-off-by: NChristoph Hellwig <hch@lst.de> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 Christoph Hellwig 提交于
remove some dead cruft, as done already in aic7xxx Signed-off-by: NChristoph Hellwig <hch@lst.de> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 Linus Torvalds 提交于
It introduces a repeatable oops in the driver, which is a bigger problem than the patch tries to solve. From the original description: Author: Jamie Lenehan <lenehan@twibble.org> Date: Thu Mar 3 14:41:40 2005 +0200 [PATCH] dc395x: Fix support for highmem From: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Removes the page_to_virt and maps sg lists dynamically. This makes the driver work with highmem pages. Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: NJamie Lenehan <lenehan@twibble.org> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com> Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 James Bottomley 提交于
I recently tried to construct a totally generic transport class and found there were certain features missing from the current abstract transport class. Most notable is that you have to hang the data on the class_device but most of the API is framed in terms of the generic device, not the class_device. These changes are two fold - Provide the class_device to all of the setup and configure APIs - Provide and extra API to take the device and the attribute class and return the corresponding class_device Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James Bottomley 提交于
This patch is necessary if we begin exposing underlying physical disks (which can attach to the SPI transport class) of the hardware RAID cards, since we don't want any SPI parameters binding to the RAID devices. Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
- 13 8月, 2005 11 次提交
-
-
由 James Bottomley 提交于
From: Christoph Hellwig <hch@lst.de> Multi-function cards need to inherit the PCI flags from the master PCI device. Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 akpm@osdl.org 提交于
From: "Martin J. Bligh" <mbligh@mbligh.org> drivers/scsi/aic7xxx/aic7770.c: In function `aic7770_config': drivers/scsi/aic7xxx/aic7770.c:129: warning: unused variable `l' Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 akpm@osdl.org 提交于
From: Andrew Morton <akpm@osdl.org> drivers/scsi/scsi.c: In function `scsi_softirq': drivers/scsi/scsi.c:814: warning: int format, long int arg (arg 4) Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James.Smart@Emulex.Com 提交于
Signed-off-by: NJames Smart <James.Smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James.Smart@Emulex.Com 提交于
Replace use of lpfc_put_lun with midlayer's int_to_scsilun Remove driver's local definition of lpfc_put_lun (which converts an int back to a 64-bit LUN) and replace it's use with the recently added int_to_scsilun function provided by the midlayer. Note: Embedding midlayer structure in our structure caused need for more files to include midlayer headers. Signed-off-by: NJames Smart <James.Smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James.Smart@Emulex.Com 提交于
Fix handling of the dev_loss and nodev timeouts. Symptoms: when remote port disappears for a period of time longer then either nodev_tmo or dev_loss_tmo, the lpfc driver worker thread will stall removing that remote port. Cause: removing remote port involves un-blocking and sync-ing corresponding block device queue. But corresponding node in the lpfc driver is still in the NPR(?node port recovery?) state and mid-layer gets SCSI_MLQUEUE_HOST_BUSY as a return value when it is trying to call queuecommand() with command for that node (AKA remote port) Fix: Instead of returning SCSI_MLQUEUE_HOST_BUS from queuecommand() for nodes in NPR states complete it with retry-able error code DID_BUS_BUSY Signed-off-by: NJames Smart <James.Smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James.Smart@Emulex.Com 提交于
Fix panic in lpfc_get_stats() Symptoms: Panic on sysfs stats access Cause: In lpfc_get_stats() we are writing to memory that we do not own. Fix: Fix our stats structure allocation. Embed phba->link_stats in struct lpfc_hba and stop treating it like rogue structure. Note: Embedding midlayer/transport structure in our structure caused need for more files to include midlayer/transport headers. Signed-off-by: NJames Smart <James.Smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James.Smart@Emulex.Com 提交于
Clear task management bits when preparing SCSI commands In lpfc_scsi_prep_cmnd, clear the task management bits (fcpCntl2 member in the fcp_cmd structure) when preparing regular SCSI commands. Signed-off-by: NJames Smart <James.Smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James.Smart@Emulex.Com 提交于
Fix panic on lip and cable pull Symptoms: Panic on lip or cable pull Cause: Use after free of nlp in lpfc_nlp_remove() Fix: Do not make FC transport calls after a node is removed. Transport calls are disabled by ignoring the initial delete transition. Signed-off-by: NJames Smart <James.Smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James.Smart@Emulex.Com 提交于
IOCB BDE not getting fully initialized during reuse Symptoms: Driver gets Status 3 and Reason 0x13 on IOCB completions. Cause: The IOCB bpl.bdeSize and bdeFlags are not getting initialized on reuse. Fix: Reinitialize these fields in prep_dma each time an IOCB is used. Signed-off-by: NJames Smart <James.Smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
由 James Bottomley 提交于
From: Steve Wilcox <spwilcox@att.com> In order to properly report LUN's > 7, the DEC HSG80 definition in scsi_devinfo.c needs to include BLIST_REPORTLUN2 rather than BLIST_SPARSELUN. I've tested this change with several HSG firmware revisions and with both Emulex and Qlogic HBA's. Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
- 11 8月, 2005 2 次提交
-
-
由 Tejun Heo 提交于
Yet another hack due to the fact that libata is the only user of SCSI's ->eh_strategy_handler() hook.
-
由 Tejun Heo 提交于
sata_sx4 directly references sg->length to calculate total_len in pdc20621_dma_prep(). This is incorrect as dma_map_sg() could have merged multiple sg's into one and, in such case, sg->length doesn't reflect true size of the entry. This patch makes it use sg_dma_len(sg). Signed-off-by: NTejun Heo <htejun@gmail.com> Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
-