summaryrefslogtreecommitdiff
path: root/include/net/raw.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2022-09-21 09:58:02 +0200
committerIngo Molnar <mingo@kernel.org>2022-09-21 09:58:02 +0200
commit74656d03ac36fabb16b9df5221cf398ee3a9ca08 (patch)
tree0600e619ac817e2c016c148810814f55280316cc /include/net/raw.h
parent0d97db026509c1a13f732b22670ab1f0ac9d8d87 (diff)
parent521a547ced6477c54b4b0cc206000406c221b4d6 (diff)
Merge tag 'v6.0-rc6' into locking/core, to refresh the branch
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/net/raw.h')
-rw-r--r--include/net/raw.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/include/net/raw.h b/include/net/raw.h
index c51a635671a7..5e665934ebc7 100644
--- a/include/net/raw.h
+++ b/include/net/raw.h
@@ -20,9 +20,8 @@
extern struct proto raw_prot;
extern struct raw_hashinfo raw_v4_hashinfo;
-struct sock *__raw_v4_lookup(struct net *net, struct sock *sk,
- unsigned short num, __be32 raddr,
- __be32 laddr, int dif, int sdif);
+bool raw_v4_match(struct net *net, struct sock *sk, unsigned short num,
+ __be32 raddr, __be32 laddr, int dif, int sdif);
int raw_abort(struct sock *sk, int err);
void raw_icmp_error(struct sk_buff *, int, u32);
@@ -33,10 +32,19 @@ int raw_rcv(struct sock *, struct sk_buff *);
#define RAW_HTABLE_SIZE MAX_INET_PROTOS
struct raw_hashinfo {
- rwlock_t lock;
- struct hlist_head ht[RAW_HTABLE_SIZE];
+ spinlock_t lock;
+ struct hlist_nulls_head ht[RAW_HTABLE_SIZE];
};
+static inline void raw_hashinfo_init(struct raw_hashinfo *hashinfo)
+{
+ int i;
+
+ spin_lock_init(&hashinfo->lock);
+ for (i = 0; i < RAW_HTABLE_SIZE; i++)
+ INIT_HLIST_NULLS_HEAD(&hashinfo->ht[i], i);
+}
+
#ifdef CONFIG_PROC_FS
int raw_proc_init(void);
void raw_proc_exit(void);