| From 40b8b826a6998639dd1c26f0e127f18371e1058d Mon Sep 17 00:00:00 2001 |
| From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| Date: Mon, 3 Aug 2020 11:27:06 +0300 |
| Subject: kobject: Restore old behaviour of kobject_del(NULL) |
| |
| From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| |
| commit 40b8b826a6998639dd1c26f0e127f18371e1058d upstream. |
| |
| The commit 079ad2fb4bf9 ("kobject: Avoid premature parent object freeing in |
| kobject_cleanup()") inadvertently dropped a possibility to call kobject_del() |
| with NULL pointer. Restore the old behaviour. |
| |
| Fixes: 079ad2fb4bf9 ("kobject: Avoid premature parent object freeing in kobject_cleanup()") |
| Cc: stable <stable@vger.kernel.org> |
| Reported-by: Qu Wenruo <quwenruo.btrfs@gmx.com> |
| Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com> |
| Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| Reviewed-by: Qu Wenruo <wqu@suse.com> |
| Link: https://lore.kernel.org/r/20200803082706.65347-1-andriy.shevchenko@linux.intel.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| lib/kobject.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| --- a/lib/kobject.c |
| +++ b/lib/kobject.c |
| @@ -630,8 +630,12 @@ static void __kobject_del(struct kobject |
| */ |
| void kobject_del(struct kobject *kobj) |
| { |
| - struct kobject *parent = kobj->parent; |
| + struct kobject *parent; |
| |
| + if (!kobj) |
| + return; |
| + |
| + parent = kobj->parent; |
| __kobject_del(kobj); |
| kobject_put(parent); |
| } |