Handle a failed device_register(), replace kfree() with put_device(),
which will call mbus_release_dev() or scif_release_dev().

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/misc/mic/bus/mic_bus.c  | 2 +-
 drivers/misc/mic/bus/scif_bus.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/misc/mic/bus/mic_bus.c b/drivers/misc/mic/bus/mic_bus.c
index 961ae90..a25be8d 100644
--- a/drivers/misc/mic/bus/mic_bus.c
+++ b/drivers/misc/mic/bus/mic_bus.c
@@ -185,7 +185,7 @@ mbus_register_device(struct device *pdev, int id, struct 
dma_map_ops *dma_ops,
 ida_remove:
        ida_simple_remove(&mbus_index_ida, mbdev->index);
 free_mbdev:
-       kfree(mbdev);
+       put_device(&mbdev->dev);
        return ERR_PTR(ret);
 }
 EXPORT_SYMBOL_GPL(mbus_register_device);
diff --git a/drivers/misc/mic/bus/scif_bus.c b/drivers/misc/mic/bus/scif_bus.c
index 2da7cee..8972ae7 100644
--- a/drivers/misc/mic/bus/scif_bus.c
+++ b/drivers/misc/mic/bus/scif_bus.c
@@ -181,7 +181,7 @@ scif_register_device(struct device *pdev, int id, struct 
dma_map_ops *dma_ops,
                goto free_sdev;
        return sdev;
 free_sdev:
-       kfree(sdev);
+       put_device(&sdev->dev);
        return ERR_PTR(ret);
 }
 EXPORT_SYMBOL_GPL(scif_register_device);
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to