---- src/at_main.c.orig 2007-04-21 11:19:25.000000000 +0200
-+++ src/at_main.c 2007-08-24 09:33:55.122013719 +0200
-@@ -1479,7 +1479,7 @@
- static void\r
- at_vlan_rx_kill_vid(struct net_device *netdev, u16 vid)\r
- {\r
-- struct at_adapter *adapter = netdev_priv(netdev);\r
-+/* struct at_adapter *adapter = netdev_priv(netdev);\r
- \r
+ }\r
+diff -upr atl2-1.4.0.20./src/at_main.c atl2-1.4.0.20/src/at_main.c
+--- atl2-1.4.0.20./src/at_main.c 2007-04-21 11:19:25.000000000 +0200
++++ atl2-1.4.0.20/src/at_main.c 2007-08-24 22:49:28.682998750 +0200
+@@ -1484,9 +1484,12 @@ at_vlan_rx_kill_vid(struct net_device *n
// DEBUGFUNC("at_vlan_rx_kill_vid !");\r
at_irq_disable(adapter);\r
-@@ -1499,7 +1500,7 @@
- at_restore_vlan(struct at_adapter *adapter)\r
- {\r
- // DEBUGFUNC("at_restore_vlan !");\r
-- at_vlan_rx_register(adapter->netdev, adapter->vlgrp);\r
-+/* at_vlan_rx_register(adapter->netdev, adapter->vlgrp);\r
\r
+- if (adapter->vlgrp) {\r
+- adapter->vlgrp->vlan_devices[vid] = NULL;\r
+- }\r
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21) \r
++ if (adapter->vlgrp)\r
++ adapter->vlgrp->vlan_devices[vid] = NULL;\r
++#else\r
++ vlan_group_set_device(adapter->vlgrp, vid, NULL);\r
++#endif\r
+ \r
+ at_irq_enable(adapter);\r
+ \r
+@@ -1504,8 +1507,12 @@ at_restore_vlan(struct at_adapter *adapt
if(adapter->vlgrp) {\r
u16 vid;\r
-@@ -1509,6 +1510,7 @@
+ for(vid = 0; vid < VLAN_GROUP_ARRAY_LEN; vid++) {\r
+- if(!adapter->vlgrp->vlan_devices[vid])\r
+- continue;\r
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21) \r
++ if(!adapter->vlgrp->vlan_devices[vid])\r
++#else\r
++ if(!adapter->vlgrp->vlan_devices_arrays[vid])\r
++#endif\r
++ continue;\r
at_vlan_rx_add_vid(adapter->netdev, vid);\r
}\r
}\r
-+*/
- }\r
- #endif\r
- \r