diff options
author | Bjørn Mork <bjorn@mork.no> | 2021-10-22 18:09:18 +0200 |
---|---|---|
committer | Christian Lamparter <chunkeey@gmail.com> | 2021-10-30 15:00:22 +0200 |
commit | d990f805c0caa38ec06ad51b025b6d7b6015c232 (patch) | |
tree | 0f95bf8ce6b1e12cd4c00528baad710ef2c8b280 | |
parent | daefc646e6d4f1f730c5957b5954b88abe7c00f3 (diff) | |
download | upstream-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.c | 2 |
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; |