Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy...
[pandora-kernel.git] / net / bridge / netfilter / ebt_arpreply.c
index 0aa7b99..0c42795 100644 (file)
 #include <net/arp.h>
 #include <linux/module.h>
 
-static int ebt_target_reply(struct sk_buff **pskb, unsigned int hooknr,
+static int ebt_target_reply(struct sk_buff *skb, unsigned int hooknr,
    const struct net_device *in, const struct net_device *out,
    const void *data, unsigned int datalen)
 {
-       struct ebt_arpreply_info *info = (struct ebt_arpreply_info *)data;
-       __be32 _sip, *siptr, _dip, *diptr;
-       struct arphdr _ah, *ap;
-       unsigned char _sha[ETH_ALEN], *shp;
-       struct sk_buff *skb = *pskb;
+       struct ebt_arpreply_info *info = (void *)data;
+       const __be32 *siptr, *diptr;
+       __be32 _sip, _dip;
+       const struct arphdr *ap;
+       struct arphdr _ah;
+       const unsigned char *shp;
+       unsigned char _sha[ETH_ALEN];
 
        ap = skb_header_pointer(skb, 0, sizeof(_ah), &_ah);
        if (ap == NULL)
@@ -51,7 +53,7 @@ static int ebt_target_reply(struct sk_buff **pskb, unsigned int hooknr,
                return EBT_DROP;
 
        arp_send(ARPOP_REPLY, ETH_P_ARP, *siptr, (struct net_device *)in,
-                *diptr, shp, info->mac, shp);
+                *diptr, shp, info->mac, shp);
 
        return info->target;
 }
@@ -59,7 +61,7 @@ static int ebt_target_reply(struct sk_buff **pskb, unsigned int hooknr,
 static int ebt_target_reply_check(const char *tablename, unsigned int hookmask,
    const struct ebt_entry *e, void *data, unsigned int datalen)
 {
-       struct ebt_arpreply_info *info = (struct ebt_arpreply_info *)data;
+       const struct ebt_arpreply_info *info = data;
 
        if (datalen != EBT_ALIGN(sizeof(struct ebt_arpreply_info)))
                return -EINVAL;
@@ -74,8 +76,7 @@ static int ebt_target_reply_check(const char *tablename, unsigned int hookmask,
        return 0;
 }
 
-static struct ebt_target reply_target =
-{
+static struct ebt_target reply_target __read_mostly = {
        .name           = EBT_ARPREPLY_TARGET,
        .target         = ebt_target_reply,
        .check          = ebt_target_reply_check,
@@ -94,4 +95,5 @@ static void __exit ebt_arpreply_fini(void)
 
 module_init(ebt_arpreply_init);
 module_exit(ebt_arpreply_fini);
+MODULE_DESCRIPTION("Ebtables: ARP reply target");
 MODULE_LICENSE("GPL");