aboutsummaryrefslogtreecommitdiffstats
path: root/features/rt/net-Use-skbufhead-with-raw-lock.patch
diff options
context:
space:
mode:
Diffstat (limited to 'features/rt/net-Use-skbufhead-with-raw-lock.patch')
-rw-r--r--features/rt/net-Use-skbufhead-with-raw-lock.patch73
1 files changed, 0 insertions, 73 deletions
diff --git a/features/rt/net-Use-skbufhead-with-raw-lock.patch b/features/rt/net-Use-skbufhead-with-raw-lock.patch
deleted file mode 100644
index 3309dda6..00000000
--- a/features/rt/net-Use-skbufhead-with-raw-lock.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From d7ca8b65392672151fbaaa0c0ec93b3be0dd2d51 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Tue, 12 Jul 2011 15:38:34 +0200
-Subject: [PATCH 141/191] net: Use skbufhead with raw lock
-
-Use the rps lock as rawlock so we can keep irq-off regions. It looks low
-latency. However we can't kfree() from this context therefore we defer this
-to the softirq and use the tofree_queue list for it (similar to process_queue).
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
----
- include/linux/skbuff.h | 7 +++++++
- net/core/dev.c | 6 +++---
- 2 files changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index 6d0a33d1c0db..3402903b5cf0 100644
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -295,6 +295,7 @@ struct sk_buff_head {
-
- __u32 qlen;
- spinlock_t lock;
-+ raw_spinlock_t raw_lock;
- };
-
- struct sk_buff;
-@@ -1902,6 +1903,12 @@ static inline void skb_queue_head_init(struct sk_buff_head *list)
- __skb_queue_head_init(list);
- }
-
-+static inline void skb_queue_head_init_raw(struct sk_buff_head *list)
-+{
-+ raw_spin_lock_init(&list->raw_lock);
-+ __skb_queue_head_init(list);
-+}
-+
- static inline void skb_queue_head_init_class(struct sk_buff_head *list,
- struct lock_class_key *class)
- {
-diff --git a/net/core/dev.c b/net/core/dev.c
-index 2d6ee43e02b8..16c9aa19ede2 100644
---- a/net/core/dev.c
-+++ b/net/core/dev.c
-@@ -223,14 +223,14 @@ static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex)
- static inline void rps_lock(struct softnet_data *sd)
- {
- #ifdef CONFIG_RPS
-- spin_lock(&sd->input_pkt_queue.lock);
-+ raw_spin_lock(&sd->input_pkt_queue.raw_lock);
- #endif
- }
-
- static inline void rps_unlock(struct softnet_data *sd)
- {
- #ifdef CONFIG_RPS
-- spin_unlock(&sd->input_pkt_queue.lock);
-+ raw_spin_unlock(&sd->input_pkt_queue.raw_lock);
- #endif
- }
-
-@@ -11478,7 +11478,7 @@ static int __init net_dev_init(void)
-
- INIT_WORK(flush, flush_backlog);
-
-- skb_queue_head_init(&sd->input_pkt_queue);
-+ skb_queue_head_init_raw(&sd->input_pkt_queue);
- skb_queue_head_init(&sd->process_queue);
- #ifdef CONFIG_XFRM_OFFLOAD
- skb_queue_head_init(&sd->xfrm_backlog);
---
-2.19.1
-