diff options
| author | Mark Brown <broonie@kernel.org> | 2020-12-11 17:49:01 +0000 | 
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2020-12-11 17:49:01 +0000 | 
| commit | 3e98a021cc85e7d52acdd1eae8a988e975ec5bf9 (patch) | |
| tree | cecfac58b9550a602555a02a9d583ed0f3378b38 /drivers/base/core.c | |
| parent | 58f7553fa424fd0fd74e8b796d50c66014cebebe (diff) | |
| parent | 2fee9583198eb97b5351feda7bd825e0f778385c (diff) | |
Merge remote-tracking branch 'spi/for-5.11' into spi-next
Diffstat (limited to 'drivers/base/core.c')
| -rw-r--r-- | drivers/base/core.c | 10 | 
1 files changed, 5 insertions, 5 deletions
| diff --git a/drivers/base/core.c b/drivers/base/core.c index c852f16c111b..d661ada1518f 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -773,8 +773,7 @@ static void __device_link_del(struct kref *kref)  	dev_dbg(link->consumer, "Dropping the link to %s\n",  		dev_name(link->supplier)); -	if (link->flags & DL_FLAG_PM_RUNTIME) -		pm_runtime_drop_link(link->consumer); +	pm_runtime_drop_link(link);  	list_del_rcu(&link->s_node);  	list_del_rcu(&link->c_node); @@ -788,8 +787,7 @@ static void __device_link_del(struct kref *kref)  	dev_info(link->consumer, "Dropping the link to %s\n",  		 dev_name(link->supplier)); -	if (link->flags & DL_FLAG_PM_RUNTIME) -		pm_runtime_drop_link(link->consumer); +	pm_runtime_drop_link(link);  	list_del(&link->s_node);  	list_del(&link->c_node); @@ -4264,6 +4262,7 @@ static inline bool fwnode_is_primary(struct fwnode_handle *fwnode)   */  void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)  { +	struct device *parent = dev->parent;  	struct fwnode_handle *fn = dev->fwnode;  	if (fwnode) { @@ -4278,7 +4277,8 @@ void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)  	} else {  		if (fwnode_is_primary(fn)) {  			dev->fwnode = fn->secondary; -			fn->secondary = NULL; +			if (!(parent && fn == parent->fwnode)) +				fn->secondary = ERR_PTR(-ENODEV);  		} else {  			dev->fwnode = NULL;  		} | 
