> 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]