diff options
Diffstat (limited to 'drivers/usb/core/config.c')
| -rw-r--r-- | drivers/usb/core/config.c | 12 | 
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c index 1ac1095bfeac..5f40117e68e7 100644 --- a/drivers/usb/core/config.c +++ b/drivers/usb/core/config.c @@ -805,10 +805,10 @@ int usb_get_configuration(struct usb_device *dev)  {  	struct device *ddev = &dev->dev;  	int ncfg = dev->descriptor.bNumConfigurations; -	int result = -ENOMEM;  	unsigned int cfgno, length;  	unsigned char *bigbuffer;  	struct usb_config_descriptor *desc; +	int result;  	if (ncfg > USB_MAXCONFIG) {  		dev_warn(ddev, "too many configurations: %d, " @@ -824,16 +824,16 @@ int usb_get_configuration(struct usb_device *dev)  	length = ncfg * sizeof(struct usb_host_config);  	dev->config = kzalloc(length, GFP_KERNEL);  	if (!dev->config) -		goto err2; +		return -ENOMEM;  	length = ncfg * sizeof(char *);  	dev->rawdescriptors = kzalloc(length, GFP_KERNEL);  	if (!dev->rawdescriptors) -		goto err2; +		return -ENOMEM;  	desc = kmalloc(USB_DT_CONFIG_SIZE, GFP_KERNEL);  	if (!desc) -		goto err2; +		return -ENOMEM;  	for (cfgno = 0; cfgno < ncfg; cfgno++) {  		/* We grab just the first descriptor so we know how long @@ -895,9 +895,7 @@ int usb_get_configuration(struct usb_device *dev)  err:  	kfree(desc);  	dev->descriptor.bNumConfigurations = cfgno; -err2: -	if (result == -ENOMEM) -		dev_err(ddev, "out of memory\n"); +  	return result;  }  |