diff options
Diffstat (limited to 'drivers/gpu/drm/udl/udl_main.c')
| -rw-r--r-- | drivers/gpu/drm/udl/udl_main.c | 16 | 
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/gpu/drm/udl/udl_main.c b/drivers/gpu/drm/udl/udl_main.c index 29f0207fa677..873f010d9616 100644 --- a/drivers/gpu/drm/udl/udl_main.c +++ b/drivers/gpu/drm/udl/udl_main.c @@ -98,17 +98,23 @@ success:  static int udl_select_std_channel(struct udl_device *udl)  {  	int ret; -	u8 set_def_chn[] = {0x57, 0xCD, 0xDC, 0xA7, -			    0x1C, 0x88, 0x5E, 0x15, -			    0x60, 0xFE, 0xC6, 0x97, -			    0x16, 0x3D, 0x47, 0xF2}; +	static const u8 set_def_chn[] = {0x57, 0xCD, 0xDC, 0xA7, +					 0x1C, 0x88, 0x5E, 0x15, +					 0x60, 0xFE, 0xC6, 0x97, +					 0x16, 0x3D, 0x47, 0xF2}; +	void *sendbuf; + +	sendbuf = kmemdup(set_def_chn, sizeof(set_def_chn), GFP_KERNEL); +	if (!sendbuf) +		return -ENOMEM;  	ret = usb_control_msg(udl->udev,  			      usb_sndctrlpipe(udl->udev, 0),  			      NR_USB_REQUEST_CHANNEL,  			      (USB_DIR_OUT | USB_TYPE_VENDOR), 0, 0, -			      set_def_chn, sizeof(set_def_chn), +			      sendbuf, sizeof(set_def_chn),  			      USB_CTRL_SET_TIMEOUT); +	kfree(sendbuf);  	return ret < 0 ? ret : 0;  }  | 
