]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv4/netfilter/ipt_TOS.c
Merge branch 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa
[linux-2.6-omap-h63xx.git] / net / ipv4 / netfilter / ipt_TOS.c
index 6b8b14ccc3d3ff9a0fa0610a0e08df6d274cf2ef..29b05a6bd108af7dd49433c6345f278b10c7f127 100644 (file)
@@ -13,7 +13,7 @@
 #include <linux/ip.h>
 #include <net/checksum.h>
 
-#include <linux/netfilter_ipv4/ip_tables.h>
+#include <linux/netfilter/x_tables.h>
 #include <linux/netfilter_ipv4/ipt_TOS.h>
 
 MODULE_LICENSE("GPL");
@@ -30,18 +30,17 @@ target(struct sk_buff **pskb,
 {
        const struct ipt_tos_target_info *tosinfo = targinfo;
        struct iphdr *iph = (*pskb)->nh.iph;
-       __be16 oldtos;
 
        if ((iph->tos & IPTOS_TOS_MASK) != tosinfo->tos) {
+               __u8 oldtos;
                if (!skb_make_writable(pskb, sizeof(struct iphdr)))
                        return NF_DROP;
                iph = (*pskb)->nh.iph;
                oldtos = iph->tos;
                iph->tos = (iph->tos & IPTOS_PREC_MASK) | tosinfo->tos;
-               iph->check = nf_csum_update(oldtos ^ htons(0xFFFF), iph->tos,
-                                           iph->check);
+               nf_csum_replace2(&iph->check, htons(oldtos), htons(iph->tos));
        }
-       return IPT_CONTINUE;
+       return XT_CONTINUE;
 }
 
 static int
@@ -64,8 +63,9 @@ checkentry(const char *tablename,
        return 1;
 }
 
-static struct ipt_target ipt_tos_reg = {
+static struct xt_target ipt_tos_reg = {
        .name           = "TOS",
+       .family         = AF_INET,
        .target         = target,
        .targetsize     = sizeof(struct ipt_tos_target_info),
        .table          = "mangle",
@@ -75,12 +75,12 @@ static struct ipt_target ipt_tos_reg = {
 
 static int __init ipt_tos_init(void)
 {
-       return ipt_register_target(&ipt_tos_reg);
+       return xt_register_target(&ipt_tos_reg);
 }
 
 static void __exit ipt_tos_fini(void)
 {
-       ipt_unregister_target(&ipt_tos_reg);
+       xt_unregister_target(&ipt_tos_reg);
 }
 
 module_init(ipt_tos_init);