diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2018-12-03 20:21:41 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-12-06 14:00:06 +0100 |
commit | 99fef587ff98894426d9bf1f5b7336345052d4b3 (patch) | |
tree | 9152a4b819c68ad76cc86c83afe321cb761b976e /drivers/base | |
parent | 186bddb28ff9f61250d1b33554321d0bf5d085f6 (diff) |
driver core: platform: Respect return code of platform_device_register_full()
The platform_device_register_full() might return an error pointer. If we
instantiate platform device which is optional we may simplify the routine at
removal stage by simply calling platform_device_unregister(). For now it
requires to check parameter for being an error pointer in each caller.
To make users' life easier, check for an error pointer inside driver core.
Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/platform.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 41b91af95afb..e1ba610482c0 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -234,7 +234,7 @@ struct platform_object { */ void platform_device_put(struct platform_device *pdev) { - if (pdev) + if (!IS_ERR_OR_NULL(pdev)) put_device(&pdev->dev); } EXPORT_SYMBOL_GPL(platform_device_put); @@ -447,7 +447,7 @@ void platform_device_del(struct platform_device *pdev) { int i; - if (pdev) { + if (!IS_ERR_OR_NULL(pdev)) { device_remove_properties(&pdev->dev); device_del(&pdev->dev); |