| From 64526370d11ce8868ca495723d595b61e8697fbf Mon Sep 17 00:00:00 2001 |
| From: Masahiro Yamada <yamada.masahiro@socionext.com> |
| Date: Wed, 15 Jul 2015 10:29:00 +0900 |
| Subject: devres: fix devres_get() |
| |
| commit 64526370d11ce8868ca495723d595b61e8697fbf upstream. |
| |
| Currently, devres_get() passes devres_free() the pointer to devres, |
| but devres_free() should be given with the pointer to resource data. |
| |
| Fixes: 9ac7849e35f7 ("devres: device resource management") |
| Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
| Acked-by: Tejun Heo <tj@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Zefan Li <lizefan@huawei.com> |
| --- |
| drivers/base/devres.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/base/devres.c |
| +++ b/drivers/base/devres.c |
| @@ -254,10 +254,10 @@ void * devres_get(struct device *dev, vo |
| if (!dr) { |
| add_dr(dev, &new_dr->node); |
| dr = new_dr; |
| - new_dr = NULL; |
| + new_res = NULL; |
| } |
| spin_unlock_irqrestore(&dev->devres_lock, flags); |
| - devres_free(new_dr); |
| + devres_free(new_res); |
| |
| return dr->data; |
| } |