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

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(-)
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,

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

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.

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 :)

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…

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!

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!

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
participants (5)
-
Bin Meng
-
Dr. Philipp Tomsich
-
Simon Glass
-
sjg@google.com
-
Tom Rini