Oliver Neukum <oneu...@suse.com> writes:

> The dependencies were impossible to handle preventing
> drivers for CDC devices not which are not network drivers
> from using the common parser.
>
> Signed-off-by: Oliver Neukum <oneu...@suse.com>
> ---
>  drivers/net/usb/usbnet.c   | 138 ----------------------------------------
>  drivers/usb/core/message.c | 153 
> +++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 153 insertions(+), 138 deletions(-)

Yes, we really want to keep the net and usb CDC parsing in the same
place, and making all usb drivers depend on usbnet is of course not an
option.

> +/**
> + * cdc_parse_cdc_header - parse the extra headers present in CDC devices
> + * @hdr: the place to put the results of the parsing
> + * @intf: the interface for which parsing is requested
> + * @buffer: pointer to the extra headers to be parsed
> + * @buflen: length of the extra headers
> + *
> + * This evaluates the extra headers present in CDC devices which
> + * bind the interfaces for data and control and provide details
> + * about the capabilities of the device.
> + *
> + * Return: number of bytes of the buffer parsed or -EINVAL
> + * if the header is contradictory beyond salvage
> + */

The description of Return sounds like a good interface to me.  But, it's
not what's implemented, is it?


> +int cdc_parse_cdc_header(struct usb_cdc_parsed_header *hdr,
..
> +     int cnt = 0;
> +
> +     memset(hdr, 0x00, sizeof(struct usb_cdc_parsed_header));
> +     hdr->phonet_magic_present = false;
> +     while (buflen > 0) {
..
> +             cnt++;
> +next_desc:
> +             buflen -= elength;
> +             buffer += elength;
> +     }
> +     hdr->usb_cdc_union_desc = union_header;
> +     hdr->usb_cdc_header_desc = header;
> +     hdr->usb_cdc_mdlm_detail_desc = detail;
> +     hdr->usb_cdc_mdlm_desc = desc;
> +     hdr->usb_cdc_ether_desc = ether;
> +     return cnt;
> +}

This looks like it just counts the number of CDC descriptors and returns
that count, possibly 0.  It will not -EINVAL or any other negative
number AFAICS.  Unless I'm missing something?


Bjørn
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to