Host controller drivers use the NS_TO_US macro to convert transaction times, which are computed in nanoseconds, to microseconds for scheduling. Periodic scheduling requires worst-case estimates, but the macro does its conversion using round-to-nearest. This patch changes it to use round-up, giving a correct worst-case value. Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> --- [as1714] include/linux/usb/hcd.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) Index: usb-3.11/include/linux/usb/hcd.h =================================================================== --- usb-3.11.orig/include/linux/usb/hcd.h +++ usb-3.11/include/linux/usb/hcd.h @@ -561,9 +561,8 @@ extern void usb_ep0_reinit(struct usb_de * of (7/6 * 8 * bytecount) = 9.33 * bytecount */ /* bytecount = data payload byte count */ -#define NS_TO_US(ns) ((ns + 500L) / 1000L) - /* convert & round nanoseconds to microseconds */ - +#define NS_TO_US(ns) DIV_ROUND_UP(ns, 1000L) + /* convert nanoseconds to microseconds, rounding up */ /* * Full/low speed bandwidth allocation constants/support. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html