Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Crash during rc bootup (amd64) with new networking stuff



On Fri, Apr 15, 2016 at 3:10 PM, Geoff Wing <gcw%pobox.com@localhost> wrote:
> On Friday 2016-04-15 13:20 +1000, Geoff Wing output:
> :panic: kernel .... "(la->la_flags & LLE_STATIC) == 0 failed: .. if_arp", line 1220
> :It also deletes and adds in a static arp address:
> :       "arp -d 1.2.3.4; arp -s 1.2.3.4 xx:xx:xx:xx:xx:xx"
>
> Taking out the static arp commands and it boots up OK.

Thanks. I could reproduce the panic on my machine with the latest kernel.

A quick fix is like this:

--- a/sys/netinet/if_arp.c
+++ b/sys/netinet/if_arp.c
@@ -1223,10 +1223,11 @@ in_arpinput(struct mbuf *m)
        KASSERT(sizeof(la->ll_addr) >= ifp->if_addrlen);
        (void)memcpy(&la->ll_addr, ar_sha(ah), ifp->if_addrlen);
        la->la_flags |= LLE_VALID;
-       la->la_expire = time_uptime + arpt_keep;
+       if ((la->la_flags & LLE_STATIC) == 0) {
+               la->la_expire = time_uptime + arpt_keep;
+               arp_settimer(la, arpt_keep);
+       }
        la->la_asked = 0;
-       KASSERT((la->la_flags & LLE_STATIC) == 0);
-       arp_settimer(la, arpt_keep);
        /* rt->rt_flags &= ~RTF_REJECT; */

Does this patch help you?

If so, I'll commit it (with tweaks maybe) after more validations.

Thanks,
  ozaki-r


Home | Main Index | Thread Index | Old Index