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

############################################################
# UPSTREAM merged
############################################################

############################################################
# POSTED by others
############################################################

# Pending hightmem bits
highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch

# 87lfea7gw8.fsf@nanos.tec.linutronix.de
timers-Move-clearing-of-base-timer_running-under-bas.patch

# 20210213075831.10852-2-song.bao.hua@hisilicon.com
0001-mm-zswap-add-a-flag-to-indicate-if-zpool-can-do-slee.patch
0002-mm-set-the-sleep_mapped-to-true-for-zbud-and-z3fold.patch

############################################################
# POSTED
############################################################
# blk-mq
# tip 66040b2d5d41f85cb1a752a75260595344c5ec3b
smp-Process-pending-softirqs-in-flush_smp_call_funct.patch
# linux-block 0a2efafbb1c752a7041652445bc1232114409633+
blk-mq-Always-complete-remote-completions-requests-i.patch
blk-mq-Use-llist_head-for-blk_cpu_done.patch

# 20201110113848.801379-1-bigeasy@linutronix.de
0001-kthread-Move-prio-affinite-change-into-the-newly-cre.patch
0002-genirq-Move-prio-assignment-into-the-newly-created-t.patch

# 20201122201904.30940-1-valentin.schneider@arm.com
notifier-Make-atomic_notifiers-use-raw_spinlock.patch

# RCU
# 20201215141649.796472-1-bigeasy@linutronix.de
# rcu/dev 1edaf2221f8f193e78206dec914d15bf0932bb81+
0001-rcu-Make-RCU_BOOST-default-on-CONFIG_PREEMPT_RT.patch
0002-rcu-Unconditionally-use-rcuc-threads-on-PREEMPT_RT.patch
0003-rcu-Enable-rcu_normal_after_boot-unconditionally-for.patch
0004-doc-Update-RCU-s-requirements-page-about-the-PREEMPT.patch
0005-doc-Use-CONFIG_PREEMPTION.patch

# 20210203160549.480454190@goodmis.org
# ftrace/for-next 36590c50b2d0729952511129916beeea30d31d81+
0001-tracing-Merge-irqflags-preempt-counter.patch
0002-tracing-Inline-tracing_gen_ctx_flags.patch
0003-tracing-Use-in_serving_softirq-to-deduct-softirq-sta.patch
0004-tracing-Remove-NULL-check-from-current-in-tracing_ge.patch

# 87ft48doti.fsf@nanos.tec.linutronix.de
tpm-remove-tpm_dev_wq_lock.patch

############################################################
# Ready for posting
############################################################

# John's printk series.
0003-printk-use-seqcount_latch-for-clear_seq.patch
0004-printk-use-atomic64_t-for-devkmsg_user.seq.patch
0005-printk-add-syslog_lock.patch
0006-define-CONSOLE_LOG_MAX-in-printk.h.patch
0007-printk-track-limit-recursion.patch
0008-printk-invoke-dumper-using-a-copy-of-the-iterator.patch
0009-printk-remove-logbuf_lock.patch
0010-printk-remove-safe-buffers.patch
0011-printk-refactor-kmsg_dump_get_buffer.patch
0012-console-add-write_atomic-interface.patch
0013-serial-8250-implement-write_atomic.patch
0014-printk-relocate-printk_delay-and-vprintk_default.patch
0015-printk-combine-boot_delay_msec-into-printk_delay.patch
0016-printk-change-console_seq-to-atomic64_t.patch
0017-printk-introduce-kernel-sync-mode.patch
0018-printk-move-console-printing-to-kthreads.patch
0019-printk-remove-deferred-printing.patch
0020-printk-add-console-handover.patch
0021-printk-add-pr_flush.patch

# 20210218173124.iy5iyqv3a4oia4vv@linutronix.de
kcov-Remove-kcov-include-from-sched.h-and-move-it-to.patch

############################################################
# Needs to address review feedback
############################################################

# This one would keep the raw-lock and IRQ on/off as the minimal duct tape.
cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch
# The alternative to remove unused code.
# 20190816111817.834-1-bigeasy@linutronix.de | https://www.spinics.net/lists/cgroups/msg23051.html

# UM, microblaze, ia64 fail to build with this patch (while compiling .S
# files). Postpone until the orignal issue pops up.
# percpu-include-irqflags.h-for-raw_local_irq_save.patch

# 20190211113829.sqf6bdi4c4cdd3rp@linutronix.de | 20190821152158.GA12901@cmpxchg.org
mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch

############################################################
# Almost ready, needs final polishing
############################################################
shmem-Use-raw_spinlock_t-for-stat_lock.patch
net--Move-lockdep-where-it-belongs.patch
tcp-Remove-superfluous-BH-disable-around-listening_h.patch

# SoftIRQ
# 20210215181027.mxkzolp3fibfiwvv@linutronix.de
smp-Wake-ksoftirqd-on-PREEMPT_RT-instead-do_softirq.patch

# WIP
0001-softirq-Replace-barrier-with-cpu_relax-in-tasklet_un.patch
0002-tasklets-Use-static-inlines-for-stub-implementations.patch
0003-tasklets-Provide-tasklet_disable_in_atomic.patch
0004-tasklets-Replace-spin-wait-in-tasklet_unlock_wait.patch
0005-tasklets-Replace-spin-wait-in-tasklet_kill.patch
0006-tasklets-Prevent-tasklet_unlock_spin_wait-deadlock-o.patch
0007-softirq-Add-RT-specific-softirq-accounting.patch
0008-irqtime-Make-accounting-correct-on-RT.patch
0009-softirq-Move-various-protections-into-inline-helpers.patch
0010-softirq-Make-softirq-control-and-processing-RT-aware.patch
0011-tick-sched-Prevent-false-positive-softirq-pending-wa.patch
0012-rcu-Prevent-false-positive-softirq-warning-on-RT.patch
#
0013-net-jme-Replace-link-change-tasklet-with-a-worker.patch
0015-net-sundance-Use-tasklet_disable_in_atomic.patch
0016-ath9k-Use-tasklet_disable_in_atomic.patch
0017-PCI-hv-Use-tasklet_disable_in_atomic.patch
0018-atm-eni-Use-tasklet_disable_in_atomic-in-the-send-ca.patch
0019-firewire-ohci-Use-tasklet_disable_in_atomic-in-the-t.patch

# 20210202170104.1909200-1-bigeasy@linutronix.de
0001-chelsio-cxgb-Replace-the-workqueue-with-threaded-int.patch
0002-chelsio-cxgb-Disable-the-card-on-error-in-threaded-i.patch

# RT-MUTEX
0001-locking-rtmutex-Remove-cruft.patch
0002-locking-rtmutex-Remove-output-from-deadlock-detector.patch
0003-locking-rtmutex-Move-rt_mutex_init-outside-of-CONFIG.patch
0004-locking-rtmutex-Remove-rt_mutex_timed_lock.patch
0005-locking-rtmutex-Handle-the-various-new-futex-race-co.patch
0006-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
0007-locking-rtmutex-Make-lock_killable-work.patch
0008-locking-spinlock-Split-the-lock-types-header.patch
0009-locking-rtmutex-Avoid-include-hell.patch
0010-lockdep-Reduce-header-files-in-debug_locks.h.patch
0011-locking-split-out-the-rbtree-definition.patch
0012-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch
0013-locking-rtmutex-export-lockdep-less-version-of-rt_mu.patch
0014-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
0015-locking-rtmutex-add-sleeping-lock-implementation.patch
0016-locking-rtmutex-Allow-rt_mutex_trylock-on-PREEMPT_RT.patch
0017-locking-rtmutex-add-mutex-implementation-based-on-rt.patch
0018-locking-rtmutex-add-rwsem-implementation-based-on-rt.patch
0019-locking-rtmutex-add-rwlock-implementation-based-on-r.patch
0020-locking-rtmutex-wire-up-RT-s-locking.patch
0021-locking-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch
0022-locking-rtmutex-Use-custom-scheduling-function-for-s.patch

###############################################################
# Stuff broken upstream and upstream wants something different
###############################################################

# PTRACE/SIGNAL crap
# https://lore.kernel.org/lkml/CADkTA4PBT374CY+UNb85WjQEaNCDodMZu=MgpG8aMYbAu2eOGA@mail.gmail.com/
signal-revert-ptrace-preempt-magic.patch

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

############################################################
# PREEMPT NORT
preempt-nort-rt-variants.patch
mm-make-vmstat-rt-aware.patch
mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch

# seqcount
0024-xfrm-Use-sequence-counter-with-associated-spinlock.patch
u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch

fs-dcache-use-swait_queue-instead-of-waitqueue.patch
fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
net-Qdisc-use-a-seqlock-instead-seqcount.patch
net-Properly-annotate-the-try-lock-for-the-seqlock.patch
#####

# split changelog
kconfig-disable-a-few-options-rt.patch

# proper changelog
mm-disable-sloub-rt.patch

# Revisit ????
sched-disable-rt-group-sched-on-rt.patch

# Post
net_disable_NET_RX_BUSY_POLL.patch

# proper changelog
efi-Disable-runtime-services-on-RT.patch
efi-Allow-efi-runtime.patch

# local locks & migrate disable
# Rework, write proper changelog and argument
rt-local-irq-lock.patch

# Move post local lock

# Sigh
# Check proper again. Crap....
oleg-signal-rt-fix.patch

# MM page alloc
#
0001-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
0002-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch
0004-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch
mm-page_alloc-Use-migrate_disable-in-drain_local_pag.patch
mm-page_alloc-rt-friendly-per-cpu-pages.patch

# MM SLxB
mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch
slub-enable-irqs-for-no-wait.patch
slub-disable-SLUB_CPU_PARTIAL.patch

# MM
mm-memcontrol-Provide-a-local_lock-for-per-CPU-memcg.patch
mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
mm-memcontrol-do_not_disable_irq.patch
# XXX
mm_zsmalloc_copy_with_get_cpu_var_and_locking.patch

# KVM require constant freq TSC (smp function call -> cpufreq)
# proper changelog
x86-kvm-require-const-tsc-for-rt.patch

# SIMPLE WAITQUEUE
# Revisit
wait.h-include-atomic.h.patch

# SCHEDULER
# PUSH IPI?
sched-limit-nr-migrate.patch

# Combine in series with delay put task
sched-mmdrop-delayed.patch

# Revisit, still needed.
kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch

# RT bulk - Revisit
sched-might-sleep-do-not-account-rcu-depth.patch
sched-disable-ttwu-queue.patch

# A few of those will also just schedule ksoftirqd and schedule at some random
# point. They may hold a spinlock_t so it is not always random, recheck all.
softirq-preempt-fix-3-re.patch

# Post towards end with x86 crap and skip the rest for now
softirq-disable-softirq-stacks-for-rt.patch

# Rewrite changelog and repost
# 20170620.130840.472295224655944129.davem@davemloft.net
net-core-use-local_bh_disable-in-netif_rx_ni.patch

# RTMUTEX
pid.h-include-atomic.h.patch
ptrace-fix-ptrace-vs-tasklist_lock-race.patch
ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch

# MIGRATE DISABLE AND PER CPU
# Revisit
add_cpu_light.patch
ftrace-migrate-disable-tracing.patch
locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch

# RCU
locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch
# atomic BH is longer doable in current softirq implemention.
rcutorture-Avoid-problematic-critical-section-nestin.patch

# CPU get light
mm-vmalloc-use-get-cpu-light.patch
block-mq-drop-preempt-disable.patch
md-raid5-percpu-handling-rt-aware.patch
scsi-fcoe-rt-aware.patch
sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch

# CPU CHILL
rt-introduce-cpu-chill.patch

# FS LIVELOCK PREVENTION
fs-namespace-use-cpu-chill-in-trylock-loops.patch

# DEBUGOBJECTS
# Post
debugobjects-rt.patch

# NETWORKING
# Revisit
skbufhead-raw-lock.patch
net-Dequeue-in-dev_cpu_dead-without-the-lock.patch
net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch

# irqwork
# Revisit
irqwork-push_most_work_into_softirq_context.patch

# crypto drivers
# Revisit
x86-crypto-reduce-preempt-disabled-regions.patch
crypto-Reduce-preempt-disabled-regions-more-algos.patch
crypto-limit-more-FPU-enabled-sections.patch
crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch

# RANDOM
panic-disable-random-on-rt.patch
# Check me ....
x86-stackprot-no-random-on-rt.patch
# Random push into ringbuffer
random-make-it-work-on-rt.patch

# NET
# Revisit
upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch

# LOCKDEP
# Lockdep together with lockdep branch ....
lockdep-no-softirq-accounting-on-rt.patch
lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch
lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
# Fix lockdep selftest - talk to Peter - including lockdep branch
lockdep-disable-self-test.patch

# I915
# Low prio
drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch
drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch
drm-i915-disable-tracing-on-RT.patch
drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch
drm-i915-gt-Only-disable-interrupts-for-the-timeline.patch

# CGROUPS
# Revisit and Post
cpuset-Convert-callback_lock-to-raw_spinlock_t.patch

################################################################################
################################################################################
# Enable X86-64
x86-Enable-RT.patch
################################################################################
################################################################################

# KMAP/HIGHMEM
mm-scatterlist-dont-disable-irqs-on-RT.patch

# PREEMPT LAZY
preempt-lazy-support.patch
# 20200701083553.fuy42cllxvx3bkzp@linutronix.de
x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch
x86-preempt-lazy.patch
arm-preempt-lazy-support.patch
powerpc-preempt-lazy-support.patch
arch-arm64-Add-lazy-preempt-support.patch

jump-label-rt.patch

# Skip until ARM or make it depend on ARM
leds-trigger-disable-CPU-trigger-on-RT.patch

# DRIVERS SERIAL
drivers-tty-fix-omap-lock-crap.patch
drivers-tty-pl011-irq-disable-madness.patch

# misc ARM
# arm-include-definition-for-cpumask_t.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-fpsimd-use-preemp_disable-in-addition-to-local.patch

# Those two should vanish soon (not use PIT during bootup)
# XXX check if needed, looks like not required.
# at91_dont_enable_disable_clock.patch
# clocksource-tclib-allow-higher-clockrates.patch

# Other architectures
x86-Enable-RT-also-on-32bit.patch
ARM-Allow-to-enable-RT.patch
ARM64-Allow-to-enable-RT.patch

# PowerPC
powerpc-traps.patch
powerpc-pseries-iommu-Use-a-locallock-instead-local_ir.patch
powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
powerpc-stackprotector-work-around-stack-guard-init-.patch
powerpc-Avoid-recursive-header-includes.patch
POWERPC-Allow-to-enable-RT.patch

# DRIVERS
# Postpone, disable
drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch

# Generic iowriteN_buffer() function ....
tpm_tis-fix-stall-after-iowrite-s.patch

# Postpone
signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch
signal-Prevent-double-free-of-user-struct.patch
genirq-disable-irqpoll-on-rt.patch

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

# Add RT to version
localversion.patch
