bus: mvebu-mbus: Avoid setting an undefined window size
authorJason Gunthorpe <jgunthorpe@obsidianresearch.com>
Fri, 18 Apr 2014 12:19:51 +0000 (14:19 +0200)
committerJason Cooper <jason@lakedaemon.net>
Thu, 24 Apr 2014 03:47:55 +0000 (03:47 +0000)
commit09752a12f430f58523fb6f435f5e30e4048fcfb2
treebc4adfc62940cc8b809dfb6be008c7762d6d2c36
parentb6d07e0273d3296cfbdc88145b8a00ddbefb310a
bus: mvebu-mbus: Avoid setting an undefined window size

The mbus hardware requires a power of two size, and size aligned base.
Currently, if a non-power of two is passed in to the low level routines
they configure the register in a way that results in undefined behaviour.

Call WARN and return EINVAL instead.

Also, update the debugfs routines to show a message if there is an
invalid register setting.

All together this makes the recent problems with silent failure
of PCI very obvious, noisy and debuggable.

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Link: https://lkml.kernel.org/r/1397823593-1932-6-git-send-email-thomas.petazzoni@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
drivers/bus/mvebu-mbus.c