grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Revert "iee1275/datetime: Fix off-by-1 error."


From: Daniel Axtens
Subject: Re: [PATCH] Revert "iee1275/datetime: Fix off-by-1 error."
Date: Tue, 08 Feb 2022 15:51:41 +1100

Hi,

I tested a pseries guest under:
 - qemu + KVM on a Power8 host with a fairly modern qemu
 - qemu + TCG

Here the 'date' command simply reports "error: no cmos found", so
this patch will have no impact on those platforms.

I also tested an LPAR on a Power8 PowerVM machine. In this case, before
the patch, grub printed:

grub> date
2022-02-09 04:31:10 Wednesday

whereas on booting:

[dja@sauce ~]$ date -u
Tue Feb  8 04:46:40 UTC 2022

After applying the patch, grub printed:

grub> date
2022-02-08 04:51:27 Tuesday

It seems the patch makes things better.

Tested-by: Daniel Axtens <dja@axtens.net>

Kind regards,
Daniel

Glenn Washburn <development@efficientek.com> writes:

> This is causing the test grub_cmd_date to fail because the returned date is
> one day more than it should be.
>
> This reverts commit 607d66116a67e5a13eb0d46076f26dedc988e6a4.
>
> Signed-off-by: Glenn Washburn <development@efficientek.com>
> ---
> Hi all,
>
> Reverting this commit allows the grub_cmd_date test to pass. It appears that
> this commit is (now) causing an off-by-1 error in QEMU and the latest 
> OpenBIOS.
> What I'm unsure of is if the original commit is actually correct on real
> hardware and that potentially OpenBIOS has a bug.
>
> Adrian and Daniel A, could you test the reverting of this commit on real
> hardware and see if date does in fact produce the expected date (and do 
> current
> builds show a date one day ahead of what it should be)? Can anyone point to
> documentation saying that the original commit is in fact what should
> be done? If the issue is in OpenBIOS I'd like to have some documentation
> to back up a bug report.
>
> Vladimir, do you have any thoughts on this?
>
> Glenn
>
> ---
>  grub-core/lib/ieee1275/datetime.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/grub-core/lib/ieee1275/datetime.c 
> b/grub-core/lib/ieee1275/datetime.c
> index b81fba2ed..74578f15a 100644
> --- a/grub-core/lib/ieee1275/datetime.c
> +++ b/grub-core/lib/ieee1275/datetime.c
> @@ -95,7 +95,7 @@ grub_get_datetime (struct grub_datetime *datetime)
>  
>    datetime->year = args.year;
>    datetime->month = args.month;
> -  datetime->day = args.day + 1;
> +  datetime->day = args.day;
>    datetime->hour = args.hour;
>    datetime->minute = args.minute;
>    datetime->second = args.second;
> @@ -140,7 +140,7 @@ grub_set_datetime (struct grub_datetime *datetime)
>  
>    args.year = datetime->year;
>    args.month = datetime->month;
> -  args.day = datetime->day - 1;
> +  args.day = datetime->day;
>    args.hour = datetime->hour;
>    args.minute = datetime->minute;
>    args.second = datetime->second;
> -- 
> 2.27.0



reply via email to

[Prev in Thread] Current Thread [Next in Thread]