projects
/
platform
/
kernel
/
linux-exynos.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
a8e7a4e
)
RDS: IB: Fix null pointer issue
author
Guanglei Li
<guanglei.li@oracle.com>
Tue, 6 Feb 2018 02:43:21 +0000
(10:43 +0800)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Thu, 26 Apr 2018 09:02:17 +0000
(11:02 +0200)
[ Upstream commit
2c0aa08631b86a4678dbc93b9caa5248014b4458
]
Scenario:
1. Port down and do fail over
2. Ap do rds_bind syscall
PID: 47039 TASK:
ffff89887e2fe640
CPU: 47 COMMAND: "kworker/u:6"
#0 [
ffff898e35f159f0
] machine_kexec at
ffffffff8103abf9
#1 [
ffff898e35f15a60
] crash_kexec at
ffffffff810b96e3
#2 [
ffff898e35f15b30
] oops_end at
ffffffff8150f518
#3 [
ffff898e35f15b60
] no_context at
ffffffff8104854c
#4 [
ffff898e35f15ba0
] __bad_area_nosemaphore at
ffffffff81048675
#5 [
ffff898e35f15bf0
] bad_area_nosemaphore at
ffffffff810487d3
#6 [
ffff898e35f15c00
] do_page_fault at
ffffffff815120b8
#7 [
ffff898e35f15d10
] page_fault at
ffffffff8150ea95
[exception RIP: unknown or invalid address]
RIP:
0000000000000000
RSP:
ffff898e35f15dc8
RFLAGS:
00010282
RAX:
00000000fffffffe
RBX:
ffff889b77f6fc00
RCX:
ffffffff81c99d88
RDX:
0000000000000000
RSI:
ffff896019ee08e8
RDI:
ffff889b77f6fc00
RBP:
ffff898e35f15df0
R8:
ffff896019ee08c8
R9:
0000000000000000
R10:
0000000000000400
R11:
0000000000000000
R12:
ffff896019ee08c0
R13:
ffff889b77f6fe68
R14:
ffffffff81c99d80
R15:
ffffffffa022a1e0
ORIG_RAX:
ffffffffffffffff
CS: 0010 SS: 0018
#8 [
ffff898e35f15dc8
] cma_ndev_work_handler at
ffffffffa022a228
[rdma_cm]
#9 [
ffff898e35f15df8
] process_one_work at
ffffffff8108a7c6
#10 [
ffff898e35f15e58
] worker_thread at
ffffffff8108bda0
#11 [
ffff898e35f15ee8
] kthread at
ffffffff81090fe6
PID: 45659 TASK:
ffff880d313d2500
CPU: 31 COMMAND: "oracle_45659_ap"
#0 [
ffff881024ccfc98
] __schedule at
ffffffff8150bac4
#1 [
ffff881024ccfd40
] schedule at
ffffffff8150c2cf
#2 [
ffff881024ccfd50
] __mutex_lock_slowpath at
ffffffff8150cee7
#3 [
ffff881024ccfdc0
] mutex_lock at
ffffffff8150cdeb
#4 [
ffff881024ccfde0
] rdma_destroy_id at
ffffffffa022a027
[rdma_cm]
#5 [
ffff881024ccfe10
] rds_ib_laddr_check at
ffffffffa0357857
[rds_rdma]
#6 [
ffff881024ccfe50
] rds_trans_get_preferred at
ffffffffa0324c2a
[rds]
#7 [
ffff881024ccfe80
] rds_bind at
ffffffffa031d690
[rds]
#8 [
ffff881024ccfeb0
] sys_bind at
ffffffff8142a670
PID: 45659 PID: 47039
rds_ib_laddr_check
/* create id_priv with a null event_handler */
rdma_create_id
rdma_bind_addr
cma_acquire_dev
/* add id_priv to cma_dev->id_list */
cma_attach_to_dev
cma_ndev_work_handler
/* event_hanlder is null */
id_priv->id.event_handler
Signed-off-by: Guanglei Li <guanglei.li@oracle.com>
Signed-off-by: Honglei Wang <honglei.wang@oracle.com>
Reviewed-by: Junxiao Bi <junxiao.bi@oracle.com>
Reviewed-by: Yanjun Zhu <yanjun.zhu@oracle.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Acked-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/rds/ib.c
patch
|
blob
|
history
diff --git
a/net/rds/ib.c
b/net/rds/ib.c
index
a0954ac
..
c21eb48
100644
(file)
--- a/
net/rds/ib.c
+++ b/
net/rds/ib.c
@@
-346,7
+346,8
@@
static int rds_ib_laddr_check(struct net *net, __be32 addr)
/* Create a CMA ID and try to bind it. This catches both
* IB and iWARP capable NICs.
*/
- cm_id = rdma_create_id(&init_net, NULL, NULL, RDMA_PS_TCP, IB_QPT_RC);
+ cm_id = rdma_create_id(&init_net, rds_rdma_cm_event_handler,
+ NULL, RDMA_PS_TCP, IB_QPT_RC);
if (IS_ERR(cm_id))
return PTR_ERR(cm_id);