diff mbox series

[U-Boot] dm: core: Correct address cast in dev_read_addr_ptr()

Message ID 20170928123515.154787-1-sjg@chromium.org
State Accepted
Commit 8ccc2db6e84244e5cb57885dc9dfd7e752071b98
Delegated to: Simon Glass
Headers show
Series [U-Boot] dm: core: Correct address cast in dev_read_addr_ptr() | expand

Commit Message

Simon Glass Sept. 28, 2017, 12:35 p.m. UTC
This currently causes a warning in sandbox and will not do the right
thing:

drivers/core/read.c: In function ‘dev_read_addr_ptr’:
drivers/core/read.c:64:44: warning: cast to pointer from integer of
	different size [-Wint-to-pointer-cast]
  return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;

Use map_sysmem() which is the correct way to convert an address to a
pointer.

Fixes: c131c8bca8 (dm: core: add dev_read_addr_ptr())
Signed-off-by: Simon Glass <sjg@chromium.org>
---

 drivers/core/read.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Philipp Tomsich Sept. 28, 2017, 4:14 p.m. UTC | #1
> On 28 Sep 2017, at 14:35, Simon Glass <sjg@chromium.org> wrote:
> 
> This currently causes a warning in sandbox and will not do the right
> thing:
> 
> drivers/core/read.c: In function ‘dev_read_addr_ptr’:
> drivers/core/read.c:64:44: warning: cast to pointer from integer of
> 	different size [-Wint-to-pointer-cast]
>  return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
> 
> Use map_sysmem() which is the correct way to convert an address to a
> pointer.
> 
> Fixes: c131c8bca8 (dm: core: add dev_read_addr_ptr())
> Signed-off-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Bin Meng Sept. 29, 2017, 9:40 a.m. UTC | #2
On Thu, Sep 28, 2017 at 8:35 PM, Simon Glass <sjg@chromium.org> wrote:
> This currently causes a warning in sandbox and will not do the right
> thing:
>
> drivers/core/read.c: In function ‘dev_read_addr_ptr’:
> drivers/core/read.c:64:44: warning: cast to pointer from integer of
>         different size [-Wint-to-pointer-cast]
>   return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
>
> Use map_sysmem() which is the correct way to convert an address to a
> pointer.
>
> Fixes: c131c8bca8 (dm: core: add dev_read_addr_ptr())
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
>  drivers/core/read.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Philipp Tomsich Sept. 30, 2017, 4:08 p.m. UTC | #3
Simon,

> On 28 Sep 2017, at 18:14, Dr. Philipp Tomsich <philipp.tomsich@theobroma-systems.com> wrote:
> 
> 
>> On 28 Sep 2017, at 14:35, Simon Glass <sjg@chromium.org> wrote:
>> 
>> This currently causes a warning in sandbox and will not do the right
>> thing:
>> 
>> drivers/core/read.c: In function ‘dev_read_addr_ptr’:
>> drivers/core/read.c:64:44: warning: cast to pointer from integer of
>> 	different size [-Wint-to-pointer-cast]
>> return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
>> 
>> Use map_sysmem() which is the correct way to convert an address to a
>> pointer.
>> 
>> Fixes: c131c8bca8 (dm: core: add dev_read_addr_ptr())
>> Signed-off-by: Simon Glass <sjg@chromium.org>
> 
> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>


Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

I’ll pull this one in through u-boot-rockchip now, as Tom raised it as a build
issue against my last pull-request.

Philipp.
Tom Rini Sept. 30, 2017, 8:32 p.m. UTC | #4
On Sat, Sep 30, 2017 at 06:08:02PM +0200, Dr. Philipp Tomsich wrote:
> Simon,
> 
> > On 28 Sep 2017, at 18:14, Dr. Philipp Tomsich <philipp.tomsich@theobroma-systems.com> wrote:
> > 
> > 
> >> On 28 Sep 2017, at 14:35, Simon Glass <sjg@chromium.org> wrote:
> >> 
> >> This currently causes a warning in sandbox and will not do the right
> >> thing:
> >> 
> >> drivers/core/read.c: In function ‘dev_read_addr_ptr’:
> >> drivers/core/read.c:64:44: warning: cast to pointer from integer of
> >> 	different size [-Wint-to-pointer-cast]
> >> return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
> >> 
> >> Use map_sysmem() which is the correct way to convert an address to a
> >> pointer.
> >> 
> >> Fixes: c131c8bca8 (dm: core: add dev_read_addr_ptr())
> >> Signed-off-by: Simon Glass <sjg@chromium.org>
> > 
> > Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> 
> 
> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> 
> I’ll pull this one in through u-boot-rockchip now, as Tom raised it as a build
> issue against my last pull-request.

Well, that's for the minor existing warning.  The big problem is the
build failures :)
Philipp Tomsich Sept. 30, 2017, 10:31 p.m. UTC | #5
> On 30 Sep 2017, at 22:32, Tom Rini <trini@konsulko.com> wrote:
> 
> On Sat, Sep 30, 2017 at 06:08:02PM +0200, Dr. Philipp Tomsich wrote:
>> Simon,
>> 
>>> On 28 Sep 2017, at 18:14, Dr. Philipp Tomsich <philipp.tomsich@theobroma-systems.com> wrote:
>>> 
>>> 
>>>> On 28 Sep 2017, at 14:35, Simon Glass <sjg@chromium.org> wrote:
>>>> 
>>>> This currently causes a warning in sandbox and will not do the right
>>>> thing:
>>>> 
>>>> drivers/core/read.c: In function ‘dev_read_addr_ptr’:
>>>> drivers/core/read.c:64:44: warning: cast to pointer from integer of
>>>> 	different size [-Wint-to-pointer-cast]
>>>> return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
>>>> 
>>>> Use map_sysmem() which is the correct way to convert an address to a
>>>> pointer.
>>>> 
>>>> Fixes: c131c8bca8 (dm: core: add dev_read_addr_ptr())
>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>> 
>>> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
>> 
>> 
>> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
>> 
>> I’ll pull this one in through u-boot-rockchip now, as Tom raised it as a build
>> issue against my last pull-request.
> 
> Well, that's for the minor existing warning.  The big problem is the
> build failures :)

I already backed Jagan’s change to mach-tegra/cache.c out (missed that
during my review and testing) and this is already running on Travis.

I understood you that I should also address those warnings related to
the Rockchip code?  If not, I’d rather have this one go through the -dm
tree…
Tom Rini Sept. 30, 2017, 11:25 p.m. UTC | #6
On Sun, Oct 01, 2017 at 12:31:21AM +0200, Dr. Philipp Tomsich wrote:
> 
> > On 30 Sep 2017, at 22:32, Tom Rini <trini@konsulko.com> wrote:
> > 
> > On Sat, Sep 30, 2017 at 06:08:02PM +0200, Dr. Philipp Tomsich wrote:
> >> Simon,
> >> 
> >>> On 28 Sep 2017, at 18:14, Dr. Philipp Tomsich <philipp.tomsich@theobroma-systems.com> wrote:
> >>> 
> >>> 
> >>>> On 28 Sep 2017, at 14:35, Simon Glass <sjg@chromium.org> wrote:
> >>>> 
> >>>> This currently causes a warning in sandbox and will not do the right
> >>>> thing:
> >>>> 
> >>>> drivers/core/read.c: In function ‘dev_read_addr_ptr’:
> >>>> drivers/core/read.c:64:44: warning: cast to pointer from integer of
> >>>> 	different size [-Wint-to-pointer-cast]
> >>>> return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
> >>>> 
> >>>> Use map_sysmem() which is the correct way to convert an address to a
> >>>> pointer.
> >>>> 
> >>>> Fixes: c131c8bca8 (dm: core: add dev_read_addr_ptr())
> >>>> Signed-off-by: Simon Glass <sjg@chromium.org>
> >>> 
> >>> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> >> 
> >> 
> >> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> >> 
> >> I’ll pull this one in through u-boot-rockchip now, as Tom raised it as a build
> >> issue against my last pull-request.
> > 
> > Well, that's for the minor existing warning.  The big problem is the
> > build failures :)
> 
> I already backed Jagan’s change to mach-tegra/cache.c out (missed that
> during my review and testing) and this is already running on Travis.
> 
> I understood you that I should also address those warnings related to
> the Rockchip code?  If not, I’d rather have this one go through the -dm
> tree…

The DM warning fix can come via Simon's tree, thanks!
Simon Glass Nov. 17, 2017, 3:41 p.m. UTC | #7
On Sun, Oct 01, 2017 at 12:31:21AM +0200, Dr. Philipp Tomsich wrote:
>
> > On 30 Sep 2017, at 22:32, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Sat, Sep 30, 2017 at 06:08:02PM +0200, Dr. Philipp Tomsich wrote:
> >> Simon,
> >>
> >>> On 28 Sep 2017, at 18:14, Dr. Philipp Tomsich <philipp.tomsich@theobroma-systems.com> wrote:
> >>>
> >>>
> >>>> On 28 Sep 2017, at 14:35, Simon Glass <sjg@chromium.org> wrote:
> >>>>
> >>>> This currently causes a warning in sandbox and will not do the right
> >>>> thing:
> >>>>
> >>>> drivers/core/read.c: In function ‘dev_read_addr_ptr’:
> >>>> drivers/core/read.c:64:44: warning: cast to pointer from integer of
> >>>> 	different size [-Wint-to-pointer-cast]
> >>>> return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
> >>>>
> >>>> Use map_sysmem() which is the correct way to convert an address to a
> >>>> pointer.
> >>>>
> >>>> Fixes: c131c8bca8 (dm: core: add dev_read_addr_ptr())
> >>>> Signed-off-by: Simon Glass <sjg@chromium.org>
> >>>
> >>> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> >>
> >>
> >> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> >>
> >> I’ll pull this one in through u-boot-rockchip now, as Tom raised it as a build
> >> issue against my last pull-request.
> >
> > Well, that's for the minor existing warning.  The big problem is the
> > build failures :)
>
> I already backed Jagan’s change to mach-tegra/cache.c out (missed that
> during my review and testing) and this is already running on Travis.
>
> I understood you that I should also address those warnings related to
> the Rockchip code?  If not, I’d rather have this one go through the -dm
> tree…

The DM warning fix can come via Simon's tree, thanks!
diff mbox series

Patch

diff --git a/drivers/core/read.c b/drivers/core/read.c
index eacf1716fd..5d440cee72 100644
--- a/drivers/core/read.c
+++ b/drivers/core/read.c
@@ -7,6 +7,7 @@ 
 
 #include <common.h>
 #include <dm.h>
+#include <mapmem.h>
 #include <dm/of_access.h>
 
 int dev_read_u32_default(struct udevice *dev, const char *propname, int def)
@@ -61,7 +62,7 @@  void *dev_read_addr_ptr(struct udevice *dev)
 {
 	fdt_addr_t addr = dev_read_addr(dev);
 
-	return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
+	return (addr == FDT_ADDR_T_NONE) ? NULL : map_sysmem(addr, 0);
 }
 
 fdt_addr_t dev_read_addr_size(struct udevice *dev, const char *property,