Lines Matching refs:fib
44 struct fib * fib;
60 fib = &dev->fibs[index >> 2];
61 hwfib = fib->hw_fib_va;
65 * Remove this fib from the Outstanding I/O queue.
68 * If the fib has been timed out already, then just
70 * the fib timed out.
74 if (unlikely(fib->flags & FIB_CONTEXT_FLAG_TIMED_OUT)) {
76 aac_fib_complete(fib);
77 aac_fib_free(fib);
85 * Doctor the fib
89 fib->flags |= FIB_CONTEXT_FLAG_FASTRESP;
108 * NOTE: we cannot touch the fib after this
111 fib->callback(fib->callback_data, fib);
114 spin_lock_irqsave(&fib->event_lock, flagv);
115 if (!fib->done) {
116 fib->done = 1;
117 complete(&fib->event_wait);
119 spin_unlock_irqrestore(&fib->event_lock, flagv);
126 if (fib->done == 2) {
127 spin_lock_irqsave(&fib->event_lock, flagv);
128 fib->done = 0;
129 spin_unlock_irqrestore(&fib->event_lock, flagv);
130 aac_fib_complete(fib);
131 aac_fib_free(fib);
173 struct fib fibctx;
176 struct fib *fib = &fibctx;
184 * a fib object in order to manage the linked lists
187 if((fib = kmalloc(sizeof(struct fib), GFP_ATOMIC)) == NULL)
188 fib = &fibctx;
190 memset(fib, 0, sizeof(struct fib));
191 INIT_LIST_HEAD(&fib->fiblink);
192 fib->type = FSAFS_NTC_FIB_CONTEXT;
193 fib->size = sizeof(struct fib);
194 fib->hw_fib_va = hw_fib;
195 fib->data = hw_fib->data;
196 fib->dev = dev;
199 if (dev->aif_thread && fib != &fibctx) {
200 list_add_tail(&fib->fiblink, &q->cmdq);
210 aac_fib_adapter_complete(fib, sizeof(u32));
221 * @context: the context set in the fib - here it is scsi cmd
222 * @fibptr: pointer to the fib
228 static void aac_aif_callback(void *context, struct fib * fibptr)
230 struct fib *fibctx;
234 fibctx = (struct fib *)context;
277 struct fib * fib;
283 * the stack so we are happy. We need a fib object in order to
287 || (!(fib = kzalloc(sizeof(struct fib),GFP_ATOMIC))))
290 kfree (fib);
294 fib->hbacmd_size = index; /* store event type */
302 INIT_LIST_HEAD(&fib->fiblink);
303 fib->type = FSAFS_NTC_FIB_CONTEXT;
304 fib->size = sizeof(struct fib);
305 fib->hw_fib_va = hw_fib;
306 fib->data = hw_fib->data;
307 fib->dev = dev;
310 list_add_tail(&fib->fiblink, &q->cmdq);
315 struct fib *fibctx;
333 struct fib *fib = &dev->fibs[index];
337 * Remove this fib from the Outstanding I/O queue.
340 * If the fib has been timed out already, then just
342 * the fib timed out.
346 if (unlikely(fib->flags & FIB_CONTEXT_FLAG_TIMED_OUT)) {
347 aac_fib_complete(fib);
348 aac_fib_free(fib);
354 if (fib->flags & FIB_CONTEXT_FLAG_NATIVE_HBA) {
357 fib->flags |= FIB_CONTEXT_FLAG_FASTRESP;
359 if (fib->callback) {
366 spin_lock_irqsave(&fib->event_lock, flagv);
367 if (fib->done == 2) {
368 fib->done = 1;
371 fib->done = 1;
372 complete(&fib->event_wait);
374 spin_unlock_irqrestore(&fib->event_lock, flagv);
383 aac_fib_complete(fib);
386 struct hw_fib *hwfib = fib->hw_fib_va;
389 /* Doctor the fib */
393 fib->flags |= FIB_CONTEXT_FLAG_FASTRESP;
419 spin_lock_irqsave(&fib->event_lock, flagv);
420 if (fib->done == 2) {
421 fib->done = 1;
424 fib->done = 1;
425 complete(&fib->event_wait);
427 spin_unlock_irqrestore(&fib->event_lock, flagv);
436 aac_fib_complete(fib);
443 * NOTE: we cannot touch the fib after this
446 if (likely(fib->callback && fib->callback_data)) {
447 fib->callback(fib->callback_data, fib);
449 aac_fib_complete(fib);
450 aac_fib_free(fib);