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

############################################################
# UPSTREAM changes queued
############################################################

############################################################
# UPSTREAM FIXES, patches pending
############################################################
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

############################################################
# 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
fs-dcache-include-wait.h.patch
rbtree-include-rcu.h-because-we-use-it.patch
fs-dcache-init-in_lookup_hashtable.patch
iommu-iova-don-t-disable-preempt-around-this_cpu_ptr.patch
iommu-vt-d-don-t-disable-preemption-while-accessing-.patch
x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch
rxrpc-remove-unused-static-variables.patch
rcu-update-make-RCU_EXPEDITE_BOOT-default.patch

# Wants a different fix for upstream
NFSv4-replace-seqcount_t-with-a-seqlock_t.patch

############################################################
# 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
arm-kprobe-replace-patch_lock-to-raw-lock.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

# DRIVERS NET
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_copy_with_get_cpu_var_and_locking.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
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

# compile fix due to rtmutex locks
gpu_don_t_check_for_the_lock_owner.patch
fs-nfs-turn-rmdir_sem-into-a-semaphore.patch

# FUTEX/RTMUTEX
rtmutex-futex-prepare-rt.patch
futex-requeue-pi-fix.patch
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
kernel-futex-don-t-deboost-too-early.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

# 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
genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch
hrtimer-Move-schedule_work-call-to-helper-thread.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
md-raid5-percpu-handling-rt-aware.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
net-use-cpu-chill.patch
fs-dcache-use-swait_queue-instead-of-waitqueue.patch

# WORKQUEUE more fixes
workqueue-use-rcu.patch
workqueue-use-locallock.patch
workqueue-use-rcu_readlock-in-put_pwq_unlocked.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

# SEQLOCKS
seqlock-prevent-rt-starvation.patch

# NETWORKING
sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.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-Qdisc-use-a-seqlock-instead-seqcount.patch
net-add-back-the-missing-serialization-in-ip_send_un.patch
net-add-a-lock-around-icmp_sk.patch
net-Have-__napi_schedule_irqoff-disable-interrupts-o.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
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

# 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

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
rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch

# PREEMPT LAZY
preempt-lazy-support.patch
ftrace-Fix-trace-header-alignment.patch
sched-core-x86-Make-struct-thread_info-arch-specific.patch
x86-preempt-lazy.patch
arm-preempt-lazy-support.patch
powerpc-preempt-lazy-support.patch
arch-arm64-Add-lazy-preempt-support.patch

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

# DRIVERS
mmci-remove-bogus-irq-save.patch
cpufreq-drop-K8-s-driver-from-beeing-selected.patch
connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
drivers-zram-Don-t-disable-preemption-in-zcomp_strea.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
