[PATCH] bus: mvebu-mbus: Fix optional pcie-mem/io-aperture properties

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Tue Sep 17 15:05:03 EDT 2013


Dear Jason Gunthorpe,

On Tue, 17 Sep 2013 12:38:53 -0600, Jason Gunthorpe wrote:
> If the property was not specified then then the returned resource
> had a resource_size(..) == 1, rather than 0. The PCI-E driver checks
> for 0 so it blindly continues on with a corrupted resource.
> 
> Signed-off-by: Jason Gunthorpe <jgunthorpe at obsidianresearch.com>
> ---
>  drivers/bus/mvebu-mbus.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/bus/mvebu-mbus.c b/drivers/bus/mvebu-mbus.c
> index 19ab6ff..7a66203 100644
> --- a/drivers/bus/mvebu-mbus.c
> +++ b/drivers/bus/mvebu-mbus.c
> @@ -866,6 +866,8 @@ static void __init mvebu_mbus_get_pcie_resources(struct device_node *np,
>  	 */
>  	memset(mem, 0, sizeof(struct resource));
>  	memset(io, 0, sizeof(struct resource));
> +	mem->end--;
> +	io->end--;
>  
>  	ret = of_property_read_u32_array(np, "pcie-mem-aperture", reg, ARRAY_SIZE(reg));
>  	if (!ret) {

This seems a little bit nasty, isn't it? Can't we instead teach the
PCIe driver to be a little bit smarter when testing if those resources
are valid or not?

Thanks!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com



More information about the linux-arm-kernel mailing list