From: Leon Romanovsky <leon@kernel.org>
To: Doug Ledford <dledford@redhat.com>, Jason Gunthorpe <jgg@mellanox.com>
Cc: Leon Romanovsky <leonro@mellanox.com>,
RDMA mailing list <linux-rdma@vger.kernel.org>,
Alex Vainman <alexv@mellanox.com>,
Artemy Kovalyov <artemyko@mellanox.com>,
Daniel Jurgens <danielj@mellanox.com>,
Eli Cohen <eli@mellanox.com>, Haggai Eran <haggaie@mellanox.com>,
Mark Zhang <markz@mellanox.com>, Moni Shoua <monis@mellanox.com>,
Parav Pandit <parav@mellanox.com>,
Sagi Grimberg <sagig@mellanox.com>,
Yishai Hadas <yishaih@mellanox.com>
Subject: [PATCH rdma-rc 09/10] IB/core: Fix querying total rdma stats
Date: Tue, 23 Jul 2019 09:57:32 +0300 [thread overview]
Message-ID: <20190723065733.4899-10-leon@kernel.org> (raw)
In-Reply-To: <20190723065733.4899-1-leon@kernel.org>
From: Parav Pandit <parav@mellanox.com>
rdma_counter_init() may fail for a device. In such case while calculating
total sum, ignore NULL hstats.
This fixes below observed call trace.
BUG: kernel NULL pointer dereference, address: 00000000000000a0
PGD 8000001009b30067 P4D 8000001009b30067 PUD 10549c9067 PMD 0
Oops: 0000 [#1] SMP PTI
CPU: 55 PID: 20887 Comm: cat Kdump: loaded Not tainted 5.2.0-rc6-jdc+ #13
RIP: 0010:rdma_counter_get_hwstat_value+0xf2/0x150 [ib_core]
Call Trace:
show_hw_stats+0x5e/0x130 [ib_core]
dev_attr_show+0x15/0x50
sysfs_kf_seq_show+0xc6/0x1a0
seq_read+0x132/0x370
vfs_read+0x89/0x140
ksys_read+0x5c/0xd0
do_syscall_64+0x5a/0x240
entry_SYSCALL_64_after_hwframe+0x49/0xbe
Fixes: f34a55e497e81 ("RDMA/core: Get sum value of all counters when perform a sysfs stat read")
Signed-off-by: Parav Pandit <parav@mellanox.com>
Reviewed-by: Mark Zhang <markz@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
---
drivers/infiniband/core/counters.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/infiniband/core/counters.c b/drivers/infiniband/core/counters.c
index 01faef7bc061..c7d445635476 100644
--- a/drivers/infiniband/core/counters.c
+++ b/drivers/infiniband/core/counters.c
@@ -393,6 +393,9 @@ u64 rdma_counter_get_hwstat_value(struct ib_device *dev, u8 port, u32 index)
u64 sum;
port_counter = &dev->port_data[port].port_counter;
+ if (!port_counter->hstats)
+ return 0;
+
sum = get_running_counters_hwstat_sum(dev, port, index);
sum += port_counter->hstats->value[index];
--
2.20.1
next prev parent reply other threads:[~2019-07-23 6:58 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-23 6:57 [PATCH rdma-rc 00/10] Collection of fixes for 5.3 Leon Romanovsky
2019-07-23 6:57 ` [PATCH rdma-rc 01/10] RDMA/core: Annotate destroy of mutex to ensure that it is released as unlocked Leon Romanovsky
2019-07-23 6:57 ` [PATCH rdma-rc 02/10] IB/mlx5: Fix unreg_umr to ignore the mkey state Leon Romanovsky
2019-07-23 6:57 ` [PATCH rdma-rc 03/10] IB/mlx5: Use direct mkey destroy command upon UMR unreg failure Leon Romanovsky
2019-07-23 6:57 ` [PATCH rdma-rc 04/10] IB/mlx5: Fix unreg_umr to set a device PD Leon Romanovsky
2019-07-23 6:57 ` [PATCH rdma-rc 05/10] IB/mlx5: Fix clean_mr() to work in the expected order Leon Romanovsky
2019-07-23 6:57 ` [PATCH rdma-rc 06/10] IB/mlx5: Fix RSS Toeplitz function to be specification aligned Leon Romanovsky
2019-07-23 6:57 ` [PATCH rdma-rc 07/10] IB/mlx5: Prevent concurrent MR updates during invalidation Leon Romanovsky
2019-07-23 6:57 ` [PATCH rdma-rc 08/10] IB/mlx5: Avoid unnecessary typecast Leon Romanovsky
2019-07-23 6:57 ` Leon Romanovsky [this message]
2019-07-23 6:57 ` [PATCH rdma-rc 10/10] IB/counters: Initialize port counter and annotate mutex_destroy Leon Romanovsky
2019-07-25 14:32 ` Jason Gunthorpe
2019-07-25 15:13 ` [PATCH rdma-rc 00/10] Collection of fixes for 5.3 Jason Gunthorpe
2019-07-25 16:05 ` Parav Pandit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190723065733.4899-10-leon@kernel.org \
--to=leon@kernel.org \
--cc=alexv@mellanox.com \
--cc=artemyko@mellanox.com \
--cc=danielj@mellanox.com \
--cc=dledford@redhat.com \
--cc=eli@mellanox.com \
--cc=haggaie@mellanox.com \
--cc=jgg@mellanox.com \
--cc=leonro@mellanox.com \
--cc=linux-rdma@vger.kernel.org \
--cc=markz@mellanox.com \
--cc=monis@mellanox.com \
--cc=parav@mellanox.com \
--cc=sagig@mellanox.com \
--cc=yishaih@mellanox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.