Re: [PATCH net] net: usb: rtl8150: enable basic endpoint checking
From: Fedor Pchelkin
Date: Wed Jan 22 2025 - 13:37:18 EST
On Wed, 22. Jan 02:42, Nikita Zhandarovich wrote:
> @@ -880,6 +888,20 @@ static int rtl8150_probe(struct usb_interface *intf,
> return -ENOMEM;
> }
>
> + /* Verify that all required endpoints are present */
> + static const u8 bulk_ep_addr[] = {
> + RTL8150_USB_EP_BULK_IN | USB_DIR_IN,
> + RTL8150_USB_EP_BULK_OUT | USB_DIR_OUT,
> + 0};
> + static const u8 int_ep_addr[] = {
> + RTL8150_USB_EP_INT_IN | USB_DIR_IN,
> + 0};
nit: It's better to avoid using mixed declarations and code, especially
if the patch is considered to be a material for stable branches.
When building old kernels which lack b5ec6fd286df ("kbuild: Drop
-Wdeclaration-after-statement"), the following unnecessary warning
occurs:
drivers/net/usb/rtl8150.c: In function ‘rtl8150_probe’:
drivers/net/usb/rtl8150.c:892:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
892 | static const u8 bulk_ep_addr[] = {
| ^~~~~~
> + if (!usb_check_bulk_endpoints(intf, bulk_ep_addr) ||
> + !usb_check_int_endpoints(intf, int_ep_addr)) {
> + dev_err(&intf->dev, "couldn't find required endpoints\n");
> + goto out;
> + }
> +
> tasklet_setup(&dev->tl, rx_fixup);
> spin_lock_init(&dev->rx_pool_lock);
>