Skip to content

Commit

Permalink
[bot] AutoMerging: merge all upstream's changes:
Browse files Browse the repository at this point in the history
* https://github.com/coolsnowwolf/lede:
  x86: fix build on kernel 5.10.211 (coolsnowwolf#11972)
  package: add ipip6 support (coolsnowwolf#11970)
  • Loading branch information
github-actions[bot] committed Mar 11, 2024
2 parents 4928b0b + bc21d2c commit 61478ff
Show file tree
Hide file tree
Showing 3 changed files with 184 additions and 0 deletions.
39 changes: 39 additions & 0 deletions package/network/ipv6/ipip6/Makefile
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))
105 changes: 105 additions & 0 deletions package/network/ipv6/ipip6/files/ipip6.sh
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 target/linux/x86/patches-5.10/020-x86-Fix-compile-problem.patch
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>

0 comments on commit 61478ff

Please sign in to comment.