forked from coolsnowwolf/lede
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[bot] AutoMerging: merge all upstream's changes:
* https://github.com/coolsnowwolf/lede: x86: fix build on kernel 5.10.211 (coolsnowwolf#11972) package: add ipip6 support (coolsnowwolf#11970)
- Loading branch information
Showing
3 changed files
with
184 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# | ||
# Copyright (C) 2013 OpenWrt.org | ||
# | ||
# This is free software, licensed under the GNU General Public License v2. | ||
# See /LICENSE for more information. | ||
# | ||
|
||
include $(TOPDIR)/rules.mk | ||
|
||
PKG_NAME:=ipip6 | ||
PKG_RELEASE:=1 | ||
|
||
include $(INCLUDE_DIR)/package.mk | ||
|
||
define Package/ipip6 | ||
SECTION:=net | ||
CATEGORY:=Network | ||
DEPENDS:=@IPV6 +kmod-ip6-tunnel +resolveip | ||
TITLE:=IPv4 over IPv6 (ipip6) configuration support | ||
MAINTAINER:=Missing <[email protected]> | ||
PKGARCH:=all | ||
endef | ||
|
||
define Package/ipip6/description | ||
Provides support for IPv4 over IPv6 (ipip6) in /etc/config/network. | ||
endef | ||
|
||
define Build/Compile | ||
endef | ||
|
||
define Build/Configure | ||
endef | ||
|
||
define Package/ipip6/install | ||
$(INSTALL_DIR) $(1)/lib/netifd/proto | ||
$(INSTALL_BIN) ./files/ipip6.sh $(1)/lib/netifd/proto/ipip6.sh | ||
endef | ||
|
||
$(eval $(call BuildPackage,ipip6)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
#!/bin/sh | ||
# ipip6.sh - ipip6 tunnel backend | ||
# Copyright (c) 2013 OpenWrt.org | ||
|
||
[ -n "$INCLUDE_ONLY" ] || { | ||
. /lib/functions.sh | ||
. /lib/functions/network.sh | ||
. ../netifd-proto.sh | ||
init_proto "$@" | ||
} | ||
|
||
proto_ipip6_setup() { | ||
local cfg="$1" | ||
local iface="$2" | ||
local link="ipip6-$cfg" | ||
local remoteip6 | ||
|
||
local mtu ttl peeraddr ip6addr tunlink zone weakif encaplimit ip4ifaddr | ||
json_get_vars mtu ttl peeraddr ip6addr tunlink zone weakif encaplimit ip4ifaddr | ||
|
||
[ -z "$peeraddr" ] && { | ||
proto_notify_error "$cfg" "MISSING_ADDRESS" | ||
proto_block_restart "$cfg" | ||
return | ||
} | ||
|
||
( proto_add_host_dependency "$cfg" "::" "$tunlink" ) | ||
|
||
remoteip6=$(resolveip -6 "$peeraddr") | ||
if [ -z "$remoteip6" ]; then | ||
sleep 3 | ||
remoteip6=$(resolveip -6 "$peeraddr") | ||
if [ -z "$remoteip6" ]; then | ||
proto_notify_error "$cfg" "AFTR_DNS_FAIL" | ||
return | ||
fi | ||
fi | ||
|
||
for ip6 in $remoteip6; do | ||
peeraddr=$ip6 | ||
break | ||
done | ||
|
||
[ -z "$ip6addr" ] && { | ||
local wanif="$tunlink" | ||
if [ -z "$wanif" ] && ! network_find_wan6 wanif; then | ||
proto_notify_error "$cfg" "NO_WAN_LINK" | ||
return | ||
fi | ||
|
||
if ! network_get_ipaddr6 ip6addr "$wanif"; then | ||
[ -z "$weakif" ] && weakif="lan" | ||
if ! network_get_ipaddr6 ip6addr "$weakif"; then | ||
proto_notify_error "$cfg" "NO_WAN_LINK" | ||
return | ||
fi | ||
fi | ||
} | ||
|
||
proto_init_update "$link" 1 | ||
proto_add_ipv4_route "0.0.0.0" 0 | ||
proto_add_ipv4_address "$ip4ifaddr" "" "" "0.0.0.0" | ||
|
||
proto_add_tunnel | ||
json_add_string mode ipip6 | ||
json_add_int mtu "${mtu:-1280}" | ||
json_add_int ttl "${ttl:-64}" | ||
json_add_string local "$ip6addr" | ||
json_add_string remote "$peeraddr" | ||
[ -n "$tunlink" ] && json_add_string link "$tunlink" | ||
json_add_object "data" | ||
[ -n "$encaplimit" ] && json_add_string encaplimit "$encaplimit" | ||
json_close_object | ||
proto_close_tunnel | ||
|
||
proto_add_data | ||
[ -n "$zone" ] && json_add_string zone "$zone" | ||
|
||
proto_close_data | ||
|
||
proto_send_update "$cfg" | ||
} | ||
|
||
proto_ipip6_teardown() { | ||
local cfg="$1" | ||
} | ||
|
||
proto_ipip6_init_config() { | ||
no_device=1 | ||
available=1 | ||
|
||
proto_config_add_string "ip6addr" | ||
proto_config_add_string "peeraddr" | ||
proto_config_add_string "tunlink" | ||
proto_config_add_int "mtu" | ||
proto_config_add_int "ttl" | ||
proto_config_add_string "encaplimit" | ||
proto_config_add_string "zone" | ||
proto_config_add_string "weakif" | ||
proto_config_add_string "ip4ifaddr" | ||
} | ||
|
||
[ -n "$INCLUDE_ONLY" ] || { | ||
add_protocol ipip6 | ||
} |
40 changes: 40 additions & 0 deletions
40
target/linux/x86/patches-5.10/020-x86-Fix-compile-problem.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: Hauke Mehrtens <[email protected]> | ||
Date: Sun, 3 Mar 2024 19:57:11 +0100 | ||
Subject: x86: Fix compile problem | ||
|
||
This fixes the following compile problem: | ||
CC arch/x86/kernel/paravirt.o | ||
arch/x86/kernel/paravirt.c: In function 'paravirt_patch_call': | ||
arch/x86/kernel/paravirt.c:65:9: error: implicit declaration of function '__text_gen_insn' [-Werror=implicit-function-declaration] | ||
65 | __text_gen_insn(insn_buff, CALL_INSN_OPCODE, | ||
| ^~~~~~~~~~~~~~~ | ||
arch/x86/kernel/paravirt.c:65:36: error: 'CALL_INSN_OPCODE' undeclared (first use in this function) | ||
65 | __text_gen_insn(insn_buff, CALL_INSN_OPCODE, | ||
| ^~~~~~~~~~~~~~~~ | ||
arch/x86/kernel/paravirt.c:65:36: note: each undeclared identifier is reported only once for each function it appears in | ||
arch/x86/kernel/paravirt.c:66:47: error: 'CALL_INSN_SIZE' undeclared (first use in this function) | ||
66 | (void *)addr, target, CALL_INSN_SIZE); | ||
| ^~~~~~~~~~~~~~ | ||
arch/x86/kernel/paravirt.c:68:1: error: control reaches end of non-void function [-Werror=return-type] | ||
68 | } | ||
| ^ | ||
cc1: some warnings being treated as errors | ||
make[7]: *** [scripts/Makefile.build:286: arch/x86/kernel/paravirt.o] Error 1 | ||
|
||
Fixes: b253061d4b86 ("x86/ibt,paravirt: Use text_gen_insn() for paravirt_patch()") | ||
Signed-off-by: Hauke Mehrtens <[email protected]> | ||
--- | ||
arch/x86/kernel/paravirt.c | 1 + | ||
1 file changed, 1 insertion(+) | ||
|
||
--- a/arch/x86/kernel/paravirt.c | ||
+++ b/arch/x86/kernel/paravirt.c | ||
@@ -14,6 +14,7 @@ | ||
#include <linux/highmem.h> | ||
#include <linux/kprobes.h> | ||
#include <linux/pgtable.h> | ||
+#include <linux/static_call.h> | ||
|
||
#include <asm/bug.h> | ||
#include <asm/paravirt.h> |