From: Greg Kroah-Hartman Date: Mon, 10 Jan 2022 07:04:11 +0000 (+0100) Subject: 4.4-stable patches X-Git-Tag: v4.4.299~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=52e01be290df5bc0f5d7ca804ee945fd0b148081;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: power-reset-ltc2952-fix-use-of-floating-point-literals.patch --- diff --git a/queue-4.4/power-reset-ltc2952-fix-use-of-floating-point-literals.patch b/queue-4.4/power-reset-ltc2952-fix-use-of-floating-point-literals.patch new file mode 100644 index 00000000000..9832b96bbcf --- /dev/null +++ b/queue-4.4/power-reset-ltc2952-fix-use-of-floating-point-literals.patch @@ -0,0 +1,60 @@ +From 644106cdb89844be2496b21175b7c0c2e0fab381 Mon Sep 17 00:00:00 2001 +From: Nathan Chancellor +Date: Fri, 5 Nov 2021 08:20:50 -0700 +Subject: power: reset: ltc2952: Fix use of floating point literals + +From: Nathan Chancellor + +commit 644106cdb89844be2496b21175b7c0c2e0fab381 upstream. + +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: 6647156c00cc ("power: reset: add LTC2952 poweroff driver") +Link: https://github.com/ClangBuiltLinux/linux/issues/1497 +Link: https://github.com/llvm/llvm-project/commit/a8083d42b1c346e21623a1d36d1f0cadd7801d83 +Signed-off-by: Nathan Chancellor +Reviewed-by: Nick Desaulniers +Signed-off-by: Sebastian Reichel +[nathan: Resolve conflict due to lack of 8b0e195314fab] +Signed-off-by: Nathan Chancellor +Signed-off-by: Greg Kroah-Hartman +--- + drivers/power/reset/ltc2952-poweroff.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/power/reset/ltc2952-poweroff.c ++++ b/drivers/power/reset/ltc2952-poweroff.c +@@ -169,8 +169,8 @@ static void ltc2952_poweroff_kill(void) + + static void ltc2952_poweroff_default(struct ltc2952_poweroff *data) + { +- data->wde_interval = ktime_set(0, 300L*1E6L); +- data->trigger_delay = ktime_set(2, 500L*1E6L); ++ data->wde_interval = ktime_set(0, 300L * NSEC_PER_MSEC); ++ data->trigger_delay = ktime_set(2, 500L * NSEC_PER_MSEC); + + hrtimer_init(&data->timer_trigger, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + data->timer_trigger.function = ltc2952_poweroff_timer_trigger; diff --git a/queue-4.4/series b/queue-4.4/series index 294613e319a..a6973817302 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -11,3 +11,4 @@ scsi-libiscsi-fix-uaf-in-iscsi_conn_get_param-iscsi_.patch ip6_vti-initialize-__ip6_tnl_parm-struct-in-vti6_sio.patch net-udp-fix-alignment-problem-in-udp4_seq_show.patch misdn-change-function-names-to-avoid-conflicts.patch +power-reset-ltc2952-fix-use-of-floating-point-literals.patch