12 Jan, 2008
40 commits
-
Most code changes were made to support adapters based on Marvell IOP, plus some
other fixes.- add more PCI device IDs
- support for adapters based on Marvell IOP
- fix a result code translation error on big-endian systems
- fix resource releasing bug when scsi_host_alloc() fail in hptiop_probe()
- update scsi_cmnd.resid when finishing a request
- correct some coding style issues[akpm@linux-foundation.org: type fixes]
Signed-off-by: HighPoint Linux Team
Signed-off-by: Andrew Morton
Signed-off-by: James Bottomley -
Fix section mismatch warning:
WARNING: vmlinux.o(.init.text+0x23be6): Section mismatch: reference to .exit.text:asd_unmap_ha (between 'asd_pci_probe' and 'qla4xxx_module_init')
+
WARNING: vmlinux.o(.text+0x1ec8a8): Section mismatch: reference to .exit.text:as
d_unmap_ioport (between 'asd_unmap_ha' and 'asd_remove_dev_attrs')
WARNING: vmlinux.o(.text+0x1ec8b1): Section mismatch: reference to .exit.text:as
d_unmap_memio (between 'asd_unmap_ha' and 'asd_remove_dev_attrs')Signed-off-by: Randy Dunlap
Signed-off-by: James Bottomley -
Signed-off-by: Jeff Garzik
Acked-by: "Salyzyn, Mark"
Signed-off-by: Andrew Morton
Signed-off-by: James Bottomley -
* pass Scsi_Host to ips_remove_device() via pci_set_drvdata(),
allowing us to eliminate the ips_ha[] search loop and call
ips_release() directly.* call pci_{request,release}_regions() and eliminate individual
request/release_[mem_]region() calls* call pci_disable_device(), paired with pci_enable_device()
* s/0/NULL/ in a few places
* check ioremap() return value
Signed-off-by: Jeff Garzik
Acked-by: "Salyzyn, Mark"
Signed-off-by: Andrew Morton
Signed-off-by: James Bottomley -
[akpm@linux-foundation.org: coding style fixes]
Signed-off-by: Jeff Garzik
Acked-by: "Salyzyn, Mark"
Signed-off-by: Andrew Morton
Signed-off-by: James Bottomley -
Signed-off-by: Jeff Garzik
Acked-by: "Salyzyn, Mark"
Signed-off-by: Andrew Morton
Signed-off-by: James Bottomley -
Fix section mismatch warning:
WARNING: vmlinux.o(.text+0x1ff3a2): Section mismatch: reference to .exit.text:sym2_remove (between 'sym2_io_error_detected' and 'sym_xpt_done')
Signed-off-by: Randy Dunlap
Signed-off-by: James Bottomley -
This patch contains the following minor cleanups:
- make the following needlessly global functions static:
- lpfc_els.c: lpfc_register_new_vport()
- lpfc_els.c: lpfc_issue_els_fdisc()
- lpfc_els.c: lpfc_issue_fabric_iocb()
- lpfc_els.c: lpfc_fabric_abort_vport()
- lpfc_hbadisc.c: lpfc_dev_loss_tmo_handler()
- lpfc_hbadisc.c: lpfc_mbx_cmpl_clear_la()
- lpfc_hbadisc.c: lpfc_disc_flush_list()
- lpfc_hbadisc.c: __lpfc_find_node()
- lpfc_init.c: lpfc_hb_timeout()
- lpfc_init.c: lpfc_block_mgmt_io()
- lpfc_sli.c: __lpfc_sli_release_iocbq()
- lpfc_sli.c: lpfc_sli_next_hbq_slot()
- lpfc_sli.c: lpfc_sli_hbqbuf_init_hbqs()
- lpfc_sli.c: lpfc_sli_hbqbuf_find()
- lpfc_sli.c: __lpfc_sli_issue_iocb()
- #if 0 the following unused global functions:
- lpfc_els.c: lpfc_fabric_abort_flogi()
- lpfc_hbadisc.c: lpfc_find_node()
- lpfc_hbadisc.c: lpfc_findnode_rpi()
- remove the unused exportsSigned-off-by: Adrian Bunk
Acked-by: James Smart
Signed-off-by: James Bottomley -
The current scsi_test_unit_ready() is updated to return sense code
information (in struct scsi_sense_hdr). The sd and sr drivers are
changed to interpret the sense code return asc 0x3a as no media and
adjust the device status accordingly.Signed-off-by: James Bottomley
-
If blk_rq_map_sg wrote more than was allocated in the scatterlist,
BUG_ON() is probably the right thing to do.[jejb: rejections fixed up]
Signed-off-by: Rusty Russell
Acked-by: Jens Axboe
Signed-off-by: James Bottomley -
Fix scsi_tgt_lib build when dprintk is defined:
Also fix accessors problem when dprintk is defineddrivers/scsi/scsi_tgt_lib.c: In function 'scsi_tgt_cmd_destroy':
drivers/scsi/scsi_tgt_lib.c:183: warning: format '%lu' expects type 'long unsigned int', but argument 6 has type 'unsigned int'
drivers/scsi/scsi_tgt_lib.c: In function 'scsi_tgt_cmd_done':
drivers/scsi/scsi_tgt_lib.c:330: warning: format '%lu' expects type 'long unsigned int', but argument 5 has type 'unsigned int'
drivers/scsi/scsi_tgt_lib.c: In function 'scsi_tgt_transfer_response':
drivers/scsi/scsi_tgt_lib.c:345: warning: format '%lu' expects type 'long unsigned int', but argument 5 has type 'unsigned int'
drivers/scsi/scsi_tgt_lib.c: In function 'scsi_tgt_init_cmd':
drivers/scsi/scsi_tgt_lib.c:368: warning: format '%lu' expects type 'long unsigned int', but argument 6 has type 'unsigned int'
drivers/scsi/scsi_tgt_lib.c: In function 'scsi_tgt_kspace_exec':
drivers/scsi/scsi_tgt_lib.c:499: warning: format '%lu' expects type 'long unsigned int', but argument 9 has type 'unsigned int'
drivers/scsi/scsi_tgt_lib.c: In function 'scsi_tgt_kspace_it_nexus_rsp':
drivers/scsi/scsi_tgt_lib.c:620: error: 'mid' undeclared (first use in this function)
drivers/scsi/scsi_tgt_lib.c:620: error: (Each undeclared identifier is reported only once
drivers/scsi/scsi_tgt_lib.c:620: error: for each function it appears in.)
make[2]: *** [drivers/scsi/scsi_tgt_lib.o] Error 1[tomo:
> - dprintk("%d %d %llx\n", host_no, result, (unsigned long long) mid);
> + dprintk("%d %d\n", host_no, result);'mid' is a typo. I wanted to do:
dprintk("%d %d %llx\n", host_no, result, (unsigned long long)itn_id);
The rest looks ok. Thanks,
]Signed-off-by: Randy Dunlap
Signed-off-by: Boaz Harrosh
Acked-by: FUJITA Tomonori
Signed-off-by: James Bottomley -
On Wed, Nov 07, 2007 at 01:51:44PM -0500, Salyzyn, Mark wrote:
> Christoph Hellwig [mailto:hch@infradead.org] sez:
> > Did anyone run the driver through sparse to see if we have
> > more issues like this?
>
> There are some warnings from sparse, none like this one. I will deal
> with the warnings ...Actually there are a lot of endianess warnings, fortunately most of them
harmless. The patch below fixes all of them up (including the ones in
the patch I replied to), except for aac_init_adapter which is really odd
and I don't know what to do.[jejb fixed up rejections and checkpatch issues]
Signed-off-by: Christoph Hellwig
Acked-by: Mark Salyzyn
Signed-off-by: James Bottomley -
Signed-off-by: Andrew Vasquez
Signed-off-by: James Bottomley -
Drivers do SCRs for each Vport. When something changes in the
fabric, firmware generates one interrupt for each RSCN. Based on
the current implementation, in each case, we make recursive calls
to handle RSCN for physical and each subsequent virtual ports.
The fix is to also take into consideration the vp_idx, which is
set by the firmware to indicate the vport the RSCN was meant for.Signed-off-by: Andrew Vasquez
Signed-off-by: James Bottomley -
Firmware will export to software the maximum number of vports
supported for any given firmware version and ISP type. Use this
information rather than the current hardcoding of limitations
within the driver.Signed-off-by: Andrew Vasquez
Signed-off-by: James Bottomley -
Callers of qla2x00_async_event() already populate the mb[] array
upon invocation, doing so via the appropriate mailbox register
accessors. The stale codes removed are leftover-bits kept during
the FWI2 transition. Though relatively benign, the extra-reads
are not valid for FWI2 boards (ISP24xx and above) and peek into
the incorrect regions of registers.Signed-off-by: Andrew Vasquez
Signed-off-by: James Bottomley -
CRQ send errors that return with H_CLOSED should return with
SCSI_MLQUEUE_HOST_BUSY until firmware alerts the client of a CRQ
transport event. The transport event will either reinitialize and
requeue the requests or fail and return IO with DID_ERROR.To avoid failing the eh_* functions while re-attaching to the server
adapter this will retry for a period of time while ibmvscsi_send_srp_event
returns SCSI_MLQUEUE_HOST_BUSY.In ibmvscsi_eh_abort_handler() the loop includes the search of the
event list. The lock on the hostdata is dropped while waiting to try
again after failing ibmvscsi_send_srp_event. The event could have been
purged if a login was in progress when the function was called.In ibmvscsi_eh_device_reset_handler() the loop includes the call to
get_event_struct() because a failing call to ibmvscsi_send_srp_event()
will have freed the event struct.Signed-off-by: Robert Jennings
Signed-off-by: Brian King
Signed-off-by: James Bottomley -
- Change title to remove "Mid-Layer" since the doc is about all of the
SCSI layers.
- Use "SCSI" instead of "scsi" in docbook text.
- Use "*/" to end kernel-doc notation blocks.
- A few other minor typo fixes.Signed-off-by: Randy Dunlap
Signed-off-by: James Bottomley -
Use correct function name in kernel-doc.
Signed-off-by: Randy Dunlap
Signed-off-by: James Bottomley -
Minor corrections and additions to 'scsi_logging_level', as pointed out
by Chuck Ebbert.
Also point out the IBM S390-tools 'scsi_logging_level' script.Signed-off-by: Randy Dunlap
Signed-off-by: James Bottomley -
Some SCSI tape medium changers that need the BLIST_SINGLELUN flag have
the medium changer at one LUN and the tape drive at a different LUN.
The inquiry string of the tape drive may be different from that of the
medium changer. In order for single_lun to be effective, every
scsi_device under a given scsi_target must have it set. This means that
there needs to be a blacklist entry for BOTH the medium changer AND the
tape drive, which is impractical because some medium changers may be
paired with a variety of different tape drive models. It makes more
sense to put the single_lun flag in scsi_target instead of scsi_device,
which causes every device at a given target ID to inherit the single_lun
flag from one LUN. This makes it possible to blacklist just the medium
changer and not the tape drive.Signed-off-by: Tony Battersby
Signed-off-by: James Bottomley -
Update version and changelog
Signed-off-by: Bo Yang
Signed-off-by: James Bottomley -
Added module parameter "poll_mode_io" to support for "polling"
(reduced interrupt operation). In this mode, IO completion interrupts
are delayed. At the end of initiating IOs, the driver schedules for
cmd completion if there are pending cmds. A timer-based interrupt has
also been added to prevent IO completion from being delayed
indefinitely in the case that no new IOs are initiated. Some
formatting issues in resume, suspend comment block also correctedSigned-off-by: Bo Yang
Signed-off-by: James Bottomley -
Driver will call cmd completion routine from Reset path without waiting for cmd completion from isr context.
Signed-off-by: Bo Yang
Signed-off-by: James Bottomley -
MegaRAID utilities expect sense_buff to be of type unsigned long.
Signed-off-by: Bo Yang
Signed-off-by: James Bottomley -
1. Setting the max_sectors_per_req based on max SGL supported by the
FW. Prior versions calculated this value from controller info's
max_sectors_1, max_sectors_2. For certain controllers/FW, this was
resulting in a value greater than max SGL supported by the FW. Now
we take the min of max sgl from FW and max_sectors calculation.2. Increased MFI_POLL_TIMEOUT_SECS to 60 seconds from 10. FW may take
a max of 60 seconds to respond to the INIT cmd.Signed-off-by: Bo Yang
Signed-off-by: James Bottomley -
Adding hibernation support. suspend, resume routine implemented.
Signed-off-by: Bo Yang
Signed-off-by: James Bottomley -
The 3ware 9500S-8 SATA RAID controller exhibits terrible write
performance when PCI memory-write-and-invalidate is disabled. This is
easy to demonstrate by replacing pci_try_set_mwi() in the patch below
with pci_clear_mwi(). My benchmarks show the following:MWI disabled: 15 MB/s write, 330 MB/s read
MWI enabled: 240 MB/s write, 330 MB/s readMost motherboards will enable MWI without the driver having to set it
explicitly, so most people probably wouldn't encounter this problem.
For the few motherboards that don't enable it, this patch could give a
16x performance improvement for writing.This issue does not seem to affect the 9550SX controller, but the patch
doesn't hurt it either. I haven't tested any of the other 3ware
controllers.Signed-off-by: Tony Battersby
Acked-by: adam radford
Signed-off-by: James Bottomley -
Annotate sas_queuecommand with locking details, and clean up a few
more sparse warnings about static/non-static declarations.Signed-off-by: Darrick J. Wong
Signed-off-by: James Bottomley -
sparse complains about the mixing of enums in libsas. Since the
underlying numeric values of both enums are the same, combine them
to get rid of the warning.Signed-off-by: Darrick J. Wong
Signed-off-by: James Bottomley -
Signed-off-by: Matthias Kaehlcke
Acked-by: Bo Yang
Signed-off-by: James Bottomley -
- convert to accessors and !use_sg cleanup
- Not ready for sg-chainingSigned-off-by: Boaz Harrosh
Acked-by: Randy Dunlap
Tested-by: Randy Dunlap
Signed-off-by: James Bottomley -
- convert to accessors and !use_sg cleanup
Signed-off-by: Boaz Harrosh
Acked-by: Randy Dunlap
Tested-by: Randy Dunlap
Signed-off-by: James Bottomley -
Signed-off-by: James Bottomley
-
Add Documentation/DocBook/scsi_midlayer.tmpl, add to Makefile, and update
lots of kerneldoc comments in drivers/scsi/*.Updated with comments from Stefan Richter, Stephen M. Cameron,
James Bottomley and Randy Dunlap.Signed-off-by: Rob Landley
Signed-off-by: James Bottomley -
Remove tracing for request with a "qualifier" field set in the
response. The protocol status qualifier now contains measurement
data for "good" commands, so this check would trace every response
by default.The fix is to simply remove the "qual" tracing: The responses with an
interesting status are also traced as "ferr" or "perr" and all
responses can be traced as "norm" with a higher trace level.Signed-off-by: Christof Schmitt
Signed-off-by: Swen Schillig
Signed-off-by: James Bottomley -
When adding an invalid LUN, there is a deadlock between the add
via scsi_scan_target and the slave_destroy handler: The handler
waits for the scan to complete, but for an invalid unit,
scsi_scan_target directly calls the slave_destroy handler.Fix the deadlock by removing the wait in the slave_destroy
handler, it was not necessary anyway.Signed-off-by: Christof Schmitt
Signed-off-by: Martin Schwidefsky
Signed-off-by: Swen Schillig
Signed-off-by: James Bottomley -
The common I/O layer can call remove a handler to inform zfcp
that a device disappeared. The handler zfcp_ccw_remove then
removes all unit, port and the adapter data structures. Removing
the units requires that the SCSI devices are removed first.Signed-off-by: Christof Schmitt
Signed-off-by: Swen Schillig
Signed-off-by: James Bottomley -
It is not necessary to use jiffies or milliseconds to specify
waiting times that last a couple of seconds.Signed-off-by: Christof Schmitt
Signed-off-by: Martin Schwidefsky
Signed-off-by: Swen Schillig
Signed-off-by: James Bottomley -
Signed-off-by: Christof Schmitt
Signed-off-by: Swen Schillig
Signed-off-by: James Bottomley