> I was having issues build embedded image and narrowed down issue to
> freesbie
> part of build preocess.

I think there was some activity on if_vlan.c, and pfSense's patches are
now removing the last usage of a variable. If you don't remove the
variable declaration too, you get a compiler warning (which in the kernel
is fatal)

Please find attached the corrected altq-vlan.diff file (replace the
existing one in /home/pfsense/tools/patches), as well as a patch for the
old one if you prefer.

Angelo Turetta
Modena - Italy
--- if_vlan.c.orig	Wed Oct 26 21:57:04 2005
+++ if_vlan.c	Wed Apr  5 13:16:09 2006
@@ -322,7 +322,6 @@
 	struct ifvlan *ifv;
 	struct ifnet *ifp;
 	struct ifnet *p;
-	u_char eaddr[6] = {0,0,0,0,0,0};
 
 	if ((p = vlan_clone_match_ethertag(ifc, name, &tag)) != NULL) {
 		ethertag = 1;
@@ -383,8 +382,9 @@
 	ifp->if_init = vlan_ifinit;
 	ifp->if_start = vlan_start;
 	ifp->if_ioctl = vlan_ioctl;
-	ifp->if_snd.ifq_maxlen = ifqmaxlen;
-	ether_ifattach(ifp, eaddr);
+        IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
+        ifp->if_snd.ifq_drv_maxlen = 0;
+        IFQ_SET_READY(&ifp->if_snd);
 	/* Now undo some of the damage... */
 	ifp->if_baudrate = 0;
 	ifp->if_type = IFT_L2VLAN;
@@ -428,11 +428,15 @@
 {
 	int unit;
 	struct ifvlan *ifv = ifp->if_softc;
+	int s;
 
 	unit = ifp->if_dunit;
 
 	VLAN_LOCK();
 	LIST_REMOVE(ifv, ifv_list);
+        s = splimp();
+        IFQ_PURGE(&ifp->if_snd);
+        splx(s);
 	vlan_unconfig(ifp);
 	VLAN_UNLOCK();
 
@@ -464,12 +468,24 @@
 	struct mbuf *m;
 	int error;
 
+       if (ALTQ_IS_ENABLED(&ifp->if_snd)) {
+               IFQ_LOCK(&ifp->if_snd);
+               IFQ_POLL_NOLOCK(&ifp->if_snd, m);
+               if (m == NULL ) {
+                       IFQ_UNLOCK(&ifp->if_snd);
+                       return;
+               }
+               IFQ_UNLOCK(&ifp->if_snd);
+       }
+
+
+
 	ifv = ifp->if_softc;
 	p = ifv->ifv_p;
 
 	ifp->if_drv_flags |= IFF_DRV_OACTIVE;
 	for (;;) {
-		IF_DEQUEUE(&ifp->if_snd, m);
+		IFQ_DEQUEUE(&ifp->if_snd, m);
 		if (m == 0)
 			break;
 		BPF_MTAP(ifp, m);
--- altq-vlan.diffold	Wed Apr  5 12:33:10 2006
+++ altq-vlan.diff	Wed Apr  5 13:19:02 2006
@@ -1,6 +1,14 @@
---- if_vlan.c	Wed Oct 26 19:57:04 2005
-+++ if_vlan.c.orig	Sun Apr  2 04:20:47 2006
-@@ -383,8 +383,9 @@
+--- if_vlan.c.orig	Wed Oct 26 21:57:04 2005
++++ if_vlan.c	Wed Apr  5 13:16:09 2006
+@@ -322,7 +322,6 @@
+ 	struct ifvlan *ifv;
+ 	struct ifnet *ifp;
+ 	struct ifnet *p;
+-	u_char eaddr[6] = {0,0,0,0,0,0};
+ 
+ 	if ((p = vlan_clone_match_ethertag(ifc, name, &tag)) != NULL) {
+ 		ethertag = 1;
+@@ -383,8 +382,9 @@
  	ifp->if_init = vlan_ifinit;
  	ifp->if_start = vlan_start;
  	ifp->if_ioctl = vlan_ioctl;
@@ -12,7 +20,7 @@
  	/* Now undo some of the damage... */
  	ifp->if_baudrate = 0;
  	ifp->if_type = IFT_L2VLAN;
-@@ -428,11 +429,15 @@
+@@ -428,11 +428,15 @@
  {
  	int unit;
  	struct ifvlan *ifv = ifp->if_softc;
@@ -28,7 +36,7 @@
  	vlan_unconfig(ifp);
  	VLAN_UNLOCK();
  
-@@ -464,12 +469,24 @@
+@@ -464,12 +468,24 @@
  	struct mbuf *m;
  	int error;
  
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to