summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJae Hyun Yoo <jae.hyun.yoo@intel.com>2021-02-04 01:33:12 +0300
committerYoo, Jae Hyun <jae.hyun.yoo@intel.com>2021-02-08 20:19:04 +0300
commit855dbb427a81d93a2025f603aa5f0f36944fa7aa (patch)
tree2f3d38a0cde98ba1552fe6e805bcdabdd8074085
parent706078bea2580f4af85d387de4d380d9c1432c57 (diff)
downloadlinux-855dbb427a81d93a2025f603aa5f0f36944fa7aa.tar.xz
fixup! hwmon: peci: add energy sensor to peci-cpupower
Fix a kernel crash issue caused by division by zero. Feb 03 21:57:25 intel-obmc kernel: Division by zero in kernel. Feb 03 21:57:25 intel-obmc kernel: CPU: 0 PID: 391 Comm: cpusensor Not tainted 5.8.17-629ba88-dirty-0815a94 #1 Feb 03 21:57:25 intel-obmc kernel: Hardware name: Generic DT based system Feb 03 21:57:25 intel-obmc kernel: Backtrace: Feb 03 21:57:25 intel-obmc kernel: [<80106fb8>] (dump_backtrace) from [<8010720c>] (show_stack+0x20/0x24) Feb 03 21:57:25 intel-obmc kernel: r7:00000000 r6:9e217e80 r5:9e217e20 r4:8090dd9c Feb 03 21:57:25 intel-obmc kernel: [<801071ec>] (show_stack) from [<807a3114>] (dump_stack+0x28/0x30) Feb 03 21:57:25 intel-obmc kernel: [<807a30ec>] (dump_stack) from [<8010739c>] (__div0+0x20/0x28) Feb 03 21:57:25 intel-obmc kernel: r5:9e217e20 r4:00000000 Feb 03 21:57:25 intel-obmc kernel: [<8010737c>] (__div0) from [<807a1d9c>] (Ldiv0+0x8/0x2c) Feb 03 21:57:25 intel-obmc kernel: [<805e6a0c>] (peci_cpupower_get_average_power) from [<805e6764>] (peci_cpupower_read+0xbc/0x104) Feb 03 21:57:25 intel-obmc kernel: r10:977fbf68 r9:9da0c720 r8:9d988c08 r7:977a0000 r6:00000001 r5:9e217e80 Feb 03 21:57:25 intel-obmc kernel: r4:977fbe30 Feb 03 21:57:25 intel-obmc kernel: [<805e66a8>] (peci_cpupower_read) from [<805e0e84>] (hwmon_attr_show+0x50/0xfc) Feb 03 21:57:25 intel-obmc kernel: r7:977a0000 r6:8085a708 r5:805e66a8 r4:9d9d7400 Feb 03 21:57:25 intel-obmc kernel: [<805e0e34>] (hwmon_attr_show) from [<80501224>] (dev_attr_show+0x28/0x58) Feb 03 21:57:25 intel-obmc kernel: r9:9da0c720 r8:9d988c08 r7:977a0000 r6:8085a708 r5:9d9d7400 r4:9d9539d8 Feb 03 21:57:25 intel-obmc kernel: [<805011fc>] (dev_attr_show) from [<802bfad4>] (sysfs_kf_seq_show+0x8c/0x104) Feb 03 21:57:25 intel-obmc kernel: r5:00001000 r4:9d9539d8 Feb 03 21:57:25 intel-obmc kernel: [<802bfa48>] (sysfs_kf_seq_show) from [<802be1ac>] (kernfs_seq_show+0x34/0x38) Feb 03 21:57:25 intel-obmc kernel: r9:00000001 r8:9d9539f0 r7:977fbf68 r6:00000000 r5:00000000 r4:9d9539d8 Feb 03 21:57:26 intel-obmc kernel: [<802be178>] (kernfs_seq_show) from [<8025ea38>] (seq_read+0xd0/0x5dc) Feb 03 21:57:26 intel-obmc kernel: [<8025e968>] (seq_read) from [<802bee9c>] (kernfs_fop_read+0x3c/0x1cc) Feb 03 21:57:26 intel-obmc kernel: r10:00000000 r9:977fbf68 r8:00000001 r7:977fbf68 r6:0245f868 r5:9da0c720 Feb 03 21:57:26 intel-obmc kernel: r4:802bee60 Feb 03 21:57:26 intel-obmc kernel: [<802bee60>] (kernfs_fop_read) from [<80234ccc>] (vfs_read+0xa4/0x158) Feb 03 21:57:26 intel-obmc kernel: r10:00000000 r9:977fbf68 r8:00000001 r7:0245f868 r6:9d929500 r5:00000000 Feb 03 21:57:26 intel-obmc kernel: r4:802bee60 Feb 03 21:57:26 intel-obmc kernel: [<80234c28>] (vfs_read) from [<80235224>] (ksys_read+0x70/0xf8) Feb 03 21:57:26 intel-obmc kernel: r9:977fa000 r8:80100224 r7:00000000 r6:00000000 r5:9d929500 r4:9d929500 Feb 03 21:57:26 intel-obmc kernel: [<802351b4>] (ksys_read) from [<802352c4>] (sys_read+0x18/0x1c) Feb 03 21:57:26 intel-obmc kernel: r7:00000003 r6:7e80c9f0 r5:76f9a840 r4:024584fc Feb 03 21:57:26 intel-obmc kernel: [<802352ac>] (sys_read) from [<80100040>] (ret_fast_syscall+0x0/0x54) Feb 03 21:57:26 intel-obmc kernel: Exception stack(0x977fbfa8 to 0x977fbff0) Feb 03 21:57:26 intel-obmc kernel: bfa0: 024584fc 76f9a840 00000017 0245f868 00000200 00000000 Feb 03 21:57:26 intel-obmc kernel: bfc0: 024584fc 76f9a840 7e80c9f0 00000003 0245f868 00000200 024371f0 7e80ca40 Reported-by: Johnathan Mantey <johnathanx.mantey@intel.com> Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com> Change-Id: I36a047ee8a941f3aba672536894d0df8a4e18c32
-rw-r--r--drivers/hwmon/peci-hwmon.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/hwmon/peci-hwmon.h b/drivers/hwmon/peci-hwmon.h
index 2a314d5d7cd4..010d000db31e 100644
--- a/drivers/hwmon/peci-hwmon.h
+++ b/drivers/hwmon/peci-hwmon.h
@@ -502,7 +502,7 @@ static inline int peci_pcs_calc_pwr_from_eng(struct device *dev,
* read was more than 60 minutes ago (jiffies did not wrap and power
* calculation does not overflow or underflow).
*/
- if (prev_energy->last_updated > 0 && elapsed < (HZ * 3600)) {
+ if (prev_energy->last_updated > 0 && elapsed < (HZ * 3600) && elapsed) {
u32 energy_consumed;
u64 energy_consumed_in_mJ;
u64 energy_by_jiffies;