diff options
| author | Takashi Iwai <tiwai@suse.de> | 2021-01-26 09:51:48 +0300 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2021-01-26 09:51:48 +0300 |
| commit | 4f2da3324eaff382ab1c6aaef8c10180b2f4d08c (patch) | |
| tree | 38dab378ba4ad014d83151f020cc1e5979be0d6d /drivers/base/core.c | |
| parent | 6755568ad111394da224c823e8baf31a05a1469c (diff) | |
| parent | 30e88d017fcbeb50c4b07577fe059558361067e7 (diff) | |
| download | linux-4f2da3324eaff382ab1c6aaef8c10180b2f4d08c.tar.xz | |
Merge tag 'tags/isa-void-remove-callback' into for-next
isa: Make the remove callback for isa drivers return void
Link: https://lore.kernel.org/r/20210122092449.426097-1-uwe@kleine-koenig.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'drivers/base/core.c')
| -rw-r--r-- | drivers/base/core.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index 25e08e5f40bd..14f165816742 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -4414,6 +4414,12 @@ static inline bool fwnode_is_primary(struct fwnode_handle *fwnode) * * Set the device's firmware node pointer to @fwnode, but if a secondary * firmware node of the device is present, preserve it. + * + * Valid fwnode cases are: + * - primary --> secondary --> -ENODEV + * - primary --> NULL + * - secondary --> -ENODEV + * - NULL */ void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode) { @@ -4432,8 +4438,9 @@ void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode) } else { if (fwnode_is_primary(fn)) { dev->fwnode = fn->secondary; + /* Set fn->secondary = NULL, so fn remains the primary fwnode */ if (!(parent && fn == parent->fwnode)) - fn->secondary = ERR_PTR(-ENODEV); + fn->secondary = NULL; } else { dev->fwnode = NULL; } |
