Re: [PATCH v2] usb: core: handle port status errors in disable_show()

Alan Stern <[email protected]>
Newsgroups org.kernel.vger.linux-usb,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Tue, Aug 11, 2026 at 01:04:32AM +0200, Karl Mehltretter wrote:
> usb_hub_port_status() leaves its output arguments untouched when the
> status request fails. disable_show() nevertheless uses portstatus, so a
> sysfs read may report the wrong port state instead of an error.
> 
> Propagate the status request error.
> 
> Fixes: f061f43d7418c ("usb: hub: port: add sysfs entry to switch port power")
> Assisted-by: Claude:claude-fable-5
> Signed-off-by: Karl Mehltretter <[email protected]>
> ---

Acked-by: Alan Stern <[email protected]>

> Changes in v2:
> - Simplify error handling (Alan Stern).
> 
> v1: https://lore.kernel.org/r/[email protected]/
> 
>  drivers/usb/core/port.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c
> index b4452b665f59..6503668f303b 100644
> --- a/drivers/usb/core/port.c
> +++ b/drivers/usb/core/port.c
> @@ -96,8 +96,9 @@ static ssize_t disable_show(struct device *dev,
>  		goto out_hdev_lock;
>  	}
>  
> -	usb_hub_port_status(hub, port1, &portstatus, &unused);
> -	disabled = !usb_port_is_power_on(hub, portstatus);
> +	rc = usb_hub_port_status(hub, port1, &portstatus, &unused);
> +	if (rc >= 0)
> +		disabled = !usb_port_is_power_on(hub, portstatus);
>  
>   out_hdev_lock:
>  	usb_unlock_device(hdev);
> -- 
> 2.39.5 (Apple Git-154)
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.