From ea08eeccae9297f7aabd2ef7f0c2517ac4549acc Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Tue, 20 Feb 2024 01:18:26 +0000
Subject: [PATCH] write in 30M
---
kernel/net/ipv6/ila/ila_xlat.c | 20 +++++---------------
1 files changed, 5 insertions(+), 15 deletions(-)
diff --git a/kernel/net/ipv6/ila/ila_xlat.c b/kernel/net/ipv6/ila/ila_xlat.c
index 7858fa9..1636685 100644
--- a/kernel/net/ipv6/ila/ila_xlat.c
+++ b/kernel/net/ipv6/ila/ila_xlat.c
@@ -383,12 +383,9 @@
struct rhashtable_iter iter;
struct ila_map *ila;
spinlock_t *lock;
- int ret;
+ int ret = 0;
- ret = rhashtable_walk_init(&ilan->xlat.rhash_table, &iter, GFP_KERNEL);
- if (ret)
- goto done;
-
+ rhashtable_walk_enter(&ilan->xlat.rhash_table, &iter);
rhashtable_walk_start(&iter);
for (;;) {
@@ -480,6 +477,7 @@
rcu_read_lock();
+ ret = -ESRCH;
ila = ila_lookup_by_params(&xp, ilan);
if (ila) {
ret = ila_dump_info(ila,
@@ -510,23 +508,17 @@
struct net *net = sock_net(cb->skb->sk);
struct ila_net *ilan = net_generic(net, ila_net_id);
struct ila_dump_iter *iter;
- int ret;
iter = kmalloc(sizeof(*iter), GFP_KERNEL);
if (!iter)
return -ENOMEM;
- ret = rhashtable_walk_init(&ilan->xlat.rhash_table, &iter->rhiter,
- GFP_KERNEL);
- if (ret) {
- kfree(iter);
- return ret;
- }
+ rhashtable_walk_enter(&ilan->xlat.rhash_table, &iter->rhiter);
iter->skip = 0;
cb->args[0] = (long)iter;
- return ret;
+ return 0;
}
int ila_xlat_nl_dump_done(struct netlink_callback *cb)
@@ -609,8 +601,6 @@
rhashtable_walk_stop(rhiter);
return ret;
}
-
-#define ILA_HASH_TABLE_SIZE 1024
int ila_xlat_init_net(struct net *net)
{
--
Gitblit v1.6.2