Improve handling of alternate settings in the USB stack.
Move initialization of num_altsetting under USB_CFG_INIT, else there will be a page fault when enumerating USB devices. PR: 251856 MFC after: 1 week Submitted by: Ma, Horse <Shichun.Ma@dell.com> Sponsored by: Mellanox Technologies // NVIDIA Networking
This commit is contained in:
parent
ff9c6d3f09
commit
b1f99f9cc9
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=368664
@ -897,6 +897,9 @@ usb_config_parse(struct usb_device *udev, uint8_t iface_index, uint8_t cmd)
|
||||
/* initialise interface */
|
||||
do_init = 1;
|
||||
}
|
||||
/* update number of alternate settings, if any */
|
||||
if (iface_index == USB_IFACE_INDEX_ANY)
|
||||
iface->num_altsetting = ips.iface_index_alt + 1;
|
||||
} else
|
||||
do_init = 0;
|
||||
|
||||
@ -905,9 +908,6 @@ usb_config_parse(struct usb_device *udev, uint8_t iface_index, uint8_t cmd)
|
||||
/* update current number of endpoints */
|
||||
ep_curr = ep_max;
|
||||
}
|
||||
/* update number of alternate settings, if any */
|
||||
if (iface_index == USB_IFACE_INDEX_ANY)
|
||||
iface->num_altsetting = ips.iface_index_alt + 1;
|
||||
|
||||
/* check for init */
|
||||
if (do_init) {
|
||||
|
Loading…
Reference in New Issue
Block a user