Re: [PATCH v2] net: usb: ax88179_178a: Bind only to vendor-specific interface

From: Hector Martin
Date: Thu May 05 2022 - 08:05:50 EST


On 05/05/2022 11.30, Jakub Kicinski wrote:
> On Mon, 2 May 2022 20:06:44 +0900 Hector Martin wrote:
>> The Anker PowerExpand USB-C to Gigabit Ethernet adapter uses this
>> chipset, but exposes CDC Ethernet configurations as well as the
>> vendor specific one.
>
> And we have reasons to believe all dongle vendors may have a similar
> problem?

Given this is a vendor-specific driver it seems correct to have it only
bind to vendor-specific interfaces. That shouldn't break anything as
long as nobody is implementing this interface with the wrong protocol
IDs (which seems like quite a weird thing to do and fairly unlikely).

FWIW, the one I have has the generic VID/PID, not a custom vendor one.
If you prefer I can change just that one or both of the generic ones.

>> diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c
>> index e2fa56b92685..7c7c2f31d9f1 100644
>> --- a/drivers/net/usb/ax88179_178a.c
>> +++ b/drivers/net/usb/ax88179_178a.c
>> @@ -1914,55 +1914,55 @@ static const struct driver_info at_umc2000sp_info = {
>> static const struct usb_device_id products[] = {
>> {
>> /* ASIX AX88179 10/100/1000 */
>> - USB_DEVICE(0x0b95, 0x1790),
>> + USB_DEVICE_AND_INTERFACE_INFO(0x0b95, 0x1790, 0xff, 0xff, 0),
>> .driver_info = (unsigned long)&ax88179_info,
>> },
>
> Should we use USB_CLASS_VENDOR_SPEC and USB_SUBCLASS_VENDOR_SPEC ?
> Maybe define a local macro wrapper for USB_DEVICE_AND.. which will
> fill those in to avoid long lines?

Sure, I'll do that!

--
Hector Martin (marcan@xxxxxxxxx)
Public Key: https://mrcn.st/pub