aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aacraid
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/aacraid')
-rw-r--r--drivers/scsi/aacraid/aacraid.h4
-rw-r--r--drivers/scsi/aacraid/commctrl.c16
-rw-r--r--drivers/scsi/aacraid/commsup.c54
-rw-r--r--drivers/scsi/aacraid/dpcsup.c8
-rw-r--r--drivers/scsi/aacraid/rx.c4
5 files changed, 41 insertions, 45 deletions
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
index 7e25c0bbd644..9ca594b33d1c 100644
--- a/drivers/scsi/aacraid/aacraid.h
+++ b/drivers/scsi/aacraid/aacraid.h
@@ -834,7 +834,7 @@ struct fib {
834 */ 834 */
835 struct list_head fiblink; 835 struct list_head fiblink;
836 void *data; 836 void *data;
837 struct hw_fib *hw_fib; /* Actual shared object */ 837 struct hw_fib *hw_fib_va; /* Actual shared object */
838 dma_addr_t hw_fib_pa; /* physical address of hw_fib*/ 838 dma_addr_t hw_fib_pa; /* physical address of hw_fib*/
839}; 839};
840 840
@@ -1821,7 +1821,7 @@ int aac_fib_send(u16 command, struct fib * context, unsigned long size, int prio
1821int aac_consumer_get(struct aac_dev * dev, struct aac_queue * q, struct aac_entry **entry); 1821int aac_consumer_get(struct aac_dev * dev, struct aac_queue * q, struct aac_entry **entry);
1822void aac_consumer_free(struct aac_dev * dev, struct aac_queue * q, u32 qnum); 1822void aac_consumer_free(struct aac_dev * dev, struct aac_queue * q, u32 qnum);
1823int aac_fib_complete(struct fib * context); 1823int aac_fib_complete(struct fib * context);
1824#define fib_data(fibctx) ((void *)(fibctx)->hw_fib->data) 1824#define fib_data(fibctx) ((void *)(fibctx)->hw_fib_va->data)
1825struct aac_dev *aac_init_adapter(struct aac_dev *dev); 1825struct aac_dev *aac_init_adapter(struct aac_dev *dev);
1826int aac_get_config_status(struct aac_dev *dev, int commit_flag); 1826int aac_get_config_status(struct aac_dev *dev, int commit_flag);
1827int aac_get_containers(struct aac_dev *dev); 1827int aac_get_containers(struct aac_dev *dev);
diff --git a/drivers/scsi/aacraid/commctrl.c b/drivers/scsi/aacraid/commctrl.c
index e21070f4eac1..83d5680e1326 100644
--- a/drivers/scsi/aacraid/commctrl.c
+++ b/drivers/scsi/aacraid/commctrl.c
@@ -69,7 +69,7 @@ static int ioctl_send_fib(struct aac_dev * dev, void __user *arg)
69 return -ENOMEM; 69 return -ENOMEM;
70 } 70 }
71 71
72 kfib = fibptr->hw_fib; 72 kfib = fibptr->hw_fib_va;
73 /* 73 /*
74 * First copy in the header so that we can check the size field. 74 * First copy in the header so that we can check the size field.
75 */ 75 */
@@ -91,9 +91,9 @@ static int ioctl_send_fib(struct aac_dev * dev, void __user *arg)
91 goto cleanup; 91 goto cleanup;
92 } 92 }
93 /* Highjack the hw_fib */ 93 /* Highjack the hw_fib */
94 hw_fib = fibptr->hw_fib; 94 hw_fib = fibptr->hw_fib_va;
95 hw_fib_pa = fibptr->hw_fib_pa; 95 hw_fib_pa = fibptr->hw_fib_pa;
96 fibptr->hw_fib = kfib = pci_alloc_consistent(dev->pdev, size, &fibptr->hw_fib_pa); 96 fibptr->hw_fib_va = kfib = pci_alloc_consistent(dev->pdev, size, &fibptr->hw_fib_pa);
97 memset(((char *)kfib) + dev->max_fib_size, 0, size - dev->max_fib_size); 97 memset(((char *)kfib) + dev->max_fib_size, 0, size - dev->max_fib_size);
98 memcpy(kfib, hw_fib, dev->max_fib_size); 98 memcpy(kfib, hw_fib, dev->max_fib_size);
99 } 99 }
@@ -137,7 +137,7 @@ cleanup:
137 if (hw_fib) { 137 if (hw_fib) {
138 pci_free_consistent(dev->pdev, size, kfib, fibptr->hw_fib_pa); 138 pci_free_consistent(dev->pdev, size, kfib, fibptr->hw_fib_pa);
139 fibptr->hw_fib_pa = hw_fib_pa; 139 fibptr->hw_fib_pa = hw_fib_pa;
140 fibptr->hw_fib = hw_fib; 140 fibptr->hw_fib_va = hw_fib;
141 } 141 }
142 if (retval != -EINTR) 142 if (retval != -EINTR)
143 aac_fib_free(fibptr); 143 aac_fib_free(fibptr);
@@ -282,15 +282,15 @@ return_fib:
282 fib = list_entry(entry, struct fib, fiblink); 282 fib = list_entry(entry, struct fib, fiblink);
283 fibctx->count--; 283 fibctx->count--;
284 spin_unlock_irqrestore(&dev->fib_lock, flags); 284 spin_unlock_irqrestore(&dev->fib_lock, flags);
285 if (copy_to_user(f.fib, fib->hw_fib, sizeof(struct hw_fib))) { 285 if (copy_to_user(f.fib, fib->hw_fib_va, sizeof(struct hw_fib))) {
286 kfree(fib->hw_fib); 286 kfree(fib->hw_fib_va);
287 kfree(fib); 287 kfree(fib);
288 return -EFAULT; 288 return -EFAULT;
289 } 289 }
290 /* 290 /*
291 * Free the space occupied by this copy of the fib. 291 * Free the space occupied by this copy of the fib.
292 */ 292 */
293 kfree(fib->hw_fib); 293 kfree(fib->hw_fib_va);
294 kfree(fib); 294 kfree(fib);
295 status = 0; 295 status = 0;
296 } else { 296 } else {
@@ -340,7 +340,7 @@ int aac_close_fib_context(struct aac_dev * dev, struct aac_fib_context * fibctx)
340 /* 340 /*
341 * Free the space occupied by this copy of the fib. 341 * Free the space occupied by this copy of the fib.
342 */ 342 */
343 kfree(fib->hw_fib); 343 kfree(fib->hw_fib_va);
344 kfree(fib); 344 kfree(fib);
345 } 345 }
346 /* 346 /*
diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c
index 55bf6f395e92..e67ff13eb359 100644
--- a/drivers/scsi/aacraid/commsup.c
+++ b/drivers/scsi/aacraid/commsup.c
@@ -94,7 +94,7 @@ void aac_fib_map_free(struct aac_dev *dev)
94int aac_fib_setup(struct aac_dev * dev) 94int aac_fib_setup(struct aac_dev * dev)
95{ 95{
96 struct fib *fibptr; 96 struct fib *fibptr;
97 struct hw_fib *hw_fib_va; 97 struct hw_fib *hw_fib;
98 dma_addr_t hw_fib_pa; 98 dma_addr_t hw_fib_pa;
99 int i; 99 int i;
100 100
@@ -106,24 +106,24 @@ int aac_fib_setup(struct aac_dev * dev)
106 if (i<0) 106 if (i<0)
107 return -ENOMEM; 107 return -ENOMEM;
108 108
109 hw_fib_va = dev->hw_fib_va; 109 hw_fib = dev->hw_fib_va;
110 hw_fib_pa = dev->hw_fib_pa; 110 hw_fib_pa = dev->hw_fib_pa;
111 memset(hw_fib_va, 0, dev->max_fib_size * (dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB)); 111 memset(hw_fib, 0, dev->max_fib_size * (dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB));
112 /* 112 /*
113 * Initialise the fibs 113 * Initialise the fibs
114 */ 114 */
115 for (i = 0, fibptr = &dev->fibs[i]; i < (dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB); i++, fibptr++) 115 for (i = 0, fibptr = &dev->fibs[i]; i < (dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB); i++, fibptr++)
116 { 116 {
117 fibptr->dev = dev; 117 fibptr->dev = dev;
118 fibptr->hw_fib = hw_fib_va; 118 fibptr->hw_fib_va = hw_fib;
119 fibptr->data = (void *) fibptr->hw_fib->data; 119 fibptr->data = (void *) fibptr->hw_fib_va->data;
120 fibptr->next = fibptr+1; /* Forward chain the fibs */ 120 fibptr->next = fibptr+1; /* Forward chain the fibs */
121 init_MUTEX_LOCKED(&fibptr->event_wait); 121 init_MUTEX_LOCKED(&fibptr->event_wait);
122 spin_lock_init(&fibptr->event_lock); 122 spin_lock_init(&fibptr->event_lock);
123 hw_fib_va->header.XferState = cpu_to_le32(0xffffffff); 123 hw_fib->header.XferState = cpu_to_le32(0xffffffff);
124 hw_fib_va->header.SenderSize = cpu_to_le16(dev->max_fib_size); 124 hw_fib->header.SenderSize = cpu_to_le16(dev->max_fib_size);
125 fibptr->hw_fib_pa = hw_fib_pa; 125 fibptr->hw_fib_pa = hw_fib_pa;
126 hw_fib_va = (struct hw_fib *)((unsigned char *)hw_fib_va + dev->max_fib_size); 126 hw_fib = (struct hw_fib *)((unsigned char *)hw_fib + dev->max_fib_size);
127 hw_fib_pa = hw_fib_pa + dev->max_fib_size; 127 hw_fib_pa = hw_fib_pa + dev->max_fib_size;
128 } 128 }
129 /* 129 /*
@@ -166,7 +166,7 @@ struct fib *aac_fib_alloc(struct aac_dev *dev)
166 * Null out fields that depend on being zero at the start of 166 * Null out fields that depend on being zero at the start of
167 * each I/O 167 * each I/O
168 */ 168 */
169 fibptr->hw_fib->header.XferState = 0; 169 fibptr->hw_fib_va->header.XferState = 0;
170 fibptr->callback = NULL; 170 fibptr->callback = NULL;
171 fibptr->callback_data = NULL; 171 fibptr->callback_data = NULL;
172 172
@@ -191,10 +191,10 @@ void aac_fib_free(struct fib *fibptr)
191 fibptr->next = fibptr->dev->timeout_fib; 191 fibptr->next = fibptr->dev->timeout_fib;
192 fibptr->dev->timeout_fib = fibptr; 192 fibptr->dev->timeout_fib = fibptr;
193 } else { 193 } else {
194 if (fibptr->hw_fib->header.XferState != 0) { 194 if (fibptr->hw_fib_va->header.XferState != 0) {
195 printk(KERN_WARNING "aac_fib_free, XferState != 0, fibptr = 0x%p, XferState = 0x%x\n", 195 printk(KERN_WARNING "aac_fib_free, XferState != 0, fibptr = 0x%p, XferState = 0x%x\n",
196 (void*)fibptr, 196 (void*)fibptr,
197 le32_to_cpu(fibptr->hw_fib->header.XferState)); 197 le32_to_cpu(fibptr->hw_fib_va->header.XferState));
198 } 198 }
199 fibptr->next = fibptr->dev->free_fib; 199 fibptr->next = fibptr->dev->free_fib;
200 fibptr->dev->free_fib = fibptr; 200 fibptr->dev->free_fib = fibptr;
@@ -211,7 +211,7 @@ void aac_fib_free(struct fib *fibptr)
211 211
212void aac_fib_init(struct fib *fibptr) 212void aac_fib_init(struct fib *fibptr)
213{ 213{
214 struct hw_fib *hw_fib = fibptr->hw_fib; 214 struct hw_fib *hw_fib = fibptr->hw_fib_va;
215 215
216 hw_fib->header.StructType = FIB_MAGIC; 216 hw_fib->header.StructType = FIB_MAGIC;
217 hw_fib->header.Size = cpu_to_le16(fibptr->dev->max_fib_size); 217 hw_fib->header.Size = cpu_to_le16(fibptr->dev->max_fib_size);
@@ -231,7 +231,7 @@ void aac_fib_init(struct fib *fibptr)
231 231
232static void fib_dealloc(struct fib * fibptr) 232static void fib_dealloc(struct fib * fibptr)
233{ 233{
234 struct hw_fib *hw_fib = fibptr->hw_fib; 234 struct hw_fib *hw_fib = fibptr->hw_fib_va;
235 BUG_ON(hw_fib->header.StructType != FIB_MAGIC); 235 BUG_ON(hw_fib->header.StructType != FIB_MAGIC);
236 hw_fib->header.XferState = 0; 236 hw_fib->header.XferState = 0;
237} 237}
@@ -386,7 +386,7 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size,
386 void *callback_data) 386 void *callback_data)
387{ 387{
388 struct aac_dev * dev = fibptr->dev; 388 struct aac_dev * dev = fibptr->dev;
389 struct hw_fib * hw_fib = fibptr->hw_fib; 389 struct hw_fib * hw_fib = fibptr->hw_fib_va;
390 unsigned long flags = 0; 390 unsigned long flags = 0;
391 unsigned long qflags; 391 unsigned long qflags;
392 392
@@ -430,7 +430,7 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size,
430 */ 430 */
431 hw_fib->header.Command = cpu_to_le16(command); 431 hw_fib->header.Command = cpu_to_le16(command);
432 hw_fib->header.XferState |= cpu_to_le32(SentFromHost); 432 hw_fib->header.XferState |= cpu_to_le32(SentFromHost);
433 fibptr->hw_fib->header.Flags = 0; /* 0 the flags field - internal only*/ 433 fibptr->hw_fib_va->header.Flags = 0; /* 0 the flags field - internal only*/
434 /* 434 /*
435 * Set the size of the Fib we want to send to the adapter 435 * Set the size of the Fib we want to send to the adapter
436 */ 436 */
@@ -462,7 +462,7 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size,
462 dprintk((KERN_DEBUG " Command = %d.\n", le32_to_cpu(hw_fib->header.Command))); 462 dprintk((KERN_DEBUG " Command = %d.\n", le32_to_cpu(hw_fib->header.Command)));
463 dprintk((KERN_DEBUG " SubCommand = %d.\n", le32_to_cpu(((struct aac_query_mount *)fib_data(fibptr))->command))); 463 dprintk((KERN_DEBUG " SubCommand = %d.\n", le32_to_cpu(((struct aac_query_mount *)fib_data(fibptr))->command)));
464 dprintk((KERN_DEBUG " XferState = %x.\n", le32_to_cpu(hw_fib->header.XferState))); 464 dprintk((KERN_DEBUG " XferState = %x.\n", le32_to_cpu(hw_fib->header.XferState)));
465 dprintk((KERN_DEBUG " hw_fib va being sent=%p\n",fibptr->hw_fib)); 465 dprintk((KERN_DEBUG " hw_fib va being sent=%p\n",fibptr->hw_fib_va));
466 dprintk((KERN_DEBUG " hw_fib pa being sent=%lx\n",(ulong)fibptr->hw_fib_pa)); 466 dprintk((KERN_DEBUG " hw_fib pa being sent=%lx\n",(ulong)fibptr->hw_fib_pa));
467 dprintk((KERN_DEBUG " fib being sent=%p\n",fibptr)); 467 dprintk((KERN_DEBUG " fib being sent=%p\n",fibptr));
468 468
@@ -624,7 +624,7 @@ void aac_consumer_free(struct aac_dev * dev, struct aac_queue *q, u32 qid)
624 624
625int aac_fib_adapter_complete(struct fib *fibptr, unsigned short size) 625int aac_fib_adapter_complete(struct fib *fibptr, unsigned short size)
626{ 626{
627 struct hw_fib * hw_fib = fibptr->hw_fib; 627 struct hw_fib * hw_fib = fibptr->hw_fib_va;
628 struct aac_dev * dev = fibptr->dev; 628 struct aac_dev * dev = fibptr->dev;
629 struct aac_queue * q; 629 struct aac_queue * q;
630 unsigned long nointr = 0; 630 unsigned long nointr = 0;
@@ -688,7 +688,7 @@ int aac_fib_adapter_complete(struct fib *fibptr, unsigned short size)
688 688
689int aac_fib_complete(struct fib *fibptr) 689int aac_fib_complete(struct fib *fibptr)
690{ 690{
691 struct hw_fib * hw_fib = fibptr->hw_fib; 691 struct hw_fib * hw_fib = fibptr->hw_fib_va;
692 692
693 /* 693 /*
694 * Check for a fib which has already been completed 694 * Check for a fib which has already been completed
@@ -774,9 +774,8 @@ void aac_printf(struct aac_dev *dev, u32 val)
774#define AIF_SNIFF_TIMEOUT (30*HZ) 774#define AIF_SNIFF_TIMEOUT (30*HZ)
775static void aac_handle_aif(struct aac_dev * dev, struct fib * fibptr) 775static void aac_handle_aif(struct aac_dev * dev, struct fib * fibptr)
776{ 776{
777 struct hw_fib * hw_fib = fibptr->hw_fib; 777 struct hw_fib * hw_fib = fibptr->hw_fib_va;
778 struct aac_aifcmd * aifcmd = (struct aac_aifcmd *)hw_fib->data; 778 struct aac_aifcmd * aifcmd = (struct aac_aifcmd *)hw_fib->data;
779 int busy;
780 u32 container; 779 u32 container;
781 struct scsi_device *device; 780 struct scsi_device *device;
782 enum { 781 enum {
@@ -988,9 +987,6 @@ static void aac_handle_aif(struct aac_dev * dev, struct fib * fibptr)
988 * behind you. 987 * behind you.
989 */ 988 */
990 989
991 busy = 0;
992
993
994 /* 990 /*
995 * Find the scsi_device associated with the SCSI address, 991 * Find the scsi_device associated with the SCSI address,
996 * and mark it as changed, invalidating the cache. This deals 992 * and mark it as changed, invalidating the cache. This deals
@@ -1068,8 +1064,8 @@ static int _aac_reset_adapter(struct aac_dev *aac)
1068 */ 1064 */
1069 for (index = 0; index < (aac->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB); index++) { 1065 for (index = 0; index < (aac->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB); index++) {
1070 struct fib *fib = &aac->fibs[index]; 1066 struct fib *fib = &aac->fibs[index];
1071 if (!(fib->hw_fib->header.XferState & cpu_to_le32(NoResponseExpected | Async)) && 1067 if (!(fib->hw_fib_va->header.XferState & cpu_to_le32(NoResponseExpected | Async)) &&
1072 (fib->hw_fib->header.XferState & cpu_to_le32(ResponseExpected))) { 1068 (fib->hw_fib_va->header.XferState & cpu_to_le32(ResponseExpected))) {
1073 unsigned long flagv; 1069 unsigned long flagv;
1074 spin_lock_irqsave(&fib->event_lock, flagv); 1070 spin_lock_irqsave(&fib->event_lock, flagv);
1075 up(&fib->event_wait); 1071 up(&fib->event_wait);
@@ -1237,7 +1233,7 @@ int aac_check_health(struct aac_dev * aac)
1237 1233
1238 memset(hw_fib, 0, sizeof(struct hw_fib)); 1234 memset(hw_fib, 0, sizeof(struct hw_fib));
1239 memset(fib, 0, sizeof(struct fib)); 1235 memset(fib, 0, sizeof(struct fib));
1240 fib->hw_fib = hw_fib; 1236 fib->hw_fib_va = hw_fib;
1241 fib->dev = aac; 1237 fib->dev = aac;
1242 aac_fib_init(fib); 1238 aac_fib_init(fib);
1243 fib->type = FSAFS_NTC_FIB_CONTEXT; 1239 fib->type = FSAFS_NTC_FIB_CONTEXT;
@@ -1343,11 +1339,11 @@ int aac_command_thread(void *data)
1343 * do anything at this point since we don't have 1339 * do anything at this point since we don't have
1344 * anything defined for this thread to do. 1340 * anything defined for this thread to do.
1345 */ 1341 */
1346 hw_fib = fib->hw_fib; 1342 hw_fib = fib->hw_fib_va;
1347 memset(fib, 0, sizeof(struct fib)); 1343 memset(fib, 0, sizeof(struct fib));
1348 fib->type = FSAFS_NTC_FIB_CONTEXT; 1344 fib->type = FSAFS_NTC_FIB_CONTEXT;
1349 fib->size = sizeof( struct fib ); 1345 fib->size = sizeof( struct fib );
1350 fib->hw_fib = hw_fib; 1346 fib->hw_fib_va = hw_fib;
1351 fib->data = hw_fib->data; 1347 fib->data = hw_fib->data;
1352 fib->dev = dev; 1348 fib->dev = dev;
1353 /* 1349 /*
@@ -1474,7 +1470,7 @@ int aac_command_thread(void *data)
1474 */ 1470 */
1475 memcpy(hw_newfib, hw_fib, sizeof(struct hw_fib)); 1471 memcpy(hw_newfib, hw_fib, sizeof(struct hw_fib));
1476 memcpy(newfib, fib, sizeof(struct fib)); 1472 memcpy(newfib, fib, sizeof(struct fib));
1477 newfib->hw_fib = hw_newfib; 1473 newfib->hw_fib_va = hw_newfib;
1478 /* 1474 /*
1479 * Put the FIB onto the 1475 * Put the FIB onto the
1480 * fibctx's fibs 1476 * fibctx's fibs
diff --git a/drivers/scsi/aacraid/dpcsup.c b/drivers/scsi/aacraid/dpcsup.c
index d38b628be1ad..26f4d563d959 100644
--- a/drivers/scsi/aacraid/dpcsup.c
+++ b/drivers/scsi/aacraid/dpcsup.c
@@ -73,7 +73,7 @@ unsigned int aac_response_normal(struct aac_queue * q)
73 u32 index = le32_to_cpu(entry->addr); 73 u32 index = le32_to_cpu(entry->addr);
74 fast = index & 0x01; 74 fast = index & 0x01;
75 fib = &dev->fibs[index >> 2]; 75 fib = &dev->fibs[index >> 2];
76 hwfib = fib->hw_fib; 76 hwfib = fib->hw_fib_va;
77 77
78 aac_consumer_free(dev, q, HostNormRespQueue); 78 aac_consumer_free(dev, q, HostNormRespQueue);
79 /* 79 /*
@@ -193,7 +193,7 @@ unsigned int aac_command_normal(struct aac_queue *q)
193 INIT_LIST_HEAD(&fib->fiblink); 193 INIT_LIST_HEAD(&fib->fiblink);
194 fib->type = FSAFS_NTC_FIB_CONTEXT; 194 fib->type = FSAFS_NTC_FIB_CONTEXT;
195 fib->size = sizeof(struct fib); 195 fib->size = sizeof(struct fib);
196 fib->hw_fib = hw_fib; 196 fib->hw_fib_va = hw_fib;
197 fib->data = hw_fib->data; 197 fib->data = hw_fib->data;
198 fib->dev = dev; 198 fib->dev = dev;
199 199
@@ -259,7 +259,7 @@ unsigned int aac_intr_normal(struct aac_dev * dev, u32 Index)
259 INIT_LIST_HEAD(&fib->fiblink); 259 INIT_LIST_HEAD(&fib->fiblink);
260 fib->type = FSAFS_NTC_FIB_CONTEXT; 260 fib->type = FSAFS_NTC_FIB_CONTEXT;
261 fib->size = sizeof(struct fib); 261 fib->size = sizeof(struct fib);
262 fib->hw_fib = hw_fib; 262 fib->hw_fib_va = hw_fib;
263 fib->data = hw_fib->data; 263 fib->data = hw_fib->data;
264 fib->dev = dev; 264 fib->dev = dev;
265 265
@@ -271,7 +271,7 @@ unsigned int aac_intr_normal(struct aac_dev * dev, u32 Index)
271 } else { 271 } else {
272 int fast = index & 0x01; 272 int fast = index & 0x01;
273 struct fib * fib = &dev->fibs[index >> 2]; 273 struct fib * fib = &dev->fibs[index >> 2];
274 struct hw_fib * hwfib = fib->hw_fib; 274 struct hw_fib * hwfib = fib->hw_fib_va;
275 275
276 /* 276 /*
277 * Remove this fib from the Outstanding I/O queue. 277 * Remove this fib from the Outstanding I/O queue.
diff --git a/drivers/scsi/aacraid/rx.c b/drivers/scsi/aacraid/rx.c
index 00e3cba9d8ef..6f8a19462e40 100644
--- a/drivers/scsi/aacraid/rx.c
+++ b/drivers/scsi/aacraid/rx.c
@@ -387,7 +387,7 @@ static int aac_rx_deliver_producer(struct fib * fib)
387 unsigned long nointr = 0; 387 unsigned long nointr = 0;
388 388
389 spin_lock_irqsave(q->lock, qflags); 389 spin_lock_irqsave(q->lock, qflags);
390 aac_queue_get( dev, &Index, AdapNormCmdQueue, fib->hw_fib, 1, fib, &nointr); 390 aac_queue_get( dev, &Index, AdapNormCmdQueue, fib->hw_fib_va, 1, fib, &nointr);
391 391
392 q->numpending++; 392 q->numpending++;
393 *(q->headers.producer) = cpu_to_le32(Index + 1); 393 *(q->headers.producer) = cpu_to_le32(Index + 1);
@@ -437,7 +437,7 @@ static int aac_rx_deliver_message(struct fib * fib)
437 device += sizeof(u32); 437 device += sizeof(u32);
438 writel((u32)(addr >> 32), device); 438 writel((u32)(addr >> 32), device);
439 device += sizeof(u32); 439 device += sizeof(u32);
440 writel(le16_to_cpu(fib->hw_fib->header.Size), device); 440 writel(le16_to_cpu(fib->hw_fib_va->header.Size), device);
441 rx_writel(dev, MUnit.InboundQueue, Index); 441 rx_writel(dev, MUnit.InboundQueue, Index);
442 return 0; 442 return 0;
443} 443}