Messages in this thread Patch in this message |  | | From | Geert Uytterhoeven <> | Date | Wed, 5 Oct 2016 09:03:01 +0200 | Subject | Re: [PATCH 1/1] rtc: add century field data boundary |
| |
On Tue, Oct 4, 2016 at 8:06 PM, Andrew Kim <andrew.kim@intel.com> wrote: > According to ACPI specification, the century field data > should be ranged 0-63. so if it's over this range, it could > cause system RTC settings error including alarmwakeup settings. > So it's required to have this boundary for safe RTC init settings. > > Signed-off-by: Andrew Kim <andrew.kim@intel.com> > --- > arch/x86/kernel/rtc.c | 7 +++++-- > drivers/rtc/rtc-mc146818-lib.c | 7 +++++-- > include/linux/mc146818rtc.h | 2 ++ > 3 files changed, 12 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c > index 79c6311c..feac180 100644 > --- a/arch/x86/kernel/rtc.c > +++ b/arch/x86/kernel/rtc.c > @@ -84,8 +84,11 @@ void mach_get_cmos_time(struct timespec *now) > > #ifdef CONFIG_ACPI > if (acpi_gbl_FADT.header.revision >= FADT2_REVISION_ID && > - acpi_gbl_FADT.century) > - century = CMOS_READ(acpi_gbl_FADT.century); > + acpi_gbl_FADT.century) { > + if ((century = CMOS_READ(acpi_gbl_FADT.century)) > > + RTC_CENTURY_LIMIT)
Please don't combine assignments and comparisons into a single statement (especially for non-NULL comparisons), i.e. use
century = CMOS_READ(acpi_gbl_FADT.century); if (century > RTC_CENTURY_LIMIT) { ...
> + century = 0; > + } > #endif > > status = CMOS_READ(RTC_CONTROL); > diff --git a/drivers/rtc/rtc-mc146818-lib.c b/drivers/rtc/rtc-mc146818-lib.c > index 2f1772a..1d83c2c 100644 > --- a/drivers/rtc/rtc-mc146818-lib.c > +++ b/drivers/rtc/rtc-mc146818-lib.c > @@ -61,8 +61,11 @@ unsigned int mc146818_get_time(struct rtc_time *time) > #endif > #ifdef CONFIG_ACPI > if (acpi_gbl_FADT.header.revision >= FADT2_REVISION_ID && > - acpi_gbl_FADT.century) > - century = CMOS_READ(acpi_gbl_FADT.century); > + acpi_gbl_FADT.century) { > + if ((century = CMOS_READ(acpi_gbl_FADT.century)) > > + RTC_CENTURY_LIMIT)
Likewise
> + century = 0; > + } > #endif
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
|  |