Thread (4 messages) flat view 4 messages, 2 authors, 2014-08-28

Re: Linux 3.16: all my drivers on SPI bus report WARNING: at drivers/base/dd.c:286

From: Stijn Devriendt <hidden>
Date: 2014-08-28 20:28:22
Also in: linux-spi, lkml

On Thu, Aug 28, 2014 at 5:53 PM, leroy christophe
[off-list ref] wrote:
I've been able to identify the origin of the issue. It happens since the below commit.
Do you know what should be done to fix that ?

Christophe
Actually, more things are wrong with what the driver is doing.
If inside spi_add_device() the call to device_add() fails, then that
code bails out without any call to spi_cleanup() and the same
memory will leak (Is this intended?).

Basically, fsl_spi_setup allocates memory using devm_kzalloc, while
device_add expects that any memory allocated via this way is only
done in the device's probe function.

The simple fix would be to do a normal allocation (revert the patch) and
add a free to the cleanup() function. Unfortunately that doesn't fix the
memleak I mentioned above.

So, some outside-the-box thinking brings me to conclude that another way
to fix this problem is to allocate the devm_kzalloc not on the device's
resource
list but on the controller's resources (it's controller state after all...).

Regards,
Stijn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help