svn commit: r368664 - head/sys/dev/usb
Hans Petter Selasky
hselasky at FreeBSD.org
Tue Dec 15 15:36:42 UTC 2020
Author: hselasky
Date: Tue Dec 15 15:36:41 2020
New Revision: 368664
URL: https://svnweb.freebsd.org/changeset/base/368664
Log:
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 at dell.com>
Sponsored by: Mellanox Technologies // NVIDIA Networking
Modified:
head/sys/dev/usb/usb_device.c
Modified: head/sys/dev/usb/usb_device.c
==============================================================================
--- head/sys/dev/usb/usb_device.c Tue Dec 15 15:33:28 2020 (r368663)
+++ head/sys/dev/usb/usb_device.c Tue Dec 15 15:36:41 2020 (r368664)
@@ -897,6 +897,9 @@ usb_config_parse(struct usb_device *udev, uint8_t ifac
/* 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 ifac
/* 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) {
More information about the svn-src-head
mailing list