Re: [PATCH] HID: ghlive: support for ghlive ps3/wii u dongles

From: Jiri Kosina
Date: Thu Oct 29 2020 - 11:25:49 EST


On Thu, 8 Oct 2020, Pascal Giard wrote:

> This commit introduces the Guitar Hero Live driver which adds support
> for the PS3 and Wii U dongles.

Pascal,

thanks for the patch.

[ ... snip ... ]

> ---
> drivers/hid/Kconfig | 6 ++
> drivers/hid/Makefile | 1 +
> drivers/hid/hid-ghlive.c | 220 +++++++++++++++++++++++++++++++++++++++

Would it make more sense (with respect to how we are structuring/naming
the hid drivers) to incorporate this into hid-sony (irrespective of
currently ongoing discussions about actually splitting that driver :) )?

> +static void ghl_magic_poke(struct timer_list *t)
> +{
> + struct ghlive_sc *sc = from_timer(sc, t, poke_timer);
> +
> + int ret;
> + unsigned int pipe;
> + struct urb *urb;
> + struct usb_ctrlrequest *cr;
> + const u16 poke_size =
> + ARRAY_SIZE(ghl_ps3wiiu_magic_data);
> + u8 *databuf;
> +
> + pipe = usb_sndctrlpipe(sc->usbdev, 0);
> +
> + cr = kzalloc(sizeof(*cr), GFP_ATOMIC);
> + if (!cr)
> + goto resched;
> +
> + databuf = kzalloc(poke_size, GFP_ATOMIC);
> + if (!databuf) {
> + kfree(cr);
> + goto resched;
> + }
> +
> + urb = usb_alloc_urb(0, GFP_ATOMIC);
> + if (!urb) {
> + kfree(databuf);
> + kfree(cr);
> + goto resched;


So if one of the allocations above succeeds and a subsequent one fails,
you're going to try re-allocate all of them next time again, leaking the
ones that previously succeeded, right?

Thanks,

--
Jiri Kosina
SUSE Labs