From df021b3ffdaa06c52c8468306146d022f504041a Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 16 Jun 2020 19:12:13 +0200 Subject: [PATCH] drop kobject-make-sure-the-parent-does-not-get-released-b.patch --- ...e-the-parent-does-not-get-released-b.patch | 112 ------------------ queue-5.4/series | 1 - ...e-the-parent-does-not-get-released-b.patch | 112 ------------------ queue-5.6/series | 1 - 4 files changed, 226 deletions(-) delete mode 100644 queue-5.4/kobject-make-sure-the-parent-does-not-get-released-b.patch delete mode 100644 queue-5.6/kobject-make-sure-the-parent-does-not-get-released-b.patch diff --git a/queue-5.4/kobject-make-sure-the-parent-does-not-get-released-b.patch b/queue-5.4/kobject-make-sure-the-parent-does-not-get-released-b.patch deleted file mode 100644 index 8121ad3f42c..00000000000 --- a/queue-5.4/kobject-make-sure-the-parent-does-not-get-released-b.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 9d16e39bb459e6736a777fdce8cd2b1d4be1ccbf Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 13 May 2020 18:18:40 +0300 -Subject: kobject: Make sure the parent does not get released before its - children - -From: Heikki Krogerus - -[ Upstream commit 4ef12f7198023c09ad6d25b652bd8748c965c7fa ] - -In the function kobject_cleanup(), kobject_del(kobj) is -called before the kobj->release(). That makes it possible to -release the parent of the kobject before the kobject itself. - -To fix that, adding function __kboject_del() that does -everything that kobject_del() does except release the parent -reference. kobject_cleanup() then calls __kobject_del() -instead of kobject_del(), and separately decrements the -reference count of the parent kobject after kobj->release() -has been called. - -Reported-by: Naresh Kamboju -Reported-by: kernel test robot -Fixes: 7589238a8cf3 ("Revert "software node: Simplify software_node_release() function"") -Suggested-by: "Rafael J. Wysocki" -Signed-off-by: Heikki Krogerus -Reviewed-by: Rafael J. Wysocki -Reviewed-by: Brendan Higgins -Tested-by: Brendan Higgins -Acked-by: Randy Dunlap -Link: https://lore.kernel.org/r/20200513151840.36400-1-heikki.krogerus@linux.intel.com -Cc: stable -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - lib/kobject.c | 30 ++++++++++++++++++++---------- - 1 file changed, 20 insertions(+), 10 deletions(-) - -diff --git a/lib/kobject.c b/lib/kobject.c -index 83198cb37d8d..2bd631460e18 100644 ---- a/lib/kobject.c -+++ b/lib/kobject.c -@@ -599,14 +599,7 @@ int kobject_move(struct kobject *kobj, struct kobject *new_parent) - } - EXPORT_SYMBOL_GPL(kobject_move); - --/** -- * kobject_del() - Unlink kobject from hierarchy. -- * @kobj: object. -- * -- * This is the function that should be called to delete an object -- * successfully added via kobject_add(). -- */ --void kobject_del(struct kobject *kobj) -+static void __kobject_del(struct kobject *kobj) - { - struct kernfs_node *sd; - const struct kobj_type *ktype; -@@ -625,9 +618,23 @@ void kobject_del(struct kobject *kobj) - - kobj->state_in_sysfs = 0; - kobj_kset_leave(kobj); -- kobject_put(kobj->parent); - kobj->parent = NULL; - } -+ -+/** -+ * kobject_del() - Unlink kobject from hierarchy. -+ * @kobj: object. -+ * -+ * This is the function that should be called to delete an object -+ * successfully added via kobject_add(). -+ */ -+void kobject_del(struct kobject *kobj) -+{ -+ struct kobject *parent = kobj->parent; -+ -+ __kobject_del(kobj); -+ kobject_put(parent); -+} - EXPORT_SYMBOL(kobject_del); - - /** -@@ -663,6 +670,7 @@ EXPORT_SYMBOL(kobject_get_unless_zero); - */ - static void kobject_cleanup(struct kobject *kobj) - { -+ struct kobject *parent = kobj->parent; - struct kobj_type *t = get_ktype(kobj); - const char *name = kobj->name; - -@@ -684,7 +692,7 @@ static void kobject_cleanup(struct kobject *kobj) - if (kobj->state_in_sysfs) { - pr_debug("kobject: '%s' (%p): auto cleanup kobject_del\n", - kobject_name(kobj), kobj); -- kobject_del(kobj); -+ __kobject_del(kobj); - } - - if (t && t->release) { -@@ -698,6 +706,8 @@ static void kobject_cleanup(struct kobject *kobj) - pr_debug("kobject: '%s': free name\n", name); - kfree_const(name); - } -+ -+ kobject_put(parent); - } - - #ifdef CONFIG_DEBUG_KOBJECT_RELEASE --- -2.25.1 - diff --git a/queue-5.4/series b/queue-5.4/series index 8bf93916d9f..dd9feb1aff6 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -25,7 +25,6 @@ s390-pci-log-new-handle-in-clp_disable_fh.patch x86-cpu-amd-make-erratum-1054-a-legacy-erratum.patch kvm-x86-only-do-l1tf-workaround-on-affected-processo.patch pci-pm-adjust-pcie_wait_for_link_delay-for-caller-de.patch -kobject-make-sure-the-parent-does-not-get-released-b.patch perf-probe-accept-the-instance-number-of-kretprobe-e.patch mm-add-kvfree_sensitive-for-freeing-sensitive-data-o.patch selftests-fix-flower-parent-qdisc.patch diff --git a/queue-5.6/kobject-make-sure-the-parent-does-not-get-released-b.patch b/queue-5.6/kobject-make-sure-the-parent-does-not-get-released-b.patch deleted file mode 100644 index 748cd5189a9..00000000000 --- a/queue-5.6/kobject-make-sure-the-parent-does-not-get-released-b.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 985789e2caed2b3b7facc9f8c7dfde8a6ab7666f Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 13 May 2020 18:18:40 +0300 -Subject: kobject: Make sure the parent does not get released before its - children - -From: Heikki Krogerus - -[ Upstream commit 4ef12f7198023c09ad6d25b652bd8748c965c7fa ] - -In the function kobject_cleanup(), kobject_del(kobj) is -called before the kobj->release(). That makes it possible to -release the parent of the kobject before the kobject itself. - -To fix that, adding function __kboject_del() that does -everything that kobject_del() does except release the parent -reference. kobject_cleanup() then calls __kobject_del() -instead of kobject_del(), and separately decrements the -reference count of the parent kobject after kobj->release() -has been called. - -Reported-by: Naresh Kamboju -Reported-by: kernel test robot -Fixes: 7589238a8cf3 ("Revert "software node: Simplify software_node_release() function"") -Suggested-by: "Rafael J. Wysocki" -Signed-off-by: Heikki Krogerus -Reviewed-by: Rafael J. Wysocki -Reviewed-by: Brendan Higgins -Tested-by: Brendan Higgins -Acked-by: Randy Dunlap -Link: https://lore.kernel.org/r/20200513151840.36400-1-heikki.krogerus@linux.intel.com -Cc: stable -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - lib/kobject.c | 30 ++++++++++++++++++++---------- - 1 file changed, 20 insertions(+), 10 deletions(-) - -diff --git a/lib/kobject.c b/lib/kobject.c -index 83198cb37d8d..2bd631460e18 100644 ---- a/lib/kobject.c -+++ b/lib/kobject.c -@@ -599,14 +599,7 @@ int kobject_move(struct kobject *kobj, struct kobject *new_parent) - } - EXPORT_SYMBOL_GPL(kobject_move); - --/** -- * kobject_del() - Unlink kobject from hierarchy. -- * @kobj: object. -- * -- * This is the function that should be called to delete an object -- * successfully added via kobject_add(). -- */ --void kobject_del(struct kobject *kobj) -+static void __kobject_del(struct kobject *kobj) - { - struct kernfs_node *sd; - const struct kobj_type *ktype; -@@ -625,9 +618,23 @@ void kobject_del(struct kobject *kobj) - - kobj->state_in_sysfs = 0; - kobj_kset_leave(kobj); -- kobject_put(kobj->parent); - kobj->parent = NULL; - } -+ -+/** -+ * kobject_del() - Unlink kobject from hierarchy. -+ * @kobj: object. -+ * -+ * This is the function that should be called to delete an object -+ * successfully added via kobject_add(). -+ */ -+void kobject_del(struct kobject *kobj) -+{ -+ struct kobject *parent = kobj->parent; -+ -+ __kobject_del(kobj); -+ kobject_put(parent); -+} - EXPORT_SYMBOL(kobject_del); - - /** -@@ -663,6 +670,7 @@ EXPORT_SYMBOL(kobject_get_unless_zero); - */ - static void kobject_cleanup(struct kobject *kobj) - { -+ struct kobject *parent = kobj->parent; - struct kobj_type *t = get_ktype(kobj); - const char *name = kobj->name; - -@@ -684,7 +692,7 @@ static void kobject_cleanup(struct kobject *kobj) - if (kobj->state_in_sysfs) { - pr_debug("kobject: '%s' (%p): auto cleanup kobject_del\n", - kobject_name(kobj), kobj); -- kobject_del(kobj); -+ __kobject_del(kobj); - } - - if (t && t->release) { -@@ -698,6 +706,8 @@ static void kobject_cleanup(struct kobject *kobj) - pr_debug("kobject: '%s': free name\n", name); - kfree_const(name); - } -+ -+ kobject_put(parent); - } - - #ifdef CONFIG_DEBUG_KOBJECT_RELEASE --- -2.25.1 - diff --git a/queue-5.6/series b/queue-5.6/series index 9b624887b54..8bcba697a1d 100644 --- a/queue-5.6/series +++ b/queue-5.6/series @@ -38,7 +38,6 @@ s390-pci-log-new-handle-in-clp_disable_fh.patch x86-cpu-amd-make-erratum-1054-a-legacy-erratum.patch kvm-x86-only-do-l1tf-workaround-on-affected-processo.patch pci-pm-adjust-pcie_wait_for_link_delay-for-caller-de.patch -kobject-make-sure-the-parent-does-not-get-released-b.patch scsi-target-remove-boilerplate-code.patch scsi-target-fix-hang-when-multiple-threads-try-to-de.patch drm-amd-display-remove-invalid-dc_is_hw_initialized-.patch -- 2.47.3