Lines Matching refs:async
467 struct efx_mcdi_async_param *async; in efx_mcdi_release() local
472 async = list_first_entry_or_null( in efx_mcdi_release()
474 if (async) { in efx_mcdi_release()
476 efx_mcdi_send_request(efx, async->cmd, in efx_mcdi_release()
477 (const efx_dword_t *)(async + 1), in efx_mcdi_release()
478 async->inlen); in efx_mcdi_release()
484 if (async) in efx_mcdi_release()
500 struct efx_mcdi_async_param *async; in efx_mcdi_complete_async() local
536 async = list_first_entry(&mcdi->async_list, in efx_mcdi_complete_async()
538 list_del(&async->list); in efx_mcdi_complete_async()
541 outbuf = (efx_dword_t *)(async + 1); in efx_mcdi_complete_async()
543 min(async->outlen, data_len)); in efx_mcdi_complete_async()
544 if (!timeout && rc && !async->quiet) { in efx_mcdi_complete_async()
548 efx_mcdi_display_error(efx, async->cmd, async->inlen, errbuf, in efx_mcdi_complete_async()
552 if (async->complete) in efx_mcdi_complete_async()
553 async->complete(efx, async->cookie, rc, outbuf, in efx_mcdi_complete_async()
554 min(async->outlen, data_len)); in efx_mcdi_complete_async()
555 kfree(async); in efx_mcdi_complete_async()
978 struct efx_mcdi_async_param *async; in _efx_mcdi_rpc_async() local
988 async = kmalloc(sizeof(*async) + ALIGN(max(inlen, outlen), 4), in _efx_mcdi_rpc_async()
990 if (!async) in _efx_mcdi_rpc_async()
993 async->cmd = cmd; in _efx_mcdi_rpc_async()
994 async->inlen = inlen; in _efx_mcdi_rpc_async()
995 async->outlen = outlen; in _efx_mcdi_rpc_async()
996 async->quiet = quiet; in _efx_mcdi_rpc_async()
997 async->complete = complete; in _efx_mcdi_rpc_async()
998 async->cookie = cookie; in _efx_mcdi_rpc_async()
999 memcpy(async + 1, inbuf, inlen); in _efx_mcdi_rpc_async()
1004 list_add_tail(&async->list, &mcdi->async_list); in _efx_mcdi_rpc_async()
1009 if (mcdi->async_list.next == &async->list && in _efx_mcdi_rpc_async()
1016 kfree(async); in _efx_mcdi_rpc_async()
1131 struct efx_mcdi_async_param *async, *next; in efx_mcdi_flush_async() local
1158 list_for_each_entry_safe(async, next, &mcdi->async_list, list) { in efx_mcdi_flush_async()
1159 if (async->complete) in efx_mcdi_flush_async()
1160 async->complete(efx, async->cookie, -ENETDOWN, NULL, 0); in efx_mcdi_flush_async()
1161 list_del(&async->list); in efx_mcdi_flush_async()
1162 kfree(async); in efx_mcdi_flush_async()