Skip site navigation (1)Skip section navigation (2)
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>