- 17 11月, 2010 1 次提交
-
-
由 Jeff Garzik 提交于
Move the mid-layer's ->queuecommand() invocation from being locked with the host lock to being unlocked to facilitate speeding up the critical path for drivers who don't need this lock taken anyway. The patch below presents a simple SCSI host lock push-down as an equivalent transformation. No locking or other behavior should change with this patch. All existing bugs and locking orders are preserved. Additionally, add one parameter to queuecommand, struct Scsi_Host * and remove one parameter from queuecommand, void (*done)(struct scsi_cmnd *) Scsi_Host* is a convenient pointer that most host drivers need anyway, and 'done' is redundant to struct scsi_cmnd->scsi_done. Minimal code disturbance was attempted with this change. Most drivers needed only two one-line modifications for their host lock push-down. Signed-off-by: NJeff Garzik <jgarzik@redhat.com> Acked-by: NJames Bottomley <James.Bottomley@suse.de> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 19 1月, 2010 1 次提交
-
-
由 Finn Thain 提交于
The mac_esp PIO algorithm no longer works in 2.6.31 and crashes my Centris 660av. So here's a better one. Also, force async with esp_set_offset() rather than esp_slave_configure(). One of the SCSI drives I tested still doesn't like the PIO mode and fails with "esp: esp0: Reconnect IRQ2 timeout" (the same drive works fine in PDMA mode). This failure happens when esp_reconnect_with_tag() tries to read in two tag bytes but the chip only provides one (0x20). I don't know what causes this. I decided not to waste any more time trying to fix it because the best solution is to rip out the PIO mode altogether and use the DMA engine. Signed-off-by: NFinn Thain <fthain@telegraphics.com.au> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
- 30 12月, 2008 1 次提交
-
-
由 Julia Lawall 提交于
Use the macro DIV_ROUND_UP and eliminate the variable rounded_up, as suggested by Matthew Wilcox. Signed-off-by: NJulia Lawall <julia@diku.dk> Cc: David Miller <davem@davemloft.net> Reviewed-by: NMatthew Wilcox <willy@linux.intel.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
-
- 12 7月, 2008 1 次提交
-
-
由 David S. Miller 提交于
The features enable bit has to be set in the config2 register before we can be absolutely sure we will probe a correct part unique ID and family code from the transfer-count-high register. Also, reload the CFACT, STP, SOFF, and TIMEO near the end of esp_reset_esp(). From a patch by Maciej W. Rozycki. Signed-off-by: NDavid S. Miller <davem@davemloft.net> Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
-
- 26 6月, 2008 1 次提交
-
-
由 James Bottomley 提交于
The esp driver currently does hand rolled reference counting of its target. It's much easier to do what it needs to do if it's plugged into the mid-layer callbacks (target_alloc and target_destroy) which were designed for this case, so do it this way and get rid of the internal target reference count. Acked-by: NDavid S. Miller <davem@davemloft.net> Cc: Stable Tree <stable@kernel.org> Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
-
- 25 6月, 2008 1 次提交
-
-
由 David S. Miller 提交于
OOPS reported by Friedrich Oslage <bluebird@porno-bullen.de> The problem here is that tp->starget is set every time a lun is allocated for a particular target so we can catch the sdev_target parent value. The reset handler uses the NULL'ness of this value to determine which targets are active. But esp_slave_destroy() does not NULL out this value when appropriate. So for every target that doesn't respond, the SCSI bus scan causes a stale pointer to be left here, with ensuing crashes like you're seeing. Signed-off-by: NDavid S. Miller <davem@davemloft.net> Cc: Stable Tree <stable@kernel.org> Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
-
- 28 4月, 2008 1 次提交
-
-
由 Finn Thain 提交于
Replace the mac_esp driver with a new one based on the esp_scsi core. For esp_scsi: add support for sync transfers for the PIO mode, add a new esp_driver_ops method to get the maximum dma transfer size (like the old NCR53C9x driver), and some cleanups. Signed-off-by: NFinn Thain <fthain@telegraphics.com.au> Acked-by: NDavid S. Miller <davem@davemloft.net> Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
-
- 11 12月, 2007 1 次提交
-
-
由 Maciej W. Rozycki 提交于
The esp_reset_cleanup() function is called with the host lock held and invokes starget_for_each_device() which wants to take it too. Here is a fix along the lines of shost_for_each_device()/__shost_for_each_device() adding a __starget_for_each_device() counterpart which assumes the lock has already been taken. Eventually, I think the driver should get modified so that more work is done as a softirq rather than in the interrupt context, but for now it fixes a bug that causes the spinlock debugger to fire. While at it, it fixes a small number of cosmetic problems with starget_for_each_device() too. Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org> Acked-by: NDavid S. Miller <davem@davemloft.net> Cc: James Bottomley <James.Bottomley@steeleye.com> Cc: <stable@kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 13 10月, 2007 1 次提交
-
-
由 Adrian Bunk 提交于
Since scsi_esp_{,un}register() are EXPORT_SYMBOL'ed, these functions (and the functions they use) can't be __dev{init,exit}. Based on a bug report by Rob Landley. Signed-off-by: NAdrian Bunk <bunk@kernel.org> Acked-by: NDavid S. Miller <davem@davemloft.net> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
- 26 9月, 2007 1 次提交
-
-
由 David Miller 提交于
Because the ->unique_id is set too late, the ESP scsi host instance numbers in the kernel log during probing are wrong. Bug reported by Meelis Roos. Signed-off-by: NDavid S. Miller <davem@davemloft.net> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
- 18 6月, 2007 1 次提交
-
-
由 FUJITA Tomonori 提交于
- convert to use the new accessors for the sg lists and the parameters. Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Cc: David Miller <davem@davemloft.net> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
- 14 6月, 2007 1 次提交
-
-
由 Thomas Bogendoerfer 提交于
esp_reset_cleanup() does everything necessary except clear the flag, so we never exit resetting state. Signed-off-by: NDavid S. Miller <davem@davemloft.net> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
- 01 6月, 2007 1 次提交
-
-
由 Christoph Hellwig 提交于
Signed-off-by: NChristoph Hellwig <hch@lst.de> Acked-by: NDavid Miller <davem@davemloft.net> Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
-
- 08 5月, 2007 1 次提交
-
-
由 Martin Habets 提交于
Signed-off-by: NMartin Habets <errandir_news@mph.eclipse.co.uk> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 28 4月, 2007 1 次提交
-
-
由 Alexey Dobriyan 提交于
irqreturn.h for irqreturn_t and dma_addr_t being u128 warnings ;-) Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 27 4月, 2007 1 次提交
-
-
由 David S. Miller 提交于
Major features: 1) Tagged queuing support. 2) Will properly negotiate for synchronous transfers even on devices that reject the wide negotiation message, such as CDROMs 3) Significantly lower kernel stack usage in interrupt handler path by elimination of function vector arrays, replaced by a top-level switch statement state machine. 4) Uses generic scsi infrastructure as much as possible to avoid code duplication. 5) Automatic request of sense data in response to CHECK_CONDITION 6) Portable to other platforms using ESP such as DEC and Sun3 systems. Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-