diff options
| author | Josef Karthauser <joe@FreeBSD.org> | 2002-04-07 11:56:19 +0000 |
|---|---|---|
| committer | Josef Karthauser <joe@FreeBSD.org> | 2002-04-07 11:56:19 +0000 |
| commit | dfdec0c69e92d6764ce5c30c80df6315576e3758 (patch) | |
| tree | a6a1e0419e1240583456a51d68d01bca294738a5 /sys | |
| parent | 7f31496b8fc0d568d1136a273f12dc84726fae6c (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/dev/usb/usbdi.c | 17 | ||||
| -rw-r--r-- | sys/dev/usb/usbdi.h | 2 |
2 files changed, 19 insertions, 0 deletions
diff --git a/sys/dev/usb/usbdi.c b/sys/dev/usb/usbdi.c index 966b8cec4b1c..fd65b30657a8 100644 --- a/sys/dev/usb/usbdi.c +++ b/sys/dev/usb/usbdi.c @@ -1119,6 +1119,23 @@ usb_match_device(const struct usb_devno *tbl, u_int nentries, u_int sz, return (NULL); } +/* + * usbd_ratecheck() can limit the number of error messages that occurs. + * When a device is unplugged it may take up to 0.25s for the hub driver + * to notice it. If the driver continuosly tries to do I/O operations + * this can generate a large number of messages. + */ +int +usbd_ratecheck(struct timeval *last) +{ +#if 0 + static struct timeval errinterval = { 0, 2500000 }; /* 0.25 s*/ + + return (ratecheck(last, &errinterval)); +#endif + return (1); +} + #if defined(__FreeBSD__) int usbd_driver_load(module_t mod, int what, void *arg) diff --git a/sys/dev/usb/usbdi.h b/sys/dev/usb/usbdi.h index a0593d5be74f..81198c9e6da5 100644 --- a/sys/dev/usb/usbdi.h +++ b/sys/dev/usb/usbdi.h @@ -177,6 +177,8 @@ usb_endpoint_descriptor_t *usbd_get_endpoint_descriptor usbd_status usbd_reload_device_desc(usbd_device_handle); +int usbd_ratecheck(struct timeval *last); + /* * The usb_task structs form a queue of things to run in the USB event * thread. Normally this is just device discovery when a connect/disconnect |
