Hi Rebecca, On Wed, 3 Jan 2024 at 21:44, Rebecca Cran <rebe...@os.amperecomputing.com> wrote: > > Fix the calculation of the timer period in GenericWatchdogDxe: we need > to multiply before dividing to keep the values as integers. > > Signed-off-by: Rebecca Cran <rebe...@os.amperecomputing.com> > --- > ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c > b/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c > index 05df101d5f4b..8f02f38c64e3 100644 > --- a/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c > +++ b/ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c > @@ -119,7 +119,7 @@ WatchdogInterruptHandler ( > // the timer period plus 1. > // > if (mWatchdogNotify != NULL) { > - TimerPeriod = ((TIME_UNITS_PER_SECOND / mTimerFrequencyHz) * > mNumTimerTicks); > + TimerPeriod = ((TIME_UNITS_PER_SECOND * mNumTimerTicks) / > mTimerFrequencyHz);
Could we just store the timer period in a global mTimerPeriod, and get rid of mNumTimerTicks entirely? AFAICT, that would get rid of these calculations as well. > mWatchdogNotify (TimerPeriod + 1); > } > > @@ -260,7 +260,7 @@ WatchdogGetTimerPeriod ( > return EFI_INVALID_PARAMETER; > } > > - *TimerPeriod = ((TIME_UNITS_PER_SECOND / mTimerFrequencyHz) * > mNumTimerTicks); > + *TimerPeriod = ((TIME_UNITS_PER_SECOND * mNumTimerTicks) / > mTimerFrequencyHz); > > return EFI_SUCCESS; > } > -- > 2.34.1 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113108): https://edk2.groups.io/g/devel/message/113108 Mute This Topic: https://groups.io/mt/103510102/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-