From d0e4831ad198ca8ad6fd06008a4ad49a71be2cee Mon Sep 17 00:00:00 2001 From: hselasky Date: Mon, 24 Jan 2011 17:38:37 +0000 Subject: [PATCH] Add more sanity checks for USB_HOST_ALIGN input values. Re-factor existing checks for readability. Approved by: thompsa (mentor) --- sys/dev/usb/usb_freebsd.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sys/dev/usb/usb_freebsd.h b/sys/dev/usb/usb_freebsd.h index 70dd3835cfe9..a44e53004d91 100644 --- a/sys/dev/usb/usb_freebsd.h +++ b/sys/dev/usb/usb_freebsd.h @@ -46,12 +46,15 @@ #define USB_TD_GET_PROC(td) (td)->td_proc #define USB_PROC_GET_GID(td) (td)->p_pgid -#if defined(USB_HOST_ALIGN) && (USB_HOST_ALIGN != 0) -/* USB_HOST_ALIGN is already defined and valid */ -#else +#if (!defined(USB_HOST_ALIGN)) || (USB_HOST_ALIGN <= 0) +/* Use default value. */ #undef USB_HOST_ALIGN #define USB_HOST_ALIGN 8 /* bytes, must be power of two */ #endif +/* Sanity check for USB_HOST_ALIGN: Verify power of two. */ +#if ((-USB_HOST_ALIGN) & USB_HOST_ALIGN) != USB_HOST_ALIGN +#error "USB_HOST_ALIGN is not power of two." +#endif #define USB_FS_ISOC_UFRAME_MAX 4 /* exclusive unit */ #define USB_BUS_MAX 256 /* units */ #define USB_MAX_DEVICES 128 /* units */