aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* [SCSI] sym2: Fix build when spinlock debugging is enabledMatthew Wilcox2006-04-13
| | | | | | | | | | | When spinlock debugging is turned on, a struct completion grows beyond the size allowed for the scsi_pointer. So move the struct completion back onto the stack. The additional memory barriers are to keep us from completing a random piece of kernel stack if the command happens to complete after the error handling has finished. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] ipr: Bump versionBrian King2006-04-13
| | | | | | | Bump ipr driver version to 2.1.3 Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] ipr: Reset device cleanupBrian King2006-04-13
| | | | | | | | Encapsulate some more of the device reset processing in preparation for SATA support. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] ipr: printk macro cleanup/removalBrian King2006-04-13
| | | | | | | | Remove some unused printk macros, make some more robust, and convert some to use standard printk macros when possible. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] ipr: Simplify status area dumpingBrian King2006-04-13
| | | | | | | | | Simplify the dumping of the command status area by removing some device specific information that has proven to not be worthwhile. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] ipr: Fixup device type checkBrian King2006-04-13
| | | | | | | | | Fixup a check used by the ipr driver to determine if a given device is a SCSI disk. Due to the addition of support for attaching SATA devices, this check needs to be more robust. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] ipr: Disk remove path cleanupBrian King2006-04-13
| | | | | | | | | | | Instead of NULLing the resource entry pointer when a disk goes away to prevent any new commands being sent to it, set the adapter resource handle to an invalid value so new ops getting sent to it will fail with a selection timeout response. This patch is needed for future SATA patches. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] sg: fix leak when dio setup failsDouglas Gilbert2006-04-13
| | | | | | | | | | | | | | when the sg driver is unable to setup direct IO, free that scatter gather list prior to falling back to indirect IO Further to this thread started by Bryan Holty: http://marc.theaimsgroup.com/?l=linux-scsi&m=114306885116728&w=2 Here is the reworked patch again. This time it has been tested with a program provided by Bryan. Signed-off-by: Douglas Gilbert <dougg@torque.net> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] expose sas internal class for the domain transportJames Bottomley2006-04-13
| | | | | | necessary to make the domain class use the internal structures Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] for_each_possible_cpu: scsiKAMEZAWA Hiroyuki2006-04-13
| | | | | | | | | | | | | | | | for_each_cpu() actually iterates across all possible CPUs. We've had mistakes in the past where people were using for_each_cpu() where they should have been iterating across only online or present CPUs. This is inefficient and possibly buggy. We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the future. This patch replaces for_each_cpu with for_each_possible_cpu. Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Version 2.2.3Matthew Wilcox2006-04-13
| | | | | Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Enable clustering and large transfersMatthew Wilcox2006-04-13
| | | | | | | | | | | This patch enables clustering and sets max_sectors to 0xffff to enable reading and writing of large blocks with tapes (and large transfers with sg). This change is needed after the sg and st drivers started using chained bios through scsi_request_async() in 2.6.16. Signed-off-by: Kai Makisara <kai.makisara@kolumbus.fi> Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Simplify error handlingMatthew Wilcox2006-04-13
| | | | | | | | | | | | | | | | | | Use wait_for_completion_timeout() instead of using a timer (as Christoph Hellwig did for aic7xxx). That lets me eliminate the sym_eh_wait structure; the struct completion, the old_done pointer and the to_do flag can be folded into the sym_ucmd (which overrides the scsi_pointer in scsi_cmnd). The sym_eh_done() function becomes much simpler as the timeout handling is done in sym_eh_handler() directly. The host_lock can be unlocked earlier, and I cache the host in a local variable to make accesses to it quicker. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Allow nvram settings to determine bus modeMatthew Wilcox2006-04-13
| | | | | | | | The PDC code can set the bus mode, but we were ignoring that setting. Also move the code that determines bus mode into its own function. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Use SPI messages where possibleMatthew Wilcox2006-04-13
| | | | | | | | | Now sym2 is using spi_print_msg, we don't need to have our own messages for IGNORE WIDE RESIDUE and MODIFY DATA POINTER, so provide the option of passing NULL for the label. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Disable sym2 driver queueingMatthew Wilcox2006-04-13
| | | | | | | | | | Undef SYM_OPT_HANDLE_DEVICE_QUEUEING. Call sym_put_start_queue instead of sym_start_next_ccbs. Turn asserts into checks that we can send the command to the adapter, and return busy from queuecommand if we can't. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Mark div_10M array constMatthew Wilcox2006-04-13
| | | | | | | | | Patch below is one out of a large series to mark kernel data const when possible, goal is to use .rodata and avoid false sharing Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Simplify error handling a bitMatthew Wilcox2006-04-13
| | | | | | | | - to_do was never set to SYM_EH_DO_COMPLETE, so remove that code - move the spinlocks inside the common error handler code path Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Use pcibios_resource_to_bus()Matthew Wilcox2006-04-13
| | | | | | | | We had our own code (pci_get_base_address()) to get the bus address of a BAR. We can get this using pcibios_resource_to_bus() instead. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Change Kconfig option from IOMAPPED to MMIOMatthew Wilcox2006-04-13
| | | | | | | | | Most of the Kconfig options for switching between IO Port and MMIO operations use the opposite sense from sym2. Really, this option should be set at a chipset level rather than per-driver. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] sas transport: ref count updateMike Anderson2006-04-13
| | | | | | | Fix puts so that release functions will be called. Signed-off-by: Mike Anderson <andmike@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aacraid: Driver version updateMark Haverkamp2006-04-13
| | | | | | | | | | Received from Mark Salyzyn Fix module param Update driver version. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aacraid: Fix parenthesis placement errorMark Haverkamp2006-04-13
| | | | | | | | | | Received from Mark Salyzyn On 64 bit machines, when a 32 bit application tries to acquire the AIF, they will always get and EFAULT error response from the driver. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aacraid: Show max channel and max id is sysfsMark Haverkamp2006-04-13
| | | | | | | | | Received from Mark Salyzyn Add max_channel and max_id sysfs parameters. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aacraid: Re-start helper thread if it diesMark Haverkamp2006-04-13
| | | | | | | | | | Received from Mark Salyzyn Since the helper thread for the driver can be killed unceremoniously by an application, we detect the loss of the helper and restart it. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aacraid: General driver cleanupMark Haverkamp2006-04-13
| | | | | | | | | | | Received from Mark Salyzyn Remove superfluous code, optimize code, harden code, cast code, correct some text, use msleep instead of schedule_timeout_interruptible. No bugs. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aacraid: Fix extra unregister_chrdevMark Haverkamp2006-04-13
| | | | | | | | | | | Received from Mark Salyzyn If there are no aacraid controllers, we do not create the raid controller chrdev, thus when the driver is unloaded it performs a superfluous deregistration. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aacraid: Fix error in max_channel fieldMark Haverkamp2006-04-13
| | | | | | | | | Received from Mark Salyzyn The max_channel field is set one too large. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aacraid: Error path cleanupMark Haverkamp2006-04-13
| | | | | | | | | | Received from Mark Salyzyn Some of the error return paths during initialization resulted in a zero report to caller Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aacraid: Add timeout for eventsMark Haverkamp2006-04-13
| | | | | | | | | | Received from Mark Salyzyn Plug and play actions resulting from event sequences shall time out if they take longer than 30 seconds to complete. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aacraid: Track command ownership in driverMark Haverkamp2006-04-13
| | | | | | | | | | | | Received from Mark Salyzyn The loss of the ownership flags, despite their flaws, in the scsi command were sorely missed and are reinstated more accurately in the aacraid driver to track commands and permit us to properly handle error recovery actions. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aacraid: Use scmd_ functionsMark Haverkamp2006-04-13
| | | | | | | | | | Received from Mark Salyzyn Clean up the remaining scsi id access methods, drop ID_LUN_TO_CONTAINER macro. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] ibmvscsi: convert the ibmvscsi driver to use include/scsi/srp.hFUJITA Tomonori2006-04-13
| | | | | Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] ibmvscsi: prevent scsi commands being sent in invalid stateDave C Boutcher2006-04-13
| | | | | | | | | | | | There is a window where we can be re-enabling an adapter, but still allow SCSI commands to be sent to the target. This fix sets our window (request_limit) to -1 as soon as we know the adapter is being reenabled, and closes a very teeny tiny window where we could set the window back to 1 before we grab a lock. Signed-off-by: Dave Boutcher <sleddog@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fix sg leak when scsi_execute_async failsMike Christie2006-04-13
| | | | | | | | | Doug found a bug where if scsi_execute_async fails, we are leaking sg resources. scsi_do_req never failed so we did not have to handle that case before. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] unify SCSI_IOCTL_SEND_COMMAND implementationsChristoph Hellwig2006-04-13
| | | | | | | | | | | | | | | | | | | | | | We currently have two implementations of this obsolete ioctl, one in the block layer and one in the scsi code. Both of them have drawbacks. This patch kills the scsi layer version after updating the block version with the missing bits: - argument checking - use scatterlist I/O - set number of retries based on the submitted command This is the last user of non-S/G I/O except for the gdth driver, so getting this in ASAP and through the scsi tree would be nie to kill the non-S/G I/O path. Jens, what do you think about adding a check for non-S/G I/O in the midlayer? Thanks to Or Gerlitz for testing this patch. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] remove qlogicfcJames Bottomley2006-04-13
| | | | | | All participants agree that qla2xxx can now successfully replace this. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Merge branch 'for-linus' of ↵Linus Torvalds2006-04-12
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband * 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband: IB/mthca: Fix max_srq_sge returned by ib_query_device for Tavor devices IB/cache: Use correct pointer to calculate size IPoIB: Use spin_lock_irq() instead of spin_lock_irqsave() IPoIB: Close race in ipoib_flush_paths() IB/mthca: Disable tuning PCI read burst size IPoIB: Make send and receive queue sizes tunable IPoIB: Wait for join to finish before freeing mcast struct IB: simplify static rate encoding IPoIB: Consolidate private neighbour data handling IB/srp: Fix memory leak in options parsing IB/mthca: Always build debugging code unless CONFIG_EMBEDDED=y IPoIB: Always build debugging code unless CONFIG_EMBEDDED=y IB/mad: fix oops in cancel_mads
| * IB/mthca: Fix max_srq_sge returned by ib_query_device for Tavor devicesJack Morgenstein2006-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The driver allocates SRQ WQEs size with a power of 2 size both for Tavor and for memfree. For Tavor, however, the hardware only requires the WQE size to be a multiple of 16, not a power of 2, and the max number of scatter-gather allowed is reported accordingly by the firmware (and this is the value currently returned by ib_query_device() and ibv_query_device()). If the max number of scatter/gather entries reported by the FW is used when creating an SRQ, the creation will fail for Tavor, since the required WQE size will be increased to the next power of 2, which turns out to be larger than the device permitted max WQE size (which is not a power of 2). This patch reduces the reported SRQ max wqe size so that it can be used successfully in creating an SRQ on Tavor HCAs. Signed-off-by: Jack Morgenstein <jackm@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IB/cache: Use correct pointer to calculate sizeMichael S. Tsirkin2006-04-10
| | | | | | | | | | | | | | | | | | | | When allocating gid_cache, use kmalloc(sizeof *gid_cache, ...) rather than kmalloc(sizeof *pkey_cache, ...). It doesn't really matter which one is used, since the size ends up the same either way, but it's much better to say what we mean. Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IPoIB: Use spin_lock_irq() instead of spin_lock_irqsave()Roland Dreier2006-04-10
| | | | | | | | | | | | | | | | We know ipoib_flush_paths() is called from plain process context with interrupts enabled, since it does wait_for_completion(). So there's no need to use spin_lock_irqsave() -- spin_lock_irq() is fine. Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IPoIB: Close race in ipoib_flush_paths()Eli Cohen2006-04-10
| | | | | | | | | | | | | | | | ib_sa_cancel_query() must be called with priv->lock held since a completion might arrive and set path->query to NULL. Signed-off-by: Eli Cohen <eli@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IB/mthca: Disable tuning PCI read burst sizeMichael S. Tsirkin2006-04-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PCI spec recommends against drivers playing with a device's PCI read burst size, and says that systems software should configure it. And we actually have users that report that changing it from the default set by BIOS hurts performance and/or stability for them. On the other hand, the Mellanox Programmer's Reference Manual recommends turning it up all the way to the maximum value. Some tests conducted here in the lab do not show performance improvement from this tuning, but this might be just me. As a work-around, make this tuning an option, off by default (safe value), with an eye towards removing it completely one day if no one complains. Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IPoIB: Make send and receive queue sizes tunableShirley Ma2006-04-10
| | | | | | | | | | | | | | | | | | | | | | Make IPoIB's send and receive queue sizes tunable via module parameters ("send_queue_size" and "recv_queue_size"). This allows the queue sizes to be enlarged to fix disastrously bad performance on some platforms and workloads, without bloating memory usage when large queues aren't needed. Signed-off-by: Shirley Ma <xma@us.ibm.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IPoIB: Wait for join to finish before freeing mcast structEli Cohen2006-04-10
| | | | | | | | | | | | | | | | | | | | | | ipoib_mcast_restart_task() might free an mcast object while a join request is still outstanding, leading to an oops when the query completes. Fix this by waiting for query to complete, similar to what ipoib_stop_thread() is doing. The wait for mcast completion code is consolidated in wait_for_mcast_join(). Signed-off-by: Eli Cohen <eli@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IB: simplify static rate encodingJack Morgenstein2006-04-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Push translation of static rate to HCA format into low-level drivers, where it belongs. For static rate encoding, use encoding of rate field from IB standard PathRecord, with addition of value 0, for backwards compatibility with current usage. The changes are: - Add enum ib_rate to midlayer includes. - Get rid of static rate translation in IPoIB; just use static rate directly from Path and MulticastGroup records. - Update mthca driver to translate absolute static rate into the format used by hardware. This also fixes mthca's static rate handling for HCAs that are capable of 4X DDR. Signed-off-by: Jack Morgenstein <jackm@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IPoIB: Consolidate private neighbour data handlingMichael S. Tsirkin2006-04-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consolidate IPoIB's private neighbour data handling into ipoib_neigh_alloc() and ipoib_neigh_free(). This will make it easier to keep track of the neighbour structures that IPoIB is handling, and is a nice cleanup of the code: add/remove: 2/1 grow/shrink: 1/8 up/down: 100/-178 (-78) function old new delta ipoib_neigh_alloc - 61 +61 ipoib_neigh_free - 36 +36 ipoib_mcast_join_finish 1288 1291 +3 path_rec_completion 575 573 -2 ipoib_mcast_join_task 664 660 -4 ipoib_neigh_destructor 101 92 -9 ipoib_neigh_setup_dev 14 3 -11 ipoib_neigh_setup 17 - -17 path_free 238 215 -23 ipoib_mcast_free 329 306 -23 ipoib_mcast_send 718 684 -34 neigh_add_path 705 650 -55 Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IB/srp: Fix memory leak in options parsingRoland Dreier2006-04-03
| | | | | | | | | | | | | | | | Fix memory leak if parsing destination GID fails. Coverity bug 1042 Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IB/mthca: Always build debugging code unless CONFIG_EMBEDDED=yRoland Dreier2006-04-02
| | | | | | | | | | | | | | | | | | | | | | | | Change the mthca debugging trace output code so that it can enabled and disabled at runtime with the debug_level module parameter in sysfs. Also, don't allow CONFIG_INFINIBAND_MTHCA_DEBUG to be disabled unless CONFIG_EMBEDDED is selected. We want users (and especially distros) to have this turned on unless they really need to save space, because by the time we want debugging output, it's usually too late to rebuild a kernel. Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IPoIB: Always build debugging code unless CONFIG_EMBEDDED=yRoland Dreier2006-04-02
| | | | | | | | | | | | | | | | | | | | | | Don't allow CONFIG_INFINIBAND_IPOIB_DEBUG to be disabled unless CONFIG_EMBEDDED is selected. We want users (and especially distros) to have this turned on unless they really need to save space, because by the time we want debugging output, it's usually too late to rebuild a kernel. The debugging output can be controlled at runtime via the debug_level module parameter in sysfs. Signed-off-by: Roland Dreier <rolandd@cisco.com>