Lines Matching refs:async
465 struct efx_mcdi_async_param *async; in efx_mcdi_release() local
470 async = list_first_entry_or_null( in efx_mcdi_release()
472 if (async) { in efx_mcdi_release()
474 efx_mcdi_send_request(efx, async->cmd, in efx_mcdi_release()
475 (const efx_dword_t *)(async + 1), in efx_mcdi_release()
476 async->inlen); in efx_mcdi_release()
482 if (async) in efx_mcdi_release()
498 struct efx_mcdi_async_param *async; in efx_mcdi_complete_async() local
534 async = list_first_entry(&mcdi->async_list, in efx_mcdi_complete_async()
536 list_del(&async->list); in efx_mcdi_complete_async()
539 outbuf = (efx_dword_t *)(async + 1); in efx_mcdi_complete_async()
541 min(async->outlen, data_len)); in efx_mcdi_complete_async()
542 if (!timeout && rc && !async->quiet) { in efx_mcdi_complete_async()
546 efx_mcdi_display_error(efx, async->cmd, async->inlen, errbuf, in efx_mcdi_complete_async()
549 async->complete(efx, async->cookie, rc, outbuf, data_len); in efx_mcdi_complete_async()
550 kfree(async); in efx_mcdi_complete_async()
779 struct efx_mcdi_async_param *async; in _efx_mcdi_rpc_async() local
789 async = kmalloc(sizeof(*async) + ALIGN(max(inlen, outlen), 4), in _efx_mcdi_rpc_async()
791 if (!async) in _efx_mcdi_rpc_async()
794 async->cmd = cmd; in _efx_mcdi_rpc_async()
795 async->inlen = inlen; in _efx_mcdi_rpc_async()
796 async->outlen = outlen; in _efx_mcdi_rpc_async()
797 async->quiet = quiet; in _efx_mcdi_rpc_async()
798 async->complete = complete; in _efx_mcdi_rpc_async()
799 async->cookie = cookie; in _efx_mcdi_rpc_async()
800 memcpy(async + 1, inbuf, inlen); in _efx_mcdi_rpc_async()
805 list_add_tail(&async->list, &mcdi->async_list); in _efx_mcdi_rpc_async()
810 if (mcdi->async_list.next == &async->list && in _efx_mcdi_rpc_async()
817 kfree(async); in _efx_mcdi_rpc_async()
932 struct efx_mcdi_async_param *async, *next; in efx_mcdi_flush_async() local
959 list_for_each_entry_safe(async, next, &mcdi->async_list, list) { in efx_mcdi_flush_async()
960 async->complete(efx, async->cookie, -ENETDOWN, NULL, 0); in efx_mcdi_flush_async()
961 list_del(&async->list); in efx_mcdi_flush_async()
962 kfree(async); in efx_mcdi_flush_async()