Hi again,
During my last testing I could further limit the time frame where the
change was introduced:
I got a "working" IP22 kernel for my CVS sandbox updated to "21 Jun 2014
05:38:28" and a "non-working" kernel when updating to "23 Jun 2014
18:54:33" (both pre 5.6).
BTW, the OpenBSD 6.0 release kernel is also "non-working".
"working" means: kernel successfully completes reverse ARP and boots to
multi-user.
"non-working" means: kernel panics with "panic: reverse arp not answered
by rarpd(8) or dhcpd(8)" though the RARP requests are actually answered.
Between the dates mentioned above the following files were changed:
```
# cvs update -d -R -C -D "23 Jun 2014 18:54:33" 2>&1 | grep -v '^cvs'
P arch/i386/conf/GENERIC
P dev/acpi/acpi.c
P dev/acpi/dsdt.c
P kern/kern_malloc.c
P kern/kern_sig.c
P msdosfs/msdosfs_vfsops.c
P net/if.c
P netinet/udp_usrreq.c
P uvm/uvm_km.c
```
I started with reverting the patch to `net/if.c` and the resulting
kernel is now "working".
The differences for this file between the mentioned dates are:
```
# cvs diff -N -c -D "21 Jun 2014 05:38:28" -D "23 Jun 2014 18:54:33"
net/if.c
Index: net/if.c
===================================================================
RCS file: /cvs/src/sys/net/if.c,v
retrieving revision 1.290
retrieving revision 1.291
diff -u -p -c -r1.290 -r1.291
cvs server: conflicting specifications of output style
*** net/if.c 7 Jun 2014 11:04:14 -0000 1.290
--- net/if.c 23 Jun 2014 18:51:15 -0000 1.291
***************
*** 1,4 ****
! /* $OpenBSD: if.c,v 1.290 2014/06/07 11:04:14 henning Exp $ */
/* $NetBSD: if.c,v 1.35 1996/05/07 05:26:04 thorpej Exp $ */
/*
--- 1,4 ----
! /* $OpenBSD: if.c,v 1.291 2014/06/23 18:51:15 henning Exp $ */
/* $NetBSD: if.c,v 1.35 1996/05/07 05:26:04 thorpej Exp $ */
/*
*************** if_attach(struct ifnet *ifp)
*** 422,427 ****
--- 422,430 ----
TAILQ_INSERT_BEFORE(before, ifp, if_list);
#else
TAILQ_INSERT_TAIL(&ifnet, ifp, if_list);
+ #endif
+ #ifdef INET6
+ ifp->if_xflags |= IFXF_NOINET6;
#endif
m_clinitifp(ifp);
```
Does anyone have an idea, why this (possibly in combination with other
code) would break reverse ARP on a SGI Indy w/R4400?
By removing the above three lines from `net/if.c` in my 5.6 CVS sandbox
updated to the date "Fri Dec 19 17:14:39 2014 UTC" (`net/if.c` =>
r1.309) I could get a post 5.6 IP22 kernel that successfully completes
reverse ARP. The next patch ([1]) to this file removes those three lines
anyhow but adds other code and the resulting kernel again stops working:
[1]:
http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/net/if.c.diff?r1=1.309&r2=1.310
```
[...]
Initial setup done, switching console.
[ using 327064 bytes of bsd ELF symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
Copyright (c) 1995-2015 OpenBSD. All rights reserved.
http://www.OpenBSD.org
OpenBSD 5.7-beta (GENERIC-IP22) #1: Sat Sep 3 16:50:38 MDT 2016
r...@octane2.domain.tld:/sd2a/5.6/src/sys/arch/sgi/compile/GENERIC-IP22
real mem = 201326592 (192MB)
rsvd mem = 802816 (1MB)
avail mem = 193757184 (184MB)
warning: no entropy supplied by boot loader
mainbus0 at root: Indy
cpu0 at mainbus0: MIPS R4400 CPU rev 3.0 150 MHz, R4010 FPC rev 0.0
cpu0: cache L1-I 16KB D 16KB direct, L2 1024KB direct
[...]
boot device: sq0
nfs_boot: using interface sq0, with revarp & bootparams
panic: reverse arp not answered by rarpd(8) or dhcpd(8)
Stopped at Debugger+0x4: jr ra
Debugger+0x8: nop
RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC!
DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!
ddb> show panic
reverse arp not answered by rarpd(8) or dhcpd(8)
ddb> trace
Debugger+0x4 (2a039afd05d0ead8,900000001fbd9880,900000001fbd9830,713)
ra 0xfff
fffff888b4750 sp 0xffffffff88007d60, sz 0
panic+0x100 (2a039afd05d0ead8,1,ffffffff88b6f4d8,ffffffff88bf9530) ra
0xffffff
ff889aa9a8 sp 0xffffffff88007d60, sz 112
nfs_boot_init+0x5f8
(2a039afd05d0ead8,1,ffffffff88b6f4d8,ffffffff88bf9530) ra 0
xffffffff889c1150 sp 0xffffffff88007dd0, sz 240
nfs_mountroot+0x68
(2a039afd05d0ead8,1,ffffffff88b6f4d8,ffffffff88bf9530) ra 0
xffffffff8887d5a0 sp 0xffffffff88007ec0, sz 208
main+0xd68 (2a039afd05d0ead8,1,ffffffff88b6f4d8,ffffffff88bf9530) ra
0xfffffff
f88800098 sp 0xffffffff88007f90, sz 48
kernel_text+0x98 (2a039afd05d0ead8,1,ffffffff88b6f4d8,ffffffff88bf9530)
ra 0x0
sp 0xffffffff88007fc0, sz 0
User-level: pid 0
ddb>
```
Bye
Frank
On 09/02/2016 03:03 PM, Frank Scheiner wrote:
Hi all,
Small update from my side: I'm currently trying to determine the exact
patch or patch set that is responsible for the described problem.
[...]