###########################################################
# DELTA against a known Linus release
###########################################################

############################################################
# UPSTREAM changes queued
############################################################
ARM-imx-always-use-TWD-on-IMX6Q.patch
tracing-Show-the-preempt-count-of-when-the-event-was.patch

# timer: "Refactor the timer wheel v4' + 2 prerequisites
drm-i915-Use-consistent-forcewake-auto-release-timeo.patch
timer-add-setup_deferrable_timer-macro.patch

timer-Make-pinned-a-timer-property.patch
x86-apic-uv-Initialize-timer-as-pinned.patch
x86-mce-Initialize-timer-as-pinned.patch
driver-net-ethernet-tile-Initialize-timer-as-pinned.patch
drivers-tty-metag_da-Initialize-timer-as-pinned.patch
drivers-tty-mips_ejtag-Initialize-timer-as-pinned.patch
net-ipv4-inet-Initialize-timers-as-pinned.patch
timer-Remove-mod_timer_pinned.patch
signal-Use-hrtimer-for-sigtimedwait.patch
hlist-Add-hlist_is_singular_node-helper.patch
timer-Give-a-few-structs-and-members-proper-names.patch
timer-Reduce-the-CPU-index-space-to-256k.patch
timer-Switch-to-a-non-cascading-wheel.patch
timer-Remove-slack-leftovers.patch
timer-Move-__run_timers-function.patch
timer-Optimize-collect-timers-for-NOHZ.patch
tick-sched-Remove-pointless-empty-function.patch
timer-Forward-wheel-clock-whenever-possible.patch
timer-Only-wake-softirq-if-necessary.patch
timer-Split-out-index-calculation.patch
timer-Optimization-for-same-expiry-time-in-mod_timer.patch

############################################################
# UPSTREAM FIXES, patches pending
############################################################
timer-make-the-base-lock-raw.patch

############################################################
# Stuff broken upstream, patches submitted
############################################################
sched-use-tsk_cpus_allowed-instead-of-accessing-cpus.patch
sched-provide-a-tsk_nr_cpus_allowed-helper.patch
sc16is7xx_Drop_bogus_use_of_IRQF_ONESHOT.patch
crypto-ccp-remove-rwlocks_types.h.patch
infiniband-ulp-ipoib-remove-pkey_mutex.patch
sched-preempt-Fix-preempt_count-manipulations.patch
x86-mm-disable-preemption-during-CR3-read-write.patch

# Those two should vanish soon (not use PIT during bootup)
at91_dont_enable_disable_clock.patch

############################################################
# Stuff which needs addressing upstream, but requires more
# information
############################################################
rfc-arm-smp-__cpu_disable-fix-sleeping-function-called-from-invalid-context.patch

############################################################
# Stuff broken upstream, need to be sent
############################################################
rtmutex--Handle-non-enqueued-waiters-gracefully.patch

# Wants a different fix for upstream

############################################################
# Submitted on LKML
############################################################

# SPARC part of erly printk consolidation
sparc64-use-generic-rwsem-spinlocks-rt.patch

# SRCU
kernel-SRCU-provide-a-static-initializer.patch

############################################################
# Submitted to mips ML
############################################################

############################################################
# Submitted to ARM ML
############################################################

############################################################
# Submitted to PPC ML
############################################################

############################################################
# Submitted on LKML
############################################################

############################################################
# Submitted to net-dev
############################################################

############################################################
# Pending in tip
############################################################

############################################################
# Stuff which should go upstream ASAP
############################################################

# SCHED BLOCK/WQ
block-shorten-interrupt-disabled-regions.patch

# Timekeeping split jiffies lock. Needs a good argument :)
timekeeping-split-jiffies-lock.patch

# Tracing
tracing-account-for-preempt-off-in-preempt_schedule.patch

# PTRACE/SIGNAL crap
signal-revert-ptrace-preempt-magic.patch

# ARM lock annotation
arm-convert-boot-lock-to-raw.patch

# PREEMPT_ENABLE_NO_RESCHED

# SIGNALS / POSIXTIMERS
posix-timers-no-broadcast.patch
signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch

# SCHED

# GENERIC CMPXCHG

# SHORTEN PREEMPT DISABLED
drivers-random-reduce-preempt-disabled-region.patch

# CLOCKSOURCE
arm-at91-pit-remove-irq-handler-when-clock-is-unused.patch
clockevents-drivers-timer-atmel-pit-fix-double-free_.patch
clocksource-tclib-allow-higher-clockrates.patch

# DRIVERS NET
drivers-net-8139-disable-irq-nosync.patch

# PREEMPT

# PM
suspend-prevernt-might-sleep-splats.patch

# NETWORKING
net-prevent-abba-deadlock.patch
net-sched-dev_deactivate_many-use-msleep-1-instead-o.patch

# X86
x86-io-apic-migra-no-unmask.patch

# RCU

# LOCKING INIT FIXES

# PCI
pci-access-use-__wake_up_all_locked.patch

# WORKQUEUE


#####################################################
# Stuff which should go mainline, but wants some care
#####################################################

# SEQLOCK

# ANON RW SEMAPHORES

# TRACING
latencyhist-disable-jump-labels.patch
latency-hist.patch
latency_hist-update-sched_wakeup-probe.patch
trace-latency-hist-Consider-new-argument-when-probin.patch
trace_Use_rcuidle_version_for_preemptoff_hist_trace_point.patch

# HW LATENCY DETECTOR - this really wants a rewrite
hwlatdetect.patch
hwlat-detector-Update-hwlat_detector-to-add-outer-lo.patch
hwlat-detector-Use-trace_clock_local-if-available.patch
hwlat-detector-Use-thread-instead-of-stop-machine.patch
hwlat-detector-Don-t-ignore-threshold-module-paramet.patch

##################################################
# REAL RT STUFF starts here
##################################################

# PRINTK
printk-kill.patch
printk-27force_early_printk-27-boot-param-to-help-with-debugging.patch

# Enable RT CONFIG
rt-preempt-base-config.patch
kconfig-disable-a-few-options-rt.patch
kconfig-preempt-rt-full.patch

# WARN/BUG_ON_RT
bug-rt-dependend-variants.patch
iommu-amd--Use-WARN_ON_NORT.patch

# LOCAL_IRQ_RT/NON_RT
local-irq-rt-depending-variants.patch

# PREEMPT NORT
preempt-nort-rt-variants.patch

# local locks & migrate disable
introduce_migrate_disable_cpu_light.patch
rt-local-irq-lock.patch
locallock-add-local_lock_on.patch

# ANNOTATE local_irq_disable sites
ata-disable-interrupts-if-non-rt.patch
ide-use-nort-local-irq-variants.patch
infiniband-mellanox-ib-use-nort-irq.patch
inpt-gameport-use-local-irq-nort.patch
user-use-local-irq-nort.patch
usb-use-_nort-in-giveback.patch
mm-scatterlist-dont-disable-irqs-on-RT.patch
mm-workingset-do-not-protect-workingset_shadow_nodes.patch

# Sigh
signal-fix-up-rcu-wreckage.patch
oleg-signal-rt-fix.patch
x86-signal-delay-calling-signals-on-32bit.patch

# ANNOTATE BUG/WARNON
net-wireless-warn-nort.patch

# BIT SPINLOCKS - SIGH
fs-replace-bh_uptodate_lock-for-rt.patch
fs-jbd-replace-bh_state-lock.patch

# GENIRQ
list_bl.h-make-list-head-locking-RT-safe.patch
list_bl-fixup-bogus-lockdep-warning.patch
genirq-disable-irqpoll-on-rt.patch
genirq-force-threading.patch
genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch

# DRIVERS NET
drivers-net-fix-livelock-issues.patch
drivers-net-vortex-fix-locking-issues.patch

# MM PAGE_ALLOC
mm-page_alloc-rt-friendly-per-cpu-pages.patch
mm-page_alloc-reduce-lock-sections-further.patch

# MM SWAP
mm-convert-swap-to-percpu-locked.patch
mm-perform-lru_add_drain_all-remotely.patch

# MM vmstat
mm-make-vmstat-rt-aware.patch

# MM memory
re-preempt_rt_full-arm-coredump-fails-for-cpu-3e-3d-4.patch

# MM bounce
mm-bounce-local-irq-save-nort.patch

# MM SLxB
mm-disable-sloub-rt.patch
mm-enable-slub.patch
slub-enable-irqs-for-no-wait.patch
slub-disable-SLUB_CPU_PARTIAL.patch

# MM
mm-page-alloc-use-local-lock-on-target-cpu.patch
mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
mm-memcontrol-do_not_disable_irq.patch
mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch
mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch
mm-zsmalloc-Use-get-put_cpu_light-in-zs_map_object-z.patch

# RADIX TREE
radix-tree-rt-aware.patch

# PANIC
panic-disable-random-on-rt.patch

# IPC
ipc-msg-Implement-lockless-pipelined-wakeups.patch

# RELAY
relay-fix-timer-madness.patch

# TIMERS
timers-prepare-for-full-preemption.patch
timer-delay-waking-softirqs-from-the-jiffy-tick.patch

# HRTIMERS
hrtimers-prepare-full-preemption.patch
hrtimer-enfore-64byte-alignment.patch
hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
sched-deadline-dl_task_timer-has-to-be-irqsafe.patch
timer-fd-avoid-live-lock.patch
hrtimer-Move-schedule_work-call-to-helper-thread.patch
tick-broadcast--Make-hrtimer-irqsafe.patch

# POSIX-CPU-TIMERS
posix-timers-thread-posix-cpu-timers-on-rt.patch

# SCHEDULER
sched-delay-put-task.patch
sched-limit-nr-migrate.patch
sched-mmdrop-delayed.patch
sched-rt-mutex-wakeup.patch
sched-might-sleep-do-not-account-rcu-depth.patch
cond-resched-softirq-rt.patch
cond-resched-lock-rt-tweak.patch
sched-disable-ttwu-queue.patch
sched-disable-rt-group-sched-on-rt.patch
sched-ttwu-ensure-success-return-is-correct.patch
sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch

# STOP MACHINE
stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
stop-machine-raw-lock.patch

# MIGRATE DISABLE AND PER CPU
hotplug-light-get-online-cpus.patch
hotplug-sync_unplug-no-27-5cn-27-in-task-name.patch
re-migrate_disable-race-with-cpu-hotplug-3f.patch
ftrace-migrate-disable-tracing.patch
hotplug-use-migrate-disable.patch

# NOHZ

# LOCKDEP
lockdep-no-softirq-accounting-on-rt.patch

# SOFTIRQ
mutex-no-spin-on-rt.patch
tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch
softirq-preempt-fix-3-re.patch
softirq-disable-softirq-stacks-for-rt.patch
softirq-split-locks.patch
kernel-softirq-unlock-with-irqs-on.patch
kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch
irq-allow-disabling-of-softirq-processing-in-irq-thread-context.patch
softirq-split-timer-softirqs-out-of-ksoftirqd.patch
rtmutex-trylock-is-okay-on-RT.patch
kernel-rtmutex-only-warn-once-on-a-try-lock-from-bad.patch

# RAID5
md-raid5-percpu-handling-rt-aware.patch
#
i915_compile_fix.patch

# FUTEX/RTMUTEX
rtmutex-futex-prepare-rt.patch
futex-requeue-pi-fix.patch
0005-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch

# RTMUTEX
pid.h-include-atomic.h.patch
locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
rtmutex-lock-killable.patch
spinlock-types-separate-raw.patch
rtmutex-avoid-include-hell.patch
rtmutex_dont_include_rcu.patch
rt-add-rt-locks.patch
rtmutex-Use-chainwalking-control-enum.patch
rtmutex-add-a-first-shot-of-ww_mutex.patch
ptrace-fix-ptrace-vs-tasklist_lock-race.patch

# RCU
peter_zijlstra-frob-rcu.patch
rcu-merge-rcu-bh-into-rcu-preempt-for-rt.patch
patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch
rcutree-rcu_bh_qs-disable-irq-while-calling-rcu_pree.patch
rcutorture-comment-out-rcu_bh-ops-on-PREEMPT_RT_FULL.patch
rcu-disable-more-spots-of-rcu_bh.patch

# LGLOCKS - lovely
lglocks-rt.patch
lockinglglocks_Use_preempt_enabledisable_nort()_in_lg_double_locklg_double_unlock.patch

# STOP machine (depend on lglock & rtmutex)
stomp-machine-create-lg_global_trylock_relax-primiti.patch
stomp-machine-use-lg_global_trylock_relax-to-dead-wi.patch

# DRIVERS SERIAL
drivers-tty-fix-omap-lock-crap.patch
drivers-tty-pl011-irq-disable-madness.patch
rt-serial-warn-fix.patch
tty-serial-8250-don-t-take-the-trylock-during-oops.patch

# SIMPLE WAITQUEUE
wait.h-include-atomic.h.patch
work-simple-Simple-work-queue-implemenation.patch
completion-use-simple-wait-queues.patch
fs-aio-simple-simple-work.patch

# FS
fs-namespace-preemption-fix.patch
mm-protect-activate-switch-mm.patch
fs-block-rt-support.patch
fs-ntfs-disable-interrupt-non-rt.patch
fs-jbd2-pull-your-plug-when-waiting-for-space.patch

# X86
x86-mce-timer-hrtimer.patch
x86-mce-use-swait-queue-for-mce-wakeups.patch
x86-stackprot-no-random-on-rt.patch
x86-use-gen-rwsem-spinlocks-rt.patch
x86-UV-raw_spinlock-conversion.patch
thermal-Defer-thermal-wakups-to-threads.patch

# CPU get light
epoll-use-get-cpu-light.patch
mm-vmalloc-use-get-cpu-light.patch
block-mq-use-cpu_light.patch
block-mq-drop-preempt-disable.patch
block-mq-don-t-complete-requests-via-IPI.patch
dump-stack-don-t-disable-preemption-during-trace.patch

# CPU CHILL
rt-introduce-cpu-chill.patch
cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch

# block
blk-mq-revert-raw-locks-post-pone-notifier-to-POST_D.patchto-POST_D.patch
block-blk-mq-use-swait.patch

# BLOCK LIVELOCK PREVENTION
block-use-cpu-chill.patch

# FS LIVELOCK PREVENTION
fs-dcache-use-cpu-chill-in-trylock-loops.patch
fs-dcache-resched-chill-only-if-we-make-no-progress.patch
net-use-cpu-chill.patch

# WORKQUEUE more fixes
workqueue-use-rcu.patch
workqueue-use-locallock.patch
work-queue-work-around-irqsafe-timer-optimization.patch
workqueue-distangle-from-rq-lock.patch

# IDR
idr-use-local-lock-for-protection.patch
percpu_ida-use-locklocks.patch

# DEBUGOBJECTS
debugobjects-rt.patch

# JUMPLABEL
jump-label-rt.patch

# NETWORKING
sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch
net__Make_synchronize-rcu_expedited_conditional-on-non-rt.patch
skbufhead-raw-lock.patch
net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch
net-move-xmit_recursion-to-per-task-variable-on-RT.patch
net-provide-a-way-to-delegate-processing-a-softirq-t.patch
net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
net-add-back-the-missing-serialization-in-ip_send_un.patch
net-add-a-lock-around-icmp_sk.patch

# NETWORK livelock fix
net-tx-action-avoid-livelock-on-rt.patch

# NETWORK DEBUGGING AID
ping-sysrq.patch

# irqwork
irqwork-push_most_work_into_softirq_context.patch
irqwork-Move-irq-safe-work-to-irq-context.patch

# Sound
snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch

# CONSOLE. NEEDS more thought !!!
printk-rt-aware.patch
kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
HACK-printk-drop-the-logbuf_lock-more-often.patch

# POWERC
power-use-generic-rwsem-on-rt.patch
powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
powerpc-ps3-device-init.c-adapt-to-completions-using.patch

# ARM
arm-at91-tclib-default-to-tclib-timer-for-rt.patch
arm-unwind-use_raw_lock.patch
ARM-enable-irq-in-translation-section-permission-fau.patch
genirq-update-irq_set_irqchip_state-documentation.patch
KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch

# ARM64
arm64-xen--Make-XEN-depend-on-non-rt.patch

# KGDB
kgb-serial-hackaround.patch

# SYSFS - RT indicator
sysfs-realtime-entry.patch

# KMAP/HIGHMEM
power-disable-highmem-on-rt.patch
mips-disable-highmem-on-rt.patch
mm-rt-kmap-atomic-scheduling.patch
mm--rt--Fix-generic-kmap_atomic-for-RT.patch
x86-highmem-add-a-already-used-pte-check.patch
arm-highmem-flush-tlb-on-unmap.patch
arm-enable-highmem-for-rt.patch

# IPC
ipc-sem-rework-semaphore-wakeups.patch

# SYSRQ

# KVM require constant freq TSC (smp function call -> cpufreq)
x86-kvm-require-const-tsc-for-rt.patch
KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch

# SCSI/FCOE
scsi-fcoe-rt-aware.patch
scsi-fcoe-Fix-get_cpu-put_cpu_light-imbalance-in-fco.patch
sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch

# X86 crypto
x86-crypto-reduce-preempt-disabled-regions.patch
crypto-Reduce-preempt-disabled-regions-more-algos.patch

# Device mapper
dm-make-rt-aware.patch

# ACPI
acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch

# CPUMASK OFFSTACK
cpumask-disable-offstack-on-rt.patch

# RANDOM
random-make-it-work-on-rt.patch

# SEQLOCKS
seqlock-prevent-rt-starvation.patch

# HOTPLUG
cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch
cpu-rt-rework-cpu-down.patch
cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch
kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch
kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch
cpu_down_move_migrate_enable_back.patch
hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch

rtmutex-push-down-migrate_disable-into-rt_spin_lock.patch
rt-locking-Reenable-migration-accross-schedule.patch

# SCSCI QLA2xxx
scsi-qla2xxx-fix-bug-sleeping-function-called-from-invalid-context.patch

# NET
upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch
net-another-local-irq-disable-alloc-atomic-headache.patch
net-core-protect-users-of-napi_alloc_cache-against-r.patch
net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch
net-make-devnet_rename_seq-a-mutex.patch

# CRYPTO
peterz-srcu-crypto-chain.patch

# LOCKDEP
lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch
lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch

# PERF
perf-make-swevent-hrtimer-irqsafe.patch
kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch

# RCU
rcu-disable-rcu-fast-no-hz-on-rt.patch
rcu-Eliminate-softirq-processing-from-rcutree.patch
rcu-make-RCU_BOOST-default-on-RT.patch

# PREEMPT LAZY
preempt-lazy-support.patch
preempt-lazy-check-preempt_schedule.patch
sched-lazy_preempt-avoid-a-warning-in-the-RT-case.patch
x86-preempt-lazy.patch
arm-preempt-lazy-support.patch
arm-lazy-preempt-correct-resched-condition.patch
powerpc-preempt-lazy-support.patch
arch-arm64-Add-lazy-preempt-support.patch
arm-arm64-lazy-preempt-add-TIF_NEED_RESCHED_LAZY-to-.patch

# LEDS
leds-trigger-disable-CPU-trigger-on-RT.patch

# DRIVERS
i2c-omap-drop-the-lock-hard-irq-context.patch
mmci-remove-bogus-irq-save.patch
cpufreq-drop-K8-s-driver-from-beeing-selected.patch
drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch

# I915
drm-i915-drop-trace_i915_gem_ring_dispatch-onrt.patch
i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch
drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch
drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch

# CGROUPS
cgroups-use-simple-wait-in-css_release.patch
cgroups-scheduling-while-atomic-in-cgroup-code.patch

# New stuff
# Revisit: We need this in other places as well
move_sched_delayed_work_to_helper.patch

# MD
md-disable-bcache.patch

# WORKQUEUE SIGH
workqueue-prevent-deadlock-stall.patch

# Add RT to version
localversion.patch
