summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla1280.c
Commit message (Collapse)AuthorAgeFilesLines
* IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells2006-10-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6Linus Torvalds2006-10-041-3/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (54 commits) [SCSI] Initial Commit of qla4xxx [SCSI] raid class: handle component-add errors [SCSI] SCSI megaraid_sas: handle thrown errors [SCSI] SCSI aic94xx: handle sysfs errors [SCSI] SCSI st: fix error handling in module init, sysfs [SCSI] SCSI sd: fix module init/exit error handling [SCSI] SCSI osst: add error handling to module init, sysfs [SCSI] scsi: remove hosts.h [SCSI] scsi: Scsi_Cmnd convertion in aic7xxx_old.c [SCSI] megaraid_sas: sets ioctl timeout and updates version,changelog [SCSI] megaraid_sas: adds tasklet for cmd completion [SCSI] megaraid_sas: prints pending cmds before setting hw_crit_error [SCSI] megaraid_sas: function pointer for disable interrupt [SCSI] megaraid_sas: frame count optimization [SCSI] megaraid_sas: FW transition and q size changes [SCSI] qla2xxx: Update version number to 8.01.07-k2. [SCSI] qla2xxx: Stall mid-layer error handlers while rport is blocked. [SCSI] qla2xxx: Add MODULE_FIRMWARE tags. [SCSI] qla2xxx: Add support for host port state FC transport attribute. [SCSI] qla2xxx: Add support for fabric name FC transport attribute. ...
| * [SCSI] pci_module_init conversion in scsi subsystemHenrik Kretzschmar2006-09-261-1/+1
| | | | | | | | | | | | | | | | | | Converts pci_module_init() to pci_register_driver() in the scsi subsys on 23 drivers which only return the value of pci_module_init(). Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] qla1280 command timeoutJes Sorensen2006-09-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original patch from Ian Dall in bugzilla. Set command timeout as specified by the SCSI layer rather than hardcode it to 30 seconds. I have received a couple of reports of people hitting this one with various tape configurations and the patch looks obviously correct. - Jes From http://bugzilla.kernel.org/show_bug.cgi?id=6275 ian@beware.dropbear.id.au (Ian Dall): The command sent to the card was using a 30second timeout regardless of the timeout requested in the scsi command passed down from higher levels. Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | [PATCH] completions: lockdep annotate on stack completionsPeter Zijlstra2006-10-011-2/+2
|/ | | | | | | | | | | All on stack DECLARE_COMPLETIONs should be replaced by: DECLARE_COMPLETION_ONSTACK Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Acked-by: Ingo Molnar <mingo@elte.hu> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge ../scsi-misc-2.6James Bottomley2006-07-031-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/scsi/nsp32.c drivers/scsi/pcmcia/nsp_cs.c Removal of randomness flag conflicts with SA_ -> IRQF_ global replacement. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] qla1280: fix section mismatch warningsRandy Dunlap2006-06-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix section mismatch warnings: WARNING: drivers/scsi/qla1280.o - Section mismatch: reference to .init.data: from .text between 'qla1280_get_token' (at offset 0x2a16) and 'qla1280_probe_one' WARNING: drivers/scsi/qla1280.o - Section mismatch: reference to .init.data: from .text between 'qla1280_get_token' (at offset 0x2a3c) and 'qla1280_probe_one' Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | [PATCH] irq-flags: scsi: Use the new IRQF_ constantsThomas Gleixner2006-07-021-2/+2
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: "David S. Miller" <davem@davemloft.net> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: James Bottomley <James.Bottomley@steeleye.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | Remove obsolete #include <linux/config.h>Jörn Engel2006-06-301-1/+0
|/ | | | | Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de> Signed-off-by: Adrian Bunk <bunk@stusta.de>
* [PATCH] PCI: Move various PCI IDs to header fileBrent Casavant2006-06-211-24/+0
| | | | | | | | | | Move various QLogic, Vitesse, and Intel storage controller PCI IDs to the main header file. Signed-off-by: Brent Casavant <bcasavan@sgi.com> Acked-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* [SCSI] drivers/scsi: Use ARRAY_SIZE macroTobias Klauser2006-06-101-5/+2
| | | | | | | | | Use ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove duplicates of the macro. Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [PATCH] Replace 0xff.. with correct DMA_xBIT_MASKMatthias Gehre2006-03-281-2/+3
| | | | | | | | | | Replace all occurences of 0xff.. in calls to function pci_set_dma_mask() and pci_set_consistant_dma_mask() with the corresponding DMA_xBIT_MASK from linux/dma-mapping.h. Signed-off-by: Matthias Gehre <M.Gehre@gmx.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [SCSI] qla1280: remove < 2.6.0 supportJes Sorensen2006-01-261-288/+23
| | | | | | | Remove support for kernels older than 2.6.0. Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] remove Scsi_Host_Template typedefChristoph Hellwig2005-11-091-3/+3
| | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] remove the obsolete SCSI qlogicisp driverAdrian Bunk2005-11-061-2/+0
| | | | | | | | The SCSI qlogicisp driver is both marked BROKEN and superseded by the qla1280 driver. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] qla1280: endianess annotationsChristoph Hellwig2005-08-021-4/+4
| | | | | Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] qla1280: don't use bitfields for hardware access, parametersChristoph Hellwig2005-08-021-71/+72
| | | | | | Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Thiemo Seufer <ths@linux-mips.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] qla1280: don't use bitfields for hardware access in isp_configChristoph Hellwig2005-08-021-15/+29
| | | | | | Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Thiemo Seufer <ths@linux-mips.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] qla1280: always load microcodeChristoph Hellwig2005-08-021-71/+1
| | | | | | | we have the most recent microcode, make sure to always load it. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] qla1280: use SAM_ constantsChristoph Hellwig2005-08-021-1/+1
| | | | | | Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Thiemo Seufer <ths@linux-mips.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] qla1280: misc cleanupsChristoph Hellwig2005-08-021-12/+14
| | | | | | | | print message tidy ups and some excess brace removal. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Thiemo Seufer <ths@linux-mips.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] qla1280: interupt posting for irq disabling/enablingChristoph Hellwig2005-08-021-37/+20
| | | | | | Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Thiemo Seufer <ths@linux-mips.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] qla1280: remove dead per-host flag variablesChristoph Hellwig2005-08-021-7/+0
| | | | | | Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Thiemo Seufer <ths@linux-mips.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] scsi/qla1280: replace schedule_timeout() with ssleep()Nishanth Aravamudan2005-06-261-1/+1
| | | | | | | | | Use ssleep() instead of schedule_timeout to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com> Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] allow sleeping in ->eh_host_reset_handler()Jeff Garzik2005-06-171-1/+7
| | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] allow sleeping in ->eh_bus_reset_handler()Jeff Garzik2005-06-171-1/+7
| | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] allow sleeping in ->eh_device_reset_handler()Jeff Garzik2005-06-171-1/+7
| | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] allow sleeping in ->eh_abort_handler()Jeff Garzik2005-06-171-1/+7
| | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] qla1280.c - fix result for device Busy and Queue FullJeremy Higdon2005-05-201-5/+4
| | | | | | | | I discovered that the qla1280 driver does not send the correct status to the midlayer when it gets Queue Full or Busy from a device. Signed-off-by: Jeremy Higdon <jeremy@sgi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Linux-2.6.12-rc2v2.6.12-rc2Linus Torvalds2005-04-161-0/+4863
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!