diff options
author | Salyzyn, Mark <Mark_Salyzyn@adaptec.com> | 2008-01-16 10:39:06 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-01-23 12:29:28 -0500 |
commit | 8ce3eca4dc8161e030a055bde94cde28476e0894 (patch) | |
tree | 4cbf81513780508f763ce115a05ab1597a3a0ebc /drivers/scsi/aacraid/commsup.c | |
parent | d07e03610ca1f4be373f32ad5b25ac00dbdb867d (diff) |
[SCSI] aacraid: remove pigs in space
I was amazed at how much embedded space was present in the aacraid
driver source files. Just selected five files from the set to clean up
for now and the attached patch swelled to 73K in size!
- Removed trailing space or tabs
- Removed spaces embedded within tabs
- Replaced leading 8 spaces with tabs
- Removed spaces before )
- Removed ClusterCommand as it was unused (noticed it as one triggered by above)
- Replaced scsi_status comparison with 0x02, to compare against SAM_STATUS_CHECK_CONDITION.
- Replaced a long series of spaces with tabs
- Replaced some simple if...defined() with ifdef/ifndef
Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/aacraid/commsup.c')
-rw-r--r-- | drivers/scsi/aacraid/commsup.c | 201 |
1 files changed, 100 insertions, 101 deletions
diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c index 6d88f30296e1..1dd2e57c3345 100644 --- a/drivers/scsi/aacraid/commsup.c +++ b/drivers/scsi/aacraid/commsup.c | |||
@@ -56,7 +56,7 @@ | |||
56 | * Allocate and map the shared PCI space for the FIB blocks used to | 56 | * Allocate and map the shared PCI space for the FIB blocks used to |
57 | * talk to the Adaptec firmware. | 57 | * talk to the Adaptec firmware. |
58 | */ | 58 | */ |
59 | 59 | ||
60 | static int fib_map_alloc(struct aac_dev *dev) | 60 | static int fib_map_alloc(struct aac_dev *dev) |
61 | { | 61 | { |
62 | dprintk((KERN_INFO | 62 | dprintk((KERN_INFO |
@@ -109,14 +109,16 @@ int aac_fib_setup(struct aac_dev * dev) | |||
109 | } | 109 | } |
110 | if (i<0) | 110 | if (i<0) |
111 | return -ENOMEM; | 111 | return -ENOMEM; |
112 | 112 | ||
113 | hw_fib = dev->hw_fib_va; | 113 | hw_fib = dev->hw_fib_va; |
114 | hw_fib_pa = dev->hw_fib_pa; | 114 | hw_fib_pa = dev->hw_fib_pa; |
115 | memset(hw_fib, 0, dev->max_fib_size * (dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB)); | 115 | memset(hw_fib, 0, dev->max_fib_size * (dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB)); |
116 | /* | 116 | /* |
117 | * Initialise the fibs | 117 | * Initialise the fibs |
118 | */ | 118 | */ |
119 | for (i = 0, fibptr = &dev->fibs[i]; i < (dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB); i++, fibptr++) | 119 | for (i = 0, fibptr = &dev->fibs[i]; |
120 | i < (dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB); | ||
121 | i++, fibptr++) | ||
120 | { | 122 | { |
121 | fibptr->dev = dev; | 123 | fibptr->dev = dev; |
122 | fibptr->hw_fib_va = hw_fib; | 124 | fibptr->hw_fib_va = hw_fib; |
@@ -148,13 +150,13 @@ int aac_fib_setup(struct aac_dev * dev) | |||
148 | * Allocate a fib from the adapter fib pool. If the pool is empty we | 150 | * Allocate a fib from the adapter fib pool. If the pool is empty we |
149 | * return NULL. | 151 | * return NULL. |
150 | */ | 152 | */ |
151 | 153 | ||
152 | struct fib *aac_fib_alloc(struct aac_dev *dev) | 154 | struct fib *aac_fib_alloc(struct aac_dev *dev) |
153 | { | 155 | { |
154 | struct fib * fibptr; | 156 | struct fib * fibptr; |
155 | unsigned long flags; | 157 | unsigned long flags; |
156 | spin_lock_irqsave(&dev->fib_lock, flags); | 158 | spin_lock_irqsave(&dev->fib_lock, flags); |
157 | fibptr = dev->free_fib; | 159 | fibptr = dev->free_fib; |
158 | if(!fibptr){ | 160 | if(!fibptr){ |
159 | spin_unlock_irqrestore(&dev->fib_lock, flags); | 161 | spin_unlock_irqrestore(&dev->fib_lock, flags); |
160 | return fibptr; | 162 | return fibptr; |
@@ -184,7 +186,7 @@ struct fib *aac_fib_alloc(struct aac_dev *dev) | |||
184 | * | 186 | * |
185 | * Frees up a fib and places it on the appropriate queue | 187 | * Frees up a fib and places it on the appropriate queue |
186 | */ | 188 | */ |
187 | 189 | ||
188 | void aac_fib_free(struct fib *fibptr) | 190 | void aac_fib_free(struct fib *fibptr) |
189 | { | 191 | { |
190 | unsigned long flags; | 192 | unsigned long flags; |
@@ -205,10 +207,10 @@ void aac_fib_free(struct fib *fibptr) | |||
205 | /** | 207 | /** |
206 | * aac_fib_init - initialise a fib | 208 | * aac_fib_init - initialise a fib |
207 | * @fibptr: The fib to initialize | 209 | * @fibptr: The fib to initialize |
208 | * | 210 | * |
209 | * Set up the generic fib fields ready for use | 211 | * Set up the generic fib fields ready for use |
210 | */ | 212 | */ |
211 | 213 | ||
212 | void aac_fib_init(struct fib *fibptr) | 214 | void aac_fib_init(struct fib *fibptr) |
213 | { | 215 | { |
214 | struct hw_fib *hw_fib = fibptr->hw_fib_va; | 216 | struct hw_fib *hw_fib = fibptr->hw_fib_va; |
@@ -228,12 +230,12 @@ void aac_fib_init(struct fib *fibptr) | |||
228 | * Will deallocate and return to the free pool the FIB pointed to by the | 230 | * Will deallocate and return to the free pool the FIB pointed to by the |
229 | * caller. | 231 | * caller. |
230 | */ | 232 | */ |
231 | 233 | ||
232 | static void fib_dealloc(struct fib * fibptr) | 234 | static void fib_dealloc(struct fib * fibptr) |
233 | { | 235 | { |
234 | struct hw_fib *hw_fib = fibptr->hw_fib_va; | 236 | struct hw_fib *hw_fib = fibptr->hw_fib_va; |
235 | BUG_ON(hw_fib->header.StructType != FIB_MAGIC); | 237 | BUG_ON(hw_fib->header.StructType != FIB_MAGIC); |
236 | hw_fib->header.XferState = 0; | 238 | hw_fib->header.XferState = 0; |
237 | } | 239 | } |
238 | 240 | ||
239 | /* | 241 | /* |
@@ -242,7 +244,7 @@ static void fib_dealloc(struct fib * fibptr) | |||
242 | * these routines and are the only routines which have a knowledge of the | 244 | * these routines and are the only routines which have a knowledge of the |
243 | * how these queues are implemented. | 245 | * how these queues are implemented. |
244 | */ | 246 | */ |
245 | 247 | ||
246 | /** | 248 | /** |
247 | * aac_get_entry - get a queue entry | 249 | * aac_get_entry - get a queue entry |
248 | * @dev: Adapter | 250 | * @dev: Adapter |
@@ -255,7 +257,7 @@ static void fib_dealloc(struct fib * fibptr) | |||
255 | * is full(no free entries) than no entry is returned and the function returns 0 otherwise 1 is | 257 | * is full(no free entries) than no entry is returned and the function returns 0 otherwise 1 is |
256 | * returned. | 258 | * returned. |
257 | */ | 259 | */ |
258 | 260 | ||
259 | static int aac_get_entry (struct aac_dev * dev, u32 qid, struct aac_entry **entry, u32 * index, unsigned long *nonotify) | 261 | static int aac_get_entry (struct aac_dev * dev, u32 qid, struct aac_entry **entry, u32 * index, unsigned long *nonotify) |
260 | { | 262 | { |
261 | struct aac_queue * q; | 263 | struct aac_queue * q; |
@@ -280,26 +282,27 @@ static int aac_get_entry (struct aac_dev * dev, u32 qid, struct aac_entry **entr | |||
280 | idx = ADAP_NORM_RESP_ENTRIES; | 282 | idx = ADAP_NORM_RESP_ENTRIES; |
281 | } | 283 | } |
282 | if (idx != le32_to_cpu(*(q->headers.consumer))) | 284 | if (idx != le32_to_cpu(*(q->headers.consumer))) |
283 | *nonotify = 1; | 285 | *nonotify = 1; |
284 | } | 286 | } |
285 | 287 | ||
286 | if (qid == AdapNormCmdQueue) { | 288 | if (qid == AdapNormCmdQueue) { |
287 | if (*index >= ADAP_NORM_CMD_ENTRIES) | 289 | if (*index >= ADAP_NORM_CMD_ENTRIES) |
288 | *index = 0; /* Wrap to front of the Producer Queue. */ | 290 | *index = 0; /* Wrap to front of the Producer Queue. */ |
289 | } else { | 291 | } else { |
290 | if (*index >= ADAP_NORM_RESP_ENTRIES) | 292 | if (*index >= ADAP_NORM_RESP_ENTRIES) |
291 | *index = 0; /* Wrap to front of the Producer Queue. */ | 293 | *index = 0; /* Wrap to front of the Producer Queue. */ |
292 | } | 294 | } |
293 | 295 | ||
294 | if ((*index + 1) == le32_to_cpu(*(q->headers.consumer))) { /* Queue is full */ | 296 | /* Queue is full */ |
297 | if ((*index + 1) == le32_to_cpu(*(q->headers.consumer))) { | ||
295 | printk(KERN_WARNING "Queue %d full, %u outstanding.\n", | 298 | printk(KERN_WARNING "Queue %d full, %u outstanding.\n", |
296 | qid, q->numpending); | 299 | qid, q->numpending); |
297 | return 0; | 300 | return 0; |
298 | } else { | 301 | } else { |
299 | *entry = q->base + *index; | 302 | *entry = q->base + *index; |
300 | return 1; | 303 | return 1; |
301 | } | 304 | } |
302 | } | 305 | } |
303 | 306 | ||
304 | /** | 307 | /** |
305 | * aac_queue_get - get the next free QE | 308 | * aac_queue_get - get the next free QE |
@@ -321,31 +324,29 @@ int aac_queue_get(struct aac_dev * dev, u32 * index, u32 qid, struct hw_fib * hw | |||
321 | { | 324 | { |
322 | struct aac_entry * entry = NULL; | 325 | struct aac_entry * entry = NULL; |
323 | int map = 0; | 326 | int map = 0; |
324 | 327 | ||
325 | if (qid == AdapNormCmdQueue) { | 328 | if (qid == AdapNormCmdQueue) { |
326 | /* if no entries wait for some if caller wants to */ | 329 | /* if no entries wait for some if caller wants to */ |
327 | while (!aac_get_entry(dev, qid, &entry, index, nonotify)) | 330 | while (!aac_get_entry(dev, qid, &entry, index, nonotify)) { |
328 | { | ||
329 | printk(KERN_ERR "GetEntries failed\n"); | 331 | printk(KERN_ERR "GetEntries failed\n"); |
330 | } | 332 | } |
331 | /* | 333 | /* |
332 | * Setup queue entry with a command, status and fib mapped | 334 | * Setup queue entry with a command, status and fib mapped |
333 | */ | 335 | */ |
334 | entry->size = cpu_to_le32(le16_to_cpu(hw_fib->header.Size)); | 336 | entry->size = cpu_to_le32(le16_to_cpu(hw_fib->header.Size)); |
335 | map = 1; | 337 | map = 1; |
336 | } else { | 338 | } else { |
337 | while(!aac_get_entry(dev, qid, &entry, index, nonotify)) | 339 | while (!aac_get_entry(dev, qid, &entry, index, nonotify)) { |
338 | { | ||
339 | /* if no entries wait for some if caller wants to */ | 340 | /* if no entries wait for some if caller wants to */ |
340 | } | 341 | } |
341 | /* | 342 | /* |
342 | * Setup queue entry with command, status and fib mapped | 343 | * Setup queue entry with command, status and fib mapped |
343 | */ | 344 | */ |
344 | entry->size = cpu_to_le32(le16_to_cpu(hw_fib->header.Size)); | 345 | entry->size = cpu_to_le32(le16_to_cpu(hw_fib->header.Size)); |
345 | entry->addr = hw_fib->header.SenderFibAddress; | 346 | entry->addr = hw_fib->header.SenderFibAddress; |
346 | /* Restore adapters pointer to the FIB */ | 347 | /* Restore adapters pointer to the FIB */ |
347 | hw_fib->header.ReceiverFibAddress = hw_fib->header.SenderFibAddress; /* Let the adapter now where to find its data */ | 348 | hw_fib->header.ReceiverFibAddress = hw_fib->header.SenderFibAddress; /* Let the adapter now where to find its data */ |
348 | map = 0; | 349 | map = 0; |
349 | } | 350 | } |
350 | /* | 351 | /* |
351 | * If MapFib is true than we need to map the Fib and put pointers | 352 | * If MapFib is true than we need to map the Fib and put pointers |
@@ -357,8 +358,8 @@ int aac_queue_get(struct aac_dev * dev, u32 * index, u32 qid, struct hw_fib * hw | |||
357 | } | 358 | } |
358 | 359 | ||
359 | /* | 360 | /* |
360 | * Define the highest level of host to adapter communication routines. | 361 | * Define the highest level of host to adapter communication routines. |
361 | * These routines will support host to adapter FS commuication. These | 362 | * These routines will support host to adapter FS commuication. These |
362 | * routines have no knowledge of the commuication method used. This level | 363 | * routines have no knowledge of the commuication method used. This level |
363 | * sends and receives FIBs. This level has no knowledge of how these FIBs | 364 | * sends and receives FIBs. This level has no knowledge of how these FIBs |
364 | * get passed back and forth. | 365 | * get passed back and forth. |
@@ -380,7 +381,7 @@ int aac_queue_get(struct aac_dev * dev, u32 * index, u32 qid, struct hw_fib * hw | |||
380 | * an event to wait on must be supplied. This event will be set when a | 381 | * an event to wait on must be supplied. This event will be set when a |
381 | * response FIB is received from the adapter. | 382 | * response FIB is received from the adapter. |
382 | */ | 383 | */ |
383 | 384 | ||
384 | int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | 385 | int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, |
385 | int priority, int wait, int reply, fib_callback callback, | 386 | int priority, int wait, int reply, fib_callback callback, |
386 | void *callback_data) | 387 | void *callback_data) |
@@ -393,13 +394,13 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
393 | if (!(hw_fib->header.XferState & cpu_to_le32(HostOwned))) | 394 | if (!(hw_fib->header.XferState & cpu_to_le32(HostOwned))) |
394 | return -EBUSY; | 395 | return -EBUSY; |
395 | /* | 396 | /* |
396 | * There are 5 cases with the wait and reponse requested flags. | 397 | * There are 5 cases with the wait and reponse requested flags. |
397 | * The only invalid cases are if the caller requests to wait and | 398 | * The only invalid cases are if the caller requests to wait and |
398 | * does not request a response and if the caller does not want a | 399 | * does not request a response and if the caller does not want a |
399 | * response and the Fib is not allocated from pool. If a response | 400 | * response and the Fib is not allocated from pool. If a response |
400 | * is not requesed the Fib will just be deallocaed by the DPC | 401 | * is not requesed the Fib will just be deallocaed by the DPC |
401 | * routine when the response comes back from the adapter. No | 402 | * routine when the response comes back from the adapter. No |
402 | * further processing will be done besides deleting the Fib. We | 403 | * further processing will be done besides deleting the Fib. We |
403 | * will have a debug mode where the adapter can notify the host | 404 | * will have a debug mode where the adapter can notify the host |
404 | * it had a problem and the host can log that fact. | 405 | * it had a problem and the host can log that fact. |
405 | */ | 406 | */ |
@@ -415,7 +416,7 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
415 | } else if (wait && reply) { | 416 | } else if (wait && reply) { |
416 | hw_fib->header.XferState |= cpu_to_le32(ResponseExpected); | 417 | hw_fib->header.XferState |= cpu_to_le32(ResponseExpected); |
417 | FIB_COUNTER_INCREMENT(aac_config.NormalSent); | 418 | FIB_COUNTER_INCREMENT(aac_config.NormalSent); |
418 | } | 419 | } |
419 | /* | 420 | /* |
420 | * Map the fib into 32bits by using the fib number | 421 | * Map the fib into 32bits by using the fib number |
421 | */ | 422 | */ |
@@ -438,7 +439,7 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
438 | hw_fib->header.Size = cpu_to_le16(sizeof(struct aac_fibhdr) + size); | 439 | hw_fib->header.Size = cpu_to_le16(sizeof(struct aac_fibhdr) + size); |
439 | if (le16_to_cpu(hw_fib->header.Size) > le16_to_cpu(hw_fib->header.SenderSize)) { | 440 | if (le16_to_cpu(hw_fib->header.Size) > le16_to_cpu(hw_fib->header.SenderSize)) { |
440 | return -EMSGSIZE; | 441 | return -EMSGSIZE; |
441 | } | 442 | } |
442 | /* | 443 | /* |
443 | * Get a queue entry connect the FIB to it and send an notify | 444 | * Get a queue entry connect the FIB to it and send an notify |
444 | * the adapter a command is ready. | 445 | * the adapter a command is ready. |
@@ -475,9 +476,9 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
475 | aac_adapter_deliver(fibptr); | 476 | aac_adapter_deliver(fibptr); |
476 | 477 | ||
477 | /* | 478 | /* |
478 | * If the caller wanted us to wait for response wait now. | 479 | * If the caller wanted us to wait for response wait now. |
479 | */ | 480 | */ |
480 | 481 | ||
481 | if (wait) { | 482 | if (wait) { |
482 | spin_unlock_irqrestore(&fibptr->event_lock, flags); | 483 | spin_unlock_irqrestore(&fibptr->event_lock, flags); |
483 | /* Only set for first known interruptable command */ | 484 | /* Only set for first known interruptable command */ |
@@ -524,7 +525,7 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
524 | } | 525 | } |
525 | spin_unlock_irqrestore(&fibptr->event_lock, flags); | 526 | spin_unlock_irqrestore(&fibptr->event_lock, flags); |
526 | BUG_ON(fibptr->done == 0); | 527 | BUG_ON(fibptr->done == 0); |
527 | 528 | ||
528 | if(unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)) | 529 | if(unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)) |
529 | return -ETIMEDOUT; | 530 | return -ETIMEDOUT; |
530 | return 0; | 531 | return 0; |
@@ -539,15 +540,15 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
539 | return 0; | 540 | return 0; |
540 | } | 541 | } |
541 | 542 | ||
542 | /** | 543 | /** |
543 | * aac_consumer_get - get the top of the queue | 544 | * aac_consumer_get - get the top of the queue |
544 | * @dev: Adapter | 545 | * @dev: Adapter |
545 | * @q: Queue | 546 | * @q: Queue |
546 | * @entry: Return entry | 547 | * @entry: Return entry |
547 | * | 548 | * |
548 | * Will return a pointer to the entry on the top of the queue requested that | 549 | * Will return a pointer to the entry on the top of the queue requested that |
549 | * we are a consumer of, and return the address of the queue entry. It does | 550 | * we are a consumer of, and return the address of the queue entry. It does |
550 | * not change the state of the queue. | 551 | * not change the state of the queue. |
551 | */ | 552 | */ |
552 | 553 | ||
553 | int aac_consumer_get(struct aac_dev * dev, struct aac_queue * q, struct aac_entry **entry) | 554 | int aac_consumer_get(struct aac_dev * dev, struct aac_queue * q, struct aac_entry **entry) |
@@ -562,10 +563,10 @@ int aac_consumer_get(struct aac_dev * dev, struct aac_queue * q, struct aac_entr | |||
562 | * the end of the queue, else we just use the entry | 563 | * the end of the queue, else we just use the entry |
563 | * pointed to by the header index | 564 | * pointed to by the header index |
564 | */ | 565 | */ |
565 | if (le32_to_cpu(*q->headers.consumer) >= q->entries) | 566 | if (le32_to_cpu(*q->headers.consumer) >= q->entries) |
566 | index = 0; | 567 | index = 0; |
567 | else | 568 | else |
568 | index = le32_to_cpu(*q->headers.consumer); | 569 | index = le32_to_cpu(*q->headers.consumer); |
569 | *entry = q->base + index; | 570 | *entry = q->base + index; |
570 | status = 1; | 571 | status = 1; |
571 | } | 572 | } |
@@ -589,12 +590,12 @@ void aac_consumer_free(struct aac_dev * dev, struct aac_queue *q, u32 qid) | |||
589 | 590 | ||
590 | if ((le32_to_cpu(*q->headers.producer)+1) == le32_to_cpu(*q->headers.consumer)) | 591 | if ((le32_to_cpu(*q->headers.producer)+1) == le32_to_cpu(*q->headers.consumer)) |
591 | wasfull = 1; | 592 | wasfull = 1; |
592 | 593 | ||
593 | if (le32_to_cpu(*q->headers.consumer) >= q->entries) | 594 | if (le32_to_cpu(*q->headers.consumer) >= q->entries) |
594 | *q->headers.consumer = cpu_to_le32(1); | 595 | *q->headers.consumer = cpu_to_le32(1); |
595 | else | 596 | else |
596 | *q->headers.consumer = cpu_to_le32(le32_to_cpu(*q->headers.consumer)+1); | 597 | *q->headers.consumer = cpu_to_le32(le32_to_cpu(*q->headers.consumer)+1); |
597 | 598 | ||
598 | if (wasfull) { | 599 | if (wasfull) { |
599 | switch (qid) { | 600 | switch (qid) { |
600 | 601 | ||
@@ -610,7 +611,7 @@ void aac_consumer_free(struct aac_dev * dev, struct aac_queue *q, u32 qid) | |||
610 | } | 611 | } |
611 | aac_adapter_notify(dev, notify); | 612 | aac_adapter_notify(dev, notify); |
612 | } | 613 | } |
613 | } | 614 | } |
614 | 615 | ||
615 | /** | 616 | /** |
616 | * aac_fib_adapter_complete - complete adapter issued fib | 617 | * aac_fib_adapter_complete - complete adapter issued fib |
@@ -632,32 +633,32 @@ int aac_fib_adapter_complete(struct fib *fibptr, unsigned short size) | |||
632 | if (hw_fib->header.XferState == 0) { | 633 | if (hw_fib->header.XferState == 0) { |
633 | if (dev->comm_interface == AAC_COMM_MESSAGE) | 634 | if (dev->comm_interface == AAC_COMM_MESSAGE) |
634 | kfree (hw_fib); | 635 | kfree (hw_fib); |
635 | return 0; | 636 | return 0; |
636 | } | 637 | } |
637 | /* | 638 | /* |
638 | * If we plan to do anything check the structure type first. | 639 | * If we plan to do anything check the structure type first. |
639 | */ | 640 | */ |
640 | if ( hw_fib->header.StructType != FIB_MAGIC ) { | 641 | if (hw_fib->header.StructType != FIB_MAGIC) { |
641 | if (dev->comm_interface == AAC_COMM_MESSAGE) | 642 | if (dev->comm_interface == AAC_COMM_MESSAGE) |
642 | kfree (hw_fib); | 643 | kfree (hw_fib); |
643 | return -EINVAL; | 644 | return -EINVAL; |
644 | } | 645 | } |
645 | /* | 646 | /* |
646 | * This block handles the case where the adapter had sent us a | 647 | * This block handles the case where the adapter had sent us a |
647 | * command and we have finished processing the command. We | 648 | * command and we have finished processing the command. We |
648 | * call completeFib when we are done processing the command | 649 | * call completeFib when we are done processing the command |
649 | * and want to send a response back to the adapter. This will | 650 | * and want to send a response back to the adapter. This will |
650 | * send the completed cdb to the adapter. | 651 | * send the completed cdb to the adapter. |
651 | */ | 652 | */ |
652 | if (hw_fib->header.XferState & cpu_to_le32(SentFromAdapter)) { | 653 | if (hw_fib->header.XferState & cpu_to_le32(SentFromAdapter)) { |
653 | if (dev->comm_interface == AAC_COMM_MESSAGE) { | 654 | if (dev->comm_interface == AAC_COMM_MESSAGE) { |
654 | kfree (hw_fib); | 655 | kfree (hw_fib); |
655 | } else { | 656 | } else { |
656 | u32 index; | 657 | u32 index; |
657 | hw_fib->header.XferState |= cpu_to_le32(HostProcessed); | 658 | hw_fib->header.XferState |= cpu_to_le32(HostProcessed); |
658 | if (size) { | 659 | if (size) { |
659 | size += sizeof(struct aac_fibhdr); | 660 | size += sizeof(struct aac_fibhdr); |
660 | if (size > le16_to_cpu(hw_fib->header.SenderSize)) | 661 | if (size > le16_to_cpu(hw_fib->header.SenderSize)) |
661 | return -EMSGSIZE; | 662 | return -EMSGSIZE; |
662 | hw_fib->header.Size = cpu_to_le16(size); | 663 | hw_fib->header.Size = cpu_to_le16(size); |
663 | } | 664 | } |
@@ -669,12 +670,11 @@ int aac_fib_adapter_complete(struct fib *fibptr, unsigned short size) | |||
669 | if (!(nointr & (int)aac_config.irq_mod)) | 670 | if (!(nointr & (int)aac_config.irq_mod)) |
670 | aac_adapter_notify(dev, AdapNormRespQueue); | 671 | aac_adapter_notify(dev, AdapNormRespQueue); |
671 | } | 672 | } |
673 | } else { | ||
674 | printk(KERN_WARNING "aac_fib_adapter_complete: " | ||
675 | "Unknown xferstate detected.\n"); | ||
676 | BUG(); | ||
672 | } | 677 | } |
673 | else | ||
674 | { | ||
675 | printk(KERN_WARNING "aac_fib_adapter_complete: Unknown xferstate detected.\n"); | ||
676 | BUG(); | ||
677 | } | ||
678 | return 0; | 678 | return 0; |
679 | } | 679 | } |
680 | 680 | ||
@@ -684,7 +684,7 @@ int aac_fib_adapter_complete(struct fib *fibptr, unsigned short size) | |||
684 | * | 684 | * |
685 | * Will do all necessary work to complete a FIB. | 685 | * Will do all necessary work to complete a FIB. |
686 | */ | 686 | */ |
687 | 687 | ||
688 | int aac_fib_complete(struct fib *fibptr) | 688 | int aac_fib_complete(struct fib *fibptr) |
689 | { | 689 | { |
690 | struct hw_fib * hw_fib = fibptr->hw_fib_va; | 690 | struct hw_fib * hw_fib = fibptr->hw_fib_va; |
@@ -694,15 +694,15 @@ int aac_fib_complete(struct fib *fibptr) | |||
694 | */ | 694 | */ |
695 | 695 | ||
696 | if (hw_fib->header.XferState == 0) | 696 | if (hw_fib->header.XferState == 0) |
697 | return 0; | 697 | return 0; |
698 | /* | 698 | /* |
699 | * If we plan to do anything check the structure type first. | 699 | * If we plan to do anything check the structure type first. |
700 | */ | 700 | */ |
701 | 701 | ||
702 | if (hw_fib->header.StructType != FIB_MAGIC) | 702 | if (hw_fib->header.StructType != FIB_MAGIC) |
703 | return -EINVAL; | 703 | return -EINVAL; |
704 | /* | 704 | /* |
705 | * This block completes a cdb which orginated on the host and we | 705 | * This block completes a cdb which orginated on the host and we |
706 | * just need to deallocate the cdb or reinit it. At this point the | 706 | * just need to deallocate the cdb or reinit it. At this point the |
707 | * command is complete that we had sent to the adapter and this | 707 | * command is complete that we had sent to the adapter and this |
708 | * cdb could be reused. | 708 | * cdb could be reused. |
@@ -723,7 +723,7 @@ int aac_fib_complete(struct fib *fibptr) | |||
723 | fib_dealloc(fibptr); | 723 | fib_dealloc(fibptr); |
724 | } else { | 724 | } else { |
725 | BUG(); | 725 | BUG(); |
726 | } | 726 | } |
727 | return 0; | 727 | return 0; |
728 | } | 728 | } |
729 | 729 | ||
@@ -743,7 +743,7 @@ void aac_printf(struct aac_dev *dev, u32 val) | |||
743 | { | 743 | { |
744 | int length = val & 0xffff; | 744 | int length = val & 0xffff; |
745 | int level = (val >> 16) & 0xffff; | 745 | int level = (val >> 16) & 0xffff; |
746 | 746 | ||
747 | /* | 747 | /* |
748 | * The size of the printfbuf is set in port.c | 748 | * The size of the printfbuf is set in port.c |
749 | * There is no variable or define for it | 749 | * There is no variable or define for it |
@@ -757,7 +757,7 @@ void aac_printf(struct aac_dev *dev, u32 val) | |||
757 | else | 757 | else |
758 | printk(KERN_INFO "%s:%s", dev->name, cp); | 758 | printk(KERN_INFO "%s:%s", dev->name, cp); |
759 | } | 759 | } |
760 | memset(cp, 0, 256); | 760 | memset(cp, 0, 256); |
761 | } | 761 | } |
762 | 762 | ||
763 | 763 | ||
@@ -816,9 +816,9 @@ static void aac_handle_aif(struct aac_dev * dev, struct fib * fibptr) | |||
816 | */ | 816 | */ |
817 | 817 | ||
818 | if ((dev != NULL) && (dev->scsi_host_ptr != NULL)) { | 818 | if ((dev != NULL) && (dev->scsi_host_ptr != NULL)) { |
819 | device = scsi_device_lookup(dev->scsi_host_ptr, | 819 | device = scsi_device_lookup(dev->scsi_host_ptr, |
820 | CONTAINER_TO_CHANNEL(container), | 820 | CONTAINER_TO_CHANNEL(container), |
821 | CONTAINER_TO_ID(container), | 821 | CONTAINER_TO_ID(container), |
822 | CONTAINER_TO_LUN(container)); | 822 | CONTAINER_TO_LUN(container)); |
823 | if (device) { | 823 | if (device) { |
824 | dev->fsa_dev[container].config_needed = CHANGE; | 824 | dev->fsa_dev[container].config_needed = CHANGE; |
@@ -1184,13 +1184,13 @@ static int _aac_reset_adapter(struct aac_dev *aac, int forced) | |||
1184 | } | 1184 | } |
1185 | (void)aac_get_adapter_info(aac); | 1185 | (void)aac_get_adapter_info(aac); |
1186 | if ((quirks & AAC_QUIRK_34SG) && (host->sg_tablesize > 34)) { | 1186 | if ((quirks & AAC_QUIRK_34SG) && (host->sg_tablesize > 34)) { |
1187 | host->sg_tablesize = 34; | 1187 | host->sg_tablesize = 34; |
1188 | host->max_sectors = (host->sg_tablesize * 8) + 112; | 1188 | host->max_sectors = (host->sg_tablesize * 8) + 112; |
1189 | } | 1189 | } |
1190 | if ((quirks & AAC_QUIRK_17SG) && (host->sg_tablesize > 17)) { | 1190 | if ((quirks & AAC_QUIRK_17SG) && (host->sg_tablesize > 17)) { |
1191 | host->sg_tablesize = 17; | 1191 | host->sg_tablesize = 17; |
1192 | host->max_sectors = (host->sg_tablesize * 8) + 112; | 1192 | host->max_sectors = (host->sg_tablesize * 8) + 112; |
1193 | } | 1193 | } |
1194 | aac_get_config_status(aac, 1); | 1194 | aac_get_config_status(aac, 1); |
1195 | aac_get_containers(aac); | 1195 | aac_get_containers(aac); |
1196 | /* | 1196 | /* |
@@ -1461,7 +1461,7 @@ out: | |||
1461 | * until the queue is empty. When the queue is empty it will wait for | 1461 | * until the queue is empty. When the queue is empty it will wait for |
1462 | * more FIBs. | 1462 | * more FIBs. |
1463 | */ | 1463 | */ |
1464 | 1464 | ||
1465 | int aac_command_thread(void *data) | 1465 | int aac_command_thread(void *data) |
1466 | { | 1466 | { |
1467 | struct aac_dev *dev = data; | 1467 | struct aac_dev *dev = data; |
@@ -1487,30 +1487,29 @@ int aac_command_thread(void *data) | |||
1487 | add_wait_queue(&dev->queues->queue[HostNormCmdQueue].cmdready, &wait); | 1487 | add_wait_queue(&dev->queues->queue[HostNormCmdQueue].cmdready, &wait); |
1488 | set_current_state(TASK_INTERRUPTIBLE); | 1488 | set_current_state(TASK_INTERRUPTIBLE); |
1489 | dprintk ((KERN_INFO "aac_command_thread start\n")); | 1489 | dprintk ((KERN_INFO "aac_command_thread start\n")); |
1490 | while(1) | 1490 | while (1) { |
1491 | { | ||
1492 | spin_lock_irqsave(dev->queues->queue[HostNormCmdQueue].lock, flags); | 1491 | spin_lock_irqsave(dev->queues->queue[HostNormCmdQueue].lock, flags); |
1493 | while(!list_empty(&(dev->queues->queue[HostNormCmdQueue].cmdq))) { | 1492 | while(!list_empty(&(dev->queues->queue[HostNormCmdQueue].cmdq))) { |
1494 | struct list_head *entry; | 1493 | struct list_head *entry; |
1495 | struct aac_aifcmd * aifcmd; | 1494 | struct aac_aifcmd * aifcmd; |
1496 | 1495 | ||
1497 | set_current_state(TASK_RUNNING); | 1496 | set_current_state(TASK_RUNNING); |
1498 | 1497 | ||
1499 | entry = dev->queues->queue[HostNormCmdQueue].cmdq.next; | 1498 | entry = dev->queues->queue[HostNormCmdQueue].cmdq.next; |
1500 | list_del(entry); | 1499 | list_del(entry); |
1501 | 1500 | ||
1502 | spin_unlock_irqrestore(dev->queues->queue[HostNormCmdQueue].lock, flags); | 1501 | spin_unlock_irqrestore(dev->queues->queue[HostNormCmdQueue].lock, flags); |
1503 | fib = list_entry(entry, struct fib, fiblink); | 1502 | fib = list_entry(entry, struct fib, fiblink); |
1504 | /* | 1503 | /* |
1505 | * We will process the FIB here or pass it to a | 1504 | * We will process the FIB here or pass it to a |
1506 | * worker thread that is TBD. We Really can't | 1505 | * worker thread that is TBD. We Really can't |
1507 | * do anything at this point since we don't have | 1506 | * do anything at this point since we don't have |
1508 | * anything defined for this thread to do. | 1507 | * anything defined for this thread to do. |
1509 | */ | 1508 | */ |
1510 | hw_fib = fib->hw_fib_va; | 1509 | hw_fib = fib->hw_fib_va; |
1511 | memset(fib, 0, sizeof(struct fib)); | 1510 | memset(fib, 0, sizeof(struct fib)); |
1512 | fib->type = FSAFS_NTC_FIB_CONTEXT; | 1511 | fib->type = FSAFS_NTC_FIB_CONTEXT; |
1513 | fib->size = sizeof( struct fib ); | 1512 | fib->size = sizeof(struct fib); |
1514 | fib->hw_fib_va = hw_fib; | 1513 | fib->hw_fib_va = hw_fib; |
1515 | fib->data = hw_fib->data; | 1514 | fib->data = hw_fib->data; |
1516 | fib->dev = dev; | 1515 | fib->dev = dev; |
@@ -1526,17 +1525,17 @@ int aac_command_thread(void *data) | |||
1526 | } else { | 1525 | } else { |
1527 | /* The u32 here is important and intended. We are using | 1526 | /* The u32 here is important and intended. We are using |
1528 | 32bit wrapping time to fit the adapter field */ | 1527 | 32bit wrapping time to fit the adapter field */ |
1529 | 1528 | ||
1530 | u32 time_now, time_last; | 1529 | u32 time_now, time_last; |
1531 | unsigned long flagv; | 1530 | unsigned long flagv; |
1532 | unsigned num; | 1531 | unsigned num; |
1533 | struct hw_fib ** hw_fib_pool, ** hw_fib_p; | 1532 | struct hw_fib ** hw_fib_pool, ** hw_fib_p; |
1534 | struct fib ** fib_pool, ** fib_p; | 1533 | struct fib ** fib_pool, ** fib_p; |
1535 | 1534 | ||
1536 | /* Sniff events */ | 1535 | /* Sniff events */ |
1537 | if ((aifcmd->command == | 1536 | if ((aifcmd->command == |
1538 | cpu_to_le32(AifCmdEventNotify)) || | 1537 | cpu_to_le32(AifCmdEventNotify)) || |
1539 | (aifcmd->command == | 1538 | (aifcmd->command == |
1540 | cpu_to_le32(AifCmdJobProgress))) { | 1539 | cpu_to_le32(AifCmdJobProgress))) { |
1541 | aac_handle_aif(dev, fib); | 1540 | aac_handle_aif(dev, fib); |
1542 | } | 1541 | } |
@@ -1588,7 +1587,7 @@ int aac_command_thread(void *data) | |||
1588 | spin_lock_irqsave(&dev->fib_lock, flagv); | 1587 | spin_lock_irqsave(&dev->fib_lock, flagv); |
1589 | entry = dev->fib_list.next; | 1588 | entry = dev->fib_list.next; |
1590 | /* | 1589 | /* |
1591 | * For each Context that is on the | 1590 | * For each Context that is on the |
1592 | * fibctxList, make a copy of the | 1591 | * fibctxList, make a copy of the |
1593 | * fib, and then set the event to wake up the | 1592 | * fib, and then set the event to wake up the |
1594 | * thread that is waiting for it. | 1593 | * thread that is waiting for it. |
@@ -1613,7 +1612,7 @@ int aac_command_thread(void *data) | |||
1613 | */ | 1612 | */ |
1614 | time_last = fibctx->jiffies; | 1613 | time_last = fibctx->jiffies; |
1615 | /* | 1614 | /* |
1616 | * Has it been > 2 minutes | 1615 | * Has it been > 2 minutes |
1617 | * since the last read off | 1616 | * since the last read off |
1618 | * the queue? | 1617 | * the queue? |
1619 | */ | 1618 | */ |
@@ -1644,7 +1643,7 @@ int aac_command_thread(void *data) | |||
1644 | */ | 1643 | */ |
1645 | list_add_tail(&newfib->fiblink, &fibctx->fib_list); | 1644 | list_add_tail(&newfib->fiblink, &fibctx->fib_list); |
1646 | fibctx->count++; | 1645 | fibctx->count++; |
1647 | /* | 1646 | /* |
1648 | * Set the event to wake up the | 1647 | * Set the event to wake up the |
1649 | * thread that is waiting. | 1648 | * thread that is waiting. |
1650 | */ | 1649 | */ |