[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bfbdb94f-c965-0b07-3539-c1a057e5b0b4@gmail.com>
Date: Wed, 11 Jan 2023 20:24:37 +0300
From: Pavel Skripkin <paskripkin@...il.com>
To: Martin Kaiser <martin@...ser.cx>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Larry Finger <Larry.Finger@...inger.net>,
Phillip Potter <phil@...lpotter.co.uk>,
Michael Straube <straube.linux@...il.com>,
linux-staging@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 4/4] staging: r8188eu: always process urb status
Hi Martin,
Martin Kaiser <martin@...ser.cx> says:
> Remove the if clause in usb_write_port_complete and process the urb
> status regardless of bSurpriseRemoved, bDriverStopped and
> bWritePortCancel.
>
> The only possible results of urb status processing are updates to
> bSurpriseRemoved and bDriverStopped. All of the three status variable are
> set to true only if the whole USB processing has to be stopped (when the
> driver is unloaded or when the system goes to sleep).
>
Not sure if it matters but we still have that weird rule that after 5
failed usb read/writes bSurpriseRemoved will be set to true
Maybe also worth removing above logic?
> It's no problem if one of the "stop everything" variables is already set
> and the urb status processing sets another one.
>
> This patch removes the last goto in usb_write_port_complete. It's also
> part of the ongoing effort to limit the use of the "stop everything"
> variables.
>
> Signed-off-by: Martin Kaiser <martin@...ser.cx>
> ---
> drivers/staging/r8188eu/os_dep/usb_ops_linux.c | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/drivers/staging/r8188eu/os_dep/usb_ops_linux.c b/drivers/staging/r8188eu/os_dep/usb_ops_linux.c
> index 3fd080091340..62106d2f82ad 100644
> --- a/drivers/staging/r8188eu/os_dep/usb_ops_linux.c
> +++ b/drivers/staging/r8188eu/os_dep/usb_ops_linux.c
> @@ -44,9 +44,6 @@ static void usb_write_port_complete(struct urb *purb)
> if (pxmitbuf->flags == HIGH_QUEUE_INX)
> rtw_chk_hi_queue_cmd(padapter);
>
> - if (padapter->bSurpriseRemoved || padapter->bDriverStopped || padapter->bWritePortCancel)
> - goto check_completion;
> -
> switch (purb->status) {
> case 0:
> case -EINPROGRESS:
> @@ -63,7 +60,6 @@ static void usb_write_port_complete(struct urb *purb)
> break;
> }
>
> -check_completion:
> rtw_sctx_done_err(&pxmitbuf->sctx,
> purb->status ? RTW_SCTX_DONE_WRITE_PORT_ERR : RTW_SCTX_DONE_SUCCESS);
> rtw_free_xmitbuf(pxmitpriv, pxmitbuf);
With regards,
Pavel Skripkin
Powered by blists - more mailing lists