|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XENVIF PATCH] Skip hash update if frontend is not enabled
On 02/09/2025 11:54, Owen Smith wrote:
> I don't think that any updated hash details will be resent if they are
> changed when Frontend->State != FRONTEND_ENABLED. FrontendEnable will
> call __FrontendUpdateHash before it sets Frontend->State
> to FRONTEND_ENABLED.
>
> Controller->Connected is used to guard writing hash data to the backend,
> but returns STATUS_NOT_SUPPORTED in this case, and this means Frontend-
> >Hash is not updated and the status is reported back to NDIS.
>
> Owen
>
It doesn't trigger 100% of the time, but I found it easier to repro
under debugger.
At the moment of hang, Controller->Connected is still true but
Frontend->State has entered FRONTEND_CONNECTED (see attached log)
> On Thu, Aug 28, 2025 at 11:01 PM Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx> wrote:
>
> NDIS may set OID_GEN_RECEIVE_SCALE_PARAMETERS during an
> IRP_MN_REMOVE_DEVICE, after the frontend has been torn down. This will
> cause the ensuing control request to hang.
>
> Skip __FrontendUpdateHash if the frontend is not enabled. The skip is
> done here since we still need to update Frontend->Hash in case the
> frontend is enabled again later.
>
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
> ---
> src/xenvif/frontend.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
> index 90ec2b1..c497f24 100644
> --- a/src/xenvif/frontend.c
> +++ b/src/xenvif/frontend.c
> @@ -1889,6 +1889,9 @@ __FrontendUpdateHash(
> ULONG Flags;
> NTSTATUS status;
>
> + if (Frontend->State != FRONTEND_ENABLED)
> + goto done;
> +
> Controller = __FrontendGetController(Frontend);
>
> switch (Hash->Algorithm) {
> --
> 2.51.0.windows.1
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech <https://vates.tech>
>
--
Ngoc Tu Dinh | Vates XCP-ng Developer
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech
Attachment:
kd.log
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |