aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ibmvscsi
Commit message (Collapse)AuthorAge
* IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells2006-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
* Merge branch 'merge'Paul Mackerras2006-07-31
|\
| * [SCSI] ibmvscsi: handle inactive SCSI target during probeDave C Boutcher2006-07-09
| | | | | | | | | | | | | | Without this patch we register an interrupt with request_irq, but then return a bad return code from the module probe. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] ibmvscsi: allocate lpevents for ibmvscsi on iseriesDave C Boutcher2006-07-09
| | | | | | | | | | | | | | | | Allocate the correct number of lp events when running ibmvscsi on legacy iseries Signed-off-by: Dave Boutcher <sleddog@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | [POWERPC] scsi: Constify & voidify get_property()Jeremy Kerr2006-07-31
|/ | | | | | | | | | | Now that get_property() returns a void *, there's no need to cast its return value. Also, treat the return value as const, so we can constify get_property later. powerpc-specific scsi driver changes. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [SCSI] ibmvscsi: treat busy and error conditions separatelyDave C Boutcher2006-06-26
| | | | | | | | | This patch fixes a condition where ibmvscsi treats a transport error as a "busy" condition, so no errors were returned to the scsi mid-layer. In a RAID environment this means that I/O hung rather than failing over. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Merge ../linux-2.6James Bottomley2006-06-10
|\
| * [SCSI] ibmvscsi: fix leak when failing to send srp eventFUJITA Tomonori2006-04-28
| | | | | | | | | | Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | [SCSI] ibmvscsi: convert kmalloc + memset to kcallocFUJITA Tomonori2006-04-14
|/ | | | | | | | Convert kmalloc + memset to kcalloc in ibmvscsi Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Acked-by: Dave Boutcher <sleddog@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] ibmvscsi: remove drivers/scsi/ibmvscsi/srp.hFUJITA Tomonori2006-04-13
| | | | | | | It's no longer needed after the convrsion to use the linux srp.h file. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> 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>
* [PATCH] powerpc/pseries: Change H_StudlyCaps to H_SHOUTING_CAPSSegher Boessenkool2006-04-01
| | | | | | | Also cleans up some nearby whitespace problems. Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [SCSI] ibmvscsi: handle re-enable firmware messageDave C Boutcher2006-01-26
| | | | | | | | | | New versions of the Power5 firmware can send a "re-enable" message to the virtual scsi adapter. This fix makes us handle the message correctly. Without it, the driver goes catatonic and the system crashes unpleasantly. Signed-off-by: Dave Boutcher <sleddog@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] ibmvscsi kexec fixDave C Boutcher2005-12-07
| | | | | | | | | | | | | This makes ibmvscsi work correctly with the recent set of kexec patches that went in. This is based on work by Michael Ellerman, who chased this initially. He validated that it works during kexec. Handle kexec correctly in ibmvscsi. During kexec the adapter will not get cleaned up correctly, so we may need to reset it to make it sane again. Signed-off-by: Dave Boutcher <sleddog@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* merge filename and modify references to iseries/vio.hKelly Daly2005-11-01
| | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
* merge filename and modify references to iseries/hv_types.hKelly Daly2005-11-01
| | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
* merge filename and modify references to iseries/hv_lp_event.hKelly Daly2005-11-01
| | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
* merge filename and modify reference to iseries/hv_lp_config.hKelly Daly2005-11-01
| | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
* powerpc: set the driver.owner field for all vio driversStephen Rothwell2005-10-24
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: don't duplicate name between vio_driver and device_driverStephen Rothwell2005-10-24
| | | | | | | Just set the name field directly in the device_driver structure contained in the vio_driver struct. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* [SCSI] ibmvscsi compatibility fixDave C Boutcher2005-09-13
| | | | | | | | | | | | | | Linda Xie ever so gently pointed out that she had a patch to preserve compatibility with older SLES targets, and I told her we didn't need to push it to mainline. This patch explicitly checks the version of the IBMVSCSI target and ensures that large scatterlists are not sent to older targets. Signed-off-by: Linda Xie <lxie@us.ibm.com> Signed-off-by: Dave Boutcher <boutcher@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6 Linus Torvalds2005-09-07
|\
| * Merge by hand (conflicts in sd.c)James Bottomley2005-09-06
| |\
| | * [SCSI] ibmvscsi: handle large scatter/gather listsJames Bottomley2005-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The maximum size of a scatter-gather list that the current IBM VSCSI Client can handle is 10. This patch adds large scatter-gather support to the client so that it is capable of handling up to SG_ALL(255) number of requests in the scatter-gather list. Signed-off-by: Linda Xie <lxie@us.ibm.com> Acked by: Dave C Boutcher <sleddog@us.ibm.com> Rejections fixed up and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * | Merge HEAD from ../scsi-misc-2.6-tmp James Bottomley2005-08-28
| |\|
| | * [SCSI] ibmvscsi timeout fixDave C Boutcher2005-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Dave Boutcher <boutcher@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] ibmvscsi eh lockingDave C Boutcher2005-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Dave Boutcher <boutcher@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | | [PATCH] Make MODULE_DEVICE_TABLE work for vio devicesStephen Rothwell2005-08-29
| | | | | | | | | | | | | | | | | | | | | Make MODULE_DEVICE_TABLE work for vio devices. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
* | | [PATCH] Create vio_bus_opsStephen Rothwell2005-08-29
|/ / | | | | | | | | | | | | | | | | | | | | | | Create vio_bus_ops so that we just pass a structure to vio_bus_init instead of three separate function pointers. Rearrange vio.h to avoid forward references. vio.h only needs struct device_node from prom.h so remove the include and just declare it. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
* / [SCSI] scsi/ibmvscsi/srp.h: Fix a wrong type code used for SRP_LOGIN_REJLinda Xie2005-07-30
|/ | | | | | | | This patch fixes srp.h which uses 0x80 for SRP_LOGIN_REJ instead of 0xc2. Signed-off-by: Linda Xie <lxie@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] IBM VSCSI Client: sending client info to serverLinda Xie2005-07-02
| | | | | | | | Fix the problem in IBM VSCSI Client where the client doesn't send the information which is expected by the server. Signed-off-by: Linda Xie <lxie@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] allow sleeping in ->eh_device_reset_handler()Jeff Garzik2005-06-17
| | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] allow sleeping in ->eh_abort_handler()Jeff Garzik2005-06-17
| | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Linux-2.6.12-rc2Linus Torvalds2005-04-16
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!