fix
This commit is contained in:
1137
..module-common.o.cmd
Normal file
1137
..module-common.o.cmd
Normal file
File diff suppressed because it is too large
Load Diff
1
.Module.symvers.cmd
Normal file
1
.Module.symvers.cmd
Normal file
@@ -0,0 +1 @@
|
||||
savedcmd_Module.symvers := /usr/lib/modules/7.1.3-arch1-1/build/scripts/mod/modpost -M -a -N -o Module.symvers -n -T modules.order -i /usr/lib/modules/7.1.3-arch1-1/build/Module.symvers -e
|
||||
1
.etherip6.ko.cmd
Normal file
1
.etherip6.ko.cmd
Normal file
@@ -0,0 +1 @@
|
||||
savedcmd_etherip6.ko := ld -r -m elf_x86_64 -z noexecstack --no-warn-rwx-segments --build-id=sha1 -T /usr/lib/modules/7.1.3-arch1-1/build/scripts/module.lds -o etherip6.ko etherip6.o etherip6.mod.o .module-common.o
|
||||
1
.etherip6.mod.cmd
Normal file
1
.etherip6.mod.cmd
Normal file
@@ -0,0 +1 @@
|
||||
savedcmd_etherip6.mod := printf '%s\n' etherip6.o | awk '!x[$$0]++ { print("./"$$0) }' > etherip6.mod
|
||||
1108
.etherip6.mod.o.cmd
Normal file
1108
.etherip6.mod.o.cmd
Normal file
File diff suppressed because it is too large
Load Diff
1712
.etherip6.o.cmd
Normal file
1712
.etherip6.o.cmd
Normal file
File diff suppressed because it is too large
Load Diff
BIN
.module-common.o
Normal file
BIN
.module-common.o
Normal file
Binary file not shown.
1
.modules.order.cmd
Normal file
1
.modules.order.cmd
Normal file
@@ -0,0 +1 @@
|
||||
savedcmd_modules.order := { echo etherip6.o; :; } > modules.order
|
||||
0
Module.symvers
Normal file
0
Module.symvers
Normal file
15
etherip6.c
15
etherip6.c
@@ -15,6 +15,7 @@
|
||||
#include <linux/rculist.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/tcp.h>
|
||||
#include <net/ip.h>
|
||||
#include <net/ip6_route.h>
|
||||
#include <net/ipv6.h>
|
||||
@@ -157,8 +158,22 @@ static netdev_tx_t etherip6_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
int headroom;
|
||||
int err;
|
||||
struct sk_buff *segs, *next;
|
||||
unsigned int gso_limit;
|
||||
|
||||
if (skb_is_gso(skb)) {
|
||||
/*
|
||||
* GSO is performed before EtherIP/IPv6 encapsulation. Limit the
|
||||
* TCP payload according to the configured inner MTU; this preserves
|
||||
* both 1500-byte and jumbo-frame tunnel configurations.
|
||||
*/
|
||||
gso_limit = max_t(unsigned int, dev->mtu,
|
||||
ETH_HLEN + ETHERIP6_HLEN + sizeof(struct ipv6hdr) +
|
||||
sizeof(struct tcphdr)) - ETH_HLEN - ETHERIP6_HLEN -
|
||||
(skb->protocol == htons(ETH_P_IPV6) ?
|
||||
sizeof(struct ipv6hdr) : sizeof(struct iphdr)) -
|
||||
sizeof(struct tcphdr);
|
||||
if (skb_shinfo(skb)->gso_size > gso_limit)
|
||||
skb_shinfo(skb)->gso_size = gso_limit;
|
||||
segs = skb_gso_segment(skb, 0);
|
||||
if (IS_ERR(segs))
|
||||
goto tx_error;
|
||||
|
||||
BIN
etherip6.ko
Normal file
BIN
etherip6.ko
Normal file
Binary file not shown.
1
etherip6.mod
Normal file
1
etherip6.mod
Normal file
@@ -0,0 +1 @@
|
||||
./etherip6.o
|
||||
21
etherip6.mod.c
Normal file
21
etherip6.mod.c
Normal file
@@ -0,0 +1,21 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/export-internal.h>
|
||||
#include <linux/compiler.h>
|
||||
|
||||
MODULE_INFO(name, KBUILD_MODNAME);
|
||||
|
||||
__visible struct module __this_module
|
||||
__section(".gnu.linkonce.this_module") = {
|
||||
.name = KBUILD_MODNAME,
|
||||
.init = init_module,
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
.exit = cleanup_module,
|
||||
#endif
|
||||
.arch = MODULE_ARCH_INIT,
|
||||
};
|
||||
|
||||
|
||||
MODULE_INFO(depends, "");
|
||||
|
||||
|
||||
MODULE_INFO(srcversion, "4BA7F5574A683C00B097C2C");
|
||||
BIN
etherip6.mod.o
Normal file
BIN
etherip6.mod.o
Normal file
Binary file not shown.
BIN
etherip6.o
Normal file
BIN
etherip6.o
Normal file
Binary file not shown.
1
modules.order
Normal file
1
modules.order
Normal file
@@ -0,0 +1 @@
|
||||
etherip6.o
|
||||
Reference in New Issue
Block a user