Date: Wed, 7 Feb 2018 11:29:53 -0700 From: John Nielsen <lists@jnielsen.net> To: Maurizio Vairani <maurizio1018@gmail.com> Cc: freebsd-current <freebsd-current@freebsd.org>, Daisuke Aoyama <aoyama@peach.ne.jp>, Ian Lepore <ian@freebsd.org> Subject: Re: Fatal trap 12 booting FreeBSD-CURRENT via isboot kernel module. Message-ID: <7D39479C-85AB-45B2-BF39-0566AC073C5A@jnielsen.net> In-Reply-To: <CAN0zgYXw%2BWvGJKFRV0VjSCZdFKDCuWAoUcBQ8dPXA4qtvkCtWg@mail.gmail.com> References: <CAN0zgYXfKjKo3CjjfbEX7oSrd2NXqU6kmSXy__OVPr0y3R2Log@mail.gmail.com> <3E242843-7D43-4A36-A448-E4B0DACB2AB4@jnielsen.net> <CAN0zgYWY0QqjHNfnVmOv%2B06H8qAvjKu0N7qvSMgcUo7vi6Bt-A@mail.gmail.com> <DC546197-0C18-4C2A-8E5D-AF6846AA94F3@jnielsen.net> <5EDB0747-41DE-4ECF-925E-EF24FAA550F3@jnielsen.net> <1517943001.1366.100.camel@freebsd.org> <1C97132B-099B-4BAA-9C39-A1BE00481CAC@jnielsen.net> <CAN0zgYXw%2BWvGJKFRV0VjSCZdFKDCuWAoUcBQ8dPXA4qtvkCtWg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--Apple-Mail=_4C5D394E-499F-4656-9C33-02147582A1EE Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii > On Feb 7, 2018, at 6:07 AM, Maurizio Vairani <maurizio1018@gmail.com> = wrote: >=20 > 2018-02-06 23:02 GMT+01:00 John Nielsen <lists@jnielsen.net>: > > On Feb 6, 2018, at 11:50 AM, Ian Lepore <ian@FreeBSD.org> wrote: > > > > On Tue, 2018-02-06 at 11:33 -0700, John Nielsen wrote: > >> > >> Apparently sending a NULL socket pointer to ifioctl hasn't worked > >> since this commit in 2011: > >> https://svnweb.freebsd.org/base?view=3Drevision&revision=3D218757 > >> > >> So I'm going to add this patch to the port unconditionally once it > >> works. > >> > >> Unfortunately, I can't compile the port with either my patch below = or > >> your original replacement version of isboot_ifup(). :( Did you make > >> other changes? Here's the error I'm getting: > >> > >> --- isboot.o --- > >> isboot.c:425:53: error: incomplete definition of type 'struct = thread' > >> error =3D socreate(AF_INET, &so, SOCK_DGRAM, 0, td->td_ucred, = td); > >> ~~^ > >> /usr/src/sys/sys/systm.h:185:8: note: forward declaration of = 'struct > >> thread' > >> struct thread; > >> ^ > >> 1 error generated. > >> > > > > Try adding #include <sys/proc.h> if it's not already in the list. = It > > may be that that file got included via pollution from some other = header > > file in the past and maybe now that has changed. > > > > If you're already including sys/proc.h then I'm clueless. >=20 > Thanks Ian, that appears to work. >=20 > Maurizio, can you apply the attached patch to a clean ports tree and = see if isboot-kmod will build and function properly for you? This is all = the changes from this thread and the previous one. If you let me know it = works I'll get the port updated. >=20 >=20 > Hi John, I need some help. >=20 > I am running: > # uname -a =20 > FreeBSD 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r328383: Thu Jan 25 = 04:48:52 UTC 2018 = root@releng3.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC = amd64 >=20 > after upgrading the ports tree with: > # portsnap fetch update >=20 > I have copied the directory /usr/ports/net/isboot-kmod/ in = /root/src/isboot-kmod and /root/src/isboot-kmod.orig > # ls -l /root/src > total 6 > drwxr-xr-x 3 root wheel 6 Feb 7 13:46 isboot-kmod > drwxr-xr-x 3 root wheel 6 Feb 7 13:46 isboot-kmod.orig > -rw-rw-rw- 1 root wheel 5630 Feb 7 11:38 isboot_patch.txt >=20 > Trying to apply the patch I obtain the error: > # cd /root/src > # patch -sC < isboot_patch.txt > 2 out of 2 hunks failed while patching isboot-kmod/Makefile > 5 out of 5 hunks failed while patching = isboot-kmod/files/patch-isboot.c=20 >=20 > What I am missing ? > Thanks again for your work. Not sure but I ran in to similar issues testing here as well. Here's the = "svn diff" patch which does work for me. Note that this one should be = applied from within the isboot-kmod directory. --Apple-Mail=_4C5D394E-499F-4656-9C33-02147582A1EE Content-Disposition: attachment; filename=isboot-kmod-0.2.13_2.diff.txt Content-Type: text/plain; x-unix-mode=0644; name="isboot-kmod-0.2.13_2.diff.txt" Content-Transfer-Encoding: quoted-printable Index: Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- Makefile (revision 461112) +++ Makefile (working copy) @@ -2,7 +2,7 @@ =20 PORTNAME=3D isboot-kmod PORTVERSION=3D 0.2.13 -PORTREVISION=3D 1 +PORTREVISION=3D 2 CATEGORIES=3D net MASTER_SITES=3D http://www.peach.ne.jp/archives/isboot/ DISTNAME=3D isboot-${PORTVERSION} @@ -12,9 +12,7 @@ =20 LICENSE=3D BSD2CLAUSE =20 -BROKEN_aarch64=3D fails to compile: = /usr/src/sys/sys/bus.h:724:10: fatal error: 'device_if.h' file not found BROKEN_armv6=3D fails to compile: implicit declaration = of function 'cp15_pmccntr_get' is invalid in C99 -BROKEN_armv7=3D fails to compile: = /usr/src/sys/sys/bus.h:724:10: fatal error: 'device_if.h' file not found BROKEN_powerpc64=3D fails to compile: pcpu.h: size of array = '__assert_0' is negative =20 USES=3D kmod uidfix Index: files/patch-Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- files/patch-Makefile (nonexistent) +++ files/patch-Makefile (working copy) @@ -0,0 +1,10 @@ +--- Makefile.orig 2015-09-23 22:33:04.000000000 -0600 ++++ Makefile 2018-01-29 10:20:10.453188000 -0700 +@@ -6,6 +6,7 @@ + SRCS=3D isboot.c ibft.c iscsi.c + SRCS+=3D isboot.h ibft.h iscsi_compat.h + SRCS+=3D opt_cam.h ++SRCS+=3D device_if.h bus_if.h + #CFLAGS+=3D -DVIMAGE + #CFLAGS+=3D -DIBFT_VERBOSE + #CFLAGS+=3D -DDEBUG Property changes on: files/patch-Makefile ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: files/patch-isboot.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- files/patch-isboot.c (revision 461112) +++ files/patch-isboot.c (working copy) @@ -1,6 +1,14 @@ ---- isboot.c.orig 2015-11-05 16:50:51 UTC -+++ isboot.c -@@ -347,9 +347,9 @@ isboot_set_v4gw(struct sockaddr_in *gate +--- isboot.c.orig 2015-11-05 09:50:51.000000000 -0700 ++++ isboot.c 2018-02-06 14:23:24.479249000 -0700 +@@ -38,6 +38,7 @@ + #include <sys/socketvar.h> + #include <sys/sockio.h> + #include <sys/sysctl.h> ++#include <sys/proc.h> + #include <net/if.h> + #include <net/if_dl.h> + #include <net/if_types.h> +@@ -347,9 +348,9 @@ netmask.sin_addr.s_addr =3D htonl(0); =20 /* delete gateway if exists */ @@ -12,7 +20,7 @@ if (error) { if (error !=3D ESRCH) { printf("rtrequest RTM_DELETE error %d\n", -@@ -359,9 +359,9 @@ isboot_set_v4gw(struct sockaddr_in *gate +@@ -359,9 +360,9 @@ } =20 /* set new default gateway */ @@ -24,7 +32,7 @@ if (error) { printf("rtrequest RTM_ADD error %d\n", error); return (error); -@@ -391,9 +391,9 @@ isboot_set_v6gw(struct sockaddr_in6 *gat +@@ -391,9 +392,9 @@ memset(&netmask.sin6_addr, 0, 16); =20 /* delete gateway if exists */ @@ -36,7 +44,7 @@ if (error) { if (error !=3D ESRCH) { printf("rtrequest RTM_DELETE error %d\n", -@@ -403,9 +403,9 @@ isboot_set_v6gw(struct sockaddr_in6 *gat +@@ -403,9 +404,9 @@ } =20 /* set new default gateway */ @@ -48,3 +56,42 @@ if (error) { printf("rtrequest RTM_ADD error %d\n", error); return (error); +@@ -417,28 +418,36 @@ + isboot_ifup(struct ifnet *ifp) + { + struct ifreq ifr; ++ struct socket *so; + struct thread *td; + int error; +=20 + memset(&ifr, 0, sizeof(ifr)); + td =3D curthread; +=20 ++ error =3D socreate(AF_INET, &so, SOCK_DGRAM, 0, td->td_ucred, = td); ++ if (error) { ++ printf("%s: socreate, error=3D%d\n", __func__, error); ++ return (error); ++ } ++ + /* boot NIC */ + strlcpy(ifr.ifr_name, ifp->if_xname, sizeof(ifr.ifr_name)); +=20 + /* set IFF_UP */ +- error =3D ifioctl(NULL, SIOCGIFFLAGS, (caddr_t)&ifr, td); ++ error =3D ifioctl(so, SIOCGIFFLAGS, (caddr_t)&ifr, td); + if (error) { + printf("ifioctl SIOCGIFFLAGS\n"); + return (error); + } + ifr.ifr_flags |=3D IFF_UP; +- error =3D ifioctl(NULL, SIOCSIFFLAGS, (caddr_t)&ifr, td); ++ error =3D ifioctl(so, SIOCSIFFLAGS, (caddr_t)&ifr, td); + if (error) { + printf("ifioctl SIOCSIFFLAGS\n"); + return (error); + } +=20 ++ soclose(so); + return (0); + } +=20 Index: files/patch-iscsi.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- files/patch-iscsi.c (nonexistent) +++ files/patch-iscsi.c (working copy) @@ -0,0 +1,27 @@ +--- iscsi.c.orig 2015-11-05 09:50:51.000000000 -0700 ++++ iscsi.c 2018-01-29 10:20:00.586277000 -0700 +@@ -1070,9 +1070,11 @@ + return (n); + } +=20 +- +-#if __FreeBSD_version >=3D 1100000 ++#if __FreeBSD_version >=3D 1200051 + static void ++isboot_free_mbufext(struct mbuf *m) ++#elif __FreeBSD_version >=3D 1100000 ++static void + isboot_free_mbufext(struct mbuf *m, void *p, void *optarg) + #elif __FreeBSD_version >=3D 1000050 && __FreeBSD_version < 1100000 + static int +@@ -1082,7 +1084,9 @@ + isboot_free_mbufext(void *p, void *optarg) + #endif + { +- ++#if __FreeBSD_version >=3D 1200051 ++ void *p =3D m->m_ext.ext_arg1; ++#endif + ISBOOT_TRACE("isboot_free_mbufext\n"); + if (p =3D=3D NULL) + #if __FreeBSD_version >=3D 1000050 && __FreeBSD_version < 1100000 Property changes on: files/patch-iscsi.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property --Apple-Mail=_4C5D394E-499F-4656-9C33-02147582A1EE--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7D39479C-85AB-45B2-BF39-0566AC073C5A>