|
@@ -1587,10 +1587,19 @@ static int dlfb_usb_probe(struct usb_interface *interface,
|
|
|
goto error;
|
|
|
}
|
|
|
|
|
|
- for (i = 0; i < ARRAY_SIZE(fb_device_attrs); i++)
|
|
|
- device_create_file(info->dev, &fb_device_attrs[i]);
|
|
|
+ for (i = 0; i < ARRAY_SIZE(fb_device_attrs); i++) {
|
|
|
+ retval = device_create_file(info->dev, &fb_device_attrs[i]);
|
|
|
+ if (retval) {
|
|
|
+ pr_err("device_create_file failed %d\n", retval);
|
|
|
+ goto err_del_attrs;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- device_create_bin_file(info->dev, &edid_attr);
|
|
|
+ retval = device_create_bin_file(info->dev, &edid_attr);
|
|
|
+ if (retval) {
|
|
|
+ pr_err("device_create_bin_file failed %d\n", retval);
|
|
|
+ goto err_del_attrs;
|
|
|
+ }
|
|
|
|
|
|
pr_info("DisplayLink USB device /dev/fb%d attached. %dx%d resolution."
|
|
|
" Using %dK framebuffer memory\n", info->node,
|
|
@@ -1599,6 +1608,10 @@ static int dlfb_usb_probe(struct usb_interface *interface,
|
|
|
info->fix.smem_len * 2 : info->fix.smem_len) >> 10);
|
|
|
return 0;
|
|
|
|
|
|
+err_del_attrs:
|
|
|
+ for (i -= 1; i >= 0; i--)
|
|
|
+ device_remove_file(info->dev, &fb_device_attrs[i]);
|
|
|
+
|
|
|
error:
|
|
|
if (dev) {
|
|
|
|