diff options
author | James.Smart@Emulex.Com <James.Smart@Emulex.Com> | 2005-10-28 20:29:28 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-10-29 11:19:52 -0400 |
commit | f91b392c4d20fcd2684587c0a091123c0409959c (patch) | |
tree | d6ffb11b617930a5c518367c5d3dea84d560a406 /drivers/scsi/lpfc/lpfc_sli.c | |
parent | 09703d38d47d2b4ff769269ffe01c9aa340e3c8b (diff) |
[SCSI] lpfc: Fix for "Unknown IOCB command Data: x0 x3 x0 x0"
Fix for "Unknown IOCB command Data: x0 x3 x0 x0" messages and
inability to see devices
On some platforms, the host-memory based ring mgmt area was not
zero. Also, driver wasn't manipulating the entire 32bits of the ring
pointers.
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_sli.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index e74e224fd77c..71ff2b6a642f 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c | |||
@@ -335,7 +335,7 @@ lpfc_sli_submit_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, | |||
335 | * driver will put a command into. | 335 | * driver will put a command into. |
336 | */ | 336 | */ |
337 | pring->cmdidx = pring->next_cmdidx; | 337 | pring->cmdidx = pring->next_cmdidx; |
338 | writeb(pring->cmdidx, phba->MBslimaddr | 338 | writel(pring->cmdidx, phba->MBslimaddr |
339 | + (SLIMOFF + (pring->ringno * 2)) * 4); | 339 | + (SLIMOFF + (pring->ringno * 2)) * 4); |
340 | } | 340 | } |
341 | 341 | ||
@@ -1033,7 +1033,7 @@ lpfc_sli_handle_fast_ring_event(struct lpfc_hba * phba, | |||
1033 | 1033 | ||
1034 | to_slim = phba->MBslimaddr + | 1034 | to_slim = phba->MBslimaddr + |
1035 | (SLIMOFF + (pring->ringno * 2) + 1) * 4; | 1035 | (SLIMOFF + (pring->ringno * 2) + 1) * 4; |
1036 | writeb(pring->rspidx, to_slim); | 1036 | writel(pring->rspidx, to_slim); |
1037 | 1037 | ||
1038 | if (pring->rspidx == portRspPut) | 1038 | if (pring->rspidx == portRspPut) |
1039 | portRspPut = le32_to_cpu(pgp->rspPutInx); | 1039 | portRspPut = le32_to_cpu(pgp->rspPutInx); |
@@ -1147,7 +1147,7 @@ lpfc_sli_handle_slow_ring_event(struct lpfc_hba * phba, | |||
1147 | 1147 | ||
1148 | to_slim = phba->MBslimaddr + (SLIMOFF + (pring->ringno * 2) | 1148 | to_slim = phba->MBslimaddr + (SLIMOFF + (pring->ringno * 2) |
1149 | + 1) * 4; | 1149 | + 1) * 4; |
1150 | writeb(pring->rspidx, to_slim); | 1150 | writel(pring->rspidx, to_slim); |
1151 | 1151 | ||
1152 | if (list_empty(&(pring->iocb_continueq))) { | 1152 | if (list_empty(&(pring->iocb_continueq))) { |
1153 | list_add(&rspiocbp->list, &(pring->iocb_continueq)); | 1153 | list_add(&rspiocbp->list, &(pring->iocb_continueq)); |