Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
[firefly-linux-kernel-4.4.55.git] / arch / ia64 / sn / kernel / tiocx.c
index c1bd1cfda3276c958450d7034ad4b1dc3bd0340c..2f406f509d44d9ec4fd1b7deee382a5338dcda5a 100644 (file)
@@ -191,6 +191,7 @@ cx_device_register(nasid_t nasid, int part_num, int mfg_num,
                   struct hubdev_info *hubdev, int bt)
 {
        struct cx_dev *cx_dev;
+       int r;
 
        cx_dev = kzalloc(sizeof(struct cx_dev), GFP_KERNEL);
        DBG("cx_dev= 0x%p\n", cx_dev);
@@ -207,7 +208,11 @@ cx_device_register(nasid_t nasid, int part_num, int mfg_num,
        cx_dev->dev.bus = &tiocx_bus_type;
        cx_dev->dev.release = tiocx_bus_release;
        dev_set_name(&cx_dev->dev, "%d", cx_dev->cx_id.nasid);
-       device_register(&cx_dev->dev);
+       r = device_register(&cx_dev->dev);
+       if (r) {
+               kfree(cx_dev);
+               return r;
+       }
        get_device(&cx_dev->dev);
 
        device_create_file(&cx_dev->dev, &dev_attr_cxdev_control);