mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
uapi: cdc.h: cleanly provide for more interfaces and countries
The spec requires at least one interface respectively country. It allows multiple ones. This needs to be clearly said in the UAPI. This is subject to sanity checking in cdc_parse_cdc_header(), thus we can trust the length. Signed-off-by: Oliver Neukum <oneukum@suse.com> Link: https://patch.msgid.link/20251111134641.4118827-1-oneukum@suse.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
8d3c283ef8
commit
a67df6d1b9
@@ -1475,7 +1475,7 @@ made_compressed_probe:
|
||||
if (!acm->country_codes)
|
||||
goto skip_countries;
|
||||
acm->country_code_size = cfd->bLength - 4;
|
||||
memcpy(acm->country_codes, (u8 *)&cfd->wCountyCode0,
|
||||
memcpy(acm->country_codes, cfd->wCountryCodes,
|
||||
cfd->bLength - 4);
|
||||
acm->country_rel_date = cfd->iCountryCodeRelDate;
|
||||
|
||||
|
||||
@@ -104,8 +104,10 @@ struct usb_cdc_union_desc {
|
||||
__u8 bDescriptorSubType;
|
||||
|
||||
__u8 bMasterInterface0;
|
||||
__u8 bSlaveInterface0;
|
||||
/* ... and there could be other slave interfaces */
|
||||
union {
|
||||
__u8 bSlaveInterface0;
|
||||
__DECLARE_FLEX_ARRAY(__u8, bSlaveInterfaces);
|
||||
};
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* "Country Selection Functional Descriptor" from CDC spec 5.2.3.9 */
|
||||
@@ -115,8 +117,10 @@ struct usb_cdc_country_functional_desc {
|
||||
__u8 bDescriptorSubType;
|
||||
|
||||
__u8 iCountryCodeRelDate;
|
||||
__le16 wCountyCode0;
|
||||
/* ... and there can be a lot of country codes */
|
||||
union {
|
||||
__le16 wCountryCode0;
|
||||
__DECLARE_FLEX_ARRAY(__le16, wCountryCodes);
|
||||
};
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* "Network Channel Terminal Functional Descriptor" from CDC spec 5.2.3.11 */
|
||||
|
||||
Reference in New Issue
Block a user