All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Guenter Roeck <linux@roeck-us.net>,
	linux-usb@vger.kernel.org
Subject: Re: [PATCH v2] usb: roles: Call try_module_get() from usb_role_switch_find_by_fwnode()
Date: Fri, 9 Apr 2021 16:07:13 +0300	[thread overview]
Message-ID: <YHBRgfysBCsRbRIr@kuha.fi.intel.com> (raw)
In-Reply-To: <20210409124136.65591-1-hdegoede@redhat.com>

On Fri, Apr 09, 2021 at 02:41:36PM +0200, Hans de Goede wrote:
> usb_role_switch_find_by_fwnode() returns a reference to the role-switch
> which must be put by calling usb_role_switch_put().
> 
> usb_role_switch_put() calls module_put(sw->dev.parent->driver->owner),
> add a matching try_module_get() to usb_role_switch_find_by_fwnode(),
> making it behave the same as the other usb_role_switch functions
> which return a reference.
> 
> This avoids a WARN_ON being hit at kernel/module.c:1158 due to the
> module-refcount going below 0.
> 
> Fixes: c6919d5e0cd1 ("usb: roles: Add usb_role_switch_find_by_fwnode()")
> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>

> ---
> Changes in v2:
> - Fix typo in Subject
> - Add Fixes tag
> ---
>  drivers/usb/roles/class.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/usb/roles/class.c b/drivers/usb/roles/class.c
> index 97f37077b7f9..33b637d0d8d9 100644
> --- a/drivers/usb/roles/class.c
> +++ b/drivers/usb/roles/class.c
> @@ -189,6 +189,8 @@ usb_role_switch_find_by_fwnode(const struct fwnode_handle *fwnode)
>  		return NULL;
>  
>  	dev = class_find_device_by_fwnode(role_class, fwnode);
> +	if (dev)
> +		WARN_ON(!try_module_get(dev->parent->driver->owner));
>  
>  	return dev ? to_role_switch(dev) : NULL;
>  }
> -- 
> 2.30.2

thanks,

-- 
heikki

      reply	other threads:[~2021-04-09 13:07 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-09 12:41 [PATCH v2] usb: roles: Call try_module_get() from usb_role_switch_find_by_fwnode() Hans de Goede
2021-04-09 13:07 ` Heikki Krogerus [this message]

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=YHBRgfysBCsRbRIr@kuha.fi.intel.com \
    --to=heikki.krogerus@linux.intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hdegoede@redhat.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux@roeck-us.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.