Messages in this thread | | | From | Nick Desaulniers <> | Date | Tue, 7 Dec 2021 11:00:49 -0800 | Subject | Re: [PATCH] power: reset: ltc2952: fix float conversion error |
| |
On Tue, Dec 7, 2021 at 10:41 AM Nick Desaulniers <ndesaulniers@google.com> wrote: > > On Sat, Dec 4, 2021 at 2:02 PM Arnd Bergmann <arnd@kernel.org> wrote: > > > > From: Arnd Bergmann <arnd@arndb.de> > > > > clang-14 does not like the way this driver converts a 'long double' > > to an integer when the target architecture disables floating point > > support: > > > > drivers/power/reset/ltc2952-poweroff.c:162:28: error: expression requires 'long double' type support, but target 'x86_64-unknown-linux' does not support it > > data->wde_interval = 300L * 1E6L; > > ^ > > > > Turn this into pure integer math and make it more readable at the > > same time using the NSEC_PER_MSEC macro instead. > > > > Fixes: 6647156c00cc ("power: reset: add LTC2952 poweroff driver") > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > Thanks for the patch! The change in clang-14 (ToT) that triggered this > has had another patch on top reverting these diagnostics. > https://reviews.llvm.org/D114162 > > That said, this change is still worthwhile for the improved semantics, IMO. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1497 > Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Ah, a fix has already been picked up: https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git/commit/?id=644106cdb89844be2496b21175b7c0c2e0fab381
> > > --- > > drivers/power/reset/ltc2952-poweroff.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/power/reset/ltc2952-poweroff.c b/drivers/power/reset/ltc2952-poweroff.c > > index fbb344353fe4..9fc88a9f244c 100644 > > --- a/drivers/power/reset/ltc2952-poweroff.c > > +++ b/drivers/power/reset/ltc2952-poweroff.c > > @@ -159,8 +159,8 @@ static void ltc2952_poweroff_kill(void) > > > > static void ltc2952_poweroff_default(struct ltc2952_poweroff *data) > > { > > - data->wde_interval = 300L * 1E6L; > > - data->trigger_delay = ktime_set(2, 500L*1E6L); > > + data->wde_interval = 300 * NSEC_PER_MSEC; > > + data->trigger_delay = ktime_set(2, 500 * NSEC_PER_MSEC); > > > > hrtimer_init(&data->timer_trigger, CLOCK_MONOTONIC, HRTIMER_MODE_REL); > > data->timer_trigger.function = ltc2952_poweroff_timer_trigger; > > -- > > 2.29.2 > > > > > -- > Thanks, > ~Nick Desaulniers
-- Thanks, ~Nick Desaulniers
| |