Panic with recent -CURRENT

Xin Li delphij at delphij.net
Mon Aug 17 23:10:32 UTC 2015


Hi, Alexander,

I'm seeing the following backtrace with kernel trap 12 at fault address
of 0xf4, and the backtrace is:

arpintr() at arpintr+0x85e
netisr_dispatch_src() at netisr_dispatch_src+0x61

I have then read the if_ether.c as of r286525.

In line 611, la is initialized as NULL;

In line 751, the test ifp->if_addrlen != ah->ar_hln takes the true path,
then we would reach line 752:

	LLE_WUNLOCK(la);

And that would cause the panic.

Take a more closer look, it seems that we can't reach 'match:' with a
known llentry and can assert la == NULL in line 752.  The unlock seems
to be unneeded there and should be removed.

Do the following patch look sane to you?

Index: sys/netinet/if_ether.c
===================================================================
--- sys/netinet/if_ether.c	(revision 286847)
+++ sys/netinet/if_ether.c	(working copy)
@@ -749,7 +749,6 @@ match:
 	}

 	if (ifp->if_addrlen != ah->ar_hln) {
-		LLE_WUNLOCK(la);
 		ARP_LOG(LOG_WARNING, "from %*D: addr len: new %d, "
 		    "i/f %d (ignored)\n", ifp->if_addrlen,
 		    (u_char *) ar_sha(ah), ":", ah->ar_hln,


Cheers,
-- 
Xin LI <delphij at delphij.net>    https://www.delphij.net/
FreeBSD - The Power to Serve!           Live free or die

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20150817/d7776dd2/attachment.bin>


More information about the freebsd-net mailing list