Commit 0d0f3ef2 authored by Linus Torvalds's avatar Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
  [SCSI] qlogicpti: fix sg list traversal error in continuation entries
  [SCSI] Fix hang with split requests
  [SCSI] qla2xxx: Defer enablement of RISC interrupts until ISP initialization completes.
parents 17c0d2a1 c9eeb248
...@@ -1834,7 +1834,6 @@ qla2x00_request_irqs(scsi_qla_host_t *ha) ...@@ -1834,7 +1834,6 @@ qla2x00_request_irqs(scsi_qla_host_t *ha)
WRT_REG_WORD(&reg->isp.hccr, HCCR_CLR_HOST_INT); WRT_REG_WORD(&reg->isp.hccr, HCCR_CLR_HOST_INT);
} }
spin_unlock_irq(&ha->hardware_lock); spin_unlock_irq(&ha->hardware_lock);
ha->isp_ops->enable_intrs(ha);
fail: fail:
return ret; return ret;
......
...@@ -1740,6 +1740,8 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) ...@@ -1740,6 +1740,8 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
if (ret) if (ret)
goto probe_failed; goto probe_failed;
ha->isp_ops->enable_intrs(ha);
scsi_scan_host(host); scsi_scan_host(host);
qla2x00_alloc_sysfs_attr(ha); qla2x00_alloc_sysfs_attr(ha);
......
...@@ -852,7 +852,7 @@ static void scsi_end_bidi_request(struct scsi_cmnd *cmd) ...@@ -852,7 +852,7 @@ static void scsi_end_bidi_request(struct scsi_cmnd *cmd)
void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
{ {
int result = cmd->result; int result = cmd->result;
int this_count = scsi_bufflen(cmd); int this_count;
struct request_queue *q = cmd->device->request_queue; struct request_queue *q = cmd->device->request_queue;
struct request *req = cmd->request; struct request *req = cmd->request;
int error = 0; int error = 0;
...@@ -908,6 +908,7 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) ...@@ -908,6 +908,7 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
*/ */
if (scsi_end_request(cmd, error, good_bytes, result == 0) == NULL) if (scsi_end_request(cmd, error, good_bytes, result == 0) == NULL)
return; return;
this_count = blk_rq_bytes(req);
/* good_bytes = 0, or (inclusive) there were leftovers and /* good_bytes = 0, or (inclusive) there were leftovers and
* result = 0, so scsi_end_request couldn't retry. * result = 0, so scsi_end_request couldn't retry.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment