From: Russell King - ARM Linux admin <linux@armlinux•org.uk>
To: Ben Dooks <ben.dooks@codethink•co.uk>
Cc: linux-kernel@lists•codethink.co.uk, linux-arm-kernel@lists•infradead.org
Subject: Re: [PATCH] zImage: atags_to_fdt: fix __be32 and __be64 types
Date: Wed, 9 Oct 2019 17:24:17 +0100 [thread overview]
Message-ID: <20191009162417.GG25745@shell.armlinux.org.uk> (raw)
In-Reply-To: <20191009160153.6298-1-ben.dooks@codethink.co.uk>
On Wed, Oct 09, 2019 at 05:01:53PM +0100, Ben Dooks wrote:
> Change types of some the uint32_t to __be32 or __be64 to
> avoid the following sparse warnings:
>
> arch/arm/boot/compressed/atags_to_fdt.c:66:29: warning: cast to restricted __be32
> arch/arm/boot/compressed/atags_to_fdt.c:66:29: warning: cast to restricted __be32
> arch/arm/boot/compressed/atags_to_fdt.c:66:29: warning: cast to restricted __be32
> arch/arm/boot/compressed/atags_to_fdt.c:66:29: warning: cast to restricted __be32
> arch/arm/boot/compressed/atags_to_fdt.c:66:29: warning: cast to restricted __be32
> arch/arm/boot/compressed/atags_to_fdt.c:66:29: warning: cast to restricted __be32
> arch/arm/boot/compressed/atags_to_fdt.c:182:60: warning: incorrect type in assignment (different base types)
> arch/arm/boot/compressed/atags_to_fdt.c:182:60: expected unsigned long long [usertype]
> arch/arm/boot/compressed/atags_to_fdt.c:182:60: got restricted __be64 [usertype]
> arch/arm/boot/compressed/atags_to_fdt.c:184:60: warning: incorrect type in assignment (different base types)
> arch/arm/boot/compressed/atags_to_fdt.c:184:60: expected unsigned long long [usertype]
> arch/arm/boot/compressed/atags_to_fdt.c:184:60: got restricted __be64 [usertype]
> arch/arm/boot/compressed/atags_to_fdt.c:187:62: warning: incorrect type in assignment (different base types)
> arch/arm/boot/compressed/atags_to_fdt.c:187:62: expected unsigned int
> arch/arm/boot/compressed/atags_to_fdt.c:187:62: got restricted __be32 [usertype]
> arch/arm/boot/compressed/atags_to_fdt.c:189:62: warning: incorrect type in assignment (different base types)
> arch/arm/boot/compressed/atags_to_fdt.c:189:62: expected unsigned int
> arch/arm/boot/compressed/atags_to_fdt.c:189:62: got restricted __be32 [usertype]
>
> Signed-off-by: Ben Dooks <ben.dooks@codethink•co.uk>
> ---
> Cc: Russell King <linux@armlinux•org.uk>
> Cc: linux-arm-kernel@lists•infradead.org
> ---
> arch/arm/boot/compressed/atags_to_fdt.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/boot/compressed/atags_to_fdt.c b/arch/arm/boot/compressed/atags_to_fdt.c
> index 330cd3c2eae5..13407d0243b9 100644
> --- a/arch/arm/boot/compressed/atags_to_fdt.c
> +++ b/arch/arm/boot/compressed/atags_to_fdt.c
> @@ -60,7 +60,7 @@ static uint32_t get_cell_size(const void *fdt)
> {
> int len;
> uint32_t cell_size = 1;
> - const uint32_t *size_len = getprop(fdt, "/", "#size-cells", &len);
> + const __be32 *size_len = getprop(fdt, "/", "#size-cells", &len);
>
> if (size_len)
> cell_size = fdt32_to_cpu(*size_len);
> @@ -129,7 +129,7 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space)
> struct tag *atag = atag_list;
> /* In the case of 64 bits memory size, need to reserve 2 cells for
> * address and size for each bank */
> - uint32_t mem_reg_property[2 * 2 * NR_BANKS];
> + __be32 mem_reg_property[2 * 2 * NR_BANKS];
> int memcount = 0;
> int ret, memsize;
>
> @@ -138,7 +138,7 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space)
> return 1;
>
> /* if we get a DTB here we're done already */
> - if (*(u32 *)atag_list == fdt32_to_cpu(FDT_MAGIC))
> + if (*(u32 *)atag_list == fdt32_to_cpu((fdt32_t)FDT_MAGIC))
> return 0;
>
> /* validate the ATAG */
> @@ -177,8 +177,8 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space)
> /* if memsize is 2, that means that
> * each data needs 2 cells of 32 bits,
> * so the data are 64 bits */
> - uint64_t *mem_reg_prop64 =
> - (uint64_t *)mem_reg_property;
> + __be64 *mem_reg_prop64 =
> + (__be64 *)mem_reg_property;
> mem_reg_prop64[memcount++] =
> cpu_to_fdt64(atag->u.mem.start);
> mem_reg_prop64[memcount++] =
> @@ -207,7 +207,7 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space)
> }
>
> if (memcount) {
> - setprop(fdt, "/memory", "reg", mem_reg_property,
> + setprop(fdt, "/memory", "reg", (uint32_t *)mem_reg_property,
I'm not sure this is an improvement.
fdt_setprop() takes a const void pointer as its 4th argument:
int fdt_setprop(void *fdt, int nodeoffset, const char *name,
const void *val, int len)
setprop() could also do the same, since setprop() is just as flexible
as fdt_setprop() itself. Then you don't need this cast.
> 4 * memcount * memsize);
> }
>
> --
> 2.23.0
>
>
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-10-09 16:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-09 16:01 [PATCH] zImage: atags_to_fdt: fix __be32 and __be64 types Ben Dooks
2019-10-09 16:24 ` Russell King - ARM Linux admin [this message]
2019-10-10 8:06 ` Ben Dooks
-- strict thread matches above, loose matches on Subject: below --
2019-10-10 10:53 Ben Dooks
2019-10-10 10:56 ` Ben Dooks
2019-10-10 16:21 ` Russell King - ARM Linux admin
2019-10-11 10:21 ` Ben Dooks
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191009162417.GG25745@shell.armlinux.org.uk \
--to=linux@armlinux$(echo .)org.uk \
--cc=ben.dooks@codethink$(echo .)co.uk \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
--cc=linux-kernel@lists$(echo .)codethink.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox