]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 10 Jan 2022 07:04:25 +0000 (08:04 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 10 Jan 2022 07:04:25 +0000 (08:04 +0100)
added patches:
power-reset-ltc2952-fix-use-of-floating-point-literals.patch

queue-4.9/power-reset-ltc2952-fix-use-of-floating-point-literals.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/power-reset-ltc2952-fix-use-of-floating-point-literals.patch b/queue-4.9/power-reset-ltc2952-fix-use-of-floating-point-literals.patch
new file mode 100644 (file)
index 0000000..9832b96
--- /dev/null
@@ -0,0 +1,60 @@
+From 644106cdb89844be2496b21175b7c0c2e0fab381 Mon Sep 17 00:00:00 2001
+From: Nathan Chancellor <nathan@kernel.org>
+Date: Fri, 5 Nov 2021 08:20:50 -0700
+Subject: power: reset: ltc2952: Fix use of floating point literals
+
+From: Nathan Chancellor <nathan@kernel.org>
+
+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 <nathan@kernel.org>
+Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
+Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
+[nathan: Resolve conflict due to lack of 8b0e195314fab]
+Signed-off-by: Nathan Chancellor <nathan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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;
index 6f82017fa4d3fe61c5d39530c9e142036f7a04d4..1c604e84ee77eb6f74fbae95f7896b866ea4d48c 100644 (file)
@@ -18,3 +18,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