aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [SCSI] gdth: Remove 2.4.x support, in-kernel changelogJeff Garzik2007-10-124-453/+2
| | | | | | | | | | | | | * Remove in-source changelog. It's archived permanently in git and various kernel archives, and changelogs should exist purely in git. * Remove 2.4.x kernel support. It is an active obstacle to modernizing this driver, at this point. This includes killing gdth_kcompat.h which is 100% redundant in modern kernels. Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] gdth: split out pci probingChristoph Hellwig2007-10-121-145/+167
| | | | | | | | Split out per-device pci probing and put it under proper CONFIG_PCI. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] gdth: split out eisa probingChristoph Hellwig2007-10-121-126/+159
| | | | | | | | | Split eisa probing into it's own helper, and do proper error unwinding. Protect EISA probind by the proper CONFIG_EISA symbol. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] gdth: split out isa probingChristoph Hellwig2007-10-121-134/+162
| | | | | | | | | | | | (note: this is ontop of Jeff's pci cleanup patch) Split out isa probing into a helper of it's own. Error handling is cleaned up, but errors are not propagated yet. Also enclose the isa probe under the proper CONFIG_ISA symbol instead of the !IA64 hack. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* gdth: Make one abuse of scsi_cmnd less obviousMatthew Wilcox2007-10-121-16/+19
| | | | | | | | | | | Rather than having internal commands abuse scsi_done to call gdth_scsi_done, have all the places that use to call scsi_done directly call gdth_scsi_done, which now checks whether the command was internal, and calls scsi_done if not. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] NCR5380: Use scsi_eh API for REQUEST_SENSE invocationBoaz Harrosh2007-10-124-40/+31
| | | | | | | | - Use new scsi_eh_prep/restor_cmnd() for synchronous REQUEST_SENSE invocation. Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] usb storage: use scsi_eh API in REQUEST_SENSE executionBoaz Harrosh2007-10-121-42/+4
| | | | | | | | | - Use new scsi_eh_prep/restor_cmnd() for synchronous REQUEST_SENSE invocation. Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] scsi_error: Refactoring scsi_error to facilitate in synchronous ↵Boaz Harrosh2007-10-122-47/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | REQUEST_SENSE - Drivers/transports that want to send a synchronous REQUEST_SENSE command as part of their .queuecommand sequence, have 2 new API's that facilitate in doing so and abstract them from scsi-ml internals. void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd, struct scsi_eh_save *sesci, unsigned char *cmnd, int cmnd_size, int sense_bytes) Will hijack a command and prepare it for request sense if needed. And will save any later needed info into a scsi_eh_save structure. void scsi_eh_restore_cmnd(struct scsi_cmnd* scmd, struct scsi_eh_save *sesci); Will undo any changes done to a command by above function. Making it ready for completion. - Re-factor scsi_send_eh_cmnd() to use above APIs Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] scsi_error: code cleanup before refactoring of scsi_send_eh_cmnd()Boaz Harrosh2007-10-121-32/+39
| | | | | | | | | | | | | | | - regrouped variables for easier reviewing of next patch - Support of cmnd==NULL in call to scsi_send_eh_cmnd() - In the @sense_bytes case set transfer size to the minimum size of sense_buffer and passed @sense_bytes. cmnd[4] is set accordingly. - REQUEST_SENSE is set into cmnd[0] so if @sense_bytes is not Zero passed @cmnd should be NULL. - Also save/restore resid of failed command. - Adjust caller Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fdomain: fix CONFIG_PCI=n warningsGabriel C2007-10-121-1/+4
| | | | | | | | | | | I get this warnings on current git when CONFIG_PCI is not set : drivers/scsi/fdomain.c:390: warning: 'PCI_dev' defined but not used drivers/scsi/fdomain.c:1768: warning: 'fdomain_pci_tbl' defined but not used Signed-off-by: Gabriel Craciunescu <nix.or.die@googlemail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] dpt_i2o: Fix section mismatchJoe Korty2007-10-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Fix section mismatch in the Adaptec DPT SCSI Raid driver. WARNING: vmlinux.o(.init.text+0x1fcd2): Section mismatch: reference to .exit.text:adpt_exit (between 'adpt_init' and 'ahc_linux_init') This warning is due to adaptec device detection calling the exit routine on failure to properly register the adaptec device. The exit routine + call was added on July 30 by Commit: 55d9fcf57ba5ec427544fca7abc335cf3da78160 Author: Matthew Wilcox Subject: [SCSI] dpt_i2o: convert to SCSI hotplug model. Mathew: isn't a module exit routine a little too strong to be calling on the failure of a single device? Module exit implies that other, non-failing adaptec raid devices will also get shut down. Signed-off-by: Joe Korty <joe.korty@ccur.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] scsi_transport_iscsi: add list, mutex includesMichael S. Tsirkin2007-10-121-0/+2
| | | | | | | | | | | | scsi/scsi_transport_iscsi.h uses struct mutex and struct list_head, so while linux/mutex.h and linux/list.h seem to be pulled in indirectly by one of the headers it includes, the right thing is to include linux/mutex.h and linus/list.h directly. Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Acked-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] imm: fix check-after-useAdrian Bunk2007-10-121-4/+0
| | | | | | | | | | | | The Coverity checker spotted that we have already oops'ed if "cmd" was NULL. Since "cmd" being NULL doesn't seem to be possible at this point this patch removes the NULL check. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] arcmsr: build fixAndrew Morton2007-10-121-0/+4
| | | | | | | | drivers/scsi/arcmsr/arcmsr_hba.c:129: error: 'arcmsr_pci_error_detected' undeclared here (not in a function) drivers/scsi/arcmsr/arcmsr_hba.c:130: error: 'arcmsr_pci_slot_reset' undeclared here (not in a function) Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] nsp_cs: remove kernel 2.4 codeAdrian Bunk2007-10-122-162/+5
| | | | | | Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] ibmmca: Remove dead references to MODULE_PARM macroRobert P. J. Day2007-10-121-7/+0
| | | | | | | | Remove the useless references to the obsolete MODULE_PARM macro. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Changes to work on pariscMatthew Wilcox2007-10-122-6/+5
| | | | | | | | | | | | Change PortAddr to be an unsigned int instead of an unsigned short (IO Port address are 24 bit on parisc). Fix a couple of printk argument warnings. Remove the Kconfig marking as 'BROKEN'. I haven't removed the #warning yet because virt_to_bus/bus_to_virt are only eliminated for narrow boards. Wide boards need more work. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Use dma mapping for overrun bufferMatthew Wilcox2007-10-121-18/+24
| | | | | | | | | Convert the call to virt_to_bus() into a call to dma_map_single(). Some architectures may require different DMA addresses for different devices, so allocate one overrun buffer per host rather than one for all cards. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Remove a couple of uses of bus_to_virtMatthew Wilcox2007-10-121-26/+79
| | | | | | | | | | | | | Replace ASC_VADDR_TO_U32 and ASC_U32_TO_VADDR with an auto-expanding array that maps pointers to 32-bit IDs and back. One of the uses of ASC_VADDR_TO_U32 was in error; it should have been using ADV_VADDR_TO_U32. Also replace the use of virt_to_bus when setting the sense_address with a call to dma_map_single() followed by dma_cache_sync. This part cribbed from the 53c700 driver. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: convert to use the data buffer accessorsMatthew Wilcox2007-10-121-184/+52
| | | | | | | | | | | | | | - remove the unnecessary map_single path. - convert to use the new accessors for the sg lists and the parameters. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> - convert the statistics to not distinguish between single and sg xfers - replace ASC_CEILING with DIV_ROUND_UP - remove an obsolete comment Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Remove DvcGetPhyAddrMatthew Wilcox2007-10-121-70/+3
| | | | | | | | This rather complex function boiled down to calling virt_to_bus(). Also get rid of some obsolete defines and variables that could never vary. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Move a couple of fields from struct board to struct adv_dvcMatthew Wilcox2007-10-121-101/+92
| | | | | | | | | | | | board->carrp is a duplicate of asc_dvc->carrier_buf, so cut out the middle-man and assign directly to carrier_buf. Move orig_reqp to adv_dvc too, since it's wide-board specific. Also eliminate an unnecessary BUG_ON (we'll never get there with a NULL carrier_buf, and will crash if we do). The bulk of this patch is rearranging structures so everything's declared in the right order. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Make sdtr_period_tbl a pointerMatthew Wilcox2007-10-121-65/+25
| | | | | | | | | It's somewhat neater to make this a pointer to one of two tables than initialising an array in the driver. Also delete the unused AscSynIndexToPeriod and rename host_init_sdtr_index to min_sdtr_index Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Get rid of board index numberMatthew Wilcox2007-10-121-136/+100
| | | | | | | | It's always a mistake to have your own index of boards; just use the scsi host number. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Remove private lockMatthew Wilcox2007-10-121-16/+5
| | | | | | | The board lock was essentially identical with the host lock. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Sort out debug macrosMatthew Wilcox2007-10-121-366/+262
| | | | | | | | | | | | | | | | | | | | Replace ASC_DBG{,1,2,3,4,5} with a single variadic macro ASC_DBG. As suggested by Jeff Garzik, include DRV_NAME and __FUNCTION__ in the output. Change all callers to no longer include the function name in the string. Enabling ADVANSYS_DEBUG to test this feature shows a lot of other problems that need to be fixed: - Reorder asc_prt_* functions now that their prototypes have been removed. - There is no longer a struct device in ASC_DVC_CFG/ADV_DVC_CFG, and it wasn't necessarily a PCI device to begin with. Print the bus_id from asc_board->dev instead. - isr_callback no longer exists. - ASC_DBG_PRT_SCSI_CMND isn't being used, so delete asc_prt_scsi_cmnd too. - A missing semicolon Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Remove library version & serial numbersMatthew Wilcox2007-10-121-45/+15
| | | | | | | | | With the ASC and ADV libraries merged into the driver, there really is no point in reporting their version numbers, or even trying to maintain them. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Remove asc_board_t typedef and ASC_BOARDP macroMatthew Wilcox2007-10-121-81/+51
| | | | | | | | | asc_board_t was simply a typedef for struct asc_board. ASC_BOARDP() can be replaced by shost_priv() except in the ASC_STATS* macros which rely on the cast; add an explicit cast there. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Merge ASC_IERR definitionsMatthew Wilcox2007-10-121-24/+16
| | | | | | | | | | | There were two blocks of ASC_IERR definitions; one for narrow and one for wide boards. Some of the same names were used (with the same values), and some of the same values were used with different names. This could only lead to confusion, so I unified them in one block of definitions with no overlapping values. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Sort out irq number messMatthew Wilcox2007-10-121-198/+189
| | | | | | | | | | | | | | | | | | | The interrupt number was being stored in 4-5 different places, each with its own type, rules and usage. Fix this by keeping an unsigned int in the struct asc_board, and filling it in from the bus probe functions (since it's different for each of the four bus types). In order to do this, we have to allocate the Scsi_Host in the bus probe functions too. Then we can return an error from advansys_board_found, which requires a little rearranging of code (and removing of the err_code variable). Move the Wide Board flag setting into the PCI bus probe function. Split the AscGetChipIRQ function into three functions (one for each bus type that needs it) and add some commentary to explain what's going on. Also get rid of the AscSetChipIRQ function as we only ever set the interrupt number to the same value it already had. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Remove ASC_WIDE_BOARD predicateMatthew Wilcox2007-10-121-3/+2
| | | | | | | Replace it with !ASC_NARROW_BOARD Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Remove ASC_SELECT_QUEUE_DEPTHSMatthew Wilcox2007-10-121-2/+0
| | | | | | | It was only ever set; never tested, nor cleared. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Improve reset handlerMatthew Wilcox2007-10-121-61/+22
| | | | | | | | | | - Don't need to set ASC_HOST_IN_RESET any more - Don't need to test scp->device->host for NULL -- if it's NULL, we couldn't've been called. - Use scmd_printk instead of ASC_PRINT Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Fix simultaneous calls to ->queuecommandMatthew Wilcox2007-10-121-49/+39
| | | | | | | | | | | | | The narrow board used two global structures to set up a command; unfortunately they weren't locked, so with two boards in the machine, one call to queuecommand could corrupt the data being used by the other call to queuecommand. Fix this by allocating asc_scsi_q on the stack (64 bytes) and using kmalloc for the asc_sg_head (2k) Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Restructure asc_execute_scsi_cmnd()Matthew Wilcox2007-10-121-92/+39
| | | | | | | | | | The wide and narrow boards share identical handling of the return value, except for some trivial error messages. Move the handling to the common end of the function. Also move variable declarations to the arms of the `if' that they're used in and delete some pointless comments. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Remove array of scsi targetsMatthew Wilcox2007-10-121-10/+0
| | | | | | | | The driver was saving a scsi_device for each target, but wasn't doing anything useful with them. Just delete the array. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] advansys: Eliminate prototypesMatthew Wilcox2007-10-121-6230/+6043
| | | | | | | | Rearrange a lot of the functions in the file to get rid of all the forward declarations. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Get rid of scsi_cmnd->doneMatthew Wilcox2007-10-129-58/+43
| | | | | | | | | | | | | | | The ULD ->done callback moves into the scsi_driver. By moving the call to scsi_io_completion() from scsi_blk_pc_done() to scsi_finish_command(), we can eliminate the latter entirely. By returning 'good_bytes' from the ->done callback (rather than invoking scsi_io_completion()), we can stop exporting scsi_io_completion(). Also move the prototypes from sd.h to sd.c as they're all internal anyway. Rename sd_rw_intr to sd_done and rw_intr to sr_done. Inspired-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] gdth: Stop abusing ->done for internal commandsMatthew Wilcox2007-10-122-10/+13
| | | | | | | | | | The ->done member was being used to mark commands as being internal. I decided to put a magic number in ->underflow instead. I believe this to be safe as no current user of ->underflow has any of the bottom 9 bits set. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] qlogicpti: Add a slave_configure methodMatthew Wilcox2007-10-122-147/+27
| | | | | | | | | | | By configuring targets in slave_configure, we can eliminate a shadow queuecommand, a shadow scsi_done, a write to the host template, abuse of SCp->Message and SCp->Status, a use of kmap_atomic() and sniffing the results of INQUIRY. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Update Documentation/scsi/00-INDEXRob Landley2007-10-121-3/+31
| | | | | | | Update Documentation/scsi/00-INDEX to match current files. Signed-off-by: Rob Landley <rob@landley.net> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic94xx: fix SSP IU status print-outJeff Garzik2007-10-121-1/+1
| | | | | | | | | | | | The SSP response DPRINTK in asd_get_response_tasklet() was printing a hardcoded status result, rather than the status from the SSP response IU. Arguably, this should not be a DPRINTK either, since the admin might want to know about this. Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mptctl : shutup uninitialized variable warningsEric Moore2007-10-121-5/+3
| | | | | | | | | | | | | | | | drivers/message/fusion/mptctl.c: In function ‘mptctl_mpt_command’: drivers/message/fusion/mptctl.c:1764: warning: ‘bufIn.len’ may be used uninitialized in this function drivers/message/fusion/mptctl.c:1765: warning: ‘bufOut.len’ may be used uninitialized in this function come because gcc gets confused by some "goto" statements in above function. The warnings have been verified to be bogus, however, the function does initialize these later (after the offending goto's) in the function anyway. So let's move those initializations to top of function, thereby also shutting up these warnings. Signed-off-by: Eric Moore <Eric.Moore@lsi.com> Signed-off-by: Satyam Sharma <satyam@infradead.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mptlan: bug fix, only half the message frame is dma'd resulting in ↵Eric Moore2007-10-121-0/+2
| | | | | | | | | | | | | | | | | | corruption NB = number of blocks. This represents the number of blocks to transfer. The block size is based on the message frame size provided in the ioc_facts. A value of zero indicates the entire message frame should be copied. This is two bit value. So by setting this to non-zero vaule, you increase performance by reducing amount of data needing to be dma'd. The value that is stored in ioc->ReqeustNB is sometimes a non-zero vaule, which creates a bug in mptlan, where not the entire message frame is getting transfer to firware, resulting in corruption. This fix sets the default to zero, thus entire message frame is copied. Signed-off-by: Eric Moore <Eric.Moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mpt fusion: fix up fusion prints using the sdev_printk, dev_printk, ↵Eric Moore2007-10-124-18/+20
| | | | | | | | | | | | and shost_printk API Cleaning up prints that use the xxx_printk API, in that the fusion preamble "mptbase: iocX" follows the info provided by the print API. The way its currently coded, the [H:C:T] print in sdev_printk will be inbetween "mptbase" and "iocX", instead of before. Signed-off-by: Eric Moore <Eric.Moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mpt fusion: lock down ScsiLookupEric Moore2007-10-125-87/+149
| | | | | | | | | | | | ScsiLookup is an array of pending scmd pointers that the scsi lld maintains. This array is touched from queuecommand, eh threads, and interrupt context. This array should put under locks, hence this patch to synchronize its access. I've added some nice little function wrappers for this, and moved the ScsiLookup array over to MPT_ADAPTER struct. Signed-off-by: Eric Moore <Eric.Moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mpt fusion: Fix sparse warningsEric Moore2007-10-123-22/+28
| | | | | | | | | | | | | | | | | List below is output from C=2 sparse compilation, which are fixed with this patch. 1) mptspi: pg0 is defined in x86 version of include/asm/pgtable.h 2) mptsas: context imbalance in 'mptsas_probe' different lock contexts for basic block 3) mptbase: from mpt_attach - cast adds address space to expression 4) mptbase: from mpt_do_upload - request[] is bad constant expression Signed-off-by: Eric Moore <Eric.Moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mpt fusion: add use of shost_priv and remove all the typecastingEric Moore2007-10-125-76/+62
| | | | | | | | The driver is currently typecasting to obtain the shost hostdata. The driver is updated to use the shost_priv macro. Signed-off-by: Eric Moore <Eric.Moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Fix mistaken uses of ->doneMatthew Wilcox2007-10-124-9/+9
| | | | | | | All these drivers meant to call ->scsi_done() but got confused. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] pluto: Don't abuse ->done for internal commandsMatthew Wilcox2007-10-121-2/+1
| | | | | | | We can simply call the internal done function directly Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>