[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201312190842.02702@blacky.localdomain>
Date: Thu, 19 Dec 2013 08:42:00 +0400
From: Nikita Yushchenko <nyushchenko@....rtsoft.ru>
To: Rob Herring <robherring2@...il.com>
Cc: Arnd Bergmann <arnd@...db.de>,
Thierry Reding <thierry.reding@...onic-design.de>,
Grant Likely <grant.likely@...aro.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
Kumar Gala <galak@...nel.crashing.org>,
linuxppc-dev@...ts.ozlabs.org, linux-kernel@...r.kernel.org,
Alexey Lugovskoy <lugovskoy@....rtsoft.ru>,
Dmitry Krivoschekov <dkrivoschokov@....rtsoft.ru>
Subject: Re: commit e38c0a1f breaks powerpc boards with uli1575 chip
> Reverting would break Tegra PCIe, but you should not have to change the
> DT either. So we need a solution.
>
> Is this something like this sufficient to fix it?
>
> diff --git a/drivers/of/address.c b/drivers/of/address.c
> index 4b9317b..378aebd 100644
> --- a/drivers/of/address.c
> +++ b/drivers/of/address.c
> @@ -74,7 +74,7 @@ static u64 of_bus_default_map(__be32 *addr, const
> __be32 *range,
> * mapping doesn't specify a physical address. Rather, the
> address * specifies an identifier that must match exactly.
> */
> - if (na > 2 && memcmp(range, addr, na * 4) != 0)
> + if (na > 2 && memcmp(range, addr, (na - 2) * 4) != 0)
> return OF_BAD_ADDR;
>
> if (da < cp || da >= (cp + s))
No, this does not help.
I've dumped the actual content of 'range' and 'addr' at the failure point
(i.e. ar point that returns error with e38c0a1f but passes without
e38c0a1f ):
OF: default map, cp=0, s=10000, da=70
range: 01 00 00 00 00 00 00 00 00 00 00 00
addr: 00 00 00 00 00 00 00 00 00 00 00 70
Nikita
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists