usb_free_coherent() is safe with NULL addr and this check is
not required.
Signed-off-by: Xu Wang <[email protected]>
---
sound/usb/endpoint.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
index 8e568823c992..d5ed4ddfd451 100644
--- a/sound/usb/endpoint.c
+++ b/sound/usb/endpoint.c
@@ -82,10 +82,9 @@ static inline unsigned get_usb_high_speed_rate(unsigned int rate)
*/
static void release_urb_ctx(struct snd_urb_ctx *u)
{
- if (u->buffer_size)
- usb_free_coherent(u->ep->chip->dev, u->buffer_size,
- u->urb->transfer_buffer,
- u->urb->transfer_dma);
+ usb_free_coherent(u->ep->chip->dev, u->buffer_size,
+ u->urb->transfer_buffer,
+ u->urb->transfer_dma);
usb_free_urb(u->urb);
u->urb = NULL;
}
--
2.17.1
On Thu, 04 Feb 2021 03:05:18 +0100,
Xu Wang wrote:
>
> usb_free_coherent() is safe with NULL addr and this check is
> not required.
The check there isn't about NULL buffer or not; instead it checks
whether the buffer was allocated for each or it shares the single
buffer (for sync endpoints). In the latter case, your patch will lead
to double-free.
thanks,
Takashi