lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f154dfd9-006a-43e0-9127-9f7f2e377027@infradead.org>
Date: Sun, 8 Jun 2025 17:00:43 -0700
From: Randy Dunlap <rdunlap@...radead.org>
To: linux@...blig.org, gregkh@...uxfoundation.org, linux-usb@...r.kernel.org
Cc: corbet@....net, linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] usb: core: Remove unused usb_unlink_anchored_urbs



On 6/8/25 4:56 PM, linux@...blig.org wrote:
> From: "Dr. David Alan Gilbert" <linux@...blig.org>
> 
> usb_unlink_anchored_urbs() has been unused since it's last use was

s/it's/its/ (same in previous patch's description)

> removed in 2009 by
> commit 9b9c5aaeedfd ("ar9170: xmit code revamp")
> 
> Remove it.
> 
> Signed-off-by: Dr. David Alan Gilbert <linux@...blig.org>

Acked-by: Randy Dunlap <rdunlap@...radead.org>

Thanks.

> ---
>  Documentation/driver-api/usb/anchors.rst | 11 ---------
>  drivers/usb/core/urb.c                   | 29 +++---------------------
>  include/linux/usb.h                      |  1 -
>  3 files changed, 3 insertions(+), 38 deletions(-)
> 
> diff --git a/Documentation/driver-api/usb/anchors.rst b/Documentation/driver-api/usb/anchors.rst
> index 4b248e691bd6..5a93d171e76c 100644
> --- a/Documentation/driver-api/usb/anchors.rst
> +++ b/Documentation/driver-api/usb/anchors.rst
> @@ -45,17 +45,6 @@ This function kills all URBs associated with an anchor. The URBs
>  are called in the reverse temporal order they were submitted.
>  This way no data can be reordered.
>  
> -:c:func:`usb_unlink_anchored_urbs`
> -----------------------------------
> -
> -
> -This function unlinks all URBs associated with an anchor. The URBs
> -are processed in the reverse temporal order they were submitted.
> -This is similar to :c:func:`usb_kill_anchored_urbs`, but it will not sleep.
> -Therefore no guarantee is made that the URBs have been unlinked when
> -the call returns. They may be unlinked later but will be unlinked in
> -finite time.
> -
>  :c:func:`usb_scuttle_anchored_urbs`
>  -----------------------------------
>  
> diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
> index 5e52a35486af..0e58a8531d6e 100644
> --- a/drivers/usb/core/urb.c
> +++ b/drivers/usb/core/urb.c
> @@ -597,10 +597,9 @@ EXPORT_SYMBOL_GPL(usb_submit_urb);
>   * code).
>   *
>   * Drivers should not call this routine or related routines, such as
> - * usb_kill_urb() or usb_unlink_anchored_urbs(), after their disconnect
> - * method has returned.  The disconnect function should synchronize with
> - * a driver's I/O routines to insure that all URB-related activity has
> - * completed before it returns.
> + * usb_kill_urb(), after their disconnect method has returned. The
> + * disconnect function should synchronize with a driver's I/O routines
> + * to insure that all URB-related activity has completed before it returns.
>   *
>   * This request is asynchronous, however the HCD might call the ->complete()
>   * callback during unlink. Therefore when drivers call usb_unlink_urb(), they
> @@ -890,28 +889,6 @@ void usb_unpoison_anchored_urbs(struct usb_anchor *anchor)
>  	spin_unlock_irqrestore(&anchor->lock, flags);
>  }
>  EXPORT_SYMBOL_GPL(usb_unpoison_anchored_urbs);
> -/**
> - * usb_unlink_anchored_urbs - asynchronously cancel transfer requests en masse
> - * @anchor: anchor the requests are bound to
> - *
> - * this allows all outstanding URBs to be unlinked starting
> - * from the back of the queue. This function is asynchronous.
> - * The unlinking is just triggered. It may happen after this
> - * function has returned.
> - *
> - * This routine should not be called by a driver after its disconnect
> - * method has returned.
> - */
> -void usb_unlink_anchored_urbs(struct usb_anchor *anchor)
> -{
> -	struct urb *victim;
> -
> -	while ((victim = usb_get_from_anchor(anchor)) != NULL) {
> -		usb_unlink_urb(victim);
> -		usb_put_urb(victim);
> -	}
> -}
> -EXPORT_SYMBOL_GPL(usb_unlink_anchored_urbs);
>  
>  /**
>   * usb_anchor_suspend_wakeups
> diff --git a/include/linux/usb.h b/include/linux/usb.h
> index 1b2545b4363b..e8662843e68c 100644
> --- a/include/linux/usb.h
> +++ b/include/linux/usb.h
> @@ -1780,7 +1780,6 @@ extern void usb_block_urb(struct urb *urb);
>  extern void usb_kill_anchored_urbs(struct usb_anchor *anchor);
>  extern void usb_poison_anchored_urbs(struct usb_anchor *anchor);
>  extern void usb_unpoison_anchored_urbs(struct usb_anchor *anchor);
> -extern void usb_unlink_anchored_urbs(struct usb_anchor *anchor);
>  extern void usb_anchor_suspend_wakeups(struct usb_anchor *anchor);
>  extern void usb_anchor_resume_wakeups(struct usb_anchor *anchor);
>  extern void usb_anchor_urb(struct urb *urb, struct usb_anchor *anchor);

-- 
~Randy

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ