Re: [PATCH 2/3] [v2] m68k: mac: use time64_t in RTC handling

From: Finn Thain
Date: Wed Jul 18 2018 - 08:02:20 EST


On Wed, 18 Jul 2018, Geert Uytterhoeven wrote:

>
> Thanks for your patch!
>
> Applied and queued for v4.19, with the WARN_ON() dropped.
>

The patch you've committed to your for-v4.19 branch has this hunk:

@@ -269,8 +275,12 @@ static long via_read_time(void)
via_pram_command(0x89, &result.cdata[1]);
via_pram_command(0x8D, &result.cdata[0]);

- if (result.idata == last_result.idata)
+ if (result.idata == last_result.idata) {
+ if (result.idata < RTC_OFFSET)
+ result.idata += 0x100000000ull;
+
return result.idata - RTC_OFFSET;
+ }

if (++count > 10)
break;

That looks bogus to me, since result.idata is a long.

Also, the following hunk seems a bit pointless (?)

@@ -291,11 +301,11 @@ static long via_read_time(void)
* is basically any machine with Mac II-style ADB.
*/

-static void via_write_time(long time)
+static void via_write_time(time64_t time)
{
union {
__u8 cdata[4];
- long idata;
+ __u32 idata;
} data;
__u8 temp;


But if data.idata needs to be changed to __u32 here, why not change the
same struct member in via_read_time() also?

--