Index: linux-2.6.21-rc1/drivers/usb/core/config.c =================================================================== --- linux-2.6.21-rc1.orig/drivers/usb/core/config.c 2007-02-24 10:57:53.000000000 -0800 +++ linux-2.6.21-rc1/drivers/usb/core/config.c 2007-02-24 10:58:48.000000000 -0800 @@ -185,10 +185,13 @@ static int usb_parse_interface(struct de num_ep = USB_MAXENDPOINTS; } - len = sizeof(struct usb_host_endpoint) * num_ep; - alt->endpoint = kzalloc(len, GFP_KERNEL); - if (!alt->endpoint) - return -ENOMEM; + alt->endpoint = NULL; + if (num_ep) { + len = sizeof(struct usb_host_endpoint) * num_ep; + alt->endpoint = kzalloc(len, GFP_KERNEL); + if (!alt->endpoint) + return -ENOMEM; + } /* Parse all the endpoint descriptors */ n = 0;