summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2017-01-20 11:02:45 +0100
committerSebastian Andrzej Siewior <bigeasy@linutronix.de>2017-01-20 11:02:45 +0100
commit6252f307c9bba52cf4c2ff0a10607807b7a6b483 (patch)
tree39f0f546e81f88b8cfb8466e55a78d1b8f9fc233
parent343386da95cbf5546691a85769d643a1c1b78dab (diff)
download4.12-rt-patches-6252f307c9bba52cf4c2ff0a10607807b7a6b483.tar.gz
[ANNOUNCE] v4.9.4-rt2
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-rw-r--r--patches/btrfs-drop-trace_btrfs_all_work_done-from-normal_wor.patch2
-rw-r--r--patches/btrfs-swap-free-and-trace-point-in-run_ordered_work.patch2
-rw-r--r--patches/cond-resched-softirq-rt.patch2
-rw-r--r--patches/cpu-rt-rework-cpu-down.patch4
-rw-r--r--patches/dm-make-rt-aware.patch2
-rw-r--r--patches/hotplug-light-get-online-cpus.patch6
-rw-r--r--patches/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch2
-rw-r--r--patches/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch2
-rw-r--r--patches/infiniband-mellanox-ib-use-nort-irq.patch4
-rw-r--r--patches/introduce_migrate_disable_cpu_light.patch6
-rw-r--r--patches/iommu-vt-d-don-t-disable-preemption-while-accessing-.patch4
-rw-r--r--patches/latency-hist.patch2
-rw-r--r--patches/localversion.patch2
-rw-r--r--patches/mm-convert-swap-to-percpu-locked.patch4
-rw-r--r--patches/mm-page_alloc-reduce-lock-sections-further.patch6
-rw-r--r--patches/mm-page_alloc-rt-friendly-per-cpu-pages.patch24
-rw-r--r--patches/mm-rt-kmap-atomic-scheduling.patch2
-rw-r--r--patches/net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch4
-rw-r--r--patches/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch2
-rw-r--r--patches/net-move-xmit_recursion-to-per-task-variable-on-RT.patch2
-rw-r--r--patches/net-provide-a-way-to-delegate-processing-a-softirq-t.patch2
-rw-r--r--patches/oleg-signal-rt-fix.patch2
-rw-r--r--patches/posix-timers-thread-posix-cpu-timers-on-rt.patch4
-rw-r--r--patches/preempt-lazy-support.patch2
-rw-r--r--patches/printk-kill.patch4
-rw-r--r--patches/ptrace-fix-ptrace-vs-tasklist_lock-race.patch4
-rw-r--r--patches/sc16is7xx_Drop_bogus_use_of_IRQF_ONESHOT.patch54
-rw-r--r--patches/sched-delay-put-task.patch6
-rw-r--r--patches/sched-mmdrop-delayed.patch6
-rw-r--r--patches/sched-rt-mutex-wakeup.patch2
-rw-r--r--patches/series1
-rw-r--r--patches/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch4
-rw-r--r--patches/skbufhead-raw-lock.patch12
-rw-r--r--patches/softirq-preempt-fix-3-re.patch8
-rw-r--r--patches/softirq-split-locks.patch4
-rw-r--r--patches/x86-kvm-require-const-tsc-for-rt.patch2
36 files changed, 73 insertions, 128 deletions
diff --git a/patches/btrfs-drop-trace_btrfs_all_work_done-from-normal_wor.patch b/patches/btrfs-drop-trace_btrfs_all_work_done-from-normal_wor.patch
index ca7952d7b49375..852d913e82aa5f 100644
--- a/patches/btrfs-drop-trace_btrfs_all_work_done-from-normal_wor.patch
+++ b/patches/btrfs-drop-trace_btrfs_all_work_done-from-normal_wor.patch
@@ -27,7 +27,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/fs/btrfs/async-thread.c
+++ b/fs/btrfs/async-thread.c
-@@ -318,8 +318,6 @@ static void normal_work_helper(struct bt
+@@ -332,8 +332,6 @@ static void normal_work_helper(struct bt
set_bit(WORK_DONE_BIT, &work->flags);
run_ordered_work(wq);
}
diff --git a/patches/btrfs-swap-free-and-trace-point-in-run_ordered_work.patch b/patches/btrfs-swap-free-and-trace-point-in-run_ordered_work.patch
index 41d0070ef22339..4bd02b5779d6b6 100644
--- a/patches/btrfs-swap-free-and-trace-point-in-run_ordered_work.patch
+++ b/patches/btrfs-swap-free-and-trace-point-in-run_ordered_work.patch
@@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/fs/btrfs/async-thread.c
+++ b/fs/btrfs/async-thread.c
-@@ -288,8 +288,8 @@ static void run_ordered_work(struct __bt
+@@ -302,8 +302,8 @@ static void run_ordered_work(struct __bt
* we don't want to call the ordered free functions
* with the lock held though
*/
diff --git a/patches/cond-resched-softirq-rt.patch b/patches/cond-resched-softirq-rt.patch
index 89532ca7e9dbe4..d53bdadfad63ff 100644
--- a/patches/cond-resched-softirq-rt.patch
+++ b/patches/cond-resched-softirq-rt.patch
@@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -3366,12 +3366,16 @@ extern int __cond_resched_lock(spinlock_
+@@ -3367,12 +3367,16 @@ extern int __cond_resched_lock(spinlock_
__cond_resched_lock(lock); \
})
diff --git a/patches/cpu-rt-rework-cpu-down.patch b/patches/cpu-rt-rework-cpu-down.patch
index 8a91b7f8206716..495b2da2d2b451 100644
--- a/patches/cpu-rt-rework-cpu-down.patch
+++ b/patches/cpu-rt-rework-cpu-down.patch
@@ -56,7 +56,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -2473,6 +2473,10 @@ extern void do_set_cpus_allowed(struct t
+@@ -2474,6 +2474,10 @@ extern void do_set_cpus_allowed(struct t
extern int set_cpus_allowed_ptr(struct task_struct *p,
const struct cpumask *new_mask);
@@ -67,7 +67,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#else
static inline void do_set_cpus_allowed(struct task_struct *p,
const struct cpumask *new_mask)
-@@ -2485,6 +2489,9 @@ static inline int set_cpus_allowed_ptr(s
+@@ -2486,6 +2490,9 @@ static inline int set_cpus_allowed_ptr(s
return -EINVAL;
return 0;
}
diff --git a/patches/dm-make-rt-aware.patch b/patches/dm-make-rt-aware.patch
index 08238ec4c9abc3..5d4b4f5aae9390 100644
--- a/patches/dm-make-rt-aware.patch
+++ b/patches/dm-make-rt-aware.patch
@@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/drivers/md/dm-rq.c
+++ b/drivers/md/dm-rq.c
-@@ -832,7 +832,7 @@ static void dm_old_request_fn(struct req
+@@ -838,7 +838,7 @@ static void dm_old_request_fn(struct req
/* Establish tio->ti before queuing work (map_tio_request) */
tio->ti = ti;
kthread_queue_work(&md->kworker, &tio->work);
diff --git a/patches/hotplug-light-get-online-cpus.patch b/patches/hotplug-light-get-online-cpus.patch
index 998480b06402d1..4ac72d0a4a887d 100644
--- a/patches/hotplug-light-get-online-cpus.patch
+++ b/patches/hotplug-light-get-online-cpus.patch
@@ -18,7 +18,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
-@@ -180,9 +180,6 @@ static inline void cpu_notifier_register
+@@ -173,9 +173,6 @@ static inline void cpu_notifier_register
#endif /* CONFIG_SMP */
extern struct bus_type cpu_subsys;
@@ -28,7 +28,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#ifdef CONFIG_HOTPLUG_CPU
/* Stop CPUs going up and down. */
-@@ -192,6 +189,8 @@ extern void get_online_cpus(void);
+@@ -185,6 +182,8 @@ extern void get_online_cpus(void);
extern void put_online_cpus(void);
extern void cpu_hotplug_disable(void);
extern void cpu_hotplug_enable(void);
@@ -37,7 +37,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#define hotcpu_notifier(fn, pri) cpu_notifier(fn, pri)
#define __hotcpu_notifier(fn, pri) __cpu_notifier(fn, pri)
#define register_hotcpu_notifier(nb) register_cpu_notifier(nb)
-@@ -209,6 +208,8 @@ static inline void cpu_hotplug_done(void
+@@ -202,6 +201,8 @@ static inline void cpu_hotplug_done(void
#define put_online_cpus() do { } while (0)
#define cpu_hotplug_disable() do { } while (0)
#define cpu_hotplug_enable() do { } while (0)
diff --git a/patches/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch b/patches/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
index 081a6b79b263d6..56d7c4fd20586b 100644
--- a/patches/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
+++ b/patches/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
@@ -330,7 +330,7 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu>
/* Get the next period (per-CPU) */
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
-@@ -523,6 +523,7 @@ static void watchdog_enable(unsigned int
+@@ -522,6 +522,7 @@ static void watchdog_enable(unsigned int
/* kick off the timer for the hardlockup detector */
hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
hrtimer->function = watchdog_timer_fn;
diff --git a/patches/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch b/patches/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch
index 0c7e8ebfdfc421..898a270e27f061 100644
--- a/patches/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch
+++ b/patches/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch
@@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -12142,7 +12142,7 @@ void intel_check_page_flip(struct drm_i9
+@@ -12131,7 +12131,7 @@ void intel_check_page_flip(struct drm_i9
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
struct intel_flip_work *work;
diff --git a/patches/infiniband-mellanox-ib-use-nort-irq.patch b/patches/infiniband-mellanox-ib-use-nort-irq.patch
index db9e31d3dea33f..f7456ed0b8dc43 100644
--- a/patches/infiniband-mellanox-ib-use-nort-irq.patch
+++ b/patches/infiniband-mellanox-ib-use-nort-irq.patch
@@ -20,7 +20,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
-@@ -899,7 +899,7 @@ void ipoib_mcast_restart_task(struct wor
+@@ -902,7 +902,7 @@ void ipoib_mcast_restart_task(struct wor
ipoib_dbg_mcast(priv, "restarting multicast task\n");
@@ -29,7 +29,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
netif_addr_lock(dev);
spin_lock(&priv->lock);
-@@ -981,7 +981,7 @@ void ipoib_mcast_restart_task(struct wor
+@@ -984,7 +984,7 @@ void ipoib_mcast_restart_task(struct wor
spin_unlock(&priv->lock);
netif_addr_unlock(dev);
diff --git a/patches/introduce_migrate_disable_cpu_light.patch b/patches/introduce_migrate_disable_cpu_light.patch
index 94a266d99b0415..a4dd649cf76e18 100644
--- a/patches/introduce_migrate_disable_cpu_light.patch
+++ b/patches/introduce_migrate_disable_cpu_light.patch
@@ -41,7 +41,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
-@@ -180,6 +180,9 @@ static inline void cpu_notifier_register
+@@ -173,6 +173,9 @@ static inline void cpu_notifier_register
#endif /* CONFIG_SMP */
extern struct bus_type cpu_subsys;
@@ -89,7 +89,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
int nr_cpus_allowed;
cpumask_t cpus_allowed;
-@@ -1990,14 +1996,6 @@ static inline struct vm_struct *task_sta
+@@ -1991,14 +1997,6 @@ static inline struct vm_struct *task_sta
}
#endif
@@ -104,7 +104,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#define TNF_MIGRATED 0x01
#define TNF_NO_GROUP 0x02
#define TNF_SHARED 0x04
-@@ -3515,6 +3513,31 @@ static inline void set_task_cpu(struct t
+@@ -3516,6 +3514,31 @@ static inline void set_task_cpu(struct t
#endif /* CONFIG_SMP */
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 bd84f97cbf9dae..379fe83f5b31e3 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;
-@@ -3696,10 +3696,8 @@ static void add_unmap(struct dmar_domain
+@@ -3715,10 +3715,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
-@@ -3732,8 +3730,6 @@ static void add_unmap(struct dmar_domain
+@@ -3751,8 +3749,6 @@ static void add_unmap(struct dmar_domain
}
flush_data->size++;
spin_unlock_irqrestore(&flush_data->lock, flags);
diff --git a/patches/latency-hist.patch b/patches/latency-hist.patch
index 7469413e997426..af1c60ef6a3fcd 100644
--- a/patches/latency-hist.patch
+++ b/patches/latency-hist.patch
@@ -236,7 +236,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
int start_pid;
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1917,6 +1917,12 @@ struct task_struct {
+@@ -1918,6 +1918,12 @@ struct task_struct {
/* bitmask and counter of trace recursion */
unsigned long trace_recursion;
#endif /* CONFIG_TRACING */
diff --git a/patches/localversion.patch b/patches/localversion.patch
index a02382e6df7098..279489a1d1455d 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 @@
-+-rt1
++-rt2
diff --git a/patches/mm-convert-swap-to-percpu-locked.patch b/patches/mm-convert-swap-to-percpu-locked.patch
index 980ef9c9fa9f34..e638baa0a10224 100644
--- a/patches/mm-convert-swap-to-percpu-locked.patch
+++ b/patches/mm-convert-swap-to-percpu-locked.patch
@@ -27,7 +27,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
extern void lru_cache_add_file(struct page *page);
--- a/mm/compaction.c
+++ b/mm/compaction.c
-@@ -1612,10 +1612,12 @@ static enum compact_result compact_zone(
+@@ -1593,10 +1593,12 @@ static enum compact_result compact_zone(
block_start_pfn(cc->migrate_pfn, cc->order);
if (cc->last_migrated_pfn < current_block_start) {
@@ -44,7 +44,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -6559,7 +6559,9 @@ static int page_alloc_cpu_notify(struct
+@@ -6567,7 +6567,9 @@ static int page_alloc_cpu_notify(struct
int cpu = (unsigned long)hcpu;
if (action == CPU_DEAD || action == CPU_DEAD_FROZEN) {
diff --git a/patches/mm-page_alloc-reduce-lock-sections-further.patch b/patches/mm-page_alloc-reduce-lock-sections-further.patch
index 63a3a83b6c1844..ec723b03314a0f 100644
--- a/patches/mm-page_alloc-reduce-lock-sections-further.patch
+++ b/patches/mm-page_alloc-reduce-lock-sections-further.patch
@@ -143,7 +143,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
static void __meminit __init_single_page(struct page *page, unsigned long pfn,
-@@ -2251,16 +2277,18 @@ static int rmqueue_bulk(struct zone *zon
+@@ -2259,16 +2285,18 @@ static int rmqueue_bulk(struct zone *zon
void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
{
unsigned long flags;
@@ -163,7 +163,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
#endif
-@@ -2276,16 +2304,21 @@ static void drain_pages_zone(unsigned in
+@@ -2284,16 +2312,21 @@ static void drain_pages_zone(unsigned in
unsigned long flags;
struct per_cpu_pageset *pset;
struct per_cpu_pages *pcp;
@@ -187,7 +187,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
/*
-@@ -2467,8 +2500,13 @@ void free_hot_cold_page(struct page *pag
+@@ -2475,8 +2508,13 @@ void free_hot_cold_page(struct page *pag
pcp->count++;
if (pcp->count >= pcp->high) {
unsigned long batch = READ_ONCE(pcp->batch);
diff --git a/patches/mm-page_alloc-rt-friendly-per-cpu-pages.patch b/patches/mm-page_alloc-rt-friendly-per-cpu-pages.patch
index 7066fcb16f33e8..53435ed7c3c0c4 100644
--- a/patches/mm-page_alloc-rt-friendly-per-cpu-pages.patch
+++ b/patches/mm-page_alloc-rt-friendly-per-cpu-pages.patch
@@ -57,7 +57,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
static void __init __free_pages_boot_core(struct page *page, unsigned int order)
-@@ -2240,14 +2253,14 @@ void drain_zone_pages(struct zone *zone,
+@@ -2248,14 +2261,14 @@ void drain_zone_pages(struct zone *zone,
unsigned long flags;
int to_drain, batch;
@@ -74,7 +74,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
#endif
-@@ -2264,7 +2277,7 @@ static void drain_pages_zone(unsigned in
+@@ -2272,7 +2285,7 @@ static void drain_pages_zone(unsigned in
struct per_cpu_pageset *pset;
struct per_cpu_pages *pcp;
@@ -83,7 +83,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
pset = per_cpu_ptr(zone->pageset, cpu);
pcp = &pset->pcp;
-@@ -2272,7 +2285,7 @@ static void drain_pages_zone(unsigned in
+@@ -2280,7 +2293,7 @@ static void drain_pages_zone(unsigned in
free_pcppages_bulk(zone, pcp->count, pcp);
pcp->count = 0;
}
@@ -92,7 +92,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
/*
-@@ -2358,8 +2371,17 @@ void drain_all_pages(struct zone *zone)
+@@ -2366,8 +2379,17 @@ void drain_all_pages(struct zone *zone)
else
cpumask_clear_cpu(cpu, &cpus_with_pcps);
}
@@ -110,7 +110,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
#ifdef CONFIG_HIBERNATION
-@@ -2419,7 +2441,7 @@ void free_hot_cold_page(struct page *pag
+@@ -2427,7 +2449,7 @@ void free_hot_cold_page(struct page *pag
migratetype = get_pfnblock_migratetype(page, pfn);
set_pcppage_migratetype(page, migratetype);
@@ -119,7 +119,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
__count_vm_event(PGFREE);
/*
-@@ -2450,7 +2472,7 @@ void free_hot_cold_page(struct page *pag
+@@ -2458,7 +2480,7 @@ void free_hot_cold_page(struct page *pag
}
out:
@@ -128,7 +128,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
/*
-@@ -2592,7 +2614,7 @@ struct page *buffered_rmqueue(struct zon
+@@ -2600,7 +2622,7 @@ struct page *buffered_rmqueue(struct zon
struct per_cpu_pages *pcp;
struct list_head *list;
@@ -137,7 +137,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
do {
pcp = &this_cpu_ptr(zone->pageset)->pcp;
list = &pcp->lists[migratetype];
-@@ -2619,7 +2641,7 @@ struct page *buffered_rmqueue(struct zon
+@@ -2627,7 +2649,7 @@ struct page *buffered_rmqueue(struct zon
* allocate greater than order-1 page units with __GFP_NOFAIL.
*/
WARN_ON_ONCE((gfp_flags & __GFP_NOFAIL) && (order > 1));
@@ -146,7 +146,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
do {
page = NULL;
-@@ -2631,22 +2653,24 @@ struct page *buffered_rmqueue(struct zon
+@@ -2639,22 +2661,24 @@ struct page *buffered_rmqueue(struct zon
if (!page)
page = __rmqueue(zone, order, migratetype);
} while (page && check_new_pages(page, order));
@@ -175,7 +175,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
return NULL;
}
-@@ -6523,6 +6547,7 @@ static int page_alloc_cpu_notify(struct
+@@ -6531,6 +6555,7 @@ static int page_alloc_cpu_notify(struct
void __init page_alloc_init(void)
{
hotcpu_notifier(page_alloc_cpu_notify, 0);
@@ -183,7 +183,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
/*
-@@ -7351,7 +7376,7 @@ void zone_pcp_reset(struct zone *zone)
+@@ -7359,7 +7384,7 @@ void zone_pcp_reset(struct zone *zone)
struct per_cpu_pageset *pset;
/* avoid races with drain_pages() */
@@ -192,7 +192,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
if (zone->pageset != &boot_pageset) {
for_each_online_cpu(cpu) {
pset = per_cpu_ptr(zone->pageset, cpu);
-@@ -7360,7 +7385,7 @@ void zone_pcp_reset(struct zone *zone)
+@@ -7368,7 +7393,7 @@ void zone_pcp_reset(struct zone *zone)
free_percpu(zone->pageset);
zone->pageset = &boot_pageset;
}
diff --git a/patches/mm-rt-kmap-atomic-scheduling.patch b/patches/mm-rt-kmap-atomic-scheduling.patch
index fd1b49f43f4a8f..72fe1464d1e0ad 100644
--- a/patches/mm-rt-kmap-atomic-scheduling.patch
+++ b/patches/mm-rt-kmap-atomic-scheduling.patch
@@ -229,7 +229,7 @@ Link: http://lkml.kernel.org/r/1311842631.5890.208.camel@twins
#include <asm/page.h>
#include <asm/ptrace.h>
-@@ -1979,6 +1980,12 @@ struct task_struct {
+@@ -1980,6 +1981,12 @@ struct task_struct {
int softirq_nestcnt;
unsigned int softirqs_raised;
#endif
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 57552f286f3ef5..f75f2ad747da21 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
-@@ -4914,6 +4914,7 @@ void __napi_schedule(struct napi_struct
+@@ -4916,6 +4916,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
-@@ -4925,6 +4926,7 @@ void __napi_schedule_irqoff(struct napi_
+@@ -4927,6 +4928,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-core-cpuhotplug-drain-input_pkt_queue-lockless.patch b/patches/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch
index c5e393e1266972..9bc59696fdfac3 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
-@@ -8022,7 +8022,7 @@ static int dev_cpu_callback(struct notif
+@@ -8024,7 +8024,7 @@ static int dev_cpu_callback(struct notif
netif_rx_ni(skb);
input_queue_head_incr(oldsd);
}
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 300688f42c30a7..5845849626c5bc 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
@@ -80,7 +80,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex);
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1982,6 +1982,9 @@ struct task_struct {
+@@ -1983,6 +1983,9 @@ struct task_struct {
#ifdef CONFIG_DEBUG_ATOMIC_SLEEP
unsigned long task_state_change;
#endif
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 0913999e2a1055..8f070899cf8301 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
-@@ -5255,7 +5255,7 @@ static __latent_entropy void net_rx_acti
+@@ -5257,7 +5257,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/oleg-signal-rt-fix.patch b/patches/oleg-signal-rt-fix.patch
index e32175017034ae..bb037c793c873d 100644
--- a/patches/oleg-signal-rt-fix.patch
+++ b/patches/oleg-signal-rt-fix.patch
@@ -76,7 +76,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#endif
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1695,6 +1695,10 @@ struct task_struct {
+@@ -1696,6 +1696,10 @@ struct task_struct {
sigset_t blocked, real_blocked;
sigset_t saved_sigmask; /* restored if set_restore_sigmask() was used */
struct sigpending pending;
diff --git a/patches/posix-timers-thread-posix-cpu-timers-on-rt.patch b/patches/posix-timers-thread-posix-cpu-timers-on-rt.patch
index 9aa01ce03b5f2c..039620766952f0 100644
--- a/patches/posix-timers-thread-posix-cpu-timers-on-rt.patch
+++ b/patches/posix-timers-thread-posix-cpu-timers-on-rt.patch
@@ -51,10 +51,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+#endif
/* process credentials */
- const struct cred __rcu *real_cred; /* objective and real subjective task
+ const struct cred __rcu *ptracer_cred; /* Tracer's credentials at attach */
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -1423,6 +1423,9 @@ static void rt_mutex_init_task(struct ta
+@@ -1426,6 +1426,9 @@ static void rt_mutex_init_task(struct ta
*/
static void posix_cpu_timers_init(struct task_struct *tsk)
{
diff --git a/patches/preempt-lazy-support.patch b/patches/preempt-lazy-support.patch
index 4a968d4796287f..b161863aa8922a 100644
--- a/patches/preempt-lazy-support.patch
+++ b/patches/preempt-lazy-support.patch
@@ -127,7 +127,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -3342,6 +3342,43 @@ static inline int test_tsk_need_resched(
+@@ -3343,6 +3343,43 @@ static inline int test_tsk_need_resched(
return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED));
}
diff --git a/patches/printk-kill.patch b/patches/printk-kill.patch
index 4d47410f2d0b6e..d5d24ac9416263 100644
--- a/patches/printk-kill.patch
+++ b/patches/printk-kill.patch
@@ -139,7 +139,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
static struct perf_event_attr wd_hw_attr = {
.type = PERF_TYPE_HARDWARE,
.config = PERF_COUNT_HW_CPU_CYCLES,
-@@ -349,6 +351,13 @@ static void watchdog_overflow_callback(s
+@@ -348,6 +350,13 @@ static void watchdog_overflow_callback(s
/* only print hardlockups once */
if (__this_cpu_read(hard_watchdog_warn) == true)
return;
@@ -153,7 +153,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
pr_emerg("Watchdog detected hard LOCKUP on cpu %d", this_cpu);
print_modules();
-@@ -366,6 +375,7 @@ static void watchdog_overflow_callback(s
+@@ -365,6 +374,7 @@ static void watchdog_overflow_callback(s
!test_and_set_bit(0, &hardlockup_allcpu_dumped))
trigger_allbutself_cpu_backtrace();
diff --git a/patches/ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/patches/ptrace-fix-ptrace-vs-tasklist_lock-race.patch
index 4bfc71e0e44564..b88b2ee3484c5a 100644
--- a/patches/ptrace-fix-ptrace-vs-tasklist_lock-race.patch
+++ b/patches/ptrace-fix-ptrace-vs-tasklist_lock-race.patch
@@ -41,7 +41,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#define task_contributes_to_load(task) \
((task->state & TASK_UNINTERRUPTIBLE) != 0 && \
(task->flags & PF_FROZEN) == 0 && \
-@@ -3359,6 +3356,51 @@ static inline int signal_pending_state(l
+@@ -3360,6 +3357,51 @@ static inline int signal_pending_state(l
return (state & TASK_INTERRUPTIBLE) || __fatal_signal_pending(p);
}
@@ -95,7 +95,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
* explicit rescheduling in places that are safe. The return
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
-@@ -130,7 +130,14 @@ static bool ptrace_freeze_traced(struct
+@@ -166,7 +166,14 @@ static bool ptrace_freeze_traced(struct
spin_lock_irq(&task->sighand->siglock);
if (task_is_traced(task) && !__fatal_signal_pending(task)) {
diff --git a/patches/sc16is7xx_Drop_bogus_use_of_IRQF_ONESHOT.patch b/patches/sc16is7xx_Drop_bogus_use_of_IRQF_ONESHOT.patch
deleted file mode 100644
index eecfc3a2289909..00000000000000
--- a/patches/sc16is7xx_Drop_bogus_use_of_IRQF_ONESHOT.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Subject: sc16is7xx: Drop bogus use of IRQF_ONESHOT
-From: Josh Cartwright <joshc@ni.com>
-Date: Thu, 18 Feb 2016 11:26:12 -0600
-
-The use of IRQF_ONESHOT when registering an interrupt handler with
-request_irq() is non-sensical.
-
-Not only that, it also prevents the handler from being threaded when it
-otherwise should be w/ IRQ_FORCED_THREADING is enabled. This causes the
-following deadlock observed by Sean Nyekjaer on -rt:
-
-Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
-[..]
- rt_spin_lock_slowlock from (queue_kthread_work+0x18/0x74)
- queue_kthread_work) from (sc16is7xx_irq+0x10/0x18 [sc16is7xx])
- sc16is7xx_irq [sc16is7xx]) from (handle_irq_event_percpu+0x70/0x158)
- handle_irq_event_percpu) from (handle_irq_event+0x68/0xa8)
- handle_irq_event) from (handle_level_irq+0x10c/0x184)
- handle_level_irq) from (generic_handle_irq+0x2c/0x3c)
- generic_handle_irq) from (mxc_gpio_irq_handler+0x3c/0x108)
- mxc_gpio_irq_handler) from (mx3_gpio_irq_handler+0x80/0xcc)
- mx3_gpio_irq_handler) from (generic_handle_irq+0x2c/0x3c)
- generic_handle_irq) from (__handle_domain_irq+0x7c/0xe8)
- __handle_domain_irq) from (gic_handle_irq+0x24/0x5c)
- gic_handle_irq) from (__irq_svc+0x40/0x88)
- (__irq_svc) from (rt_spin_unlock+0x1c/0x68)
- (rt_spin_unlock) from (kthread_worker_fn+0x104/0x17c)
- (kthread_worker_fn) from (kthread+0xd0/0xe8)
- (kthread) from (ret_from_fork+0x14/0x2c)
-
-Fixes: 9e6f4ca3e567 ("sc16is7xx: use kthread_worker for tx_work and irq")
-Reported-by: Sean Nyekjaer <sean.nyekjaer@prevas.dk>
-Signed-off-by: Josh Cartwright <joshc@ni.com>
-Cc: linux-rt-users@vger.kernel.org
-Cc: Jakub Kicinski <moorray3@wp.pl>
-Cc: stable@vger.kernel.org
-Cc: linux-serial@vger.kernel.org
-Link: http://lkml.kernel.org/r/1455816372-13989-1-git-send-email-joshc@ni.com
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
----
- drivers/tty/serial/sc16is7xx.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/tty/serial/sc16is7xx.c
-+++ b/drivers/tty/serial/sc16is7xx.c
-@@ -1264,7 +1264,7 @@ static int sc16is7xx_probe(struct device
-
- /* Setup interrupt */
- ret = devm_request_irq(dev, irq, sc16is7xx_irq,
-- IRQF_ONESHOT | flags, dev_name(dev), s);
-+ flags, dev_name(dev), s);
- if (!ret)
- return 0;
-
diff --git a/patches/sched-delay-put-task.patch b/patches/sched-delay-put-task.patch
index d5466d24eff1a6..f1150e7201897f 100644
--- a/patches/sched-delay-put-task.patch
+++ b/patches/sched-delay-put-task.patch
@@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1961,6 +1961,9 @@ struct task_struct {
+@@ -1962,6 +1962,9 @@ struct task_struct {
unsigned int sequential_io;
unsigned int sequential_io_avg;
#endif
@@ -23,7 +23,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#ifdef CONFIG_DEBUG_ATOMIC_SLEEP
unsigned long task_state_change;
#endif
-@@ -2218,6 +2221,15 @@ extern struct pid *cad_pid;
+@@ -2219,6 +2222,15 @@ extern struct pid *cad_pid;
extern void free_task(struct task_struct *tsk);
#define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0)
@@ -39,7 +39,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
extern void __put_task_struct(struct task_struct *t);
static inline void put_task_struct(struct task_struct *t)
-@@ -2225,6 +2237,7 @@ static inline void put_task_struct(struc
+@@ -2226,6 +2238,7 @@ static inline void put_task_struct(struc
if (atomic_dec_and_test(&t->usage))
__put_task_struct(t);
}
diff --git a/patches/sched-mmdrop-delayed.patch b/patches/sched-mmdrop-delayed.patch
index f2a93dedf3040f..994d5ae9f8431e 100644
--- a/patches/sched-mmdrop-delayed.patch
+++ b/patches/sched-mmdrop-delayed.patch
@@ -23,7 +23,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#include <linux/page-flags-layout.h>
#include <linux/workqueue.h>
#include <asm/page.h>
-@@ -508,6 +509,9 @@ struct mm_struct {
+@@ -509,6 +510,9 @@ struct mm_struct {
bool tlb_flush_pending;
#endif
struct uprobes_state uprobes_state;
@@ -35,7 +35,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
void __user *bd_addr;
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -2905,6 +2905,17 @@ static inline void mmdrop(struct mm_stru
+@@ -2906,6 +2906,17 @@ static inline void mmdrop(struct mm_stru
__mmdrop(mm);
}
@@ -55,7 +55,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
struct mm_struct *mm = container_of(work, struct mm_struct, async_put_work);
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -862,6 +862,19 @@ void __mmdrop(struct mm_struct *mm)
+@@ -865,6 +865,19 @@ void __mmdrop(struct mm_struct *mm)
}
EXPORT_SYMBOL_GPL(__mmdrop);
diff --git a/patches/sched-rt-mutex-wakeup.patch b/patches/sched-rt-mutex-wakeup.patch
index 12f200d2297f91..150aa270dc4a64 100644
--- a/patches/sched-rt-mutex-wakeup.patch
+++ b/patches/sched-rt-mutex-wakeup.patch
@@ -25,7 +25,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
void *stack;
atomic_t usage;
unsigned int flags; /* per process flags, defined below */
-@@ -2697,6 +2698,7 @@ extern void xtime_update(unsigned long t
+@@ -2698,6 +2699,7 @@ extern void xtime_update(unsigned long t
extern int wake_up_state(struct task_struct *tsk, unsigned int state);
extern int wake_up_process(struct task_struct *tsk);
diff --git a/patches/series b/patches/series
index dea119b46e38f9..d068551d70da57 100644
--- a/patches/series
+++ b/patches/series
@@ -14,7 +14,6 @@ timer-make-the-base-lock-raw.patch
############################################################
# Stuff broken upstream, patches submitted
############################################################
-sc16is7xx_Drop_bogus_use_of_IRQF_ONESHOT.patch
# Those two should vanish soon (not use PIT during bootup)
at91_dont_enable_disable_clock.patch
diff --git a/patches/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/patches/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch
index bdbe97b649b255..da30f95a815de4 100644
--- a/patches/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch
+++ b/patches/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch
@@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1684,6 +1684,7 @@ struct task_struct {
+@@ -1685,6 +1685,7 @@ struct task_struct {
/* signal handlers */
struct signal_struct *signal;
struct sighand_struct *sighand;
@@ -48,7 +48,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -1549,6 +1549,7 @@ static __latent_entropy struct task_stru
+@@ -1552,6 +1552,7 @@ static __latent_entropy struct task_stru
spin_lock_init(&p->alloc_lock);
init_sigpending(&p->pending);
diff --git a/patches/skbufhead-raw-lock.patch b/patches/skbufhead-raw-lock.patch
index 4bb689f258eac6..72456d99e2c72d 100644
--- a/patches/skbufhead-raw-lock.patch
+++ b/patches/skbufhead-raw-lock.patch
@@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -2846,6 +2846,7 @@ struct softnet_data {
+@@ -2851,6 +2851,7 @@ struct softnet_data {
unsigned int dropped;
struct sk_buff_head input_pkt_queue;
struct napi_struct backlog;
@@ -90,7 +90,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
}
static void flush_all_backlogs(void)
-@@ -4852,7 +4855,9 @@ static int process_backlog(struct napi_s
+@@ -4854,7 +4857,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();
-@@ -4860,9 +4865,9 @@ static int process_backlog(struct napi_s
+@@ -4862,9 +4867,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)) {
/*
-@@ -5204,13 +5209,21 @@ static __latent_entropy void net_rx_acti
+@@ -5206,13 +5211,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;
-@@ -8013,6 +8026,9 @@ static int dev_cpu_callback(struct notif
+@@ -8015,6 +8028,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;
}
-@@ -8317,8 +8333,9 @@ static int __init net_dev_init(void)
+@@ -8319,8 +8335,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 4c7a11b8329538..54ceb2b0dd8919 100644
--- a/patches/softirq-preempt-fix-3-re.patch
+++ b/patches/softirq-preempt-fix-3-re.patch
@@ -135,7 +135,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
atomic_long_inc(&skb->dev->rx_dropped);
kfree_skb(skb);
-@@ -4807,6 +4810,7 @@ static void net_rps_action_and_irq_enabl
+@@ -4809,6 +4812,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) {
-@@ -4820,6 +4824,7 @@ static void net_rps_action_and_irq_enabl
+@@ -4822,6 +4826,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)
-@@ -4897,6 +4902,7 @@ void __napi_schedule(struct napi_struct
+@@ -4899,6 +4904,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);
-@@ -7998,6 +8004,7 @@ static int dev_cpu_callback(struct notif
+@@ -8000,6 +8006,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 ab2c5bf793c9d9..9f832e50a66c5f 100644
--- a/patches/softirq-split-locks.patch
+++ b/patches/softirq-split-locks.patch
@@ -172,7 +172,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* Are we in NMI context?
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1964,6 +1964,8 @@ struct task_struct {
+@@ -1965,6 +1965,8 @@ struct task_struct {
#endif
#ifdef CONFIG_PREEMPT_RT_BASE
struct rcu_head put_rcu;
@@ -181,7 +181,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#endif
#ifdef CONFIG_DEBUG_ATOMIC_SLEEP
unsigned long task_state_change;
-@@ -2280,6 +2282,7 @@ extern void thread_group_cputime_adjuste
+@@ -2281,6 +2283,7 @@ extern void thread_group_cputime_adjuste
/*
* Per process flags
*/
diff --git a/patches/x86-kvm-require-const-tsc-for-rt.patch b/patches/x86-kvm-require-const-tsc-for-rt.patch
index 0aabd962ee860d..5c1e7e19e8fe22 100644
--- a/patches/x86-kvm-require-const-tsc-for-rt.patch
+++ b/patches/x86-kvm-require-const-tsc-for-rt.patch
@@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
-@@ -5925,6 +5925,13 @@ int kvm_arch_init(void *opaque)
+@@ -5930,6 +5930,13 @@ int kvm_arch_init(void *opaque)
goto out;
}