diff -ruN linux-2.4.21/net/8021q/vlan.c linux-2.4.21.fixed/net/8021q/vlan.c --- linux-2.4.21/net/8021q/vlan.c Fri Jun 13 17:51:39 2003 +++ linux-2.4.21.fixed/net/8021q/vlan.c Tue Aug 19 17:38:22 2003 @@ -533,7 +533,9 @@ grp->vlan_devices[VLAN_ID] = new_dev; - vlan_proc_add_dev(new_dev); /* create it's proc entry */ + if (vlan_proc_add_dev(new_dev)<0)/* create it's proc entry */ + printk(KERN_WARNING "VLAN: failed to add proc entry for %s\n", + new_dev->name); if (real_dev->features & NETIF_F_HW_VLAN_FILTER) real_dev->vlan_rx_add_vid(real_dev, VLAN_ID); diff -ruN linux-2.4.21/net/8021q/vlanproc.c linux-2.4.21.fixed/net/8021q/vlanproc.c --- linux-2.4.21/net/8021q/vlanproc.c Fri Jun 13 17:51:39 2003 +++ linux-2.4.21.fixed/net/8021q/vlanproc.c Tue Aug 19 17:38:22 2003 @@ -204,8 +204,10 @@ #endif /** NOTE: This will consume the memory pointed to by dent, it seems. */ - remove_proc_entry(VLAN_DEV_INFO(vlandev)->dent->name, proc_vlan_dir); - VLAN_DEV_INFO(vlandev)->dent = NULL; + if (VLAN_DEV_INFO(vlandev)->dent) { + remove_proc_entry(VLAN_DEV_INFO(vlandev)->dent->name, proc_vlan_dir); + VLAN_DEV_INFO(vlandev)->dent = NULL; + } return 0; }