]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/bridge/netfilter/ebt_vlan.c
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
[linux-2.6-omap-h63xx.git] / net / bridge / netfilter / ebt_vlan.c
index 7ee377622964d46e1bb57687c6af01587fe37fa3..ab60b0dade80439ea9a7c1ac3a261366ec5ee850 100644 (file)
@@ -31,15 +31,12 @@ static int debug;
 module_param(debug, int, 0);
 MODULE_PARM_DESC(debug, "debug=1 is turn on debug messages");
 MODULE_AUTHOR("Nick Fedchik <nick@fedchik.org.ua>");
-MODULE_DESCRIPTION("802.1Q match module (ebtables extension), v"
-                  MODULE_VERS);
+MODULE_DESCRIPTION("Ebtables: 802.1Q VLAN tag match");
 MODULE_LICENSE("GPL");
 
 
 #define DEBUG_MSG(args...) if (debug) printk (KERN_DEBUG "ebt_vlan: " args)
-#define INV_FLAG(_inv_flag_) (info->invflags & _inv_flag_) ? "!" : ""
 #define GET_BITMASK(_BIT_MASK_) info->bitmask & _BIT_MASK_
-#define SET_BITMASK(_BIT_MASK_) info->bitmask |= _BIT_MASK_
 #define EXIT_ON_MISMATCH(_MATCH_,_MASK_) {if (!((info->_MATCH_ == _MATCH_)^!!(info->invflags & _MASK_))) return EBT_NOMATCH;}
 
 static int
@@ -48,8 +45,9 @@ ebt_filter_vlan(const struct sk_buff *skb,
                const struct net_device *out,
                const void *data, unsigned int datalen)
 {
-       struct ebt_vlan_info *info = (struct ebt_vlan_info *) data;
-       struct vlan_hdr _frame, *fp;
+       const struct ebt_vlan_info *info = data;
+       const struct vlan_hdr *fp;
+       struct vlan_hdr _frame;
 
        unsigned short TCI;     /* Whole TCI, given from parsed frame */
        unsigned short id;      /* VLAN ID, given from frame TCI */
@@ -93,7 +91,7 @@ ebt_check_vlan(const char *tablename,
               unsigned int hooknr,
               const struct ebt_entry *e, void *data, unsigned int datalen)
 {
-       struct ebt_vlan_info *info = (struct ebt_vlan_info *) data;
+       struct ebt_vlan_info *info = data;
 
        /* Parameters buffer overflow check */
        if (datalen != EBT_ALIGN(sizeof(struct ebt_vlan_info))) {
@@ -128,9 +126,9 @@ ebt_check_vlan(const char *tablename,
 
        /* Reserved VLAN ID (VID) values
         * -----------------------------
-        * 0 - The null VLAN ID. 
+        * 0 - The null VLAN ID.
         * 1 - The default Port VID (PVID)
-        * 0x0FFF - Reserved for implementation use. 
+        * 0x0FFF - Reserved for implementation use.
         * if_vlan.h: VLAN_GROUP_ARRAY_LEN 4096. */
        if (GET_BITMASK(EBT_VLAN_ID)) {
                if (!!info->id) { /* if id!=0 => check vid range */
@@ -141,7 +139,7 @@ ebt_check_vlan(const char *tablename,
                                return -EINVAL;
                        }
                        /* Note: This is valid VLAN-tagged frame point.
-                        * Any value of user_priority are acceptable, 
+                        * Any value of user_priority are acceptable,
                         * but should be ignored according to 802.1Q Std.
                         * So we just drop the prio flag. */
                        info->bitmask &= ~EBT_VLAN_PRIO;
@@ -171,7 +169,7 @@ ebt_check_vlan(const char *tablename,
        return 0;
 }
 
-static struct ebt_match filter_vlan = {
+static struct ebt_match filter_vlan __read_mostly = {
        .name           = EBT_VLAN_MATCH,
        .match          = ebt_filter_vlan,
        .check          = ebt_check_vlan,