Lines Matching full:async

468 		struct efx_mcdi_async_param *async;  in efx_mcdi_release()  local
473 async = list_first_entry_or_null( in efx_mcdi_release()
475 if (async) { in efx_mcdi_release()
477 efx_mcdi_send_request(efx, async->cmd, in efx_mcdi_release()
478 (const efx_dword_t *)(async + 1), in efx_mcdi_release()
479 async->inlen); in efx_mcdi_release()
485 if (async) in efx_mcdi_release()
501 struct efx_mcdi_async_param *async; in efx_mcdi_complete_async() local
537 async = list_first_entry(&mcdi->async_list, in efx_mcdi_complete_async()
539 list_del(&async->list); in efx_mcdi_complete_async()
542 outbuf = (efx_dword_t *)(async + 1); in efx_mcdi_complete_async()
544 min(async->outlen, data_len)); in efx_mcdi_complete_async()
545 if (!timeout && rc && !async->quiet) { in efx_mcdi_complete_async()
549 efx_mcdi_display_error(efx, async->cmd, async->inlen, errbuf, in efx_mcdi_complete_async()
553 if (async->complete) in efx_mcdi_complete_async()
554 async->complete(efx, async->cookie, rc, outbuf, in efx_mcdi_complete_async()
555 min(async->outlen, data_len)); in efx_mcdi_complete_async()
556 kfree(async); in efx_mcdi_complete_async()
979 struct efx_mcdi_async_param *async; in _efx_mcdi_rpc_async() local
989 async = kmalloc(sizeof(*async) + ALIGN(max(inlen, outlen), 4), in _efx_mcdi_rpc_async()
991 if (!async) in _efx_mcdi_rpc_async()
994 async->cmd = cmd; in _efx_mcdi_rpc_async()
995 async->inlen = inlen; in _efx_mcdi_rpc_async()
996 async->outlen = outlen; in _efx_mcdi_rpc_async()
997 async->quiet = quiet; in _efx_mcdi_rpc_async()
998 async->complete = complete; in _efx_mcdi_rpc_async()
999 async->cookie = cookie; in _efx_mcdi_rpc_async()
1000 memcpy(async + 1, inbuf, inlen); in _efx_mcdi_rpc_async()
1005 list_add_tail(&async->list, &mcdi->async_list); in _efx_mcdi_rpc_async()
1010 if (mcdi->async_list.next == &async->list && in _efx_mcdi_rpc_async()
1017 kfree(async); in _efx_mcdi_rpc_async()
1132 struct efx_mcdi_async_param *async, *next; in efx_mcdi_flush_async() local
1154 /* Nothing else will access the async list now, so it is safe in efx_mcdi_flush_async()
1159 list_for_each_entry_safe(async, next, &mcdi->async_list, list) { in efx_mcdi_flush_async()
1160 if (async->complete) in efx_mcdi_flush_async()
1161 async->complete(efx, async->cookie, -ENETDOWN, NULL, 0); in efx_mcdi_flush_async()
1162 list_del(&async->list); in efx_mcdi_flush_async()
1163 kfree(async); in efx_mcdi_flush_async()