Re: [PATCH] USB: hub:no need to obtain usb device
From: Alan Stern
Date: Tue Jun 25 2024 - 12:53:38 EST
On Tue, Jun 25, 2024 at 09:46:07AM -0700, Lizhe wrote:
> the usb device connected to the port has obtained.
> there is no need to obtain it again.
>
> Signed-off-by: Lizhe <sensor1010@xxxxxxx>
> ---
> drivers/usb/core/hub.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
> index 4b93c0bd1d4b..f37b991fa86a 100644
> --- a/drivers/usb/core/hub.c
> +++ b/drivers/usb/core/hub.c
> @@ -5358,7 +5358,7 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
> if (udev) {
> if (hcd->usb_phy && !hdev->parent)
> usb_phy_notify_disconnect(hcd->usb_phy, udev->speed);
> - usb_disconnect(&port_dev->child);
> + usb_disconnect(&udev);
> }
This is wrong. We need to pass the address of port_dev->child, not the
address of udev. This is so that usb_disconnect() can set
port_dev->child to NULL. Setting udev to NULL instead won't work right.
Alan Stern