[PATCH v2 4/4] watchdog/pseries-wdt: initial support for H_WATCHDOG-based watchdog timers
Segher Boessenkool
segher at kernel.crashing.org
Sat Jun 25 01:31:34 AEST 2022
On Fri, Jun 24, 2022 at 11:27:24PM +1000, Michael Ellerman wrote:
> Scott Cheloha <cheloha at linux.ibm.com> writes:
> > + * - For the "Query Watchdog Capabilities" operation, a 64-bit
> > + * value structured as follows:
> > + *
> > + * Bits 0-15: The minimum supported timeout in milliseconds.
> > + * Bits 16-31: The number of watchdogs supported.
> > + * Bits 32-63: Reserved.
> > + */
> > +#define PSERIES_WDTQ_MIN_TIMEOUT(cap) GETFIELD((cap), 0, 15)
>
> This one is less obviously better, but I still think it's clearer as all
> the logic is there in front of you, rather than hidden in the macro. It
> is clearer that we're only returning a 16-bit value.
>
> #define PSERIES_WDTQ_MIN_TIMEOUT(cap) (((cap) >> 48) & 0xffff)
Or even
((cap) >> 48)
since it is a 64-bit value. If you want better defences you should not
use macros here at all, anyway (but inline functions, instead).
I could rant about the 1000UL being meaningless and/or misleading, or
that 0x1 is just silly, but it is a sunny day :-)
Segher
More information about the Linuxppc-dev
mailing list