diff options
author | Linus Torvalds | 2007-10-04 10:29:19 -0700 |
---|---|---|
committer | Linus Torvalds | 2007-10-04 10:29:19 -0700 |
commit | 9cdcaa2c9330432bfe891d40f2d914b80bbcf9f3 (patch) | |
tree | 68fa88b9f43c0d37d37e7f38f28a3e13dae61031 | |
parent | 16abfa086096895d438b19198e408ee96da7b508 (diff) | |
parent | d5e89385e92a77b2764d9eb8284808a7628cb2a8 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
[SCSI] megaraid_old: fix READ_CAPACITY
-rw-r--r-- | drivers/scsi/megaraid.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index 3907f6718ede..da56163c30a8 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c @@ -1753,6 +1753,14 @@ mega_build_sglist(adapter_t *adapter, scb_t *scb, u32 *buf, u32 *len) *len = 0; + if (scsi_sg_count(cmd) == 1 && !adapter->has_64bit_addr) { + sg = scsi_sglist(cmd); + scb->dma_h_bulkdata = sg_dma_address(sg); + *buf = (u32)scb->dma_h_bulkdata; + *len = sg_dma_len(sg); + return 0; + } + scsi_for_each_sg(cmd, sg, sgcnt, idx) { if (adapter->has_64bit_addr) { scb->sgl64[idx].address = sg_dma_address(sg); |