diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c index 4385976277ac..7ef909d4242d 100644 --- a/drivers/video/fbdev/xen-fbfront.c +++ b/drivers/video/fbdev/xen-fbfront.c @@ -443,7 +443,11 @@ static int xenfb_probe(struct xenbus_device *dev, } fb_info->fbdefio = &xenfb_defio; - fb_deferred_io_init(fb_info); + ret = fb_deferred_io_init(fb_info); + if (ret < 0) { + xenbus_dev_fatal(dev, ret, "fb_deferred_io_init"); + goto error_cmap; + } xenfb_init_shared_page(info, fb_info); @@ -465,6 +469,7 @@ static int xenfb_probe(struct xenbus_device *dev, error_fb: fb_deferred_io_cleanup(fb_info); +error_cmap: fb_dealloc_cmap(&fb_info->cmap); framebuffer_release(fb_info); error_nomem: