# Applied upstream
# PM-Tree, v5.15
0001_cpu_pm_make_notifier_chain_use_a_raw_spinlock_t.patch
0002_notifier_remove_atomic_notifier_call_chain_robust.patch

###########################################################################
# Valentin's PCP fixes
###########################################################################
eventfd-Make-signal-recursion-protection-a-task-bit.patch
sched_introduce_migratable.patch
rcu_nocb_protect_nocb_state_via_local_lock_under_preempt_rt.patch
arm64_mm_make_arch_faults_on_old_pte_check_for_migratability.patch

###########################################################################
# John's printk queue
###########################################################################
printk_console__Check_consistent_sequence_number_when_handling_race_in_console_unlock.patch
lib_nmi_backtrace__explicitly_serialize_banner_and_regs.patch
printk__track_limit_recursion.patch
printk__remove_safe_buffers.patch
printk__remove_NMI_tracking.patch
printk__convert_syslog_lock_to_mutex.patch
printk__syslog__close_window_between_wait_and_read.patch
printk__rename_printk_cpulock_API_and_always_disable_interrupts.patch
console__add_write_atomic_interface.patch
kdb__only_use_atomic_consoles_for_output_mirroring.patch
serial__8250__implement_write_atomic.patch
printk__relocate_printk_delay.patch
printk__call_boot_delay_msec_in_printk_delay.patch
printk__use_seqcount_latch_for_console_seq.patch
printk__introduce_kernel_sync_mode.patch
printk__move_console_printing_to_kthreads.patch
printk__remove_deferred_printing.patch
printk__add_console_handover.patch
printk__add_pr_flush.patch
printk__Enhance_the_condition_check_of_msleep_in_pr_flush.patch

###########################################################################
# mm bits polished by Mel and Vlastimil
# slub-local-lock-v4r3
###########################################################################
0001-mm-slub-don-t-call-flush_all-from-slab_debug_trace_o.patch
0002-mm-slub-allocate-private-object-map-for-debugfs-list.patch
0003-mm-slub-allocate-private-object-map-for-validate_sla.patch
0004-mm-slub-don-t-disable-irq-for-debug_check_no_locks_f.patch
0005-mm-slub-remove-redundant-unfreeze_partials-from-put_.patch
0006-mm-slub-unify-cmpxchg_double_slab-and-__cmpxchg_doub.patch
0007-mm-slub-extract-get_partial-from-new_slab_objects.patch
0008-mm-slub-dissolve-new_slab_objects-into-___slab_alloc.patch
0009-mm-slub-return-slab-page-from-get_partial-and-set-c-.patch
0010-mm-slub-restructure-new-page-checks-in-___slab_alloc.patch
0011-mm-slub-simplify-kmem_cache_cpu-and-tid-setup.patch
0012-mm-slub-move-disabling-enabling-irqs-to-___slab_allo.patch
0013-mm-slub-do-initial-checks-in-___slab_alloc-with-irqs.patch
0014-mm-slub-move-disabling-irqs-closer-to-get_partial-in.patch
0015-mm-slub-restore-irqs-around-calling-new_slab.patch
0016-mm-slub-validate-slab-from-partial-list-or-page-allo.patch
0017-mm-slub-check-new-pages-with-restored-irqs.patch
0018-mm-slub-stop-disabling-irqs-around-get_partial.patch
0019-mm-slub-move-reset-of-c-page-and-freelist-out-of-dea.patch
0020-mm-slub-make-locking-in-deactivate_slab-irq-safe.patch
0021-mm-slub-call-deactivate_slab-without-disabling-irqs.patch
0022-mm-slub-move-irq-control-into-unfreeze_partials.patch
0023-mm-slub-discard-slabs-in-unfreeze_partials-without-i.patch
0024-mm-slub-detach-whole-partial-list-at-once-in-unfreez.patch
0025-mm-slub-separate-detaching-of-partial-list-in-unfree.patch
0026-mm-slub-only-disable-irq-with-spin_lock-in-__unfreez.patch
0027-mm-slub-don-t-disable-irqs-in-slub_cpu_dead.patch
0028-mm-slab-make-flush_slab-possible-to-call-with-irqs-e.patch
0029-mm-slub-Move-flush_cpu_slab-invocations-__free_slab-.patch
0030-mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch
0031-mm-slub-optionally-save-restore-irqs-in-slab_-un-loc.patch
0032-mm-slub-make-slab_lock-disable-irqs-with-PREEMPT_RT.patch
0033-mm-slub-protect-put_cpu_partial-with-disabled-irqs-i.patch
0034-mm-slub-use-migrate_disable-on-PREEMPT_RT.patch
0035-mm-slub-convert-kmem_cpu_slab-protection-to-local_lo.patch

###########################################################################
# Posted
###########################################################################
highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch
sched-Switch-wait_task_inactive-to-HRTIMER_MODE_REL_.patch
sched-Prevent-balance_push-on-remote-runqueues.patch

###########################################################################
# Post
###########################################################################
kthread__Move_prio_affinite_change_into_the_newly_created_thread.patch
genirq__Move_prio_assignment_into_the_newly_created_thread.patch
cgroup__use_irqsave_in_cgroup_rstat_flush_locked.patch
mm__workingset__replace_IRQ-off_check_with_a_lockdep_assert..patch
shmem__Use_raw_spinlock_t_for_-stat_lock.patch
net__Move_lockdep_where_it_belongs.patch
tcp__Remove_superfluous_BH-disable_around_listening_hash.patch
samples_kfifo__Rename_read_lock_write_lock.patch
smp__Wake_ksoftirqd_on_PREEMPT_RT_instead_do_softirq..patch
genirq__update_irq_set_irqchip_state_documentation.patch

# Block / io-ring pending
0001-io-wq-remove-GFP_ATOMIC-allocation-off-schedule-out-.patch
0002-io-wq-Don-t-mix-raw_spinlock_irq-spin_lock_irq.patch

###########################################################################
# Kconfig bits:
###########################################################################
genirq__Disable_irqpoll_on_-rt.patch
jump-label__disable_if_stop_machine_is_used.patch
leds__trigger__disable_CPU_trigger_on_-RT.patch
kconfig__Disable_config_options_which_are_not_RT_compatible.patch
mm__Allow_only_SLUB_on_RT.patch
sched__Disable_CONFIG_RT_GROUP_SCHED_on_RT.patch
net_core__disable_NET_RX_BUSY_POLL_on_RT.patch
efi__Disable_runtime_services_on_RT.patch
efi__Allow_efiruntime.patch

###########################################################################
# Include fixes
###########################################################################
wait.h__include_atomic.h.patch
pid.h__include_atomic.h.patch

###########################################################################
# Tracing: Polish!
###########################################################################
trace__Add_migrate-disabled_counter_to_tracing_output.patch

###########################################################################
# Debugobjects
###########################################################################
debugobjects__Make_RT_aware.patch

###########################################################################
# Locking core
###########################################################################
0001-locking-local_lock-Add-missing-owner-initialization.patch
0002-locking-rtmutex-Set-proper-wait-context-for-lockdep.patch
0003-sched-wakeup-Split-out-the-wakeup-__state-check.patch
0004-sched-wakeup-Introduce-the-TASK_RTLOCK_WAIT-state-bi.patch
0005-sched-wakeup-Reorganize-the-current-__state-helpers.patch
0006-sched-wakeup-Prepare-for-RT-sleeping-spin-rwlocks.patch
0007-sched-core-Rework-the-__schedule-preempt-argument.patch
0008-sched-core-Provide-a-scheduling-point-for-RT-locks.patch
0009-sched-wake_q-Provide-WAKE_Q_HEAD_INITIALIZER.patch
0010-media-atomisp-Use-lockdep-instead-of-mutex_is_locked.patch
0011-locking-rtmutex-Remove-rt_mutex_is_locked.patch
0012-locking-rtmutex-Convert-macros-to-inlines.patch
0013-locking-rtmutex-Switch-to-from-cmpxchg_-to-try_cmpxc.patch
0014-locking-rtmutex-Split-API-from-implementation.patch
0015-locking-rtmutex-Split-out-the-inner-parts-of-struct-.patch
0016-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch
0017-locking-rtmutex-Provide-rt_mutex_base_is_locked.patch
0018-locking-rt-Add-base-code-for-RT-rw_semaphore-and-rwl.patch
0019-locking-rwsem-Add-rtmutex-based-R-W-semaphore-implem.patch
0020-locking-rtmutex-Add-wake_state-to-rt_mutex_waiter.patch
0021-locking-rtmutex-Provide-rt_wake_q_head-and-helpers.patch
0022-locking-rtmutex-Use-rt_mutex_wake_q_head.patch
0023-locking-rtmutex-Prepare-RT-rt_mutex_wake_q-for-RT-lo.patch
0024-locking-rtmutex-Guard-regular-sleeping-locks-specifi.patch
0025-locking-spinlock-Split-the-lock-types-header-and-mov.patch
0026-locking-rtmutex-Prevent-future-include-recursion-hel.patch
0027-locking-lockdep-Reduce-header-dependencies-in-linux-.patch
0028-rbtree-Split-out-the-rbtree-type-definitions-into-li.patch
0029-locking-rtmutex-Reduce-linux-rtmutex.h-header-depend.patch
0030-locking-spinlock-Provide-RT-specific-spinlock_t.patch
0031-locking-spinlock-Provide-RT-variant-header-linux-spi.patch
0032-locking-rtmutex-Provide-the-spin-rwlock-core-lock-fu.patch
0033-locking-spinlock-Provide-RT-variant.patch
0034-locking-rwlock-Provide-RT-variant.patch
0035-locking-rtmutex-Squash-RT-tasks-to-DEFAULT_PRIO.patch
0036-locking-mutex-Consolidate-core-headers-remove-kernel.patch
0037-locking-mutex-Move-the-struct-mutex_waiter-definitio.patch
0038-locking-ww_mutex-Move-the-ww_mutex-definitions-from-.patch
0039-locking-mutex-Make-mutex-wait_lock-raw.patch
0040-locking-ww_mutex-Simplify-lockdep-annotations.patch
0041-locking-ww_mutex-Gather-mutex_waiter-initialization.patch
0042-locking-ww_mutex-Split-up-ww_mutex_unlock.patch
0043-locking-ww_mutex-Split-out-the-W-W-implementation-lo.patch
0044-locking-ww_mutex-Remove-the-__sched-annotation-from-.patch
0045-locking-ww_mutex-Abstract-out-the-waiter-iteration.patch
0046-locking-ww_mutex-Abstract-out-waiter-enqueueing.patch
0047-locking-ww_mutex-Abstract-out-mutex-accessors.patch
0048-locking-ww_mutex-Abstract-out-mutex-types.patch
0049-locking-ww_mutex-Abstract-out-internal-lock-accesses.patch
0050-locking-ww_mutex-Implement-rt_mutex-accessors.patch
0051-locking-ww_mutex-Add-RT-priority-to-W-W-order.patch
0052-locking-ww_mutex-Add-rt_mutex-based-lock-type-and-ac.patch
0053-locking-rtmutex-Extend-the-rtmutex-core-to-support-w.patch
0054-locking-ww_mutex-Implement-rtmutex-based-ww_mutex-AP.patch
0055-locking-rtmutex-Add-mutex-variant-for-RT.patch
0056-lib-test_lockup-Adapt-to-changed-variables.patch
0057-futex-Validate-waiter-correctly-in-futex_proxy_trylo.patch
0058-futex-Clean-up-stale-comments.patch
0059-futex-Clarify-futex_requeue-PI-handling.patch
0060-futex-Remove-bogus-condition-for-requeue-PI.patch
0061-futex-Correct-the-number-of-requeued-waiters-for-PI.patch
0062-futex-Restructure-futex_requeue.patch
0063-futex-Clarify-comment-in-futex_requeue.patch
0064-futex-Reorder-sanity-checks-in-futex_requeue.patch
0065-futex-Simplify-handle_early_requeue_pi_wakeup.patch
0066-futex-Prevent-requeue_pi-lock-nesting-issue-on-RT.patch
0067-locking-rtmutex-Prevent-lockdep-false-positive-with-.patch
0068-preempt-Adjust-PREEMPT_LOCK_OFFSET-for-RT.patch
0069-locking-rtmutex-Implement-equal-priority-lock-steali.patch
0070-locking-rtmutex-Add-adaptive-spinwait-mechanism.patch
0071-locking-spinlock-rt-Prepare-for-RT-local_lock.patch
0072-locking-local_lock-Add-PREEMPT_RT-support.patch

locking-ww_mutex-Initialize-waiter.ww_ctx-properly.patch
locking-rtmutex-Dont-dereference-waiter-lockless.patch
locking-rtmutex-Dequeue-waiter-on-ww_mutex-deadlock.patch
locking-rtmutex-Return-success-on-deadlock-for-ww_mu.patch
locking-rtmutex-Prevent-spurious-EDEADLK-return-caus.patch

###########################################################################
# Locking: RT bits. Need review
###########################################################################
lockdep-selftests-Avoid-using-local_lock_-acquire-re.patch
0001-sched-Trigger-warning-if-migration_disabled-counter-.patch
0003-rtmutex-Add-a-special-case-for-ww-mutex-handling.patch
0004-rtmutex-Add-rt_mutex_lock_nest_lock-and-rt_mutex_loc.patch
0005-lockdep-Make-it-RT-aware.patch
0006-lockdep-selftests-Add-rtmutex-to-the-last-column.patch
0007-lockdep-selftests-Unbalanced-migrate_disable-rcu_rea.patch
0008-lockdep-selftests-Skip-the-softirq-related-tests-on-.patch
0010-lockdep-selftests-Adapt-ww-tests-for-PREEMPT_RT.patch

# Unbreaks powerpc
locking-Allow-to-include-asm-spinlock_types.h-from-l.patch

###########################################################################
# preempt: Conditional variants
###########################################################################
preempt__Provide_preempt__nort_variants.patch

###########################################################################
# sched:
###########################################################################
kernel_sched__add_putget_cpu_light.patch
sched__Limit_the_number_of_task_migrations_per_batch.patch
sched__Move_mmdrop_to_RCU_on_RT.patch
kernel_sched__move_stack__kprobe_clean_up_to___put_task_struct.patch
sched__Do_not_account_rcu_preempt_depth_on_RT_in_might_sleep.patch
sched__Disable_TTWU_QUEUE_on_RT.patch
cpuset__Convert_callback_lock_to_raw_spinlock_t.patch

###########################################################################
# softirq:
###########################################################################
softirq__Check_preemption_after_reenabling_interrupts.patch
softirq__Disable_softirq_stacks_for_RT.patch

###########################################################################
# irqwork: Needs upstream consolidation
###########################################################################
irqwork__push_most_work_into_softirq_context.patch

###########################################################################
# mm: Assorted RT bits. Need care
###########################################################################
mm__page_alloc__Use_migrate_disable_in_drain_local_pages_wq.patch
mm_vmstat__Protect_per_cpu_variables_with_preempt_disable_on_RT.patch
u64_stats__Disable_preemption_on_32bit-UP_SMP_with_RT_during_updates.patch

mm_zsmalloc__copy_with_get_cpu_var_and_locking.patch
mm_vmalloc__Another_preempt_disable_region_which_sucks.patch
mm_scatterlist__Do_not_disable_irqs_on_RT.patch

###########################################################################
# Disable memcontrol for now. The protection scopes are FUBARed
###########################################################################
mm-memcontro--Disable-on-PREEMPT_RT.patch
#mm_memcontrol__Disable_preemption_in___mod_memcg_lruvec_state.patch
#mm__memcontrol__Replace_disable-IRQ_locking_with_a_local_lock.patch
#mm_memcontrol__Dont_call_schedule_work_on_in_preemption_disabled_context.patch
#mm_memcontrol__Replace_local_irq_disable_with_local_locks.patch

###########################################################################
# ptrace: Revisit
###########################################################################
signal__Revert_ptrace_preempt_magic.patch
ptrace__fix_ptrace_vs_tasklist_lock_race.patch

###########################################################################
# fs: The namespace part needs a proper fix
###########################################################################
fs_dcache__use_swait_queue_instead_of_waitqueue.patch
fs_dcache__disable_preemption_on_i_dir_seqs_write_side.patch

rt__Introduce_cpu_chill.patch
fs__namespace__Use_cpu_chill_in_trylock_loops.patch

###########################################################################
# RCU
###########################################################################
rcu__Delay_RCU-selftests.patch
rcutorture-Avoid-problematic-critical-section-nestin.patch

###########################################################################
# net:
###########################################################################
net_Qdisc__use_a_seqlock_instead_seqcount.patch
net__Properly_annotate_the_try-lock_for_the_seqlock.patch
net_core__use_local_bh_disable_in_netif_rx_ni.patch
sunrpc__Make_svc_xprt_do_enqueue_use_get_cpu_light.patch
net__Use_skbufhead_with_raw_lock.patch
net__Dequeue_in_dev_cpu_dead_without_the_lock.patch
net__dev__always_take_qdiscs_busylock_in___dev_xmit_skb.patch
net__Remove_preemption_disabling_in_netif_rx.patch

###########################################################################
# block & friends:
###########################################################################
block_mq__do_not_invoke_preempt_disable.patch
drivers_block_zram__Replace_bit_spinlocks_with_rtmutex_for_-rt.patch
md__raid5__Make_raid5_percpu_handling_RT_aware.patch
scsi_fcoe__Make_RT_aware..patch

###########################################################################
# crypto:
###########################################################################
crypto__limit_more_FPU-enabled_sections.patch
crypto__cryptd_-_add_a_lock_instead_preempt_disable_local_bh_disable.patch
crypto-testmgr-Only-disable-migration-in-crypto_disa.patch

###########################################################################
# randomness:
###########################################################################
panic__skip_get_random_bytes_for_RT_FULL_in_init_oops_id.patch
x86__stackprotector__Avoid_random_pool_on_rt.patch
random__Make_it_work_on_rt.patch

###########################################################################
# DRM:
###########################################################################
drmradeoni915__Use_preempt_disable_enable_rt_where_recommended.patch
drm_i915__Dont_disable_interrupts_on_PREEMPT_RT_during_atomic_updates.patch
drm_i915__disable_tracing_on_-RT.patch
drm_i915__skip_DRM_I915_LOW_LEVEL_TRACEPOINTS_with_NOTRACE.patch
drm_i915_gt__Only_disable_interrupts_for_the_timeline_lock_on_force-threaded.patch

###########################################################################
# tty/serial: ARM drivers
###########################################################################
tty_serial_omap__Make_the_locking_RT_aware.patch
tty_serial_pl011__Make_the_locking_work_on_RT.patch

###########################################################################
# TPM:
###########################################################################
tpm_tis__fix_stall_after_iowrites.patch

###########################################################################
# sysfs
###########################################################################
sysfs__Add__sys_kernel_realtime_entry.patch

###########################################################################
# X86:
###########################################################################
signal_x86__Delay_calling_signals_in_atomic.patch
x86__kvm_Require_const_tsc_for_RT.patch
x86__Allow_to_enable_RT.patch
x86__Enable_RT_also_on_32bit.patch

###########################################################################
# Lazy preemption
###########################################################################
sched__Add_support_for_lazy_preemption.patch
x86_entry__Use_should_resched_in_idtentry_exit_cond_resched.patch
x86__Support_for_lazy_preemption.patch
entry--Fix-the-preempt-lazy-fallout.patch
arm__Add_support_for_lazy_preemption.patch
powerpc__Add_support_for_lazy_preemption.patch
arch_arm64__Add_lazy_preempt_support.patch

###########################################################################
# ARM/ARM64
###########################################################################
ARM__enable_irq_in_translation_section_permission_fault_handlers.patch
KVM__arm_arm64__downgrade_preempt_disabled_region_to_migrate_disable.patch
arm64-sve-Delay-freeing-memory-in-fpsimd_flush_threa.patch
arm64-sve-Make-kernel-FPU-protection-RT-friendly.patch
ARM__Allow_to_enable_RT.patch
ARM64__Allow_to_enable_RT.patch

###########################################################################
# POWERPC
###########################################################################
powerpc__traps__Use_PREEMPT_RT.patch
powerpc_pseries_iommu__Use_a_locallock_instead_local_irq_save.patch
powerpc_kvm__Disable_in-kernel_MPIC_emulation_for_PREEMPT_RT.patch
powerpc_stackprotector__work_around_stack-guard_init_from_atomic.patch
POWERPC__Allow_to_enable_RT.patch

###########################################################################
# RT release version
###########################################################################
Add_localversion_for_-RT_release.patch
