[openib-general] [PATCH] sdp: fix oops in sdp_link.c

Michael S. Tsirkin mst at mellanox.co.il
Mon Aug 22 08:47:33 PDT 2005


Hi!
I was getting the following oopsen in sdp_link.c
I plan to commit the fix (below) tomorrow, after some more testing.
Comments?


Unable to handle kernel NULL pointer dereference at 0000000000000090 RIP:
<ffffffff80379274>{arp_send+4}
PGD 17c8f4067 PUD 17cfa3067 PMD 0
Oops: 0000 [1] SMP
CPU 0
Modules linked in: ib_sdp ib_cm ib_ipoib ib_sa ib_umad ib_mthca ib_mad ib_core
Pid: 2715, comm: sdp_wq/0 Not tainted 2.6.12.2
RIP: 0010:[<ffffffff80379274>] <ffffffff80379274>{arp_send+4}
RSP: 0018:ffff8101775e9d48  EFLAGS: 00010296
RAX: 00000000000000d0 RBX: ffff8101787dee80 RCX: 0000000000000000
RDX: 000000009b08040b RSI: 0000000000000806 RDI: 0000000000000001
RBP: ffff8101787dee00 R08: 000000009c08040b R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000292 R15: ffffffff8805bd77
FS:  0000000000000000(0000) GS:ffffffff80579f00(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000090 CR3: 000000017d45b000 CR4: 00000000000006e0
Process sdp_wq/0 (pid: 2715, threadinfo ffff8101775e8000, task ffff8101760482f0)
Stack: 0000000200000018 0000000000000000 ffff8101760482f0 ffffffff8805c102
       00000000000000d0 0000000000000000 00000234b5c208f9 ffffffff803bfeb2
       ffff8101775e9e58 ffffffff803bff0b
Call Trace:<ffffffff8805c102>{:ib_sdp:do_link_path_lookup+907}
       <ffffffff803bfeb2>{thread_return+0} <ffffffff803bff0b>{thread_return+89}
       <ffffffff801412df>{worker_thread+476} <ffffffff8012d7c5>{default_wake_function+0}
       <ffffffff8012d7c5>{default_wake_function+0} <ffffffff80145292>{keventd_create_kthread+0}
       <ffffffff80141103>{worker_thread+0} <ffffffff80145292>{keventd_create_kthread+0}
       <ffffffff801453c3>{kthread+204} <ffffffff8010e14f>{child_rip+8}
       <ffffffff80145292>{keventd_create_kthread+0} <ffffffff801452f7>{kthread+0}
       <ffffffff8010e147>{child_rip+0}

Code: 80 b9 90 00 00 00 00 4c 8b 54 24 20 48 8b 44 24 28 3e 78 1f
RIP <ffffffff80379274>{arp_send+4} RSP <ffff8101775e9d48>
CR2: 0000000000000090
 <6>ib_sdp CRTL: <13> <2100> RELEASE: linger <0:0> data <0:0>
nfs warning: mount version older than kernel


---

Signed-off-by: Michael S. Tsirkin <mst at mellanox.co.il>

If info->ca is present, go to path query, dont arp:
we dont have the net device, anyway.

Index: linux-2.6.12.2/drivers/infiniband/ulp/sdp/sdp_link.c
===================================================================
--- linux-2.6.12.2.orig/drivers/infiniband/ulp/sdp/sdp_link.c	2005-08-22 18:23:27.000000000 +0300
+++ linux-2.6.12.2/drivers/infiniband/ulp/sdp/sdp_link.c	2005-08-22 18:23:24.000000000 +0300
@@ -354,10 +354,10 @@ static void do_link_path_lookup(void *da
 	if (info->query)
 		goto done;
 	/*
-	 * route information present, but no path query, goto re-arp.
+	 * route information present, but no path query.
 	 */
 	if (info->ca)
-		goto arp;
+		goto path;
 
 	result = ip_route_output_key(&rt, &fl);
 	if (result < 0 || !rt) {
-- 
MST



More information about the general mailing list