platform/x86/intel: vsec: Use intel_vsec_dev_release() to simplify init() error cleanup
authorHans de Goede <hdegoede@redhat.com>
Mon, 20 Mar 2023 10:38:15 +0000 (11:38 +0100)
committerHans de Goede <hdegoede@redhat.com>
Mon, 20 Mar 2023 14:20:05 +0000 (15:20 +0100)
On auxiliary_device_init(auxdev) failure we need to do the exact same
cleanup steps as on device.release(), so use the intel_vsec_dev_release()
callback for this.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20230320103815.229729-1-hdegoede@redhat.com
drivers/platform/x86/intel/vsec.c

index 01b1f64..42904b4 100644 (file)
@@ -153,11 +153,7 @@ int intel_vsec_add_aux(struct pci_dev *pdev, struct device *parent,
 
        ret = auxiliary_device_init(auxdev);
        if (ret < 0) {
-               mutex_lock(&vsec_ida_lock);
-               ida_free(intel_vsec_dev->ida, auxdev->id);
-               mutex_unlock(&vsec_ida_lock);
-               kfree(intel_vsec_dev->resource);
-               kfree(intel_vsec_dev);
+               intel_vsec_dev_release(&auxdev->dev);
                return ret;
        }