Lines Matching refs:async
373 struct efx_mcdi_async_param *async; in efx_mcdi_release() local
378 async = list_first_entry_or_null( in efx_mcdi_release()
380 if (async) { in efx_mcdi_release()
382 efx_mcdi_send_request(efx, async->cmd, in efx_mcdi_release()
383 (const efx_dword_t *)(async + 1), in efx_mcdi_release()
384 async->inlen); in efx_mcdi_release()
390 if (async) in efx_mcdi_release()
406 struct efx_mcdi_async_param *async; in efx_mcdi_complete_async() local
442 async = list_first_entry(&mcdi->async_list, in efx_mcdi_complete_async()
444 list_del(&async->list); in efx_mcdi_complete_async()
447 outbuf = (efx_dword_t *)(async + 1); in efx_mcdi_complete_async()
449 min(async->outlen, data_len)); in efx_mcdi_complete_async()
450 if (!timeout && rc && !async->quiet) { in efx_mcdi_complete_async()
454 efx_mcdi_display_error(efx, async->cmd, async->inlen, errbuf, in efx_mcdi_complete_async()
457 async->complete(efx, async->cookie, rc, outbuf, data_len); in efx_mcdi_complete_async()
458 kfree(async); in efx_mcdi_complete_async()
687 struct efx_mcdi_async_param *async; in _efx_mcdi_rpc_async() local
697 async = kmalloc(sizeof(*async) + ALIGN(max(inlen, outlen), 4), in _efx_mcdi_rpc_async()
699 if (!async) in _efx_mcdi_rpc_async()
702 async->cmd = cmd; in _efx_mcdi_rpc_async()
703 async->inlen = inlen; in _efx_mcdi_rpc_async()
704 async->outlen = outlen; in _efx_mcdi_rpc_async()
705 async->quiet = quiet; in _efx_mcdi_rpc_async()
706 async->complete = complete; in _efx_mcdi_rpc_async()
707 async->cookie = cookie; in _efx_mcdi_rpc_async()
708 memcpy(async + 1, inbuf, inlen); in _efx_mcdi_rpc_async()
713 list_add_tail(&async->list, &mcdi->async_list); in _efx_mcdi_rpc_async()
718 if (mcdi->async_list.next == &async->list && in _efx_mcdi_rpc_async()
725 kfree(async); in _efx_mcdi_rpc_async()
840 struct efx_mcdi_async_param *async, *next; in efx_mcdi_flush_async() local
867 list_for_each_entry_safe(async, next, &mcdi->async_list, list) { in efx_mcdi_flush_async()
868 async->complete(efx, async->cookie, -ENETDOWN, NULL, 0); in efx_mcdi_flush_async()
869 list_del(&async->list); in efx_mcdi_flush_async()
870 kfree(async); in efx_mcdi_flush_async()