13 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
15 #include <linux/module.h>
16 #include <linux/kernel.h>
21 #include <linux/netdevice.h>
35 spin_lock(&gre_proto_lock);
36 if (gre_proto[version])
40 spin_unlock(&gre_proto_lock);
44 spin_unlock(&gre_proto_lock);
55 spin_lock(&gre_proto_lock);
57 lockdep_is_held(&gre_proto_lock)) != proto)
60 spin_unlock(&gre_proto_lock);
65 spin_unlock(&gre_proto_lock);
77 if (!pskb_may_pull(skb, 12))
80 ver = skb->
data[1]&0x7f;
103 u8 ver = skb->
data[(iph->ihl<<2) + 1]&0x7f;
117 .err_handler = gre_err,
121 static int __init gre_init(
void)
123 pr_info(
"GRE over IPv4 demultiplexor driver\n");
126 pr_err(
"can't add protocol\n");
133 static void __exit gre_exit(
void)