Linux USB
 help / color / mirror / Atom feed
From: Alan Stern <stern@rowland.harvard.edu>
To: Bastien Nocera <hadess@hadess.net>
Cc: linux-usb@vger.kernel.org, linux-input@vger.kernel.org,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Benjamin Tissoires" <benjamin.tissoires@redhat.com>,
	"Filipe Laíns" <lains@riseup.net>,
	"Nestor Lopez Casado" <nlopezcasad@logitech.com>
Subject: Re: [PATCH v2 5/6] USB: core: Add API to change the wireless_status
Date: Wed, 1 Mar 2023 10:33:06 -0500	[thread overview]
Message-ID: <Y/9wMsqKMKJUugl4@rowland.harvard.edu> (raw)
In-Reply-To: <20230301122310.3579-5-hadess@hadess.net>

On Wed, Mar 01, 2023 at 01:23:09PM +0100, Bastien Nocera wrote:
> This adds the API that allows device specific drivers to tell user-space
> about whether the wireless device is connected to its receiver dongle.
> 
> See "USB: core: Add wireless_status sysfs attribute" for a detailed
> explanation of what this attribute should be used for.
> 
> Signed-off-by: Bastien Nocera <hadess@hadess.net>
> ---
> Fixed locking/use-after-free in v2, thanks to Alan Stern
> 
>  drivers/usb/core/message.c | 40 ++++++++++++++++++++++++++++++++++++++
>  include/linux/usb.h        |  5 +++++
>  2 files changed, 45 insertions(+)
> 
> diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
> index 127fac1af676..3867d9a85145 100644
> --- a/drivers/usb/core/message.c
> +++ b/drivers/usb/core/message.c
> @@ -1908,6 +1908,45 @@ static void __usb_queue_reset_device(struct work_struct *ws)
>  	usb_put_intf(iface);	/* Undo _get_ in usb_queue_reset_device() */
>  }
>  
> +/*
> + * Internal function to set the wireless_status sysfs attribute
> + * See usb_set_wireless_status() for more details
> + */
> +static void __usb_wireless_status_intf(struct work_struct *ws)
> +{
> +	struct usb_interface *iface =
> +		container_of(ws, struct usb_interface, wireless_status_work);
> +
> +	device_lock(iface->dev.parent);
> +	if (iface->sysfs_files_created)
> +		usb_update_wireless_status_attr(iface);
> +	usb_put_intf(iface);	/* Undo _get_ in usb_set_wireless_status() */
> +	device_unlock(iface->dev.parent);

Whoops!  Calling usb_put_intf() means the iface pointer is no longer 
valid.  The device_unlock() call should come before it, not after.

Alan

PS: You might also want to edit the sysfs documentation in the preceding 
patch, to make sure the text doesn't extend beyond the 80-column limit. 
I know people don't pay too much attention to that restriction in code 
any more, but in documentation it helps to keep the lines fairly short.  
People have trouble reading text when the lines get too long.

  reply	other threads:[~2023-03-01 15:33 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-01 12:23 [PATCH v2 1/6] HID: logitech-hidpp: Simplify array length check Bastien Nocera
2023-03-01 12:23 ` [PATCH v2 2/6] HID: logitech-hidpp: Add support for ADC measurement feature Bastien Nocera
2023-03-01 12:23 ` [PATCH v2 3/6] HID: logitech-hidpp: Add Logitech G935 headset Bastien Nocera
2023-03-01 12:23 ` [PATCH v2 4/6] USB: core: Add wireless_status sysfs attribute Bastien Nocera
2023-03-01 12:23 ` [PATCH v2 5/6] USB: core: Add API to change the wireless_status Bastien Nocera
2023-03-01 15:33   ` Alan Stern [this message]
2023-03-02 13:23     ` Bastien Nocera
2023-03-01 12:23 ` [PATCH v2 6/6] HID: logitech-hidpp: Set wireless_status for G935 receiver Bastien Nocera

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y/9wMsqKMKJUugl4@rowland.harvard.edu \
    --to=stern@rowland.harvard.edu \
    --cc=benjamin.tissoires@redhat.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hadess@hadess.net \
    --cc=lains@riseup.net \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=nlopezcasad@logitech.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox