aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/platform.c
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2018-12-03 20:21:41 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-12-06 14:00:06 +0100
commit99fef587ff98894426d9bf1f5b7336345052d4b3 (patch)
tree9152a4b819c68ad76cc86c83afe321cb761b976e /drivers/base/platform.c
parentkref/kobject: Improve documentation (diff)
downloadlinux-dev-99fef587ff98894426d9bf1f5b7336345052d4b3.tar.xz
linux-dev-99fef587ff98894426d9bf1f5b7336345052d4b3.zip
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/platform.c')
-rw-r--r--drivers/base/platform.c4
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);