summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2017-03-27 12:08:14 +0200
committerSebastian Andrzej Siewior <bigeasy@linutronix.de>2017-03-27 12:08:14 +0200
commit950728f5efcdc960f3274cb3206418d0178c866c (patch)
treecba22d6d29920e79a257ac3bbe7ae37e7fb3dc1e
parent922b8868068757429b5049f972bfcc0c05df72ed (diff)
downloadlinux-rt-950728f5efcdc960f3274cb3206418d0178c866c.tar.gz
[ANNOUNCE] v4.9.18-rt13v4.9.18-rt13-patches
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-rw-r--r--patches/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch2
-rw-r--r--patches/arm-kprobe-replace-patch_lock-to-raw-lock.patch1
-rw-r--r--patches/arm64-xen--Make-XEN-depend-on-non-rt.patch2
-rw-r--r--patches/fs-dcache-use-swait_queue-instead-of-waitqueue.patch4
-rw-r--r--patches/iommu-vt-d-don-t-disable-preemption-while-accessing-.patch4
-rw-r--r--patches/localversion.patch2
-rw-r--r--patches/lockdep-Handle-statically-initialized-PER_CPU-locks-.patch5
-rw-r--r--patches/mm-enable-slub.patch12
-rw-r--r--patches/mm-memcontrol-do_not_disable_irq.patch10
-rw-r--r--patches/mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch2
-rw-r--r--patches/net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch4
-rw-r--r--patches/net-add-back-the-missing-serialization-in-ip_send_un.patch10
-rw-r--r--patches/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch2
-rw-r--r--patches/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch2
-rw-r--r--patches/net-move-xmit_recursion-to-per-task-variable-on-RT.patch6
-rw-r--r--patches/net-provide-a-way-to-delegate-processing-a-softirq-t.patch2
-rw-r--r--patches/net-wireless-warn-nort.patch2
-rw-r--r--patches/rt-add-rt-locks.patch2
-rw-r--r--patches/rtmutex-futex-prepare-rt.patch17
-rw-r--r--patches/rxrpc-remove-unused-static-variables.patch1
-rw-r--r--patches/sched-rt-Add-a-missing-rescheduling-point.patch1
-rw-r--r--patches/skbufhead-raw-lock.patch14
-rw-r--r--patches/softirq-preempt-fix-3-re.patch14
-rw-r--r--patches/softirq-split-locks.patch2
-rw-r--r--patches/softirq-wake-the-timer-softirq-if-needed.patch1
-rw-r--r--patches/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch4
-rw-r--r--patches/x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch1
-rw-r--r--patches/x86-mm-cpa-avoid-wbinvd-for-PREEMPT.patch1
28 files changed, 62 insertions, 68 deletions
diff --git a/patches/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch b/patches/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
index a57bf262c748..d8bdf8b27099 100644
--- a/patches/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
+++ b/patches/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
@@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
ret = _nfs4_proc_open(opendata);
if (ret != 0)
@@ -2736,7 +2736,7 @@ static int _nfs4_open_and_get_state(stru
- ctx->state = state;
+
if (d_inode(dentry) == state->inode) {
nfs_inode_attach_open_context(ctx);
- if (read_seqcount_retry(&sp->so_reclaim_seqcount, seq))
diff --git a/patches/arm-kprobe-replace-patch_lock-to-raw-lock.patch b/patches/arm-kprobe-replace-patch_lock-to-raw-lock.patch
index fc9a5257bf3d..79706c7faa47 100644
--- a/patches/arm-kprobe-replace-patch_lock-to-raw-lock.patch
+++ b/patches/arm-kprobe-replace-patch_lock-to-raw-lock.patch
@@ -1,4 +1,3 @@
-From 6e2639b6d72e1ef9e264aa658db3b6171d9ba12f Mon Sep 17 00:00:00 2001
From: Yang Shi <yang.shi@linaro.org>
Date: Thu, 10 Nov 2016 16:17:55 -0800
Subject: [PATCH] arm: kprobe: replace patch_lock to raw lock
diff --git a/patches/arm64-xen--Make-XEN-depend-on-non-rt.patch b/patches/arm64-xen--Make-XEN-depend-on-non-rt.patch
index f156168a8ece..b6b0a56db4c1 100644
--- a/patches/arm64-xen--Make-XEN-depend-on-non-rt.patch
+++ b/patches/arm64-xen--Make-XEN-depend-on-non-rt.patch
@@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
-@@ -694,7 +694,7 @@ config XEN_DOM0
+@@ -704,7 +704,7 @@ config XEN_DOM0
config XEN
bool "Xen guest support on ARM64"
diff --git a/patches/fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/patches/fs-dcache-use-swait_queue-instead-of-waitqueue.patch
index 81ee6382f774..576f3167d6fb 100644
--- a/patches/fs-dcache-use-swait_queue-instead-of-waitqueue.patch
+++ b/patches/fs-dcache-use-swait_queue-instead-of-waitqueue.patch
@@ -91,7 +91,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/*
--- a/fs/namei.c
+++ b/fs/namei.c
-@@ -1629,7 +1629,7 @@ static struct dentry *lookup_slow(const
+@@ -1626,7 +1626,7 @@ static struct dentry *lookup_slow(const
{
struct dentry *dentry = ERR_PTR(-ENOENT), *old;
struct inode *inode = dir->d_inode;
@@ -100,7 +100,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
inode_lock_shared(inode);
/* Don't go there if it's already dead */
-@@ -3086,7 +3086,7 @@ static int lookup_open(struct nameidata
+@@ -3083,7 +3083,7 @@ static int lookup_open(struct nameidata
struct dentry *dentry;
int error, create_error = 0;
umode_t mode = op->mode;
diff --git a/patches/iommu-vt-d-don-t-disable-preemption-while-accessing-.patch b/patches/iommu-vt-d-don-t-disable-preemption-while-accessing-.patch
index 379fe83f5b31..753d477ac205 100644
--- a/patches/iommu-vt-d-don-t-disable-preemption-while-accessing-.patch
+++ b/patches/iommu-vt-d-don-t-disable-preemption-while-accessing-.patch
@@ -35,7 +35,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/* bitmap for indexing intel_iommus */
static int g_num_of_iommus;
-@@ -3715,10 +3715,8 @@ static void add_unmap(struct dmar_domain
+@@ -3716,10 +3716,8 @@ static void add_unmap(struct dmar_domain
struct intel_iommu *iommu;
struct deferred_flush_entry *entry;
struct deferred_flush_data *flush_data;
@@ -47,7 +47,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/* Flush all CPUs' entries to avoid deferring too much. If
* this becomes a bottleneck, can just flush us, and rely on
-@@ -3751,8 +3749,6 @@ static void add_unmap(struct dmar_domain
+@@ -3752,8 +3750,6 @@ static void add_unmap(struct dmar_domain
}
flush_data->size++;
spin_unlock_irqrestore(&flush_data->lock, flags);
diff --git a/patches/localversion.patch b/patches/localversion.patch
index 12bd473a33f5..25e5fadbaae8 100644
--- a/patches/localversion.patch
+++ b/patches/localversion.patch
@@ -10,4 +10,4 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- /dev/null
+++ b/localversion-rt
@@ -0,0 +1 @@
-+-rt12
++-rt13
diff --git a/patches/lockdep-Handle-statically-initialized-PER_CPU-locks-.patch b/patches/lockdep-Handle-statically-initialized-PER_CPU-locks-.patch
index 7a064885bfdd..51783c6aaa56 100644
--- a/patches/lockdep-Handle-statically-initialized-PER_CPU-locks-.patch
+++ b/patches/lockdep-Handle-statically-initialized-PER_CPU-locks-.patch
@@ -1,4 +1,3 @@
-From 178617ad4fa9d79f89d2ba3bf437a38fdec3ef5b Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 17 Feb 2017 19:44:39 +0100
Subject: [PATCH] lockdep: Handle statically initialized PER_CPU locks proper
@@ -208,7 +207,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
static inline void __percpu *mod_percpu(struct module *mod)
--- a/mm/percpu.c
+++ b/mm/percpu.c
-@@ -1280,18 +1280,7 @@ void free_percpu(void __percpu *ptr)
+@@ -1283,18 +1283,7 @@ void free_percpu(void __percpu *ptr)
}
EXPORT_SYMBOL_GPL(free_percpu);
@@ -228,7 +227,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
{
#ifdef CONFIG_SMP
const size_t static_size = __per_cpu_end - __per_cpu_start;
-@@ -1300,16 +1289,36 @@ bool is_kernel_percpu_address(unsigned l
+@@ -1303,16 +1292,36 @@ bool is_kernel_percpu_address(unsigned l
for_each_possible_cpu(cpu) {
void *start = per_cpu_ptr(base, cpu);
diff --git a/patches/mm-enable-slub.patch b/patches/mm-enable-slub.patch
index 7148ed90d0b6..f8d47f2f97a6 100644
--- a/patches/mm-enable-slub.patch
+++ b/patches/mm-enable-slub.patch
@@ -398,7 +398,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
list_for_each_entry_safe(page, h, &discard, lru)
discard_slab(s, page);
-@@ -3920,7 +3990,7 @@ int __kmem_cache_shrink(struct kmem_cach
+@@ -3905,7 +3975,7 @@ int __kmem_cache_shrink(struct kmem_cach
for (i = 0; i < SHRINK_PROMOTE_MAX; i++)
INIT_LIST_HEAD(promote + i);
@@ -407,7 +407,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
/*
* Build lists of slabs to discard or promote.
-@@ -3951,7 +4021,7 @@ int __kmem_cache_shrink(struct kmem_cach
+@@ -3936,7 +4006,7 @@ int __kmem_cache_shrink(struct kmem_cach
for (i = SHRINK_PROMOTE_MAX - 1; i >= 0; i--)
list_splice(promote + i, &n->partial);
@@ -416,7 +416,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
/* Release empty slabs */
list_for_each_entry_safe(page, t, &discard, lru)
-@@ -4127,6 +4197,12 @@ void __init kmem_cache_init(void)
+@@ -4112,6 +4182,12 @@ void __init kmem_cache_init(void)
{
static __initdata struct kmem_cache boot_kmem_cache,
boot_kmem_cache_node;
@@ -429,7 +429,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
if (debug_guardpage_minorder())
slub_max_order = 0;
-@@ -4335,7 +4411,7 @@ static int validate_slab_node(struct kme
+@@ -4320,7 +4396,7 @@ static int validate_slab_node(struct kme
struct page *page;
unsigned long flags;
@@ -438,7 +438,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
list_for_each_entry(page, &n->partial, lru) {
validate_slab_slab(s, page, map);
-@@ -4357,7 +4433,7 @@ static int validate_slab_node(struct kme
+@@ -4342,7 +4418,7 @@ static int validate_slab_node(struct kme
s->name, count, atomic_long_read(&n->nr_slabs));
out:
@@ -447,7 +447,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
return count;
}
-@@ -4545,12 +4621,12 @@ static int list_locations(struct kmem_ca
+@@ -4530,12 +4606,12 @@ static int list_locations(struct kmem_ca
if (!atomic_long_read(&n->nr_slabs))
continue;
diff --git a/patches/mm-memcontrol-do_not_disable_irq.patch b/patches/mm-memcontrol-do_not_disable_irq.patch
index ee115250a58c..c92b398945dc 100644
--- a/patches/mm-memcontrol-do_not_disable_irq.patch
+++ b/patches/mm-memcontrol-do_not_disable_irq.patch
@@ -29,7 +29,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/* Whether legacy memory+swap accounting is active */
static bool do_memsw_account(void)
{
-@@ -4548,12 +4551,12 @@ static int mem_cgroup_move_account(struc
+@@ -4553,12 +4556,12 @@ static int mem_cgroup_move_account(struc
ret = 0;
@@ -44,7 +44,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
out_unlock:
unlock_page(page);
out:
-@@ -5428,10 +5431,10 @@ void mem_cgroup_commit_charge(struct pag
+@@ -5433,10 +5436,10 @@ void mem_cgroup_commit_charge(struct pag
commit_charge(page, memcg, lrucare);
@@ -57,7 +57,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
if (do_memsw_account() && PageSwapCache(page)) {
swp_entry_t entry = { .val = page_private(page) };
-@@ -5487,14 +5490,14 @@ static void uncharge_batch(struct mem_cg
+@@ -5492,14 +5495,14 @@ static void uncharge_batch(struct mem_cg
memcg_oom_recover(memcg);
}
@@ -74,7 +74,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
if (!mem_cgroup_is_root(memcg))
css_put_many(&memcg->css, nr_pages);
-@@ -5832,6 +5835,7 @@ void mem_cgroup_swapout(struct page *pag
+@@ -5837,6 +5840,7 @@ void mem_cgroup_swapout(struct page *pag
{
struct mem_cgroup *memcg, *swap_memcg;
unsigned short oldid;
@@ -82,7 +82,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
VM_BUG_ON_PAGE(PageLRU(page), page);
VM_BUG_ON_PAGE(page_count(page), page);
-@@ -5872,12 +5876,16 @@ void mem_cgroup_swapout(struct page *pag
+@@ -5877,12 +5881,16 @@ void mem_cgroup_swapout(struct page *pag
* important here to have the interrupts disabled because it is the
* only synchronisation we have for udpating the per-CPU variables.
*/
diff --git a/patches/mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch b/patches/mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch
index c730252d654e..dc902e74c660 100644
--- a/patches/mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch
+++ b/patches/mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch
@@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
-@@ -5652,10 +5652,10 @@ void mem_cgroup_migrate(struct page *old
+@@ -5657,10 +5657,10 @@ void mem_cgroup_migrate(struct page *old
commit_charge(newpage, memcg, false);
diff --git a/patches/net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch b/patches/net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
index 2430990eeb34..0e0cdc3d0646 100644
--- a/patches/net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
+++ b/patches/net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
@@ -50,7 +50,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
{
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4911,6 +4911,7 @@ void __napi_schedule(struct napi_struct
+@@ -4938,6 +4938,7 @@ void __napi_schedule(struct napi_struct
}
EXPORT_SYMBOL(__napi_schedule);
@@ -58,7 +58,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/**
* __napi_schedule_irqoff - schedule for receive
* @n: entry to schedule
-@@ -4922,6 +4923,7 @@ void __napi_schedule_irqoff(struct napi_
+@@ -4949,6 +4950,7 @@ void __napi_schedule_irqoff(struct napi_
____napi_schedule(this_cpu_ptr(&softnet_data), n);
}
EXPORT_SYMBOL(__napi_schedule_irqoff);
diff --git a/patches/net-add-back-the-missing-serialization-in-ip_send_un.patch b/patches/net-add-back-the-missing-serialization-in-ip_send_un.patch
index 047d57089ea3..75e5d32538e2 100644
--- a/patches/net-add-back-the-missing-serialization-in-ip_send_un.patch
+++ b/patches/net-add-back-the-missing-serialization-in-ip_send_un.patch
@@ -50,7 +50,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#include <net/net_namespace.h>
#include <net/icmp.h>
-@@ -564,6 +565,7 @@ void tcp_v4_send_check(struct sock *sk,
+@@ -568,6 +569,7 @@ void tcp_v4_send_check(struct sock *sk,
}
EXPORT_SYMBOL(tcp_v4_send_check);
@@ -58,7 +58,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/*
* This routine will send an RST to the other tcp.
*
-@@ -691,6 +693,8 @@ static void tcp_v4_send_reset(const stru
+@@ -695,6 +697,8 @@ static void tcp_v4_send_reset(const stru
offsetof(struct inet_timewait_sock, tw_bound_dev_if));
arg.tos = ip_hdr(skb)->tos;
@@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
local_bh_disable();
ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk),
skb, &TCP_SKB_CB(skb)->header.h4.opt,
-@@ -700,6 +704,7 @@ static void tcp_v4_send_reset(const stru
+@@ -704,6 +708,7 @@ static void tcp_v4_send_reset(const stru
__TCP_INC_STATS(net, TCP_MIB_OUTSEGS);
__TCP_INC_STATS(net, TCP_MIB_OUTRSTS);
local_bh_enable();
@@ -75,7 +75,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#ifdef CONFIG_TCP_MD5SIG
out:
-@@ -775,6 +780,7 @@ static void tcp_v4_send_ack(struct net *
+@@ -779,6 +784,7 @@ static void tcp_v4_send_ack(struct net *
if (oif)
arg.bound_dev_if = oif;
arg.tos = tos;
@@ -83,7 +83,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
local_bh_disable();
ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk),
skb, &TCP_SKB_CB(skb)->header.h4.opt,
-@@ -783,6 +789,7 @@ static void tcp_v4_send_ack(struct net *
+@@ -787,6 +793,7 @@ static void tcp_v4_send_ack(struct net *
__TCP_INC_STATS(net, TCP_MIB_OUTSEGS);
local_bh_enable();
diff --git a/patches/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch b/patches/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch
index bfddd24daabf..33dfee0edfc4 100644
--- a/patches/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch
+++ b/patches/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch
@@ -35,7 +35,7 @@ Cc: stable-rt@vger.kernel.org
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -8019,7 +8019,7 @@ static int dev_cpu_callback(struct notif
+@@ -8046,7 +8046,7 @@ static int dev_cpu_callback(struct notif
netif_rx_ni(skb);
input_queue_head_incr(oldsd);
}
diff --git a/patches/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch b/patches/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
index 2c7142969598..ff17e1ab50ba 100644
--- a/patches/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
+++ b/patches/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
@@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3075,7 +3075,11 @@ static inline int __dev_xmit_skb(struct
+@@ -3102,7 +3102,11 @@ static inline int __dev_xmit_skb(struct
* This permits qdisc->running owner to get the lock more
* often and dequeue packets faster.
*/
diff --git a/patches/net-move-xmit_recursion-to-per-task-variable-on-RT.patch b/patches/net-move-xmit_recursion-to-per-task-variable-on-RT.patch
index 2d1256cfc07c..6172ea942ecf 100644
--- a/patches/net-move-xmit_recursion-to-per-task-variable-on-RT.patch
+++ b/patches/net-move-xmit_recursion-to-per-task-variable-on-RT.patch
@@ -92,7 +92,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
struct task_struct *oom_reaper_list;
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3138,8 +3138,10 @@ static void skb_update_prio(struct sk_bu
+@@ -3165,8 +3165,10 @@ static void skb_update_prio(struct sk_bu
#define skb_update_prio(skb)
#endif
@@ -103,7 +103,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
/**
* dev_loopback_xmit - loop back @skb
-@@ -3373,8 +3375,7 @@ static int __dev_queue_xmit(struct sk_bu
+@@ -3400,8 +3402,7 @@ static int __dev_queue_xmit(struct sk_bu
int cpu = smp_processor_id(); /* ok because BHs are off */
if (txq->xmit_lock_owner != cpu) {
@@ -113,7 +113,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
goto recursion_alert;
skb = validate_xmit_skb(skb, dev);
-@@ -3384,9 +3385,9 @@ static int __dev_queue_xmit(struct sk_bu
+@@ -3411,9 +3412,9 @@ static int __dev_queue_xmit(struct sk_bu
HARD_TX_LOCK(dev, txq, cpu);
if (!netif_xmit_stopped(txq)) {
diff --git a/patches/net-provide-a-way-to-delegate-processing-a-softirq-t.patch b/patches/net-provide-a-way-to-delegate-processing-a-softirq-t.patch
index b9071361fe25..3ae0f474db36 100644
--- a/patches/net-provide-a-way-to-delegate-processing-a-softirq-t.patch
+++ b/patches/net-provide-a-way-to-delegate-processing-a-softirq-t.patch
@@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
void raise_softirq_irqoff(unsigned int nr)
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -5252,7 +5252,7 @@ static __latent_entropy void net_rx_acti
+@@ -5279,7 +5279,7 @@ static __latent_entropy void net_rx_acti
list_splice_tail(&repoll, &list);
list_splice(&list, &sd->poll_list);
if (!list_empty(&sd->poll_list))
diff --git a/patches/net-wireless-warn-nort.patch b/patches/net-wireless-warn-nort.patch
index d614ab9bcfec..7378bc00ac01 100644
--- a/patches/net-wireless-warn-nort.patch
+++ b/patches/net-wireless-warn-nort.patch
@@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
-@@ -4166,7 +4166,7 @@ void ieee80211_rx_napi(struct ieee80211_
+@@ -4180,7 +4180,7 @@ void ieee80211_rx_napi(struct ieee80211_
struct ieee80211_supported_band *sband;
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
diff --git a/patches/rt-add-rt-locks.patch b/patches/rt-add-rt-locks.patch
index 7740aa99109a..274cfb6cc3bb 100644
--- a/patches/rt-add-rt-locks.patch
+++ b/patches/rt-add-rt-locks.patch
@@ -941,7 +941,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
if (deboost)
rt_mutex_adjust_prio(current);
-@@ -2851,10 +2854,7 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -2850,10 +2853,7 @@ static int futex_wait_requeue_pi(u32 __u
* The waiter is allocated on our stack, manipulated by the requeue
* code while we sleep on uaddr.
*/
diff --git a/patches/rtmutex-futex-prepare-rt.patch b/patches/rtmutex-futex-prepare-rt.patch
index 6259f82b8fc9..3d966f0febbe 100644
--- a/patches/rtmutex-futex-prepare-rt.patch
+++ b/patches/rtmutex-futex-prepare-rt.patch
@@ -32,16 +32,16 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
} else if (ret) {
/*
* rt_mutex_start_proxy_lock() detected a
-@@ -2814,7 +2824,7 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -2813,7 +2823,7 @@ static int futex_wait_requeue_pi(u32 __u
+ {
struct hrtimer_sleeper timeout, *to = NULL;
struct rt_mutex_waiter rt_waiter;
- struct rt_mutex *pi_mutex = NULL;
- struct futex_hash_bucket *hb;
+ struct futex_hash_bucket *hb, *hb2;
union futex_key key2 = FUTEX_KEY_INIT;
struct futex_q q = futex_q_init;
int res, ret;
-@@ -2873,20 +2883,55 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -2872,20 +2882,55 @@ static int futex_wait_requeue_pi(u32 __u
/* Queue the futex_q, drop the hb lock, wait for wakeup. */
futex_wait_queue_me(hb, &q, to);
@@ -108,7 +108,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
/* Check if the requeue code acquired the second futex for us. */
if (!q.rt_waiter) {
-@@ -2895,14 +2940,15 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -2894,7 +2939,8 @@ static int futex_wait_requeue_pi(u32 __u
* did a lock-steal - fix up the PI-state in that case.
*/
if (q.pi_state && (q.pi_state->owner != current)) {
@@ -116,8 +116,9 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+ spin_lock(&hb2->lock);
+ BUG_ON(&hb2->lock != q.lock_ptr);
ret = fixup_pi_state_owner(uaddr2, &q, current);
- /*
- * Drop the reference to the pi state which
+ if (ret && rt_mutex_owner(&q.pi_state->pi_mutex) == current)
+ rt_mutex_unlock(&q.pi_state->pi_mutex);
+@@ -2903,7 +2949,7 @@ static int futex_wait_requeue_pi(u32 __u
* the requeue_pi() code acquired for us.
*/
put_pi_state(q.pi_state);
@@ -125,8 +126,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+ spin_unlock(&hb2->lock);
}
} else {
- /*
-@@ -2915,7 +2961,8 @@ static int futex_wait_requeue_pi(u32 __u
+ struct rt_mutex *pi_mutex;
+@@ -2918,7 +2964,8 @@ static int futex_wait_requeue_pi(u32 __u
ret = rt_mutex_finish_proxy_lock(pi_mutex, to, &rt_waiter);
debug_rt_mutex_free_waiter(&rt_waiter);
diff --git a/patches/rxrpc-remove-unused-static-variables.patch b/patches/rxrpc-remove-unused-static-variables.patch
index 4d82f3d99ad4..34b9923b3f01 100644
--- a/patches/rxrpc-remove-unused-static-variables.patch
+++ b/patches/rxrpc-remove-unused-static-variables.patch
@@ -1,4 +1,3 @@
-From f9cf73e8bad7daa90318edfd933f8676cd1e5cd4 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 21 Oct 2016 10:54:50 +0200
Subject: [PATCH] rxrpc: remove unused static variables
diff --git a/patches/sched-rt-Add-a-missing-rescheduling-point.patch b/patches/sched-rt-Add-a-missing-rescheduling-point.patch
index d38d05ee8012..054810d81af2 100644
--- a/patches/sched-rt-Add-a-missing-rescheduling-point.patch
+++ b/patches/sched-rt-Add-a-missing-rescheduling-point.patch
@@ -1,4 +1,3 @@
-From 619bd4a71874a8fd78eb6ccf9f272c5e98bcc7b7 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 24 Jan 2017 15:40:06 +0100
Subject: [PATCH] sched/rt: Add a missing rescheduling point
diff --git a/patches/skbufhead-raw-lock.patch b/patches/skbufhead-raw-lock.patch
index a5355c7aaaf5..b5ad49cc34c8 100644
--- a/patches/skbufhead-raw-lock.patch
+++ b/patches/skbufhead-raw-lock.patch
@@ -65,7 +65,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#endif
}
-@@ -4310,7 +4310,7 @@ static void flush_backlog(struct work_st
+@@ -4337,7 +4337,7 @@ static void flush_backlog(struct work_st
skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) {
if (skb->dev->reg_state == NETREG_UNREGISTERING) {
__skb_unlink(skb, &sd->input_pkt_queue);
@@ -74,7 +74,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
input_queue_head_incr(sd);
}
}
-@@ -4320,11 +4320,14 @@ static void flush_backlog(struct work_st
+@@ -4347,11 +4347,14 @@ static void flush_backlog(struct work_st
skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
if (skb->dev->reg_state == NETREG_UNREGISTERING) {
__skb_unlink(skb, &sd->process_queue);
@@ -90,7 +90,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
static void flush_all_backlogs(void)
-@@ -4849,7 +4852,9 @@ static int process_backlog(struct napi_s
+@@ -4876,7 +4879,9 @@ static int process_backlog(struct napi_s
while (again) {
struct sk_buff *skb;
@@ -100,7 +100,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
rcu_read_lock();
__netif_receive_skb(skb);
rcu_read_unlock();
-@@ -4857,9 +4862,9 @@ static int process_backlog(struct napi_s
+@@ -4884,9 +4889,9 @@ static int process_backlog(struct napi_s
if (++work >= quota)
return work;
@@ -111,7 +111,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
rps_lock(sd);
if (skb_queue_empty(&sd->input_pkt_queue)) {
/*
-@@ -5201,13 +5206,21 @@ static __latent_entropy void net_rx_acti
+@@ -5228,13 +5233,21 @@ static __latent_entropy void net_rx_acti
struct softnet_data *sd = this_cpu_ptr(&softnet_data);
unsigned long time_limit = jiffies + 2;
int budget = netdev_budget;
@@ -133,7 +133,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
for (;;) {
struct napi_struct *n;
-@@ -8010,6 +8023,9 @@ static int dev_cpu_callback(struct notif
+@@ -8037,6 +8050,9 @@ static int dev_cpu_callback(struct notif
netif_rx_ni(skb);
input_queue_head_incr(oldsd);
}
@@ -143,7 +143,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
return NOTIFY_OK;
}
-@@ -8314,8 +8330,9 @@ static int __init net_dev_init(void)
+@@ -8341,8 +8357,9 @@ static int __init net_dev_init(void)
INIT_WORK(flush, flush_backlog);
diff --git a/patches/softirq-preempt-fix-3-re.patch b/patches/softirq-preempt-fix-3-re.patch
index 293305e760b7..0af390d4852c 100644
--- a/patches/softirq-preempt-fix-3-re.patch
+++ b/patches/softirq-preempt-fix-3-re.patch
@@ -111,7 +111,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -2258,6 +2258,7 @@ static void __netif_reschedule(struct Qd
+@@ -2285,6 +2285,7 @@ static void __netif_reschedule(struct Qd
sd->output_queue_tailp = &q->next_sched;
raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_restore(flags);
@@ -119,7 +119,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
void __netif_schedule(struct Qdisc *q)
-@@ -2339,6 +2340,7 @@ void __dev_kfree_skb_irq(struct sk_buff
+@@ -2366,6 +2367,7 @@ void __dev_kfree_skb_irq(struct sk_buff
__this_cpu_write(softnet_data.completion_queue, skb);
raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_restore(flags);
@@ -127,7 +127,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
EXPORT_SYMBOL(__dev_kfree_skb_irq);
-@@ -3758,6 +3760,7 @@ static int enqueue_to_backlog(struct sk_
+@@ -3785,6 +3787,7 @@ static int enqueue_to_backlog(struct sk_
rps_unlock(sd);
local_irq_restore(flags);
@@ -135,7 +135,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
atomic_long_inc(&skb->dev->rx_dropped);
kfree_skb(skb);
-@@ -4804,6 +4807,7 @@ static void net_rps_action_and_irq_enabl
+@@ -4831,6 +4834,7 @@ static void net_rps_action_and_irq_enabl
sd->rps_ipi_list = NULL;
local_irq_enable();
@@ -143,7 +143,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
/* Send pending IPI's to kick RPS processing on remote cpus. */
while (remsd) {
-@@ -4817,6 +4821,7 @@ static void net_rps_action_and_irq_enabl
+@@ -4844,6 +4848,7 @@ static void net_rps_action_and_irq_enabl
} else
#endif
local_irq_enable();
@@ -151,7 +151,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
static bool sd_has_rps_ipi_waiting(struct softnet_data *sd)
-@@ -4894,6 +4899,7 @@ void __napi_schedule(struct napi_struct
+@@ -4921,6 +4926,7 @@ void __napi_schedule(struct napi_struct
local_irq_save(flags);
____napi_schedule(this_cpu_ptr(&softnet_data), n);
local_irq_restore(flags);
@@ -159,7 +159,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
EXPORT_SYMBOL(__napi_schedule);
-@@ -7995,6 +8001,7 @@ static int dev_cpu_callback(struct notif
+@@ -8022,6 +8028,7 @@ static int dev_cpu_callback(struct notif
raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_enable();
diff --git a/patches/softirq-split-locks.patch b/patches/softirq-split-locks.patch
index 4dd1cc4a6ed0..0fae66228af2 100644
--- a/patches/softirq-split-locks.patch
+++ b/patches/softirq-split-locks.patch
@@ -816,7 +816,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3829,11 +3829,9 @@ int netif_rx_ni(struct sk_buff *skb)
+@@ -3856,11 +3856,9 @@ int netif_rx_ni(struct sk_buff *skb)
trace_netif_rx_ni_entry(skb);
diff --git a/patches/softirq-wake-the-timer-softirq-if-needed.patch b/patches/softirq-wake-the-timer-softirq-if-needed.patch
index 0970defbc129..12e9ba287cd4 100644
--- a/patches/softirq-wake-the-timer-softirq-if-needed.patch
+++ b/patches/softirq-wake-the-timer-softirq-if-needed.patch
@@ -1,4 +1,3 @@
-From 8f8d71af7dbd27cb36841907b50bd1b6ef181786 Mon Sep 17 00:00:00 2001
From: Mike Galbraith <efault@gmx.de>
Date: Fri, 20 Jan 2017 18:10:20 +0100
Subject: [PATCH] softirq: wake the timer softirq if needed
diff --git a/patches/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch b/patches/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch
index d6bc5b2b83ca..c17d9780043f 100644
--- a/patches/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch
+++ b/patches/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch
@@ -37,7 +37,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3784,7 +3784,7 @@ static int netif_rx_internal(struct sk_b
+@@ -3811,7 +3811,7 @@ static int netif_rx_internal(struct sk_b
struct rps_dev_flow voidflow, *rflow = &voidflow;
int cpu;
@@ -46,7 +46,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
rcu_read_lock();
cpu = get_rps_cpu(skb->dev, skb, &rflow);
-@@ -3794,13 +3794,13 @@ static int netif_rx_internal(struct sk_b
+@@ -3821,13 +3821,13 @@ static int netif_rx_internal(struct sk_b
ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail);
rcu_read_unlock();
diff --git a/patches/x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch b/patches/x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch
index ebd11b4a83b6..b86f9c939a67 100644
--- a/patches/x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch
+++ b/patches/x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch
@@ -1,4 +1,3 @@
-From 309789b8125b7eee6fd1c3a4716fcb6ea1ad32ba Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 21 Oct 2016 10:29:11 +0200
Subject: [PATCH] x86/apic: get rid of "warning: 'acpi_ioapic_lock' defined but
diff --git a/patches/x86-mm-cpa-avoid-wbinvd-for-PREEMPT.patch b/patches/x86-mm-cpa-avoid-wbinvd-for-PREEMPT.patch
index efc0800cdaef..dd5b734d5373 100644
--- a/patches/x86-mm-cpa-avoid-wbinvd-for-PREEMPT.patch
+++ b/patches/x86-mm-cpa-avoid-wbinvd-for-PREEMPT.patch
@@ -1,4 +1,3 @@
-From 80f348a39344f8e0695d5b6d00ffb413c248b0ca Mon Sep 17 00:00:00 2001
From: John Ogness <john.ogness@linutronix.de>
Date: Mon, 30 Jan 2017 09:41:21 +0100
Subject: [PATCH] x86/mm/cpa: avoid wbinvd() for PREEMPT