• Nathan Chancellor's avatar
    power: reset: ltc2952: Fix use of floating point literals · 644106cd
    Nathan Chancellor authored
    A new commit in LLVM causes an error on the use of 'long double' when
    '-mno-x87' is used, which the kernel does through an alias,
    '-mno-80387' (see the LLVM commit below for more details around why it
    does this).
    
    drivers/power/reset/ltc2952-poweroff.c:162:28: error: expression requires  'long double' type support, but target 'x86_64-unknown-linux-gnu' does not support it
            data->wde_interval = 300L * 1E6L;
                                      ^
    drivers/power/reset/ltc2952-poweroff.c:162:21: error: expression requires  'long double' type support, but target 'x86_64-unknown-linux-gnu' does not support it
            data->wde_interval = 300L * 1E6L;
                               ^
    drivers/power/reset/ltc2952-poweroff.c:163:41: error: expression requires  'long double' type support, but target 'x86_64-unknown-linux-gnu' does not support it
            data->trigger_delay = ktime_set(2, 500L*1E6L);
                                                   ^
    3 errors generated.
    
    This happens due to the use of a 'long double' literal. The 'E6' part of
    '1E6L' causes the literal to be a 'double' then the 'L' suffix promotes
    it to 'long double'.
    
    There is no visible reason for floating point values in this driver, as
    the values are only assigned to integer types. Use NSEC_PER_MSEC, which
    is the same integer value as '1E6L', to avoid changing functionality but
    fix the error.
    
    Fixes: 6647156c ("power: reset: add LTC2952 poweroff driver")
    Link: https://github.com/ClangBuiltLinux/linux/issues/1497
    Link: https://github.com/llvm/llvm-project/commit/a8083d42b1c346e21623a1d36d1f0cadd7801d83Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
    Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
    644106cd
ltc2952-poweroff.c 8.93 KB