aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Mork <bjorn@mork.no>2021-10-22 18:09:18 +0200
committerChristian Lamparter <chunkeey@gmail.com>2021-10-30 15:00:22 +0200
commitd990f805c0caa38ec06ad51b025b6d7b6015c232 (patch)
tree0f95bf8ce6b1e12cd4c00528baad710ef2c8b280
parentdaefc646e6d4f1f730c5957b5954b88abe7c00f3 (diff)
downloadupstream-d990f805c0caa38ec06ad51b025b6d7b6015c232.tar.gz
upstream-d990f805c0caa38ec06ad51b025b6d7b6015c232.tar.bz2
upstream-d990f805c0caa38ec06ad51b025b6d7b6015c232.zip
realtek: re-enable IPv6 routing
Commit 03e1d93e0779 ("realtek: add driver support for routing offload") added routing offload for IPv4, but broke IPv6 routing completely. The routing table is empty and cannot be updated: root@gs1900-10hp:~# ip -6 route root@gs1900-10hp:~# ip -6 route add unreachable default RTNETLINK answers: Invalid argument As a side effect, this breaks opkg on IPv4 only systems too, since uclient-fetch fails when there are no IPv6 routes: root@gs1900-10hp:~# uclient-fetch http://192.168.99.1 Downloading 'http://192.168.99.1' Failed to send request: Operation not permitted Fix by returning NOTIFY_DONE when offloading is unsupported, falling back to default behaviour. Fixes: 03e1d93e0779 ("realtek: add driver support for routing offload") Signed-off-by: Bjørn Mork <bjorn@mork.no>
-rw-r--r--target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c
index 9691b8b5c7..6d2996f0af 100644
--- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c
+++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c
@@ -1342,7 +1342,7 @@ static int rtl83xx_fib_event(struct notifier_block *this, unsigned long event, v
struct fib6_entry_notifier_info *fen6_info = ptr;
pr_warn("%s: FIB_RULE ADD/DELL for IPv6 not supported\n", __func__);
kfree(fib_work);
- return notifier_from_errno(-EINVAL);
+ return NOTIFY_DONE;
}
break;