Lines Matching refs:fibctx

171 	struct aac_fib_context * fibctx;  in open_getadapter_fib()  local
174 fibctx = kmalloc(sizeof(struct aac_fib_context), GFP_KERNEL); in open_getadapter_fib()
175 if (fibctx == NULL) { in open_getadapter_fib()
182 fibctx->type = FSAFS_NTC_GET_ADAPTER_FIB_CONTEXT; in open_getadapter_fib()
183 fibctx->size = sizeof(struct aac_fib_context); in open_getadapter_fib()
190 fibctx->unique = (u32)((ulong)fibctx & 0xFFFFFFFF); in open_getadapter_fib()
194 sema_init(&fibctx->wait_sem, 0); in open_getadapter_fib()
195 fibctx->wait = 0; in open_getadapter_fib()
200 fibctx->count = 0; in open_getadapter_fib()
201 INIT_LIST_HEAD(&fibctx->fib_list); in open_getadapter_fib()
202 fibctx->jiffies = jiffies/HZ; in open_getadapter_fib()
212 if (context->unique == fibctx->unique) { in open_getadapter_fib()
214 fibctx->unique++; in open_getadapter_fib()
220 list_add_tail(&fibctx->next, &dev->fib_list); in open_getadapter_fib()
222 if (copy_to_user(arg, &fibctx->unique, in open_getadapter_fib()
223 sizeof(fibctx->unique))) { in open_getadapter_fib()
245 struct aac_fib_context *fibctx; in next_getadapter_fib() local
260 fibctx = NULL; in next_getadapter_fib()
263 fibctx = list_entry(entry, struct aac_fib_context, next); in next_getadapter_fib()
267 if (fibctx->unique == f.fibctx) { /* We found a winner */ in next_getadapter_fib()
271 fibctx = NULL; in next_getadapter_fib()
273 if (!fibctx) { in next_getadapter_fib()
279 if((fibctx->type != FSAFS_NTC_GET_ADAPTER_FIB_CONTEXT) || in next_getadapter_fib()
280 (fibctx->size != sizeof(struct aac_fib_context))) { in next_getadapter_fib()
291 if (!list_empty(&fibctx->fib_list)) { in next_getadapter_fib()
295 entry = fibctx->fib_list.next; in next_getadapter_fib()
299 fibctx->count--; in next_getadapter_fib()
326 if(down_interruptible(&fibctx->wait_sem) < 0) { in next_getadapter_fib()
337 fibctx->jiffies = jiffies/HZ; in next_getadapter_fib()
341 int aac_close_fib_context(struct aac_dev * dev, struct aac_fib_context * fibctx) in aac_close_fib_context() argument
348 while (!list_empty(&fibctx->fib_list)) { in aac_close_fib_context()
353 entry = fibctx->fib_list.next; in aac_close_fib_context()
356 fibctx->count--; in aac_close_fib_context()
366 list_del(&fibctx->next); in aac_close_fib_context()
370 fibctx->type = 0; in aac_close_fib_context()
374 kfree(fibctx); in aac_close_fib_context()
388 struct aac_fib_context *fibctx; in close_getadapter_fib() local
401 fibctx = NULL; in close_getadapter_fib()
404 fibctx = list_entry(entry, struct aac_fib_context, next); in close_getadapter_fib()
408 if (fibctx->unique == (u32)(uintptr_t)arg) /* We found a winner */ in close_getadapter_fib()
411 fibctx = NULL; in close_getadapter_fib()
414 if (!fibctx) in close_getadapter_fib()
417 if((fibctx->type != FSAFS_NTC_GET_ADAPTER_FIB_CONTEXT) || in close_getadapter_fib()
418 (fibctx->size != sizeof(struct aac_fib_context))) in close_getadapter_fib()
421 status = aac_close_fib_context(dev, fibctx); in close_getadapter_fib()