Re: [PATCH] rtc: ds2404: use hw endiannes variable

From: Alexandre Belloni
Date: Thu May 23 2019 - 11:45:40 EST


On 09/05/2019 04:13:55+0200, Nicholas Mc Guire wrote:
> Converting from hardware to host endiannes was done using reassignment
> to the same variable which makes sparse unhappy as it can not verify
> the endiannes handling properly. To allow sparse to verify endiannes
> handling an explicit __le32 is introduced. Note that this patch does
> not change the generated binary (x86_64 and ppc64 binary diff).
>
> Signed-off-by: Nicholas Mc Guire <hofrat@xxxxxxxxx>
> ---
>
> Problem located by an experimental coccinelle script to locate
> patters that make sparse unhappy (false positives):
>
> on little-endian x86_64 sparse complains about:
> drivers/rtc/rtc-ds2404.c:187:16: warning: cast to restricted __le32
> on big-endian ppc64 sparse complains about
> drivers/rtc/rtc-ds2404.c:187:16: warning: cast to restricted __le32
> drivers/rtc/rtc-ds2404.c:187:16: warning: cast to restricted __le32
> drivers/rtc/rtc-ds2404.c:187:16: warning: cast to restricted __le32
> drivers/rtc/rtc-ds2404.c:187:16: warning: cast to restricted __le32
> drivers/rtc/rtc-ds2404.c:187:16: warning: cast to restricted __le32
> drivers/rtc/rtc-ds2404.c:187:16: warning: cast to restricted __le32
>
> Patch was compiletested with:
> x86_64_defconfig + RTC_DRV_DS2404=m
> ppc64_defconfig + RTC_DRV_DS2404=m
>
> in both cases applying the patch has no impact on the generated binary.
>
> Patch is against 5.1 (localversion-next is next-20190508)
>
> drivers/rtc/rtc-ds2404.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
Applied, thanks.

--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com