diff options
Diffstat (limited to 'drivers/usb/misc/appledisplay.c')
| -rw-r--r-- | drivers/usb/misc/appledisplay.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c index ac92725458b5..ba1eaabc7796 100644 --- a/drivers/usb/misc/appledisplay.c +++ b/drivers/usb/misc/appledisplay.c @@ -164,7 +164,12 @@ static int appledisplay_bl_get_brightness(struct backlight_device *bd)  		0,  		pdata->msgdata, 2,  		ACD_USB_TIMEOUT); -	brightness = pdata->msgdata[1]; +	if (retval < 2) { +		if (retval >= 0) +			retval = -EMSGSIZE; +	} else { +		brightness = pdata->msgdata[1]; +	}  	mutex_unlock(&pdata->sysfslock);  	if (retval < 0) @@ -299,6 +304,7 @@ error:  	if (pdata) {  		if (pdata->urb) {  			usb_kill_urb(pdata->urb); +			cancel_delayed_work_sync(&pdata->work);  			if (pdata->urbdata)  				usb_free_coherent(pdata->udev, ACD_URB_BUFFER_LEN,  					pdata->urbdata, pdata->urb->transfer_dma);  |