From: Nuno Sa via B4 Relay <devnull+nuno.sa.analog.com@kernel.org> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, "Rafael J. Wysocki" <rafael@kernel.org>, Frank Rowand <frowand.list@gmail.com>, Rob Herring <robh+dt@kernel.org>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Daniel Scally <djrscally@gmail.com>, Heikki Krogerus <heikki.krogerus@linux.intel.com>, Sakari Ailus <sakari.ailus@linux.intel.com>, Len Brown <lenb@kernel.org> Cc: linux-acpi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 0/2] fix DT overlays when device links are released Date: Fri, 02 Feb 2024 13:18:15 +0100 [thread overview] Message-ID: <20240202-fix-device-links-overlays-v1-0-f9fd1404c8e2@analog.com> (raw) Link to RFC: * https://lore.kernel.org/lkml/20240123-fix-device-links-overlays-v1-1-9e4f6acaab6c@analog.com/ Changes since RFC: * Use a dedicated workqueue to remove devlinks; * Flush the devlink workqueue before checking the of_node refcount value. The following series is the result of the discussion I had with Rafael. To sum up the fundamental issue, device links drop their refcounts asynchronously and that means that the of_node refcount associated with the device will also be dropped asynchronously. Now, in __of_changeset_entry_destroy(), the assumption is that the node refcount must be 1 and that cannot be guaranteed given the above. I'm pasting again the link of the first time I exposed the issue where one can see the resulps (big splat) of failing DT assumption: https://lore.kernel.org/linux-devicetree/20230511151047.1779841-1-nuno.sa@analog.com/ --- Nuno Sa (2): driver: core: add dedicated workqueue for devlink removal of: dynamic: flush devlinks workqueue before destroying the changeset drivers/base/core.c | 33 +++++++++++++++++++++++++++++---- drivers/of/dynamic.c | 8 ++++++++ include/linux/fwnode.h | 1 + 3 files changed, 38 insertions(+), 4 deletions(-) --- base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d change-id: 20240123-fix-device-links-overlays-5422e033a09b -- Thanks! - Nuno Sá
WARNING: multiple messages have this Message-ID (diff)
From: Nuno Sa <nuno.sa@analog.com> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, "Rafael J. Wysocki" <rafael@kernel.org>, Frank Rowand <frowand.list@gmail.com>, Rob Herring <robh+dt@kernel.org>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Daniel Scally <djrscally@gmail.com>, Heikki Krogerus <heikki.krogerus@linux.intel.com>, Sakari Ailus <sakari.ailus@linux.intel.com>, Len Brown <lenb@kernel.org> Cc: linux-acpi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 0/2] fix DT overlays when device links are released Date: Fri, 02 Feb 2024 13:18:15 +0100 [thread overview] Message-ID: <20240202-fix-device-links-overlays-v1-0-f9fd1404c8e2@analog.com> (raw) Link to RFC: * https://lore.kernel.org/lkml/20240123-fix-device-links-overlays-v1-1-9e4f6acaab6c@analog.com/ Changes since RFC: * Use a dedicated workqueue to remove devlinks; * Flush the devlink workqueue before checking the of_node refcount value. The following series is the result of the discussion I had with Rafael. To sum up the fundamental issue, device links drop their refcounts asynchronously and that means that the of_node refcount associated with the device will also be dropped asynchronously. Now, in __of_changeset_entry_destroy(), the assumption is that the node refcount must be 1 and that cannot be guaranteed given the above. I'm pasting again the link of the first time I exposed the issue where one can see the resulps (big splat) of failing DT assumption: https://lore.kernel.org/linux-devicetree/20230511151047.1779841-1-nuno.sa@analog.com/ --- Nuno Sa (2): driver: core: add dedicated workqueue for devlink removal of: dynamic: flush devlinks workqueue before destroying the changeset drivers/base/core.c | 33 +++++++++++++++++++++++++++++---- drivers/of/dynamic.c | 8 ++++++++ include/linux/fwnode.h | 1 + 3 files changed, 38 insertions(+), 4 deletions(-) --- base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d change-id: 20240123-fix-device-links-overlays-5422e033a09b -- Thanks! - Nuno Sá
next reply other threads:[~2024-02-02 12:18 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-02-02 12:18 Nuno Sa via B4 Relay [this message] 2024-02-02 12:18 ` [PATCH 0/2] fix DT overlays when device links are released Nuno Sa 2024-02-02 12:18 ` [PATCH 1/2] driver: core: add dedicated workqueue for devlink removal Nuno Sa via B4 Relay 2024-02-02 12:18 ` Nuno Sa 2024-02-02 15:59 ` Rafael J. Wysocki 2024-02-05 8:29 ` Nuno Sá 2024-02-05 13:36 ` Rafael J. Wysocki 2024-02-02 12:18 ` [PATCH 2/2] of: dynamic: flush devlinks workqueue before destroying the changeset Nuno Sa via B4 Relay 2024-02-02 12:18 ` Nuno Sa
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20240202-fix-device-links-overlays-v1-0-f9fd1404c8e2@analog.com \ --to=devnull+nuno.sa.analog.com@kernel.org \ --cc=andriy.shevchenko@linux.intel.com \ --cc=devicetree@vger.kernel.org \ --cc=djrscally@gmail.com \ --cc=frowand.list@gmail.com \ --cc=gregkh@linuxfoundation.org \ --cc=heikki.krogerus@linux.intel.com \ --cc=lenb@kernel.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=nuno.sa@analog.com \ --cc=rafael@kernel.org \ --cc=robh+dt@kernel.org \ --cc=sakari.ailus@linux.intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.