Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

devres: fix devres_get()

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>
Cc: stable <stable@vger.kernel.org> # 2.6.21+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Masahiro Yamada and committed by
Greg Kroah-Hartman
64526370 cbfe8fa6

+2 -2
+2 -2
drivers/base/devres.c
··· 297 297 if (!dr) { 298 298 add_dr(dev, &new_dr->node); 299 299 dr = new_dr; 300 - new_dr = NULL; 300 + new_res = NULL; 301 301 } 302 302 spin_unlock_irqrestore(&dev->devres_lock, flags); 303 - devres_free(new_dr); 303 + devres_free(new_res); 304 304 305 305 return dr->data; 306 306 }