summaryrefslogtreecommitdiffstats
path: root/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch4
-rw-r--r--debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch6
-rw-r--r--debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch4
-rw-r--r--debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch4
-rw-r--r--debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch4
-rw-r--r--debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch4
-rw-r--r--debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch4
-rw-r--r--debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch4
-rw-r--r--debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch4
-rw-r--r--debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch4
-rw-r--r--debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch6
-rw-r--r--debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch4
-rw-r--r--debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch4
-rw-r--r--debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch4
-rw-r--r--debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch4
-rw-r--r--debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch4
-rw-r--r--debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch4
-rw-r--r--debian/patches-rt/0018-efi-Allow-efi-runtime.patch4
-rw-r--r--debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch4
-rw-r--r--debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch4
-rw-r--r--debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch4
-rw-r--r--debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch4
-rw-r--r--debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch4
-rw-r--r--debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch4
-rw-r--r--debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch6
-rw-r--r--debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch14
-rw-r--r--debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch6
-rw-r--r--debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch4
-rw-r--r--debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch6
-rw-r--r--debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch8
-rw-r--r--debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch4
-rw-r--r--debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch4
-rw-r--r--debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch4
-rw-r--r--debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch4
-rw-r--r--debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch4
-rw-r--r--debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch4
-rw-r--r--debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch8
-rw-r--r--debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch8
-rw-r--r--debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch6
-rw-r--r--debian/patches-rt/0040-lockdep-disable-self-test.patch4
-rw-r--r--debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch4
-rw-r--r--debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch4
-rw-r--r--debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch4
-rw-r--r--debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch4
-rw-r--r--debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch4
-rw-r--r--debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch8
-rw-r--r--debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch8
-rw-r--r--debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch6
-rw-r--r--debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch4
-rw-r--r--debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch8
-rw-r--r--debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch8
-rw-r--r--debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch8
-rw-r--r--debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch4
-rw-r--r--debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch4
-rw-r--r--debian/patches-rt/0055-md-disable-bcache.patch4
-rw-r--r--debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch4
-rw-r--r--debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch6
-rw-r--r--debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch4
-rw-r--r--debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch6
-rw-r--r--debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch6
-rw-r--r--debian/patches-rt/0061-rt-Add-local-irq-locks.patch4
-rw-r--r--debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch4
-rw-r--r--debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch4
-rw-r--r--debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch4
-rw-r--r--debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch4
-rw-r--r--debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch4
-rw-r--r--debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch4
-rw-r--r--debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch4
-rw-r--r--debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch4
-rw-r--r--debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch4
-rw-r--r--debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch4
-rw-r--r--debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch4
-rw-r--r--debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch4
-rw-r--r--debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch8
-rw-r--r--debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch6
-rw-r--r--debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch4
-rw-r--r--debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch6
-rw-r--r--debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch6
-rw-r--r--debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch4
-rw-r--r--debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch4
-rw-r--r--debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch6
-rw-r--r--debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch6
-rw-r--r--debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch4
-rw-r--r--debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch6
-rw-r--r--debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch6
-rw-r--r--debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch4
-rw-r--r--debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch4
-rw-r--r--debian/patches-rt/0088-radix-tree-use-local-locks.patch6
-rw-r--r--debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch4
-rw-r--r--debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch8
-rw-r--r--debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch4
-rw-r--r--debian/patches-rt/0092-wait.h-include-atomic.h.patch4
-rw-r--r--debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch4
-rw-r--r--debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch4
-rw-r--r--debian/patches-rt/0095-completion-Use-simple-wait-queues.patch6
-rw-r--r--debian/patches-rt/0096-fs-aio-simple-simple-work.patch4
-rw-r--r--debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch4
-rw-r--r--debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch14
-rw-r--r--debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch24
-rw-r--r--debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch20
-rw-r--r--debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch6
-rw-r--r--debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch6
-rw-r--r--debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch6
-rw-r--r--debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch4
-rw-r--r--debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch4
-rw-r--r--debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch4
-rw-r--r--debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch4
-rw-r--r--debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch4
-rw-r--r--debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch4
-rw-r--r--debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch6
-rw-r--r--debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch6
-rw-r--r--debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch4
-rw-r--r--debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch4
-rw-r--r--debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch4
-rw-r--r--debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch8
-rw-r--r--debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch12
-rw-r--r--debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch6
-rw-r--r--debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch4
-rw-r--r--debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch16
-rw-r--r--debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch4
-rw-r--r--debian/patches-rt/0121-softirq-Split-softirq-locks.patch10
-rw-r--r--debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch8
-rw-r--r--debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch4
-rw-r--r--debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch4
-rw-r--r--debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch4
-rw-r--r--debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch4
-rw-r--r--debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch4
-rw-r--r--debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch4
-rw-r--r--debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch6
-rw-r--r--debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch4
-rw-r--r--debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch6
-rw-r--r--debian/patches-rt/0132-pid.h-include-atomic.h.patch4
-rw-r--r--debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch4
-rw-r--r--debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch4
-rw-r--r--debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch4
-rw-r--r--debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch4
-rw-r--r--debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch4
-rw-r--r--debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch4
-rw-r--r--debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch70
-rw-r--r--debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch4
-rw-r--r--debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch4
-rw-r--r--debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch6
-rw-r--r--debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch4
-rw-r--r--debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch4
-rw-r--r--debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch4
-rw-r--r--debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch4
-rw-r--r--debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch4
-rw-r--r--debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch4
-rw-r--r--debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch4
-rw-r--r--debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch4
-rw-r--r--debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch4
-rw-r--r--debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch4
-rw-r--r--debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch4
-rw-r--r--debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch6
-rw-r--r--debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch6
-rw-r--r--debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch4
-rw-r--r--debian/patches-rt/0157-rcu-Frob-softirq-test.patch4
-rw-r--r--debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch10
-rw-r--r--debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch4
-rw-r--r--debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch4
-rw-r--r--debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch4
-rw-r--r--debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch4
-rw-r--r--debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch4
-rw-r--r--debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch4
-rw-r--r--debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch4
-rw-r--r--debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch4
-rw-r--r--debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch4
-rw-r--r--debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch8
-rw-r--r--debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch4
-rw-r--r--debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch4
-rw-r--r--debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch4
-rw-r--r--debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch6
-rw-r--r--debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch4
-rw-r--r--debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch4
-rw-r--r--debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch4
-rw-r--r--debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch4
-rw-r--r--debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch4
-rw-r--r--debian/patches-rt/0178-block-mq-use-cpu_light.patch4
-rw-r--r--debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch4
-rw-r--r--debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch4
-rw-r--r--debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch6
-rw-r--r--debian/patches-rt/0182-rt-Introduce-cpu_chill.patch6
-rw-r--r--debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch6
-rw-r--r--debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch6
-rw-r--r--debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch4
-rw-r--r--debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch4
-rw-r--r--debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch4
-rw-r--r--debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch10
-rw-r--r--debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch12
-rw-r--r--debian/patches-rt/0190-workqueue-Use-normal-rcu.patch48
-rw-r--r--debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch30
-rw-r--r--debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch8
-rw-r--r--debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch12
-rw-r--r--debian/patches-rt/0194-debugobjects-Make-RT-aware.patch8
-rw-r--r--debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch12
-rw-r--r--debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch4
-rw-r--r--debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch20
-rw-r--r--debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch20
-rw-r--r--debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch8
-rw-r--r--debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch6
-rw-r--r--debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch8
-rw-r--r--debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch4
-rw-r--r--debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch4
-rw-r--r--debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch14
-rw-r--r--debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch4
-rw-r--r--debian/patches-rt/0206-printk-Make-rt-aware.patch4
-rw-r--r--debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch4
-rw-r--r--debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch4
-rw-r--r--debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch4
-rw-r--r--debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch4
-rw-r--r--debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch4
-rw-r--r--debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch4
-rw-r--r--debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch8
-rw-r--r--debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch4
-rw-r--r--debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch4
-rw-r--r--debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch4
-rw-r--r--debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch4
-rw-r--r--debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch4
-rw-r--r--debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch10
-rw-r--r--debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch4
-rw-r--r--debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch4
-rw-r--r--debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch4
-rw-r--r--debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch4
-rw-r--r--debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch4
-rw-r--r--debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch4
-rw-r--r--debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch4
-rw-r--r--debian/patches-rt/0227-cpu-hotplug-Implement-CPU-pinning.patch6
-rw-r--r--debian/patches-rt/0228-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch4
-rw-r--r--debian/patches-rt/0229-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch6
-rw-r--r--debian/patches-rt/0230-net-Remove-preemption-disabling-in-netif_rx.patch10
-rw-r--r--debian/patches-rt/0231-net-Another-local_irq_disable-kmalloc-headache.patch6
-rw-r--r--debian/patches-rt/0232-net-core-protect-users-of-napi_alloc_cache-against-r.patch6
-rw-r--r--debian/patches-rt/0233-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch6
-rw-r--r--debian/patches-rt/0234-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch4
-rw-r--r--debian/patches-rt/0235-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch4
-rw-r--r--debian/patches-rt/0236-sched-Add-support-for-lazy-preemption.patch20
-rw-r--r--debian/patches-rt/0237-ftrace-Fix-trace-header-alignment.patch8
-rw-r--r--debian/patches-rt/0238-x86-Support-for-lazy-preemption.patch8
-rw-r--r--debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch4
-rw-r--r--debian/patches-rt/0240-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch4
-rw-r--r--debian/patches-rt/0241-arm-Add-support-for-lazy-preemption.patch8
-rw-r--r--debian/patches-rt/0242-powerpc-Add-support-for-lazy-preemption.patch12
-rw-r--r--debian/patches-rt/0243-arch-arm64-Add-lazy-preempt-support.patch4
-rw-r--r--debian/patches-rt/0244-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch4
-rw-r--r--debian/patches-rt/0245-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch4
-rw-r--r--debian/patches-rt/0246-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch4
-rw-r--r--debian/patches-rt/0247-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch4
-rw-r--r--debian/patches-rt/0248-tpm_tis-fix-stall-after-iowrite-s.patch4
-rw-r--r--debian/patches-rt/0249-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch4
-rw-r--r--debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch4
-rw-r--r--debian/patches-rt/0251-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch4
-rw-r--r--debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch4
-rw-r--r--debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch4
-rw-r--r--debian/patches-rt/0254-cgroups-use-simple-wait-in-css_release.patch12
-rw-r--r--debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch4
-rw-r--r--debian/patches-rt/0256-apparmor-use-a-locallock-instead-preempt_disable.patch4
-rw-r--r--debian/patches-rt/0257-workqueue-Prevent-deadlock-stall-on-RT.patch18
-rw-r--r--debian/patches-rt/0258-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch6
-rw-r--r--debian/patches-rt/0259-Add-localversion-for-RT-release.patch4
-rw-r--r--debian/patches-rt/0260-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch4
-rw-r--r--debian/patches-rt/0261-powerpc-reshuffle-TIF-bits.patch4
-rw-r--r--debian/patches-rt/0262-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch4
-rw-r--r--debian/patches-rt/0263-drm-i915-Don-t-disable-interrupts-independently-of-t.patch4
-rw-r--r--debian/patches-rt/0264-sched-completion-Fix-a-lockup-in-wait_for_completion.patch4
-rw-r--r--debian/patches-rt/0265-kthread-add-a-global-worker-thread.patch10
-rw-r--r--debian/patches-rt/0266-arm-imx6-cpuidle-Use-raw_spinlock_t.patch4
-rw-r--r--debian/patches-rt/0267-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch4
-rw-r--r--debian/patches-rt/0268-pci-switchtec-fix-stream_open.cocci-warnings.patch4
-rw-r--r--debian/patches-rt/0269-sched-core-Drop-a-preempt_disable_rt-statement.patch4
-rw-r--r--debian/patches-rt/0270-timers-Redo-the-notification-of-canceling-timers-on-.patch20
-rw-r--r--debian/patches-rt/0271-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch6
-rw-r--r--debian/patches-rt/0272-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch4
-rw-r--r--debian/patches-rt/0273-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch6
-rw-r--r--debian/patches-rt/0274-Revert-futex-workaround-migrate_disable-enable-in-di.patch6
-rw-r--r--debian/patches-rt/0275-futex-Make-the-futex_hash_bucket-lock-raw.patch6
-rw-r--r--debian/patches-rt/0276-futex-Delay-deallocation-of-pi_state.patch6
-rw-r--r--debian/patches-rt/0277-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch4
-rw-r--r--debian/patches-rt/0278-revert-aio.patch4
-rw-r--r--debian/patches-rt/0279-fs-aio-simple-simple-work.patch4
-rw-r--r--debian/patches-rt/0280-revert-thermal.patch4
-rw-r--r--debian/patches-rt/0281-thermal-Defer-thermal-wakups-to-threads.patch4
-rw-r--r--debian/patches-rt/0282-revert-block.patch4
-rw-r--r--debian/patches-rt/0283-block-blk-mq-move-blk_queue_usage_counter_release-in.patch4
-rw-r--r--debian/patches-rt/0284-workqueue-rework.patch194
-rw-r--r--debian/patches-rt/0285-i2c-exynos5-Remove-IRQF_ONESHOT.patch4
-rw-r--r--debian/patches-rt/0286-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch4
-rw-r--r--debian/patches-rt/0287-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch4
-rw-r--r--debian/patches-rt/0288-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch4
-rw-r--r--debian/patches-rt/0289-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch4
-rw-r--r--debian/patches-rt/0290-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch4
-rw-r--r--debian/patches-rt/0291-x86-preempt-Check-preemption-level-before-looking-at.patch4
-rw-r--r--debian/patches-rt/0292-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch6
-rw-r--r--debian/patches-rt/0293-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch6
-rw-r--r--debian/patches-rt/0294-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch6
-rw-r--r--debian/patches-rt/0295-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch6
-rw-r--r--debian/patches-rt/0296-posix-timers-Unlock-expiry-lock-in-the-early-return.patch4
-rw-r--r--debian/patches-rt/0297-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch6
-rw-r--r--debian/patches-rt/0298-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch4
-rw-r--r--debian/patches-rt/0299-sched-Remove-dead-__migrate_disabled-check.patch4
-rw-r--r--debian/patches-rt/0300-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch4
-rw-r--r--debian/patches-rt/0301-lib-smp_processor_id-Don-t-use-cpumask_equal.patch4
-rw-r--r--debian/patches-rt/0302-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch6
-rw-r--r--debian/patches-rt/0303-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch4
-rw-r--r--debian/patches-rt/0304-lib-ubsan-Don-t-seralize-UBSAN-report.patch4
-rw-r--r--debian/patches-rt/0305-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch4
-rw-r--r--debian/patches-rt/0306-sched-migrate_enable-Use-select_fallback_rq.patch4
-rw-r--r--debian/patches-rt/0307-sched-Lazy-migrate_disable-processing.patch8
-rw-r--r--debian/patches-rt/0308-sched-migrate_enable-Use-stop_one_cpu_nowait.patch4
-rw-r--r--debian/patches-rt/0309-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch4
-rw-r--r--debian/patches-rt/0310-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch4
-rw-r--r--debian/patches-rt/0311-sched-core-migrate_enable-must-access-takedown_cpu_t.patch6
-rw-r--r--debian/patches-rt/0312-lib-smp_processor_id-Adjust-check_preemption_disable.patch4
-rw-r--r--debian/patches-rt/0313-sched-migrate_enable-Busy-loop-until-the-migration-r.patch4
-rw-r--r--debian/patches-rt/0314-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch4
-rw-r--r--debian/patches-rt/0315-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch4
-rw-r--r--debian/patches-rt/0316-sched-migrate_enable-Remove-__schedule-call.patch4
-rw-r--r--debian/patches-rt/0317-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch6
-rw-r--r--debian/patches-rt/0318-locallock-Include-header-for-the-current-macro.patch4
-rw-r--r--debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch4
-rw-r--r--debian/patches-rt/0320-tracing-make-preempt_lazy-and-migrate_disable-counte.patch8
-rw-r--r--debian/patches-rt/0321-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch4
-rw-r--r--debian/patches-rt/0322-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch4
-rw-r--r--debian/patches-rt/0323-tasklet-Address-a-race-resulting-in-double-enqueue.patch4
-rw-r--r--debian/patches-rt/0324-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch6
-rw-r--r--debian/patches-rt/0325-fs-dcache-Include-swait.h-header.patch6
-rw-r--r--debian/patches-rt/0326-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch6
-rw-r--r--debian/patches-rt/0327-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch4
-rw-r--r--debian/patches-rt/0328-signal-Prevent-double-free-of-user-struct.patch4
-rw-r--r--debian/patches-rt/0329-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch4
-rw-r--r--debian/patches-rt/0330-net-phy-fixed_phy-Remove-unused-seqcount.patch4
-rw-r--r--debian/patches-rt/0331-net-xfrm-fix-compress-vs-decompress-serialization.patch4
-rw-r--r--debian/patches-rt/0332-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch4
-rw-r--r--debian/patches-rt/0333-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch4
-rw-r--r--debian/patches-rt/0334-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch6
-rw-r--r--debian/patches-rt/0335-locking-rwsem_rt-Add-__down_read_interruptible.patch4
-rw-r--r--debian/patches-rt/0336-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch4
-rw-r--r--debian/patches-rt/0337-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch4
-rw-r--r--debian/patches-rt/0338-rt-PREEMPT_RT-safety-net-for-backported-patches.patch4
-rw-r--r--debian/patches-rt/0339-net-Add-missing-xmit_lock_owner-hunks.patch16
-rw-r--r--debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch4
-rw-r--r--debian/patches-rt/0341-random-Bring-back-the-local_locks.patch4
-rw-r--r--debian/patches-rt/0342-local_lock-Provide-INIT_LOCAL_LOCK.patch4
-rw-r--r--debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch8
-rw-r--r--debian/patches-rt/0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch4
-rw-r--r--debian/patches-rt/0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch4
-rw-r--r--debian/patches-rt/0346-rcu-Update-rcuwait.patch6
-rw-r--r--debian/patches-rt/0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch12
-rw-r--r--debian/patches-rt/0348-timers-Prepare-support-for-PREEMPT_RT.patch4
-rw-r--r--debian/patches-rt/0349-timers-Move-clearing-of-base-timer_running-under-bas.patch4
-rw-r--r--debian/patches-rt/0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch4
-rw-r--r--debian/patches-rt/0351-Revert-percpu-include-irqflags.h-for-raw_local_irq_s.patch4
-rw-r--r--debian/patches-rt/0352-workqueue-Fix-deadlock-due-to-recursive-locking-of-p.patch8
-rw-r--r--debian/patches-rt/0353-Revert-sched-rt-Provide-migrate_disable-enable-inlin.patch58
-rw-r--r--debian/patches-rt/0354-Linux-4.19.302-rt131-REBASE.patch (renamed from debian/patches-rt/0353-Linux-4.19.284-rt125-REBASE.patch)10
-rw-r--r--debian/patches-rt/rcupdate-delete-duplicated-macros.patch67
-rw-r--r--debian/patches-rt/series4
-rw-r--r--debian/patches/bugfix/x86/gds/arm-cpu-switch-to-arch_cpu_finalize_init.patch72
-rw-r--r--debian/patches/bugfix/x86/gds/documentation-x86-fix-backwards-on-off-logic-about-ymm-support.patch31
-rw-r--r--debian/patches/bugfix/x86/gds/ia64-cpu-switch-to-arch_cpu_finalize_init.patch70
-rw-r--r--debian/patches/bugfix/x86/gds/init-invoke-arch_cpu_finalize_init-earlier.patch58
-rw-r--r--debian/patches/bugfix/x86/gds/init-provide-arch_cpu_finalize_init.patch77
-rw-r--r--debian/patches/bugfix/x86/gds/init-remove-check_bugs-leftovers.patch155
-rw-r--r--debian/patches/bugfix/x86/gds/init-x86-move-mem_encrypt_init-into-arch_cpu_finalize_init.patch94
-rw-r--r--debian/patches/bugfix/x86/gds/kvm-add-gds_no-support-to-kvm.patch69
-rw-r--r--debian/patches/bugfix/x86/gds/m68k-cpu-switch-to-arch_cpu_finalize_init.patch79
-rw-r--r--debian/patches/bugfix/x86/gds/mips-cpu-switch-to-arch_cpu_finalize_init.patch98
-rw-r--r--debian/patches/bugfix/x86/gds/sh-cpu-switch-to-arch_cpu_finalize_init.patch207
-rw-r--r--debian/patches/bugfix/x86/gds/sparc-cpu-switch-to-arch_cpu_finalize_init.patch70
-rw-r--r--debian/patches/bugfix/x86/gds/um-cpu-switch-to-arch_cpu_finalize_init.patch65
-rw-r--r--debian/patches/bugfix/x86/gds/x86-cpu-switch-to-arch_cpu_finalize_init.patch228
-rw-r--r--debian/patches/bugfix/x86/gds/x86-fpu-mark-init-functions-__init.patch39
-rw-r--r--debian/patches/bugfix/x86/gds/x86-fpu-move-fpu-initialization-into-arch_cpu_finalize_init.patch86
-rw-r--r--debian/patches/bugfix/x86/gds/x86-fpu-remove-cpuinfo-argument-from-init-functions.patch67
-rw-r--r--debian/patches/bugfix/x86/gds/x86-speculation-add-force-option-to-gds-mitigation.patch163
-rw-r--r--debian/patches/bugfix/x86/gds/x86-speculation-add-gather-data-sampling-mitigation.patch562
-rw-r--r--debian/patches/bugfix/x86/gds/x86-speculation-add-kconfig-option-for-gds.patch68
-rw-r--r--debian/patches/bugfix/x86/gds/x86-xen-fix-secondary-processors-fpu-initialization.patch44
-rw-r--r--debian/patches/debian/abi/x86-cpu-avoid-abi-change-for-gds-mitigations.patch32
-rw-r--r--debian/patches/series22
379 files changed, 1216 insertions, 3593 deletions
diff --git a/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch b/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch
index fef3029d3..63ab657b2 100644
--- a/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch
+++ b/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch
@@ -1,7 +1,7 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:18 +0200
-Subject: [PATCH 001/353] ARM: at91: add TCB registers definitions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5cb3db0db4af2d71851e972bde6defcd16e3d57
+Subject: [PATCH 001/354] ARM: at91: add TCB registers definitions
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6bf97db6a22f57ff49dd88286bd67c1f746ae82e
Add registers and bits definitions for the timer counter blocks found on
Atmel ARM SoCs.
diff --git a/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch b/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch
index 5ac210598..8468f1e69 100644
--- a/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch
+++ b/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch
@@ -1,8 +1,8 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:19 +0200
-Subject: [PATCH 002/353] clocksource/drivers: Add a new driver for the Atmel
+Subject: [PATCH 002/354] clocksource/drivers: Add a new driver for the Atmel
ARM TC blocks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0043104c9ea190cfd4f18e03d31379ba173b14c3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=22b86bcd097361e683ce2156edc1b6f845fcb8ea
Add a driver for the Atmel Timer Counter Blocks. This driver provides a
clocksource and two clockevent devices.
@@ -50,7 +50,7 @@ index 06504384c376..9422ea3a52ac 100644
bool "Exynos multi core timer driver" if COMPILE_TEST
depends on ARM || ARM64
diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
-index db51b2427e8a..0df9384a1230 100644
+index e33b21d3f9d8..9841a45293e3 100644
--- a/drivers/clocksource/Makefile
+++ b/drivers/clocksource/Makefile
@@ -3,7 +3,8 @@ obj-$(CONFIG_TIMER_OF) += timer-of.o
diff --git a/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch b/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch
index be67d6de9..463824e67 100644
--- a/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch
+++ b/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch
@@ -1,8 +1,8 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:20 +0200
-Subject: [PATCH 003/353] clocksource/drivers: timer-atmel-tcb: add clockevent
+Subject: [PATCH 003/354] clocksource/drivers: timer-atmel-tcb: add clockevent
device on separate channel
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4e8db0c861ea79c7d74cf1dbc062edb0e89b0afd
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=936bc406a7637a1bae905a544ac1940a216be130
Add an other clockevent device that uses a separate TCB channel when
available.
diff --git a/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch b/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch
index 38dbdc5da..b0d696f0e 100644
--- a/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch
+++ b/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch
@@ -1,7 +1,7 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:21 +0200
-Subject: [PATCH 004/353] clocksource/drivers: atmel-pit: make option silent
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8f7428d3f6ffc0509868983b6c335c1501a6fb5c
+Subject: [PATCH 004/354] clocksource/drivers: atmel-pit: make option silent
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a13f7aa4cc2d8401185eee4461a6f9d27e603a7
To conform with the other option, make the ATMEL_PIT option silent so it
can be selected from the platform
diff --git a/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch b/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch
index 27abb0473..59ad4745f 100644
--- a/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch
+++ b/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch
@@ -1,7 +1,7 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:22 +0200
-Subject: [PATCH 005/353] ARM: at91: Implement clocksource selection
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b6e573dad69145114e6fbfb9b10ed033e8d5023d
+Subject: [PATCH 005/354] ARM: at91: Implement clocksource selection
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e801ae7f668cd169f8d460d72f35f94c6d5b911d
Allow selecting and unselecting the PIT clocksource driver so it doesn't
have to be compile when unused.
diff --git a/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch b/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch
index ee5b16005..20ef93a34 100644
--- a/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch
+++ b/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch
@@ -1,7 +1,7 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:23 +0200
-Subject: [PATCH 006/353] ARM: configs: at91: use new TCB timer driver
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7edca352b55054fcb7a53bdc57bcef99c54ea7c
+Subject: [PATCH 006/354] ARM: configs: at91: use new TCB timer driver
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7226807183c1b4b56a28783e444055de25e18c3a
Unselecting ATMEL_TCLIB switches the TCB timer driver from tcb_clksrc to
timer-atmel-tcb.
diff --git a/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch b/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch
index 1540c11d9..440c4c366 100644
--- a/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch
+++ b/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch
@@ -1,7 +1,7 @@
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Thu, 13 Sep 2018 13:30:24 +0200
-Subject: [PATCH 007/353] ARM: configs: at91: unselect PIT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6912e32d8641eaf3192f4af0473470c26f0a9cd7
+Subject: [PATCH 007/354] ARM: configs: at91: unselect PIT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=55e819d88a02bae2e03ad8727e5b4e4d9cd07652
The PIT is not required anymore to successfully boot and may actually harm
in case preempt-rt is used because the PIT interrupt is shared.
diff --git a/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch b/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch
index f0ec996b8..739f0621c 100644
--- a/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch
+++ b/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch
@@ -1,8 +1,8 @@
From: Marc Zyngier <marc.zyngier@arm.com>
Date: Fri, 27 Jul 2018 13:38:54 +0100
-Subject: [PATCH 008/353] irqchip/gic-v3-its: Move pending table allocation to
+Subject: [PATCH 008/354] irqchip/gic-v3-its: Move pending table allocation to
init time
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7eb7d255b9739de589d1a2d546c8c1daf5633957
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4e6b70ea06e3e38867c8881d2f396bbfb99d4d5
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
diff --git a/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch b/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch
index 3f9100f87..7ba33e617 100644
--- a/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch
+++ b/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch
@@ -1,7 +1,7 @@
From: Julia Cartwright <julia@ni.com>
Date: Fri, 28 Sep 2018 21:03:51 +0000
-Subject: [PATCH 009/353] kthread: convert worker lock to raw spinlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=426a6ad0a12bab66c4e88d71655e74d17e898091
+Subject: [PATCH 009/354] kthread: convert worker lock to raw spinlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d93945b78abb460e9d8216be8c84d0e2e0eebcf4
In order to enable the queuing of kthread work items from hardirq
context even when PREEMPT_RT_FULL is enabled, convert the worker
diff --git a/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch b/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch
index 3c7dbbab5..ec1944e7f 100644
--- a/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch
+++ b/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch
@@ -1,10 +1,10 @@
From: =?UTF-8?q?Horia=20Geant=C4=83?= <horia.geanta@nxp.com>
Date: Mon, 8 Oct 2018 14:09:37 +0300
-Subject: [PATCH 010/353] crypto: caam/qi - simplify CGR allocation, freeing
+Subject: [PATCH 010/354] crypto: caam/qi - simplify CGR allocation, freeing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40431aa00beeaaf1d2e1f64b45e33a5da2bffb1a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8080c28d1eaf81d1ea79c5edc41dc05ba2fb774a
[Upstream commit 29e83c757006fd751966bdc53392bb22d74179c6]
diff --git a/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch b/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch
index 80da6cd54..d0f4dd605 100644
--- a/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch
+++ b/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 7 Jan 2019 13:52:31 +0100
-Subject: [PATCH 011/353] sched/fair: Robustify CFS-bandwidth timer locking
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=23a5dc393375842c47361eba6404190b31263bfb
+Subject: [PATCH 011/354] sched/fair: Robustify CFS-bandwidth timer locking
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3d179a735692f4f5484e6a3bddee1363a64b9015
Traditionally hrtimer callbacks were run with IRQs disabled, but with
the introduction of HRTIMER_MODE_SOFT it is possible they run from
@@ -29,7 +29,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index eb67f42fb96b..d19981efd980 100644
+index 09f82c84474b..2814b6b085bc 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4644,7 +4644,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, u64 remaining)
diff --git a/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch b/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch
index ae495296f..68cdd6ad5 100644
--- a/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch
+++ b/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch
@@ -1,7 +1,7 @@
From: Frank Rowand <frank.rowand@am.sony.com>
Date: Mon, 19 Sep 2011 14:51:14 -0700
-Subject: [PATCH 012/353] arm: Convert arm boot_lock to raw
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9c17a706b066459255d4cc288052f9ebda6c9ab5
+Subject: [PATCH 012/354] arm: Convert arm boot_lock to raw
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=86ef4efef85945fbeb65ced345c39a5e2f08085f
The arm boot_lock is used by the secondary processor startup code. The locking
task is the idle thread, which has idle->sched_class == &idle_sched_class.
diff --git a/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch b/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch
index 181ea4ef4..7ce31b185 100644
--- a/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch
+++ b/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 17 Jul 2018 18:25:31 +0200
-Subject: [PATCH 013/353] x86/ioapic: Don't let setaffinity unmask threaded EOI
+Subject: [PATCH 013/354] x86/ioapic: Don't let setaffinity unmask threaded EOI
interrupt too early
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a012e6bfc9f9eee8339a470aedd643034212801
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f52d12d2c35ccba46699bf943a40c95d96ed99da
There is an issue with threaded interrupts which are marked ONESHOT
and using the fasteoi handler.
diff --git a/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch b/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch
index 368e55003..4dab77b08 100644
--- a/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch
+++ b/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 3 Jul 2018 18:19:48 +0200
-Subject: [PATCH 014/353] cgroup: use irqsave in cgroup_rstat_flush_locked()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c4d45fc5437cdc3df495f053b7d44a079d97bc19
+Subject: [PATCH 014/354] cgroup: use irqsave in cgroup_rstat_flush_locked()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=70bfad37d0f39ecbf8b404a822c1d4673a575f54
All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock
either with spin_lock_irq() or spin_lock_irqsave().
diff --git a/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch b/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch
index 2f3ede44c..b44cda153 100644
--- a/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch
+++ b/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch
@@ -1,7 +1,7 @@
From: Clark Williams <williams@redhat.com>
Date: Tue, 3 Jul 2018 13:34:30 -0500
-Subject: [PATCH 015/353] fscache: initialize cookie hash table raw spinlocks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d03db0ce50498e8f1128f15f1a7fff44e93dd108
+Subject: [PATCH 015/354] fscache: initialize cookie hash table raw spinlocks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fc6bd06feaaf1c2b40eb717811372015b3fd688e
The fscache cookie mechanism uses a hash table of hlist_bl_head structures. The
PREEMPT_RT patcheset adds a raw spinlock to this structure and so on PREEMPT_RT
diff --git a/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch b/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch
index 34ab476ce..1b407659a 100644
--- a/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch
+++ b/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch
@@ -1,10 +1,10 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 29 Aug 2018 21:59:04 +0200
-Subject: [PATCH 016/353] Drivers: hv: vmbus: include header for get_irq_regs()
+Subject: [PATCH 016/354] Drivers: hv: vmbus: include header for get_irq_regs()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b46679c0fc54720038289996be8974e624a51fec
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=92f735fd5c2ea2871d7cbc3bc6b55a16f8550e33
On !RT the header file get_irq_regs() gets pulled in via other header files. On
RT it does not and the build fails:
diff --git a/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch b/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch
index bce3fc9cd..898d107f7 100644
--- a/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch
+++ b/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 11 Oct 2018 16:39:59 +0200
-Subject: [PATCH 017/353] percpu: include irqflags.h for raw_local_irq_save()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb2ad05fbeed482adb367eac354f01a14ce422c2
+Subject: [PATCH 017/354] percpu: include irqflags.h for raw_local_irq_save()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=53bbbbe9659b13c02ba44eb2f53d6986bdd68851
The header percpu.h header file is using raw_local_irq_save() but does
not include irqflags.h for its definition. It compiles because the
diff --git a/debian/patches-rt/0018-efi-Allow-efi-runtime.patch b/debian/patches-rt/0018-efi-Allow-efi-runtime.patch
index 3c155da1f..19919e76e 100644
--- a/debian/patches-rt/0018-efi-Allow-efi-runtime.patch
+++ b/debian/patches-rt/0018-efi-Allow-efi-runtime.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 15:06:10 +0200
-Subject: [PATCH 018/353] efi: Allow efi=runtime
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=44fb3795b5644ac330f53e863dfde7a740256b5a
+Subject: [PATCH 018/354] efi: Allow efi=runtime
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f5b03c011b045300ed7880a711281f98c428408
In case the option "efi=noruntime" is default at built-time, the user
could overwrite its sate by `efi=runtime' and allow it again.
diff --git a/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch b/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch
index 0782f485c..2ef0ae68a 100644
--- a/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch
+++ b/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 24 Jul 2018 14:48:55 +0200
-Subject: [PATCH 019/353] x86/efi: drop task_lock() from efi_switch_mm()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3d393f40689a14bc6d2304d35d22407d42a7f4ba
+Subject: [PATCH 019/354] x86/efi: drop task_lock() from efi_switch_mm()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d40441a7b61dd9d7b060e96cfe714dd4bda746d1
efi_switch_mm() is a wrapper around switch_mm() which saves current's
->active_mm, sets the requests mm as ->active_mm and invokes
diff --git a/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch b/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch
index 0f9c80095..3a63d7365 100644
--- a/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch
+++ b/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 09:13:42 +0200
-Subject: [PATCH 020/353] arm64: KVM: compute_layout before altenates are
+Subject: [PATCH 020/354] arm64: KVM: compute_layout before altenates are
applied
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1a36d8911d9802ee0c9687be2029e83d2a30d67
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1b63d74e373eab981172b5f33c39d72977a5e828
compute_layout() is invoked as part of an alternative fixup under
stop_machine() and needs a sleeping lock as part of get_random_long().
diff --git a/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch b/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch
index d1ccfb0f4..87d930c63 100644
--- a/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch
+++ b/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 31 Aug 2018 14:16:30 +0200
-Subject: [PATCH 021/353] of: allocate / free phandle cache outside of the
+Subject: [PATCH 021/354] of: allocate / free phandle cache outside of the
devtree_lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb46fdc2bedd1a8eaa5e58329d772011b6026d47
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=81834521ea1fe3cb3881b516e1aa1043bc72bbc5
The phandle cache code allocates memory while holding devtree_lock which
is a raw_spinlock_t. Memory allocation (and free()) is not possible on
diff --git a/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch b/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch
index 8da97a0f7..560a44c36 100644
--- a/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch
+++ b/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch
@@ -1,7 +1,7 @@
From: Clark Williams <williams@redhat.com>
Date: Tue, 18 Sep 2018 10:29:31 -0500
-Subject: [PATCH 022/353] mm/kasan: make quarantine_lock a raw_spinlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d17525668576fe63e80d4280e6f71cff37a8d9f5
+Subject: [PATCH 022/354] mm/kasan: make quarantine_lock a raw_spinlock_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8e41588ab5abaf6ae8c3725d84dcbe8d350ba74
The static lock quarantine_lock is used in quarantine.c to protect the
quarantine queue datastructures. It is taken inside quarantine queue
diff --git a/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch b/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch
index 22f2c4437..d94286fc0 100644
--- a/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch
+++ b/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch
@@ -1,8 +1,8 @@
From: "Paul E. McKenney" <paulmck@linux.ibm.com>
Date: Mon, 29 Oct 2018 11:53:01 +0100
-Subject: [PATCH 023/353] EXP rcu: Revert expedited GP parallelization
+Subject: [PATCH 023/354] EXP rcu: Revert expedited GP parallelization
cleverness
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=35450487569b7f5812ed1106763a3f2bfe8b0cb4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a50ce8827ef45c837089678792dc22371a4715bd
(Commit 258ba8e089db23f760139266c232f01bad73f85c from linux-rcu)
diff --git a/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch b/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch
index 5e1db1970..d255a2038 100644
--- a/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch
+++ b/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch
@@ -1,10 +1,10 @@
From: He Zhe <zhe.he@windriver.com>
Date: Wed, 19 Dec 2018 16:30:57 +0100
-Subject: [PATCH 024/353] kmemleak: Turn kmemleak_lock to raw spinlock on RT
+Subject: [PATCH 024/354] kmemleak: Turn kmemleak_lock to raw spinlock on RT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2acd572061a0e1c538e61064e794da7ecb5f3b1d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aaca0331f02dfc36b0ca67ea9c0da7300a9daa4f
kmemleak_lock, as a rwlock on RT, can possibly be held in atomic context and
causes the follow BUG.
diff --git a/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch b/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
index 95f7193d7..af2661f93 100644
--- a/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
+++ b/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 28 Oct 2016 23:05:11 +0200
-Subject: [PATCH 025/353] NFSv4: replace seqcount_t with a seqlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9de4c145bdbac174d7d6cfc31a27cb41edc0fac9
+Subject: [PATCH 025/354] NFSv4: replace seqcount_t with a seqlock_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bdd80b6fd4062ece2f62209386f07b7883ea1e66
The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me
because it maps to preempt_disable() in -RT which I can't have at this
@@ -57,7 +57,7 @@ index 2d438318681a..e6cecc00c379 100644
};
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 3651619468d7..f9d3fcb007a5 100644
+index c44efead1a32..d908f51e0149 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -2882,7 +2882,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
diff --git a/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch b/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch
index ff72663d5..f7f6ca669 100644
--- a/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch
+++ b/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch
@@ -1,11 +1,11 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 4 Apr 2017 12:50:16 +0200
-Subject: [PATCH 026/353] kernel: sched: Provide a pointer to the valid CPU
+Subject: [PATCH 026/354] kernel: sched: Provide a pointer to the valid CPU
mask
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=00783413cf324a173918f6f46c53eb248a11de23
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=118cce869ba59f58717eb40f3ac2a72e4e97e71e
In commit 4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed()
wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not
@@ -209,7 +209,7 @@ index bb670249bebf..deced4654e66 100644
current->pid, current->comm,
cpumask_pr_args(proc_mask));
diff --git a/drivers/infiniband/hw/hfi1/sdma.c b/drivers/infiniband/hw/hfi1/sdma.c
-index 33ff9eca28f6..6115a9902435 100644
+index 245f9505a9ac..f5f97eeb4056 100644
--- a/drivers/infiniband/hw/hfi1/sdma.c
+++ b/drivers/infiniband/hw/hfi1/sdma.c
@@ -853,14 +853,13 @@ struct sdma_engine *sdma_select_user_engine(struct hfi1_devdata *dd,
@@ -572,7 +572,7 @@ index 29ed5d8d30d6..9243d0049714 100644
!dl_task(task) ||
!task_on_rq_queued(task))) {
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index d19981efd980..bd9a375c45f4 100644
+index 2814b6b085bc..3f6a613be8c3 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -1691,7 +1691,7 @@ static void task_numa_compare(struct task_numa_env *env,
@@ -719,10 +719,10 @@ index d19981efd980..bd9a375c45f4 100644
flags);
env.flags |= LBF_ALL_PINNED;
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
-index 9c6c3572b131..a068884c369f 100644
+index 394c66442cff..0768ba9d2860 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
-@@ -1623,7 +1623,7 @@ static void put_prev_task_rt(struct rq *rq, struct task_struct *p)
+@@ -1626,7 +1626,7 @@ static void put_prev_task_rt(struct rq *rq, struct task_struct *p)
static int pick_rt_task(struct rq *rq, struct task_struct *p, int cpu)
{
if (!task_running(rq, p) &&
@@ -731,7 +731,7 @@ index 9c6c3572b131..a068884c369f 100644
return 1;
return 0;
-@@ -1760,7 +1760,7 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq)
+@@ -1763,7 +1763,7 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq)
* Also make sure that it wasn't scheduled on its rq.
*/
if (unlikely(task_rq(task) != rq ||
diff --git a/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch b/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch
index ecffbbe5f..045483bf3 100644
--- a/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch
+++ b/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Sat, 27 May 2017 19:02:06 +0200
-Subject: [PATCH 027/353] kernel/sched/core: add migrate_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=851169d906dda13e32de30f8fa91f2328d908f14
+Subject: [PATCH 027/354] kernel/sched/core: add migrate_disable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0aa14e0bb24532aa6862ed0dc4e5c029f10227fa
---
include/linux/preempt.h | 23 +++++++
@@ -12,7 +12,7 @@ Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/comm
5 files changed, 165 insertions(+), 2 deletions(-)
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index c01813c3fbe9..3196d0e76719 100644
+index abeec72b4d35..9d3e416fe497 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -185,6 +185,22 @@ do { \
diff --git a/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch b/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch
index efc393758..1b9958255 100644
--- a/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch
+++ b/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 9 Oct 2018 17:34:50 +0200
-Subject: [PATCH 028/353] sched/migrate_disable: Add export_symbol_gpl for
+Subject: [PATCH 028/354] sched/migrate_disable: Add export_symbol_gpl for
__migrate_disabled
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=41cf8452f8cc8846c42387f5730f027836b38946
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95abb61946ae6f3c3fdf8f16fd77322b4f38582a
Jonathan reported that lttng/modules can't use __migrate_disabled().
This function is only used by sched/core itself and the tracing
diff --git a/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch b/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch
index 0900d4057..1e41e94d1 100644
--- a/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch
+++ b/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 9 Mar 2016 10:51:06 +0100
-Subject: [PATCH 029/353] arm: at91: do not disable/enable clocks in a row
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2de0b355b47912313998dc17af34f926e24fcb9b
+Subject: [PATCH 029/354] arm: at91: do not disable/enable clocks in a row
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=da9445fe136103f82bd20d49f344d448f1c80d88
Currently the driver will disable the clock and enable it one line later
if it is switching from periodic mode into one shot.
@@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 29 insertions(+), 4 deletions(-)
diff --git a/drivers/clocksource/tcb_clksrc.c b/drivers/clocksource/tcb_clksrc.c
-index 43f4d5c4d6fa..de6baf564dfe 100644
+index 998d9115add6..a9ba3cd24a67 100644
--- a/drivers/clocksource/tcb_clksrc.c
+++ b/drivers/clocksource/tcb_clksrc.c
@@ -126,6 +126,7 @@ static struct clocksource clksrc = {
diff --git a/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch b/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
index 2063f79e1..d7136f330 100644
--- a/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
+++ b/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
@@ -1,11 +1,11 @@
From: Benedikt Spranger <b.spranger@linutronix.de>
Date: Mon, 8 Mar 2010 18:57:04 +0100
-Subject: [PATCH 030/353] clocksource: TCLIB: Allow higher clock rates for
+Subject: [PATCH 030/354] clocksource: TCLIB: Allow higher clock rates for
clock events
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=baee7768ee1f5b5c11151866389ccd758e799a26
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f9f50fd4beefe484f198ca1ddf3585b9143b012f
As default the TCLIB uses the 32KiHz base clock rate for clock events.
Add a compile time selection to allow higher clock resulution.
@@ -20,7 +20,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2 files changed, 31 insertions(+), 17 deletions(-)
diff --git a/drivers/clocksource/tcb_clksrc.c b/drivers/clocksource/tcb_clksrc.c
-index de6baf564dfe..ba15242a6066 100644
+index a9ba3cd24a67..3f364ed57935 100644
--- a/drivers/clocksource/tcb_clksrc.c
+++ b/drivers/clocksource/tcb_clksrc.c
@@ -25,8 +25,7 @@
@@ -122,7 +122,7 @@ index de6baf564dfe..ba15242a6066 100644
return ret;
}
-@@ -435,7 +437,11 @@ static int __init tcb_clksrc_init(void)
+@@ -436,7 +438,11 @@ static int __init tcb_clksrc_init(void)
goto err_disable_t1;
/* channel 2: periodic and oneshot timer support */
diff --git a/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch b/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch
index d816ecd3b..4cc885b00 100644
--- a/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch
+++ b/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Feb 2013 22:36:59 +0100
-Subject: [PATCH 031/353] timekeeping: Split jiffies seqlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e67616dbfa0b4e559a51d108930dbdf3b5ec8a8e
+Subject: [PATCH 031/354] timekeeping: Split jiffies seqlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5fbd37b3a06031c2ac2b59675834a623c5f0cc32
Replace jiffies_lock seqlock with a simple seqcounter and a rawlock so
it can be taken in atomic context on RT.
diff --git a/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch b/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch
index ebd057fb3..7bf037105 100644
--- a/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch
+++ b/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 21 Sep 2011 19:57:12 +0200
-Subject: [PATCH 032/353] signal: Revert ptrace preempt magic
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=644d41a2ad0eeb0b4c8f45d97302becdc9270125
+Subject: [PATCH 032/354] signal: Revert ptrace preempt magic
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=153566887fab3e93e10339c0b3d8cc23f921b8da
Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more
than a bandaid around the ptrace design trainwreck. It's not a
diff --git a/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch b/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch
index a795a7730..e1703b62c 100644
--- a/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch
+++ b/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch
@@ -1,7 +1,7 @@
From: Marc Kleine-Budde <mkl@pengutronix.de>
Date: Wed, 5 Mar 2014 00:49:47 +0100
-Subject: [PATCH 033/353] net: sched: Use msleep() instead of yield()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3a2606d8cca4f1676f8e4428ac09a81adb99272e
+Subject: [PATCH 033/354] net: sched: Use msleep() instead of yield()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c872ce657d413044d7a779f3ae549565df0e0bee
On PREEMPT_RT enabled systems the interrupt handler run as threads at prio 50
(by default). If a high priority userspace process tries to shut down a busy
diff --git a/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch b/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch
index 06535faa3..416f340b0 100644
--- a/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch
+++ b/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 27 Mar 2018 16:24:15 +0200
-Subject: [PATCH 034/353] dm rq: remove BUG_ON(!irqs_disabled) check
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a4df0ffc36cba9a71e739f5838df2eb08896256
+Subject: [PATCH 034/354] dm rq: remove BUG_ON(!irqs_disabled) check
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5416350ddb9932f9225dc0a1f73aae78f476a89a
In commit 052189a2ec95 ("dm: remove superfluous irq disablement in
dm_request_fn") the spin_lock_irq() was replaced with spin_lock() + a
diff --git a/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch b/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch
index 02f48203c..3073c0f78 100644
--- a/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch
+++ b/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 8 Nov 2013 17:34:54 +0100
-Subject: [PATCH 035/353] usb: do no disable interrupts in giveback
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=476b0e55e05f6dadc236e6f568f66c0907218ea2
+Subject: [PATCH 035/354] usb: do no disable interrupts in giveback
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=20c76a4d6ea56aceee98fe4a680f629fba675f39
Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet
context") the USB code disables interrupts before invoking the complete
diff --git a/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch b/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
index 13d19f8de..fb87af603 100644
--- a/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
+++ b/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 17 Jun 2011 12:39:57 +0200
-Subject: [PATCH 036/353] rt: Provide PREEMPT_RT_BASE config switch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b0d131d186abf19fa4f22052f09aa9d1e4b8e67d
+Subject: [PATCH 036/354] rt: Provide PREEMPT_RT_BASE config switch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3cbb77ea49a343d86fc9db411aa4c3a5b62e0e55
Introduce PREEMPT_RT_BASE which enables parts of
PREEMPT_RT_FULL. Forces interrupt threading and enables some of the RT
diff --git a/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch b/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
index 18adcb82b..ded3fbc60 100644
--- a/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
+++ b/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 14 Dec 2011 01:03:49 +0100
-Subject: [PATCH 037/353] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa9cb2fbe6f5b5c488e7e709e18adf4cf45069eb
+Subject: [PATCH 037/354] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51346d000e9dc2d42d8ae29ed226e0daaa74d4c2
There are "valid" GFP_ATOMIC allocations such as
@@ -46,10 +46,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index be4403a8e1b4..a8ec5d0c024e 100644
+index 9fd2e3c2494a..c33cdb5bbf60 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
-@@ -935,7 +935,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
+@@ -936,7 +936,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
config MAXSMP
bool "Enable Maximum number of SMP Processors and NUMA Nodes"
depends on X86_64 && SMP && DEBUG_KERNEL
diff --git a/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch b/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch
index 2d36bb291..4b4779b93 100644
--- a/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch
+++ b/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 8 Jul 2015 17:14:48 +0200
-Subject: [PATCH 038/353] jump-label: disable if stop_machine() is used
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7475498ce7b14345b197402b874347c3a8a55075
+Subject: [PATCH 038/354] jump-label: disable if stop_machine() is used
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5c249f153a374e1dcb6fa4ca4a19ceb8679b2060
Some architectures are using stop_machine() while switching the opcode which
leads to latency spikes.
@@ -24,10 +24,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 41bde0e62e90..48f7fcbe2f37 100644
+index 9b075719a7d9..96a5fa956e9b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -51,7 +51,7 @@ config ARM
+@@ -52,7 +52,7 @@ config ARM
select HARDIRQS_SW_RESEND
select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
diff --git a/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch b/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch
index 092b6ffb0..413c4ae44 100644
--- a/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch
+++ b/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 24 Jul 2011 12:11:43 +0200
-Subject: [PATCH 039/353] kconfig: Disable config options which are not RT
+Subject: [PATCH 039/354] kconfig: Disable config options which are not RT
compatible
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=78e60f97bd4dc81d3b289ce9ba3bd50e6496b917
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=584a33635c1052a87eec55e66183751bb23d8d2e
Disable stuff which is known to have issues on RT
@@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/Kconfig b/arch/Kconfig
-index dd71b34fe4f5..f53e81602922 100644
+index 6e77e795517d..7aa61cc39d66 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -28,6 +28,7 @@ config OPROFILE
diff --git a/debian/patches-rt/0040-lockdep-disable-self-test.patch b/debian/patches-rt/0040-lockdep-disable-self-test.patch
index 5367e26e1..130320e8e 100644
--- a/debian/patches-rt/0040-lockdep-disable-self-test.patch
+++ b/debian/patches-rt/0040-lockdep-disable-self-test.patch
@@ -1,10 +1,10 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 17 Oct 2017 16:36:18 +0200
-Subject: [PATCH 040/353] lockdep: disable self-test
+Subject: [PATCH 040/354] lockdep: disable self-test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4d493518f5ac0489a49fbb9c7768b49f43ed1add
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ecc35b769047b939a39ec23ec401814bbb79e3df
The self-test wasn't always 100% accurate for RT. We disabled a few
tests which failed because they had a different semantic for RT. Some
diff --git a/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch b/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch
index b90f803b6..f2894854d 100644
--- a/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch
+++ b/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:44:03 -0500
-Subject: [PATCH 041/353] mm: Allow only slub on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cb3b6e45e3f58dd010c7238697d1cf1a971f71e1
+Subject: [PATCH 041/354] mm: Allow only slub on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4e42c139b4936e86894557651d1b38cdd4be53a7
Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs.
diff --git a/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch b/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch
index 88a1efae0..87007b2bc 100644
--- a/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch
+++ b/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch
@@ -1,10 +1,10 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:51:45 +0200
-Subject: [PATCH 042/353] locking: Disable spin on owner for RT
+Subject: [PATCH 042/354] locking: Disable spin on owner for RT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=af47a49386367ed0b848f393f5e6136cd83b69a5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4c3ba92a80bbac5ad34982e9ab4d63123bdd4c5e
Drop spin on owner for mutex / rwsem. We are most likely not using it
but…
diff --git a/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch b/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
index d96043a68..c97d0ef9e 100644
--- a/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
+++ b/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 28 Oct 2012 13:26:09 +0000
-Subject: [PATCH 043/353] rcu: Disable RCU_FAST_NO_HZ on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=807f7c93f7edb3fcca92051a329ae6c108de6b36
+Subject: [PATCH 043/354] rcu: Disable RCU_FAST_NO_HZ on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a0ac62221fb175580cfd6d4cf41a4ed2c3f2e56b
This uses a timer_list timer from the irq disabled guts of the idle
code. Disable it for now to prevent wreckage.
diff --git a/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch b/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch
index 7eefd7726..4b03ecd59 100644
--- a/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch
+++ b/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 21 Mar 2014 20:19:05 +0100
-Subject: [PATCH 044/353] rcu: make RCU_BOOST default on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5b2d814594a0f22fef63b73eaa88d1ef3ba9e002
+Subject: [PATCH 044/354] rcu: make RCU_BOOST default on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4b8701bc61e2f689a33e0d0b3498e84a1cde68e6
Since it is no longer invoked from the softirq people run into OOM more
often if the priority of the RCU thread is too low. Making boosting
diff --git a/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch b/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
index 400617a80..cbc2958ed 100644
--- a/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
+++ b/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:03:52 +0200
-Subject: [PATCH 045/353] sched: Disable CONFIG_RT_GROUP_SCHED on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8c020a966bafec876d590b4a2fd9f7801e23d5a
+Subject: [PATCH 045/354] sched: Disable CONFIG_RT_GROUP_SCHED on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=99cae2f5fe3de2754132778ae2de245cc2b0fb3b
Carsten reported problems when running:
diff --git a/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch b/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch
index 6f0477790..381a0bad1 100644
--- a/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch
+++ b/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch
@@ -1,10 +1,10 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Sat, 27 May 2017 19:02:06 +0200
-Subject: [PATCH 046/353] net/core: disable NET_RX_BUSY_POLL
+Subject: [PATCH 046/354] net/core: disable NET_RX_BUSY_POLL
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c91e1d483f6d2e075683470a7e46a305c83a564c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4eec6dbe20db90fc9b5f39d1a97cc07bba43a39e
sk_busy_loop() does preempt_disable() followed by a few operations which can
take sleeping locks and may get long.
@@ -20,10 +20,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/Kconfig b/net/Kconfig
-index 228dfa382eec..bc8d01996f22 100644
+index 4bef62b4c806..490db7aef080 100644
--- a/net/Kconfig
+++ b/net/Kconfig
-@@ -275,7 +275,7 @@ config CGROUP_NET_CLASSID
+@@ -273,7 +273,7 @@ config CGROUP_NET_CLASSID
config NET_RX_BUSY_POLL
bool
diff --git a/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch b/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch
index 4a2db17b6..ab9e881f8 100644
--- a/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch
+++ b/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 1 Dec 2017 10:42:03 +0100
-Subject: [PATCH 047/353] arm*: disable NEON in kernel mode
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7239775653422e6ae509eb044c2e29549918751a
+Subject: [PATCH 047/354] arm*: disable NEON in kernel mode
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6f6f76a78d61981535e6eefb0acce1f7d2c25161
NEON in kernel mode is used by the crypto algorithms and raid6 code.
While the raid6 code looks okay, the crypto algorithms do not: NEON
@@ -20,10 +20,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
3 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 48f7fcbe2f37..d411fbbf13f0 100644
+index 96a5fa956e9b..d105a362d1ac 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -2165,7 +2165,7 @@ config NEON
+@@ -2166,7 +2166,7 @@ config NEON
config KERNEL_MODE_NEON
bool "Support for NEON in kernel mode"
diff --git a/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch b/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch
index db78ee0b7..e6014f126 100644
--- a/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch
+++ b/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 048/353] powerpc: Use generic rwsem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51c73f280c36dda381651f877c21f25d176c2578
+Subject: [PATCH 048/354] powerpc: Use generic rwsem on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9cf4b3cb52777ec9bfbd96ec42b3f1fc7161a25
Use generic code which uses rtmutex
@@ -11,7 +11,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
-index f0e09d5f0bed..d6aae022d8c3 100644
+index 3be56d857d57..f4518b8a072b 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -105,10 +105,11 @@ config LOCKDEP_SUPPORT
diff --git a/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
index 1559437a0..0f2ad849a 100644
--- a/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
+++ b/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
@@ -1,8 +1,8 @@
From: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Date: Fri, 24 Apr 2015 15:53:13 +0000
-Subject: [PATCH 049/353] powerpc/kvm: Disable in-kernel MPIC emulation for
+Subject: [PATCH 049/354] powerpc/kvm: Disable in-kernel MPIC emulation for
PREEMPT_RT_FULL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d2178c38f47591486742dfaf8fef2b79fd85967a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=953ce30c2d9f83e2196c729ec5c2751b9b5974b7
While converting the openpic emulation code to use a raw_spinlock_t enables
guests to run on RT, there's still a performance issue. For interrupts sent in
diff --git a/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch b/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch
index c08c00eae..86caa6ab9 100644
--- a/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch
+++ b/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:08:34 +0200
-Subject: [PATCH 050/353] powerpc: Disable highmem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=881dee687f9b7382c752cad0833c67629c3e88fb
+Subject: [PATCH 050/354] powerpc: Disable highmem on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=36e07675ce9495c0f1fd8450b52c92e0c15a5823
The current highmem handling on -RT is not compatible and needs fixups.
@@ -11,10 +11,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
-index d6aae022d8c3..f4517f4be192 100644
+index f4518b8a072b..cd338d971df2 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
-@@ -400,7 +400,7 @@ menu "Kernel options"
+@@ -401,7 +401,7 @@ menu "Kernel options"
config HIGHMEM
bool "High memory support"
diff --git a/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch b/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch
index 340ce777f..9061234e2 100644
--- a/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch
+++ b/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:10:12 +0200
-Subject: [PATCH 051/353] mips: Disable highmem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e8faa268480a65b8ec2bc9731d9488ab238e5eee
+Subject: [PATCH 051/354] mips: Disable highmem on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b58be7fafe13fa007c6be9aa57a2efa62b2757f0
The current highmem handling on -RT is not compatible and needs fixups.
@@ -11,10 +11,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
-index 8a227a80f6bd..bbd790058e46 100644
+index 8d1d065aac35..68bfe86b5aa8 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -2523,7 +2523,7 @@ config MIPS_CRC_SUPPORT
+@@ -2524,7 +2524,7 @@ config MIPS_CRC_SUPPORT
#
config HIGHMEM
bool "High Memory Support"
diff --git a/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch b/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch
index 38b04824e..55f030e8c 100644
--- a/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch
+++ b/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 26 Jul 2009 02:21:32 +0200
-Subject: [PATCH 052/353] x86: Use generic rwsem_spinlocks on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c2d67e579a50998e69e63fc2e1d3b93ddecc564
+Subject: [PATCH 052/354] x86: Use generic rwsem_spinlocks on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7a9d74efed62faabbd429f85e9a0a26d864ec999
Simplifies the separation of anon_rw_semaphores and rw_semaphores for
-rt.
@@ -12,10 +12,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index a8ec5d0c024e..6ee7220e7f47 100644
+index c33cdb5bbf60..d2702e568153 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
-@@ -264,8 +264,11 @@ config ARCH_MAY_HAVE_PC_FDC
+@@ -265,8 +265,11 @@ config ARCH_MAY_HAVE_PC_FDC
def_bool y
depends on ISA_DMA_API
diff --git a/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch b/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch
index 8cb7e3811..61e2031b0 100644
--- a/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch
+++ b/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 23 Jan 2014 14:45:59 +0100
-Subject: [PATCH 053/353] leds: trigger: disable CPU trigger on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7a8d66dd761a516e265202481b854fff78c6b1b6
+Subject: [PATCH 053/354] leds: trigger: disable CPU trigger on -RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd2fc615fc4835279134c51053e56919925d551e
as it triggers:
|CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141
diff --git a/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch b/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
index cfeda51ca..7a20aa79e 100644
--- a/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
+++ b/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 9 Apr 2015 15:23:01 +0200
-Subject: [PATCH 054/353] cpufreq: drop K8's driver from beeing selected
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=69b2bc87d938e2f7c48cfae26f1bde516298648f
+Subject: [PATCH 054/354] cpufreq: drop K8's driver from beeing selected
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d488ef98e1f108232f15eb23ea95ffbd29176adb
Ralf posted a picture of a backtrace from
diff --git a/debian/patches-rt/0055-md-disable-bcache.patch b/debian/patches-rt/0055-md-disable-bcache.patch
index afe7f1fc4..27d7e36e1 100644
--- a/debian/patches-rt/0055-md-disable-bcache.patch
+++ b/debian/patches-rt/0055-md-disable-bcache.patch
@@ -1,10 +1,10 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 29 Aug 2013 11:48:57 +0200
-Subject: [PATCH 055/353] md: disable bcache
+Subject: [PATCH 055/354] md: disable bcache
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f2b9a4942cf661040eaf50bcf2273f11609f78b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=332c64861b0d7fc7392a7bccb46df6481db40271
It uses anon semaphores
|drivers/md/bcache/request.c: In function ‘cached_dev_write_complete’:
diff --git a/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch b/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch
index 1c79b3b41..f390b87da 100644
--- a/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch
+++ b/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 15:03:16 +0200
-Subject: [PATCH 056/353] efi: Disable runtime services on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0ece58437734f184ee2b23f28f2677164de88ac9
+Subject: [PATCH 056/354] efi: Disable runtime services on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=86b7465596228b558b779c1d9ab8dde93f48010c
Based on meassurements the EFI functions get_variable /
get_next_variable take up to 2us which looks okay.
diff --git a/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch b/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch
index d72360c02..27ad3ddcb 100644
--- a/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch
+++ b/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 22 Jul 2011 17:58:40 +0200
-Subject: [PATCH 057/353] printk: Add a printk kill switch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=41266168d2081efb4dce1f66cceb696bd642a639
+Subject: [PATCH 057/354] printk: Add a printk kill switch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b0bd8c73adefa7c822cad0561539e02ed4dcf25
Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that
it does not dead-lock with the early printk code.
@@ -134,7 +134,7 @@ index 2ba16c426ba5..963c20ab9548 100644
char *brl_options)
{
diff --git a/kernel/watchdog_hld.c b/kernel/watchdog_hld.c
-index 71381168dede..685443375dc0 100644
+index f8e460b4a59d..72a119b97f3e 100644
--- a/kernel/watchdog_hld.c
+++ b/kernel/watchdog_hld.c
@@ -24,6 +24,8 @@ static DEFINE_PER_CPU(bool, hard_watchdog_warn);
diff --git a/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch b/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch
index be5a84236..75c07a443 100644
--- a/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch
+++ b/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz@infradead.org>
Date: Fri, 2 Sep 2011 14:41:29 +0200
-Subject: [PATCH 058/353] printk: Add "force_early_printk" boot param to help
+Subject: [PATCH 058/354] printk: Add "force_early_printk" boot param to help
with debugging
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09a1a8262e58440d4f13b8c83c4b9df4f1e98b68
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3a11c0ace01b746211f91fee9cf29a4b58cff546
Gives me an option to screw printk and actually see what the machine
says.
diff --git a/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch b/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch
index 68a057a6d..6236266bc 100644
--- a/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch
+++ b/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 24 Jul 2009 12:38:56 +0200
-Subject: [PATCH 059/353] preempt: Provide preempt_*_(no)rt variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c22473616742042d7220a7ed01109c20219aa122
+Subject: [PATCH 059/354] preempt: Provide preempt_*_(no)rt variants
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5dfe6e66695e244379db0cc9294b2c37c6420215
RT needs a few preempt_disable/enable points which are not necessary
otherwise. Implement variants to avoid #ifdeffery.
@@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index 3196d0e76719..f7a17fcc3fec 100644
+index 9d3e416fe497..02ba5c80bf0d 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -181,7 +181,11 @@ do { \
diff --git a/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch b/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch
index 23da29124..7d3bae3ba 100644
--- a/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch
+++ b/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 8 Mar 2017 14:23:35 +0100
-Subject: [PATCH 060/353] futex: workaround migrate_disable/enable in different
+Subject: [PATCH 060/354] futex: workaround migrate_disable/enable in different
context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=005385bd16d108692e1c126bc21baaf65247d41b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0e1d4d1ef2aa4b23f0517ca379acd8d54408652a
migrate_disable()/migrate_enable() takes a different path in atomic() vs
!atomic() context. These little hacks ensure that we don't underflow / overflow
@@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 19 insertions(+)
diff --git a/kernel/futex.c b/kernel/futex.c
-index 3c67da9b8408..fac994367189 100644
+index ca2a2a894839..3fdcf5add961 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2998,6 +2998,14 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
diff --git a/debian/patches-rt/0061-rt-Add-local-irq-locks.patch b/debian/patches-rt/0061-rt-Add-local-irq-locks.patch
index 6236eb37e..d7bb5ce82 100644
--- a/debian/patches-rt/0061-rt-Add-local-irq-locks.patch
+++ b/debian/patches-rt/0061-rt-Add-local-irq-locks.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 20 Jun 2011 09:03:47 +0200
-Subject: [PATCH 061/353] rt: Add local irq locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dcbbd166f143aaaf07a1a3b0b910448cad98807d
+Subject: [PATCH 061/354] rt: Add local irq locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a4a22dfa178b7ee663c4c3d476aa5e43c86a25e3
Introduce locallock. For !RT this maps to preempt_disable()/
local_irq_disable() so there is not much that changes. For RT this will
diff --git a/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch b/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch
index 47955c3d8..39b141e87 100644
--- a/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch
+++ b/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch
@@ -1,7 +1,7 @@
From: Julia Cartwright <julia@ni.com>
Date: Mon, 7 May 2018 08:58:56 -0500
-Subject: [PATCH 062/353] locallock: provide {get,put}_locked_ptr() variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5dc9c8dde604d296946d3c972c85c62bc39ad790
+Subject: [PATCH 062/354] locallock: provide {get,put}_locked_ptr() variants
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3975702953f5f175e304d6c6be12b105188a1bd6
Provide a set of locallocked accessors for pointers to per-CPU data;
this is useful for dynamically-allocated per-CPU regions, for example.
diff --git a/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch b/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
index 11e75312b..bcb49e151 100644
--- a/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
+++ b/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:34 -0500
-Subject: [PATCH 063/353] mm/scatterlist: Do not disable irqs on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7ed7cd17a5a82c9c8339c813f8349b672892703e
+Subject: [PATCH 063/354] mm/scatterlist: Do not disable irqs on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=12886ef6289d993f7142c036532d7a5036243b80
For -RT it is enough to keep pagefault disabled (which is currently handled by
kmap_atomic()).
diff --git a/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch b/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch
index b200cf8da..b6c75156d 100644
--- a/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch
+++ b/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch
@@ -1,7 +1,7 @@
From: Oleg Nesterov <oleg@redhat.com>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 064/353] signal/x86: Delay calling signals in atomic
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f2e1eba7c6820604ba2f99dfb4e0cf6d1448b6a
+Subject: [PATCH 064/354] signal/x86: Delay calling signals in atomic
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a2bbbf69e3cc12da8d4755748647a5c0aea9fad
On x86_64 we must disable preemption before we enable interrupts
for stack faults, int3 and debugging, because the current task is using
diff --git a/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch b/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch
index b785f1133..53eb31683 100644
--- a/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch
+++ b/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch
@@ -1,7 +1,7 @@
From: Yang Shi <yang.shi@linaro.org>
Date: Thu, 10 Dec 2015 10:58:51 -0800
-Subject: [PATCH 065/353] x86/signal: delay calling signals on 32bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb7990ff39c4d55a438d1d98cd873b1a6a20ed25
+Subject: [PATCH 065/354] x86/signal: delay calling signals on 32bit
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c0ffc5f3ad8ee2e26aea8fb7e61c6535a26dc83e
When running some ptrace single step tests on x86-32 machine, the below problem
is triggered:
diff --git a/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch b/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
index 39751173b..4cf4429b5 100644
--- a/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
+++ b/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 18 Mar 2011 09:18:52 +0100
-Subject: [PATCH 066/353] buffer_head: Replace bh_uptodate_lock for -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b7112c7f2393168be4998583652cd82cfba26657
+Subject: [PATCH 066/354] buffer_head: Replace bh_uptodate_lock for -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=83ae2e10f64a4ae559245504a71b2afe93d86254
Wrap the bit_spin_lock calls into a separate inline and add the RT
replacements with a real spinlock.
diff --git a/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch b/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
index 883de41c9..f0c8428d4 100644
--- a/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
+++ b/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 18 Mar 2011 10:11:25 +0100
-Subject: [PATCH 067/353] fs: jbd/jbd2: Make state lock and journal head lock
+Subject: [PATCH 067/354] fs: jbd/jbd2: Make state lock and journal head lock
rt safe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=287a79f16976e509bad76ff2beb4d1fa36dee029
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ec2dd6baab3f7078091842cb565ff049c6f59bcb
bit_spin_locks break under RT.
diff --git a/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch b/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch
index 67bc835ac..527c2d15d 100644
--- a/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch
+++ b/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch
@@ -1,7 +1,7 @@
From: Paul Gortmaker <paul.gortmaker@windriver.com>
Date: Fri, 21 Jun 2013 15:07:25 -0400
-Subject: [PATCH 068/353] list_bl: Make list head locking RT safe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a4a154a836de866df8224ccec73bd3326aa14ec
+Subject: [PATCH 068/354] list_bl: Make list head locking RT safe
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=edb9ea73fd16246fc9b305420569bb616bd9e0cc
As per changes in include/linux/jbd_common.h for avoiding the
bit_spin_locks on RT ("fs: jbd/jbd2: Make state lock and journal
diff --git a/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch b/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch
index 48011bc68..47ae09367 100644
--- a/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch
+++ b/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch
@@ -1,7 +1,7 @@
From: Josh Cartwright <joshc@ni.com>
Date: Thu, 31 Mar 2016 00:04:25 -0500
-Subject: [PATCH 069/353] list_bl: fixup bogus lockdep warning
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f671f39416b991c8fef15e4e7c8734034043c90f
+Subject: [PATCH 069/354] list_bl: fixup bogus lockdep warning
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6e8b711481d5915443ad3b0006faaa91b7c8a706
At first glance, the use of 'static inline' seems appropriate for
INIT_HLIST_BL_HEAD().
diff --git a/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch b/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch
index 1ec75d595..091573beb 100644
--- a/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch
+++ b/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:57 -0500
-Subject: [PATCH 070/353] genirq: Disable irqpoll on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b5e333637dade576a0bdd5032dc7b65746460db4
+Subject: [PATCH 070/354] genirq: Disable irqpoll on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cbe56279fd168570a4e72297bbdb239c7e3145ec
Creates long latencies for no value
diff --git a/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch b/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch
index 6e8649eb6..ec124d559 100644
--- a/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch
+++ b/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 3 Apr 2011 11:57:29 +0200
-Subject: [PATCH 071/353] genirq: Force interrupt thread on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=31da4391a9681dc99ba6fbb4e0a52f8aba734b83
+Subject: [PATCH 071/354] genirq: Force interrupt thread on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0b5adeb3757805dd7763a428f437518de54162f3
Force threaded_irqs and optimize the code (force_irqthreads) in regard
to this.
diff --git a/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
index cb3e6d4a8..12a38a530 100644
--- a/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
+++ b/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 28 May 2018 15:24:20 +0200
-Subject: [PATCH 072/353] Split IRQ-off and zone->lock while freeing pages from
+Subject: [PATCH 072/354] Split IRQ-off and zone->lock while freeing pages from
PCP list #1
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9fd68ce8dfdfd97a4178efdda9dd37014f62b1d5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dc919396d0218b1f88ccb2f87883bc634548b56f
Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages.
diff --git a/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
index 458e3a160..b3c353dd1 100644
--- a/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
+++ b/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 28 May 2018 15:24:21 +0200
-Subject: [PATCH 073/353] Split IRQ-off and zone->lock while freeing pages from
+Subject: [PATCH 073/354] Split IRQ-off and zone->lock while freeing pages from
PCP list #2
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b2652116a3528f3658deb5a4dd32c704552b1080
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=52f95db6745cd55fcf4a66f563f810ffd1bf8f47
Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages.
diff --git a/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch
index 7575989fe..86907b1dd 100644
--- a/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch
+++ b/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 28 May 2018 15:24:22 +0200
-Subject: [PATCH 074/353] mm/SLxB: change list_lock to raw_spinlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=02829e5ee70fc4951a1492d03d4ccff359b0a914
+Subject: [PATCH 074/354] mm/SLxB: change list_lock to raw_spinlock_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3cb73473866649c184f151f02d424bfd6e7cf276
The list_lock is used with used with IRQs off on RT. Make it a raw_spinlock_t
otherwise the interrupts won't be disabled on -RT. The locking rules remain
@@ -398,11 +398,11 @@ index 0ed7a463f476..12b7da32bcd0 100644
#ifdef CONFIG_SLAB
struct list_head slabs_partial; /* partial list first, better asm code */
diff --git a/mm/slub.c b/mm/slub.c
-index ef730ea8263c..97d2bd78534b 100644
+index edf766f1de63..cfb6e3ef42a6 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1182,7 +1182,7 @@ static noinline int free_debug_processing(
- unsigned long uninitialized_var(flags);
+ unsigned long flags;
int ret = 0;
- spin_lock_irqsave(&n->list_lock, flags);
diff --git a/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch b/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch
index d52ca7c84..d50a5d136 100644
--- a/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch
+++ b/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 Jun 2018 17:29:19 +0200
-Subject: [PATCH 075/353] mm/SLUB: delay giving back empty slubs to IRQ enabled
+Subject: [PATCH 075/354] mm/SLUB: delay giving back empty slubs to IRQ enabled
regions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0bed7d4f488bcf540f7876a275217b9c398254bb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1dc00d80ab881dd1cc5bbd057d1aabfd233711c
__free_slab() is invoked with disabled interrupts which increases the
irq-off time while __free_pages() is doing the work.
@@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 69 insertions(+), 5 deletions(-)
diff --git a/mm/slub.c b/mm/slub.c
-index 97d2bd78534b..c62e0bf85d8e 100644
+index cfb6e3ef42a6..ead93b7fbd69 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1350,6 +1350,12 @@ static bool freelist_corrupted(struct kmem_cache *s, struct page *page,
diff --git a/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch b/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch
index 8130097c9..cbcb59f16 100644
--- a/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch
+++ b/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:37 -0500
-Subject: [PATCH 076/353] mm: page_alloc: rt-friendly per-cpu pages
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1bb66c1cc65535695f6d34f78086223ed4e87514
+Subject: [PATCH 076/354] mm: page_alloc: rt-friendly per-cpu pages
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=30ea7d8d8433206aa2ccfac0aed6a92604778a2a
rt-friendly per-cpu pages: convert the irqs-off per-cpu locking
method into a preemptible, explicit-per-cpu-locks method.
diff --git a/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch b/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch
index 8c4b4dfde..f80f4eda3 100644
--- a/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch
+++ b/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:51 -0500
-Subject: [PATCH 077/353] mm/swap: Convert to percpu locked
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f11cbef82fab199491592055c6bd404867e5d463
+Subject: [PATCH 077/354] mm/swap: Convert to percpu locked
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=41766d9e9f4c4460a518a83a4ffb657e262662bc
Replace global locks (get_cpu + local_irq_save) with "local_locks()".
Currently there is one of for "rotate" and one for "swap".
@@ -70,7 +70,7 @@ index 51f71e7740b2..a34a071048d2 100644
/*
diff --git a/mm/swap.c b/mm/swap.c
-index 45fdbfb6b2a6..92f994b962f0 100644
+index ce13e428380e..4e75c8e59874 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -33,6 +33,7 @@
diff --git a/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch b/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch
index 7b9ad0e55..3fe81fbb4 100644
--- a/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch
+++ b/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch
@@ -1,7 +1,7 @@
From: Luiz Capitulino <lcapitulino@redhat.com>
Date: Fri, 27 May 2016 15:03:28 +0200
-Subject: [PATCH 078/353] mm: perform lru_add_drain_all() remotely
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ddbda00eeee4a9177a7ebc3d05932ebfe414742f
+Subject: [PATCH 078/354] mm: perform lru_add_drain_all() remotely
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ff13cad74e3bd4a5d0545cf8fc09123c542768a3
lru_add_drain_all() works by scheduling lru_add_drain_cpu() to run
on all CPUs that have non-empty LRU pagevecs and then waiting for
@@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 30 insertions(+), 6 deletions(-)
diff --git a/mm/swap.c b/mm/swap.c
-index 92f994b962f0..3885645a45ce 100644
+index 4e75c8e59874..90a4b4d0ba75 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -585,9 +585,15 @@ void lru_add_drain_cpu(int cpu)
diff --git a/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch b/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
index 0db5adc93..580019edc 100644
--- a/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
+++ b/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:13 -0500
-Subject: [PATCH 079/353] mm/vmstat: Protect per cpu variables with preempt
+Subject: [PATCH 079/354] mm/vmstat: Protect per cpu variables with preempt
disable on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0563dacda4ed0e4a61ba53f2a6ea8b8a50cf4914
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=325d611ea246e9a7ad505a6e913b64a9b761cd58
Disable preemption on -RT for the vmstat code. On vanila the code runs in
IRQ-off regions while on -RT it is not. "preempt_disable" ensures that the
diff --git a/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch b/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
index 4a3556c9b..93b449b56 100644
--- a/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
+++ b/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
@@ -1,8 +1,8 @@
From: Frank Rowand <frank.rowand@am.sony.com>
Date: Sat, 1 Oct 2011 18:58:13 -0700
-Subject: [PATCH 080/353] ARM: Initialize split page table locks for vector
+Subject: [PATCH 080/354] ARM: Initialize split page table locks for vector
page
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fbc577ca758067f49bde3100fa9b6cc3c26b0920
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f61f3fbeb88a5a83754e659248864f6af63e3463
Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if
PREEMPT_RT_FULL=y because vectors_user_mapping() creates a
diff --git a/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch b/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch
index 0ba5470e3..8a5e95b33 100644
--- a/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch
+++ b/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 25 Oct 2012 10:32:35 +0100
-Subject: [PATCH 081/353] mm: Enable SLUB for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cfa555ce1c0ad724598773bddd70e7b294a2680c
+Subject: [PATCH 081/354] mm: Enable SLUB for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ae26f21bcdaa681ae5199a8812163eaab2ee6736
Avoid the memory allocation in IRQ section
@@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 6 insertions(+)
diff --git a/mm/slub.c b/mm/slub.c
-index c62e0bf85d8e..1f32f64254a7 100644
+index ead93b7fbd69..2258ea8b4c10 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -3734,6 +3734,11 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page,
diff --git a/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch b/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch
index 6f5fe6a8e..26cdda7bb 100644
--- a/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch
+++ b/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 9 Jan 2013 12:08:15 +0100
-Subject: [PATCH 082/353] slub: Enable irqs for __GFP_WAIT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=60c7bad2d7e7475f8030e910935d5a14901a21d3
+Subject: [PATCH 082/354] slub: Enable irqs for __GFP_WAIT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=36619847d2542bf988cb3db225d3bd5d6ac70061
SYSTEM_RUNNING might be too late for enabling interrupts. Allocations
with GFP_WAIT can happen before that. So use this as an indicator.
@@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/mm/slub.c b/mm/slub.c
-index 1f32f64254a7..197bab70a05d 100644
+index 2258ea8b4c10..eb0107907043 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1597,10 +1597,17 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node)
diff --git a/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch b/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch
index 3311789cf..44806b7a5 100644
--- a/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch
+++ b/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 15 Apr 2015 19:00:47 +0200
-Subject: [PATCH 083/353] slub: Disable SLUB_CPU_PARTIAL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3b9b3f34e457d3e594cd093c5f1ed48a476eb5f
+Subject: [PATCH 083/354] slub: Disable SLUB_CPU_PARTIAL
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0003c1fd5f60d352bf099e872954d5c526e681da
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915
|in_atomic(): 1, irqs_disabled(): 0, pid: 87, name: rcuop/7
diff --git a/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch b/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
index bce692843..2240be113 100644
--- a/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
+++ b/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
@@ -1,8 +1,8 @@
From: Yang Shi <yang.shi@windriver.com>
Date: Wed, 30 Oct 2013 11:48:33 -0700
-Subject: [PATCH 084/353] mm/memcontrol: Don't call schedule_work_on in
+Subject: [PATCH 084/354] mm/memcontrol: Don't call schedule_work_on in
preemption disabled context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5031f9cdd61fdfdcb0a379e5595209eb3dac9a2f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cae3fe0ced09d550bd14f37b3c6c7e2d80a1fee9
The following trace is triggered when running ltp oom test cases:
@@ -48,7 +48,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index bc4c61dcf95c..b828a208f5bd 100644
+index 5a366cf79821..e048d50de7aa 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -2084,7 +2084,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
diff --git a/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch b/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
index 056411cab..435b7565c 100644
--- a/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
+++ b/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 28 Jan 2015 17:14:16 +0100
-Subject: [PATCH 085/353] mm/memcontrol: Replace local_irq_disable with local
+Subject: [PATCH 085/354] mm/memcontrol: Replace local_irq_disable with local
locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c81a3f5935dfdf459d8a0f1a1a23a8894bff122f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b4be6dd731ba2e585304cdd9417cbe93c504c966
There are a few local_irq_disable() which then take sleeping locks. This
patch converts them local locks.
@@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index b828a208f5bd..c6a58923da63 100644
+index e048d50de7aa..9c7d443a394c 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -69,6 +69,7 @@
diff --git a/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch b/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
index 69a586a87..bf66b0149 100644
--- a/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
+++ b/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
@@ -1,7 +1,7 @@
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Tue, 22 Mar 2016 11:16:09 +0100
-Subject: [PATCH 086/353] mm/zsmalloc: copy with get_cpu_var() and locking
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1066fad5edfca01fbe5e367fa7bbed89e4034677
+Subject: [PATCH 086/354] mm/zsmalloc: copy with get_cpu_var() and locking
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2a16b224b63eca041af897a731e36428cb176b4c
get_cpu_var() disables preemption and triggers a might_sleep() splat later.
This is replaced with get_locked_var().
diff --git a/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch b/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch
index e778b47ad..5ddd96a44 100644
--- a/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch
+++ b/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 11 Dec 2018 21:53:43 +0100
-Subject: [PATCH 087/353] x86/mm/pat: disable preemption __split_large_page()
+Subject: [PATCH 087/354] x86/mm/pat: disable preemption __split_large_page()
after spin_lock()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=93515e9f085077bbdb2a1a2aebd39cad36bfa04e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=afd5e9a628fabb388b8ccbfcac6eb9f74bc93528
Commit "x86/mm/pat: Disable preemption around __flush_tlb_all()" added a
warning if __flush_tlb_all() is invoked in preemptible context. On !RT
diff --git a/debian/patches-rt/0088-radix-tree-use-local-locks.patch b/debian/patches-rt/0088-radix-tree-use-local-locks.patch
index 9b4233844..03bcac756 100644
--- a/debian/patches-rt/0088-radix-tree-use-local-locks.patch
+++ b/debian/patches-rt/0088-radix-tree-use-local-locks.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 25 Jan 2017 16:34:27 +0100
-Subject: [PATCH 088/353] radix-tree: use local locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8e0178916a1bc31af350f62b7e539c9f5390605f
+Subject: [PATCH 088/354] radix-tree: use local locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2760cc0c3631ffe08d8b7b7ef59610bbd3d53b64
The preload functionality uses per-CPU variables and preempt-disable to
ensure that it does not switch CPUs during its usage. This patch adds
@@ -59,7 +59,7 @@ index 34149e8b5f73..affb0fc4c5b6 100644
int radix_tree_split(struct radix_tree_root *, unsigned long index,
unsigned new_order);
diff --git a/lib/radix-tree.c b/lib/radix-tree.c
-index e5cab5c4e383..9309e813bc1f 100644
+index 8d29fa5b2695..f568a9975a44 100644
--- a/lib/radix-tree.c
+++ b/lib/radix-tree.c
@@ -38,7 +38,7 @@
diff --git a/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch b/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch
index 661221346..b08888501 100644
--- a/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch
+++ b/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:34 -0500
-Subject: [PATCH 089/353] timers: Prepare for full preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9a83bbf72537fcc969c8058550534087860df01d
+Subject: [PATCH 089/354] timers: Prepare for full preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=617a0f83685f27fff83acb858be4a912491db426
When softirqs can be preempted we need to make sure that cancelling
the timer from the active thread can not deadlock vs. a running timer
diff --git a/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch b/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch
index 887440c95..b3244eb3a 100644
--- a/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch
+++ b/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 6 Nov 2011 12:26:18 +0100
-Subject: [PATCH 090/353] x86: kvm Require const tsc for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=123d3ce568892f54102019bde255d003a1a3c046
+Subject: [PATCH 090/354] x86: kvm Require const tsc for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8d3a9c9fd232b835f201eab86f906b4d789cf897
Non constant TSC is a nightmare on bare metal already, but with
virtualization it becomes a complete disaster because the workarounds
@@ -14,10 +14,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 7 insertions(+)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index ff7ec9b507e3..c52f6438e712 100644
+index 0548ae57826f..7946d440afe7 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
-@@ -6878,6 +6878,13 @@ int kvm_arch_init(void *opaque)
+@@ -6883,6 +6883,13 @@ int kvm_arch_init(void *opaque)
goto out;
}
diff --git a/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch b/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch
index cf520c9e4..0ea4bea92 100644
--- a/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch
+++ b/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 4 Oct 2017 10:24:23 +0200
-Subject: [PATCH 091/353] pci/switchtec: Don't use completion's wait queue
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb27dc96cb4eb0032a04412e84d7173316dcf1d7
+Subject: [PATCH 091/354] pci/switchtec: Don't use completion's wait queue
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4d0966cc0c8cfc3fc11cce555eec6aff6c72713d
The poll callback is using completion's wait_queue_head_t member and
puts it in poll_wait() so the poll() caller gets a wakeup after command
diff --git a/debian/patches-rt/0092-wait.h-include-atomic.h.patch b/debian/patches-rt/0092-wait.h-include-atomic.h.patch
index 9fcae2021..7c85a3e06 100644
--- a/debian/patches-rt/0092-wait.h-include-atomic.h.patch
+++ b/debian/patches-rt/0092-wait.h-include-atomic.h.patch
@@ -1,10 +1,10 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 28 Oct 2013 12:19:57 +0100
-Subject: [PATCH 092/353] wait.h: include atomic.h
+Subject: [PATCH 092/354] wait.h: include atomic.h
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=92527c4268ea4c091b74080e2aca085023745549
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f5de0d7e2bd4466c2f91a3e3685a65e5a05cc1cc
| CC init/main.o
|In file included from include/linux/mmzone.h:9:0,
diff --git a/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch b/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch
index b1c63280b..d07bda2db 100644
--- a/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch
+++ b/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch
@@ -1,7 +1,7 @@
From: Daniel Wagner <daniel.wagner@bmw-carit.de>
Date: Fri, 11 Jul 2014 15:26:11 +0200
-Subject: [PATCH 093/353] work-simple: Simple work queue implemenation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=207d328d37b03b8fe78f7e50507c7276d3d574d6
+Subject: [PATCH 093/354] work-simple: Simple work queue implemenation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a1c4104c9c8d945109b4af41e261e11b5dde00f2
Provides a framework for enqueuing callbacks from irq context
PREEMPT_RT_FULL safe. The callbacks are executed in kthread context.
diff --git a/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch b/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch
index 890b0bc23..dd7f21b82 100644
--- a/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch
+++ b/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 10 Sep 2018 18:00:31 +0200
-Subject: [PATCH 094/353] work-simple: drop a shit statement in
+Subject: [PATCH 094/354] work-simple: drop a shit statement in
SWORK_EVENT_PENDING
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89b96b26ee1e64dfeb6d4c2513baef4cf7e74da6
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7dfa7d48bd1ecf57b5f1c9e351355d10f235a811
Dan Carpenter reported
| smatch warnings:
diff --git a/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch b/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch
index 33e2c5620..9b333327f 100644
--- a/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch
+++ b/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 11 Jan 2013 11:23:51 +0100
-Subject: [PATCH 095/353] completion: Use simple wait queues
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a49f4fe084f93cac4f50d134183b03ef7e86ab41
+Subject: [PATCH 095/354] completion: Use simple wait queues
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c9b4932b83923af134e46dbd6f0734587fea051c
Completions have no long lasting callbacks and therefor do not need
the complex waitqueue variant. Use simple waitqueues which reduces the
@@ -54,7 +54,7 @@ index a04d59843022..e0046c35a0bd 100644
break;
default:
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
-index f9f324f76a72..0b503fcd9cee 100644
+index a8791b140679..7b557a1338e8 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -1631,7 +1631,7 @@ static void ffs_data_put(struct ffs_data *ffs)
diff --git a/debian/patches-rt/0096-fs-aio-simple-simple-work.patch b/debian/patches-rt/0096-fs-aio-simple-simple-work.patch
index 2d1e7e612..16a3e0b83 100644
--- a/debian/patches-rt/0096-fs-aio-simple-simple-work.patch
+++ b/debian/patches-rt/0096-fs-aio-simple-simple-work.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 16 Feb 2015 18:49:10 +0100
-Subject: [PATCH 096/353] fs/aio: simple simple work
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=04b62043344abb5d537d46a14ca3eab97b6380e2
+Subject: [PATCH 096/354] fs/aio: simple simple work
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6f2737df5a64e62bdf8d1c34ff2b5d1ce6274d83
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2
diff --git a/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch b/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch
index 95085a036..d7a2b80e9 100644
--- a/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch
+++ b/debian/patches-rt/0097-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 15 Nov 2017 17:29:51 +0100
-Subject: [PATCH 097/353] time/hrtimer: avoid schedule_work() with interrupts
+Subject: [PATCH 097/354] time/hrtimer: avoid schedule_work() with interrupts
disabled
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ac94e556e7d6adbadd76a878334275ce3acd987
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a14913f4b6594b92a7134578db108acf234c10ba
The NOHZ code tries to schedule a workqueue with interrupts disabled.
Since this does not work -RT I am switching it to swork instead.
diff --git a/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch b/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch
index d83a27103..216360e31 100644
--- a/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch
+++ b/debian/patches-rt/0098-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 3 Jul 2018 11:25:41 +0200
-Subject: [PATCH 098/353] hrtimer: consolidate hrtimer_init() +
+Subject: [PATCH 098/354] hrtimer: consolidate hrtimer_init() +
hrtimer_init_sleeper() calls
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=81d6386fe5a38dafb8561c5d8caae248bb3456c8
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ca12213cb0d12355a4962b1e5f51063170dd120
hrtimer_init_sleeper() calls require a prior initialisation of the
hrtimer object with hrtimer_init(). Lets make the initialisation of
@@ -62,7 +62,7 @@ index 034d86869772..d089b2cb5dd7 100644
while (1) {
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
-index 542b4fa2cda9..cbd041b22088 100644
+index 3bdaa92a2cab..4b7ef1c6decb 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -364,10 +364,17 @@ DECLARE_PER_CPU(struct tick_device, tick_cpu_device);
@@ -125,7 +125,7 @@ index 189da6e44756..523c68edc48a 100644
hrtimer_start_range_ns(&__t.timer, timeout, \
current->timer_slack_ns, \
diff --git a/kernel/futex.c b/kernel/futex.c
-index fac994367189..ac015d1dd16c 100644
+index 3fdcf5add961..585082311ea3 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2816,10 +2816,9 @@ static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,
@@ -169,7 +169,7 @@ index fac994367189..ac015d1dd16c 100644
current->timer_slack_ns);
}
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 8512f06f0ebe..23c89873bf60 100644
+index bf74f43e42af..1b2aeab41c0b 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1715,13 +1715,44 @@ static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer)
@@ -249,7 +249,7 @@ index 8512f06f0ebe..23c89873bf60 100644
hrtimer_set_expires_range_ns(&t.timer, timespec64_to_ktime(*rqtp), slack);
ret = do_nanosleep(&t, mode);
if (ret != -ERESTART_RESTARTBLOCK)
-@@ -2005,11 +2033,9 @@ schedule_hrtimeout_range_clock(ktime_t *expires, u64 delta,
+@@ -1996,11 +2024,9 @@ schedule_hrtimeout_range_clock(ktime_t *expires, u64 delta,
return -EINTR;
}
@@ -263,7 +263,7 @@ index 8512f06f0ebe..23c89873bf60 100644
if (likely(t.task))
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
-index 3714cd9e3111..2cea192b1475 100644
+index 3ade60ec4512..8aac00b6d491 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -2160,7 +2160,8 @@ static void spin(struct pktgen_dev *pkt_dev, ktime_t spin_until)
diff --git a/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch b/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch
index 5e9ac99d4..e299e22d6 100644
--- a/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch
+++ b/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:34 -0500
-Subject: [PATCH 099/353] hrtimers: Prepare full preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d28d53d40629674ff58c7686726104f107c8e479
+Subject: [PATCH 099/354] hrtimers: Prepare full preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea1a57d171dca96fde02fae81ca8d97eb756b8c6
Make cancellation of a running callback in softirq context safe
against preemption.
@@ -35,7 +35,7 @@ index d69ad801eb80..82d0f52414a6 100644
/*
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
-index cbd041b22088..8714f1a37d84 100644
+index 4b7ef1c6decb..684241f87e4d 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -22,6 +22,7 @@
@@ -107,7 +107,7 @@ index 56af8a97cf2d..dec68f9dab7b 100644
}
EXPORT_SYMBOL_GPL(alarm_cancel);
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 23c89873bf60..ab38b51a96cc 100644
+index 1b2aeab41c0b..478ff82abd33 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -957,6 +957,33 @@ u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
@@ -184,10 +184,10 @@ index 2e2b335ef101..7650ee736964 100644
}
expires = timeval_to_ktime(value->it_value);
diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
-index 1234868b3b03..36ee80652208 100644
+index 8768ce2c4bf5..eae555df7ea3 100644
--- a/kernel/time/posix-timers.c
+++ b/kernel/time/posix-timers.c
-@@ -463,7 +463,7 @@ static struct k_itimer * alloc_posix_timer(void)
+@@ -468,7 +468,7 @@ static struct k_itimer * alloc_posix_timer(void)
static void k_itimer_rcu_free(struct rcu_head *head)
{
@@ -196,7 +196,7 @@ index 1234868b3b03..36ee80652208 100644
kmem_cache_free(posix_timers_cache, tmr);
}
-@@ -480,7 +480,7 @@ static void release_posix_timer(struct k_itimer *tmr, int it_id_set)
+@@ -485,7 +485,7 @@ static void release_posix_timer(struct k_itimer *tmr, int it_id_set)
}
put_pid(tmr->it_pid);
sigqueue_free(tmr->sigq);
@@ -205,7 +205,7 @@ index 1234868b3b03..36ee80652208 100644
}
static int common_timer_create(struct k_itimer *new_timer)
-@@ -821,6 +821,22 @@ static void common_hrtimer_arm(struct k_itimer *timr, ktime_t expires,
+@@ -826,6 +826,22 @@ static void common_hrtimer_arm(struct k_itimer *timr, ktime_t expires,
hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
}
@@ -228,7 +228,7 @@ index 1234868b3b03..36ee80652208 100644
static int common_hrtimer_try_to_cancel(struct k_itimer *timr)
{
return hrtimer_try_to_cancel(&timr->it.real.timer);
-@@ -885,6 +901,7 @@ static int do_timer_settime(timer_t timer_id, int flags,
+@@ -890,6 +906,7 @@ static int do_timer_settime(timer_t timer_id, int flags,
if (!timr)
return -EINVAL;
@@ -236,7 +236,7 @@ index 1234868b3b03..36ee80652208 100644
kc = timr->kclock;
if (WARN_ON_ONCE(!kc || !kc->timer_set))
error = -EINVAL;
-@@ -893,9 +910,12 @@ static int do_timer_settime(timer_t timer_id, int flags,
+@@ -898,9 +915,12 @@ static int do_timer_settime(timer_t timer_id, int flags,
unlock_timer(timr, flag);
if (error == TIMER_RETRY) {
@@ -249,7 +249,7 @@ index 1234868b3b03..36ee80652208 100644
return error;
}
-@@ -977,10 +997,15 @@ SYSCALL_DEFINE1(timer_delete, timer_t, timer_id)
+@@ -982,10 +1002,15 @@ SYSCALL_DEFINE1(timer_delete, timer_t, timer_id)
if (!timer)
return -EINVAL;
@@ -265,7 +265,7 @@ index 1234868b3b03..36ee80652208 100644
spin_lock(&current->sighand->siglock);
list_del(&timer->list);
-@@ -1006,8 +1031,18 @@ static void itimer_delete(struct k_itimer *timer)
+@@ -1011,8 +1036,18 @@ static void itimer_delete(struct k_itimer *timer)
retry_delete:
spin_lock_irqsave(&timer->it_lock, flags);
diff --git a/debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch b/debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch
index de1e06f86..19a98e119 100644
--- a/debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch
+++ b/debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:31 -0500
-Subject: [PATCH 100/353] hrtimer: by timers by default into the softirq
+Subject: [PATCH 100/354] hrtimer: by timers by default into the softirq
context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f29c49b257f3002eb54b6303ac0fc6551f3180b2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9e206d0caa6d175533fd2973ecbb54d48c6f1bd1
We can't have hrtimers callbacks running in hardirq context on RT. Therefore
the timers are deferred to the softirq context by default.
@@ -28,10 +28,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
11 files changed, 37 insertions(+), 14 deletions(-)
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
-index 027941e3df68..9699f3735a55 100644
+index 256b00f456e6..83c3421499aa 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
-@@ -2262,7 +2262,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
+@@ -2266,7 +2266,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
apic->vcpu = vcpu;
hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC,
@@ -41,7 +41,7 @@ index 027941e3df68..9699f3735a55 100644
/*
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
-index 8714f1a37d84..082147c07831 100644
+index 684241f87e4d..f8b4818e6e08 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -42,6 +42,7 @@ enum hrtimer_mode {
@@ -65,7 +65,7 @@ index 8714f1a37d84..082147c07831 100644
/*
diff --git a/kernel/events/core.c b/kernel/events/core.c
-index 2bf4b6b109bf..69524886cc89 100644
+index 4182e265176d..daeff994ae9c 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -1108,7 +1108,7 @@ static void __perf_mux_hrtimer_init(struct perf_cpu_context *cpuctx, int cpu)
@@ -77,7 +77,7 @@ index 2bf4b6b109bf..69524886cc89 100644
timer->function = perf_mux_hrtimer_handler;
}
-@@ -9311,7 +9311,7 @@ static void perf_swevent_init_hrtimer(struct perf_event *event)
+@@ -9372,7 +9372,7 @@ static void perf_swevent_init_hrtimer(struct perf_event *event)
if (!is_sampling_event(event))
return;
@@ -113,7 +113,7 @@ index 9243d0049714..52acbb31a777 100644
}
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index bd9a375c45f4..6d1911b08b7f 100644
+index 3f6a613be8c3..802471dbb24d 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4998,9 +4998,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b)
@@ -129,7 +129,7 @@ index bd9a375c45f4..6d1911b08b7f 100644
cfs_b->distribute_running = 0;
}
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
-index a068884c369f..b15428ede6cf 100644
+index 0768ba9d2860..41e73baf41ab 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -45,8 +45,8 @@ void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime)
@@ -144,7 +144,7 @@ index a068884c369f..b15428ede6cf 100644
}
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index ab38b51a96cc..beb81024c287 100644
+index 478ff82abd33..764c360568f1 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1202,7 +1202,9 @@ void hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
diff --git a/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch b/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch
index d5d314974..091a60253 100644
--- a/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch
+++ b/debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 8 Jan 2019 12:31:06 +0100
-Subject: [PATCH 101/353] sched/fair: Make the hrtimers non-hard again
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=109040d80c1535285a4498e04a016f5ee2ba71e4
+Subject: [PATCH 101/354] sched/fair: Make the hrtimers non-hard again
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=01375dbf9778f635992d367eed1147551e7e15e0
Since commit "sched/fair: Robustify CFS-bandwidth timer locking" both
hrtimer can run in softirq context because now interrupts are disabled
@@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index 6d1911b08b7f..bd9a375c45f4 100644
+index 802471dbb24d..3f6a613be8c3 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4998,9 +4998,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b)
diff --git a/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch b/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch
index e30c432ee..7c323c318 100644
--- a/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch
+++ b/debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch
@@ -1,7 +1,7 @@
From: Yang Shi <yang.shi@windriver.com>
Date: Mon, 16 Sep 2013 14:09:19 -0700
-Subject: [PATCH 102/353] hrtimer: Move schedule_work call to helper thread
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eab2a2611acee0790f3b6b3d35ba10daf48aa0c8
+Subject: [PATCH 102/354] hrtimer: Move schedule_work call to helper thread
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f324afdd9684306cbe7514e92d0ba26f0d3e4788
When run ltp leapsec_timer test, the following call trace is caught:
@@ -51,7 +51,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 24 insertions(+)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index beb81024c287..0dceea25f9f5 100644
+index 764c360568f1..c83c8609ac2c 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -748,6 +748,29 @@ static void hrtimer_switch_to_hres(void)
diff --git a/debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch b/debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch
index bc476ce12..9bc8f76d1 100644
--- a/debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch
+++ b/debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 6 Dec 2018 10:15:13 +0100
-Subject: [PATCH 103/353] hrtimer: move state change before hrtimer_cancel in
+Subject: [PATCH 103/354] hrtimer: move state change before hrtimer_cancel in
do_nanosleep()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9cb841c278a15f27daf46f87af052919ae51861e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6cddb711df1e27bc89288790847fc3ea089899a9
There is a small window between setting t->task to NULL and waking the
task up (which would set TASK_RUNNING). So the timer would fire, run and
@@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 0dceea25f9f5..4de39964594d 100644
+index c83c8609ac2c..260487c89a14 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1852,12 +1852,12 @@ static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode mod
diff --git a/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch b/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch
index 8b27b06ed..b1eafc9a7 100644
--- a/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch
+++ b/debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch
@@ -1,7 +1,7 @@
From: John Stultz <johnstul@us.ibm.com>
Date: Fri, 3 Jul 2009 08:29:58 -0500
-Subject: [PATCH 104/353] posix-timers: Thread posix-cpu-timers on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4a318dfc7f0d2ef94b30074a4a36311b3073bb55
+Subject: [PATCH 104/354] posix-timers: Thread posix-cpu-timers on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a2eab86a476d1939be8d7ce19bb23cb521d01f16
posix-cpu-timer code takes non -rt safe locks in hard irq
context. Move it to a thread.
diff --git a/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch b/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch
index 875f00e6e..344d6bb4a 100644
--- a/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch
+++ b/debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 31 May 2011 16:59:16 +0200
-Subject: [PATCH 105/353] sched: Move task_struct cleanup to RCU
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be35f1b200eb51447b20a7a2653e53c58c58ca09
+Subject: [PATCH 105/354] sched: Move task_struct cleanup to RCU
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=29680594be3ba97f56e6b5475adbe201f97ec34a
__put_task_struct() does quite some expensive work. We don't want to
burden random tasks with that.
diff --git a/debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch b/debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch
index 55b805f35..65ad49cad 100644
--- a/debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch
+++ b/debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 6 Jun 2011 12:12:51 +0200
-Subject: [PATCH 106/353] sched: Limit the number of task migrations per batch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8cce7045319b606fb508c6c135bc17fec1297dea
+Subject: [PATCH 106/354] sched: Limit the number of task migrations per batch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ecc6ac9f90731fae344e5b8d26cdd66db3c7082f
Put an upper limit on the number of tasks which are migrated per batch
to avoid large latencies.
diff --git a/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch b/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch
index d54373e88..2869d8726 100644
--- a/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch
+++ b/debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 6 Jun 2011 12:20:33 +0200
-Subject: [PATCH 107/353] sched: Move mmdrop to RCU on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=29db13f93ec2cda8d72b6c38fe5049f15d68b107
+Subject: [PATCH 107/354] sched: Move mmdrop to RCU on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=44309940dca3b3feaece56208306b8f6a90c2aa2
Takes sleeping locks and calls into the memory allocator, so nothing
we want to do in task switch and oder atomic contexts.
diff --git a/debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch b/debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
index 0f58bd1a7..325adcc41 100644
--- a/debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
+++ b/debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 21 Nov 2016 19:31:08 +0100
-Subject: [PATCH 108/353] kernel/sched: move stack + kprobe clean up to
+Subject: [PATCH 108/354] kernel/sched: move stack + kprobe clean up to
__put_task_struct()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c1b81f616fe6d01f4c5b70aa47f0c45b5d52175
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1db44b0421629c2b4bdc460663dbd37506233b00
There is no need to free the stack before the task struct (except for reasons
mentioned in commit 68f24b08ee89 ("sched/core: Free the stack early if
diff --git a/debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch b/debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
index d7fcd9a98..578eef3f5 100644
--- a/debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
+++ b/debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 25 Jun 2011 09:21:04 +0200
-Subject: [PATCH 109/353] sched: Add saved_state for tasks blocked on sleeping
+Subject: [PATCH 109/354] sched: Add saved_state for tasks blocked on sleeping
locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2a6b7d4a6d256d704711eb8d0387c88b9d3343c8
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e5cc11825a12d7ebb78a87ce4687f736de882fa3
Spinlocks are state preserving in !RT. RT changes the state when a
task gets blocked on a lock. So we need to remember the state before
diff --git a/debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch b/debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
index bab17e24a..315a43495 100644
--- a/debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
+++ b/debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 7 Jun 2011 09:19:06 +0200
-Subject: [PATCH 110/353] sched: Do not account rcu_preempt_depth on RT in
+Subject: [PATCH 110/354] sched: Do not account rcu_preempt_depth on RT in
might_sleep()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c41cec71a19b50b70e158c340e365a1fabcb94ee
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aaff169a860588c5688c0e5941182d2888328000
RT changes the rcu_preempt_depth semantics, so we cannot check for it
in might_sleep().
@@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
-index 68cbe111420b..027c58cdbb6e 100644
+index cf139d6e5c1d..18262dd58476 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -73,6 +73,11 @@ void synchronize_rcu(void);
diff --git a/debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch b/debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
index 2a1ddee4c..425c7f337 100644
--- a/debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
+++ b/debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 22:51:33 +0200
-Subject: [PATCH 111/353] sched: Use the proper LOCK_OFFSET for cond_resched()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40aea8333fd3327ba94572e05c29392ffbdad221
+Subject: [PATCH 111/354] sched: Use the proper LOCK_OFFSET for cond_resched()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5e119fb8d861fb7d3beeb30a7442174fc144f72d
RT does not increment preempt count when a 'sleeping' spinlock is
locked. Update PREEMPT_LOCK_OFFSET for that case.
@@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 4 insertions(+)
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index f7a17fcc3fec..b7fe717eb1f4 100644
+index 02ba5c80bf0d..22829223534b 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -118,7 +118,11 @@
diff --git a/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch b/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch
index 94e49f265..4fc75eb9e 100644
--- a/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch
+++ b/debian/patches-rt/0112-sched-Disable-TTWU_QUEUE-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 13 Sep 2011 16:42:35 +0200
-Subject: [PATCH 112/353] sched: Disable TTWU_QUEUE on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ae86912b078e8b3dad48b75af006bd02f90f0ef9
+Subject: [PATCH 112/354] sched: Disable TTWU_QUEUE on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b075e8741903cb526cdf7222bdd3b4afb21c0de7
The queued remote wakeup mechanism can introduce rather large
latencies if the number of migrated tasks is high. Disable it for RT.
diff --git a/debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch b/debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
index bf74a8d7c..ccd9bb55e 100644
--- a/debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
+++ b/debian/patches-rt/0113-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt@goodmis.org>
Date: Mon, 18 Mar 2013 15:12:49 -0400
-Subject: [PATCH 113/353] sched/workqueue: Only wake up idle workers if not
+Subject: [PATCH 113/354] sched/workqueue: Only wake up idle workers if not
blocked on sleeping spin lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a395882d6b37ec67f24df8f6feea9d75bf9a9b20
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6406e81dacdad66db971db5a0103502ef3b99139
In -rt, most spin_locks() turn into mutexes. One of these spin_lock
conversions is performed on the workqueue gcwq->lock. When the idle
diff --git a/debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch b/debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch
index 7af709a7e..5d85bbfc8 100644
--- a/debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch
+++ b/debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch
@@ -1,8 +1,8 @@
From: Daniel Bristot de Oliveira <bristot@redhat.com>
Date: Mon, 26 Jun 2017 17:07:15 +0200
-Subject: [PATCH 114/353] rt: Increase/decrease the nr of migratory tasks when
+Subject: [PATCH 114/354] rt: Increase/decrease the nr of migratory tasks when
enabling/disabling migration
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=286a1ecec4809b5fcd4dfe12f107909be4d17758
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1e41e004102108c90fda66e2f4d2c15ab504626
There is a problem in the migrate_disable()/enable() implementation
regarding the number of migratory tasks in the rt/dl RQs. The problem
diff --git a/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch b/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch
index 0f2094998..81c079eed 100644
--- a/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch
+++ b/debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 15 Jun 2011 12:36:06 +0200
-Subject: [PATCH 115/353] hotplug: Lightweight get online cpus
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=622116c75e173f8a4be2422016f5047e8a72fda1
+Subject: [PATCH 115/354] hotplug: Lightweight get online cpus
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ba8eb74c6b86a06075162358d936bfe7e1c0dfa
get_online_cpus() is a heavy weight function which involves a global
mutex. migrate_disable() wants a simpler construct which prevents only
@@ -19,7 +19,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
3 files changed, 24 insertions(+)
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
-index 12ed4cb751de..bddccdcd00ba 100644
+index c376a59a3e42..90985dbce8f4 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -124,6 +124,8 @@ extern void cpu_hotplug_disable(void);
@@ -42,7 +42,7 @@ index 12ed4cb751de..bddccdcd00ba 100644
/* Wrappers which go away once all code is converted */
diff --git a/kernel/cpu.c b/kernel/cpu.c
-index c9ca190ec034..f4c49bbc3fa3 100644
+index 34c09c3d37bc..b25993345ea6 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -284,6 +284,21 @@ static int cpu_hotplug_disabled;
diff --git a/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch b/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch
index 035c9ca49..8ee2c0f75 100644
--- a/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch
+++ b/debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:56:42 +0200
-Subject: [PATCH 116/353] trace: Add migrate-disabled counter to tracing output
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1f45a86c8d1602fa20f00359422fba7e099d9128
+Subject: [PATCH 116/354] trace: Add migrate-disabled counter to tracing output
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=686984a694ba79b89fbe3839fe563036cf9428af
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
@@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
4 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
-index 0643c083ed86..1cc4d2da954c 100644
+index 93a1b5497bdf..963c19f03bef 100644
--- a/include/linux/trace_events.h
+++ b/include/linux/trace_events.h
@@ -62,6 +62,8 @@ struct trace_entry {
@@ -25,7 +25,7 @@ index 0643c083ed86..1cc4d2da954c 100644
#define TRACE_EVENT_TYPE_MAX \
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index 98abff046236..b1c82b1dc3a6 100644
+index b43d681b072f..61fdbe0ddeb1 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -2165,6 +2165,8 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags,
@@ -37,7 +37,7 @@ index 98abff046236..b1c82b1dc3a6 100644
}
EXPORT_SYMBOL_GPL(tracing_generic_entry_update);
-@@ -3367,9 +3369,10 @@ static void print_lat_help_header(struct seq_file *m)
+@@ -3373,9 +3375,10 @@ static void print_lat_help_header(struct seq_file *m)
"# | / _----=> need-resched \n"
"# || / _---=> hardirq/softirq \n"
"# ||| / _--=> preempt-depth \n"
@@ -52,7 +52,7 @@ index 98abff046236..b1c82b1dc3a6 100644
static void print_event_info(struct trace_buffer *buf, struct seq_file *m)
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
-index d2f9146d1ad7..ddda660b84f9 100644
+index ed39d3ec202e..b13fc846d2b2 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -189,6 +189,8 @@ static int trace_define_common_fields(void)
diff --git a/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch b/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch
index 1a98fb592..a5e3c3ca5 100644
--- a/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch
+++ b/debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 18:51:23 +0200
-Subject: [PATCH 117/353] lockdep: Make it RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98130f1daaea2199bb162bdf605746816a0f48ac
+Subject: [PATCH 117/354] lockdep: Make it RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6718615fb9830364e30c733248e75921005e6aaf
teach lockdep that we don't really do softirqs on -RT.
@@ -53,7 +53,7 @@ index 21619c92c377..b20eeb25e9fa 100644
defined(CONFIG_PREEMPT_TRACER)
extern void stop_critical_timings(void);
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 4dc79f57af82..4dd83428b56d 100644
+index 46a6d1f7c351..87006e19c9b0 100644
--- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c
@@ -3831,6 +3831,7 @@ static void check_flags(unsigned long flags)
diff --git a/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch b/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
index 89a83b3e8..0a3714644 100644
--- a/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
+++ b/debian/patches-rt/0118-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo@elte.hu>
Date: Tue, 29 Nov 2011 20:18:22 -0500
-Subject: [PATCH 118/353] tasklet: Prevent tasklets from going into infinite
+Subject: [PATCH 118/354] tasklet: Prevent tasklets from going into infinite
spin in RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd8fc2358f7c3c54456ca0c7cb995db98c81fba1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=27595ffe739c6a33dd78d49888de4aebb16c8d64
When CONFIG_PREEMPT_RT_FULL is enabled, tasklets run as threads,
and spinlocks turn are mutexes. But this can cause issues with
diff --git a/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch b/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch
index 90826ae16..e3f55e764 100644
--- a/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch
+++ b/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 13 Nov 2011 17:17:09 +0100
-Subject: [PATCH 119/353] softirq: Check preemption after reenabling interrupts
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d73dc06a3a63b3e883babd7e29fa160128c73e60
+Subject: [PATCH 119/354] softirq: Check preemption after reenabling interrupts
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7c68fecb29f3041ccce92063163f28179b408e4
raise_softirq_irqoff() disables interrupts and wakes the softirq
daemon, but after reenabling interrupts there is no preemption check,
@@ -49,7 +49,7 @@ index 15c1f5e12eb8..1628277885a1 100644
EXPORT_SYMBOL(__blk_complete_request);
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index b7fe717eb1f4..9984f2b75b73 100644
+index 22829223534b..8dc7800151f0 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -187,8 +187,10 @@ do { \
@@ -116,7 +116,7 @@ index 86a709954f5a..9c069ef83d6d 100644
return 0;
}
diff --git a/net/core/dev.c b/net/core/dev.c
-index 03903d3f1d69..4156bf7ca234 100644
+index 0f9214fb36e0..554590fc29f5 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2727,6 +2727,7 @@ static void __netif_reschedule(struct Qdisc *q)
@@ -135,7 +135,7 @@ index 03903d3f1d69..4156bf7ca234 100644
}
EXPORT_SYMBOL(__dev_kfree_skb_irq);
-@@ -4273,6 +4275,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu,
+@@ -4275,6 +4277,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu,
rps_unlock(sd);
local_irq_restore(flags);
@@ -143,7 +143,7 @@ index 03903d3f1d69..4156bf7ca234 100644
atomic_long_inc(&skb->dev->rx_dropped);
kfree_skb(skb);
-@@ -5824,12 +5827,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
+@@ -5826,12 +5829,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
sd->rps_ipi_list = NULL;
local_irq_enable();
@@ -158,7 +158,7 @@ index 03903d3f1d69..4156bf7ca234 100644
}
static bool sd_has_rps_ipi_waiting(struct softnet_data *sd)
-@@ -5907,6 +5912,7 @@ void __napi_schedule(struct napi_struct *n)
+@@ -5909,6 +5914,7 @@ void __napi_schedule(struct napi_struct *n)
local_irq_save(flags);
____napi_schedule(this_cpu_ptr(&softnet_data), n);
local_irq_restore(flags);
@@ -166,7 +166,7 @@ index 03903d3f1d69..4156bf7ca234 100644
}
EXPORT_SYMBOL(__napi_schedule);
-@@ -9531,6 +9537,7 @@ static int dev_cpu_dead(unsigned int oldcpu)
+@@ -9523,6 +9529,7 @@ static int dev_cpu_dead(unsigned int oldcpu)
raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_enable();
diff --git a/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch b/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch
index 32713d256..ad073538d 100644
--- a/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch
+++ b/debian/patches-rt/0120-softirq-Disable-softirq-stacks-for-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 13:59:17 +0200
-Subject: [PATCH 120/353] softirq: Disable softirq stacks for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eecedc65a229f4e4fbdb24922843629e839edfe4
+Subject: [PATCH 120/354] softirq: Disable softirq stacks for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=25ef37c2b78d37b8263e5d8efd1732227bca3520
Disable extra stacks for softirqs. We want to preempt softirqs and
having them on special IRQ-stack does not make this easier.
diff --git a/debian/patches-rt/0121-softirq-Split-softirq-locks.patch b/debian/patches-rt/0121-softirq-Split-softirq-locks.patch
index ea0ad8b8d..0b8b3ac84 100644
--- a/debian/patches-rt/0121-softirq-Split-softirq-locks.patch
+++ b/debian/patches-rt/0121-softirq-Split-softirq-locks.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 4 Oct 2012 14:20:47 +0100
-Subject: [PATCH 121/353] softirq: Split softirq locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c9087b85873c1e3cac33ac6ce45442cc13505b4c
+Subject: [PATCH 121/354] softirq: Split softirq locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=92e843a596790848cb412927152e8e90db9797c3
The 3.x RT series removed the split softirq implementation in favour
of pushing softirq processing into the context of the thread which
@@ -135,7 +135,7 @@ index eec4bec454b5..cf9860d49d57 100644
struct hrtimer timer;
struct tasklet_struct tasklet;
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index 9984f2b75b73..27c3176d88d2 100644
+index 8dc7800151f0..c196866734d3 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -51,7 +51,11 @@
@@ -198,10 +198,10 @@ index 44a5e80481bb..bf13a967491e 100644
#define PF_EXITING 0x00000004 /* Getting shut down */
#define PF_VCPU 0x00000010 /* I'm a virtual CPU */
diff --git a/init/main.c b/init/main.c
-index 489a5aa7ba53..703b627a6060 100644
+index 08c312abbaf1..298257e2cd42 100644
--- a/init/main.c
+++ b/init/main.c
-@@ -553,6 +553,7 @@ asmlinkage __visible void __init start_kernel(void)
+@@ -549,6 +549,7 @@ asmlinkage __visible void __init start_kernel(void)
setup_command_line(command_line);
setup_nr_cpu_ids();
setup_per_cpu_areas();
diff --git a/debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch b/debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch
index d91e6d4ea..36fdb5366 100644
--- a/debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch
+++ b/debian/patches-rt/0122-net-core-use-local_bh_disable-in-netif_rx_ni.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 16 Jun 2017 19:03:16 +0200
-Subject: [PATCH 122/353] net/core: use local_bh_disable() in netif_rx_ni()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6c6f220c3a41dbedd9271c75efa95557719cc9ac
+Subject: [PATCH 122/354] net/core: use local_bh_disable() in netif_rx_ni()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fbedc43d1bb26311167ea79af1a2c2db90192566
In 2004 netif_rx_ni() gained a preempt_disable() section around
netif_rx() and its do_softirq() + testing for it. The do_softirq() part
@@ -18,10 +18,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
-index 4156bf7ca234..70a3cebdac89 100644
+index 554590fc29f5..c6c45f663539 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4541,11 +4541,9 @@ int netif_rx_ni(struct sk_buff *skb)
+@@ -4543,11 +4543,9 @@ int netif_rx_ni(struct sk_buff *skb)
trace_netif_rx_ni_entry(skb);
diff --git a/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch b/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
index 57d1e6fab..9c16bd686 100644
--- a/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
+++ b/debian/patches-rt/0123-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 31 Jan 2012 13:01:27 +0100
-Subject: [PATCH 123/353] genirq: Allow disabling of softirq processing in irq
+Subject: [PATCH 123/354] genirq: Allow disabling of softirq processing in irq
thread context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1128442014bca498569b0b81a4f6abbb3482eb8f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=68654dfb1961f5694087fea3e2f363d49a4290be
The processing of softirqs in irq thread context is a performance gain
for the non-rt workloads of a system, but it's counterproductive for
diff --git a/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch b/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
index 1826644b8..c1c8af481 100644
--- a/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
+++ b/debian/patches-rt/0124-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 20 Jan 2016 16:34:17 +0100
-Subject: [PATCH 124/353] softirq: split timer softirqs out of ksoftirqd
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3fa18033c14dff72f82998b26a271e3927780eeb
+Subject: [PATCH 124/354] softirq: split timer softirqs out of ksoftirqd
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8f10baa8f999772a669a0f44e3c931a9ac806443
The softirqd runs in -RT with SCHED_FIFO (prio 1) and deals mostly with
timer wakeup which can not happen in hardirq context. The prio has been
diff --git a/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch b/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch
index 70463e376..861e0d303 100644
--- a/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch
+++ b/debian/patches-rt/0125-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 18 Feb 2019 13:19:59 +0100
-Subject: [PATCH 125/353] softirq: Avoid "local_softirq_pending" messages if
+Subject: [PATCH 125/354] softirq: Avoid "local_softirq_pending" messages if
ksoftirqd is blocked
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=713369743f628d38df761d559c099513842a87e9
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f5d9ba516bcc1de17e605468f209fff4aada1aae
If the ksoftirqd thread has a softirq pending and is blocked on the
`local_softirq_locks' lock then softirq_check_pending_idle() won't
diff --git a/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch b/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch
index 89c83b380..acc412d94 100644
--- a/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch
+++ b/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-task.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 19 Feb 2019 16:49:29 +0100
-Subject: [PATCH 126/353] softirq: Avoid "local_softirq_pending" messages if
+Subject: [PATCH 126/354] softirq: Avoid "local_softirq_pending" messages if
task is in cpu_chill()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8da244f6216d1a906d97925913a4385e702abdd5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=02a0c63da17299f0730158204003d851c7fceaca
If the softirq thread enters cpu_chill() then ->state is UNINTERRUPTIBLE
and has no ->pi_blocked_on set and so its mask is not taken into account.
diff --git a/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch b/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch
index e5f3e05fd..b4f250c04 100644
--- a/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch
+++ b/debian/patches-rt/0127-rtmutex-trylock-is-okay-on-RT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 2 Dec 2015 11:34:07 +0100
-Subject: [PATCH 127/353] rtmutex: trylock is okay on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d80ea121d373f6048bf46fae7d5c4b7f78a26196
+Subject: [PATCH 127/354] rtmutex: trylock is okay on -RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1d31366fb82713fa3ddb743d9471fb4efdebc49d
non-RT kernel could deadlock on rt_mutex_trylock() in softirq context. On
-RT we don't run softirqs in IRQ context but in thread context so it is
diff --git a/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch b/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
index b11a25b71..162acb412 100644
--- a/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
+++ b/debian/patches-rt/0128-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 15 Sep 2016 10:51:27 +0200
-Subject: [PATCH 128/353] fs/nfs: turn rmdir_sem into a semaphore
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a865901ab427b7d9016bdc42a706beb5a4da5903
+Subject: [PATCH 128/354] fs/nfs: turn rmdir_sem into a semaphore
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4653720889d33dac2c78ca95c5449677e76b86c7
The RW semaphore had a reader side which used the _non_owner version
because it most likely took the reader lock in one thread and released it
diff --git a/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch b/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch
index ac2f9c97d..105e878e8 100644
--- a/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch
+++ b/debian/patches-rt/0129-rtmutex-Handle-the-various-new-futex-race-conditions.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 10 Jun 2011 11:04:15 +0200
-Subject: [PATCH 129/353] rtmutex: Handle the various new futex race conditions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d1a8f28a30981f0ab33f327955252d3cb4e4fbad
+Subject: [PATCH 129/354] rtmutex: Handle the various new futex race conditions
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3c5ac737d6b9077aa40c32c26b38c39c67430329
RT opens a few new interesting race conditions in the rtmutex/futex
combo due to futex hash bucket lock being a 'sleeping' spinlock and
@@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
3 files changed, 94 insertions(+), 21 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
-index ac015d1dd16c..dc2d81d11b17 100644
+index 585082311ea3..f6339f8b4a1a 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2253,6 +2253,16 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
diff --git a/debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch b/debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
index 626040ee8..1d2895cce 100644
--- a/debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
+++ b/debian/patches-rt/0130-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt@goodmis.org>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 130/353] futex: Fix bug on when a requeued RT task times out
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d606054e3bdfa5d9bb3a48d3fc44b2e6a534eb13
+Subject: [PATCH 130/354] futex: Fix bug on when a requeued RT task times out
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3a83c3854b57a559a38595bdbe492220ea877e13
Requeue with timeout causes a bug with PREEMPT_RT_FULL.
diff --git a/debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch b/debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
index 44d8687d4..ebd22f18d 100644
--- a/debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
+++ b/debian/patches-rt/0131-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 1 Mar 2013 11:17:42 +0100
-Subject: [PATCH 131/353] futex: Ensure lock/unlock symetry versus pi_lock and
+Subject: [PATCH 131/354] futex: Ensure lock/unlock symetry versus pi_lock and
hash bucket lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8dbfc8e2b84952857d4d225d3eff59b73f6e6021
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2e2a08567239b469386e8d38952b48798b3b6f74
In exit_pi_state_list() we have the following locking construct:
@@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 2 insertions(+)
diff --git a/kernel/futex.c b/kernel/futex.c
-index dc2d81d11b17..0e136045a720 100644
+index f6339f8b4a1a..12b658dc016a 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -962,7 +962,9 @@ static void exit_pi_state_list(struct task_struct *curr)
diff --git a/debian/patches-rt/0132-pid.h-include-atomic.h.patch b/debian/patches-rt/0132-pid.h-include-atomic.h.patch
index f42c2a4d3..e0f6c43db 100644
--- a/debian/patches-rt/0132-pid.h-include-atomic.h.patch
+++ b/debian/patches-rt/0132-pid.h-include-atomic.h.patch
@@ -1,7 +1,7 @@
From: Grygorii Strashko <Grygorii.Strashko@linaro.org>
Date: Tue, 21 Jul 2015 19:43:56 +0300
-Subject: [PATCH 132/353] pid.h: include atomic.h
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5cd905ca7ce7ab06694717b22dd20b102a4ad36
+Subject: [PATCH 132/354] pid.h: include atomic.h
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=027b875472bab6580820dcc916fbc716f73f22a8
This patch fixes build error:
CC kernel/pid_namespace.o
diff --git a/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch b/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch
index 8ad18a033..5e2f5ee1c 100644
--- a/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch
+++ b/debian/patches-rt/0133-arm-include-definition-for-cpumask_t.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 22 Dec 2016 17:28:33 +0100
-Subject: [PATCH 133/353] arm: include definition for cpumask_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2e5ee101b7130830a24ba3159856ad5b8d247616
+Subject: [PATCH 133/354] arm: include definition for cpumask_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa9961ff85fd8f9623657677efcb406b5a49d1fb
This definition gets pulled in by other files. With the (later) split of
RCU and spinlock.h it won't compile anymore.
diff --git a/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch b/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
index d11bfb3e1..29370046f 100644
--- a/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
+++ b/debian/patches-rt/0134-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
@@ -1,8 +1,8 @@
From: "Wolfgang M. Reimer" <linuxball@gmail.com>
Date: Tue, 21 Jul 2015 16:20:07 +0200
-Subject: [PATCH 134/353] locking: locktorture: Do NOT include rwlock.h
+Subject: [PATCH 134/354] locking: locktorture: Do NOT include rwlock.h
directly
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ad189ad0514c2094321f9fd0337ab57397db4f00
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=71bd2721e99a9d8670de8f976e8faae888e37d13
Including rwlock.h directly will cause kernel builds to fail
if CONFIG_PREEMPT_RT_FULL is defined. The correct header file
diff --git a/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch b/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch
index 3d93b7062..76ed79b6a 100644
--- a/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch
+++ b/debian/patches-rt/0135-rtmutex-Add-rtmutex_lock_killable.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 9 Jun 2011 11:43:52 +0200
-Subject: [PATCH 135/353] rtmutex: Add rtmutex_lock_killable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6d3b7dcdca0aece78c9009364661eb06688b6933
+Subject: [PATCH 135/354] rtmutex: Add rtmutex_lock_killable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d23d867cdcbc8148b9fe5400eb602a17e66f730
Add "killable" type to rtmutex. We need this since rtmutex are used as
"normal" mutexes which do use this type.
diff --git a/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch b/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch
index d69c5254e..61b983cb2 100644
--- a/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch
+++ b/debian/patches-rt/0136-rtmutex-Make-lock_killable-work.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 1 Apr 2017 12:50:59 +0200
-Subject: [PATCH 136/353] rtmutex: Make lock_killable work
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=837062c3b2e57ec5d4c04c8b1cda3305c2c010f2
+Subject: [PATCH 136/354] rtmutex: Make lock_killable work
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb4aae3676300389c9ccc8985348f8fcd4e78d7e
Locking an rt mutex killable does not work because signal handling is
restricted to TASK_INTERRUPTIBLE.
diff --git a/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch b/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch
index 1f2dc144e..0f285b7cd 100644
--- a/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch
+++ b/debian/patches-rt/0137-spinlock-Split-the-lock-types-header.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 19:34:01 +0200
-Subject: [PATCH 137/353] spinlock: Split the lock types header
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=31a8676e8d6709bfd284c94cdcba63304586dc2c
+Subject: [PATCH 137/354] spinlock: Split the lock types header
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=02dfe1120282f42f29ad9f10a5c5fb743ea5db59
Split raw_spinlock into its own file and the remaining spinlock_t into
its own non-RT header. The non-RT header will be replaced later by sleeping
diff --git a/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch b/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch
index 54dbdfe1b..5830c8f9e 100644
--- a/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch
+++ b/debian/patches-rt/0138-rtmutex-Avoid-include-hell.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 20:06:39 +0200
-Subject: [PATCH 138/353] rtmutex: Avoid include hell
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=318d1b407db029035da74bbd758aabc0352168ce
+Subject: [PATCH 138/354] rtmutex: Avoid include hell
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5b8ed93ab235d8cff7e8a01225efe33fb719ca22
Include only the required raw types. This avoids pulling in the
complete spinlock header which in turn requires rtmutex.h at some point.
diff --git a/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch b/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch
index fac209896..8b7e41455 100644
--- a/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch
+++ b/debian/patches-rt/0139-rbtree-don-t-include-the-rcu-header.patch
@@ -1,10 +1,10 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 26 Feb 2019 16:56:02 +0100
-Subject: [PATCH 139/353] rbtree: don't include the rcu header
+Subject: [PATCH 139/354] rbtree: don't include the rcu header
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=01edc3f9e31e5153bde8f96cab83edc1259da691
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=04dfb0f69dd66c9eab3498d4134bf7a04e6a0638
The RCU header pulls in spinlock.h and fails due not yet defined types:
@@ -25,10 +25,12 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
include/linux/rbtree.h | 2 +-
include/linux/rcu_assign_pointer.h | 54 ++++++++++++++++++++++++++++++
- include/linux/rcupdate.h | 49 +--------------------------
- 3 files changed, 56 insertions(+), 49 deletions(-)
+ include/linux/rcupdate.h | 1 +
+ 3 files changed, 56 insertions(+), 1 deletion(-)
create mode 100644 include/linux/rcu_assign_pointer.h
+diff --git a/include/linux/rbtree.h b/include/linux/rbtree.h
+index fcbeed4053ef..2aa2aec354c2 100644
--- a/include/linux/rbtree.h
+++ b/include/linux/rbtree.h
@@ -31,7 +31,7 @@
@@ -40,6 +42,9 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
struct rb_node {
unsigned long __rb_parent_color;
+diff --git a/include/linux/rcu_assign_pointer.h b/include/linux/rcu_assign_pointer.h
+new file mode 100644
+index 000000000000..7066962a4379
--- /dev/null
+++ b/include/linux/rcu_assign_pointer.h
@@ -0,0 +1,54 @@
@@ -97,6 +102,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+})
+
+#endif
+diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
+index 18262dd58476..de6f65f69a71 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -42,6 +42,7 @@
@@ -107,58 +114,3 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
#define ULONG_CMP_GE(a, b) (ULONG_MAX / 2 >= (a) - (b))
#define ULONG_CMP_LT(a, b) (ULONG_MAX / 2 < (a) - (b))
-@@ -370,54 +371,6 @@ static inline void rcu_preempt_sleep_che
- })
-
- /**
-- * RCU_INITIALIZER() - statically initialize an RCU-protected global variable
-- * @v: The value to statically initialize with.
-- */
--#define RCU_INITIALIZER(v) (typeof(*(v)) __force __rcu *)(v)
--
--/**
-- * rcu_assign_pointer() - assign to RCU-protected pointer
-- * @p: pointer to assign to
-- * @v: value to assign (publish)
-- *
-- * Assigns the specified value to the specified RCU-protected
-- * pointer, ensuring that any concurrent RCU readers will see
-- * any prior initialization.
-- *
-- * Inserts memory barriers on architectures that require them
-- * (which is most of them), and also prevents the compiler from
-- * reordering the code that initializes the structure after the pointer
-- * assignment. More importantly, this call documents which pointers
-- * will be dereferenced by RCU read-side code.
-- *
-- * In some special cases, you may use RCU_INIT_POINTER() instead
-- * of rcu_assign_pointer(). RCU_INIT_POINTER() is a bit faster due
-- * to the fact that it does not constrain either the CPU or the compiler.
-- * That said, using RCU_INIT_POINTER() when you should have used
-- * rcu_assign_pointer() is a very bad thing that results in
-- * impossible-to-diagnose memory corruption. So please be careful.
-- * See the RCU_INIT_POINTER() comment header for details.
-- *
-- * Note that rcu_assign_pointer() evaluates each of its arguments only
-- * once, appearances notwithstanding. One of the "extra" evaluations
-- * is in typeof() and the other visible only to sparse (__CHECKER__),
-- * neither of which actually execute the argument. As with most cpp
-- * macros, this execute-arguments-only-once property is important, so
-- * please be careful when making changes to rcu_assign_pointer() and the
-- * other macros that it invokes.
-- */
--#define rcu_assign_pointer(p, v) \
--({ \
-- uintptr_t _r_a_p__v = (uintptr_t)(v); \
-- \
-- if (__builtin_constant_p(v) && (_r_a_p__v) == (uintptr_t)NULL) \
-- WRITE_ONCE((p), (typeof(p))(_r_a_p__v)); \
-- else \
-- smp_store_release(&p, RCU_INITIALIZER((typeof(p))_r_a_p__v)); \
-- _r_a_p__v; \
--})
--
--/**
- * rcu_replace_pointer() - replace an RCU pointer, returning its old value
- * @rcu_ptr: RCU pointer, whose old value is returned
- * @ptr: regular pointer
diff --git a/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch b/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch
index 889697bda..0adeba275 100644
--- a/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch
+++ b/debian/patches-rt/0140-rtmutex-Provide-rt_mutex_slowlock_locked.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 12 Oct 2017 16:14:22 +0200
-Subject: [PATCH 140/353] rtmutex: Provide rt_mutex_slowlock_locked()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4ed8a5378624e79f354f26b29f4ef135cabf19d5
+Subject: [PATCH 140/354] rtmutex: Provide rt_mutex_slowlock_locked()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a9611be6785bf323146a1d7f70491567d922f356
This is the inner-part of rt_mutex_slowlock(), required for rwsem-rt.
diff --git a/debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch b/debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch
index 46da5b85f..ba660979e 100644
--- a/debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch
+++ b/debian/patches-rt/0141-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 12 Oct 2017 16:36:39 +0200
-Subject: [PATCH 141/353] rtmutex: export lockdep-less version of rt_mutex's
+Subject: [PATCH 141/354] rtmutex: export lockdep-less version of rt_mutex's
lock, trylock and unlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=740b84a1d5c6a69733ac82835e4c7219eaa578d5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3a9ac8aca91e9102d62c28cca5f48bc6b341c2fc
Required for lock implementation ontop of rtmutex.
diff --git a/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch b/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch
index fd0264324..451ee0fd2 100644
--- a/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch
+++ b/debian/patches-rt/0142-rtmutex-add-sleeping-lock-implementation.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 12 Oct 2017 17:11:19 +0200
-Subject: [PATCH 142/353] rtmutex: add sleeping lock implementation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ae1b6e0e9a014befed2b7bc5c4eece86daa446db
+Subject: [PATCH 142/354] rtmutex: add sleeping lock implementation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f3963525766840f746101c9745815d57d5315e77
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
@@ -407,7 +407,7 @@ index efe690af29f1..51ec12803c0b 100644
account_kernel_stack(tsk, 1);
diff --git a/kernel/futex.c b/kernel/futex.c
-index 0e136045a720..a5a263a3efbf 100644
+index 12b658dc016a..3d2570e9c8c1 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -1575,6 +1575,7 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_pi_state *pi_
diff --git a/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch b/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch
index 5f9de40bb..49a452177 100644
--- a/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch
+++ b/debian/patches-rt/0143-rtmutex-add-mutex-implementation-based-on-rtmutex.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 12 Oct 2017 17:17:03 +0200
-Subject: [PATCH 143/353] rtmutex: add mutex implementation based on rtmutex
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4e5a93b3550756da1004d9a27f77ffe93790a22
+Subject: [PATCH 143/354] rtmutex: add mutex implementation based on rtmutex
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=833745671974a1e686de1c79673fe87edbec4269
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
diff --git a/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch b/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch
index 8affbba1a..c07471313 100644
--- a/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch
+++ b/debian/patches-rt/0144-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 12 Oct 2017 17:28:34 +0200
-Subject: [PATCH 144/353] rtmutex: add rwsem implementation based on rtmutex
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=19c04220398e1defbbc2ead7debf3effa79759a4
+Subject: [PATCH 144/354] rtmutex: add rwsem implementation based on rtmutex
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=59e7908ea37732a98a6b91e4ebf272da7775c534
The RT specific R/W semaphore implementation restricts the number of readers
to one because a writer cannot block on multiple readers and inherit its
diff --git a/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch b/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch
index 29d8d3732..d8d442114 100644
--- a/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch
+++ b/debian/patches-rt/0145-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 12 Oct 2017 17:18:06 +0200
-Subject: [PATCH 145/353] rtmutex: add rwlock implementation based on rtmutex
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea18fa0cbcb369fa74a6d4f1f1a679dc0c41dd73
+Subject: [PATCH 145/354] rtmutex: add rwlock implementation based on rtmutex
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=60af7f285662cd574d8a5c490a23f23eb8bb81a7
The implementation is bias-based, similar to the rwsem implementation.
diff --git a/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch b/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch
index b75a172cf..9102b62a5 100644
--- a/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch
+++ b/debian/patches-rt/0146-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 11 Jan 2019 21:16:31 +0100
-Subject: [PATCH 146/353] rtmutex/rwlock: preserve state like a sleeping lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b030b3a7e813383b360eb3c3b4971713d252707f
+Subject: [PATCH 146/354] rtmutex/rwlock: preserve state like a sleeping lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f8ae4c1a55ef2c1e7cb8e8ddd9a74c868d23f08e
The rwlock is spinning while acquiring a lock. Therefore it must become
a sleeping lock on RT and preserve its task state while sleeping and
diff --git a/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch b/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch
index 0509ec71f..537802aac 100644
--- a/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch
+++ b/debian/patches-rt/0147-rtmutex-wire-up-RT-s-locking.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 12 Oct 2017 17:31:14 +0200
-Subject: [PATCH 147/353] rtmutex: wire up RT's locking
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=82c70eaccd0321348a401a8ee751938f3be5f0e4
+Subject: [PATCH 147/354] rtmutex: wire up RT's locking
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9c9a5bd5a5cb9559b8a27f7e3c47d28e8c7f49f6
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
diff --git a/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch b/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch
index 994eb4348..3cd7d025f 100644
--- a/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch
+++ b/debian/patches-rt/0148-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 12 Oct 2017 17:34:38 +0200
-Subject: [PATCH 148/353] rtmutex: add ww_mutex addon for mutex-rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5638b534fffb7e1464776909b8ea609101dceddb
+Subject: [PATCH 148/354] rtmutex: add ww_mutex addon for mutex-rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fa8b1482ff1b468ec5f2e8109be74448a28a0017
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
diff --git a/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch b/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch
index a8b54fe2f..88350133d 100644
--- a/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch
+++ b/debian/patches-rt/0149-kconfig-Add-PREEMPT_RT_FULL.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 14:58:57 +0200
-Subject: [PATCH 149/353] kconfig: Add PREEMPT_RT_FULL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=752046a4b227d6883a5b603f45e0987013571b82
+Subject: [PATCH 149/354] kconfig: Add PREEMPT_RT_FULL
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=218b06866238a1f4f68d65f7904dc07730f7d675
Introduce the final symbol for PREEMPT_RT_FULL.
diff --git a/debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch b/debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch
index 3106ba866..9e036fe14 100644
--- a/debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch
+++ b/debian/patches-rt/0150-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch
@@ -1,8 +1,8 @@
From: Mikulas Patocka <mpatocka@redhat.com>
Date: Mon, 13 Nov 2017 12:56:53 -0500
-Subject: [PATCH 150/353] locking/rt-mutex: fix deadlock in device mapper /
+Subject: [PATCH 150/354] locking/rt-mutex: fix deadlock in device mapper /
block-IO
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2942d326ca47d9bea018e1e5ccfa2d11887bccbf
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7fb3b608c2bac591dd3ff3f32230253a8706d312
When some block device driver creates a bio and submits it to another
block device driver, the bio is added to current->bio_list (in order to
diff --git a/debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch b/debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch
index 1068113c5..dabf9560e 100644
--- a/debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch
+++ b/debian/patches-rt/0151-locking-rt-mutex-Flush-block-plug-on-__down_read.patch
@@ -1,7 +1,7 @@
From: Scott Wood <swood@redhat.com>
Date: Fri, 4 Jan 2019 15:33:21 -0500
-Subject: [PATCH 151/353] locking/rt-mutex: Flush block plug on __down_read()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e16669ece8894e9a9a0b506e37e957c05aafb084
+Subject: [PATCH 151/354] locking/rt-mutex: Flush block plug on __down_read()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cc5550a838341090c57c98f866384cd5c816aac6
__down_read() bypasses the rtmutex frontend to call
rt_mutex_slowlock_locked() directly, and thus it needs to call
diff --git a/debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch b/debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch
index f807c7f17..73c77a74c 100644
--- a/debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch
+++ b/debian/patches-rt/0152-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 16 Nov 2017 16:48:48 +0100
-Subject: [PATCH 152/353] locking/rtmutex: re-init the wait_lock in
+Subject: [PATCH 152/354] locking/rtmutex: re-init the wait_lock in
rt_mutex_init_proxy_locked()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5ae97ece9b790294f0706285373a1606659442eb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d794cd9c4646c6841de4068f1259a25c18221f09
We could provide a key-class for the lockdep (and fixup all callers) or
move the init to all callers (like it was) in order to avoid lockdep
diff --git a/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
index 4d2f62a96..27702ff78 100644
--- a/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
+++ b/debian/patches-rt/0153-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 29 Aug 2013 18:21:04 +0200
-Subject: [PATCH 153/353] ptrace: fix ptrace vs tasklist_lock race
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b4db302711bda5e85a7be1eaaeaf80e330caf920
+Subject: [PATCH 153/354] ptrace: fix ptrace vs tasklist_lock race
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=457cc6e030ab04478a2659eb00fbe56b898f37b0
As explained by Alexander Fyodorov <halcy@yandex.ru>:
diff --git a/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch b/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch
index 3f4ee1298..b6148774c 100644
--- a/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch
+++ b/debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Sep 2017 14:25:13 +0200
-Subject: [PATCH 154/353] rtmutex: annotate sleeping lock context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b4229625b3748a394f2e8127fec95d6c42845c5a
+Subject: [PATCH 154/354] rtmutex: annotate sleeping lock context
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3d9546d9f6ba2535079556b2da1c56b0f67b17e7
The RCU code complains on schedule() within a rcu_readlock() section.
The valid scenario on -RT is if a sleeping is held. In order to suppress
@@ -33,7 +33,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
6 files changed, 109 insertions(+), 7 deletions(-)
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index 27c3176d88d2..9eafc34898b4 100644
+index c196866734d3..13e3f889b335 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -211,6 +211,15 @@ extern void migrate_enable(void);
diff --git a/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch b/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch
index 52c0508d4..fc576ebc0 100644
--- a/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch
+++ b/debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 5 Jul 2018 14:44:51 +0200
-Subject: [PATCH 155/353] sched/migrate_disable: fallback to preempt_disable()
+Subject: [PATCH 155/354] sched/migrate_disable: fallback to preempt_disable()
instead barrier()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=042d278b7e7b9f28417ae7c95ad95ba83065b1de
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6995caad3506ab5555fb756e251a94909ebaf0c7
On SMP + !RT migrate_disable() is still around. It is not part of spin_lock()
anymore so it has almost no users. However the futex code has a workaround for
@@ -46,7 +46,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
4 files changed, 17 insertions(+), 18 deletions(-)
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index 9eafc34898b4..ed8413e7140f 100644
+index 13e3f889b335..302f491b05ec 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -204,7 +204,7 @@ do { \
diff --git a/debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch b/debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch
index f95b6cfce..5b529d881 100644
--- a/debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch
+++ b/debian/patches-rt/0156-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 4 Aug 2017 17:40:42 +0200
-Subject: [PATCH 156/353] locking: don't check for __LINUX_SPINLOCK_TYPES_H on
+Subject: [PATCH 156/354] locking: don't check for __LINUX_SPINLOCK_TYPES_H on
-RT archs
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1de5ba8a20471fbf228898156b626f15ddccf818
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d26c3e4878b2d3ebf3123cb736bd8e6de0032342
Upstream uses arch_spinlock_t within spinlock_t and requests that
spinlock_types.h header file is included first.
diff --git a/debian/patches-rt/0157-rcu-Frob-softirq-test.patch b/debian/patches-rt/0157-rcu-Frob-softirq-test.patch
index b97fa394b..850c00048 100644
--- a/debian/patches-rt/0157-rcu-Frob-softirq-test.patch
+++ b/debian/patches-rt/0157-rcu-Frob-softirq-test.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Sat, 13 Aug 2011 00:23:17 +0200
-Subject: [PATCH 157/353] rcu: Frob softirq test
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b22c921775db6303ca3915515934c5a07fe3bcc
+Subject: [PATCH 157/354] rcu: Frob softirq test
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=328420704fbc5e6d8ceaafcbf1bfafcf01d315b6
With RT_FULL we get the below wreckage:
diff --git a/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch b/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch
index aa96498ec..318a8e28a 100644
--- a/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch
+++ b/debian/patches-rt/0158-rcu-Merge-RCU-bh-into-RCU-preempt.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 5 Oct 2011 11:59:38 -0700
-Subject: [PATCH 158/353] rcu: Merge RCU-bh into RCU-preempt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea7433159b2ffcf58ecc592690f31311034372c7
+Subject: [PATCH 158/354] rcu: Merge RCU-bh into RCU-preempt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9f5b41077696c1c5d7d2f00c3fa5a73b303c1920
The Linux kernel has long RCU-bh read-side critical sections that
intolerably increase scheduling latency under mainline's RCU-bh rules,
@@ -34,7 +34,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
7 files changed, 73 insertions(+), 2 deletions(-)
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
-index e6733d7911e9..08d64e5713fc 100644
+index de6f65f69a71..f30feeb1cbab 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -56,7 +56,11 @@ void call_rcu(struct rcu_head *head, rcu_callback_t func);
@@ -64,7 +64,7 @@ index e6733d7911e9..08d64e5713fc 100644
int rcu_read_lock_sched_held(void);
#else /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-@@ -661,10 +672,14 @@ static inline void rcu_read_unlock(void)
+@@ -727,10 +738,14 @@ static inline void rcu_read_unlock(void)
static inline void rcu_read_lock_bh(void)
{
local_bh_disable();
@@ -79,7 +79,7 @@ index e6733d7911e9..08d64e5713fc 100644
}
/*
-@@ -674,10 +689,14 @@ static inline void rcu_read_lock_bh(void)
+@@ -740,10 +755,14 @@ static inline void rcu_read_lock_bh(void)
*/
static inline void rcu_read_unlock_bh(void)
{
diff --git a/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch b/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
index 71ab01a58..c8a18041b 100644
--- a/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
+++ b/debian/patches-rt/0159-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
@@ -1,7 +1,7 @@
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Date: Wed, 5 Oct 2011 11:45:18 -0700
-Subject: [PATCH 159/353] rcu: Make ksoftirqd do RCU quiescent states
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a04d9b0fd14c11feab735183e2390994a77db29
+Subject: [PATCH 159/354] rcu: Make ksoftirqd do RCU quiescent states
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0281fe4b1e64a1376cde400197af51ae6047b01e
Implementing RCU-bh in terms of RCU-preempt makes the system vulnerable
to network-based denial-of-service attacks. This patch therefore
diff --git a/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch b/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch
index b78fba523..a894403bb 100644
--- a/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch
+++ b/debian/patches-rt/0160-rcu-Eliminate-softirq-processing-from-rcutree.patch
@@ -1,7 +1,7 @@
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Date: Mon, 4 Nov 2013 13:21:10 -0800
-Subject: [PATCH 160/353] rcu: Eliminate softirq processing from rcutree
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0b1567b981ee2c329d7c899c6cd49917803f4de2
+Subject: [PATCH 160/354] rcu: Eliminate softirq processing from rcutree
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b85f7944f59da7dd11767db41c98b3b038e45c50
Running RCU out of softirq is a problem for some workloads that would
like to manage RCU core processing independently of other softirq work,
diff --git a/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch b/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch
index 555450b9a..dfb47dd86 100644
--- a/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch
+++ b/debian/patches-rt/0161-srcu-use-cpu_online-instead-custom-check.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 13 Sep 2017 14:43:41 +0200
-Subject: [PATCH 161/353] srcu: use cpu_online() instead custom check
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b1423f183c0e3ff9419de9b9d3cd09bed0b84540
+Subject: [PATCH 161/354] srcu: use cpu_online() instead custom check
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ba1b25e042b8c9b551d6ff8e7d35102ec77f544
The current check via srcu_online is slightly racy because after looking
at srcu_online there could be an interrupt that interrupted us long
diff --git a/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch b/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch
index 1b8579494..ba736b670 100644
--- a/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch
+++ b/debian/patches-rt/0162-srcu-replace-local_irqsave-with-a-locallock.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 12 Oct 2017 18:37:12 +0200
-Subject: [PATCH 162/353] srcu: replace local_irqsave() with a locallock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a6e91931c31ac57dfd998afb20cf33c5db0211f1
+Subject: [PATCH 162/354] srcu: replace local_irqsave() with a locallock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cca3434820462a5c77afd4e917e4e4962cbbfa09
There are two instances which disable interrupts in order to become a
stable this_cpu_ptr() pointer. The restore part is coupled with
diff --git a/debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch b/debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
index 34de5c874..8b4939daf 100644
--- a/debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
+++ b/debian/patches-rt/0163-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
@@ -1,7 +1,7 @@
From: Julia Cartwright <julia@ni.com>
Date: Wed, 12 Oct 2016 11:21:14 -0500
-Subject: [PATCH 163/353] rcu: enable rcu_normal_after_boot by default for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=715730eb2e4c433fec91c0b5be88a42cf53250b1
+Subject: [PATCH 163/354] rcu: enable rcu_normal_after_boot by default for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3306adb347401d093d898e89580e9a309dc25ec4
The forcing of an expedited grace period is an expensive and very
RT-application unfriendly operation, as it forcibly preempts all running
diff --git a/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch b/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch
index e31363e71..ea8a619c5 100644
--- a/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch
+++ b/debian/patches-rt/0164-tty-serial-omap-Make-the-locking-RT-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 28 Jul 2011 13:32:57 +0200
-Subject: [PATCH 164/353] tty/serial/omap: Make the locking RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=43f213f089719957589286cb6d993219d226880f
+Subject: [PATCH 164/354] tty/serial/omap: Make the locking RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1e8e3580f7c188a65f926326bd1b8eeba022fbb2
The lock is a sleeping lock and local_irq_save() is not the
optimsation we are looking for. Redo it to make it work on -RT and
diff --git a/debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch b/debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch
index 3920ee816..0af1e53f2 100644
--- a/debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch
+++ b/debian/patches-rt/0165-tty-serial-pl011-Make-the-locking-work-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 8 Jan 2013 21:36:51 +0100
-Subject: [PATCH 165/353] tty/serial/pl011: Make the locking work on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fc32db3abe672f6824c06bcc529972a74b1c7b44
+Subject: [PATCH 165/354] tty/serial/pl011: Make the locking work on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0e42f8f75bde7e5d13fb4c18ed5c598305dfd5af
The lock is a sleeping lock and local_irq_save() is not the optimsation
we are looking for. Redo it to make it work on -RT and non-RT.
diff --git a/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch b/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch
index dd96a0f53..06b8a58c3 100644
--- a/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch
+++ b/debian/patches-rt/0166-tty-serial-pl011-explicitly-initialize-the-flags-var.patch
@@ -1,11 +1,11 @@
From: Kurt Kanzenbach <kurt@linutronix.de>
Date: Mon, 24 Sep 2018 10:29:01 +0200
-Subject: [PATCH 166/353] tty: serial: pl011: explicitly initialize the flags
+Subject: [PATCH 166/354] tty: serial: pl011: explicitly initialize the flags
variable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6d9aaa3e016ce6e6c21fd051f669bc169ba8fb58
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=28e7bbd2ceab19819d33534f5ab2e3818fdd1fef
Silence the following gcc warning:
diff --git a/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch b/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch
index e91a0dc2e..7f96a6424 100644
--- a/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch
+++ b/debian/patches-rt/0167-rt-Improve-the-serial-console-PASS_LIMIT.patch
@@ -1,10 +1,10 @@
From: Ingo Molnar <mingo@elte.hu>
Date: Wed, 14 Dec 2011 13:05:54 +0100
-Subject: [PATCH 167/353] rt: Improve the serial console PASS_LIMIT
+Subject: [PATCH 167/354] rt: Improve the serial console PASS_LIMIT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d67046491f07ce337099d9076f5d0af41457f4e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0e40c1effb13fb57056db9f7172932fce5ba0bea
Beyond the warning:
diff --git a/debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch b/debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
index 2a649311b..c80a34250 100644
--- a/debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
+++ b/debian/patches-rt/0168-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 11 Apr 2016 16:55:02 +0200
-Subject: [PATCH 168/353] tty: serial: 8250: don't take the trylock during oops
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fedac9e5838862f2a77d0d8a34b4b0bffca76c83
+Subject: [PATCH 168/354] tty: serial: 8250: don't take the trylock during oops
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9bf1e4e2c9ba1ddb81cd0be68e7d93f8ccb70a41
An oops with irqs off (panic() from irqsafe hrtimer like the watchdog
timer) will lead to a lockdep warning on each invocation and as such
@@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
-index cba4888bc482..af7df5ca17a5 100644
+index 7f5d51de622d..766bdb1717d5 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
-@@ -3316,10 +3316,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
+@@ -3315,10 +3315,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
serial8250_rpm_get(up);
diff --git a/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch b/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
index c94ddef0f..c87eee50f 100644
--- a/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
+++ b/debian/patches-rt/0169-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz@infradead.org>
Date: Wed, 23 Nov 2016 16:29:32 +0100
-Subject: [PATCH 169/353] locking/percpu-rwsem: Remove preempt_disable variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fddf5c58a99b20575b47df00a28f199e3c685d89
+Subject: [PATCH 169/354] locking/percpu-rwsem: Remove preempt_disable variants
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=42b6adadac37c91c1dde57d7c2852076ac4c17d9
Effective revert commit:
diff --git a/debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch b/debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
index e6308c73d..facfc4bde 100644
--- a/debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
+++ b/debian/patches-rt/0170-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
@@ -1,8 +1,8 @@
From: Yong Zhang <yong.zhang0@gmail.com>
Date: Tue, 15 May 2012 13:53:56 +0800
-Subject: [PATCH 170/353] mm: Protect activate_mm() by
+Subject: [PATCH 170/354] mm: Protect activate_mm() by
preempt_[disable&enable]_rt()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=72765ad90ad37a0185e3be74225c144d5d83cfc8
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ca2a6dce0220e2384068a38b64a46d253e06ff3e
User preempt_*_rt instead of local_irq_*_rt or otherwise there will be
warning on ARM like below:
diff --git a/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch b/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch
index 8f5257657..c58750dd6 100644
--- a/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch
+++ b/debian/patches-rt/0171-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 13 Sep 2017 12:32:34 +0200
-Subject: [PATCH 171/353] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD
+Subject: [PATCH 171/354] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD
init
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aecaf31f5a98b65e4f49dd9ecfddfe1da5b686e6
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=429cb6881d65bc2a8c51883beecc8f44da66bf81
Commit 3d375d78593c ("mm: update callers to use HASH_ZERO flag") removed
INIT_HLIST_BL_HEAD and uses the ZERO flag instead for the init. However
diff --git a/debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch b/debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
index e05bfa94a..c91a896a1 100644
--- a/debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
+++ b/debian/patches-rt/0172-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 20 Oct 2017 11:29:53 +0200
-Subject: [PATCH 172/353] fs/dcache: disable preemption on i_dir_seq's write
+Subject: [PATCH 172/354] fs/dcache: disable preemption on i_dir_seq's write
side
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=73dad1b4c735605f03c709d3631000ed38390d8e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dbb94b79e4151c3ff897d2df1ce2b2e24bdcd967
i_dir_seq is an opencoded seqcounter. Based on the code it looks like we
could have two writers in parallel despite the fact that the d_lock is
@@ -81,7 +81,7 @@ index 5df2e8ee23ed..9cdec5f41e40 100644
inode->dirtied_when = 0;
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 95b8ef09b76c..e77b126ea76a 100644
+index f89748aac8c3..23388d4d2fb8 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -679,7 +679,7 @@ struct inode {
diff --git a/debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch b/debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch
index be58e2840..e6016af58 100644
--- a/debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch
+++ b/debian/patches-rt/0173-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch
@@ -1,8 +1,8 @@
From: Julia Cartwright <julia@ni.com>
Date: Mon, 7 May 2018 08:58:57 -0500
-Subject: [PATCH 173/353] squashfs: make use of local lock in multi_cpu
+Subject: [PATCH 173/354] squashfs: make use of local lock in multi_cpu
decompressor
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1b53a7e12286b2e587e9bea1c4ab5ab4ebc5c892
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=54e8d9d122e7500d16ec29a7d0958b475b7df9c6
Currently, the squashfs multi_cpu decompressor makes use of
get_cpu_ptr()/put_cpu_ptr(), which unconditionally disable preemption
diff --git a/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch b/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch
index 3e8f606ca..de3de4632 100644
--- a/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch
+++ b/debian/patches-rt/0174-thermal-Defer-thermal-wakups-to-threads.patch
@@ -1,7 +1,7 @@
From: Daniel Wagner <wagi@monom.org>
Date: Tue, 17 Feb 2015 09:37:44 +0100
-Subject: [PATCH 174/353] thermal: Defer thermal wakups to threads
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ecea5d1de8aaf3cf20b90ce2dd1b811db8ca070b
+Subject: [PATCH 174/354] thermal: Defer thermal wakups to threads
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=87c64d81690682f1d3d854aef4225d5ed65e4ef5
On RT the spin lock in pkg_temp_thermal_platfrom_thermal_notify will
call schedule while we run in irq context.
diff --git a/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch b/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch
index 2c386a391..be7a2f708 100644
--- a/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch
+++ b/debian/patches-rt/0175-x86-fpu-Disable-preemption-around-local_bh_disable.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 11 Dec 2018 15:10:33 +0100
-Subject: [PATCH 175/353] x86/fpu: Disable preemption around local_bh_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c9d155d7360346edcfd997c4f8857013a8c93466
+Subject: [PATCH 175/354] x86/fpu: Disable preemption around local_bh_disable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4dd3cc1c43c1bcc7763a2c7c010c40a76d292df8
__fpu__restore_sig() restores the content of the FPU state in the CPUs
and in order to avoid concurency it disbles BH. On !RT it also disables
diff --git a/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch b/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch
index 1b43d2cda..b4414d2f9 100644
--- a/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch
+++ b/debian/patches-rt/0176-fs-epoll-Do-not-disable-preemption-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 8 Jul 2011 16:35:35 +0200
-Subject: [PATCH 176/353] fs/epoll: Do not disable preemption on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ccbbabc4e09d6892351af5078f8d0992c4f33d98
+Subject: [PATCH 176/354] fs/epoll: Do not disable preemption on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5812793f2680e31a6631eb76d64b5faf489e8f43
ep_call_nested() takes a sleeping lock so we can't disable preemption.
The light version is enough since ep_call_nested() doesn't mind beeing
diff --git a/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch b/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
index 40f9e89d5..77193bec5 100644
--- a/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
+++ b/debian/patches-rt/0177-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 12 Jul 2011 11:39:36 +0200
-Subject: [PATCH 177/353] mm/vmalloc: Another preempt disable region which
+Subject: [PATCH 177/354] mm/vmalloc: Another preempt disable region which
sucks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0a630b63e6f1caa67f15cc0d7503c051b9d5bed5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3fcab84b133f45d3c6ee9f2fa0e58448b73ceaf2
Avoid the preempt disable version of get_cpu_var(). The inner-lock should
provide enough serialisation.
diff --git a/debian/patches-rt/0178-block-mq-use-cpu_light.patch b/debian/patches-rt/0178-block-mq-use-cpu_light.patch
index 7516eb79c..c62fa8bf0 100644
--- a/debian/patches-rt/0178-block-mq-use-cpu_light.patch
+++ b/debian/patches-rt/0178-block-mq-use-cpu_light.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 9 Apr 2014 10:37:23 +0200
-Subject: [PATCH 178/353] block: mq: use cpu_light()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c5e8c04bf7fb78a2af8e0a2f3aebdf9afb0e134
+Subject: [PATCH 178/354] block: mq: use cpu_light()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=372cc57310b011197a496c5069171575b8678e4f
there is a might sleep splat because get_cpu() disables preemption and
later we grab a lock. As a workaround for this we use get_cpu_light().
diff --git a/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch b/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch
index 51b6697fe..995996494 100644
--- a/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch
+++ b/debian/patches-rt/0179-block-mq-do-not-invoke-preempt_disable.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 179/353] block/mq: do not invoke preempt_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=653694f4e5539ad66c3c8094d1885337c2b9cb39
+Subject: [PATCH 179/354] block/mq: do not invoke preempt_disable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=79747b5d405aba22927ec1f712a590812bd1d6a3
preempt_disable() and get_cpu() don't play well together with the sleeping
locks it tries to allocate later.
diff --git a/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch b/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch
index 20844564a..32774c77b 100644
--- a/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch
+++ b/debian/patches-rt/0180-block-mq-don-t-complete-requests-via-IPI.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 29 Jan 2015 15:10:08 +0100
-Subject: [PATCH 180/353] block/mq: don't complete requests via IPI
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ddc500f1fab91f0709b7c883b688b12a63366890
+Subject: [PATCH 180/354] block/mq: don't complete requests via IPI
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4de202ade1f83a61b9dea261de4a26ef31092cb5
The IPI runs in hardirq context and there are sleeping locks. This patch
moves the completion into a workqueue.
diff --git a/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch b/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
index da3a64c76..6f27557bb 100644
--- a/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
+++ b/debian/patches-rt/0181-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 6 Apr 2010 16:51:31 +0200
-Subject: [PATCH 181/353] md: raid5: Make raid5_percpu handling RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6903e12a02cec96bb490da0d8a8dda162a457e14
+Subject: [PATCH 181/354] md: raid5: Make raid5_percpu handling RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a6fe116128639978d7c91654b6bf5aa0cc2054ce
__raid_run_ops() disables preemption with get_cpu() around the access
to the raid5_percpu variables. That causes scheduling while atomic
@@ -19,7 +19,7 @@ Tested-by: Udo van den Heuvel <udovdh@xs4all.nl>
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index 7eeae0301ccc..a93f05b9e3a2 100644
+index b98abe927d06..4363b0325b51 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -2070,8 +2070,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
diff --git a/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch b/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch
index 2c469cd98..382f0f055 100644
--- a/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch
+++ b/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 7 Mar 2012 20:51:03 +0100
-Subject: [PATCH 182/353] rt: Introduce cpu_chill()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b039ab1c70ccae3ab8d445c85aed514ac4bf63ca
+Subject: [PATCH 182/354] rt: Introduce cpu_chill()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=82c8b4098833aa717a4ef004ccf03e38df11f892
Retry loops on RT might loop forever when the modifying side was
preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill()
@@ -76,7 +76,7 @@ index b78bab4395d8..7c4bc414a504 100644
+
#endif /* defined(_LINUX_DELAY_H) */
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 4de39964594d..768de46dba6b 100644
+index 260487c89a14..0ab19aa36357 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1963,6 +1963,27 @@ COMPAT_SYSCALL_DEFINE2(nanosleep, struct compat_timespec __user *, rqtp,
diff --git a/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch b/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch
index accdab949..7ef1e813f 100644
--- a/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch
+++ b/debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 19 Feb 2019 16:59:15 +0100
-Subject: [PATCH 183/353] hrtimer: Don't lose state in cpu_chill()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=721ff03f231a027cb0e48525bec4e1ecc07f0c86
+Subject: [PATCH 183/354] hrtimer: Don't lose state in cpu_chill()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b78f6c6c48e7f2394b77cdb736f146ea9f8b9ea6
In cpu_chill() the state is set to TASK_UNINTERRUPTIBLE and a timer is
programmed. On return the state is always TASK_RUNNING which means we
@@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 768de46dba6b..aa208a350a3b 100644
+index 0ab19aa36357..983c29fe0ff7 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1971,15 +1971,18 @@ void cpu_chill(void)
diff --git a/debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch b/debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch
index 4b0927b0a..376cd7800 100644
--- a/debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch
+++ b/debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 26 Feb 2019 12:31:10 +0100
-Subject: [PATCH 184/353] hrtimer: cpu_chill(): save task state in
+Subject: [PATCH 184/354] hrtimer: cpu_chill(): save task state in
->saved_state()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0b619882e45a08ee21433ecd2b74d06981e22414
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7eadb4d1ffee649bab16b22b7328d9fcbc5376ac
In the previous change I saved the current task state on stack. This was
bad because while the task is scheduled-out it might receive a wake-up.
@@ -20,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index aa208a350a3b..1992f107599e 100644
+index 983c29fe0ff7..8f315ad08cd1 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1969,20 +1969,28 @@ COMPAT_SYSCALL_DEFINE2(nanosleep, struct compat_timespec __user *, rqtp,
diff --git a/debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch b/debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
index 4ede7bb86..f028860fc 100644
--- a/debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
+++ b/debian/patches-rt/0185-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 13 Mar 2018 13:49:16 +0100
-Subject: [PATCH 185/353] block: blk-mq: move blk_queue_usage_counter_release()
+Subject: [PATCH 185/354] block: blk-mq: move blk_queue_usage_counter_release()
into process context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=598cc45494b90c42a2f400150aaa3164ae26236a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c68a5d1db635c5eaa207649a4331bf1a22061b88
| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
| in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6
diff --git a/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch b/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch
index 2d9c8eeab..e98c9b60e 100644
--- a/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch
+++ b/debian/patches-rt/0186-block-Use-cpu_chill-for-retry-loops.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 20 Dec 2012 18:28:26 +0100
-Subject: [PATCH 186/353] block: Use cpu_chill() for retry loops
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=583684fb86328d92d6b173d67714e9560a07a940
+Subject: [PATCH 186/354] block: Use cpu_chill() for retry loops
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5f766c719ef5c289d94d119117d36b82f0901f86
Retry loops on RT might loop forever when the modifying side was
preempted. Steven also observed a live lock when there was a
diff --git a/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch b/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
index d0965cbcd..b08525a8b 100644
--- a/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
+++ b/debian/patches-rt/0187-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 7 Mar 2012 21:00:34 +0100
-Subject: [PATCH 187/353] fs: dcache: Use cpu_chill() in trylock loops
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=54fa302171c7878902ca36c506e0939142c4905d
+Subject: [PATCH 187/354] fs: dcache: Use cpu_chill() in trylock loops
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8d67bd1b8db1d9d56af792fc7904903578026f73
Retry loops on RT might loop forever when the modifying side was
preempted. Use cpu_chill() instead of cpu_relax() to let the system
diff --git a/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch b/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch
index 0afbc3e71..c14608c3c 100644
--- a/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch
+++ b/debian/patches-rt/0188-net-Use-cpu_chill-instead-of-cpu_relax.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 7 Mar 2012 21:10:04 +0100
-Subject: [PATCH 188/353] net: Use cpu_chill() instead of cpu_relax()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e96b68e550cd4012674a63859f68d242b7dbf31c
+Subject: [PATCH 188/354] net: Use cpu_chill() instead of cpu_relax()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8531ec0fd1acd6c5810b1f7ee4780383546d616d
Retry loops on RT might loop forever when the modifying side was
preempted. Use cpu_chill() instead of cpu_relax() to let the system
@@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
-index aa12bee4133a..dd652eae83e3 100644
+index 377832981178..24e4026017ec 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -63,6 +63,7 @@
@@ -25,7 +25,7 @@ index aa12bee4133a..dd652eae83e3 100644
#include <linux/kmod.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
-@@ -668,7 +669,7 @@ static void prb_retire_rx_blk_timer_expired(struct timer_list *t)
+@@ -672,7 +673,7 @@ static void prb_retire_rx_blk_timer_expired(struct timer_list *t)
if (BLOCK_NUM_PKTS(pbd)) {
while (atomic_read(&pkc->blk_fill_in_prog)) {
/* Waiting for skb_copy_bits to finish... */
@@ -34,7 +34,7 @@ index aa12bee4133a..dd652eae83e3 100644
}
}
-@@ -930,7 +931,7 @@ static void prb_retire_current_block(struct tpacket_kbdq_core *pkc,
+@@ -934,7 +935,7 @@ static void prb_retire_current_block(struct tpacket_kbdq_core *pkc,
if (!(status & TP_STATUS_BLK_TMO)) {
while (atomic_read(&pkc->blk_fill_in_prog)) {
/* Waiting for skb_copy_bits to finish... */
diff --git a/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
index e8ef46f68..38127dfde 100644
--- a/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
+++ b/debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 14 Sep 2016 14:35:49 +0200
-Subject: [PATCH 189/353] fs/dcache: use swait_queue instead of waitqueue
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=61d4045b9c6beeffcdd2c05d35c3214d65c595ed
+Subject: [PATCH 189/354] fs/dcache: use swait_queue instead of waitqueue
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=68ab83929039c1bf3c95833d1055613830ef96fb
__d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock()
which disables preemption. As a workaround convert it to swait.
@@ -84,7 +84,7 @@ index 1ae163d54925..6e1c0b4c04f4 100644
hlist_bl_unlock(b);
INIT_HLIST_NODE(&dentry->d_u.d_alias);
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
-index 6098e0c7f87b..9ce28840684a 100644
+index 0e03adbcf942..68df4ac61c30 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -1234,7 +1234,7 @@ static int fuse_direntplus_link(struct file *file,
@@ -97,7 +97,7 @@ index 6098e0c7f87b..9ce28840684a 100644
if (!o->nodeid) {
/*
diff --git a/fs/namei.c b/fs/namei.c
-index 9e8fca598acc..277508fc3cbc 100644
+index 60b57e0bc174..219c3bd94a8f 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1646,7 +1646,7 @@ static struct dentry *__lookup_slow(const struct qstr *name,
@@ -109,7 +109,7 @@ index 9e8fca598acc..277508fc3cbc 100644
/* Don't go there if it's already dead */
if (unlikely(IS_DEADDIR(inode)))
-@@ -3136,7 +3136,7 @@ static int lookup_open(struct nameidata *nd, struct path *path,
+@@ -3156,7 +3156,7 @@ static int lookup_open(struct nameidata *nd, struct path *path,
struct dentry *dentry;
int error, create_error = 0;
umode_t mode = op->mode;
@@ -163,7 +163,7 @@ index ce9100b5604d..839bfa76f41e 100644
status = -EBUSY;
spin_lock(&dentry->d_lock);
diff --git a/fs/proc/base.c b/fs/proc/base.c
-index e3f10c110b74..accc230079bb 100644
+index 69f48794b550..26334fa56e18 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -1889,7 +1889,7 @@ bool proc_fill_cache(struct file *file, struct dir_context *ctx,
diff --git a/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch b/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch
index 53e612863..c6ecccd8f 100644
--- a/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch
+++ b/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 24 Jul 2013 15:26:54 +0200
-Subject: [PATCH 190/353] workqueue: Use normal rcu
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37451e023726bbdd8de45fa86e8c5038be90e3ae
+Subject: [PATCH 190/354] workqueue: Use normal rcu
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f077c23964fda23dcb109b53b423ca1b8f512573
There is no need for sched_rcu. The undocumented reason why sched_rcu
is used is to avoid a few explicit rcu_read_lock()/unlock() pairs by
@@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 52 insertions(+), 43 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 4ea2f7fd20ce..d002a0ab68d6 100644
+index 017939097451..8bd6fe347a32 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -128,7 +128,7 @@ enum {
@@ -107,7 +107,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
* read locked.
* If the pwq needs to be used beyond the locking in effect, the caller is
* responsible for guaranteeing that the pwq stays online.
-@@ -695,8 +695,8 @@ static struct pool_workqueue *get_work_pwq(struct work_struct *work)
+@@ -700,8 +700,8 @@ static struct pool_workqueue *get_work_pwq(struct work_struct *work)
* @work: the work item of interest
*
* Pools are created and destroyed under wq_pool_mutex, and allows read
@@ -118,7 +118,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
*
* All fields of the returned pool are accessible as long as the above
* mentioned locking is in effect. If the returned pool needs to be used
-@@ -1101,7 +1101,7 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
+@@ -1104,7 +1104,7 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
{
if (pwq) {
/*
@@ -127,7 +127,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
* following lock operations are safe.
*/
spin_lock_irq(&pwq->pool->lock);
-@@ -1229,6 +1229,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1232,6 +1232,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work)))
return 0;
@@ -135,7 +135,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
/*
* The queueing is in progress, or it is already queued. Try to
* steal it from ->worklist without clearing WORK_STRUCT_PENDING.
-@@ -1267,10 +1268,12 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1270,10 +1271,12 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
set_work_pool_and_keep_pending(work, pool->id);
spin_unlock(&pool->lock);
@@ -148,7 +148,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
local_irq_restore(*flags);
if (work_is_canceling(work))
return -ENOENT;
-@@ -1383,6 +1386,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1386,6 +1389,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
if (unlikely(wq->flags & __WQ_DRAINING) &&
WARN_ON_ONCE(!is_chained_work(wq)))
return;
@@ -156,7 +156,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
retry:
/* pwq which will be used unless @work is executing elsewhere */
if (wq->flags & WQ_UNBOUND) {
-@@ -1441,10 +1445,8 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1444,10 +1448,8 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
/* pwq determined, queue */
trace_workqueue_queue_work(req_cpu, pwq, work);
@@ -169,7 +169,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
pwq->nr_in_flight[pwq->work_color]++;
work_flags = work_color_to_flags(pwq->work_color);
-@@ -1463,7 +1465,9 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1466,7 +1468,9 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
debug_work_activate(work);
insert_work(pwq, work, worklist, work_flags);
@@ -179,7 +179,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
}
/**
-@@ -2861,14 +2865,14 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
+@@ -2864,14 +2868,14 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
might_sleep();
@@ -197,7 +197,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
/* see the comment in try_to_grab_pending() with the same code */
pwq = get_work_pwq(work);
if (pwq) {
-@@ -2900,10 +2904,11 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
+@@ -2903,10 +2907,11 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
lock_map_acquire(&pwq->wq->lockdep_map);
lock_map_release(&pwq->wq->lockdep_map);
}
@@ -210,7 +210,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
return false;
}
-@@ -3348,7 +3353,7 @@ static void rcu_free_pool(struct rcu_head *rcu)
+@@ -3351,7 +3356,7 @@ static void rcu_free_pool(struct rcu_head *rcu)
* put_unbound_pool - put a worker_pool
* @pool: worker_pool to put
*
@@ -219,7 +219,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
* safe manner. get_unbound_pool() calls this function on its failure path
* and this function should be able to release pools which went through,
* successfully or not, init_worker_pool().
-@@ -3402,8 +3407,8 @@ static void put_unbound_pool(struct worker_pool *pool)
+@@ -3405,8 +3410,8 @@ static void put_unbound_pool(struct worker_pool *pool)
del_timer_sync(&pool->idle_timer);
del_timer_sync(&pool->mayday_timer);
@@ -230,7 +230,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
}
/**
-@@ -3516,14 +3521,14 @@ static void pwq_unbound_release_workfn(struct work_struct *work)
+@@ -3519,14 +3524,14 @@ static void pwq_unbound_release_workfn(struct work_struct *work)
put_unbound_pool(pool);
mutex_unlock(&wq_pool_mutex);
@@ -247,7 +247,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
}
/**
-@@ -4230,7 +4235,7 @@ void destroy_workqueue(struct workqueue_struct *wq)
+@@ -4233,7 +4238,7 @@ void destroy_workqueue(struct workqueue_struct *wq)
* The base ref is never dropped on per-cpu pwqs. Directly
* schedule RCU free.
*/
@@ -256,7 +256,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
} else {
/*
* We're the sole accessor of @wq at this point. Directly
-@@ -4340,7 +4345,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
+@@ -4343,7 +4348,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
struct pool_workqueue *pwq;
bool ret;
@@ -266,7 +266,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
if (cpu == WORK_CPU_UNBOUND)
cpu = smp_processor_id();
-@@ -4351,7 +4357,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
+@@ -4354,7 +4360,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu));
ret = !list_empty(&pwq->delayed_works);
@@ -276,7 +276,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
return ret;
}
-@@ -4377,15 +4384,15 @@ unsigned int work_busy(struct work_struct *work)
+@@ -4380,15 +4387,15 @@ unsigned int work_busy(struct work_struct *work)
if (work_pending(work))
ret |= WORK_BUSY_PENDING;
@@ -296,7 +296,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
return ret;
}
-@@ -4570,7 +4577,7 @@ void show_workqueue_state(void)
+@@ -4573,7 +4580,7 @@ void show_workqueue_state(void)
unsigned long flags;
int pi;
@@ -305,7 +305,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
pr_info("Showing busy workqueues and worker pools:\n");
-@@ -4635,7 +4642,7 @@ void show_workqueue_state(void)
+@@ -4638,7 +4645,7 @@ void show_workqueue_state(void)
touch_nmi_watchdog();
}
@@ -314,7 +314,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
}
/* used to show worker information through /proc/PID/{comm,stat,status} */
-@@ -5022,16 +5029,16 @@ bool freeze_workqueues_busy(void)
+@@ -5025,16 +5032,16 @@ bool freeze_workqueues_busy(void)
* nr_active is monotonically decreasing. It's safe
* to peek without lock.
*/
@@ -334,7 +334,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
}
out_unlock:
mutex_unlock(&wq_pool_mutex);
-@@ -5233,7 +5240,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
+@@ -5240,7 +5247,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
const char *delim = "";
int node, written = 0;
@@ -344,7 +344,7 @@ index 4ea2f7fd20ce..d002a0ab68d6 100644
for_each_node(node) {
written += scnprintf(buf + written, PAGE_SIZE - written,
"%s%d:%d", delim, node,
-@@ -5241,7 +5249,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
+@@ -5248,7 +5256,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
delim = " ";
}
written += scnprintf(buf + written, PAGE_SIZE - written, "\n");
diff --git a/debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch b/debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
index afc96c299..e2b10051b 100644
--- a/debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
+++ b/debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:42:26 +0200
-Subject: [PATCH 191/353] workqueue: Use local irq lock instead of irq disable
+Subject: [PATCH 191/354] workqueue: Use local irq lock instead of irq disable
regions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f12d688441df0c1a59c7e65616a8a4eabe4d52c3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c620d30a8ecfc1a79d34431f64defe6afa24bfb9
Use a local_irq_lock as a replacement for irq off regions. We keep the
semantic of irq-off in regard to the pool->lock and remain preemptible.
@@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 30 insertions(+), 15 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index d002a0ab68d6..3cf50eac5351 100644
+index 8bd6fe347a32..71afa2de6aba 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -50,6 +50,7 @@
@@ -33,7 +33,7 @@ index d002a0ab68d6..3cf50eac5351 100644
static int worker_thread(void *__worker);
static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
-@@ -1104,9 +1107,11 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
+@@ -1107,9 +1110,11 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
* As both pwqs and pools are RCU protected, the
* following lock operations are safe.
*/
@@ -47,7 +47,7 @@ index d002a0ab68d6..3cf50eac5351 100644
}
}
-@@ -1210,7 +1215,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1213,7 +1218,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
struct worker_pool *pool;
struct pool_workqueue *pwq;
@@ -56,7 +56,7 @@ index d002a0ab68d6..3cf50eac5351 100644
/* try to steal the timer if it exists */
if (is_dwork) {
-@@ -1274,7 +1279,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1277,7 +1282,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
spin_unlock(&pool->lock);
fail:
rcu_read_unlock();
@@ -65,7 +65,7 @@ index d002a0ab68d6..3cf50eac5351 100644
if (work_is_canceling(work))
return -ENOENT;
cpu_relax();
-@@ -1379,7 +1384,13 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1382,7 +1387,13 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
* queued or lose PENDING. Grabbing PENDING and queueing should
* happen with IRQ disabled.
*/
@@ -79,7 +79,7 @@ index d002a0ab68d6..3cf50eac5351 100644
/* if draining, only works from the same workqueue are allowed */
-@@ -1487,14 +1498,14 @@ bool queue_work_on(int cpu, struct workqueue_struct *wq,
+@@ -1490,14 +1501,14 @@ bool queue_work_on(int cpu, struct workqueue_struct *wq,
bool ret = false;
unsigned long flags;
@@ -96,7 +96,7 @@ index d002a0ab68d6..3cf50eac5351 100644
return ret;
}
EXPORT_SYMBOL(queue_work_on);
-@@ -1503,8 +1514,11 @@ void delayed_work_timer_fn(struct timer_list *t)
+@@ -1506,8 +1517,11 @@ void delayed_work_timer_fn(struct timer_list *t)
{
struct delayed_work *dwork = from_timer(dwork, t, timer);
@@ -108,7 +108,7 @@ index d002a0ab68d6..3cf50eac5351 100644
}
EXPORT_SYMBOL(delayed_work_timer_fn);
-@@ -1559,14 +1573,14 @@ bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
+@@ -1562,14 +1576,14 @@ bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
unsigned long flags;
/* read the comment in __queue_work() */
@@ -125,7 +125,7 @@ index d002a0ab68d6..3cf50eac5351 100644
return ret;
}
EXPORT_SYMBOL(queue_delayed_work_on);
-@@ -1601,7 +1615,7 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq,
+@@ -1604,7 +1618,7 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq,
if (likely(ret >= 0)) {
__queue_delayed_work(cpu, wq, dwork, delay);
@@ -134,7 +134,7 @@ index d002a0ab68d6..3cf50eac5351 100644
}
/* -ENOENT from try_to_grab_pending() becomes %true */
-@@ -1612,11 +1626,12 @@ EXPORT_SYMBOL_GPL(mod_delayed_work_on);
+@@ -1615,11 +1629,12 @@ EXPORT_SYMBOL_GPL(mod_delayed_work_on);
static void rcu_work_rcufn(struct rcu_head *rcu)
{
struct rcu_work *rwork = container_of(rcu, struct rcu_work, rcu);
@@ -149,7 +149,7 @@ index d002a0ab68d6..3cf50eac5351 100644
}
/**
-@@ -3006,7 +3021,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
+@@ -3009,7 +3024,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
/* tell other tasks trying to grab @work to back off */
mark_work_canceling(work);
@@ -158,7 +158,7 @@ index d002a0ab68d6..3cf50eac5351 100644
/*
* This allows canceling during early boot. We know that @work
-@@ -3067,10 +3082,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
+@@ -3070,10 +3085,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
*/
bool flush_delayed_work(struct delayed_work *dwork)
{
@@ -171,7 +171,7 @@ index d002a0ab68d6..3cf50eac5351 100644
return flush_work(&dwork->work);
}
EXPORT_SYMBOL(flush_delayed_work);
-@@ -3108,7 +3123,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
+@@ -3111,7 +3126,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
return false;
set_work_pool_and_clear_pending(work, get_work_pool_id(work));
diff --git a/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch b/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
index 4c6b7160c..cf1ea6812 100644
--- a/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
+++ b/debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 1 Jul 2013 11:02:42 +0200
-Subject: [PATCH 192/353] workqueue: Prevent workqueue versus ata-piix livelock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9576dddf691d00fbd07ff2e92b503f25c4c2d58
+Subject: [PATCH 192/354] workqueue: Prevent workqueue versus ata-piix livelock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb198a2ba0d915ad966bcec1f40b15f824f64c6c
An Intel i7 system regularly detected rcu_preempt stalls after the kernel
was upgraded from 3.6-rt to 3.8-rt. When the stall happened, disk I/O was no
@@ -113,7 +113,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 3cf50eac5351..50b037b79101 100644
+index 71afa2de6aba..a44e5c245276 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -51,6 +51,7 @@
@@ -124,7 +124,7 @@ index 3cf50eac5351..50b037b79101 100644
#include "workqueue_internal.h"
-@@ -1282,7 +1283,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1285,7 +1286,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
local_unlock_irqrestore(pendingb_lock, *flags);
if (work_is_canceling(work))
return -ENOENT;
diff --git a/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch b/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch
index d68e7c167..e71c1b480 100644
--- a/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch
+++ b/debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 22 Jun 2011 19:47:03 +0200
-Subject: [PATCH 193/353] sched: Distangle worker accounting from rqlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f51bb16041ffffd9adf703fde1245e9afda898b9
+Subject: [PATCH 193/354] sched: Distangle worker accounting from rqlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7d6a23596c58f6835f693f56efda15aedfe2e48b
The worker accounting for cpu bound workers is plugged into the core
scheduler code and the wakeup code. This is not a hard requirement and
@@ -169,10 +169,10 @@ index 4a714c92dff2..20585605b2ac 100644
EXPORT_SYMBOL(schedule);
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 50b037b79101..7561ac884a3e 100644
+index a44e5c245276..21751b94b93a 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
-@@ -844,43 +844,32 @@ static void wake_up_worker(struct worker_pool *pool)
+@@ -847,43 +847,32 @@ static void wake_up_worker(struct worker_pool *pool)
}
/**
@@ -227,7 +227,7 @@ index 50b037b79101..7561ac884a3e 100644
struct worker_pool *pool;
/*
-@@ -889,13 +878,15 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task)
+@@ -892,13 +881,15 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task)
* checking NOT_RUNNING.
*/
if (worker->flags & WORKER_NOT_RUNNING)
@@ -247,7 +247,7 @@ index 50b037b79101..7561ac884a3e 100644
/*
* The counterpart of the following dec_and_test, implied mb,
-@@ -909,9 +900,12 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task)
+@@ -912,9 +903,12 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task)
* lock is safe.
*/
if (atomic_dec_and_test(&pool->nr_running) &&
diff --git a/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch b/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch
index ec8411674..f05c8a424 100644
--- a/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch
+++ b/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:41:35 +0200
-Subject: [PATCH 194/353] debugobjects: Make RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b56a11fdddede9388a998f84bc84f86f0ed9197e
+Subject: [PATCH 194/354] debugobjects: Make RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=752e1e6a5668d281e4d7fdeb624bcfa5e61264bd
Avoid filling the pool / allocating memory with irqs off().
@@ -11,10 +11,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/debugobjects.c b/lib/debugobjects.c
-index 5f23d896df55..e486693aea49 100644
+index 62d095fd0c52..08c372c65d10 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
-@@ -466,7 +466,7 @@ static void debug_objects_fill_pool(void)
+@@ -475,7 +475,7 @@ static void debug_objects_fill_pool(void)
* On RT enabled kernels the pool refill must happen in preemptible
* context:
*/
diff --git a/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch b/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch
index 84e014caa..697f122f2 100644
--- a/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch
+++ b/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 22 Feb 2012 12:03:30 +0100
-Subject: [PATCH 195/353] seqlock: Prevent rt starvation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f274d1f15458bdf8a8f29a8e2e976e27ce2c1d93
+Subject: [PATCH 195/354] seqlock: Prevent rt starvation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a3ba756f999110aa6ca549e1eaa5584bbd16c4ca
If a low prio writer gets preempted while holding the seqlock write
locked, a high prio reader spins forever on RT.
@@ -159,10 +159,10 @@ index a42a29952889..a3768cfce914 100644
}
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
-index 5ce035984a4d..1166fc17b757 100644
+index e58ef9e338de..bd140597e068 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
-@@ -451,7 +451,7 @@ static inline int neigh_hh_bridge(struct hh_cache *hh, struct sk_buff *skb)
+@@ -444,7 +444,7 @@ static inline int neigh_hh_bridge(struct hh_cache *hh, struct sk_buff *skb)
}
#endif
@@ -171,7 +171,7 @@ index 5ce035984a4d..1166fc17b757 100644
{
unsigned int hh_alen = 0;
unsigned int seq;
-@@ -493,7 +493,7 @@ static inline int neigh_hh_output(const struct hh_cache *hh, struct sk_buff *skb
+@@ -486,7 +486,7 @@ static inline int neigh_hh_output(const struct hh_cache *hh, struct sk_buff *skb
static inline int neigh_output(struct neighbour *n, struct sk_buff *skb)
{
@@ -180,7 +180,7 @@ index 5ce035984a4d..1166fc17b757 100644
if ((n->nud_state & NUD_CONNECTED) && hh->hh_len)
return neigh_hh_output(hh, skb);
-@@ -534,7 +534,7 @@ struct neighbour_cb {
+@@ -527,7 +527,7 @@ struct neighbour_cb {
#define NEIGH_CB(skb) ((struct neighbour_cb *)(skb)->cb)
diff --git a/debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch b/debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
index 483c54fad..b4e59cbc4 100644
--- a/debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
+++ b/debian/patches-rt/0196-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Wed, 18 Feb 2015 16:05:28 +0100
-Subject: [PATCH 196/353] sunrpc: Make svc_xprt_do_enqueue() use
+Subject: [PATCH 196/354] sunrpc: Make svc_xprt_do_enqueue() use
get_cpu_light()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=250fbc3d90c6ccd11c5c1aec106882f031bccfa8
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=30de5199c391e2f9e845253c5287e3a46d588fc2
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915
|in_atomic(): 1, irqs_disabled(): 0, pid: 3194, name: rpc.nfsd
diff --git a/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch b/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch
index 9ea8b1ddc..0a66ef1ac 100644
--- a/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch
+++ b/debian/patches-rt/0197-net-Use-skbufhead-with-raw-lock.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 12 Jul 2011 15:38:34 +0200
-Subject: [PATCH 197/353] net: Use skbufhead with raw lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=128030e2370b7b2d2b5607a2e95202392ae79eaa
+Subject: [PATCH 197/354] net: Use skbufhead with raw lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ac48ebc6bbcdf2e311ceec73d31c14d14b172601
Use the rps lock as rawlock so we can keep irq-off regions. It looks low
latency. However we can't kfree() from this context therefore we defer this
@@ -15,10 +15,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
3 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index 4d0f48e74755..d3e4b3f195ff 100644
+index ac87fcc4d44b..77209c1c2e7e 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -2992,6 +2992,7 @@ struct softnet_data {
+@@ -2998,6 +2998,7 @@ struct softnet_data {
unsigned int dropped;
struct sk_buff_head input_pkt_queue;
struct napi_struct backlog;
@@ -52,7 +52,7 @@ index f97734f34746..3ede4f0eac10 100644
struct lock_class_key *class)
{
diff --git a/net/core/dev.c b/net/core/dev.c
-index 70a3cebdac89..7bce4581d6f0 100644
+index c6c45f663539..97c74c2e500e 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -219,14 +219,14 @@ static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex)
@@ -72,7 +72,7 @@ index 70a3cebdac89..7bce4581d6f0 100644
#endif
}
-@@ -5862,7 +5862,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
+@@ -5864,7 +5864,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
while (again) {
struct sk_buff *skb;
@@ -82,7 +82,7 @@ index 70a3cebdac89..7bce4581d6f0 100644
rcu_read_lock();
__netif_receive_skb(skb);
rcu_read_unlock();
-@@ -5870,9 +5872,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
+@@ -5872,9 +5874,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
if (++work >= quota)
return work;
@@ -93,7 +93,7 @@ index 70a3cebdac89..7bce4581d6f0 100644
rps_lock(sd);
if (skb_queue_empty(&sd->input_pkt_queue)) {
/*
-@@ -6345,13 +6347,21 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
+@@ -6347,13 +6349,21 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
unsigned long time_limit = jiffies +
usecs_to_jiffies(READ_ONCE(netdev_budget_usecs));
int budget = READ_ONCE(netdev_budget);
@@ -115,7 +115,7 @@ index 70a3cebdac89..7bce4581d6f0 100644
for (;;) {
struct napi_struct *n;
-@@ -9549,10 +9559,13 @@ static int dev_cpu_dead(unsigned int oldcpu)
+@@ -9541,10 +9551,13 @@ static int dev_cpu_dead(unsigned int oldcpu)
netif_rx_ni(skb);
input_queue_head_incr(oldsd);
}
@@ -130,7 +130,7 @@ index 70a3cebdac89..7bce4581d6f0 100644
return 0;
}
-@@ -9863,8 +9876,9 @@ static int __init net_dev_init(void)
+@@ -9855,8 +9868,9 @@ static int __init net_dev_init(void)
INIT_WORK(flush, flush_backlog);
diff --git a/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch b/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
index caf96c5f5..c4c909787 100644
--- a/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
+++ b/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
@@ -1,7 +1,7 @@
From: Clark Williams <williams@redhat.com>
Date: Fri, 17 Dec 2021 14:31:31 -0600
-Subject: [PATCH 198/353] net: move xmit_recursion to per-task variable on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9fcf3310d12df456718d378ff2826b302f35c28b
+Subject: [PATCH 198/354] net: move xmit_recursion to per-task variable on -RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0c1a3fa8d4d3a2a90e975e9aa5dea6e7144a06b
A softirq on -RT can be preempted. That means one task is in
__dev_queue_xmit(), gets preempted and another task may enter
@@ -24,10 +24,10 @@ Signed-off-by: Clark Williams <williams@redhat.com>
3 files changed, 77 insertions(+), 3 deletions(-)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index d3e4b3f195ff..63a0574e2ac2 100644
+index 77209c1c2e7e..1644390430a3 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -590,7 +590,11 @@ struct netdev_queue {
+@@ -597,7 +597,11 @@ struct netdev_queue {
* write-mostly part
*/
spinlock_t _xmit_lock ____cacheline_aligned_in_smp;
@@ -39,7 +39,7 @@ index d3e4b3f195ff..63a0574e2ac2 100644
/*
* Time (in jiffies) of last Tx
*/
-@@ -3011,14 +3015,38 @@ static inline void input_queue_tail_incr_save(struct softnet_data *sd,
+@@ -3017,14 +3021,38 @@ static inline void input_queue_tail_incr_save(struct softnet_data *sd,
#endif
}
@@ -79,7 +79,7 @@ index d3e4b3f195ff..63a0574e2ac2 100644
static inline bool dev_xmit_recursion(void)
{
return unlikely(__this_cpu_read(softnet_data.xmit.recursion) >
-@@ -3034,6 +3062,7 @@ static inline void dev_xmit_recursion_dec(void)
+@@ -3040,6 +3068,7 @@ static inline void dev_xmit_recursion_dec(void)
{
__this_cpu_dec(softnet_data.xmit.recursion);
}
@@ -87,7 +87,7 @@ index d3e4b3f195ff..63a0574e2ac2 100644
void __netif_schedule(struct Qdisc *q);
void netif_schedule_queue(struct netdev_queue *txq);
-@@ -3843,6 +3872,44 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
+@@ -3849,6 +3878,44 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
return (1U << debug_value) - 1;
}
@@ -132,7 +132,7 @@ index d3e4b3f195ff..63a0574e2ac2 100644
static inline void __netif_tx_lock(struct netdev_queue *txq, int cpu)
{
spin_lock(&txq->_xmit_lock);
-@@ -3895,7 +3962,7 @@ static inline void __netif_tx_unlock_bh(struct netdev_queue *txq)
+@@ -3901,7 +3968,7 @@ static inline void __netif_tx_unlock_bh(struct netdev_queue *txq)
static inline void txq_trans_update(struct netdev_queue *txq)
{
@@ -156,7 +156,7 @@ index 3bc6b3206e14..7aa299de5ebf 100644
int pagefault_disabled;
#ifdef CONFIG_MMU
diff --git a/net/core/dev.c b/net/core/dev.c
-index 7bce4581d6f0..32e8b237496c 100644
+index 97c74c2e500e..01f06514aed9 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3837,10 +3837,14 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev)
@@ -174,7 +174,7 @@ index 7bce4581d6f0..32e8b237496c 100644
if (dev_xmit_recursion())
goto recursion_alert;
-@@ -8598,7 +8602,7 @@ static void netdev_init_one_queue(struct net_device *dev,
+@@ -8600,7 +8604,7 @@ static void netdev_init_one_queue(struct net_device *dev,
/* Initialize queue lock */
spin_lock_init(&queue->_xmit_lock);
netdev_set_xmit_lockdep_class(&queue->_xmit_lock, dev->type);
diff --git a/debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch b/debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
index 4138baf8e..49def276f 100644
--- a/debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
+++ b/debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 20 Jan 2016 15:39:05 +0100
-Subject: [PATCH 199/353] net: provide a way to delegate processing a softirq
+Subject: [PATCH 199/354] net: provide a way to delegate processing a softirq
to ksoftirqd
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=641249df860e32f2d7f64f5960c7eaa359ba7228
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb1f8d10fb922529f1cb373bc3d13996917e6c52
If the NET_RX uses up all of his budget it moves the following NAPI
invocations into the `ksoftirqd`. On -RT it does not do so. Instead it
@@ -71,10 +71,10 @@ index 27a4bb2303d0..25bcf2f2714b 100644
* This function must run with irqs disabled!
*/
diff --git a/net/core/dev.c b/net/core/dev.c
-index 32e8b237496c..7a316f4ff13c 100644
+index 01f06514aed9..797f64ecc587 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6395,7 +6395,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
+@@ -6397,7 +6397,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
list_splice_tail(&repoll, &list);
list_splice(&list, &sd->poll_list);
if (!list_empty(&sd->poll_list))
diff --git a/debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch b/debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
index 31ef66632..0b3c23de7 100644
--- a/debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
+++ b/debian/patches-rt/0200-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 30 Mar 2016 13:36:29 +0200
-Subject: [PATCH 200/353] net: dev: always take qdisc's busylock in
+Subject: [PATCH 200/354] net: dev: always take qdisc's busylock in
__dev_xmit_skb()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=07a4adaebe9b2f45b7f9e2a42138e8ca69d2aaeb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=15bb3174f03ace026888081b3341bcc51443e15c
The root-lock is dropped before dev_hard_start_xmit() is invoked and after
setting the __QDISC___STATE_RUNNING bit. If this task is now pushed away
@@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 4 insertions(+)
diff --git a/net/core/dev.c b/net/core/dev.c
-index 7a316f4ff13c..face03c32651 100644
+index 797f64ecc587..2c563e0f6955 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3476,7 +3476,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q,
diff --git a/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch b/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch
index 1862aa862..e67d7cca6 100644
--- a/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch
+++ b/debian/patches-rt/0201-net-Qdisc-use-a-seqlock-instead-seqcount.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 14 Sep 2016 17:36:35 +0200
-Subject: [PATCH 201/353] net/Qdisc: use a seqlock instead seqcount
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fec8c24ca8eae0c68bbd7edda06be39082985029
+Subject: [PATCH 201/354] net/Qdisc: use a seqlock instead seqcount
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d0f4cbf706e9a623aec379a6fec835c29d3feac7
The seqcount disables preemption on -RT while it is held which can't
remove. Also we don't want the reader to spin for ages if the writer is
@@ -241,10 +241,10 @@ index e2fd8baec65f..8bab88738691 100644
struct gnet_stats_basic_cpu __percpu *cpu,
struct gnet_stats_basic_packed *b)
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
-index 41c67cfd264f..61dd555e6c35 100644
+index ab57c0ee9923..90d7c875eaf3 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
-@@ -1195,7 +1195,7 @@ static struct Qdisc *qdisc_create(struct net_device *dev,
+@@ -1201,7 +1201,7 @@ static struct Qdisc *qdisc_create(struct net_device *dev,
rcu_assign_pointer(sch->stab, stab);
}
if (tca[TCA_RATE]) {
diff --git a/debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch b/debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch
index ccec0ae2d..215a223b9 100644
--- a/debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch
+++ b/debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch
@@ -1,11 +1,11 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 31 Aug 2016 17:21:56 +0200
-Subject: [PATCH 202/353] net: add back the missing serialization in
+Subject: [PATCH 202/354] net: add back the missing serialization in
ip_send_unicast_reply()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=946961cab5d726a4f7915d9c76be44e043b4369b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bab40aee8dfd99ba465c12713ac1eea34b69d87d
Some time ago Sami Pietikäinen reported a crash on -RT in
ip_send_unicast_reply() which was later fixed by Nicholas Mc Guire
diff --git a/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch b/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch
index d55749788..09d3228fd 100644
--- a/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch
+++ b/debian/patches-rt/0203-net-add-a-lock-around-icmp_sk.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 31 Aug 2016 17:54:09 +0200
-Subject: [PATCH 203/353] net: add a lock around icmp_sk()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c532906af442e35a3dd02bf538c432102b50cc63
+Subject: [PATCH 203/354] net: add a lock around icmp_sk()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=280a1e2774882bd9b04b8989380d85046f5d3da6
It looks like the this_cpu_ptr() access in icmp_sk() is protected with
local_bh_disable(). To avoid missing serialization in -RT I am adding
diff --git a/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch b/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
index 43e8e3793..d787da14a 100644
--- a/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
+++ b/debian/patches-rt/0204-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt@goodmis.org>
Date: Tue, 6 Dec 2016 17:50:30 -0500
-Subject: [PATCH 204/353] net: Have __napi_schedule_irqoff() disable interrupts
+Subject: [PATCH 204/354] net: Have __napi_schedule_irqoff() disable interrupts
on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be0d623b9eb2bb8865429d5196103ee6dea04611
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5b01cd8898158a9ed0b54e85ca8642fe3fd17b27
A customer hit a crash where the napi sd->poll_list became corrupted.
The customer had the bnx2x driver, which does a
@@ -28,10 +28,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2 files changed, 14 insertions(+)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index 63a0574e2ac2..086cd650f555 100644
+index 1644390430a3..821337d81da2 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -425,7 +425,19 @@ typedef enum rx_handler_result rx_handler_result_t;
+@@ -432,7 +432,19 @@ typedef enum rx_handler_result rx_handler_result_t;
typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **pskb);
void __napi_schedule(struct napi_struct *n);
@@ -52,10 +52,10 @@ index 63a0574e2ac2..086cd650f555 100644
static inline bool napi_disable_pending(struct napi_struct *n)
{
diff --git a/net/core/dev.c b/net/core/dev.c
-index face03c32651..209d15808646 100644
+index 2c563e0f6955..cd270a6c0f46 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -5957,6 +5957,7 @@ bool napi_schedule_prep(struct napi_struct *n)
+@@ -5959,6 +5959,7 @@ bool napi_schedule_prep(struct napi_struct *n)
}
EXPORT_SYMBOL(napi_schedule_prep);
@@ -63,7 +63,7 @@ index face03c32651..209d15808646 100644
/**
* __napi_schedule_irqoff - schedule for receive
* @n: entry to schedule
-@@ -5975,6 +5976,7 @@ void __napi_schedule_irqoff(struct napi_struct *n)
+@@ -5977,6 +5978,7 @@ void __napi_schedule_irqoff(struct napi_struct *n)
__napi_schedule(n);
}
EXPORT_SYMBOL(__napi_schedule_irqoff);
diff --git a/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch b/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch
index 2a1aafa6b..1d1873aa3 100644
--- a/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch
+++ b/debian/patches-rt/0205-irqwork-push-most-work-into-softirq-context.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 23 Jun 2015 15:32:51 +0200
-Subject: [PATCH 205/353] irqwork: push most work into softirq context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c11f2c43e5bc12c20b6e8179f771e3b40a60d4d3
+Subject: [PATCH 205/354] irqwork: push most work into softirq context
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6b1607475d4cf0886055d4d8275d94053a4eb16
Initially we defered all irqwork into softirq because we didn't want the
latency spikes if perf or another user was busy and delayed the RT task.
diff --git a/debian/patches-rt/0206-printk-Make-rt-aware.patch b/debian/patches-rt/0206-printk-Make-rt-aware.patch
index 6ca2b29cb..4a69340e3 100644
--- a/debian/patches-rt/0206-printk-Make-rt-aware.patch
+++ b/debian/patches-rt/0206-printk-Make-rt-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 19 Sep 2012 14:50:37 +0200
-Subject: [PATCH 206/353] printk: Make rt aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ca530b3ca6f68800d3328ff5683b171fdc02c0d
+Subject: [PATCH 206/354] printk: Make rt aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=989c0b0f60d5d64106b7f95dfb5d5645c6c72f5b
Drop the lock before calling the console driver and do not disable
interrupts while printing to a serial console.
diff --git a/debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch b/debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
index 2eafd4c58..1d6c62dc8 100644
--- a/debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
+++ b/debian/patches-rt/0207-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 19 May 2016 17:45:27 +0200
-Subject: [PATCH 207/353] kernel/printk: Don't try to print from IRQ/NMI region
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=34eed687e22358b9b77ca0faa44c2d356c421b59
+Subject: [PATCH 207/354] kernel/printk: Don't try to print from IRQ/NMI region
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=26e8a12252345b8143e68679e2761db4ab19ad5c
On -RT we try to acquire sleeping locks which might lead to warnings
from lockdep or a warn_on() from spin_try_lock() (which is a rtmutex on
diff --git a/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch b/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch
index e117a9d89..8dce77125 100644
--- a/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch
+++ b/debian/patches-rt/0208-printk-Drop-the-logbuf_lock-more-often.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Mar 2013 19:01:05 +0100
-Subject: [PATCH 208/353] printk: Drop the logbuf_lock more often
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e5d3731456da72b3ea25aed4f5e169050d4be6ff
+Subject: [PATCH 208/354] printk: Drop the logbuf_lock more often
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8fe31fb97da77ab275535360d70b086303fd425d
The lock is hold with irgs off. The latency drops 500us+ on my arm bugs
with a "full" buffer after executing "dmesg" on the shell.
diff --git a/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch b/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch
index 616080edd..1a59ff8f6 100644
--- a/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch
+++ b/debian/patches-rt/0209-ARM-enable-irq-in-translation-section-permission-fau.patch
@@ -1,11 +1,11 @@
From: "Yadi.hu" <yadi.hu@windriver.com>
Date: Wed, 10 Dec 2014 10:32:09 +0800
-Subject: [PATCH 209/353] ARM: enable irq in translation/section permission
+Subject: [PATCH 209/354] ARM: enable irq in translation/section permission
fault handlers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=934c8796b262e3cdce988bb5780874a78e8d023e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea727030ccc8a82d7445e2bdced527796f9966f9
Probably happens on all ARM, with
CONFIG_PREEMPT_RT_FULL
diff --git a/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch b/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch
index fa0d2dee0..6cc82a89f 100644
--- a/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch
+++ b/debian/patches-rt/0210-genirq-update-irq_set_irqchip_state-documentation.patch
@@ -1,7 +1,7 @@
From: Josh Cartwright <joshc@ni.com>
Date: Thu, 11 Feb 2016 11:54:00 -0600
-Subject: [PATCH 210/353] genirq: update irq_set_irqchip_state documentation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=02c452a7c85dde40bbf980013c32089cd9009a7b
+Subject: [PATCH 210/354] genirq: update irq_set_irqchip_state documentation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f9d2bf702086e94b24cbd77e8d8319a789331cdd
On -rt kernels, the use of migrate_disable()/migrate_enable() is
sufficient to guarantee a task isn't moved to another CPU. Update the
diff --git a/debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch b/debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
index 5dd50c842..9de8e02b7 100644
--- a/debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
+++ b/debian/patches-rt/0211-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
@@ -1,8 +1,8 @@
From: Josh Cartwright <joshc@ni.com>
Date: Thu, 11 Feb 2016 11:54:01 -0600
-Subject: [PATCH 211/353] KVM: arm/arm64: downgrade preempt_disable()d region
+Subject: [PATCH 211/354] KVM: arm/arm64: downgrade preempt_disable()d region
to migrate_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dcfba66a472f5d394a35d873563feccbf1ebde61
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4de46cf26e5e5ad6ea2ccc1673516999ecf58c42
kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating
the vgic and timer states to prevent the calling task from migrating to
diff --git a/debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch b/debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch
index cb7c0e1ff..3b4f2fb38 100644
--- a/debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch
+++ b/debian/patches-rt/0212-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 25 Jul 2018 14:02:38 +0200
-Subject: [PATCH 212/353] arm64: fpsimd: use preemp_disable in addition to
+Subject: [PATCH 212/354] arm64: fpsimd: use preemp_disable in addition to
local_bh_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=beea622c8b43d003ebb7013eaaeb2c68e8a514e3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4af86cd79bc5096f07fc7bb8fcb3aef2c1538510
In v4.16-RT I noticed a number of warnings from task_fpsimd_load(). The
code disables BH and expects that it is not preemptible. On -RT the
diff --git a/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch b/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch
index 034c1b771..9980f7aa1 100644
--- a/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch
+++ b/debian/patches-rt/0213-kgdb-serial-Short-term-workaround.patch
@@ -1,7 +1,7 @@
From: Jason Wessel <jason.wessel@windriver.com>
Date: Thu, 28 Jul 2011 12:42:23 -0500
-Subject: [PATCH 213/353] kgdb/serial: Short term workaround
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1f05b193f51153e127f1d580cf9e2cac17c6a9e7
+Subject: [PATCH 213/354] kgdb/serial: Short term workaround
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1e51a694f26dd31ba81cff7eb578c548a15c1ae
On 07/27/2011 04:37 PM, Thomas Gleixner wrote:
> - KGDB (not yet disabled) is reportedly unusable on -rt right now due
@@ -24,7 +24,7 @@ Jason.
3 files changed, 7 insertions(+)
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
-index af7df5ca17a5..214818b7242d 100644
+index 766bdb1717d5..7ab066606b25 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -32,6 +32,7 @@
@@ -35,7 +35,7 @@ index af7df5ca17a5..214818b7242d 100644
#include <linux/uaccess.h>
#include <linux/pm_runtime.h>
#include <linux/ktime.h>
-@@ -3318,6 +3319,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
+@@ -3317,6 +3318,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
if (port->sysrq || oops_in_progress)
locked = 0;
diff --git a/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch b/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch
index 9cb414805..a2e61ef45 100644
--- a/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch
+++ b/debian/patches-rt/0214-sysfs-Add-sys-kernel-realtime-entry.patch
@@ -1,7 +1,7 @@
From: Clark Williams <williams@redhat.com>
Date: Sat, 30 Jul 2011 21:55:53 -0500
-Subject: [PATCH 214/353] sysfs: Add /sys/kernel/realtime entry
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=63cdf57144587bc178a94170e17c65477542af67
+Subject: [PATCH 214/354] sysfs: Add /sys/kernel/realtime entry
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c2360b6e369d7b39fd52d9d2fa1e9aa9df9f829d
Add a /sys/kernel entry to indicate that the kernel is a
realtime kernel.
diff --git a/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch b/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch
index 1a444d7b5..c750c92b7 100644
--- a/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch
+++ b/debian/patches-rt/0215-mm-rt-kmap_atomic-scheduling.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz@infradead.org>
Date: Thu, 28 Jul 2011 10:43:51 +0200
-Subject: [PATCH 215/353] mm, rt: kmap_atomic scheduling
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3be727a86e41a0f4aba7f5030c288587ce649e6
+Subject: [PATCH 215/354] mm, rt: kmap_atomic scheduling
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e13b8e11be58c0c5c8fc50de9e96805c321f88db
In fact, with migrate_disable() existing one could play games with
kmap_atomic. You could save/restore the kmap_atomic slots on context
diff --git a/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch b/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch
index e60ea7966..06aae49a1 100644
--- a/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch
+++ b/debian/patches-rt/0216-x86-highmem-Add-a-already-used-pte-check.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 11 Mar 2013 17:09:55 +0100
-Subject: [PATCH 216/353] x86/highmem: Add a "already used pte" check
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5900bcb024e34c92c262f0614b159d5d17abcc49
+Subject: [PATCH 216/354] x86/highmem: Add a "already used pte" check
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e457740efed6fff0678501ec114d5b31f5a4e9e4
This is a copy from kmap_atomic_prot().
diff --git a/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch b/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch
index ca88b9752..2272860bf 100644
--- a/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch
+++ b/debian/patches-rt/0217-arm-highmem-Flush-tlb-on-unmap.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 11 Mar 2013 21:37:27 +0100
-Subject: [PATCH 217/353] arm/highmem: Flush tlb on unmap
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa0deea1ec74cc60877cfc0ba29d1912148efec1
+Subject: [PATCH 217/354] arm/highmem: Flush tlb on unmap
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fa8f2bb04b200fb53602b533e095d0aa0cf5fe01
The tlb should be flushed on unmap and thus make the mapping entry
invalid. This is only done in the non-debug case which does not look
diff --git a/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch b/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch
index 67763f9da..0af86d7c8 100644
--- a/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch
+++ b/debian/patches-rt/0218-arm-Enable-highmem-for-rt.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 13 Feb 2013 11:03:11 +0100
-Subject: [PATCH 218/353] arm: Enable highmem for rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=97b385d587e0dd9f8d6413c6d2d0165685d55640
+Subject: [PATCH 218/354] arm: Enable highmem for rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2bd0467b8b04336d68eef05d01697c63805df8c4
fixup highmem for ARM.
diff --git a/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch b/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch
index dcc450382..d16735bdc 100644
--- a/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch
+++ b/debian/patches-rt/0219-scsi-fcoe-Make-RT-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 12 Nov 2011 14:00:48 +0100
-Subject: [PATCH 219/353] scsi/fcoe: Make RT aware.
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e7bb0107ed0c1ebc7b826f9a256cf992e73bda72
+Subject: [PATCH 219/354] scsi/fcoe: Make RT aware.
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c1cb9f2990ed6cea247ab6b0c7bfafdf32dacc07
Do not disable preemption while taking sleeping locks. All user look safe
for migrate_diable() only.
@@ -72,10 +72,10 @@ index c5c4805435f6..4316a451c67d 100644
}
diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c
-index 1e087a206f48..27624aac530f 100644
+index c49986eba47b..df686ef0fd82 100644
--- a/drivers/scsi/fcoe/fcoe_ctlr.c
+++ b/drivers/scsi/fcoe/fcoe_ctlr.c
-@@ -838,7 +838,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
+@@ -840,7 +840,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
INIT_LIST_HEAD(&del_list);
@@ -84,7 +84,7 @@ index 1e087a206f48..27624aac530f 100644
list_for_each_entry_safe(fcf, next, &fip->fcfs, list) {
deadline = fcf->time + fcf->fka_period + fcf->fka_period / 2;
-@@ -874,7 +874,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
+@@ -876,7 +876,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
sel_time = fcf->time;
}
}
diff --git a/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch b/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch
index d87440f95..c1fa98096 100644
--- a/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch
+++ b/debian/patches-rt/0220-x86-crypto-Reduce-preempt-disabled-regions.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 14 Nov 2011 18:19:27 +0100
-Subject: [PATCH 220/353] x86: crypto: Reduce preempt disabled regions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b7f408d9b616faf238404b1480331aac3022e672
+Subject: [PATCH 220/354] x86: crypto: Reduce preempt disabled regions
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=679110a6cd89bfb72ca601bad4cc399bcfa72fcc
Restrict the preempt disabled regions to the actual floating point
operations and enable preemption for the administrative actions.
diff --git a/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch b/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch
index 99fa53916..58b13efa5 100644
--- a/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch
+++ b/debian/patches-rt/0221-crypto-Reduce-preempt-disabled-regions-more-algos.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 21 Feb 2014 17:24:04 +0100
-Subject: [PATCH 221/353] crypto: Reduce preempt disabled regions, more algos
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=187af5ffa27f473e5ed6ac444fa6aed6487537ce
+Subject: [PATCH 221/354] crypto: Reduce preempt disabled regions, more algos
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0dc4bb0d8f3f27f483b63cc5b0f236d42c1477fd
Don Estabrook reported
| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100()
diff --git a/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch b/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch
index 368f34074..cf66afc04 100644
--- a/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch
+++ b/debian/patches-rt/0222-crypto-limit-more-FPU-enabled-sections.patch
@@ -1,10 +1,10 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 30 Nov 2017 13:40:10 +0100
-Subject: [PATCH 222/353] crypto: limit more FPU-enabled sections
+Subject: [PATCH 222/354] crypto: limit more FPU-enabled sections
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4a64bee262410671ecf46e1d41ed29e91fe1ecaf
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=39d1465173baadad8ba1467b1f4b4ba1d6437939
Those crypto drivers use SSE/AVX/… for their crypto work and in order to
do so in kernel they need to enable the "FPU" in kernel mode which
diff --git a/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch b/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch
index 4bd49b8ae..4ba4a8f6e 100644
--- a/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch
+++ b/debian/patches-rt/0223-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <efault@gmx.de>
Date: Wed, 11 Jul 2018 17:14:47 +0200
-Subject: [PATCH 223/353] crypto: scompress - serialize RT percpu scratch
+Subject: [PATCH 223/354] crypto: scompress - serialize RT percpu scratch
buffer access with a local lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cdf7ff5e219e39c4dc6a7183c2803106be5dcb02
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cb2a08d41c3456049f5bc307ab6b57cbe87fb27a
| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974
| in_atomic(): 1, irqs_disabled(): 0, pid: 1401, name: cryptomgr_test
diff --git a/debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch b/debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch
index ec84a2721..d0b929648 100644
--- a/debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch
+++ b/debian/patches-rt/0224-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 26 Jul 2018 18:52:00 +0200
-Subject: [PATCH 224/353] crypto: cryptd - add a lock instead
+Subject: [PATCH 224/354] crypto: cryptd - add a lock instead
preempt_disable/local_bh_disable
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c396da73e8a6a42ae9a68df15cbf94588c9798c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8e632c5cf2eb468ed6c74cd1e7992e3d51dfea47
cryptd has a per-CPU lock which protected with local_bh_disable() and
preempt_disable().
diff --git a/debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch b/debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
index f0a2c5993..3b54d1f5f 100644
--- a/debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
+++ b/debian/patches-rt/0225-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 225/353] panic: skip get_random_bytes for RT_FULL in
+Subject: [PATCH 225/354] panic: skip get_random_bytes for RT_FULL in
init_oops_id
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c487331a7bef1368299aed221809e4a8a0f051f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7dd5b80bbfca25a4215c5570ac68f7842ff3fc69
Disable on -RT. If this is invoked from irq-context we will have problems
to acquire the sleeping lock.
diff --git a/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch b/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch
index 5c98a7326..277a46f37 100644
--- a/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch
+++ b/debian/patches-rt/0226-x86-stackprotector-Avoid-random-pool-on-rt.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 16 Dec 2010 14:25:18 +0100
-Subject: [PATCH 226/353] x86: stackprotector: Avoid random pool on rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1e5f4efc051fbe311c2d390c24fbf766637629c8
+Subject: [PATCH 226/354] x86: stackprotector: Avoid random pool on rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a65bc36ee80ef38869b199444d4ad958caefa1de
CPU bringup calls into the random pool to initialize the stack
canary. During boot that works nicely even on RT as the might sleep
diff --git a/debian/patches-rt/0227-cpu-hotplug-Implement-CPU-pinning.patch b/debian/patches-rt/0227-cpu-hotplug-Implement-CPU-pinning.patch
index 9f9d237db..438483853 100644
--- a/debian/patches-rt/0227-cpu-hotplug-Implement-CPU-pinning.patch
+++ b/debian/patches-rt/0227-cpu-hotplug-Implement-CPU-pinning.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 19 Jul 2017 17:31:20 +0200
-Subject: [PATCH 227/353] cpu/hotplug: Implement CPU pinning
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=44cbff5086ce5b39e85daacd494f6d5324fad422
+Subject: [PATCH 227/354] cpu/hotplug: Implement CPU pinning
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3332bcb6539fd31588bc3c1c691a8e78b2a0083c
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
@@ -22,7 +22,7 @@ index b32eb75dd73b..19eb4838cf03 100644
int migrate_disable_atomic;
# endif
diff --git a/kernel/cpu.c b/kernel/cpu.c
-index f4c49bbc3fa3..56cb58fce84c 100644
+index b25993345ea6..97d5f24fa435 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -78,6 +78,11 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_state, cpuhp_state) = {
diff --git a/debian/patches-rt/0228-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch b/debian/patches-rt/0228-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch
index cf68e45b5..998306982 100644
--- a/debian/patches-rt/0228-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch
+++ b/debian/patches-rt/0228-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <efault@gmx.de>
Date: Sun, 19 Aug 2018 08:28:35 +0200
-Subject: [PATCH 228/353] sched: Allow pinned user tasks to be awakened to the
+Subject: [PATCH 228/354] sched: Allow pinned user tasks to be awakened to the
CPU they pinned
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=56987c491a72d184677be3667a26f9227563bba6
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=38cd7a53efab921d02e62d5abc9bbb30286b5e2b
Since commit 7af443ee16976 ("sched/core: Require cpu_active() in
select_task_rq(), for user tasks") select_fallback_rq() will BUG() if
diff --git a/debian/patches-rt/0229-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch b/debian/patches-rt/0229-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch
index 93a807011..cacc7825f 100644
--- a/debian/patches-rt/0229-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch
+++ b/debian/patches-rt/0229-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 4 Aug 2017 18:31:00 +0200
-Subject: [PATCH 229/353] hotplug: duct-tape RT-rwlock usage for non-RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7ae887b25fab969ed4ef6e13d9fe4180f7bcf1ca
+Subject: [PATCH 229/354] hotplug: duct-tape RT-rwlock usage for non-RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=821ee7012851443150f058ee24efe13f6bb4e00d
This type is only available on -RT. We need to craft something for
non-RT. Since the only migrate_disable() user is -RT only, there is no
@@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/kernel/cpu.c b/kernel/cpu.c
-index 56cb58fce84c..6ae5b18bf3a5 100644
+index 97d5f24fa435..605276e96143 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -78,7 +78,7 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_state, cpuhp_state) = {
diff --git a/debian/patches-rt/0230-net-Remove-preemption-disabling-in-netif_rx.patch b/debian/patches-rt/0230-net-Remove-preemption-disabling-in-netif_rx.patch
index b0b267424..7a336d16a 100644
--- a/debian/patches-rt/0230-net-Remove-preemption-disabling-in-netif_rx.patch
+++ b/debian/patches-rt/0230-net-Remove-preemption-disabling-in-netif_rx.patch
@@ -1,7 +1,7 @@
From: Priyanka Jain <Priyanka.Jain@freescale.com>
Date: Thu, 17 May 2012 09:35:11 +0530
-Subject: [PATCH 230/353] net: Remove preemption disabling in netif_rx()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e78188710318015f790503e2e67d09b0ee2edfcf
+Subject: [PATCH 230/354] net: Remove preemption disabling in netif_rx()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=66277e014d40db0577c37eaf1c7f27aa8e9e96fd
1)enqueue_to_backlog() (called from netif_rx) should be
bind to a particluar CPU. This can be achieved by
@@ -35,10 +35,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
-index 209d15808646..1fb0a5340e94 100644
+index cd270a6c0f46..579fd24318ba 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4498,7 +4498,7 @@ static int netif_rx_internal(struct sk_buff *skb)
+@@ -4500,7 +4500,7 @@ static int netif_rx_internal(struct sk_buff *skb)
struct rps_dev_flow voidflow, *rflow = &voidflow;
int cpu;
@@ -47,7 +47,7 @@ index 209d15808646..1fb0a5340e94 100644
rcu_read_lock();
cpu = get_rps_cpu(skb->dev, skb, &rflow);
-@@ -4508,14 +4508,14 @@ static int netif_rx_internal(struct sk_buff *skb)
+@@ -4510,14 +4510,14 @@ static int netif_rx_internal(struct sk_buff *skb)
ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail);
rcu_read_unlock();
diff --git a/debian/patches-rt/0231-net-Another-local_irq_disable-kmalloc-headache.patch b/debian/patches-rt/0231-net-Another-local_irq_disable-kmalloc-headache.patch
index 7b7ae5f83..59b58393b 100644
--- a/debian/patches-rt/0231-net-Another-local_irq_disable-kmalloc-headache.patch
+++ b/debian/patches-rt/0231-net-Another-local_irq_disable-kmalloc-headache.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 26 Sep 2012 16:21:08 +0200
-Subject: [PATCH 231/353] net: Another local_irq_disable/kmalloc headache
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3867697d62230796c70714c4e8d81e71625d80ae
+Subject: [PATCH 231/354] net: Another local_irq_disable/kmalloc headache
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fc469f3cfe9e53f50d01ca47215ef170b0c9d282
Replace it by a local lock. Though that's pretty inefficient :(
@@ -11,7 +11,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index b7314a6cf8c2..c7d1f0c81c97 100644
+index e03cd719b86b..3a0f92e2e7de 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -63,6 +63,7 @@
diff --git a/debian/patches-rt/0232-net-core-protect-users-of-napi_alloc_cache-against-r.patch b/debian/patches-rt/0232-net-core-protect-users-of-napi_alloc_cache-against-r.patch
index 91d964093..828a9c16e 100644
--- a/debian/patches-rt/0232-net-core-protect-users-of-napi_alloc_cache-against-r.patch
+++ b/debian/patches-rt/0232-net-core-protect-users-of-napi_alloc_cache-against-r.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 15 Jan 2016 16:33:34 +0100
-Subject: [PATCH 232/353] net/core: protect users of napi_alloc_cache against
+Subject: [PATCH 232/354] net/core: protect users of napi_alloc_cache against
reentrance
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dc5ea742864b9a2748639c80614d47e6e6484b34
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98dd65dc1537ab5f1b3e12381502c5febf673c5c
On -RT the code running in BH can not be moved to another CPU so CPU
local variable remain local. However the code can be preempted
@@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index c7d1f0c81c97..d3706fa458a5 100644
+index 3a0f92e2e7de..28161e1c33cc 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -332,6 +332,7 @@ struct napi_alloc_cache {
diff --git a/debian/patches-rt/0233-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch b/debian/patches-rt/0233-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
index 90b2c493f..1204c032d 100644
--- a/debian/patches-rt/0233-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
+++ b/debian/patches-rt/0233-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 28 Oct 2012 11:18:08 +0100
-Subject: [PATCH 233/353] net: netfilter: Serialize xt_write_recseq sections on
+Subject: [PATCH 233/354] net: netfilter: Serialize xt_write_recseq sections on
RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e76817dc5bdd2d6f035635f97eaf654f7a2a7a8c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=251bf58c5997c5f2cf7c27f941f89a74d8620722
The netfilter code relies only on the implicit semantics of
local_bh_disable() for serializing wt_write_recseq sections. RT breaks
@@ -55,7 +55,7 @@ index 0ade4d1e4dd9..3e21ce64ce54 100644
/*
diff --git a/net/netfilter/core.c b/net/netfilter/core.c
-index 722d1b057f61..5b8ebd8abcb0 100644
+index 0c6540780cb4..937363a528da 100644
--- a/net/netfilter/core.c
+++ b/net/netfilter/core.c
@@ -20,6 +20,7 @@
diff --git a/debian/patches-rt/0234-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch b/debian/patches-rt/0234-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
index 57ad16162..4ee5efeca 100644
--- a/debian/patches-rt/0234-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
+++ b/debian/patches-rt/0234-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
@@ -1,8 +1,8 @@
From: Yong Zhang <yong.zhang@windriver.com>
Date: Mon, 16 Apr 2012 15:01:56 +0800
-Subject: [PATCH 234/353] lockdep: selftest: Only do hardirq context test for
+Subject: [PATCH 234/354] lockdep: selftest: Only do hardirq context test for
raw spinlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d2e4c16601ca6e9890cac6bf92cc92dbe5fa6175
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=606b7870906064a803bbe45f27b139e89c4e9e80
On -rt there is no softirq context any more and rwlock is sleepable,
disable softirq context test and rwlock+irq test.
diff --git a/debian/patches-rt/0235-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch b/debian/patches-rt/0235-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
index c4e80691c..406dc808f 100644
--- a/debian/patches-rt/0235-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
+++ b/debian/patches-rt/0235-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
@@ -1,8 +1,8 @@
From: Josh Cartwright <josh.cartwright@ni.com>
Date: Wed, 28 Jan 2015 13:08:45 -0600
-Subject: [PATCH 235/353] lockdep: selftest: fix warnings due to missing
+Subject: [PATCH 235/354] lockdep: selftest: fix warnings due to missing
PREEMPT_RT conditionals
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2452260ecc7926026432821df728b508592d226b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=999d90ceb93214b5290f3422d123dfc6dff86c60
"lockdep: Selftest: Only do hardirq context test for raw spinlock"
disabled the execution of certain tests with PREEMPT_RT_FULL, but did
diff --git a/debian/patches-rt/0236-sched-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0236-sched-Add-support-for-lazy-preemption.patch
index 200adb4ca..bb989798a 100644
--- a/debian/patches-rt/0236-sched-Add-support-for-lazy-preemption.patch
+++ b/debian/patches-rt/0236-sched-Add-support-for-lazy-preemption.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 26 Oct 2012 18:50:54 +0100
-Subject: [PATCH 236/353] sched: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=091e3b619256c38a1ca8760bea7e44d40b465fef
+Subject: [PATCH 236/354] sched: Add support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ec120f921bf1ff7f3d689a805e139127117b89a1
It has become an obsession to mitigate the determinism vs. throughput
loss of RT. Looking at the mainline semantics of preemption points
@@ -69,7 +69,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 files changed, 228 insertions(+), 29 deletions(-)
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index ed8413e7140f..9c74a019bf57 100644
+index 302f491b05ec..29ecd13afdda 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -180,6 +180,20 @@ extern void preempt_count_sub(int val);
@@ -215,7 +215,7 @@ index 62dbecfe9132..57a3d99dc067 100644
#ifndef CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES
static inline int arch_within_stack_frames(const void * const stack,
diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
-index 1cc4d2da954c..72864a11cec0 100644
+index 963c19f03bef..61011ac41b41 100644
--- a/include/linux/trace_events.h
+++ b/include/linux/trace_events.h
@@ -64,6 +64,7 @@ struct trace_entry {
@@ -244,7 +244,7 @@ index 907d72b3ba95..306567f72a3e 100644
prompt "Preemption Model"
default PREEMPT_NONE
diff --git a/kernel/cpu.c b/kernel/cpu.c
-index 6ae5b18bf3a5..396394ebbc5b 100644
+index 605276e96143..9547c5bcbbc4 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -307,11 +307,13 @@ void pin_current_cpu(void)
@@ -419,7 +419,7 @@ index 41219ea235eb..e581ce1edc12 100644
}
EXPORT_SYMBOL(migrate_enable);
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index bd9a375c45f4..430248f46f72 100644
+index 3f6a613be8c3..b735b6088124 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4151,7 +4151,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr)
@@ -529,7 +529,7 @@ index 637c408fb2dc..87a05bb90124 100644
extern void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime);
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index b1c82b1dc3a6..d137601eed0e 100644
+index 61fdbe0ddeb1..3484c741261d 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -2153,6 +2153,7 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags,
@@ -550,7 +550,7 @@ index b1c82b1dc3a6..d137601eed0e 100644
(test_preempt_need_resched() ? TRACE_FLAG_PREEMPT_RESCHED : 0);
entry->migrate_disable = (tsk) ? __migrate_disabled(tsk) & 0xFF : 0;
-@@ -3364,15 +3366,17 @@ get_total_entries(struct trace_buffer *buf,
+@@ -3370,15 +3372,17 @@ get_total_entries(struct trace_buffer *buf,
static void print_lat_help_header(struct seq_file *m)
{
@@ -577,7 +577,7 @@ index b1c82b1dc3a6..d137601eed0e 100644
}
static void print_event_info(struct trace_buffer *buf, struct seq_file *m)
-@@ -3410,15 +3414,17 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file
+@@ -3416,15 +3420,17 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file
tgid ? tgid_space : space);
seq_printf(m, "# %s / _----=> need-resched\n",
tgid ? tgid_space : space);
@@ -601,7 +601,7 @@ index b1c82b1dc3a6..d137601eed0e 100644
}
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
-index 0923d1b18d1f..80a2d3f56c35 100644
+index f4d83b552a47..00fbf2cb505c 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -127,6 +127,7 @@ struct kretprobe_trace_entry_head {
diff --git a/debian/patches-rt/0237-ftrace-Fix-trace-header-alignment.patch b/debian/patches-rt/0237-ftrace-Fix-trace-header-alignment.patch
index 571294311..59891df57 100644
--- a/debian/patches-rt/0237-ftrace-Fix-trace-header-alignment.patch
+++ b/debian/patches-rt/0237-ftrace-Fix-trace-header-alignment.patch
@@ -1,7 +1,7 @@
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Sun, 16 Oct 2016 05:08:30 +0200
-Subject: [PATCH 237/353] ftrace: Fix trace header alignment
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ac1c2ec880d53a9353f6c53c68ce7879566a7766
+Subject: [PATCH 237/354] ftrace: Fix trace header alignment
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b7565d7df1f29be3963b8d037516a0f6435a3a5d
Line up helper arrows to the right column.
@@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index d137601eed0e..32a2a0e2c6ae 100644
+index 3484c741261d..3700c9f0bebb 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
-@@ -3366,17 +3366,17 @@ get_total_entries(struct trace_buffer *buf,
+@@ -3372,17 +3372,17 @@ get_total_entries(struct trace_buffer *buf,
static void print_lat_help_header(struct seq_file *m)
{
diff --git a/debian/patches-rt/0238-x86-Support-for-lazy-preemption.patch b/debian/patches-rt/0238-x86-Support-for-lazy-preemption.patch
index 53242df97..e1ce9cdfc 100644
--- a/debian/patches-rt/0238-x86-Support-for-lazy-preemption.patch
+++ b/debian/patches-rt/0238-x86-Support-for-lazy-preemption.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 1 Nov 2012 11:03:47 +0100
-Subject: [PATCH 238/353] x86: Support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=abc7166676f6a451a3f3db148ae0fbc4ffeefa38
+Subject: [PATCH 238/354] x86: Support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1abdacb2004c070b2ed0a0ae92bc6badf6b21e45
Implement the x86 pieces for lazy preempt.
@@ -17,10 +17,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
7 files changed, 79 insertions(+), 3 deletions(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index 6ee7220e7f47..7299aeaa7cbb 100644
+index d2702e568153..72e7521a577b 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
-@@ -180,6 +180,7 @@ config X86
+@@ -181,6 +181,7 @@ config X86
select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI
select HAVE_PERF_REGS
select HAVE_PERF_USER_STACK_DUMP
diff --git a/debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch b/debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch
index 393d663f7..e1e918fad 100644
--- a/debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch
+++ b/debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 18 Feb 2019 16:57:09 +0100
-Subject: [PATCH 239/353] x86: lazy-preempt: properly check against
+Subject: [PATCH 239/354] x86: lazy-preempt: properly check against
preempt-mask
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4995c1328ec0d736291b9781a7d4588dd71cd1c2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a9e9841f86f934018cafab8e7dd5304dd36031c
should_resched() should check against preempt_offset after unmasking the
need-resched-bit. Otherwise should_resched() won't work for
diff --git a/debian/patches-rt/0240-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch b/debian/patches-rt/0240-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch
index 8c7a64443..1011b294f 100644
--- a/debian/patches-rt/0240-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch
+++ b/debian/patches-rt/0240-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 26 Feb 2019 14:53:49 +0100
-Subject: [PATCH 240/353] x86: lazy-preempt: use proper return label on
+Subject: [PATCH 240/354] x86: lazy-preempt: use proper return label on
32bit-x86
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1c5ed7041c4abdb434de892ee97ec129a0401779
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a6bd3f321c942e96626ea294ef9c73f0e35f9cab
The lazy-preempt uses the wrong return label in case preemption isn't
possible. This results crash while returning to the kernel.
diff --git a/debian/patches-rt/0241-arm-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0241-arm-Add-support-for-lazy-preemption.patch
index 63098df1a..fa4a28c81 100644
--- a/debian/patches-rt/0241-arm-Add-support-for-lazy-preemption.patch
+++ b/debian/patches-rt/0241-arm-Add-support-for-lazy-preemption.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 31 Oct 2012 12:04:11 +0100
-Subject: [PATCH 241/353] arm: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8a6ce72961961bf578e8b1c1f6aafff622a9ee5
+Subject: [PATCH 241/354] arm: Add support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f212b3b028a34674be56ccaf16296edafb0d21fc
Implement the arm pieces for lazy preempt.
@@ -16,10 +16,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
6 files changed, 33 insertions(+), 8 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index d411fbbf13f0..11757b141c4a 100644
+index d105a362d1ac..6a467a56b628 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -91,6 +91,7 @@ config ARM
+@@ -92,6 +92,7 @@ config ARM
select HAVE_PERF_EVENTS
select HAVE_PERF_REGS
select HAVE_PERF_USER_STACK_DUMP
diff --git a/debian/patches-rt/0242-powerpc-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0242-powerpc-Add-support-for-lazy-preemption.patch
index b6e0a456b..99db59aab 100644
--- a/debian/patches-rt/0242-powerpc-Add-support-for-lazy-preemption.patch
+++ b/debian/patches-rt/0242-powerpc-Add-support-for-lazy-preemption.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 1 Nov 2012 10:14:11 +0100
-Subject: [PATCH 242/353] powerpc: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=11f2dca2c4c3c03a672652346d9b11e8543018e4
+Subject: [PATCH 242/354] powerpc: Add support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0261a63d9f224979b3642ab6913ebbde09a23a0
Implement the powerpc pieces for lazy preempt.
@@ -15,10 +15,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
5 files changed, 33 insertions(+), 11 deletions(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
-index f4517f4be192..4536d047cdff 100644
+index cd338d971df2..3d9a02fb5879 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
-@@ -217,6 +217,7 @@ config PPC
+@@ -218,6 +218,7 @@ config PPC
select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI && !HAVE_HARDLOCKUP_DETECTOR_ARCH
select HAVE_PERF_REGS
select HAVE_PERF_USER_STACK_DUMP
@@ -76,10 +76,10 @@ index 3c0002044bc9..ce316076bc52 100644
/* Bits in local_flags */
/* Don't move TLF_NAPPING without adjusting the code in entry_32.S */
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
-index 50400f213bbf..1bb82c5dc1d9 100644
+index c2288c73d56d..082d01ba2ecb 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
-@@ -156,6 +156,7 @@ int main(void)
+@@ -159,6 +159,7 @@ int main(void)
OFFSET(TI_FLAGS, thread_info, flags);
OFFSET(TI_LOCAL_FLAGS, thread_info, local_flags);
OFFSET(TI_PREEMPT, thread_info, preempt_count);
diff --git a/debian/patches-rt/0243-arch-arm64-Add-lazy-preempt-support.patch b/debian/patches-rt/0243-arch-arm64-Add-lazy-preempt-support.patch
index 2c185cf43..0aaaa519d 100644
--- a/debian/patches-rt/0243-arch-arm64-Add-lazy-preempt-support.patch
+++ b/debian/patches-rt/0243-arch-arm64-Add-lazy-preempt-support.patch
@@ -1,7 +1,7 @@
From: Anders Roxell <anders.roxell@linaro.org>
Date: Thu, 14 May 2015 17:52:17 +0200
-Subject: [PATCH 243/353] arch/arm64: Add lazy preempt support
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=309988716af0204cb8c7af13c25074fbef91dd00
+Subject: [PATCH 243/354] arch/arm64: Add lazy preempt support
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b94781e1c5cbccd2bfdf1e70d7aa3e71680a9737
arm64 is missing support for PREEMPT_RT. The main feature which is
lacking is support for lazy preemption. The arch-specific entry code,
diff --git a/debian/patches-rt/0244-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch b/debian/patches-rt/0244-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
index cc7cca86e..c100e73a7 100644
--- a/debian/patches-rt/0244-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
+++ b/debian/patches-rt/0244-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Sun, 16 Oct 2016 05:11:54 +0200
-Subject: [PATCH 244/353] connector/cn_proc: Protect send_msg() with a local
+Subject: [PATCH 244/354] connector/cn_proc: Protect send_msg() with a local
lock on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0cc39551b5bc2d4a4bd55315967a7cfba0dbf1de
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2b4d085a00e21140a39d5bb85bd860bfea856bc4
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931
|in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep
diff --git a/debian/patches-rt/0245-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch b/debian/patches-rt/0245-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
index bbbf51237..34a4c4b01 100644
--- a/debian/patches-rt/0245-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
+++ b/debian/patches-rt/0245-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Thu, 31 Mar 2016 04:08:28 +0200
-Subject: [PATCH 245/353] drivers/block/zram: Replace bit spinlocks with
+Subject: [PATCH 245/354] drivers/block/zram: Replace bit spinlocks with
rtmutex for -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=16a2a63efa558226cdeb70a9789d896d6d5aef14
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5b2237f0f7980ad75b97686fa2897f62eda03e6a
They're nondeterministic, and lead to ___might_sleep() splats in -rt.
OTOH, they're a lot less wasteful than an rtmutex per page.
diff --git a/debian/patches-rt/0246-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch b/debian/patches-rt/0246-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
index e672a47b7..1574cb6b1 100644
--- a/debian/patches-rt/0246-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
+++ b/debian/patches-rt/0246-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Thu, 20 Oct 2016 11:15:22 +0200
-Subject: [PATCH 246/353] drivers/zram: Don't disable preemption in
+Subject: [PATCH 246/354] drivers/zram: Don't disable preemption in
zcomp_stream_get/put()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eed0f6e6ca04788c5325b248305c08647e399e3d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=39be29a3de4e6a826198aaae82190db9446bb2cc
In v4.7, the driver switched to percpu compression streams, disabling
preemption via get/put_cpu_ptr(). Use a per-zcomp_strm lock here. We
diff --git a/debian/patches-rt/0247-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch b/debian/patches-rt/0247-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch
index 1709307da..72aecf48c 100644
--- a/debian/patches-rt/0247-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch
+++ b/debian/patches-rt/0247-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <efault@gmx.de>
Date: Wed, 23 Aug 2017 11:57:29 +0200
-Subject: [PATCH 247/353] drivers/zram: fix zcomp_stream_get()
+Subject: [PATCH 247/354] drivers/zram: fix zcomp_stream_get()
smp_processor_id() use in preemptible code
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f40751d885752803c938fea8dc199c9280337925
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0b3a858719098c213c588ce4df8ae8dfbbc4c2a7
Use get_local_ptr() instead this_cpu_ptr() to avoid a warning regarding
smp_processor_id() in preemptible code.
diff --git a/debian/patches-rt/0248-tpm_tis-fix-stall-after-iowrite-s.patch b/debian/patches-rt/0248-tpm_tis-fix-stall-after-iowrite-s.patch
index 1ba216990..6a1fcf399 100644
--- a/debian/patches-rt/0248-tpm_tis-fix-stall-after-iowrite-s.patch
+++ b/debian/patches-rt/0248-tpm_tis-fix-stall-after-iowrite-s.patch
@@ -1,7 +1,7 @@
From: Haris Okanovic <haris.okanovic@ni.com>
Date: Tue, 15 Aug 2017 15:13:08 -0500
-Subject: [PATCH 248/353] tpm_tis: fix stall after iowrite*()s
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7ca6b216bbcdb3daf45864e995aecf3d94de9a2
+Subject: [PATCH 248/354] tpm_tis: fix stall after iowrite*()s
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2b5c1d30e161cbb01f23d497de714131740ac292
ioread8() operations to TPM MMIO addresses can stall the cpu when
immediately following a sequence of iowrite*()'s to the same region.
diff --git a/debian/patches-rt/0249-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch b/debian/patches-rt/0249-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
index 458671102..f6b23d691 100644
--- a/debian/patches-rt/0249-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
+++ b/debian/patches-rt/0249-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
@@ -1,7 +1,7 @@
From: Julia Cartwright <julia@ni.com>
Date: Fri, 28 Sep 2018 21:03:51 +0000
-Subject: [PATCH 249/353] watchdog: prevent deferral of watchdogd wakeup on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa8246032a3d912469805835a62695523d0f5069
+Subject: [PATCH 249/354] watchdog: prevent deferral of watchdogd wakeup on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=46dca4c860cbbd117f6f8c609fb6e131c60aae24
When PREEMPT_RT_FULL is enabled, all hrtimer expiry functions are
deferred for execution into the context of ktimersoftd unless otherwise
diff --git a/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch b/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
index 88e644461..816ad71c1 100644
--- a/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
+++ b/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Sat, 27 Feb 2016 08:09:11 +0100
-Subject: [PATCH 250/353] drm,radeon,i915: Use preempt_disable/enable_rt()
+Subject: [PATCH 250/354] drm,radeon,i915: Use preempt_disable/enable_rt()
where recommended
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a78df9205d320b7f34f95c2576ba325f0fc7af9c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a86ea6081adf9f7422ae28bf0d9d4f70f39f0c36
DRM folks identified the spots, so use them.
diff --git a/debian/patches-rt/0251-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch b/debian/patches-rt/0251-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
index c273dd874..bc7ee19a5 100644
--- a/debian/patches-rt/0251-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
+++ b/debian/patches-rt/0251-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Sat, 27 Feb 2016 09:01:42 +0100
-Subject: [PATCH 251/353] drm,i915: Use local_lock/unlock_irq() in
+Subject: [PATCH 251/354] drm,i915: Use local_lock/unlock_irq() in
intel_pipe_update_start/end()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ac57ad46b6fc7b30de016fa07ff78274aaf46fc1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=14fe0cf1f27bba843b81b0d0263cd74d9fd769ce
[ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918
[ 8.014041] in_atomic(): 0, irqs_disabled(): 1, pid: 78, name: kworker/u4:4
diff --git a/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch b/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch
index b1f3aa473..dd1f3ce5b 100644
--- a/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch
+++ b/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 6 Dec 2018 09:52:20 +0100
-Subject: [PATCH 252/353] drm/i915: disable tracing on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=702718725e855afb60c278b30eda18eeb5a0351e
+Subject: [PATCH 252/354] drm/i915: disable tracing on -RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0eaacd7820bd23ea6f22175e2106f2923fb50b1f
Luca Abeni reported this:
| BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003
diff --git a/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch b/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch
index 9cab945e6..4c298ab62 100644
--- a/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch
+++ b/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 19 Dec 2018 10:47:02 +0100
-Subject: [PATCH 253/353] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with
+Subject: [PATCH 253/354] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with
NOTRACE
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=639fc3d63f892e6406abea876f17cd94f2ebcdc7
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ea56325e3e4962721ccb45d19bc814001e25fe0
The order of the header files is important. If this header file is
included after tracepoint.h was included then the NOTRACE here becomes a
diff --git a/debian/patches-rt/0254-cgroups-use-simple-wait-in-css_release.patch b/debian/patches-rt/0254-cgroups-use-simple-wait-in-css_release.patch
index 9cef137b8..fc7b9ac67 100644
--- a/debian/patches-rt/0254-cgroups-use-simple-wait-in-css_release.patch
+++ b/debian/patches-rt/0254-cgroups-use-simple-wait-in-css_release.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 13 Feb 2015 15:52:24 +0100
-Subject: [PATCH 254/353] cgroups: use simple wait in css_release()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e78c393381fac00d8163d30d56e9d4161880f64e
+Subject: [PATCH 254/354] cgroups: use simple wait in css_release()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eaaf08f8685909a9bcd18431f0ebb9afafaac17b
To avoid:
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
@@ -54,10 +54,10 @@ index 56442d3b651d..1d2275287f0e 100644
/*
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
-index a8185cdb8587..da19cf179b27 100644
+index 6322b56529e9..8df1b3cdfc42 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
-@@ -4787,10 +4787,10 @@ static void css_free_rwork_fn(struct work_struct *work)
+@@ -4801,10 +4801,10 @@ static void css_free_rwork_fn(struct work_struct *work)
}
}
@@ -70,7 +70,7 @@ index a8185cdb8587..da19cf179b27 100644
struct cgroup_subsys *ss = css->ss;
struct cgroup *cgrp = css->cgroup;
-@@ -4852,8 +4852,8 @@ static void css_release(struct percpu_ref *ref)
+@@ -4866,8 +4866,8 @@ static void css_release(struct percpu_ref *ref)
struct cgroup_subsys_state *css =
container_of(ref, struct cgroup_subsys_state, refcnt);
@@ -81,7 +81,7 @@ index a8185cdb8587..da19cf179b27 100644
}
static void init_and_link_css(struct cgroup_subsys_state *css,
-@@ -5573,6 +5573,7 @@ static int __init cgroup_wq_init(void)
+@@ -5587,6 +5587,7 @@ static int __init cgroup_wq_init(void)
*/
cgroup_destroy_wq = alloc_workqueue("cgroup_destroy", 0, 1);
BUG_ON(!cgroup_destroy_wq);
diff --git a/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
index a96f6d2a0..aea28cb96 100644
--- a/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
+++ b/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
@@ -1,7 +1,7 @@
From: Mike Galbraith <efault@gmx.de>
Date: Sun, 8 Jan 2017 09:32:25 +0100
-Subject: [PATCH 255/353] cpuset: Convert callback_lock to raw_spinlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cfb4edac99fdac0f650f2f27e04ba655fcae5475
+Subject: [PATCH 255/354] cpuset: Convert callback_lock to raw_spinlock_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=630ca59f289413c66eadebf07807ad4c36076590
The two commits below add up to a cpuset might_sleep() splat for RT:
diff --git a/debian/patches-rt/0256-apparmor-use-a-locallock-instead-preempt_disable.patch b/debian/patches-rt/0256-apparmor-use-a-locallock-instead-preempt_disable.patch
index 5b92f0674..1671e8068 100644
--- a/debian/patches-rt/0256-apparmor-use-a-locallock-instead-preempt_disable.patch
+++ b/debian/patches-rt/0256-apparmor-use-a-locallock-instead-preempt_disable.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 11 Oct 2017 17:43:49 +0200
-Subject: [PATCH 256/353] apparmor: use a locallock instead preempt_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=53cae7e6f1ece1546a58a538f6a685162e44350e
+Subject: [PATCH 256/354] apparmor: use a locallock instead preempt_disable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=826b05942ea2bb41956e147e1af9476f6a9b1ee6
get_buffers() disables preemption which acts as a lock for the per-CPU
variable. Since we can't disable preemption here on RT, a local_lock is
diff --git a/debian/patches-rt/0257-workqueue-Prevent-deadlock-stall-on-RT.patch b/debian/patches-rt/0257-workqueue-Prevent-deadlock-stall-on-RT.patch
index 6fb41c49a..ecade5cd6 100644
--- a/debian/patches-rt/0257-workqueue-Prevent-deadlock-stall-on-RT.patch
+++ b/debian/patches-rt/0257-workqueue-Prevent-deadlock-stall-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 27 Jun 2014 16:24:52 +0200
-Subject: [PATCH 257/353] workqueue: Prevent deadlock/stall on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a62b1ced9d802c6c953e854a71ef4c2bfabfb7e1
+Subject: [PATCH 257/354] workqueue: Prevent deadlock/stall on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=78b64dbd9f7ad3fb3e34cca02f8d504f1596ef7e
Austin reported a XFS deadlock/stall on RT where scheduled work gets
never exececuted and tasks are waiting for each other for ever.
@@ -67,7 +67,7 @@ index e581ce1edc12..fd1a7d1ff9f4 100644
* If we are going to sleep and we have plugged IO queued,
* make sure to submit it to avoid deadlocks.
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 7561ac884a3e..cb81c7767b17 100644
+index 21751b94b93a..c148b0b8bda9 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -126,6 +126,11 @@ enum {
@@ -114,7 +114,7 @@ index 7561ac884a3e..cb81c7767b17 100644
#ifdef CONFIG_DEBUG_OBJECTS_WORK
static struct debug_obj_descr work_debug_descr;
-@@ -837,10 +867,16 @@ static struct worker *first_idle_worker(struct worker_pool *pool)
+@@ -840,10 +870,16 @@ static struct worker *first_idle_worker(struct worker_pool *pool)
*/
static void wake_up_worker(struct worker_pool *pool)
{
@@ -132,7 +132,7 @@ index 7561ac884a3e..cb81c7767b17 100644
}
/**
-@@ -869,7 +905,7 @@ void wq_worker_running(struct task_struct *task)
+@@ -872,7 +908,7 @@ void wq_worker_running(struct task_struct *task)
*/
void wq_worker_sleeping(struct task_struct *task)
{
@@ -141,7 +141,7 @@ index 7561ac884a3e..cb81c7767b17 100644
struct worker_pool *pool;
/*
-@@ -886,26 +922,18 @@ void wq_worker_sleeping(struct task_struct *task)
+@@ -889,26 +925,18 @@ void wq_worker_sleeping(struct task_struct *task)
return;
worker->sleeping = 1;
@@ -171,7 +171,7 @@ index 7561ac884a3e..cb81c7767b17 100644
}
/**
-@@ -1678,7 +1706,9 @@ static void worker_enter_idle(struct worker *worker)
+@@ -1681,7 +1709,9 @@ static void worker_enter_idle(struct worker *worker)
worker->last_active = jiffies;
/* idle_list is LIFO */
@@ -181,7 +181,7 @@ index 7561ac884a3e..cb81c7767b17 100644
if (too_many_workers(pool) && !timer_pending(&pool->idle_timer))
mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT);
-@@ -1711,7 +1741,9 @@ static void worker_leave_idle(struct worker *worker)
+@@ -1714,7 +1744,9 @@ static void worker_leave_idle(struct worker *worker)
return;
worker_clr_flags(worker, WORKER_IDLE);
pool->nr_idle--;
@@ -191,7 +191,7 @@ index 7561ac884a3e..cb81c7767b17 100644
}
static struct worker *alloc_worker(int node)
-@@ -1876,7 +1908,9 @@ static void destroy_worker(struct worker *worker)
+@@ -1879,7 +1911,9 @@ static void destroy_worker(struct worker *worker)
pool->nr_workers--;
pool->nr_idle--;
diff --git a/debian/patches-rt/0258-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/debian/patches-rt/0258-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
index 773ec4c14..bd986ff3a 100644
--- a/debian/patches-rt/0258-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
+++ b/debian/patches-rt/0258-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:56 -0500
-Subject: [PATCH 258/353] signals: Allow rt tasks to cache one sigqueue struct
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c055281201f5bb1b85dcba7b89a0a1b047c98e0
+Subject: [PATCH 258/354] signals: Allow rt tasks to cache one sigqueue struct
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e7647e29fb06af1ac834bd062decf98ebd753761
To avoid allocation allow rt tasks to cache one sigqueue struct in
task struct.
@@ -41,7 +41,7 @@ index 0be5ce2375cb..6495fda18c2c 100644
/* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */
static inline int valid_signal(unsigned long sig)
diff --git a/kernel/exit.c b/kernel/exit.c
-index 02360ec3b122..51b36d58c872 100644
+index 0d1cca15e66f..cbe99ab0ac19 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -207,7 +207,7 @@ static void __exit_signal(struct task_struct *tsk)
diff --git a/debian/patches-rt/0259-Add-localversion-for-RT-release.patch b/debian/patches-rt/0259-Add-localversion-for-RT-release.patch
index b09cec7d2..e90b2e65a 100644
--- a/debian/patches-rt/0259-Add-localversion-for-RT-release.patch
+++ b/debian/patches-rt/0259-Add-localversion-for-RT-release.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 8 Jul 2011 20:25:16 +0200
-Subject: [PATCH 259/353] Add localversion for -RT release
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f71c0632cb0b366bd2a4edecf6dad65f3ebdedf9
+Subject: [PATCH 259/354] Add localversion for -RT release
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2abbbe313516165ed8e9db8dda916ee77c5fe717
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/debian/patches-rt/0260-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch b/debian/patches-rt/0260-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch
index 61320b922..9ed0de3ca 100644
--- a/debian/patches-rt/0260-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch
+++ b/debian/patches-rt/0260-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 26 Mar 2019 18:31:54 +0100
-Subject: [PATCH 260/353] powerpc/pseries/iommu: Use a locallock instead
+Subject: [PATCH 260/354] powerpc/pseries/iommu: Use a locallock instead
local_irq_save()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=13ea01525e38daab61ff0fa8ea1c8d1d263ab08a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=45d089d7b59373f276a0c170618fa8f18d1eca9d
The locallock protects the per-CPU variable tce_page. The function
attempts to allocate memory while tce_page is protected (by disabling
diff --git a/debian/patches-rt/0261-powerpc-reshuffle-TIF-bits.patch b/debian/patches-rt/0261-powerpc-reshuffle-TIF-bits.patch
index 6072a9b52..05081f8d4 100644
--- a/debian/patches-rt/0261-powerpc-reshuffle-TIF-bits.patch
+++ b/debian/patches-rt/0261-powerpc-reshuffle-TIF-bits.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 22 Mar 2019 17:15:58 +0100
-Subject: [PATCH 261/353] powerpc: reshuffle TIF bits
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57b4c00fd16824d19063a3e5d3f9e7cdd25edb1d
+Subject: [PATCH 261/354] powerpc: reshuffle TIF bits
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6d0fb40ac9c0ef280c5ebaaf6d05709c088e4504
Powerpc32/64 does not compile because TIF_SYSCALL_TRACE's bit is higher
than 15 and the assembly instructions don't expect that.
diff --git a/debian/patches-rt/0262-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0262-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch
index 02391a4da..aab37da60 100644
--- a/debian/patches-rt/0262-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch
+++ b/debian/patches-rt/0262-tty-sysrq-Convert-show_lock-to-raw_spinlock_t.patch
@@ -1,7 +1,7 @@
From: Julien Grall <julien.grall@arm.com>
Date: Wed, 13 Mar 2019 11:40:34 +0000
-Subject: [PATCH 262/353] tty/sysrq: Convert show_lock to raw_spinlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8cc84fa9dbfd5700804c0fe27200ffaf9b715a77
+Subject: [PATCH 262/354] tty/sysrq: Convert show_lock to raw_spinlock_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9f8bdb802a6c55deb5f4d5d19c3e4f573d221a0e
Systems which don't provide arch_trigger_cpumask_backtrace() will
invoke showacpu() from a smp_call_function() function which is invoked
diff --git a/debian/patches-rt/0263-drm-i915-Don-t-disable-interrupts-independently-of-t.patch b/debian/patches-rt/0263-drm-i915-Don-t-disable-interrupts-independently-of-t.patch
index 2af6325b9..1766dd0aa 100644
--- a/debian/patches-rt/0263-drm-i915-Don-t-disable-interrupts-independently-of-t.patch
+++ b/debian/patches-rt/0263-drm-i915-Don-t-disable-interrupts-independently-of-t.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 10 Apr 2019 11:01:37 +0200
-Subject: [PATCH 263/353] drm/i915: Don't disable interrupts independently of
+Subject: [PATCH 263/354] drm/i915: Don't disable interrupts independently of
the lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cdf7e141f6f0c4257c28cb10cd300d374ea421d7
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=26f2ceb748093524cf155c42530de064585c8d21
The locks (timeline->lock and rq->lock) need to be taken with disabled
interrupts. This is done in __retire_engine_request() by disabling the
diff --git a/debian/patches-rt/0264-sched-completion-Fix-a-lockup-in-wait_for_completion.patch b/debian/patches-rt/0264-sched-completion-Fix-a-lockup-in-wait_for_completion.patch
index bc1c27b81..58d52232f 100644
--- a/debian/patches-rt/0264-sched-completion-Fix-a-lockup-in-wait_for_completion.patch
+++ b/debian/patches-rt/0264-sched-completion-Fix-a-lockup-in-wait_for_completion.patch
@@ -1,8 +1,8 @@
From: Corey Minyard <cminyard@mvista.com>
Date: Thu, 9 May 2019 14:33:20 -0500
-Subject: [PATCH 264/353] sched/completion: Fix a lockup in
+Subject: [PATCH 264/354] sched/completion: Fix a lockup in
wait_for_completion()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=393e1673710468a59fe22a98375a2f184a8f0bdc
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40df6ffd0c4ce90d987a432656bd24e8c24b2c41
Consider following race:
diff --git a/debian/patches-rt/0265-kthread-add-a-global-worker-thread.patch b/debian/patches-rt/0265-kthread-add-a-global-worker-thread.patch
index 3a0f56950..b1403337b 100644
--- a/debian/patches-rt/0265-kthread-add-a-global-worker-thread.patch
+++ b/debian/patches-rt/0265-kthread-add-a-global-worker-thread.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 12 Feb 2019 15:09:38 +0100
-Subject: [PATCH 265/353] kthread: add a global worker thread.
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=94597b54548d7027857d3bf84a450098c8ca1953
+Subject: [PATCH 265/354] kthread: add a global worker thread.
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=df30ae90dd2374a42334e46231f7b6db84c07baa
[ Upstream commit 0532e87d9d44795221aa921ba7024bde689cc894 ]
@@ -28,7 +28,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
create mode 100644 include/linux/kthread-cgroup.h
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 12eb48980df7..b8c2c469ce7e 100644
+index 2e6c3f658894..2ba7391c4560 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -70,7 +70,7 @@
@@ -131,10 +131,10 @@ index e0498e46d642..31140f0a6c2c 100644
+
#endif /* _LINUX_KTHREAD_H */
diff --git a/init/main.c b/init/main.c
-index 703b627a6060..8555afc3f3e1 100644
+index 298257e2cd42..c90444ec2990 100644
--- a/init/main.c
+++ b/init/main.c
-@@ -1136,6 +1136,7 @@ static noinline void __init kernel_init_freeable(void)
+@@ -1126,6 +1126,7 @@ static noinline void __init kernel_init_freeable(void)
smp_prepare_cpus(setup_max_cpus);
workqueue_init();
diff --git a/debian/patches-rt/0266-arm-imx6-cpuidle-Use-raw_spinlock_t.patch b/debian/patches-rt/0266-arm-imx6-cpuidle-Use-raw_spinlock_t.patch
index 73c01a559..63ac55b62 100644
--- a/debian/patches-rt/0266-arm-imx6-cpuidle-Use-raw_spinlock_t.patch
+++ b/debian/patches-rt/0266-arm-imx6-cpuidle-Use-raw_spinlock_t.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 14 May 2019 17:07:44 +0200
-Subject: [PATCH 266/353] arm: imx6: cpuidle: Use raw_spinlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9aae4da52d8263b477fd6bd5eb93f84d4f233a4d
+Subject: [PATCH 266/354] arm: imx6: cpuidle: Use raw_spinlock_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c27c1c162dd5f7fd50f118bea89515944652f93f
[ Upstream commit 40d0332ec8312e9c090f0a5414d9c90e12b13611 ]
diff --git a/debian/patches-rt/0267-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch b/debian/patches-rt/0267-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch
index e1aecd800..ff7013400 100644
--- a/debian/patches-rt/0267-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch
+++ b/debian/patches-rt/0267-rcu-Don-t-allow-to-change-rcu_normal_after_boot-on-R.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 24 Jun 2019 18:29:13 +0200
-Subject: [PATCH 267/353] rcu: Don't allow to change rcu_normal_after_boot on
+Subject: [PATCH 267/354] rcu: Don't allow to change rcu_normal_after_boot on
RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=67bcea9091d3ff86f96550f5d264ce29bce86c49
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=65c42116ca4d41fd6e9f9aae46911caa0e424280
[ Upstream commit c6c058c10577815a2491ce661876cff00a4c3b15 ]
diff --git a/debian/patches-rt/0268-pci-switchtec-fix-stream_open.cocci-warnings.patch b/debian/patches-rt/0268-pci-switchtec-fix-stream_open.cocci-warnings.patch
index fd945f513..1522e9db2 100644
--- a/debian/patches-rt/0268-pci-switchtec-fix-stream_open.cocci-warnings.patch
+++ b/debian/patches-rt/0268-pci-switchtec-fix-stream_open.cocci-warnings.patch
@@ -1,7 +1,7 @@
From: kbuild test robot <lkp@intel.com>
Date: Sat, 13 Apr 2019 11:22:51 +0800
-Subject: [PATCH 268/353] pci/switchtec: fix stream_open.cocci warnings
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=824356358c4e0d421b1f6fd2f0ac4a0120fdb9b2
+Subject: [PATCH 268/354] pci/switchtec: fix stream_open.cocci warnings
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fdc3765d092d16144b362fefc6755e046813190c
[ Upstream commit 9462c69e29307adc95c289f50839d5d683973891 ]
diff --git a/debian/patches-rt/0269-sched-core-Drop-a-preempt_disable_rt-statement.patch b/debian/patches-rt/0269-sched-core-Drop-a-preempt_disable_rt-statement.patch
index 2b822b87f..e3a7d4471 100644
--- a/debian/patches-rt/0269-sched-core-Drop-a-preempt_disable_rt-statement.patch
+++ b/debian/patches-rt/0269-sched-core-Drop-a-preempt_disable_rt-statement.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 24 Jun 2019 19:33:16 +0200
-Subject: [PATCH 269/353] sched/core: Drop a preempt_disable_rt() statement
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b7a96c1b8fa82f1ef908b15c0fce7f6e977a848
+Subject: [PATCH 269/354] sched/core: Drop a preempt_disable_rt() statement
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d82baed9d4cf7eb11be5cb47d403acb450781e11
[ Upstream commit 761126efdcbe3fa3e99c9079fa0ad6eca2f251f2 ]
diff --git a/debian/patches-rt/0270-timers-Redo-the-notification-of-canceling-timers-on-.patch b/debian/patches-rt/0270-timers-Redo-the-notification-of-canceling-timers-on-.patch
index 69d6e3478..9b11c1128 100644
--- a/debian/patches-rt/0270-timers-Redo-the-notification-of-canceling-timers-on-.patch
+++ b/debian/patches-rt/0270-timers-Redo-the-notification-of-canceling-timers-on-.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 24 Jun 2019 19:39:06 +0200
-Subject: [PATCH 270/353] timers: Redo the notification of canceling timers on
+Subject: [PATCH 270/354] timers: Redo the notification of canceling timers on
-RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c8867b2f2275355c1aec09e3b07c2020fc6234fa
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f3beb62163e553487a4e1edb78d0409869cbde42
[ Upstream commit c71273154c2ad12e13333aada340ff30e826a11b ]
@@ -57,7 +57,7 @@ index 82d0f52414a6..f845093466be 100644
/*
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
-index 082147c07831..aee31b1f0cc3 100644
+index f8b4818e6e08..5112913e419f 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -22,7 +22,6 @@
@@ -148,7 +148,7 @@ index dec68f9dab7b..85c7f4a6b9c1 100644
}
EXPORT_SYMBOL_GPL(alarm_cancel);
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 1992f107599e..6e19604eaa00 100644
+index 8f315ad08cd1..fb28793cb87b 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -981,33 +981,16 @@ u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
@@ -317,10 +317,10 @@ index 2d29b269dc83..54632ed51c65 100644
* We need to handle case when timer was or is in the
* middle of firing. In other cases we already freed
diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
-index 36ee80652208..9f1d4c092f54 100644
+index eae555df7ea3..ba508c0924b9 100644
--- a/kernel/time/posix-timers.c
+++ b/kernel/time/posix-timers.c
-@@ -821,25 +821,20 @@ static void common_hrtimer_arm(struct k_itimer *timr, ktime_t expires,
+@@ -826,25 +826,20 @@ static void common_hrtimer_arm(struct k_itimer *timr, ktime_t expires,
hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
}
@@ -356,7 +356,7 @@ index 36ee80652208..9f1d4c092f54 100644
}
/* Set a POSIX.1b interval timer. */
-@@ -901,21 +896,21 @@ static int do_timer_settime(timer_t timer_id, int flags,
+@@ -906,21 +901,21 @@ static int do_timer_settime(timer_t timer_id, int flags,
if (!timr)
return -EINVAL;
@@ -382,7 +382,7 @@ index 36ee80652208..9f1d4c092f54 100644
return error;
}
-@@ -977,13 +972,21 @@ int common_timer_del(struct k_itimer *timer)
+@@ -982,13 +977,21 @@ int common_timer_del(struct k_itimer *timer)
return 0;
}
@@ -406,7 +406,7 @@ index 36ee80652208..9f1d4c092f54 100644
}
/* Delete a POSIX.1b interval timer. */
-@@ -997,15 +1000,8 @@ SYSCALL_DEFINE1(timer_delete, timer_t, timer_id)
+@@ -1002,15 +1005,8 @@ SYSCALL_DEFINE1(timer_delete, timer_t, timer_id)
if (!timer)
return -EINVAL;
@@ -423,7 +423,7 @@ index 36ee80652208..9f1d4c092f54 100644
spin_lock(&current->sighand->siglock);
list_del(&timer->list);
-@@ -1031,20 +1027,9 @@ static void itimer_delete(struct k_itimer *timer)
+@@ -1036,20 +1032,9 @@ static void itimer_delete(struct k_itimer *timer)
retry_delete:
spin_lock_irqsave(&timer->it_lock, flags);
diff --git a/debian/patches-rt/0271-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch b/debian/patches-rt/0271-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch
index 9c9191ec7..e6d02dd9b 100644
--- a/debian/patches-rt/0271-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch
+++ b/debian/patches-rt/0271-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 26 Jun 2019 17:44:13 +0200
-Subject: [PATCH 271/353] Revert "futex: Ensure lock/unlock symetry versus
+Subject: [PATCH 271/354] Revert "futex: Ensure lock/unlock symetry versus
pi_lock and hash bucket lock"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=30396c61217580d4225fdb2e20eaf9aecea54a9a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4015f4555d680fed5664a5a70ba7301c112dfec4
[ Upstream commit 6a773b70cf105b46298ed3b44e77c102ce31d9ec ]
@@ -16,7 +16,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 2 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
-index a5a263a3efbf..3449a716a378 100644
+index 3d2570e9c8c1..2cfeaa8e9379 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -962,9 +962,7 @@ static void exit_pi_state_list(struct task_struct *curr)
diff --git a/debian/patches-rt/0272-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch b/debian/patches-rt/0272-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch
index 442adae1e..479fdd107 100644
--- a/debian/patches-rt/0272-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch
+++ b/debian/patches-rt/0272-Revert-futex-Fix-bug-on-when-a-requeued-RT-task-time.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 26 Jun 2019 17:44:18 +0200
-Subject: [PATCH 272/353] Revert "futex: Fix bug on when a requeued RT task
+Subject: [PATCH 272/354] Revert "futex: Fix bug on when a requeued RT task
times out"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95059a1e8417cb772e741a05b1bbd6684bbc6d56
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=32dd9bc78f9b08338de79eed6301329c292e03f2
[ Upstream commit f1a170cb3289a48df26cae3c60d77608f7a988bb ]
diff --git a/debian/patches-rt/0273-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch b/debian/patches-rt/0273-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch
index 6a1bb0658..7d8b42c98 100644
--- a/debian/patches-rt/0273-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch
+++ b/debian/patches-rt/0273-Revert-rtmutex-Handle-the-various-new-futex-race-con.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 26 Jun 2019 17:44:21 +0200
-Subject: [PATCH 273/353] Revert "rtmutex: Handle the various new futex race
+Subject: [PATCH 273/354] Revert "rtmutex: Handle the various new futex race
conditions"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c1d1aee640dced483d8f2f6144bd691cfe3524e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a196113022056a21ebcd3eb961b51392505682ce
[ Upstream commit 9e0265c21af4d6388d47dcd5ce20f76ec3a2e468 ]
@@ -18,7 +18,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
3 files changed, 20 insertions(+), 93 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
-index 3449a716a378..bcd01b5a47df 100644
+index 2cfeaa8e9379..dd0d6a166a83 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2255,16 +2255,6 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
diff --git a/debian/patches-rt/0274-Revert-futex-workaround-migrate_disable-enable-in-di.patch b/debian/patches-rt/0274-Revert-futex-workaround-migrate_disable-enable-in-di.patch
index efd697df7..18736f90c 100644
--- a/debian/patches-rt/0274-Revert-futex-workaround-migrate_disable-enable-in-di.patch
+++ b/debian/patches-rt/0274-Revert-futex-workaround-migrate_disable-enable-in-di.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 26 Jun 2019 17:44:27 +0200
-Subject: [PATCH 274/353] Revert "futex: workaround migrate_disable/enable in
+Subject: [PATCH 274/354] Revert "futex: workaround migrate_disable/enable in
different context"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d2dcb7eaaa0efc8bfa45966437cd717ab6318c99
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=94d4be2c5195ea06136c948348e7152fc56bc4a3
[ Upstream commit a71221d81cc4873891ae44f3aa02df596079b786 ]
@@ -16,7 +16,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 19 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
-index bcd01b5a47df..9bcfdcffb2dd 100644
+index dd0d6a166a83..b0667c419509 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2998,14 +2998,6 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
diff --git a/debian/patches-rt/0275-futex-Make-the-futex_hash_bucket-lock-raw.patch b/debian/patches-rt/0275-futex-Make-the-futex_hash_bucket-lock-raw.patch
index db685f174..1dca75e7e 100644
--- a/debian/patches-rt/0275-futex-Make-the-futex_hash_bucket-lock-raw.patch
+++ b/debian/patches-rt/0275-futex-Make-the-futex_hash_bucket-lock-raw.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 26 Jun 2019 11:59:44 +0200
-Subject: [PATCH 275/353] futex: Make the futex_hash_bucket lock raw
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2a322e04cc1a2220cedbada7ba39667daef47ec7
+Subject: [PATCH 275/354] futex: Make the futex_hash_bucket lock raw
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e5b6ef0830dd3e7e9f413acc3bade0e8dbc97cc7
[ Upstream commit f646521aadedab78801c9befe193e2e8a0c99298 ]
@@ -22,7 +22,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 43 insertions(+), 43 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
-index 9bcfdcffb2dd..8a49dd71b233 100644
+index b0667c419509..f41a08629734 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -243,7 +243,7 @@ struct futex_q {
diff --git a/debian/patches-rt/0276-futex-Delay-deallocation-of-pi_state.patch b/debian/patches-rt/0276-futex-Delay-deallocation-of-pi_state.patch
index fbf1d4a06..538e4e3ff 100644
--- a/debian/patches-rt/0276-futex-Delay-deallocation-of-pi_state.patch
+++ b/debian/patches-rt/0276-futex-Delay-deallocation-of-pi_state.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 26 Jun 2019 13:35:36 +0200
-Subject: [PATCH 276/353] futex: Delay deallocation of pi_state
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9d2af42f0b95c0309539ea7ace7d8fe31300517b
+Subject: [PATCH 276/354] futex: Delay deallocation of pi_state
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=651f0822e72728ab29a264da74d83fe6d2a22c6f
[ Upstream commit d7c7cf8cb68b7df17e6e50be1f25f35d83e686c7 ]
@@ -17,7 +17,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 44 insertions(+), 11 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
-index 8a49dd71b233..2fc6bedb460e 100644
+index f41a08629734..5708382157c4 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -871,13 +871,13 @@ static void get_pi_state(struct futex_pi_state *pi_state)
diff --git a/debian/patches-rt/0277-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch b/debian/patches-rt/0277-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch
index bfc38b697..73f2bc096 100644
--- a/debian/patches-rt/0277-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch
+++ b/debian/patches-rt/0277-mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch
@@ -1,8 +1,8 @@
From: "Luis Claudio R. Goncalves" <lclaudio@uudg.org>
Date: Tue, 25 Jun 2019 11:28:04 -0300
-Subject: [PATCH 277/353] mm/zswap: Do not disable preemption in
+Subject: [PATCH 277/354] mm/zswap: Do not disable preemption in
zswap_frontswap_store()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=76b124c411d62a490954f663e6408c62b0b5ae0c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dff3515e460d7c4c9cd059bf814de36c6946de11
[ Upstream commit 4e4cf4be79635e67144632d9135286381acbc95a ]
diff --git a/debian/patches-rt/0278-revert-aio.patch b/debian/patches-rt/0278-revert-aio.patch
index f543db86b..495515509 100644
--- a/debian/patches-rt/0278-revert-aio.patch
+++ b/debian/patches-rt/0278-revert-aio.patch
@@ -1,7 +1,7 @@
From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
Date: Fri, 20 Sep 2019 17:50:53 -0400
-Subject: [PATCH 278/353] revert-aio
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6fe31f853eb820787f9cb92c68cf3cc1a3e9aa98
+Subject: [PATCH 278/354] revert-aio
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a0d09d14f7562d9de2c4c353e3cb0b81fbf4262d
revert: fs/aio: simple simple work
diff --git a/debian/patches-rt/0279-fs-aio-simple-simple-work.patch b/debian/patches-rt/0279-fs-aio-simple-simple-work.patch
index 3e169ddab..71013b344 100644
--- a/debian/patches-rt/0279-fs-aio-simple-simple-work.patch
+++ b/debian/patches-rt/0279-fs-aio-simple-simple-work.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 16 Feb 2015 18:49:10 +0100
-Subject: [PATCH 279/353] fs/aio: simple simple work
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3185b0aa6832a8d6f779ba17eb2caf236247c6fc
+Subject: [PATCH 279/354] fs/aio: simple simple work
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9e5660cfe47703d44bf51ffc9a29c9a4853f492a
[ Upstream commit 1a142116f6435ef070ecebb66d2d599507c10601 ]
diff --git a/debian/patches-rt/0280-revert-thermal.patch b/debian/patches-rt/0280-revert-thermal.patch
index 522a2eaf7..41394bc92 100644
--- a/debian/patches-rt/0280-revert-thermal.patch
+++ b/debian/patches-rt/0280-revert-thermal.patch
@@ -1,7 +1,7 @@
From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
Date: Fri, 20 Sep 2019 17:50:53 -0400
-Subject: [PATCH 280/353] revert-thermal
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=53bcb94a7e0108446c6a61b4006ccf32ed238929
+Subject: [PATCH 280/354] revert-thermal
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a0043083bcd86f75d1352329a5762072df127562
Revert: thermal: Defer thermal wakups to threads
diff --git a/debian/patches-rt/0281-thermal-Defer-thermal-wakups-to-threads.patch b/debian/patches-rt/0281-thermal-Defer-thermal-wakups-to-threads.patch
index 3757fa2d6..79ef71bb3 100644
--- a/debian/patches-rt/0281-thermal-Defer-thermal-wakups-to-threads.patch
+++ b/debian/patches-rt/0281-thermal-Defer-thermal-wakups-to-threads.patch
@@ -1,7 +1,7 @@
From: Daniel Wagner <wagi@monom.org>
Date: Tue, 17 Feb 2015 09:37:44 +0100
-Subject: [PATCH 281/353] thermal: Defer thermal wakups to threads
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f7fbdef70212226ebc92dad2324314a8622bc932
+Subject: [PATCH 281/354] thermal: Defer thermal wakups to threads
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6002dd0f95978c47d63b2bb6f4cbe0b45992f86
[ Upstream commit ad2408dc248fe58536eef5b2b5734d8f9d3a280b ]
diff --git a/debian/patches-rt/0282-revert-block.patch b/debian/patches-rt/0282-revert-block.patch
index 64822be0f..5920267bd 100644
--- a/debian/patches-rt/0282-revert-block.patch
+++ b/debian/patches-rt/0282-revert-block.patch
@@ -1,7 +1,7 @@
From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
Date: Fri, 20 Sep 2019 17:50:54 -0400
-Subject: [PATCH 282/353] revert-block
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f49ff6cc5e6ab3714c16d7862f65881092c8f64
+Subject: [PATCH 282/354] revert-block
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95122234de3af61b19ef45185fa478a95f1d09d2
Revert swork version of: block: blk-mq: move blk_queue_usage_counter_release() into process context
diff --git a/debian/patches-rt/0283-block-blk-mq-move-blk_queue_usage_counter_release-in.patch b/debian/patches-rt/0283-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
index fd1086f94..053124d02 100644
--- a/debian/patches-rt/0283-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
+++ b/debian/patches-rt/0283-block-blk-mq-move-blk_queue_usage_counter_release-in.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 13 Mar 2018 13:49:16 +0100
-Subject: [PATCH 283/353] block: blk-mq: move blk_queue_usage_counter_release()
+Subject: [PATCH 283/354] block: blk-mq: move blk_queue_usage_counter_release()
into process context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=468da645fc327d9551d6d834526fdd7d7da951b0
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bfe7ba6f78580409d44da6ece04b07c0a957b268
[ Upstream commit 61c928ecf4fe200bda9b49a0813b5ba0f43995b5 ]
diff --git a/debian/patches-rt/0284-workqueue-rework.patch b/debian/patches-rt/0284-workqueue-rework.patch
index 7acedd9ad..9d553557f 100644
--- a/debian/patches-rt/0284-workqueue-rework.patch
+++ b/debian/patches-rt/0284-workqueue-rework.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 29 May 2019 18:52:27 +0200
-Subject: [PATCH 284/353] workqueue: rework
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=11c0b968a11a4a0c4e9b0e4f4129c5d3dbf995ac
+Subject: [PATCH 284/354] workqueue: rework
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f331f53f8783ce6f1a36700c65f3760236ded195
[ Upstream commit d15a862f24df983458533aebd6fa207ecdd1095a ]
@@ -65,7 +65,7 @@ index aa40960ef4c0..732913d4966c 100644
/*
* Init percpu_ref in atomic mode so that it's faster to shutdown.
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index b8c2c469ce7e..12eb48980df7 100644
+index 2ba7391c4560..2e6c3f658894 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -70,7 +70,7 @@
@@ -293,10 +293,10 @@ index f426a0661aa0..21ae66cd41d3 100644
+
#endif /* _LINUX_SWAIT_H */
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
-index 60d673e15632..546aa73fba6a 100644
+index a7224fec99a7..7e77fe3900c2 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
-@@ -455,10 +455,6 @@ __alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active,
+@@ -456,10 +456,6 @@ __alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active,
extern void destroy_workqueue(struct workqueue_struct *wq);
@@ -308,10 +308,10 @@ index 60d673e15632..546aa73fba6a 100644
extern bool queue_work_on(int cpu, struct workqueue_struct *wq,
diff --git a/init/main.c b/init/main.c
-index 8555afc3f3e1..703b627a6060 100644
+index c90444ec2990..298257e2cd42 100644
--- a/init/main.c
+++ b/init/main.c
-@@ -1136,7 +1136,6 @@ static noinline void __init kernel_init_freeable(void)
+@@ -1126,7 +1126,6 @@ static noinline void __init kernel_init_freeable(void)
smp_prepare_cpus(setup_max_cpus);
workqueue_init();
@@ -364,7 +364,7 @@ index ab64a3c261bc..dded9ca916eb 100644
* If a worker went to sleep, notify and ask workqueue whether
* it wants to wake up a task to maintain concurrency.
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 6e19604eaa00..92ee6cf49c24 100644
+index fb28793cb87b..089c74ff0511 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -748,29 +748,6 @@ static void hrtimer_switch_to_hres(void)
@@ -406,7 +406,7 @@ index 6e19604eaa00..92ee6cf49c24 100644
#else
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index cb81c7767b17..c047a647146e 100644
+index c148b0b8bda9..8e012510425e 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -50,8 +50,6 @@
@@ -491,7 +491,7 @@ index cb81c7767b17..c047a647146e 100644
#ifdef CONFIG_DEBUG_OBJECTS_WORK
static struct debug_obj_descr work_debug_descr;
-@@ -863,20 +829,14 @@ static struct worker *first_idle_worker(struct worker_pool *pool)
+@@ -866,20 +832,14 @@ static struct worker *first_idle_worker(struct worker_pool *pool)
* Wake up the first idle worker of @pool.
*
* CONTEXT:
@@ -514,7 +514,7 @@ index cb81c7767b17..c047a647146e 100644
}
/**
-@@ -905,7 +865,7 @@ void wq_worker_running(struct task_struct *task)
+@@ -908,7 +868,7 @@ void wq_worker_running(struct task_struct *task)
*/
void wq_worker_sleeping(struct task_struct *task)
{
@@ -523,7 +523,7 @@ index cb81c7767b17..c047a647146e 100644
struct worker_pool *pool;
/*
-@@ -922,18 +882,26 @@ void wq_worker_sleeping(struct task_struct *task)
+@@ -925,18 +885,26 @@ void wq_worker_sleeping(struct task_struct *task)
return;
worker->sleeping = 1;
@@ -553,7 +553,7 @@ index cb81c7767b17..c047a647146e 100644
}
/**
-@@ -944,7 +912,7 @@ void wq_worker_sleeping(struct task_struct *task)
+@@ -947,7 +915,7 @@ void wq_worker_sleeping(struct task_struct *task)
* Set @flags in @worker->flags and adjust nr_running accordingly.
*
* CONTEXT:
@@ -562,7 +562,7 @@ index cb81c7767b17..c047a647146e 100644
*/
static inline void worker_set_flags(struct worker *worker, unsigned int flags)
{
-@@ -969,7 +937,7 @@ static inline void worker_set_flags(struct worker *worker, unsigned int flags)
+@@ -972,7 +940,7 @@ static inline void worker_set_flags(struct worker *worker, unsigned int flags)
* Clear @flags in @worker->flags and adjust nr_running accordingly.
*
* CONTEXT:
@@ -571,7 +571,7 @@ index cb81c7767b17..c047a647146e 100644
*/
static inline void worker_clr_flags(struct worker *worker, unsigned int flags)
{
-@@ -1017,7 +985,7 @@ static inline void worker_clr_flags(struct worker *worker, unsigned int flags)
+@@ -1020,7 +988,7 @@ static inline void worker_clr_flags(struct worker *worker, unsigned int flags)
* actually occurs, it should be easy to locate the culprit work function.
*
* CONTEXT:
@@ -580,7 +580,7 @@ index cb81c7767b17..c047a647146e 100644
*
* Return:
* Pointer to worker which is executing @work if found, %NULL
-@@ -1052,7 +1020,7 @@ static struct worker *find_worker_executing_work(struct worker_pool *pool,
+@@ -1055,7 +1023,7 @@ static struct worker *find_worker_executing_work(struct worker_pool *pool,
* nested inside outer list_for_each_entry_safe().
*
* CONTEXT:
@@ -589,7 +589,7 @@ index cb81c7767b17..c047a647146e 100644
*/
static void move_linked_works(struct work_struct *work, struct list_head *head,
struct work_struct **nextp)
-@@ -1130,11 +1098,9 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
+@@ -1133,11 +1101,9 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
* As both pwqs and pools are RCU protected, the
* following lock operations are safe.
*/
@@ -603,7 +603,7 @@ index cb81c7767b17..c047a647146e 100644
}
}
-@@ -1167,7 +1133,7 @@ static void pwq_activate_first_delayed(struct pool_workqueue *pwq)
+@@ -1170,7 +1136,7 @@ static void pwq_activate_first_delayed(struct pool_workqueue *pwq)
* decrement nr_in_flight of its pwq and handle workqueue flushing.
*
* CONTEXT:
@@ -612,7 +612,7 @@ index cb81c7767b17..c047a647146e 100644
*/
static void pwq_dec_nr_in_flight(struct pool_workqueue *pwq, int color)
{
-@@ -1238,7 +1204,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1241,7 +1207,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
struct worker_pool *pool;
struct pool_workqueue *pwq;
@@ -621,7 +621,7 @@ index cb81c7767b17..c047a647146e 100644
/* try to steal the timer if it exists */
if (is_dwork) {
-@@ -1266,7 +1232,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1269,7 +1235,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
if (!pool)
goto fail;
@@ -630,7 +630,7 @@ index cb81c7767b17..c047a647146e 100644
/*
* work->data is guaranteed to point to pwq only while the work
* item is queued on pwq->wq, and both updating work->data to point
-@@ -1295,17 +1261,17 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1298,17 +1264,17 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
/* work->data points to pwq iff queued, point to pool */
set_work_pool_and_keep_pending(work, pool->id);
@@ -652,7 +652,7 @@ index cb81c7767b17..c047a647146e 100644
return -EAGAIN;
}
-@@ -1320,7 +1286,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1323,7 +1289,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
* work_struct flags.
*
* CONTEXT:
@@ -661,7 +661,7 @@ index cb81c7767b17..c047a647146e 100644
*/
static void insert_work(struct pool_workqueue *pwq, struct work_struct *work,
struct list_head *head, unsigned int extra_flags)
-@@ -1407,13 +1373,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1410,13 +1376,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
* queued or lose PENDING. Grabbing PENDING and queueing should
* happen with IRQ disabled.
*/
@@ -675,7 +675,7 @@ index cb81c7767b17..c047a647146e 100644
/* if draining, only works from the same workqueue are allowed */
-@@ -1442,7 +1402,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1445,7 +1405,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
if (last_pool && last_pool != pwq->pool) {
struct worker *worker;
@@ -684,7 +684,7 @@ index cb81c7767b17..c047a647146e 100644
worker = find_worker_executing_work(last_pool, work);
-@@ -1450,11 +1410,11 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1453,11 +1413,11 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
pwq = worker->current_pwq;
} else {
/* meh... not running there, queue here */
@@ -699,7 +699,7 @@ index cb81c7767b17..c047a647146e 100644
}
/*
-@@ -1467,7 +1427,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1470,7 +1430,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
*/
if (unlikely(!pwq->refcnt)) {
if (wq->flags & WQ_UNBOUND) {
@@ -708,7 +708,7 @@ index cb81c7767b17..c047a647146e 100644
cpu_relax();
goto retry;
}
-@@ -1500,7 +1460,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1503,7 +1463,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
insert_work(pwq, work, worklist, work_flags);
out:
@@ -717,7 +717,7 @@ index cb81c7767b17..c047a647146e 100644
rcu_read_unlock();
}
-@@ -1521,14 +1481,14 @@ bool queue_work_on(int cpu, struct workqueue_struct *wq,
+@@ -1524,14 +1484,14 @@ bool queue_work_on(int cpu, struct workqueue_struct *wq,
bool ret = false;
unsigned long flags;
@@ -734,7 +734,7 @@ index cb81c7767b17..c047a647146e 100644
return ret;
}
EXPORT_SYMBOL(queue_work_on);
-@@ -1536,12 +1496,11 @@ EXPORT_SYMBOL(queue_work_on);
+@@ -1539,12 +1499,11 @@ EXPORT_SYMBOL(queue_work_on);
void delayed_work_timer_fn(struct timer_list *t)
{
struct delayed_work *dwork = from_timer(dwork, t, timer);
@@ -750,7 +750,7 @@ index cb81c7767b17..c047a647146e 100644
}
EXPORT_SYMBOL(delayed_work_timer_fn);
-@@ -1596,14 +1555,14 @@ bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
+@@ -1599,14 +1558,14 @@ bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
unsigned long flags;
/* read the comment in __queue_work() */
@@ -767,7 +767,7 @@ index cb81c7767b17..c047a647146e 100644
return ret;
}
EXPORT_SYMBOL(queue_delayed_work_on);
-@@ -1638,7 +1597,7 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq,
+@@ -1641,7 +1600,7 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq,
if (likely(ret >= 0)) {
__queue_delayed_work(cpu, wq, dwork, delay);
@@ -776,7 +776,7 @@ index cb81c7767b17..c047a647146e 100644
}
/* -ENOENT from try_to_grab_pending() becomes %true */
-@@ -1649,12 +1608,11 @@ EXPORT_SYMBOL_GPL(mod_delayed_work_on);
+@@ -1652,12 +1611,11 @@ EXPORT_SYMBOL_GPL(mod_delayed_work_on);
static void rcu_work_rcufn(struct rcu_head *rcu)
{
struct rcu_work *rwork = container_of(rcu, struct rcu_work, rcu);
@@ -791,7 +791,7 @@ index cb81c7767b17..c047a647146e 100644
}
/**
-@@ -1689,7 +1647,7 @@ EXPORT_SYMBOL(queue_rcu_work);
+@@ -1692,7 +1650,7 @@ EXPORT_SYMBOL(queue_rcu_work);
* necessary.
*
* LOCKING:
@@ -800,7 +800,7 @@ index cb81c7767b17..c047a647146e 100644
*/
static void worker_enter_idle(struct worker *worker)
{
-@@ -1706,9 +1664,7 @@ static void worker_enter_idle(struct worker *worker)
+@@ -1709,9 +1667,7 @@ static void worker_enter_idle(struct worker *worker)
worker->last_active = jiffies;
/* idle_list is LIFO */
@@ -810,7 +810,7 @@ index cb81c7767b17..c047a647146e 100644
if (too_many_workers(pool) && !timer_pending(&pool->idle_timer))
mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT);
-@@ -1731,7 +1687,7 @@ static void worker_enter_idle(struct worker *worker)
+@@ -1734,7 +1690,7 @@ static void worker_enter_idle(struct worker *worker)
* @worker is leaving idle state. Update stats.
*
* LOCKING:
@@ -819,7 +819,7 @@ index cb81c7767b17..c047a647146e 100644
*/
static void worker_leave_idle(struct worker *worker)
{
-@@ -1741,9 +1697,7 @@ static void worker_leave_idle(struct worker *worker)
+@@ -1744,9 +1700,7 @@ static void worker_leave_idle(struct worker *worker)
return;
worker_clr_flags(worker, WORKER_IDLE);
pool->nr_idle--;
@@ -829,7 +829,7 @@ index cb81c7767b17..c047a647146e 100644
}
static struct worker *alloc_worker(int node)
-@@ -1868,11 +1822,11 @@ static struct worker *create_worker(struct worker_pool *pool)
+@@ -1871,11 +1825,11 @@ static struct worker *create_worker(struct worker_pool *pool)
worker_attach_to_pool(worker, pool);
/* start the newly created worker */
@@ -843,7 +843,7 @@ index cb81c7767b17..c047a647146e 100644
return worker;
-@@ -1891,7 +1845,7 @@ static struct worker *create_worker(struct worker_pool *pool)
+@@ -1894,7 +1848,7 @@ static struct worker *create_worker(struct worker_pool *pool)
* be idle.
*
* CONTEXT:
@@ -852,7 +852,7 @@ index cb81c7767b17..c047a647146e 100644
*/
static void destroy_worker(struct worker *worker)
{
-@@ -1908,9 +1862,7 @@ static void destroy_worker(struct worker *worker)
+@@ -1911,9 +1865,7 @@ static void destroy_worker(struct worker *worker)
pool->nr_workers--;
pool->nr_idle--;
@@ -862,7 +862,7 @@ index cb81c7767b17..c047a647146e 100644
worker->flags |= WORKER_DIE;
wake_up_process(worker->task);
}
-@@ -1919,7 +1871,7 @@ static void idle_worker_timeout(struct timer_list *t)
+@@ -1922,7 +1874,7 @@ static void idle_worker_timeout(struct timer_list *t)
{
struct worker_pool *pool = from_timer(pool, t, idle_timer);
@@ -871,7 +871,7 @@ index cb81c7767b17..c047a647146e 100644
while (too_many_workers(pool)) {
struct worker *worker;
-@@ -1937,7 +1889,7 @@ static void idle_worker_timeout(struct timer_list *t)
+@@ -1940,7 +1892,7 @@ static void idle_worker_timeout(struct timer_list *t)
destroy_worker(worker);
}
@@ -880,7 +880,7 @@ index cb81c7767b17..c047a647146e 100644
}
static void send_mayday(struct work_struct *work)
-@@ -1968,8 +1920,8 @@ static void pool_mayday_timeout(struct timer_list *t)
+@@ -1971,8 +1923,8 @@ static void pool_mayday_timeout(struct timer_list *t)
struct worker_pool *pool = from_timer(pool, t, mayday_timer);
struct work_struct *work;
@@ -891,7 +891,7 @@ index cb81c7767b17..c047a647146e 100644
if (need_to_create_worker(pool)) {
/*
-@@ -1982,8 +1934,8 @@ static void pool_mayday_timeout(struct timer_list *t)
+@@ -1985,8 +1937,8 @@ static void pool_mayday_timeout(struct timer_list *t)
send_mayday(work);
}
@@ -902,7 +902,7 @@ index cb81c7767b17..c047a647146e 100644
mod_timer(&pool->mayday_timer, jiffies + MAYDAY_INTERVAL);
}
-@@ -2002,7 +1954,7 @@ static void pool_mayday_timeout(struct timer_list *t)
+@@ -2005,7 +1957,7 @@ static void pool_mayday_timeout(struct timer_list *t)
* may_start_working() %true.
*
* LOCKING:
@@ -911,7 +911,7 @@ index cb81c7767b17..c047a647146e 100644
* multiple times. Does GFP_KERNEL allocations. Called only from
* manager.
*/
-@@ -2011,7 +1963,7 @@ __releases(&pool->lock)
+@@ -2014,7 +1966,7 @@ __releases(&pool->lock)
__acquires(&pool->lock)
{
restart:
@@ -920,7 +920,7 @@ index cb81c7767b17..c047a647146e 100644
/* if we don't make progress in MAYDAY_INITIAL_TIMEOUT, call for help */
mod_timer(&pool->mayday_timer, jiffies + MAYDAY_INITIAL_TIMEOUT);
-@@ -2027,7 +1979,7 @@ __acquires(&pool->lock)
+@@ -2030,7 +1982,7 @@ __acquires(&pool->lock)
}
del_timer_sync(&pool->mayday_timer);
@@ -929,7 +929,7 @@ index cb81c7767b17..c047a647146e 100644
/*
* This is necessary even after a new worker was just successfully
* created as @pool->lock was dropped and the new worker might have
-@@ -2050,7 +2002,7 @@ __acquires(&pool->lock)
+@@ -2053,7 +2005,7 @@ __acquires(&pool->lock)
* and may_start_working() is true.
*
* CONTEXT:
@@ -938,7 +938,7 @@ index cb81c7767b17..c047a647146e 100644
* multiple times. Does GFP_KERNEL allocations.
*
* Return:
-@@ -2073,7 +2025,7 @@ static bool manage_workers(struct worker *worker)
+@@ -2076,7 +2028,7 @@ static bool manage_workers(struct worker *worker)
pool->manager = NULL;
pool->flags &= ~POOL_MANAGER_ACTIVE;
@@ -947,7 +947,7 @@ index cb81c7767b17..c047a647146e 100644
return true;
}
-@@ -2089,7 +2041,7 @@ static bool manage_workers(struct worker *worker)
+@@ -2092,7 +2044,7 @@ static bool manage_workers(struct worker *worker)
* call this function to process a work.
*
* CONTEXT:
@@ -956,7 +956,7 @@ index cb81c7767b17..c047a647146e 100644
*/
static void process_one_work(struct worker *worker, struct work_struct *work)
__releases(&pool->lock)
-@@ -2171,7 +2123,7 @@ __acquires(&pool->lock)
+@@ -2174,7 +2126,7 @@ __acquires(&pool->lock)
*/
set_work_pool_and_clear_pending(work, pool->id);
@@ -965,7 +965,7 @@ index cb81c7767b17..c047a647146e 100644
lock_map_acquire(&pwq->wq->lockdep_map);
lock_map_acquire(&lockdep_map);
-@@ -2226,7 +2178,7 @@ __acquires(&pool->lock)
+@@ -2229,7 +2181,7 @@ __acquires(&pool->lock)
*/
cond_resched();
@@ -974,7 +974,7 @@ index cb81c7767b17..c047a647146e 100644
/* clear cpu intensive status */
if (unlikely(cpu_intensive))
-@@ -2249,7 +2201,7 @@ __acquires(&pool->lock)
+@@ -2252,7 +2204,7 @@ __acquires(&pool->lock)
* fetches a work from the top and executes it.
*
* CONTEXT:
@@ -983,7 +983,7 @@ index cb81c7767b17..c047a647146e 100644
* multiple times.
*/
static void process_scheduled_works(struct worker *worker)
-@@ -2291,11 +2243,11 @@ static int worker_thread(void *__worker)
+@@ -2294,11 +2246,11 @@ static int worker_thread(void *__worker)
/* tell the scheduler that this is a workqueue worker */
set_pf_worker(true);
woke_up:
@@ -997,7 +997,7 @@ index cb81c7767b17..c047a647146e 100644
WARN_ON_ONCE(!list_empty(&worker->entry));
set_pf_worker(false);
-@@ -2361,7 +2313,7 @@ static int worker_thread(void *__worker)
+@@ -2364,7 +2316,7 @@ static int worker_thread(void *__worker)
*/
worker_enter_idle(worker);
__set_current_state(TASK_IDLE);
@@ -1006,7 +1006,7 @@ index cb81c7767b17..c047a647146e 100644
schedule();
goto woke_up;
}
-@@ -2415,7 +2367,7 @@ static int rescuer_thread(void *__rescuer)
+@@ -2418,7 +2370,7 @@ static int rescuer_thread(void *__rescuer)
should_stop = kthread_should_stop();
/* see whether any pwq is asking for help */
@@ -1015,7 +1015,7 @@ index cb81c7767b17..c047a647146e 100644
while (!list_empty(&wq->maydays)) {
struct pool_workqueue *pwq = list_first_entry(&wq->maydays,
-@@ -2427,11 +2379,11 @@ static int rescuer_thread(void *__rescuer)
+@@ -2430,11 +2382,11 @@ static int rescuer_thread(void *__rescuer)
__set_current_state(TASK_RUNNING);
list_del_init(&pwq->mayday_node);
@@ -1029,7 +1029,7 @@ index cb81c7767b17..c047a647146e 100644
/*
* Slurp in all works issued via this workqueue and
-@@ -2460,7 +2412,7 @@ static int rescuer_thread(void *__rescuer)
+@@ -2463,7 +2415,7 @@ static int rescuer_thread(void *__rescuer)
* incur MAYDAY_INTERVAL delay inbetween.
*/
if (need_to_create_worker(pool)) {
@@ -1038,7 +1038,7 @@ index cb81c7767b17..c047a647146e 100644
/*
* Queue iff we aren't racing destruction
* and somebody else hasn't queued it already.
-@@ -2469,7 +2421,7 @@ static int rescuer_thread(void *__rescuer)
+@@ -2472,7 +2424,7 @@ static int rescuer_thread(void *__rescuer)
get_pwq(pwq);
list_add_tail(&pwq->mayday_node, &wq->maydays);
}
@@ -1047,7 +1047,7 @@ index cb81c7767b17..c047a647146e 100644
}
}
-@@ -2487,14 +2439,14 @@ static int rescuer_thread(void *__rescuer)
+@@ -2490,14 +2442,14 @@ static int rescuer_thread(void *__rescuer)
if (need_more_worker(pool))
wake_up_worker(pool);
@@ -1065,7 +1065,7 @@ index cb81c7767b17..c047a647146e 100644
if (should_stop) {
__set_current_state(TASK_RUNNING);
-@@ -2574,7 +2526,7 @@ static void wq_barrier_func(struct work_struct *work)
+@@ -2577,7 +2529,7 @@ static void wq_barrier_func(struct work_struct *work)
* underneath us, so we can't reliably determine pwq from @target.
*
* CONTEXT:
@@ -1074,7 +1074,7 @@ index cb81c7767b17..c047a647146e 100644
*/
static void insert_wq_barrier(struct pool_workqueue *pwq,
struct wq_barrier *barr,
-@@ -2661,7 +2613,7 @@ static bool flush_workqueue_prep_pwqs(struct workqueue_struct *wq,
+@@ -2664,7 +2616,7 @@ static bool flush_workqueue_prep_pwqs(struct workqueue_struct *wq,
for_each_pwq(pwq, wq) {
struct worker_pool *pool = pwq->pool;
@@ -1083,7 +1083,7 @@ index cb81c7767b17..c047a647146e 100644
if (flush_color >= 0) {
WARN_ON_ONCE(pwq->flush_color != -1);
-@@ -2678,7 +2630,7 @@ static bool flush_workqueue_prep_pwqs(struct workqueue_struct *wq,
+@@ -2681,7 +2633,7 @@ static bool flush_workqueue_prep_pwqs(struct workqueue_struct *wq,
pwq->work_color = work_color;
}
@@ -1092,7 +1092,7 @@ index cb81c7767b17..c047a647146e 100644
}
if (flush_color >= 0 && atomic_dec_and_test(&wq->nr_pwqs_to_flush))
-@@ -2878,9 +2830,9 @@ void drain_workqueue(struct workqueue_struct *wq)
+@@ -2881,9 +2833,9 @@ void drain_workqueue(struct workqueue_struct *wq)
for_each_pwq(pwq, wq) {
bool drained;
@@ -1104,7 +1104,7 @@ index cb81c7767b17..c047a647146e 100644
if (drained)
continue;
-@@ -2916,7 +2868,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
+@@ -2919,7 +2871,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
return false;
}
@@ -1113,7 +1113,7 @@ index cb81c7767b17..c047a647146e 100644
/* see the comment in try_to_grab_pending() with the same code */
pwq = get_work_pwq(work);
if (pwq) {
-@@ -2932,7 +2884,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
+@@ -2935,7 +2887,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
check_flush_dependency(pwq->wq, work);
insert_wq_barrier(pwq, barr, work, worker);
@@ -1122,7 +1122,7 @@ index cb81c7767b17..c047a647146e 100644
/*
* Force a lock recursion deadlock when using flush_work() inside a
-@@ -2951,7 +2903,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
+@@ -2954,7 +2906,7 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
rcu_read_unlock();
return true;
already_gone:
@@ -1131,7 +1131,7 @@ index cb81c7767b17..c047a647146e 100644
rcu_read_unlock();
return false;
}
-@@ -3050,7 +3002,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
+@@ -3053,7 +3005,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
/* tell other tasks trying to grab @work to back off */
mark_work_canceling(work);
@@ -1140,7 +1140,7 @@ index cb81c7767b17..c047a647146e 100644
/*
* This allows canceling during early boot. We know that @work
-@@ -3111,10 +3063,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
+@@ -3114,10 +3066,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
*/
bool flush_delayed_work(struct delayed_work *dwork)
{
@@ -1153,7 +1153,7 @@ index cb81c7767b17..c047a647146e 100644
return flush_work(&dwork->work);
}
EXPORT_SYMBOL(flush_delayed_work);
-@@ -3152,7 +3104,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
+@@ -3155,7 +3107,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
return false;
set_work_pool_and_clear_pending(work, get_work_pool_id(work));
@@ -1162,7 +1162,7 @@ index cb81c7767b17..c047a647146e 100644
return ret;
}
-@@ -3262,7 +3214,7 @@ EXPORT_SYMBOL_GPL(execute_in_process_context);
+@@ -3265,7 +3217,7 @@ EXPORT_SYMBOL_GPL(execute_in_process_context);
*
* Undo alloc_workqueue_attrs().
*/
@@ -1171,7 +1171,7 @@ index cb81c7767b17..c047a647146e 100644
{
if (attrs) {
free_cpumask_var(attrs->cpumask);
-@@ -3272,21 +3224,20 @@ void free_workqueue_attrs(struct workqueue_attrs *attrs)
+@@ -3275,21 +3227,20 @@ void free_workqueue_attrs(struct workqueue_attrs *attrs)
/**
* alloc_workqueue_attrs - allocate a workqueue_attrs
@@ -1196,7 +1196,7 @@ index cb81c7767b17..c047a647146e 100644
goto fail;
cpumask_copy(attrs->cpumask, cpu_possible_mask);
-@@ -3343,7 +3294,7 @@ static bool wqattrs_equal(const struct workqueue_attrs *a,
+@@ -3346,7 +3297,7 @@ static bool wqattrs_equal(const struct workqueue_attrs *a,
*/
static int init_worker_pool(struct worker_pool *pool)
{
@@ -1205,7 +1205,7 @@ index cb81c7767b17..c047a647146e 100644
pool->id = -1;
pool->cpu = -1;
pool->node = NUMA_NO_NODE;
-@@ -3364,7 +3315,7 @@ static int init_worker_pool(struct worker_pool *pool)
+@@ -3367,7 +3318,7 @@ static int init_worker_pool(struct worker_pool *pool)
pool->refcnt = 1;
/* shouldn't fail above this point */
@@ -1214,7 +1214,7 @@ index cb81c7767b17..c047a647146e 100644
if (!pool->attrs)
return -ENOMEM;
return 0;
-@@ -3429,15 +3380,15 @@ static void put_unbound_pool(struct worker_pool *pool)
+@@ -3432,15 +3383,15 @@ static void put_unbound_pool(struct worker_pool *pool)
* @pool's workers from blocking on attach_mutex. We're the last
* manager and @pool gets freed with the flag set.
*/
@@ -1233,7 +1233,7 @@ index cb81c7767b17..c047a647146e 100644
mutex_lock(&wq_pool_attach_mutex);
if (!list_empty(&pool->workers))
-@@ -3597,7 +3548,7 @@ static void pwq_adjust_max_active(struct pool_workqueue *pwq)
+@@ -3600,7 +3551,7 @@ static void pwq_adjust_max_active(struct pool_workqueue *pwq)
return;
/* this function can be called during early boot w/ irq disabled */
@@ -1242,7 +1242,7 @@ index cb81c7767b17..c047a647146e 100644
/*
* During [un]freezing, the caller is responsible for ensuring that
-@@ -3627,7 +3578,7 @@ static void pwq_adjust_max_active(struct pool_workqueue *pwq)
+@@ -3630,7 +3581,7 @@ static void pwq_adjust_max_active(struct pool_workqueue *pwq)
pwq->max_active = 0;
}
@@ -1251,7 +1251,7 @@ index cb81c7767b17..c047a647146e 100644
}
/* initialize newly alloced @pwq which is associated with @wq and @pool */
-@@ -3800,8 +3751,8 @@ apply_wqattrs_prepare(struct workqueue_struct *wq,
+@@ -3803,8 +3754,8 @@ apply_wqattrs_prepare(struct workqueue_struct *wq,
ctx = kzalloc(struct_size(ctx, pwq_tbl, nr_node_ids), GFP_KERNEL);
@@ -1262,7 +1262,7 @@ index cb81c7767b17..c047a647146e 100644
if (!ctx || !new_attrs || !tmp_attrs)
goto out_free;
-@@ -3937,7 +3888,7 @@ static int apply_workqueue_attrs_locked(struct workqueue_struct *wq,
+@@ -3940,7 +3891,7 @@ static int apply_workqueue_attrs_locked(struct workqueue_struct *wq,
*
* Return: 0 on success and -errno on failure.
*/
@@ -1271,7 +1271,7 @@ index cb81c7767b17..c047a647146e 100644
const struct workqueue_attrs *attrs)
{
int ret;
-@@ -3948,7 +3899,6 @@ int apply_workqueue_attrs(struct workqueue_struct *wq,
+@@ -3951,7 +3902,6 @@ int apply_workqueue_attrs(struct workqueue_struct *wq,
return ret;
}
@@ -1279,7 +1279,7 @@ index cb81c7767b17..c047a647146e 100644
/**
* wq_update_unbound_numa - update NUMA affinity of a wq for CPU hot[un]plug
-@@ -4026,9 +3976,9 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,
+@@ -4029,9 +3979,9 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,
use_dfl_pwq:
mutex_lock(&wq->mutex);
@@ -1291,7 +1291,7 @@ index cb81c7767b17..c047a647146e 100644
old_pwq = numa_pwq_tbl_install(wq, node, wq->dfl_pwq);
out_unlock:
mutex_unlock(&wq->mutex);
-@@ -4147,7 +4097,7 @@ struct workqueue_struct *__alloc_workqueue_key(const char *fmt,
+@@ -4150,7 +4100,7 @@ struct workqueue_struct *__alloc_workqueue_key(const char *fmt,
return NULL;
if (flags & WQ_UNBOUND) {
@@ -1300,7 +1300,7 @@ index cb81c7767b17..c047a647146e 100644
if (!wq->unbound_attrs)
goto err_free_wq;
}
-@@ -4234,9 +4184,9 @@ void destroy_workqueue(struct workqueue_struct *wq)
+@@ -4237,9 +4187,9 @@ void destroy_workqueue(struct workqueue_struct *wq)
struct worker *rescuer = wq->rescuer;
/* this prevents new queueing */
@@ -1312,7 +1312,7 @@ index cb81c7767b17..c047a647146e 100644
/* rescuer will empty maydays list before exiting */
kthread_stop(rescuer->task);
-@@ -4431,10 +4381,10 @@ unsigned int work_busy(struct work_struct *work)
+@@ -4434,10 +4384,10 @@ unsigned int work_busy(struct work_struct *work)
rcu_read_lock();
pool = get_work_pool(work);
if (pool) {
@@ -1325,7 +1325,7 @@ index cb81c7767b17..c047a647146e 100644
}
rcu_read_unlock();
-@@ -4641,10 +4591,10 @@ void show_workqueue_state(void)
+@@ -4644,10 +4594,10 @@ void show_workqueue_state(void)
pr_info("workqueue %s: flags=0x%x\n", wq->name, wq->flags);
for_each_pwq(pwq, wq) {
@@ -1338,7 +1338,7 @@ index cb81c7767b17..c047a647146e 100644
/*
* We could be printing a lot from atomic context, e.g.
* sysrq-t -> show_workqueue_state(). Avoid triggering
-@@ -4658,7 +4608,7 @@ void show_workqueue_state(void)
+@@ -4661,7 +4611,7 @@ void show_workqueue_state(void)
struct worker *worker;
bool first = true;
@@ -1347,7 +1347,7 @@ index cb81c7767b17..c047a647146e 100644
if (pool->nr_workers == pool->nr_idle)
goto next_pool;
-@@ -4677,7 +4627,7 @@ void show_workqueue_state(void)
+@@ -4680,7 +4630,7 @@ void show_workqueue_state(void)
}
pr_cont("\n");
next_pool:
@@ -1356,7 +1356,7 @@ index cb81c7767b17..c047a647146e 100644
/*
* We could be printing a lot from atomic context, e.g.
* sysrq-t -> show_workqueue_state(). Avoid triggering
-@@ -4707,7 +4657,7 @@ void wq_worker_comm(char *buf, size_t size, struct task_struct *task)
+@@ -4710,7 +4660,7 @@ void wq_worker_comm(char *buf, size_t size, struct task_struct *task)
struct worker_pool *pool = worker->pool;
if (pool) {
@@ -1365,7 +1365,7 @@ index cb81c7767b17..c047a647146e 100644
/*
* ->desc tracks information (wq name or
* set_worker_desc()) for the latest execution. If
-@@ -4721,7 +4671,7 @@ void wq_worker_comm(char *buf, size_t size, struct task_struct *task)
+@@ -4724,7 +4674,7 @@ void wq_worker_comm(char *buf, size_t size, struct task_struct *task)
scnprintf(buf + off, size - off, "-%s",
worker->desc);
}
@@ -1374,7 +1374,7 @@ index cb81c7767b17..c047a647146e 100644
}
}
-@@ -4752,7 +4702,7 @@ static void unbind_workers(int cpu)
+@@ -4755,7 +4705,7 @@ static void unbind_workers(int cpu)
for_each_cpu_worker_pool(pool, cpu) {
mutex_lock(&wq_pool_attach_mutex);
@@ -1383,7 +1383,7 @@ index cb81c7767b17..c047a647146e 100644
/*
* We've blocked all attach/detach operations. Make all workers
-@@ -4766,7 +4716,7 @@ static void unbind_workers(int cpu)
+@@ -4769,7 +4719,7 @@ static void unbind_workers(int cpu)
pool->flags |= POOL_DISASSOCIATED;
@@ -1392,7 +1392,7 @@ index cb81c7767b17..c047a647146e 100644
mutex_unlock(&wq_pool_attach_mutex);
/*
-@@ -4792,9 +4742,9 @@ static void unbind_workers(int cpu)
+@@ -4795,9 +4745,9 @@ static void unbind_workers(int cpu)
* worker blocking could lead to lengthy stalls. Kick off
* unbound chain execution of currently pending work items.
*/
@@ -1404,7 +1404,7 @@ index cb81c7767b17..c047a647146e 100644
}
}
-@@ -4821,7 +4771,7 @@ static void rebind_workers(struct worker_pool *pool)
+@@ -4824,7 +4774,7 @@ static void rebind_workers(struct worker_pool *pool)
WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task,
pool->attrs->cpumask) < 0);
@@ -1413,7 +1413,7 @@ index cb81c7767b17..c047a647146e 100644
pool->flags &= ~POOL_DISASSOCIATED;
-@@ -4860,7 +4810,7 @@ static void rebind_workers(struct worker_pool *pool)
+@@ -4863,7 +4813,7 @@ static void rebind_workers(struct worker_pool *pool)
WRITE_ONCE(worker->flags, worker_flags);
}
@@ -1422,7 +1422,7 @@ index cb81c7767b17..c047a647146e 100644
}
/**
-@@ -5319,7 +5269,7 @@ static struct workqueue_attrs *wq_sysfs_prep_attrs(struct workqueue_struct *wq)
+@@ -5326,7 +5276,7 @@ static struct workqueue_attrs *wq_sysfs_prep_attrs(struct workqueue_struct *wq)
lockdep_assert_held(&wq_pool_mutex);
@@ -1431,7 +1431,7 @@ index cb81c7767b17..c047a647146e 100644
if (!attrs)
return NULL;
-@@ -5748,7 +5698,7 @@ static void __init wq_numa_init(void)
+@@ -5755,7 +5705,7 @@ static void __init wq_numa_init(void)
return;
}
@@ -1440,7 +1440,7 @@ index cb81c7767b17..c047a647146e 100644
BUG_ON(!wq_update_unbound_numa_attrs_buf);
/*
-@@ -5823,7 +5773,7 @@ int __init workqueue_init_early(void)
+@@ -5830,7 +5780,7 @@ int __init workqueue_init_early(void)
for (i = 0; i < NR_STD_WORKER_POOLS; i++) {
struct workqueue_attrs *attrs;
@@ -1449,7 +1449,7 @@ index cb81c7767b17..c047a647146e 100644
attrs->nice = std_nice[i];
unbound_std_wq_attrs[i] = attrs;
-@@ -5832,7 +5782,7 @@ int __init workqueue_init_early(void)
+@@ -5839,7 +5789,7 @@ int __init workqueue_init_early(void)
* guaranteed by max_active which is enforced by pwqs.
* Turn off NUMA so that dfl_pwq is used for all nodes.
*/
diff --git a/debian/patches-rt/0285-i2c-exynos5-Remove-IRQF_ONESHOT.patch b/debian/patches-rt/0285-i2c-exynos5-Remove-IRQF_ONESHOT.patch
index 656441dba..8105a0518 100644
--- a/debian/patches-rt/0285-i2c-exynos5-Remove-IRQF_ONESHOT.patch
+++ b/debian/patches-rt/0285-i2c-exynos5-Remove-IRQF_ONESHOT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 13 Aug 2019 12:30:12 +0200
-Subject: [PATCH 285/353] i2c: exynos5: Remove IRQF_ONESHOT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e4f0bc9902f8516a6a18918ebdea0cc946225762
+Subject: [PATCH 285/354] i2c: exynos5: Remove IRQF_ONESHOT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=92b3710a41893b9fec5d7e30b30167e052b6f858
[ Upstream commit 4b217df0ab3f7910c96e42091cc7d9f221d05f01 ]
diff --git a/debian/patches-rt/0286-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch b/debian/patches-rt/0286-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch
index 1b56bc7d6..d72e96acf 100644
--- a/debian/patches-rt/0286-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch
+++ b/debian/patches-rt/0286-i2c-hix5hd2-Remove-IRQF_ONESHOT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 13 Aug 2019 12:30:37 +0200
-Subject: [PATCH 286/353] i2c: hix5hd2: Remove IRQF_ONESHOT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cc1104b08361696b6b71dffd43e16583ce515fd5
+Subject: [PATCH 286/354] i2c: hix5hd2: Remove IRQF_ONESHOT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95604809c4c2d56015d7a04a775bc373be7bc1eb
[ Upstream commit e88b481f3f86f11e3243e0808a830e5ca5782a9d ]
diff --git a/debian/patches-rt/0287-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch b/debian/patches-rt/0287-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch
index 0f3777794..394f4a487 100644
--- a/debian/patches-rt/0287-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch
+++ b/debian/patches-rt/0287-sched-deadline-Ensure-inactive_timer-runs-in-hardirq.patch
@@ -1,8 +1,8 @@
From: Juri Lelli <juri.lelli@redhat.com>
Date: Wed, 31 Jul 2019 12:37:15 +0200
-Subject: [PATCH 287/353] sched/deadline: Ensure inactive_timer runs in hardirq
+Subject: [PATCH 287/354] sched/deadline: Ensure inactive_timer runs in hardirq
context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=33b8449cf20c75ee255c7b492f6ae53c013e3def
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=015cef02b3a90264f060ee3459f1b0593f459110
[ Upstream commit ba94e7aed7405c58251b1380e6e7d73aa8284b41 ]
diff --git a/debian/patches-rt/0288-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch b/debian/patches-rt/0288-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch
index 1632d9893..14f0f2c88 100644
--- a/debian/patches-rt/0288-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch
+++ b/debian/patches-rt/0288-thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch
@@ -1,8 +1,8 @@
From: Clark Williams <williams@redhat.com>
Date: Mon, 15 Jul 2019 15:25:00 -0500
-Subject: [PATCH 288/353] thermal/x86_pkg_temp: make pkg_temp_lock a raw
+Subject: [PATCH 288/354] thermal/x86_pkg_temp: make pkg_temp_lock a raw
spinlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d9572955bd495cac1572c1d3bbc28b80c3f0999
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7b439f8ddef4bbd86bd6c6a92f6fa578afccd1a1
[ Upstream commit 8b03bb3ea7861b70b506199a69b1c8f81fe2d4d0 ]
diff --git a/debian/patches-rt/0289-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch b/debian/patches-rt/0289-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch
index 79c39bf9c..756b6880a 100644
--- a/debian/patches-rt/0289-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch
+++ b/debian/patches-rt/0289-dma-buf-Use-seqlock_t-instread-disabling-preemption.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 14 Aug 2019 16:38:43 +0200
-Subject: [PATCH 289/353] dma-buf: Use seqlock_t instread disabling preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f06b5fe097018422f3d5981c51e0355b5dd6cfc4
+Subject: [PATCH 289/354] dma-buf: Use seqlock_t instread disabling preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b1c39223381cec7a342ce1f99ed7eeb049d4cd47
[ Upstream commit 240610aa31094f51f299f06eb8dae8d4cd8d4500 ]
diff --git a/debian/patches-rt/0290-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch b/debian/patches-rt/0290-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch
index 3bb0fbfc9..c8b1b5325 100644
--- a/debian/patches-rt/0290-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch
+++ b/debian/patches-rt/0290-KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 13 Aug 2019 14:29:41 +0200
-Subject: [PATCH 290/353] KVM: arm/arm64: Let the timer expire in hardirq
+Subject: [PATCH 290/354] KVM: arm/arm64: Let the timer expire in hardirq
context on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2b21d451eb954108eaafe77777e228684fe1a204
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=135c92672dc057f73fa6e86908082e6ae340554e
[ Upstream commit 719cc080c914045a6e35787bf4dc3ba91cfd3efb ]
diff --git a/debian/patches-rt/0291-x86-preempt-Check-preemption-level-before-looking-at.patch b/debian/patches-rt/0291-x86-preempt-Check-preemption-level-before-looking-at.patch
index 81ad5f5cc..824286a8a 100644
--- a/debian/patches-rt/0291-x86-preempt-Check-preemption-level-before-looking-at.patch
+++ b/debian/patches-rt/0291-x86-preempt-Check-preemption-level-before-looking-at.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 14 Aug 2019 17:08:58 +0200
-Subject: [PATCH 291/353] x86: preempt: Check preemption level before looking
+Subject: [PATCH 291/354] x86: preempt: Check preemption level before looking
at lazy-preempt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8cbc52c4edd1435f24f0aee500f2b44e6091b345
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=05b92de6612a8913b14e0f51a4a998fcfcf90d27
[ Upstream commit 19fc8557f2323c52b26561651ed4d51fc688a740 ]
diff --git a/debian/patches-rt/0292-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch b/debian/patches-rt/0292-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch
index c16df6892..36ca6b33f 100644
--- a/debian/patches-rt/0292-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch
+++ b/debian/patches-rt/0292-hrtimer-Use-READ_ONCE-to-access-timer-base-in-hrimer.patch
@@ -1,8 +1,8 @@
From: Julien Grall <julien.grall@arm.com>
Date: Wed, 21 Aug 2019 10:24:07 +0100
-Subject: [PATCH 292/353] hrtimer: Use READ_ONCE to access timer->base in
+Subject: [PATCH 292/354] hrtimer: Use READ_ONCE to access timer->base in
hrimer_grab_expiry_lock()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5817dd3ce58d48f4407ab82766339582745ff505
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=633223e872d06689128bafec90d4f2454a3218c9
[ Upstream commit 2c8fdbe7ef0ad06c1a326886c5954e117b5657d6 ]
@@ -24,7 +24,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 92ee6cf49c24..a868444c6154 100644
+index 089c74ff0511..648e41adf4ac 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -959,7 +959,7 @@ EXPORT_SYMBOL_GPL(hrtimer_forward);
diff --git a/debian/patches-rt/0293-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch b/debian/patches-rt/0293-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch
index 67a06e013..bc74b61ed 100644
--- a/debian/patches-rt/0293-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch
+++ b/debian/patches-rt/0293-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch
@@ -1,8 +1,8 @@
From: Julien Grall <julien.grall@arm.com>
Date: Wed, 21 Aug 2019 10:24:08 +0100
-Subject: [PATCH 293/353] hrtimer: Don't grab the expiry lock for non-soft
+Subject: [PATCH 293/354] hrtimer: Don't grab the expiry lock for non-soft
hrtimer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=092ae9a94d427cc8e7f9785d080600083352ff51
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9ee4f927ee17ee9abcc7af060180675b20086060
[ Upstream commit fd420354bea2f57c11f3de191dffdeea76531e76 ]
@@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index a868444c6154..303e8cb2b52b 100644
+index 648e41adf4ac..834295861161 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -961,7 +961,7 @@ void hrtimer_grab_expiry_lock(const struct hrtimer *timer)
diff --git a/debian/patches-rt/0294-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch b/debian/patches-rt/0294-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch
index d4e68cff4..4e84053e8 100644
--- a/debian/patches-rt/0294-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch
+++ b/debian/patches-rt/0294-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch
@@ -1,8 +1,8 @@
From: Julien Grall <julien.grall@arm.com>
Date: Wed, 21 Aug 2019 10:24:09 +0100
-Subject: [PATCH 294/353] hrtimer: Prevent using hrtimer_grab_expiry_lock() on
+Subject: [PATCH 294/354] hrtimer: Prevent using hrtimer_grab_expiry_lock() on
migration_base
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e6152518bccba12b3bbdd47b5d5c4cdd56541609
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e353598442a0afb191f9b7779c632aa906882d1e
[ Upstream commit cef1b87f98823af923a386f3f69149acb212d4a1 ]
@@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 303e8cb2b52b..5a053bef18e7 100644
+index 834295861161..d643a1a7c06b 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -961,7 +961,7 @@ void hrtimer_grab_expiry_lock(const struct hrtimer *timer)
diff --git a/debian/patches-rt/0295-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch b/debian/patches-rt/0295-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch
index 7dd4d0442..0501aefde 100644
--- a/debian/patches-rt/0295-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch
+++ b/debian/patches-rt/0295-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 4 Sep 2019 16:55:27 +0200
-Subject: [PATCH 295/353] hrtimer: Add a missing bracket and hide
+Subject: [PATCH 295/354] hrtimer: Add a missing bracket and hide
`migration_base' on !SMP
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4d0aa6302835846430bf1cde91bb94ec6ec8987
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b7a0249ca4a351df0c66ba1cc3e12830d3c89e7
[ Upstream commit 47b6de0b7f22c28b40275aeede3993d807668c3b ]
@@ -33,7 +33,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 5a053bef18e7..3a5e258c243a 100644
+index d643a1a7c06b..67b91ab1c7e2 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -150,6 +150,11 @@ static struct hrtimer_cpu_base migration_cpu_base = {
diff --git a/debian/patches-rt/0296-posix-timers-Unlock-expiry-lock-in-the-early-return.patch b/debian/patches-rt/0296-posix-timers-Unlock-expiry-lock-in-the-early-return.patch
index bd957b6ab..e4c974706 100644
--- a/debian/patches-rt/0296-posix-timers-Unlock-expiry-lock-in-the-early-return.patch
+++ b/debian/patches-rt/0296-posix-timers-Unlock-expiry-lock-in-the-early-return.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 16 Sep 2019 12:33:59 +0200
-Subject: [PATCH 296/353] posix-timers: Unlock expiry lock in the early return
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6786bf935fdb78423332e7a435b63a52809facde
+Subject: [PATCH 296/354] posix-timers: Unlock expiry lock in the early return
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=41718885273a82017896606e12cd8d23188cdb8d
[ Upstream commit 356a2781375ec58521a9bc3f500488745990c242 ]
diff --git a/debian/patches-rt/0297-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch b/debian/patches-rt/0297-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch
index ccd295d1a..0d230fa20 100644
--- a/debian/patches-rt/0297-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch
+++ b/debian/patches-rt/0297-sched-migrate_dis-enable-Use-sleeping_lock-to-annota.patch
@@ -1,11 +1,11 @@
From: Scott Wood <swood@redhat.com>
Date: Tue, 24 Sep 2019 14:36:41 +0200
-Subject: [PATCH 297/353] =?UTF-8?q?sched:=20migrate=5Fdis/enable:=20Use=20?=
+Subject: [PATCH 297/354] =?UTF-8?q?sched:=20migrate=5Fdis/enable:=20Use=20?=
=?UTF-8?q?sleeping=5Flock=E2=80=A6()=20to=20annotate=20sleeping=20points?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b49a31f9d5d7fdda03f5bcb45ad967ef89f9821d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1a7c6b6fc4b40b5f8abbf40f75ba741feb4d95a
[ Upstream commit 4230dd3824c3e1785504e6f757ce79a4b55651fa ]
@@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2 files changed, 5 insertions(+)
diff --git a/kernel/cpu.c b/kernel/cpu.c
-index 396394ebbc5b..4bf82665f28c 100644
+index 9547c5bcbbc4..e0b8387ac924 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -310,7 +310,9 @@ void pin_current_cpu(void)
diff --git a/debian/patches-rt/0298-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch b/debian/patches-rt/0298-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch
index f07e9bd54..74f6de3c6 100644
--- a/debian/patches-rt/0298-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch
+++ b/debian/patches-rt/0298-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch
@@ -1,8 +1,8 @@
From: Scott Wood <swood@redhat.com>
Date: Sat, 27 Jul 2019 00:56:32 -0500
-Subject: [PATCH 298/353] sched: __set_cpus_allowed_ptr: Check cpus_mask, not
+Subject: [PATCH 298/354] sched: __set_cpus_allowed_ptr: Check cpus_mask, not
cpus_ptr
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4e8e6aa43a48f6597b211cf6f6b1642c21051eaf
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b652417cdc333726e0b9c9e09fd6f3aa1d2f0c1
[ Upstream commit e5606fb7b042db634ed62b4dd733d62e050e468f ]
diff --git a/debian/patches-rt/0299-sched-Remove-dead-__migrate_disabled-check.patch b/debian/patches-rt/0299-sched-Remove-dead-__migrate_disabled-check.patch
index 131c65868..582212b03 100644
--- a/debian/patches-rt/0299-sched-Remove-dead-__migrate_disabled-check.patch
+++ b/debian/patches-rt/0299-sched-Remove-dead-__migrate_disabled-check.patch
@@ -1,7 +1,7 @@
From: Scott Wood <swood@redhat.com>
Date: Sat, 27 Jul 2019 00:56:33 -0500
-Subject: [PATCH 299/353] sched: Remove dead __migrate_disabled() check
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2beb0e09e6c79687ac5e46b7ab9466ad18b542f6
+Subject: [PATCH 299/354] sched: Remove dead __migrate_disabled() check
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5cde8b3ae4d59d8eebe0d476017d50fa1cdf6a28
[ Upstream commit 14d9272d534ea91262e15db99443fc5995c7c016 ]
diff --git a/debian/patches-rt/0300-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch b/debian/patches-rt/0300-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch
index a77c8fa71..f4318df05 100644
--- a/debian/patches-rt/0300-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch
+++ b/debian/patches-rt/0300-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch
@@ -1,7 +1,7 @@
From: Scott Wood <swood@redhat.com>
Date: Sat, 27 Jul 2019 00:56:34 -0500
-Subject: [PATCH 300/353] sched: migrate disable: Protect cpus_ptr with lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4eaf7716d710661a89298b3997982fcd46bd3736
+Subject: [PATCH 300/354] sched: migrate disable: Protect cpus_ptr with lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f3b8b37e45500cb5acedde9918c9596258397ab6
[ Upstream commit 27ee52a891ed2c7e2e2c8332ccae0de7c2674b09 ]
diff --git a/debian/patches-rt/0301-lib-smp_processor_id-Don-t-use-cpumask_equal.patch b/debian/patches-rt/0301-lib-smp_processor_id-Don-t-use-cpumask_equal.patch
index 241ea05fa..8e6114231 100644
--- a/debian/patches-rt/0301-lib-smp_processor_id-Don-t-use-cpumask_equal.patch
+++ b/debian/patches-rt/0301-lib-smp_processor_id-Don-t-use-cpumask_equal.patch
@@ -1,7 +1,7 @@
From: Waiman Long <longman@redhat.com>
Date: Thu, 3 Oct 2019 16:36:08 -0400
-Subject: [PATCH 301/353] lib/smp_processor_id: Don't use cpumask_equal()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=79718592757dc1a6c28913770376a3027354b206
+Subject: [PATCH 301/354] lib/smp_processor_id: Don't use cpumask_equal()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aea3f526050f40b5e4d2b67a02cea91c6c23782a
[ Upstream commit 659252061477862f45b79e1de169e6030f5c8918 ]
diff --git a/debian/patches-rt/0302-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch b/debian/patches-rt/0302-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch
index 69e64ecf0..832793727 100644
--- a/debian/patches-rt/0302-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch
+++ b/debian/patches-rt/0302-futex-Make-the-futex_hash_bucket-spinlock_t-again-an.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 7 Oct 2019 16:45:18 +0200
-Subject: [PATCH 302/353] futex: Make the futex_hash_bucket spinlock_t again
+Subject: [PATCH 302/354] futex: Make the futex_hash_bucket spinlock_t again
and bring back its old state
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b3bea588f7b01159f2b0bcab282f896c81489d9
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8ea570f419f2a5741da44d1b3212b300e9a6061d
[ Upstream commit 954ad80c23edfe71f4e8ce70b961eac884320c3a ]
@@ -25,7 +25,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
3 files changed, 193 insertions(+), 103 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
-index 2fc6bedb460e..81090f7a3ed9 100644
+index 5708382157c4..22bfcf109e31 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -243,7 +243,7 @@ struct futex_q {
diff --git a/debian/patches-rt/0303-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch b/debian/patches-rt/0303-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch
index ec76caba1..34c4fc44f 100644
--- a/debian/patches-rt/0303-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch
+++ b/debian/patches-rt/0303-locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 30 Sep 2019 18:15:44 +0200
-Subject: [PATCH 303/353] locking/rtmutex: Clean ->pi_blocked_on in the error
+Subject: [PATCH 303/354] locking/rtmutex: Clean ->pi_blocked_on in the error
case
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a109377bbb679cbd71529e00c9ae728d776b8485
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=35dc50badae9c42b195097bfb4f713f3ecf7f258
[ Upstream commit 0be4ea6e3ce693101be0fbd55a0cc7ce238ab2eb ]
diff --git a/debian/patches-rt/0304-lib-ubsan-Don-t-seralize-UBSAN-report.patch b/debian/patches-rt/0304-lib-ubsan-Don-t-seralize-UBSAN-report.patch
index 9db2c1f50..4172a2ff2 100644
--- a/debian/patches-rt/0304-lib-ubsan-Don-t-seralize-UBSAN-report.patch
+++ b/debian/patches-rt/0304-lib-ubsan-Don-t-seralize-UBSAN-report.patch
@@ -1,7 +1,7 @@
From: Julien Grall <julien.grall@arm.com>
Date: Fri, 20 Sep 2019 11:08:35 +0100
-Subject: [PATCH 304/353] lib/ubsan: Don't seralize UBSAN report
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ed4fc163a128fd089195be065a07314330b013a
+Subject: [PATCH 304/354] lib/ubsan: Don't seralize UBSAN report
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a6c566d780fd68e447ebd1b8f8e435778bf971b
[ Upstream commit 4702c28ac777b27acb499cbd5e8e787ce1a7d82d ]
diff --git a/debian/patches-rt/0305-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch b/debian/patches-rt/0305-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch
index 425441d82..f61cd33ad 100644
--- a/debian/patches-rt/0305-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch
+++ b/debian/patches-rt/0305-kmemleak-Change-the-lock-of-kmemleak_object-to-raw_s.patch
@@ -1,8 +1,8 @@
From: Liu Haitao <haitao.liu@windriver.com>
Date: Fri, 27 Sep 2019 16:22:30 +0800
-Subject: [PATCH 305/353] kmemleak: Change the lock of kmemleak_object to
+Subject: [PATCH 305/354] kmemleak: Change the lock of kmemleak_object to
raw_spinlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=824ae2cb991ab667f8333f4863bb5e9bf3b9552c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aaba0ac740352bd7398131c2ccf43b42f5ead3e9
[ Upstream commit 217847f57119b5fdd377bfa3d344613ddb98d9fc ]
diff --git a/debian/patches-rt/0306-sched-migrate_enable-Use-select_fallback_rq.patch b/debian/patches-rt/0306-sched-migrate_enable-Use-select_fallback_rq.patch
index 265fdd120..9c7e119b2 100644
--- a/debian/patches-rt/0306-sched-migrate_enable-Use-select_fallback_rq.patch
+++ b/debian/patches-rt/0306-sched-migrate_enable-Use-select_fallback_rq.patch
@@ -1,7 +1,7 @@
From: Scott Wood <swood@redhat.com>
Date: Sat, 12 Oct 2019 01:52:12 -0500
-Subject: [PATCH 306/353] sched: migrate_enable: Use select_fallback_rq()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5eebc90b5a02e2cbf415e6b056bd92cee740473
+Subject: [PATCH 306/354] sched: migrate_enable: Use select_fallback_rq()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e25daf6bebeeaf1c3064fae99e0f9aa0b68c8937
[ Upstream commit adfa969d4cfcc995a9d866020124e50f1827d2d1 ]
diff --git a/debian/patches-rt/0307-sched-Lazy-migrate_disable-processing.patch b/debian/patches-rt/0307-sched-Lazy-migrate_disable-processing.patch
index 83d5fabda..6608745b3 100644
--- a/debian/patches-rt/0307-sched-Lazy-migrate_disable-processing.patch
+++ b/debian/patches-rt/0307-sched-Lazy-migrate_disable-processing.patch
@@ -1,7 +1,7 @@
From: Scott Wood <swood@redhat.com>
Date: Sat, 12 Oct 2019 01:52:13 -0500
-Subject: [PATCH 307/353] sched: Lazy migrate_disable processing
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e59f409c017d0df927609e4fe742e7db56c48fe5
+Subject: [PATCH 307/354] sched: Lazy migrate_disable processing
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=56d627e63870618c3968cb3a77b0970003cebae4
[ Upstream commit 425c5b38779a860062aa62219dc920d374b13c17 ]
@@ -44,7 +44,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
7 files changed, 129 insertions(+), 182 deletions(-)
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
-index bddccdcd00ba..7f41ac9cf2ad 100644
+index 90985dbce8f4..0ce8ca019734 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -124,8 +124,6 @@ extern void cpu_hotplug_disable(void);
@@ -120,7 +120,7 @@ index 634becebd713..45b84137c4b3 100644
.active_mm = &init_mm,
.restart_block = {
diff --git a/kernel/cpu.c b/kernel/cpu.c
-index 4bf82665f28c..f603ea80af2e 100644
+index e0b8387ac924..00c78fb73172 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -78,11 +78,6 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_state, cpuhp_state) = {
diff --git a/debian/patches-rt/0308-sched-migrate_enable-Use-stop_one_cpu_nowait.patch b/debian/patches-rt/0308-sched-migrate_enable-Use-stop_one_cpu_nowait.patch
index 7eca722a0..711464fbe 100644
--- a/debian/patches-rt/0308-sched-migrate_enable-Use-stop_one_cpu_nowait.patch
+++ b/debian/patches-rt/0308-sched-migrate_enable-Use-stop_one_cpu_nowait.patch
@@ -1,7 +1,7 @@
From: Scott Wood <swood@redhat.com>
Date: Sat, 12 Oct 2019 01:52:14 -0500
-Subject: [PATCH 308/353] sched: migrate_enable: Use stop_one_cpu_nowait()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9a569a7f7c153ae5367090acad55faedba51cf23
+Subject: [PATCH 308/354] sched: migrate_enable: Use stop_one_cpu_nowait()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f944f2e36c575574ee90c945facabcae11978d13
[ Upstream commit 6b39a1fa8c53cae08dc03afdae193b7d3a78a173 ]
diff --git a/debian/patches-rt/0309-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch b/debian/patches-rt/0309-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch
index 24fad7ff6..02ddd2cd3 100644
--- a/debian/patches-rt/0309-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch
+++ b/debian/patches-rt/0309-Revert-ARM-Initialize-split-page-table-locks-for-vec.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 18 Oct 2019 13:04:15 +0200
-Subject: [PATCH 309/353] Revert "ARM: Initialize split page table locks for
+Subject: [PATCH 309/354] Revert "ARM: Initialize split page table locks for
vector page"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a423ed25b55ccf69e009630f23c3c7812d250a7b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=db376ab7528fe056f8223e16b263b5385b1616ef
[ Upstream commit 247074c44d8c3e619dfde6404a52295d8d671d38 ]
diff --git a/debian/patches-rt/0310-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch b/debian/patches-rt/0310-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch
index cfb9000e5..2eda2002f 100644
--- a/debian/patches-rt/0310-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch
+++ b/debian/patches-rt/0310-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 19 Nov 2019 09:25:04 +0100
-Subject: [PATCH 310/353] locking: Make spinlock_t and rwlock_t a RCU section
+Subject: [PATCH 310/354] locking: Make spinlock_t and rwlock_t a RCU section
on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=516e5a915abdd48d23f01890a9ddd9b495a2524a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=55715717eaf0d2bb6cebfae536fc392194803d08
[ Upstream commit 84440022a0e1c8c936d61f8f97593674a295d409 ]
diff --git a/debian/patches-rt/0311-sched-core-migrate_enable-must-access-takedown_cpu_t.patch b/debian/patches-rt/0311-sched-core-migrate_enable-must-access-takedown_cpu_t.patch
index ec57af7e9..e15028b2a 100644
--- a/debian/patches-rt/0311-sched-core-migrate_enable-must-access-takedown_cpu_t.patch
+++ b/debian/patches-rt/0311-sched-core-migrate_enable-must-access-takedown_cpu_t.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 29 Nov 2019 17:24:55 +0100
-Subject: [PATCH 311/353] sched/core: migrate_enable() must access
+Subject: [PATCH 311/354] sched/core: migrate_enable() must access
takedown_cpu_task on !HOTPLUG_CPU
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=375d4a2f36224a330bd486396a51a8a469047e76
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=93492d4e5196d37f1ea9a204ef6000b122fe8c31
[ Upstream commit a61d1977f692e46bad99a100f264981ba08cb4bd ]
@@ -20,7 +20,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
2 files changed, 4 insertions(+)
diff --git a/kernel/cpu.c b/kernel/cpu.c
-index f603ea80af2e..57bd32c83c9e 100644
+index 00c78fb73172..4b0c5788a369 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -913,7 +913,9 @@ static int take_cpu_down(void *_param)
diff --git a/debian/patches-rt/0312-lib-smp_processor_id-Adjust-check_preemption_disable.patch b/debian/patches-rt/0312-lib-smp_processor_id-Adjust-check_preemption_disable.patch
index 6c351ef5a..7d6f79de5 100644
--- a/debian/patches-rt/0312-lib-smp_processor_id-Adjust-check_preemption_disable.patch
+++ b/debian/patches-rt/0312-lib-smp_processor_id-Adjust-check_preemption_disable.patch
@@ -1,8 +1,8 @@
From: Daniel Wagner <dwagner@suse.de>
Date: Mon, 16 Dec 2019 16:15:57 +0100
-Subject: [PATCH 312/353] lib/smp_processor_id: Adjust
+Subject: [PATCH 312/354] lib/smp_processor_id: Adjust
check_preemption_disabled()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b193fe7dfc2b15576e3306658dbaa48f908c32c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=321a8a33a1446356caf5c0d33688d9ee1e7476a7
[ Upstream commit af3c1c5fdf177870fb5e6e16b24e374696ab28f5 ]
diff --git a/debian/patches-rt/0313-sched-migrate_enable-Busy-loop-until-the-migration-r.patch b/debian/patches-rt/0313-sched-migrate_enable-Busy-loop-until-the-migration-r.patch
index 2acb322cd..86b8b4560 100644
--- a/debian/patches-rt/0313-sched-migrate_enable-Busy-loop-until-the-migration-r.patch
+++ b/debian/patches-rt/0313-sched-migrate_enable-Busy-loop-until-the-migration-r.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 12 Dec 2019 10:53:59 +0100
-Subject: [PATCH 313/353] sched: migrate_enable: Busy loop until the migration
+Subject: [PATCH 313/354] sched: migrate_enable: Busy loop until the migration
request is completed
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f9b679103886ae636c06f0709528b4679f910594
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=beff8b5fccdf27e1461b86857ec338375515653f
[ Upstream commit 140d7f54a5fff02898d2ca9802b39548bf7455f1 ]
diff --git a/debian/patches-rt/0314-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch b/debian/patches-rt/0314-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch
index b77ed53fc..a175d44a0 100644
--- a/debian/patches-rt/0314-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch
+++ b/debian/patches-rt/0314-userfaultfd-Use-a-seqlock-instead-of-seqcount.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 18 Dec 2019 12:25:09 +0100
-Subject: [PATCH 314/353] userfaultfd: Use a seqlock instead of seqcount
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=221d4d744e0fa4cbf6cbdfa93f36418495297c42
+Subject: [PATCH 314/354] userfaultfd: Use a seqlock instead of seqcount
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a32132970bbcaf578458944b83a17a8083f6440b
[ Upstream commit dc952a564d02997330654be9628bbe97ba2a05d3 ]
diff --git a/debian/patches-rt/0315-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch b/debian/patches-rt/0315-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch
index 0de7d0707..109b65eec 100644
--- a/debian/patches-rt/0315-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch
+++ b/debian/patches-rt/0315-sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch
@@ -1,7 +1,7 @@
From: Scott Wood <swood@redhat.com>
Date: Fri, 24 Jan 2020 06:11:46 -0500
-Subject: [PATCH 315/353] sched: migrate_enable: Use per-cpu cpu_stop_work
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0a6804b47754240ecad3efe8bd2aafa0abf6157
+Subject: [PATCH 315/354] sched: migrate_enable: Use per-cpu cpu_stop_work
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c26519915b999d68b2d9a97722e58ff0bfa807f2
[ Upstream commit 2dcd94b443c5dcbc20281666321b7f025f9cc85c ]
diff --git a/debian/patches-rt/0316-sched-migrate_enable-Remove-__schedule-call.patch b/debian/patches-rt/0316-sched-migrate_enable-Remove-__schedule-call.patch
index aba027930..c482f3dcd 100644
--- a/debian/patches-rt/0316-sched-migrate_enable-Remove-__schedule-call.patch
+++ b/debian/patches-rt/0316-sched-migrate_enable-Remove-__schedule-call.patch
@@ -1,7 +1,7 @@
From: Scott Wood <swood@redhat.com>
Date: Fri, 24 Jan 2020 06:11:47 -0500
-Subject: [PATCH 316/353] sched: migrate_enable: Remove __schedule() call
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dcbbd0ba34f84adb2b09fd1ee03c288bedb5e1af
+Subject: [PATCH 316/354] sched: migrate_enable: Remove __schedule() call
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c61a1d147ace3541a44386351841dc46be6ba897
[ Upstream commit b8162e61e9a33bd1de6452eb838fbf50a93ddd9a ]
diff --git a/debian/patches-rt/0317-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch b/debian/patches-rt/0317-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch
index bdb5d4a85..21d7e9868 100644
--- a/debian/patches-rt/0317-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch
+++ b/debian/patches-rt/0317-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch
@@ -1,8 +1,8 @@
From: Matt Fleming <matt@codeblueprint.co.uk>
Date: Sun, 26 Jan 2020 21:19:45 +0000
-Subject: [PATCH 317/353] mm/memcontrol: Move misplaced
+Subject: [PATCH 317/354] mm/memcontrol: Move misplaced
local_unlock_irqrestore()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ed8021a659bdfe9a30303ccb240b40eb36771a34
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb31243590cf5862da1af6d51dfc5c77d8414696
[ Upstream commit 071a1d6a6e14d0dec240a8c67b425140d7f92f6a ]
@@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index c6a58923da63..692cc519232d 100644
+index 9c7d443a394c..c14cfb0b9474 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -6552,10 +6552,10 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
diff --git a/debian/patches-rt/0318-locallock-Include-header-for-the-current-macro.patch b/debian/patches-rt/0318-locallock-Include-header-for-the-current-macro.patch
index be1ff1e39..78bca23ed 100644
--- a/debian/patches-rt/0318-locallock-Include-header-for-the-current-macro.patch
+++ b/debian/patches-rt/0318-locallock-Include-header-for-the-current-macro.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 4 Feb 2020 13:29:50 +0100
-Subject: [PATCH 318/353] locallock: Include header for the `current' macro
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a699b8aaf4126a54c3e112e47b036ee8148c84fd
+Subject: [PATCH 318/354] locallock: Include header for the `current' macro
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6c8d994b76e512e18e9adddb072421ae82ff3c7e
[ Upstream commit e693075a5fd852043fa8d2b0467e078d9e5cb782 ]
diff --git a/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch b/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch
index 885be9b8a..e5c239b54 100644
--- a/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch
+++ b/debian/patches-rt/0319-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 21 Feb 2020 18:57:11 +0100
-Subject: [PATCH 319/353] drm/vmwgfx: Drop preempt_disable() in
+Subject: [PATCH 319/354] drm/vmwgfx: Drop preempt_disable() in
vmw_fifo_ping_host()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a787c3baf377eff975557e64faa98ca20dc393de
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a6f457134aeff747dd446a6a0187eebf19cd71db
[ Upstream commit b901491e7b9b7a676818d84e482b69be72fc142f ]
diff --git a/debian/patches-rt/0320-tracing-make-preempt_lazy-and-migrate_disable-counte.patch b/debian/patches-rt/0320-tracing-make-preempt_lazy-and-migrate_disable-counte.patch
index 2037ca514..285bfb392 100644
--- a/debian/patches-rt/0320-tracing-make-preempt_lazy-and-migrate_disable-counte.patch
+++ b/debian/patches-rt/0320-tracing-make-preempt_lazy-and-migrate_disable-counte.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 21 Feb 2020 18:15:15 +0100
-Subject: [PATCH 320/353] tracing: make preempt_lazy and migrate_disable
+Subject: [PATCH 320/354] tracing: make preempt_lazy and migrate_disable
counter smaller
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f8777fd9207cf67d412307c122667798803ce279
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4c8c60bb96fd330de0cc50ab97e90bd0144265fc
[ Upstream commit dd430bf5ecb40f9a89679c85868826475d71de54 ]
@@ -22,7 +22,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
-index 72864a11cec0..e26a85c1b7ba 100644
+index 61011ac41b41..98e59711a391 100644
--- a/include/linux/trace_events.h
+++ b/include/linux/trace_events.h
@@ -62,8 +62,7 @@ struct trace_entry {
@@ -36,7 +36,7 @@ index 72864a11cec0..e26a85c1b7ba 100644
};
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
-index ddda660b84f9..91df34a11341 100644
+index b13fc846d2b2..fc5c032d4b66 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -189,8 +189,8 @@ static int trace_define_common_fields(void)
diff --git a/debian/patches-rt/0321-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch b/debian/patches-rt/0321-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch
index c9aea148d..ce2caaf06 100644
--- a/debian/patches-rt/0321-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch
+++ b/debian/patches-rt/0321-lib-ubsan-Remove-flags-parameter-from-calls-to-ubsan.patch
@@ -1,8 +1,8 @@
From: Tiejun Chen <tiejunc@vmware.com>
Date: Mon, 30 Mar 2020 18:45:23 -0400
-Subject: [PATCH 321/353] lib/ubsan: Remove flags parameter from calls to
+Subject: [PATCH 321/354] lib/ubsan: Remove flags parameter from calls to
ubsan_prologue() and ubsan_epilogue()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=219d304f02bbff8a65f6b38d0d10c6c8d927c59a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1ec7f8239df50fde154033d2f88eeea08f3327c1
Fails to build with CONFIG_UBSAN=y
diff --git a/debian/patches-rt/0322-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch b/debian/patches-rt/0322-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch
index 2a6b3f344..65f27656d 100644
--- a/debian/patches-rt/0322-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch
+++ b/debian/patches-rt/0322-irq_work-Fix-checking-of-IRQ_WORK_LAZY-flag-set-on-n.patch
@@ -1,8 +1,8 @@
From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
Date: Sun, 22 Mar 2020 00:00:28 +0100
-Subject: [PATCH 322/353] irq_work: Fix checking of IRQ_WORK_LAZY flag set on
+Subject: [PATCH 322/354] irq_work: Fix checking of IRQ_WORK_LAZY flag set on
non PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=50eb3f852f4931603f68d0fc6893082686f63e78
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b15d7241db677b8819e86d3268c2c7a2344202c2
When CONFIG_PREEMPT_RT_FULL is not set, some of the checks for using
lazy_list are not properly made as the IRQ_WORK_LAZY is not checked. There's
diff --git a/debian/patches-rt/0323-tasklet-Address-a-race-resulting-in-double-enqueue.patch b/debian/patches-rt/0323-tasklet-Address-a-race-resulting-in-double-enqueue.patch
index aea3373e7..cd6fd0c46 100644
--- a/debian/patches-rt/0323-tasklet-Address-a-race-resulting-in-double-enqueue.patch
+++ b/debian/patches-rt/0323-tasklet-Address-a-race-resulting-in-double-enqueue.patch
@@ -1,7 +1,7 @@
From: Zhang Xiao <xiao.zhang@windriver.com>
Date: Tue, 17 Mar 2020 12:47:43 +0100
-Subject: [PATCH 323/353] tasklet: Address a race resulting in double-enqueue
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea8e37e3c5f3c8e0c22c0e1b35c43e7158d0bc77
+Subject: [PATCH 323/354] tasklet: Address a race resulting in double-enqueue
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5855b2dbcc0f544e60f173ba5969ac265c6a3ec7
The kernel bugzilla has the following race condition reported:
diff --git a/debian/patches-rt/0324-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch b/debian/patches-rt/0324-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch
index 52c96be18..dbfbae407 100644
--- a/debian/patches-rt/0324-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch
+++ b/debian/patches-rt/0324-hrtimer-fix-logic-for-when-grabbing-softirq_expiry_l.patch
@@ -1,8 +1,8 @@
From: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Date: Tue, 28 Apr 2020 16:40:26 +0200
-Subject: [PATCH 324/353] hrtimer: fix logic for when grabbing
+Subject: [PATCH 324/354] hrtimer: fix logic for when grabbing
softirq_expiry_lock can be elided
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6659590de622d7f415b973112a6b2523d18d92ce
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6b5a96a321a92a81eb95e9eb43941abd48984a8
Commit
@@ -32,7 +32,7 @@ Signed-off-by: Tom Zanussi <zanussi@kernel.org>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 3a5e258c243a..a522cebdaa21 100644
+index 67b91ab1c7e2..59a754881976 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -971,7 +971,7 @@ void hrtimer_grab_expiry_lock(const struct hrtimer *timer)
diff --git a/debian/patches-rt/0325-fs-dcache-Include-swait.h-header.patch b/debian/patches-rt/0325-fs-dcache-Include-swait.h-header.patch
index 58036225a..a1d601502 100644
--- a/debian/patches-rt/0325-fs-dcache-Include-swait.h-header.patch
+++ b/debian/patches-rt/0325-fs-dcache-Include-swait.h-header.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 16 Apr 2020 12:42:15 +0200
-Subject: [PATCH 325/353] fs/dcache: Include swait.h header
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89692e5769f533ce4a925ada1420f709e388b9dd
+Subject: [PATCH 325/354] fs/dcache: Include swait.h header
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4b99c8fbc72131d81b1e1e6d59e4459d04c75b88
[ Upstream commit 279f90ddf53cd6bd3c203fbbf488d642ea2603de ]
@@ -19,7 +19,7 @@ Signed-off-by: Tom Zanussi <zanussi@kernel.org>
1 file changed, 1 insertion(+)
diff --git a/fs/proc/base.c b/fs/proc/base.c
-index accc230079bb..8806344af241 100644
+index 26334fa56e18..7ccc9115a722 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -95,6 +95,7 @@
diff --git a/debian/patches-rt/0326-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch b/debian/patches-rt/0326-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch
index 9811dfe0c..47cedc77c 100644
--- a/debian/patches-rt/0326-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch
+++ b/debian/patches-rt/0326-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch
@@ -1,8 +1,8 @@
From: Kevin Hao <haokexin@gmail.com>
Date: Mon, 4 May 2020 11:34:07 +0800
-Subject: [PATCH 326/353] mm: slub: Always flush the delayed empty slubs in
+Subject: [PATCH 326/354] mm: slub: Always flush the delayed empty slubs in
flush_all()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b445fe16bd98d9edf5f1d4f1c822149fa84f649
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3a1c31a76c976c40a53e30bbedeea791df963842
[ Upstream commit 23a2c31b19e99beaf5107071b0f32a596202cdae ]
@@ -45,7 +45,7 @@ Signed-off-by: Tom Zanussi <zanussi@kernel.org>
1 file changed, 3 deletions(-)
diff --git a/mm/slub.c b/mm/slub.c
-index 197bab70a05d..d16d390df21e 100644
+index eb0107907043..10378efbaba2 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2375,9 +2375,6 @@ static void flush_all(struct kmem_cache *s)
diff --git a/debian/patches-rt/0327-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch b/debian/patches-rt/0327-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch
index eec172526..8007deb9e 100644
--- a/debian/patches-rt/0327-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch
+++ b/debian/patches-rt/0327-tasklet-Fix-UP-case-for-tasklet-CHAINED-state.patch
@@ -1,7 +1,7 @@
From: Tom Zanussi <zanussi@kernel.org>
Date: Tue, 9 Jun 2020 11:04:08 -0500
-Subject: [PATCH 327/353] tasklet: Fix UP case for tasklet CHAINED state
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=73881f36e14be59b92716efa0b760ccadfd3d80a
+Subject: [PATCH 327/354] tasklet: Fix UP case for tasklet CHAINED state
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=34e5c6d5ef4573cc2cff33ef455565bb9dc1ec45
commit 62d0a2a30cd0 (tasklet: Address a race resulting in
double-enqueue) addresses a problem that can result in a tasklet being
diff --git a/debian/patches-rt/0328-signal-Prevent-double-free-of-user-struct.patch b/debian/patches-rt/0328-signal-Prevent-double-free-of-user-struct.patch
index 8459155a8..41b88055b 100644
--- a/debian/patches-rt/0328-signal-Prevent-double-free-of-user-struct.patch
+++ b/debian/patches-rt/0328-signal-Prevent-double-free-of-user-struct.patch
@@ -1,7 +1,7 @@
From: Matt Fleming <matt@codeblueprint.co.uk>
Date: Tue, 7 Apr 2020 10:54:13 +0100
-Subject: [PATCH 328/353] signal: Prevent double-free of user struct
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cddd4506f6c3f229f53fe39a335aa71759afdac0
+Subject: [PATCH 328/354] signal: Prevent double-free of user struct
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0043fb759d35265f1fdf30825785457731cdbfad
[ Upsteam commit 9567db2ebe566a93485e1a27d8759969d0002d7a ]
diff --git a/debian/patches-rt/0329-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch b/debian/patches-rt/0329-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch
index 34d2b4506..55a520dce 100644
--- a/debian/patches-rt/0329-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch
+++ b/debian/patches-rt/0329-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 28 May 2020 14:35:12 +0200
-Subject: [PATCH 329/353] Bluetooth: Acquire sk_lock.slock without disabling
+Subject: [PATCH 329/354] Bluetooth: Acquire sk_lock.slock without disabling
interrupts
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=38d73bc2a2c03859f6a80ca126c7b767ab88bd17
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5cc1511702f99012a5afff76934a2c4fd42724c0
[ Upstream commit e6da0edc24eecef2f6964d92fa9044e1821deace ]
diff --git a/debian/patches-rt/0330-net-phy-fixed_phy-Remove-unused-seqcount.patch b/debian/patches-rt/0330-net-phy-fixed_phy-Remove-unused-seqcount.patch
index 7c5730f91..7a74bfe40 100644
--- a/debian/patches-rt/0330-net-phy-fixed_phy-Remove-unused-seqcount.patch
+++ b/debian/patches-rt/0330-net-phy-fixed_phy-Remove-unused-seqcount.patch
@@ -1,7 +1,7 @@
From: "Ahmed S. Darwish" <a.darwish@linutronix.de>
Date: Wed, 10 Jun 2020 12:53:00 +0200
-Subject: [PATCH 330/353] net: phy: fixed_phy: Remove unused seqcount
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c70e959108784a6bb33739d00f5a2006aeadb918
+Subject: [PATCH 330/354] net: phy: fixed_phy: Remove unused seqcount
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6d45476559686ca999d7ab782c8b2ef05dc7d04
[ Upstream commit 6554eac9ef2bd1c968886b31cc7266b49258a463 ]
diff --git a/debian/patches-rt/0331-net-xfrm-fix-compress-vs-decompress-serialization.patch b/debian/patches-rt/0331-net-xfrm-fix-compress-vs-decompress-serialization.patch
index 9a3f6226f..9a4bc40f9 100644
--- a/debian/patches-rt/0331-net-xfrm-fix-compress-vs-decompress-serialization.patch
+++ b/debian/patches-rt/0331-net-xfrm-fix-compress-vs-decompress-serialization.patch
@@ -1,7 +1,7 @@
From: Davidlohr Bueso <dave@stgolabs.net>
Date: Tue, 18 Aug 2020 09:20:53 -0700
-Subject: [PATCH 331/353] net: xfrm: fix compress vs decompress serialization
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d8c3fecb2bb207af061cd67523dbd5f4dd4b1568
+Subject: [PATCH 331/354] net: xfrm: fix compress vs decompress serialization
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=45a5f019e2ee5a29f1c05f5614a5047f29353caf
A crash was seen in xfrm when running ltp's 'tcp4_ipsec06' stresser on v4.x
based RT kernels.
diff --git a/debian/patches-rt/0332-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch b/debian/patches-rt/0332-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch
index 4aeee1f66..02a356499 100644
--- a/debian/patches-rt/0332-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch
+++ b/debian/patches-rt/0332-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 28 Oct 2020 18:15:32 +0100
-Subject: [PATCH 332/353] mm/memcontrol: Disable preemption in
+Subject: [PATCH 332/354] mm/memcontrol: Disable preemption in
__mod_memcg_lruvec_state()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b2ccf8a5b5c9a75d1b9815c53f9c64266084f366
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e4562549c0b4a9e6b27d7bf88c6a9a1134232a9a
[ Upstream commit 74858f0d38a8d3c069a0745ff53ae084c8e7cabb ]
diff --git a/debian/patches-rt/0333-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch b/debian/patches-rt/0333-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch
index d03ccd768..010243186 100644
--- a/debian/patches-rt/0333-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch
+++ b/debian/patches-rt/0333-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch
@@ -1,8 +1,8 @@
From: Oleg Nesterov <oleg@redhat.com>
Date: Tue, 3 Nov 2020 12:39:01 +0100
-Subject: [PATCH 333/353] ptrace: fix ptrace_unfreeze_traced() race with
+Subject: [PATCH 333/354] ptrace: fix ptrace_unfreeze_traced() race with
rt-lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d2b2d216c3757a65a5eb1319c52bbda77c82356
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ecd4f5ea6a952939d8312791205efb91f4a4c0e7
[ Upstream commit 0fdc91971b34cf6857b4cfd8c322ae936cfc189b ]
diff --git a/debian/patches-rt/0334-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch b/debian/patches-rt/0334-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch
index 9e4166063..72bd87225 100644
--- a/debian/patches-rt/0334-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch
+++ b/debian/patches-rt/0334-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 26 Feb 2021 17:26:04 +0100
-Subject: [PATCH 334/353] mm: slub: Don't resize the location tracking cache on
+Subject: [PATCH 334/354] mm: slub: Don't resize the location tracking cache on
PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ee1d963b8014a9e47ac550d50830c7b3f9e183eb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=049825a4a253ca3adcad44ba5821f8c31146466f
The location tracking cache has a size of a page and is resized if its
current size is too small.
@@ -19,7 +19,7 @@ Signed-off-by: Clark Williams <williams@redhat.com>
1 file changed, 3 insertions(+)
diff --git a/mm/slub.c b/mm/slub.c
-index d16d390df21e..869a3be27980 100644
+index 10378efbaba2..f0c0aa5f2688 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -4591,6 +4591,9 @@ static int alloc_loc_track(struct loc_track *t, unsigned long max, gfp_t flags)
diff --git a/debian/patches-rt/0335-locking-rwsem_rt-Add-__down_read_interruptible.patch b/debian/patches-rt/0335-locking-rwsem_rt-Add-__down_read_interruptible.patch
index 21eccadc2..cb15f208e 100644
--- a/debian/patches-rt/0335-locking-rwsem_rt-Add-__down_read_interruptible.patch
+++ b/debian/patches-rt/0335-locking-rwsem_rt-Add-__down_read_interruptible.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 19 Jan 2021 18:54:33 +0100
-Subject: [PATCH 335/353] locking/rwsem_rt: Add __down_read_interruptible()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6e17b509364cf1b4d4e8adf01a5b64e986db7ad2
+Subject: [PATCH 335/354] locking/rwsem_rt: Add __down_read_interruptible()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8ce30ad373ef28e21f51911a6fc0ba4b05e5b46c
The stable backported a patch which adds __down_read_interruptible() for
the generic rwsem implementation.
diff --git a/debian/patches-rt/0336-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch b/debian/patches-rt/0336-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch
index a2ca4849d..5c6208cbc 100644
--- a/debian/patches-rt/0336-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch
+++ b/debian/patches-rt/0336-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch
@@ -1,7 +1,7 @@
From: Andrew Halaney <ahalaney@redhat.com>
Date: Tue, 6 Apr 2021 17:19:52 -0500
-Subject: [PATCH 336/353] locking/rwsem-rt: Remove might_sleep() in __up_read()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a677d98bed32e05401274cf48d9e8c762b0d8280
+Subject: [PATCH 336/354] locking/rwsem-rt: Remove might_sleep() in __up_read()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a8717d24e00c14302e860515a623aafe2f1284b4
There's no chance of sleeping here, the reader is giving up the
lock and possibly waking up the writer who is waiting on it.
diff --git a/debian/patches-rt/0337-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch b/debian/patches-rt/0337-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch
index 9dc2e995b..08e69333a 100644
--- a/debian/patches-rt/0337-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch
+++ b/debian/patches-rt/0337-fscache-fix-initialisation-of-cookie-hash-table-raw-.patch
@@ -1,8 +1,8 @@
From: Gregor Beck <gbeck@esigma-technology.com>
Date: Fri, 3 Sep 2021 14:19:11 +0200
-Subject: [PATCH 337/353] fscache: fix initialisation of cookie hash table raw
+Subject: [PATCH 337/354] fscache: fix initialisation of cookie hash table raw
spinlocks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e94615d52b66ddd8c3a6d3e0117137daf5ee7b21
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=80b208b075589fc2eaad9f86e735c248b34a65b6
The original patch, 602660600bcd ("fscache: initialize cookie hash
table raw spinlocks"), subtracted 1 from the shift and so still left
diff --git a/debian/patches-rt/0338-rt-PREEMPT_RT-safety-net-for-backported-patches.patch b/debian/patches-rt/0338-rt-PREEMPT_RT-safety-net-for-backported-patches.patch
index 914daf15f..229890e08 100644
--- a/debian/patches-rt/0338-rt-PREEMPT_RT-safety-net-for-backported-patches.patch
+++ b/debian/patches-rt/0338-rt-PREEMPT_RT-safety-net-for-backported-patches.patch
@@ -1,7 +1,7 @@
From: Clark Williams <clark.williams@gmail.com>
Date: Sun, 30 Jan 2022 15:46:27 -0600
-Subject: [PATCH 338/353] rt: PREEMPT_RT safety net for backported patches
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb8f7f5be98adee5f754c337967de9684afc1ab6
+Subject: [PATCH 338/354] rt: PREEMPT_RT safety net for backported patches
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be2ee0a6206e6b69bac9ad5bfbff2ec493bc97e7
While doing some 4.19-rt cleanup work, I stumbled across the fact that parts of
two backported patches were dependent on CONFIG_PREEMPT_RT, rather than
diff --git a/debian/patches-rt/0339-net-Add-missing-xmit_lock_owner-hunks.patch b/debian/patches-rt/0339-net-Add-missing-xmit_lock_owner-hunks.patch
index cb88391ac..b556a94dd 100644
--- a/debian/patches-rt/0339-net-Add-missing-xmit_lock_owner-hunks.patch
+++ b/debian/patches-rt/0339-net-Add-missing-xmit_lock_owner-hunks.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 22 Dec 2021 20:35:22 +0100
-Subject: [PATCH 339/353] net: Add missing xmit_lock_owner hunks.
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=32fdfaaf1dbe68aedd03460e61be623bba9dff09
+Subject: [PATCH 339/354] net: Add missing xmit_lock_owner hunks.
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d66285c0f87e3ec7848625a69f330f13219e0d0c
The patch
net: move xmit_recursion to per-task variable on -RT
@@ -17,10 +17,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 13 insertions(+), 16 deletions(-)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index 086cd650f555..25557901d020 100644
+index 821337d81da2..1bead7088f4d 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -3887,17 +3887,17 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
+@@ -3893,17 +3893,17 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
#ifdef CONFIG_PREEMPT_RT_FULL
static inline void netdev_queue_set_owner(struct netdev_queue *txq, int cpu)
{
@@ -41,7 +41,7 @@ index 086cd650f555..25557901d020 100644
return true;
return false;
}
-@@ -3906,17 +3906,19 @@ static inline bool netdev_queue_has_owner(struct netdev_queue *txq)
+@@ -3912,17 +3912,19 @@ static inline bool netdev_queue_has_owner(struct netdev_queue *txq)
static inline void netdev_queue_set_owner(struct netdev_queue *txq, int cpu)
{
@@ -64,7 +64,7 @@ index 086cd650f555..25557901d020 100644
return true;
return false;
}
-@@ -3925,8 +3927,7 @@ static inline bool netdev_queue_has_owner(struct netdev_queue *txq)
+@@ -3931,8 +3933,7 @@ static inline bool netdev_queue_has_owner(struct netdev_queue *txq)
static inline void __netif_tx_lock(struct netdev_queue *txq, int cpu)
{
spin_lock(&txq->_xmit_lock);
@@ -74,7 +74,7 @@ index 086cd650f555..25557901d020 100644
}
static inline bool __netif_tx_acquire(struct netdev_queue *txq)
-@@ -3943,8 +3944,7 @@ static inline void __netif_tx_release(struct netdev_queue *txq)
+@@ -3949,8 +3950,7 @@ static inline void __netif_tx_release(struct netdev_queue *txq)
static inline void __netif_tx_lock_bh(struct netdev_queue *txq)
{
spin_lock_bh(&txq->_xmit_lock);
@@ -84,7 +84,7 @@ index 086cd650f555..25557901d020 100644
}
static inline bool __netif_tx_trylock(struct netdev_queue *txq)
-@@ -3952,23 +3952,20 @@ static inline bool __netif_tx_trylock(struct netdev_queue *txq)
+@@ -3958,23 +3958,20 @@ static inline bool __netif_tx_trylock(struct netdev_queue *txq)
bool ok = spin_trylock(&txq->_xmit_lock);
if (likely(ok)) {
diff --git a/debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch b/debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch
index dbcdfcba5..3fc035fad 100644
--- a/debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch
+++ b/debian/patches-rt/0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 29 Apr 2022 11:02:18 -0500
-Subject: [PATCH 340/353] genirq: Add lost hunk to irq_forced_thread_fn().
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d976532ebe34ef620ed2aa1f6e2be711d7a6a902
+Subject: [PATCH 340/354] genirq: Add lost hunk to irq_forced_thread_fn().
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3f7b4a0b525a3a73796d656e049f4d902b3fc74b
The irq_settings_no_softirq_call() related handling got lost in process,
here are the missing bits.
diff --git a/debian/patches-rt/0341-random-Bring-back-the-local_locks.patch b/debian/patches-rt/0341-random-Bring-back-the-local_locks.patch
index 654b55878..da1f6dcc4 100644
--- a/debian/patches-rt/0341-random-Bring-back-the-local_locks.patch
+++ b/debian/patches-rt/0341-random-Bring-back-the-local_locks.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 19 Aug 2022 11:24:38 +0200
-Subject: [PATCH 341/353] random: Bring back the local_locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7ba891aa13c535f5d95c4fab0c44253694b36bc0
+Subject: [PATCH 341/354] random: Bring back the local_locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ce35a2b802aafd40aad5e645c004a41469fade8f
As part of the backports the random code lost its local_lock_t type and
the whole operation became a local_irq_{disable|enable}() simply because
diff --git a/debian/patches-rt/0342-local_lock-Provide-INIT_LOCAL_LOCK.patch b/debian/patches-rt/0342-local_lock-Provide-INIT_LOCAL_LOCK.patch
index 0856f6fc7..0aecdff50 100644
--- a/debian/patches-rt/0342-local_lock-Provide-INIT_LOCAL_LOCK.patch
+++ b/debian/patches-rt/0342-local_lock-Provide-INIT_LOCAL_LOCK.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 21 Oct 2022 15:55:39 +0200
-Subject: [PATCH 342/353] local_lock: Provide INIT_LOCAL_LOCK().
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=49c901af0340e7621905b09bafc0c23c4b12624e
+Subject: [PATCH 342/354] local_lock: Provide INIT_LOCAL_LOCK().
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c1479c2185d99567ddab8ca94047b5be80caafcc
The original code was using INIT_LOCAL_LOCK() and I tried to sneak
around it and forgot that this code also needs to compile on !RT
diff --git a/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch b/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch
index 1e3004793..a30fa16e7 100644
--- a/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch
+++ b/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 21 Oct 2022 16:15:56 +0200
-Subject: [PATCH 343/353] Revert "workqueue: Use local irq lock instead of irq
+Subject: [PATCH 343/354] Revert "workqueue: Use local irq lock instead of irq
disable regions"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=60087367b50b95abf48d954ffb59b9b22c1f9f99
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2fe895f00f08cac8f1bbbdc146b489b821d5347f
This reverts the PREEMPT_RT related changes to workqueue. It reverts the
usage of local_locks() and cpu_chill().
@@ -20,10 +20,10 @@ Signed-off-by: Daniel Wagner <wagi@monom.org>
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index c047a647146e..e0ab9febe11f 100644
+index 8e012510425e..0f2450425879 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
-@@ -1496,11 +1496,9 @@ EXPORT_SYMBOL(queue_work_on);
+@@ -1499,11 +1499,9 @@ EXPORT_SYMBOL(queue_work_on);
void delayed_work_timer_fn(struct timer_list *t)
{
struct delayed_work *dwork = from_timer(dwork, t, timer);
diff --git a/debian/patches-rt/0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch b/debian/patches-rt/0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch
index 30109fcaf..11443ee47 100644
--- a/debian/patches-rt/0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch
+++ b/debian/patches-rt/0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 19 Aug 2022 11:24:42 +0200
-Subject: [PATCH 344/353] timers: Keep interrupts disabled for TIMER_IRQSAFE
+Subject: [PATCH 344/354] timers: Keep interrupts disabled for TIMER_IRQSAFE
timer.
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=594dfc20b8af70e4ba45812364ece21d433bda57
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d24ad5ccbf32a6ae6e175958ff2ee5b5bf40e630
Keep interrupts disabled across callback invocation for the
TIMER_IRQSAFE as expected.
diff --git a/debian/patches-rt/0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch b/debian/patches-rt/0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch
index 58c7159ea..40eeabeff 100644
--- a/debian/patches-rt/0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch
+++ b/debian/patches-rt/0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 24 Oct 2022 10:17:22 +0200
-Subject: [PATCH 345/353] timers: Don't block on ->expiry_lock for
+Subject: [PATCH 345/354] timers: Don't block on ->expiry_lock for
TIMER_IRQSAFE timers
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=84306a94872a513876119e0b5f299d4d3987a8db
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3413ac266d8c5f1ffc233cbc0a1f7732833891e7
Upstream commit c725dafc95f1b37027840aaeaa8b7e4e9cd20516
diff --git a/debian/patches-rt/0346-rcu-Update-rcuwait.patch b/debian/patches-rt/0346-rcu-Update-rcuwait.patch
index 57afe7c3e..9c9d9838f 100644
--- a/debian/patches-rt/0346-rcu-Update-rcuwait.patch
+++ b/debian/patches-rt/0346-rcu-Update-rcuwait.patch
@@ -1,7 +1,7 @@
From: Daniel Wagner <wagi@monom.org>
Date: Mon, 24 Oct 2022 10:58:29 +0200
-Subject: [PATCH 346/353] rcu: Update rcuwait
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=587f7f0c0ba24632fa86dd7122366221664f116f
+Subject: [PATCH 346/354] rcu: Update rcuwait
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b4ed77cc76087b8eb072eefe9a337f5a80f5e098
This is an all in one commit backporting updates for rcuwait:
- 03f4b48edae7 ("rcuwait: Annotate task_struct with __rcu")
@@ -109,7 +109,7 @@ index 90bfa3279a01..4fe9ecd56aac 100644
#endif /* _LINUX_RCUWAIT_H_ */
diff --git a/kernel/exit.c b/kernel/exit.c
-index 51b36d58c872..94a51c53985b 100644
+index cbe99ab0ac19..9522c5b06199 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -338,8 +338,9 @@ struct task_struct *task_rcu_dereference(struct task_struct **ptask)
diff --git a/debian/patches-rt/0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch b/debian/patches-rt/0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch
index 0978310bc..3d77d325b 100644
--- a/debian/patches-rt/0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch
+++ b/debian/patches-rt/0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 19 Aug 2022 11:24:45 +0200
-Subject: [PATCH 347/353] workqueue: Use rcuwait for wq_manager_wait
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f194473966fbca2b59765c07b6ce08a7aa4579f1
+Subject: [PATCH 347/354] workqueue: Use rcuwait for wq_manager_wait
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0f5b1e7bc4ff615a9f94e9c24e34c93321a4859a
Upstream commit d8bb65ab70f702531aaaa11d9710f9450078e295
@@ -36,7 +36,7 @@ Signed-off-by: Daniel Wagner <wagi@monom.org>
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index e0ab9febe11f..a9f3cc02bdc1 100644
+index 0f2450425879..0c7033deaef2 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -50,6 +50,7 @@
@@ -57,7 +57,7 @@ index e0ab9febe11f..a9f3cc02bdc1 100644
static LIST_HEAD(workqueues); /* PR: list of all workqueues */
static bool workqueue_freezing; /* PL: have wqs started freezing? */
-@@ -2023,7 +2025,7 @@ static bool manage_workers(struct worker *worker)
+@@ -2026,7 +2028,7 @@ static bool manage_workers(struct worker *worker)
pool->manager = NULL;
pool->flags &= ~POOL_MANAGER_ACTIVE;
@@ -66,7 +66,7 @@ index e0ab9febe11f..a9f3cc02bdc1 100644
return true;
}
-@@ -3342,6 +3344,18 @@ static void rcu_free_pool(struct rcu_head *rcu)
+@@ -3345,6 +3347,18 @@ static void rcu_free_pool(struct rcu_head *rcu)
kfree(pool);
}
@@ -85,7 +85,7 @@ index e0ab9febe11f..a9f3cc02bdc1 100644
/**
* put_unbound_pool - put a worker_pool
* @pool: worker_pool to put
-@@ -3377,10 +3391,12 @@ static void put_unbound_pool(struct worker_pool *pool)
+@@ -3380,10 +3394,12 @@ static void put_unbound_pool(struct worker_pool *pool)
* Become the manager and destroy all workers. This prevents
* @pool's workers from blocking on attach_mutex. We're the last
* manager and @pool gets freed with the flag set.
diff --git a/debian/patches-rt/0348-timers-Prepare-support-for-PREEMPT_RT.patch b/debian/patches-rt/0348-timers-Prepare-support-for-PREEMPT_RT.patch
index caa280599..ace5bfbb0 100644
--- a/debian/patches-rt/0348-timers-Prepare-support-for-PREEMPT_RT.patch
+++ b/debian/patches-rt/0348-timers-Prepare-support-for-PREEMPT_RT.patch
@@ -1,7 +1,7 @@
From: Anna-Maria Gleixner <anna-maria@linutronix.de>
Date: Mon, 31 Oct 2022 16:50:04 +0100
-Subject: [PATCH 348/353] timers: Prepare support for PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f90995ffd999e658dbb9146f2436b4fde40ed9d9
+Subject: [PATCH 348/354] timers: Prepare support for PREEMPT_RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=803c1efa1d5d5b533488704c75c6fb9c67ba78b5
Upstream commit 030dcdd197d77374879bb5603d091eee7d8aba80
diff --git a/debian/patches-rt/0349-timers-Move-clearing-of-base-timer_running-under-bas.patch b/debian/patches-rt/0349-timers-Move-clearing-of-base-timer_running-under-bas.patch
index 2744908b4..e50d0cc14 100644
--- a/debian/patches-rt/0349-timers-Move-clearing-of-base-timer_running-under-bas.patch
+++ b/debian/patches-rt/0349-timers-Move-clearing-of-base-timer_running-under-bas.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 31 Oct 2022 16:50:05 +0100
-Subject: [PATCH 349/353] timers: Move clearing of base::timer_running under
+Subject: [PATCH 349/354] timers: Move clearing of base::timer_running under
base:: Lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a66d72d875ad3ceffbfc55419dc883fa702a1794
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b70aa3d0e796508c098caab46376bf27a9473357
Upstream commit bb7262b295472eb6858b5c49893954794027cd84
diff --git a/debian/patches-rt/0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch b/debian/patches-rt/0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch
index a095b5965..af2a70caf 100644
--- a/debian/patches-rt/0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch
+++ b/debian/patches-rt/0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 31 Oct 2022 16:50:06 +0100
-Subject: [PATCH 350/353] timers: Don't block on ->expiry_lock for
+Subject: [PATCH 350/354] timers: Don't block on ->expiry_lock for
TIMER_IRQSAFE timers
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d585a000a1b7f50740d6851fb62230022452f891
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=06ed86eac63f21f446c9be321cc55f029c59c844
Upstream commit c725dafc95f1b37027840aaeaa8b7e4e9cd20516
diff --git a/debian/patches-rt/0351-Revert-percpu-include-irqflags.h-for-raw_local_irq_s.patch b/debian/patches-rt/0351-Revert-percpu-include-irqflags.h-for-raw_local_irq_s.patch
index 7695dbdcb..922159c7c 100644
--- a/debian/patches-rt/0351-Revert-percpu-include-irqflags.h-for-raw_local_irq_s.patch
+++ b/debian/patches-rt/0351-Revert-percpu-include-irqflags.h-for-raw_local_irq_s.patch
@@ -1,8 +1,8 @@
From: Ben Hutchings <ben@decadent.org.uk>
Date: Sat, 10 Dec 2022 00:06:17 +0100
-Subject: [PATCH 351/353] Revert "percpu: include irqflags.h for
+Subject: [PATCH 351/354] Revert "percpu: include irqflags.h for
raw_local_irq_save()"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5fc2f775b05752f219dd8a10129509e0b23a1742
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=744516702f55a39c76b0b600abcba9e91942df0c
This reverts commit 0d796a9e6a93608b4dd84fbd09f01e912ae34bdc.
diff --git a/debian/patches-rt/0352-workqueue-Fix-deadlock-due-to-recursive-locking-of-p.patch b/debian/patches-rt/0352-workqueue-Fix-deadlock-due-to-recursive-locking-of-p.patch
index 847f5978e..bb3bb03cf 100644
--- a/debian/patches-rt/0352-workqueue-Fix-deadlock-due-to-recursive-locking-of-p.patch
+++ b/debian/patches-rt/0352-workqueue-Fix-deadlock-due-to-recursive-locking-of-p.patch
@@ -1,8 +1,8 @@
From: "Brennan Lamoreaux (VMware)" <brennanlamoreaux@gmail.com>
Date: Tue, 28 Feb 2023 14:49:38 -0800
-Subject: [PATCH 352/353] workqueue: Fix deadlock due to recursive locking of
+Subject: [PATCH 352/354] workqueue: Fix deadlock due to recursive locking of
pool->lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ad25c1a19c04844c75d94d93a22d5879cdcede1c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8ddf6c4f69cacbc7afe70679003327744ecf8e39
Upstream commit d8bb65ab70f7 ("workqueue: Use rcuwait for wq_manager_wait")
replaced the waitqueue with rcuwait in the workqueue code. This change
@@ -55,10 +55,10 @@ Signed-off-by: Daniel Wagner <wagi@monom.org>
1 file changed, 1 deletion(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index a9f3cc02bdc1..55ebdd56a5de 100644
+index 0c7033deaef2..e6e1923c88eb 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
-@@ -3394,7 +3394,6 @@ static void put_unbound_pool(struct worker_pool *pool)
+@@ -3397,7 +3397,6 @@ static void put_unbound_pool(struct worker_pool *pool)
* Because of how wq_manager_inactive() works, we will hold the
* spinlock after a successful wait.
*/
diff --git a/debian/patches-rt/0353-Revert-sched-rt-Provide-migrate_disable-enable-inlin.patch b/debian/patches-rt/0353-Revert-sched-rt-Provide-migrate_disable-enable-inlin.patch
new file mode 100644
index 000000000..c31c75707
--- /dev/null
+++ b/debian/patches-rt/0353-Revert-sched-rt-Provide-migrate_disable-enable-inlin.patch
@@ -0,0 +1,58 @@
+From: Daniel Wagner <wagi@monom.org>
+Date: Thu, 7 Dec 2023 15:54:10 +0100
+Subject: [PATCH 353/354] Revert "sched/rt: Provide migrate_disable/enable()
+ inlines"
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c127f3a8909b2dc34b7e211dba228ce6f63ec46c
+
+This reverts commit 56e8949825226341d28dd5156b3d0057684ff669.
+
+The tree contains already the migrate_disable/enable() helpers thus this
+stable backport conflicts (b) with the existing definition (compiler
+complains with conflicting definition). Thus we don't need this
+backported functions and can avoid the conflict by just dropping the
+backport.
+
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ include/linux/preempt.h | 30 ------------------------------
+ 1 file changed, 30 deletions(-)
+
+diff --git a/include/linux/preempt.h b/include/linux/preempt.h
+index 29ecd13afdda..9c74a019bf57 100644
+--- a/include/linux/preempt.h
++++ b/include/linux/preempt.h
+@@ -422,34 +422,4 @@ static inline void preempt_notifier_init(struct preempt_notifier *notifier,
+
+ #endif
+
+-/**
+- * migrate_disable - Prevent migration of the current task
+- *
+- * Maps to preempt_disable() which also disables preemption. Use
+- * migrate_disable() to annotate that the intent is to prevent migration,
+- * but not necessarily preemption.
+- *
+- * Can be invoked nested like preempt_disable() and needs the corresponding
+- * number of migrate_enable() invocations.
+- */
+-static __always_inline void migrate_disable(void)
+-{
+- preempt_disable();
+-}
+-
+-/**
+- * migrate_enable - Allow migration of the current task
+- *
+- * Counterpart to migrate_disable().
+- *
+- * As migrate_disable() can be invoked nested, only the outermost invocation
+- * reenables migration.
+- *
+- * Currently mapped to preempt_enable().
+- */
+-static __always_inline void migrate_enable(void)
+-{
+- preempt_enable();
+-}
+-
+ #endif /* __LINUX_PREEMPT_H */
diff --git a/debian/patches-rt/0353-Linux-4.19.284-rt125-REBASE.patch b/debian/patches-rt/0354-Linux-4.19.302-rt131-REBASE.patch
index cd165fd18..93f1fb689 100644
--- a/debian/patches-rt/0353-Linux-4.19.284-rt125-REBASE.patch
+++ b/debian/patches-rt/0354-Linux-4.19.302-rt131-REBASE.patch
@@ -1,7 +1,7 @@
From: Daniel Wagner <wagi@monom.org>
-Date: Thu, 1 Jun 2023 08:03:33 +0200
-Subject: [PATCH 353/353] Linux 4.19.284-rt125 REBASE
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c159f8ff7cf6c82d53a066c78a054d0244b7fb61
+Date: Wed, 20 Dec 2023 13:45:00 +0100
+Subject: [PATCH 354/354] Linux 4.19.302-rt131 REBASE
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=56c9e3ba52d1f30bad6ff3ba2042ef9fe30525e8
Signed-off-by: Daniel Wagner <wagi@monom.org>
---
@@ -9,9 +9,9 @@ Signed-off-by: Daniel Wagner <wagi@monom.org>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/localversion-rt b/localversion-rt
-index 1199ebade17b..9d0cfbcac7f4 100644
+index 1199ebade17b..a328b97369c2 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt16
-+-rt125
++-rt131
diff --git a/debian/patches-rt/rcupdate-delete-duplicated-macros.patch b/debian/patches-rt/rcupdate-delete-duplicated-macros.patch
new file mode 100644
index 000000000..f597ccedf
--- /dev/null
+++ b/debian/patches-rt/rcupdate-delete-duplicated-macros.patch
@@ -0,0 +1,67 @@
+From: Ben Hutchings <benh@debian.org>
+Date: Sun, 24 Sep 2023 20:31:44 +0200
+Subject: rcupdate: Delete duplicated macros
+
+Commit e7d849eab72f mismerged include/linux/rcupdate.h, resulting in
+two macros being defined in both include/linux/rcupdate.h and
+include/linux/rcu_assign_pointer.h. Delete them from rcupdate.h as
+was intended.
+
+---
+--- a/include/linux/rcupdate.h
++++ b/include/linux/rcupdate.h
+@@ -382,54 +382,6 @@ static inline void rcu_preempt_sleep_che
+ })
+
+ /**
+- * RCU_INITIALIZER() - statically initialize an RCU-protected global variable
+- * @v: The value to statically initialize with.
+- */
+-#define RCU_INITIALIZER(v) (typeof(*(v)) __force __rcu *)(v)
+-
+-/**
+- * rcu_assign_pointer() - assign to RCU-protected pointer
+- * @p: pointer to assign to
+- * @v: value to assign (publish)
+- *
+- * Assigns the specified value to the specified RCU-protected
+- * pointer, ensuring that any concurrent RCU readers will see
+- * any prior initialization.
+- *
+- * Inserts memory barriers on architectures that require them
+- * (which is most of them), and also prevents the compiler from
+- * reordering the code that initializes the structure after the pointer
+- * assignment. More importantly, this call documents which pointers
+- * will be dereferenced by RCU read-side code.
+- *
+- * In some special cases, you may use RCU_INIT_POINTER() instead
+- * of rcu_assign_pointer(). RCU_INIT_POINTER() is a bit faster due
+- * to the fact that it does not constrain either the CPU or the compiler.
+- * That said, using RCU_INIT_POINTER() when you should have used
+- * rcu_assign_pointer() is a very bad thing that results in
+- * impossible-to-diagnose memory corruption. So please be careful.
+- * See the RCU_INIT_POINTER() comment header for details.
+- *
+- * Note that rcu_assign_pointer() evaluates each of its arguments only
+- * once, appearances notwithstanding. One of the "extra" evaluations
+- * is in typeof() and the other visible only to sparse (__CHECKER__),
+- * neither of which actually execute the argument. As with most cpp
+- * macros, this execute-arguments-only-once property is important, so
+- * please be careful when making changes to rcu_assign_pointer() and the
+- * other macros that it invokes.
+- */
+-#define rcu_assign_pointer(p, v) \
+-({ \
+- uintptr_t _r_a_p__v = (uintptr_t)(v); \
+- \
+- if (__builtin_constant_p(v) && (_r_a_p__v) == (uintptr_t)NULL) \
+- WRITE_ONCE((p), (typeof(p))(_r_a_p__v)); \
+- else \
+- smp_store_release(&p, RCU_INITIALIZER((typeof(p))_r_a_p__v)); \
+- _r_a_p__v; \
+-})
+-
+-/**
+ * rcu_replace_pointer() - replace an RCU pointer, returning its old value
+ * @rcu_ptr: RCU pointer, whose old value is returned
+ * @ptr: regular pointer
diff --git a/debian/patches-rt/series b/debian/patches-rt/series
index e9fd48c8f..737d56925 100644
--- a/debian/patches-rt/series
+++ b/debian/patches-rt/series
@@ -350,5 +350,7 @@
0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch
0351-Revert-percpu-include-irqflags.h-for-raw_local_irq_s.patch
0352-workqueue-Fix-deadlock-due-to-recursive-locking-of-p.patch
-0353-Linux-4.19.284-rt125-REBASE.patch
+0353-Revert-sched-rt-Provide-migrate_disable-enable-inlin.patch
+0354-Linux-4.19.302-rt131-REBASE.patch
netpoll-fix-netif_local_xmit_active-for-4.19-rt.patch
+rcupdate-delete-duplicated-macros.patch
diff --git a/debian/patches/bugfix/x86/gds/arm-cpu-switch-to-arch_cpu_finalize_init.patch b/debian/patches/bugfix/x86/gds/arm-cpu-switch-to-arch_cpu_finalize_init.patch
deleted file mode 100644
index 8b3c04d39..000000000
--- a/debian/patches/bugfix/x86/gds/arm-cpu-switch-to-arch_cpu_finalize_init.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 980d7eb01638f535e9ab885449c0bbb4cec0fde6 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:25 +0200
-Subject: ARM: cpu: Switch to arch_cpu_finalize_init()
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit ee31bb0524a2e7c99b03f50249a411cc1eaa411f upstream
-
-check_bugs() is about to be phased out. Switch over to the new
-arch_cpu_finalize_init() implementation.
-
-No functional change.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Link: https://lore.kernel.org/r/20230613224545.078124882@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/arm/Kconfig | 1 +
- arch/arm/include/asm/bugs.h | 4 ----
- arch/arm/kernel/bugs.c | 3 ++-
- 3 files changed, 3 insertions(+), 5 deletions(-)
-
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -4,6 +4,7 @@ config ARM
- default y
- select ARCH_CLOCKSOURCE_DATA
- select ARCH_DISCARD_MEMBLOCK if !HAVE_ARCH_PFN_VALID && !KEXEC
-+ select ARCH_HAS_CPU_FINALIZE_INIT if MMU
- select ARCH_HAS_DEBUG_VIRTUAL if MMU
- select ARCH_HAS_DEVMEM_IS_ALLOWED
- select ARCH_HAS_ELF_RANDOMIZE
---- a/arch/arm/include/asm/bugs.h
-+++ b/arch/arm/include/asm/bugs.h
-@@ -1,6 +1,4 @@
- /*
-- * arch/arm/include/asm/bugs.h
-- *
- * Copyright (C) 1995-2003 Russell King
- *
- * This program is free software; you can redistribute it and/or modify
-@@ -13,10 +11,8 @@
- extern void check_writebuffer_bugs(void);
-
- #ifdef CONFIG_MMU
--extern void check_bugs(void);
- extern void check_other_bugs(void);
- #else
--#define check_bugs() do { } while (0)
- #define check_other_bugs() do { } while (0)
- #endif
-
---- a/arch/arm/kernel/bugs.c
-+++ b/arch/arm/kernel/bugs.c
-@@ -1,5 +1,6 @@
- // SPDX-Identifier: GPL-2.0
- #include <linux/init.h>
-+#include <linux/cpu.h>
- #include <asm/bugs.h>
- #include <asm/proc-fns.h>
-
-@@ -11,7 +12,7 @@ void check_other_bugs(void)
- #endif
- }
-
--void __init check_bugs(void)
-+void __init arch_cpu_finalize_init(void)
- {
- check_writebuffer_bugs();
- check_other_bugs();
diff --git a/debian/patches/bugfix/x86/gds/documentation-x86-fix-backwards-on-off-logic-about-ymm-support.patch b/debian/patches/bugfix/x86/gds/documentation-x86-fix-backwards-on-off-logic-about-ymm-support.patch
deleted file mode 100644
index 7bb1f3261..000000000
--- a/debian/patches/bugfix/x86/gds/documentation-x86-fix-backwards-on-off-logic-about-ymm-support.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 1b0fc0345f2852ffe54fb9ae0e12e2ee69ad6a20 Mon Sep 17 00:00:00 2001
-From: Dave Hansen <dave.hansen@linux.intel.com>
-Date: Tue, 1 Aug 2023 07:31:07 -0700
-Subject: Documentation/x86: Fix backwards on/off logic about YMM support
-
-From: Dave Hansen <dave.hansen@linux.intel.com>
-
-commit 1b0fc0345f2852ffe54fb9ae0e12e2ee69ad6a20 upstream
-
-These options clearly turn *off* XSAVE YMM support. Correct the
-typo.
-
-Reported-by: Ben Hutchings <ben@decadent.org.uk>
-Fixes: 553a5c03e90a ("x86/speculation: Add force option to GDS mitigation")
-Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- Documentation/admin-guide/hw-vuln/gather_data_sampling.rst | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/Documentation/admin-guide/hw-vuln/gather_data_sampling.rst
-+++ b/Documentation/admin-guide/hw-vuln/gather_data_sampling.rst
-@@ -63,7 +63,7 @@ GDS can also be mitigated on systems tha
- disabling AVX. This can be done by setting gather_data_sampling="force" or
- "clearcpuid=avx" on the kernel command-line.
-
--If used, these options will disable AVX use by turning on XSAVE YMM support.
-+If used, these options will disable AVX use by turning off XSAVE YMM support.
- However, the processor will still enumerate AVX support. Userspace that
- does not follow proper AVX enumeration to check both AVX *and* XSAVE YMM
- support will break.
diff --git a/debian/patches/bugfix/x86/gds/ia64-cpu-switch-to-arch_cpu_finalize_init.patch b/debian/patches/bugfix/x86/gds/ia64-cpu-switch-to-arch_cpu_finalize_init.patch
deleted file mode 100644
index 12aa098f7..000000000
--- a/debian/patches/bugfix/x86/gds/ia64-cpu-switch-to-arch_cpu_finalize_init.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From dff0dc6635f86b571b1bb61f3f3525b3763c3566 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:27 +0200
-Subject: ia64/cpu: Switch to arch_cpu_finalize_init()
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 6c38e3005621800263f117fb00d6787a76e16de7 upstream
-
-check_bugs() is about to be phased out. Switch over to the new
-arch_cpu_finalize_init() implementation.
-
-No functional change.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Link: https://lore.kernel.org/r/20230613224545.137045745@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/ia64/Kconfig | 1 +
- arch/ia64/include/asm/bugs.h | 20 --------------------
- arch/ia64/kernel/setup.c | 3 +--
- 3 files changed, 2 insertions(+), 22 deletions(-)
- delete mode 100644 arch/ia64/include/asm/bugs.h
-
---- a/arch/ia64/Kconfig
-+++ b/arch/ia64/Kconfig
-@@ -8,6 +8,7 @@ menu "Processor type and features"
-
- config IA64
- bool
-+ select ARCH_HAS_CPU_FINALIZE_INIT
- select ARCH_MIGHT_HAVE_PC_PARPORT
- select ARCH_MIGHT_HAVE_PC_SERIO
- select PCI if (!IA64_HP_SIM)
---- a/arch/ia64/include/asm/bugs.h
-+++ /dev/null
-@@ -1,20 +0,0 @@
--/* SPDX-License-Identifier: GPL-2.0 */
--/*
-- * This is included by init/main.c to check for architecture-dependent bugs.
-- *
-- * Needs:
-- * void check_bugs(void);
-- *
-- * Based on <asm-alpha/bugs.h>.
-- *
-- * Modified 1998, 1999, 2003
-- * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co.
-- */
--#ifndef _ASM_IA64_BUGS_H
--#define _ASM_IA64_BUGS_H
--
--#include <asm/processor.h>
--
--extern void check_bugs (void);
--
--#endif /* _ASM_IA64_BUGS_H */
---- a/arch/ia64/kernel/setup.c
-+++ b/arch/ia64/kernel/setup.c
-@@ -1050,8 +1050,7 @@ cpu_init (void)
- platform_cpu_init();
- }
-
--void __init
--check_bugs (void)
-+void __init arch_cpu_finalize_init(void)
- {
- ia64_patch_mckinley_e9((unsigned long) __start___mckinley_e9_bundles,
- (unsigned long) __end___mckinley_e9_bundles);
diff --git a/debian/patches/bugfix/x86/gds/init-invoke-arch_cpu_finalize_init-earlier.patch b/debian/patches/bugfix/x86/gds/init-invoke-arch_cpu_finalize_init-earlier.patch
deleted file mode 100644
index bcb206f87..000000000
--- a/debian/patches/bugfix/x86/gds/init-invoke-arch_cpu_finalize_init-earlier.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 4f8644b469a237107a34deb77ca301377c7def7c Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:39 +0200
-Subject: init: Invoke arch_cpu_finalize_init() earlier
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 9df9d2f0471b4c4702670380b8d8a45b40b23a7d upstream
-
-X86 is reworking the boot process so that initializations which are not
-required during early boot can be moved into the late boot process and out
-of the fragile and restricted initial boot phase.
-
-arch_cpu_finalize_init() is the obvious place to do such initializations,
-but arch_cpu_finalize_init() is invoked too late in start_kernel() e.g. for
-initializing the FPU completely. fork_init() requires that the FPU is
-initialized as the size of task_struct on X86 depends on the size of the
-required FPU register buffer.
-
-Fortunately none of the init calls between calibrate_delay() and
-arch_cpu_finalize_init() is relevant for the functionality of
-arch_cpu_finalize_init().
-
-Invoke it right after calibrate_delay() where everything which is relevant
-for arch_cpu_finalize_init() has been set up already.
-
-No functional change intended.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Reviewed-by: Rick Edgecombe <rick.p.edgecombe@intel.com>
-Link: https://lore.kernel.org/r/20230613224545.612182854@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- init/main.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
---- a/init/main.c
-+++ b/init/main.c
-@@ -699,6 +699,9 @@ asmlinkage __visible void __init start_k
- late_time_init();
- sched_clock_init();
- calibrate_delay();
-+
-+ arch_cpu_finalize_init();
-+
- pid_idr_init();
- anon_vma_init();
- #ifdef CONFIG_X86
-@@ -726,8 +729,6 @@ asmlinkage __visible void __init start_k
- delayacct_init();
-
-
-- arch_cpu_finalize_init();
--
- acpi_subsystem_init();
- arch_post_acpi_subsys_init();
- sfi_init_late();
diff --git a/debian/patches/bugfix/x86/gds/init-provide-arch_cpu_finalize_init.patch b/debian/patches/bugfix/x86/gds/init-provide-arch_cpu_finalize_init.patch
deleted file mode 100644
index 9e56c09a8..000000000
--- a/debian/patches/bugfix/x86/gds/init-provide-arch_cpu_finalize_init.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 11bc27b01a313cc489c807ceddb0a93a6770fd11 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:22 +0200
-Subject: init: Provide arch_cpu_finalize_init()
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 7725acaa4f0c04fbefb0e0d342635b967bb7d414 upstream
-
-check_bugs() has become a dumping ground for all sorts of activities to
-finalize the CPU initialization before running the rest of the init code.
-
-Most are empty, a few do actual bug checks, some do alternative patching
-and some cobble a CPU advertisement string together....
-
-Aside of that the current implementation requires duplicated function
-declaration and mostly empty header files for them.
-
-Provide a new function arch_cpu_finalize_init(). Provide a generic
-declaration if CONFIG_ARCH_HAS_CPU_FINALIZE_INIT is selected and a stub
-inline otherwise.
-
-This requires a temporary #ifdef in start_kernel() which will be removed
-along with check_bugs() once the architectures are converted over.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Link: https://lore.kernel.org/r/20230613224544.957805717@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/Kconfig | 3 +++
- include/linux/cpu.h | 6 ++++++
- init/main.c | 5 +++++
- 3 files changed, 14 insertions(+)
-
---- a/arch/Kconfig
-+++ b/arch/Kconfig
-@@ -249,6 +249,9 @@ config ARCH_HAS_FORTIFY_SOURCE
- config ARCH_HAS_SET_MEMORY
- bool
-
-+config ARCH_HAS_CPU_FINALIZE_INIT
-+ bool
-+
- # Select if arch init_task must go in the __init_task_data section
- config ARCH_TASK_STRUCT_ON_STACK
- bool
---- a/include/linux/cpu.h
-+++ b/include/linux/cpu.h
-@@ -170,6 +170,12 @@ void arch_cpu_idle_enter(void);
- void arch_cpu_idle_exit(void);
- void arch_cpu_idle_dead(void);
-
-+#ifdef CONFIG_ARCH_HAS_CPU_FINALIZE_INIT
-+void arch_cpu_finalize_init(void);
-+#else
-+static inline void arch_cpu_finalize_init(void) { }
-+#endif
-+
- int cpu_report_state(int cpu);
- int cpu_check_up_prepare(int cpu);
- void cpu_set_state_online(int cpu);
---- a/init/main.c
-+++ b/init/main.c
-@@ -726,7 +726,12 @@ asmlinkage __visible void __init start_k
- taskstats_init_early();
- delayacct_init();
-
-+
-+ arch_cpu_finalize_init();
-+ /* Temporary conditional until everything has been converted */
-+#ifndef CONFIG_ARCH_HAS_CPU_FINALIZE_INIT
- check_bugs();
-+#endif
-
- acpi_subsystem_init();
- arch_post_acpi_subsys_init();
diff --git a/debian/patches/bugfix/x86/gds/init-remove-check_bugs-leftovers.patch b/debian/patches/bugfix/x86/gds/init-remove-check_bugs-leftovers.patch
deleted file mode 100644
index 8698e892d..000000000
--- a/debian/patches/bugfix/x86/gds/init-remove-check_bugs-leftovers.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From eb6d42cbbc5b7384bebb9b783970c5b07ac10fc5 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:38 +0200
-Subject: init: Remove check_bugs() leftovers
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 61235b24b9cb37c13fcad5b9596d59a1afdcec30 upstream
-
-Everything is converted over to arch_cpu_finalize_init(). Remove the
-check_bugs() leftovers including the empty stubs in asm-generic, alpha,
-parisc, powerpc and xtensa.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
-Link: https://lore.kernel.org/r/20230613224545.553215951@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/alpha/include/asm/bugs.h | 20 --------------------
- arch/parisc/include/asm/bugs.h | 20 --------------------
- arch/powerpc/include/asm/bugs.h | 18 ------------------
- arch/xtensa/include/asm/bugs.h | 18 ------------------
- include/asm-generic/bugs.h | 11 -----------
- init/main.c | 5 -----
- 6 files changed, 92 deletions(-)
- delete mode 100644 arch/alpha/include/asm/bugs.h
- delete mode 100644 arch/parisc/include/asm/bugs.h
- delete mode 100644 arch/powerpc/include/asm/bugs.h
- delete mode 100644 arch/xtensa/include/asm/bugs.h
- delete mode 100644 include/asm-generic/bugs.h
-
---- a/arch/alpha/include/asm/bugs.h
-+++ /dev/null
-@@ -1,20 +0,0 @@
--/*
-- * include/asm-alpha/bugs.h
-- *
-- * Copyright (C) 1994 Linus Torvalds
-- */
--
--/*
-- * This is included by init/main.c to check for architecture-dependent bugs.
-- *
-- * Needs:
-- * void check_bugs(void);
-- */
--
--/*
-- * I don't know of any alpha bugs yet.. Nice chip
-- */
--
--static void check_bugs(void)
--{
--}
---- a/arch/parisc/include/asm/bugs.h
-+++ /dev/null
-@@ -1,20 +0,0 @@
--/* SPDX-License-Identifier: GPL-2.0 */
--/*
-- * include/asm-parisc/bugs.h
-- *
-- * Copyright (C) 1999 Mike Shaver
-- */
--
--/*
-- * This is included by init/main.c to check for architecture-dependent bugs.
-- *
-- * Needs:
-- * void check_bugs(void);
-- */
--
--#include <asm/processor.h>
--
--static inline void check_bugs(void)
--{
--// identify_cpu(&boot_cpu_data);
--}
---- a/arch/powerpc/include/asm/bugs.h
-+++ /dev/null
-@@ -1,18 +0,0 @@
--#ifndef _ASM_POWERPC_BUGS_H
--#define _ASM_POWERPC_BUGS_H
--
--/*
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version
-- * 2 of the License, or (at your option) any later version.
-- */
--
--/*
-- * This file is included by 'init/main.c' to check for
-- * architecture-dependent bugs.
-- */
--
--static inline void check_bugs(void) { }
--
--#endif /* _ASM_POWERPC_BUGS_H */
---- a/arch/xtensa/include/asm/bugs.h
-+++ /dev/null
-@@ -1,18 +0,0 @@
--/*
-- * include/asm-xtensa/bugs.h
-- *
-- * This is included by init/main.c to check for architecture-dependent bugs.
-- *
-- * Xtensa processors don't have any bugs. :)
-- *
-- * This file is subject to the terms and conditions of the GNU General
-- * Public License. See the file "COPYING" in the main directory of
-- * this archive for more details.
-- */
--
--#ifndef _XTENSA_BUGS_H
--#define _XTENSA_BUGS_H
--
--static void check_bugs(void) { }
--
--#endif /* _XTENSA_BUGS_H */
---- a/include/asm-generic/bugs.h
-+++ /dev/null
-@@ -1,11 +0,0 @@
--/* SPDX-License-Identifier: GPL-2.0 */
--#ifndef __ASM_GENERIC_BUGS_H
--#define __ASM_GENERIC_BUGS_H
--/*
-- * This file is included by 'init/main.c' to check for
-- * architecture-dependent bugs.
-- */
--
--static inline void check_bugs(void) { }
--
--#endif /* __ASM_GENERIC_BUGS_H */
---- a/init/main.c
-+++ b/init/main.c
-@@ -94,7 +94,6 @@
- #include <linux/mem_encrypt.h>
-
- #include <asm/io.h>
--#include <asm/bugs.h>
- #include <asm/setup.h>
- #include <asm/sections.h>
- #include <asm/cacheflush.h>
-@@ -728,10 +727,6 @@ asmlinkage __visible void __init start_k
-
-
- arch_cpu_finalize_init();
-- /* Temporary conditional until everything has been converted */
--#ifndef CONFIG_ARCH_HAS_CPU_FINALIZE_INIT
-- check_bugs();
--#endif
-
- acpi_subsystem_init();
- arch_post_acpi_subsys_init();
diff --git a/debian/patches/bugfix/x86/gds/init-x86-move-mem_encrypt_init-into-arch_cpu_finalize_init.patch b/debian/patches/bugfix/x86/gds/init-x86-move-mem_encrypt_init-into-arch_cpu_finalize_init.patch
deleted file mode 100644
index aede33ff2..000000000
--- a/debian/patches/bugfix/x86/gds/init-x86-move-mem_encrypt_init-into-arch_cpu_finalize_init.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 555b9962472818fba44eb42f31cfd1e118d20478 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:41 +0200
-Subject: init, x86: Move mem_encrypt_init() into arch_cpu_finalize_init()
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 439e17576eb47f26b78c5bbc72e344d4206d2327 upstream
-
-Invoke the X86ism mem_encrypt_init() from X86 arch_cpu_finalize_init() and
-remove the weak fallback from the core code.
-
-No functional change.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Link: https://lore.kernel.org/r/20230613224545.670360645@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/include/asm/mem_encrypt.h | 2 ++
- arch/x86/kernel/cpu/common.c | 11 +++++++++++
- init/main.c | 11 -----------
- 3 files changed, 13 insertions(+), 11 deletions(-)
-
---- a/arch/x86/include/asm/mem_encrypt.h
-+++ b/arch/x86/include/asm/mem_encrypt.h
-@@ -80,6 +80,8 @@ early_set_memory_decrypted(unsigned long
- static inline int __init
- early_set_memory_encrypted(unsigned long vaddr, unsigned long size) { return 0; }
-
-+static inline void mem_encrypt_init(void) { }
-+
- #define __bss_decrypted
-
- #endif /* CONFIG_AMD_MEM_ENCRYPT */
---- a/arch/x86/kernel/cpu/common.c
-+++ b/arch/x86/kernel/cpu/common.c
-@@ -17,6 +17,7 @@
- #include <linux/init.h>
- #include <linux/kprobes.h>
- #include <linux/kgdb.h>
-+#include <linux/mem_encrypt.h>
- #include <linux/smp.h>
- #include <linux/cpu.h>
- #include <linux/io.h>
-@@ -2151,4 +2152,14 @@ void __init arch_cpu_finalize_init(void)
- } else {
- fpu__init_check_bugs();
- }
-+
-+ /*
-+ * This needs to be called before any devices perform DMA
-+ * operations that might use the SWIOTLB bounce buffers. It will
-+ * mark the bounce buffers as decrypted so that their usage will
-+ * not cause "plain-text" data to be decrypted when accessed. It
-+ * must be called after late_time_init() so that Hyper-V x86/x64
-+ * hypercalls work when the SWIOTLB bounce buffers are decrypted.
-+ */
-+ mem_encrypt_init();
- }
---- a/init/main.c
-+++ b/init/main.c
-@@ -91,7 +91,6 @@
- #include <linux/cache.h>
- #include <linux/rodata_test.h>
- #include <linux/jump_label.h>
--#include <linux/mem_encrypt.h>
-
- #include <asm/io.h>
- #include <asm/setup.h>
-@@ -492,8 +491,6 @@ void __init __weak thread_stack_cache_in
- }
- #endif
-
--void __init __weak mem_encrypt_init(void) { }
--
- bool initcall_debug;
- core_param(initcall_debug, initcall_debug, bool, 0644);
-
-@@ -673,14 +670,6 @@ asmlinkage __visible void __init start_k
- */
- locking_selftest();
-
-- /*
-- * This needs to be called before any devices perform DMA
-- * operations that might use the SWIOTLB bounce buffers. It will
-- * mark the bounce buffers as decrypted so that their usage will
-- * not cause "plain-text" data to be decrypted when accessed.
-- */
-- mem_encrypt_init();
--
- #ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_start && !initrd_below_start_ok &&
- page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) {
diff --git a/debian/patches/bugfix/x86/gds/kvm-add-gds_no-support-to-kvm.patch b/debian/patches/bugfix/x86/gds/kvm-add-gds_no-support-to-kvm.patch
deleted file mode 100644
index e16870f6e..000000000
--- a/debian/patches/bugfix/x86/gds/kvm-add-gds_no-support-to-kvm.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From e9a103c76a5ffb605204f25222e6217931ff129b Mon Sep 17 00:00:00 2001
-From: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Date: Wed, 12 Jul 2023 19:43:14 -0700
-Subject: KVM: Add GDS_NO support to KVM
-
-From: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-
-commit 81ac7e5d741742d650b4ed6186c4826c1a0631a7 upstream
-
-Gather Data Sampling (GDS) is a transient execution attack using
-gather instructions from the AVX2 and AVX512 extensions. This attack
-allows malicious code to infer data that was previously stored in
-vector registers. Systems that are not vulnerable to GDS will set the
-GDS_NO bit of the IA32_ARCH_CAPABILITIES MSR. This is useful for VM
-guests that may think they are on vulnerable systems that are, in
-fact, not affected. Guests that are running on affected hosts where
-the mitigation is enabled are protected as if they were running
-on an unaffected system.
-
-On all hosts that are not affected or that are mitigated, set the
-GDS_NO bit.
-
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
-Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/kernel/cpu/bugs.c | 7 +++++++
- arch/x86/kvm/x86.c | 5 +++++
- 2 files changed, 12 insertions(+)
-
---- a/arch/x86/kernel/cpu/bugs.c
-+++ b/arch/x86/kernel/cpu/bugs.c
-@@ -628,6 +628,13 @@ static const char * const gds_strings[]
- [GDS_MITIGATION_HYPERVISOR] = "Unknown: Dependent on hypervisor status",
- };
-
-+bool gds_ucode_mitigated(void)
-+{
-+ return (gds_mitigation == GDS_MITIGATION_FULL ||
-+ gds_mitigation == GDS_MITIGATION_FULL_LOCKED);
-+}
-+EXPORT_SYMBOL_GPL(gds_ucode_mitigated);
-+
- void update_gds_msr(void)
- {
- u64 mcu_ctrl_after;
---- a/arch/x86/kvm/x86.c
-+++ b/arch/x86/kvm/x86.c
-@@ -217,6 +217,8 @@ struct kvm_stats_debugfs_item debugfs_en
-
- u64 __read_mostly host_xcr0;
-
-+extern bool gds_ucode_mitigated(void);
-+
- static int emulator_fix_hypercall(struct x86_emulate_ctxt *ctxt);
-
- static inline void kvm_async_pf_hash_reset(struct kvm_vcpu *vcpu)
-@@ -1224,6 +1226,9 @@ u64 kvm_get_arch_capabilities(void)
- /* Guests don't need to know "Fill buffer clear control" exists */
- data &= ~ARCH_CAP_FB_CLEAR_CTRL;
-
-+ if (!boot_cpu_has_bug(X86_BUG_GDS) || gds_ucode_mitigated())
-+ data |= ARCH_CAP_GDS_NO;
-+
- return data;
- }
-
diff --git a/debian/patches/bugfix/x86/gds/m68k-cpu-switch-to-arch_cpu_finalize_init.patch b/debian/patches/bugfix/x86/gds/m68k-cpu-switch-to-arch_cpu_finalize_init.patch
deleted file mode 100644
index 8cece9900..000000000
--- a/debian/patches/bugfix/x86/gds/m68k-cpu-switch-to-arch_cpu_finalize_init.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From ca442015ccef31abd0a73cd621c4a4da3a76d20b Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:30 +0200
-Subject: m68k/cpu: Switch to arch_cpu_finalize_init()
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 9ceecc2589b9d7cef6b321339ed8de484eac4b20 upstream
-
-check_bugs() is about to be phased out. Switch over to the new
-arch_cpu_finalize_init() implementation.
-
-No functional change.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
-Link: https://lore.kernel.org/r/20230613224545.254342916@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/m68k/Kconfig | 1 +
- arch/m68k/include/asm/bugs.h | 21 ---------------------
- arch/m68k/kernel/setup_mm.c | 3 ++-
- 3 files changed, 3 insertions(+), 22 deletions(-)
- delete mode 100644 arch/m68k/include/asm/bugs.h
-
---- a/arch/m68k/Kconfig
-+++ b/arch/m68k/Kconfig
-@@ -2,6 +2,7 @@
- config M68K
- bool
- default y
-+ select ARCH_HAS_CPU_FINALIZE_INIT if MMU
- select ARCH_HAS_SYNC_DMA_FOR_DEVICE if HAS_DMA
- select ARCH_MIGHT_HAVE_PC_PARPORT if ISA
- select ARCH_NO_COHERENT_DMA_MMAP if !MMU
---- a/arch/m68k/include/asm/bugs.h
-+++ /dev/null
-@@ -1,21 +0,0 @@
--/* SPDX-License-Identifier: GPL-2.0 */
--/*
-- * include/asm-m68k/bugs.h
-- *
-- * Copyright (C) 1994 Linus Torvalds
-- */
--
--/*
-- * This is included by init/main.c to check for architecture-dependent bugs.
-- *
-- * Needs:
-- * void check_bugs(void);
-- */
--
--#ifdef CONFIG_MMU
--extern void check_bugs(void); /* in arch/m68k/kernel/setup.c */
--#else
--static void check_bugs(void)
--{
--}
--#endif
---- a/arch/m68k/kernel/setup_mm.c
-+++ b/arch/m68k/kernel/setup_mm.c
-@@ -10,6 +10,7 @@
- */
-
- #include <linux/kernel.h>
-+#include <linux/cpu.h>
- #include <linux/mm.h>
- #include <linux/sched.h>
- #include <linux/delay.h>
-@@ -526,7 +527,7 @@ static int __init proc_hardware_init(voi
- module_init(proc_hardware_init);
- #endif
-
--void check_bugs(void)
-+void __init arch_cpu_finalize_init(void)
- {
- #if defined(CONFIG_FPU) && !defined(CONFIG_M68KFPU_EMU)
- if (m68k_fputype == 0) {
diff --git a/debian/patches/bugfix/x86/gds/mips-cpu-switch-to-arch_cpu_finalize_init.patch b/debian/patches/bugfix/x86/gds/mips-cpu-switch-to-arch_cpu_finalize_init.patch
deleted file mode 100644
index 575e1e0a5..000000000
--- a/debian/patches/bugfix/x86/gds/mips-cpu-switch-to-arch_cpu_finalize_init.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 2bedb079d39e87a51a6af0a9606dbd147a9bbfde Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:32 +0200
-Subject: mips/cpu: Switch to arch_cpu_finalize_init()
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 7f066a22fe353a827a402ee2835e81f045b1574d upstream
-
-check_bugs() is about to be phased out. Switch over to the new
-arch_cpu_finalize_init() implementation.
-
-No functional change.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Link: https://lore.kernel.org/r/20230613224545.312438573@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/mips/Kconfig | 1 +
- arch/mips/include/asm/bugs.h | 17 -----------------
- arch/mips/kernel/setup.c | 13 +++++++++++++
- 3 files changed, 14 insertions(+), 17 deletions(-)
-
---- a/arch/mips/Kconfig
-+++ b/arch/mips/Kconfig
-@@ -4,6 +4,7 @@ config MIPS
- default y
- select ARCH_BINFMT_ELF_STATE
- select ARCH_CLOCKSOURCE_DATA
-+ select ARCH_HAS_CPU_FINALIZE_INIT
- select ARCH_DISCARD_MEMBLOCK
- select ARCH_HAS_ELF_RANDOMIZE
- select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
---- a/arch/mips/include/asm/bugs.h
-+++ b/arch/mips/include/asm/bugs.h
-@@ -1,17 +1,11 @@
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
-- * This is included by init/main.c to check for architecture-dependent bugs.
-- *
- * Copyright (C) 2007 Maciej W. Rozycki
-- *
-- * Needs:
-- * void check_bugs(void);
- */
- #ifndef _ASM_BUGS_H
- #define _ASM_BUGS_H
-
- #include <linux/bug.h>
--#include <linux/delay.h>
- #include <linux/smp.h>
-
- #include <asm/cpu.h>
-@@ -31,17 +25,6 @@ static inline void check_bugs_early(void
- #endif
- }
-
--static inline void check_bugs(void)
--{
-- unsigned int cpu = smp_processor_id();
--
-- cpu_data[cpu].udelay_val = loops_per_jiffy;
-- check_bugs32();
--#ifdef CONFIG_64BIT
-- check_bugs64();
--#endif
--}
--
- static inline int r4k_daddiu_bug(void)
- {
- #ifdef CONFIG_64BIT
---- a/arch/mips/kernel/setup.c
-+++ b/arch/mips/kernel/setup.c
-@@ -11,6 +11,8 @@
- * Copyright (C) 2000, 2001, 2002, 2007 Maciej W. Rozycki
- */
- #include <linux/init.h>
-+#include <linux/cpu.h>
-+#include <linux/delay.h>
- #include <linux/ioport.h>
- #include <linux/export.h>
- #include <linux/screen_info.h>
-@@ -1108,3 +1110,14 @@ static int __init setnocoherentio(char *
- }
- early_param("nocoherentio", setnocoherentio);
- #endif
-+
-+void __init arch_cpu_finalize_init(void)
-+{
-+ unsigned int cpu = smp_processor_id();
-+
-+ cpu_data[cpu].udelay_val = loops_per_jiffy;
-+ check_bugs32();
-+
-+ if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
-+ check_bugs64();
-+}
diff --git a/debian/patches/bugfix/x86/gds/sh-cpu-switch-to-arch_cpu_finalize_init.patch b/debian/patches/bugfix/x86/gds/sh-cpu-switch-to-arch_cpu_finalize_init.patch
deleted file mode 100644
index 55c9d37fd..000000000
--- a/debian/patches/bugfix/x86/gds/sh-cpu-switch-to-arch_cpu_finalize_init.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-From 3ea1c65b457df5417ae78185f0381816b6d0c22c Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:33 +0200
-Subject: sh/cpu: Switch to arch_cpu_finalize_init()
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 01eb454e9bfe593f320ecbc9aaec60bf87cd453d upstream
-
-check_bugs() is about to be phased out. Switch over to the new
-arch_cpu_finalize_init() implementation.
-
-No functional change.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Link: https://lore.kernel.org/r/20230613224545.371697797@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/sh/Kconfig | 1
- arch/sh/include/asm/bugs.h | 78 ----------------------------------------
- arch/sh/include/asm/processor.h | 2 +
- arch/sh/kernel/idle.c | 1
- arch/sh/kernel/setup.c | 55 ++++++++++++++++++++++++++++
- 5 files changed, 59 insertions(+), 78 deletions(-)
- delete mode 100644 arch/sh/include/asm/bugs.h
-
---- a/arch/sh/Kconfig
-+++ b/arch/sh/Kconfig
-@@ -1,6 +1,7 @@
- # SPDX-License-Identifier: GPL-2.0
- config SUPERH
- def_bool y
-+ select ARCH_HAS_CPU_FINALIZE_INIT
- select ARCH_HAS_PTE_SPECIAL
- select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
- select ARCH_MIGHT_HAVE_PC_PARPORT
---- a/arch/sh/include/asm/bugs.h
-+++ /dev/null
-@@ -1,78 +0,0 @@
--/* SPDX-License-Identifier: GPL-2.0 */
--#ifndef __ASM_SH_BUGS_H
--#define __ASM_SH_BUGS_H
--
--/*
-- * This is included by init/main.c to check for architecture-dependent bugs.
-- *
-- * Needs:
-- * void check_bugs(void);
-- */
--
--/*
-- * I don't know of any Super-H bugs yet.
-- */
--
--#include <asm/processor.h>
--
--extern void select_idle_routine(void);
--
--static void __init check_bugs(void)
--{
-- extern unsigned long loops_per_jiffy;
-- char *p = &init_utsname()->machine[2]; /* "sh" */
--
-- select_idle_routine();
--
-- current_cpu_data.loops_per_jiffy = loops_per_jiffy;
--
-- switch (current_cpu_data.family) {
-- case CPU_FAMILY_SH2:
-- *p++ = '2';
-- break;
-- case CPU_FAMILY_SH2A:
-- *p++ = '2';
-- *p++ = 'a';
-- break;
-- case CPU_FAMILY_SH3:
-- *p++ = '3';
-- break;
-- case CPU_FAMILY_SH4:
-- *p++ = '4';
-- break;
-- case CPU_FAMILY_SH4A:
-- *p++ = '4';
-- *p++ = 'a';
-- break;
-- case CPU_FAMILY_SH4AL_DSP:
-- *p++ = '4';
-- *p++ = 'a';
-- *p++ = 'l';
-- *p++ = '-';
-- *p++ = 'd';
-- *p++ = 's';
-- *p++ = 'p';
-- break;
-- case CPU_FAMILY_SH5:
-- *p++ = '6';
-- *p++ = '4';
-- break;
-- case CPU_FAMILY_UNKNOWN:
-- /*
-- * Specifically use CPU_FAMILY_UNKNOWN rather than
-- * default:, so we're able to have the compiler whine
-- * about unhandled enumerations.
-- */
-- break;
-- }
--
-- printk("CPU: %s\n", get_cpu_subtype(&current_cpu_data));
--
--#ifndef __LITTLE_ENDIAN__
-- /* 'eb' means 'Endian Big' */
-- *p++ = 'e';
-- *p++ = 'b';
--#endif
-- *p = '\0';
--}
--#endif /* __ASM_SH_BUGS_H */
---- a/arch/sh/include/asm/processor.h
-+++ b/arch/sh/include/asm/processor.h
-@@ -173,6 +173,8 @@ extern unsigned int instruction_size(uns
- #define instruction_size(insn) (4)
- #endif
-
-+void select_idle_routine(void);
-+
- #endif /* __ASSEMBLY__ */
-
- #ifdef CONFIG_SUPERH32
---- a/arch/sh/kernel/idle.c
-+++ b/arch/sh/kernel/idle.c
-@@ -18,6 +18,7 @@
- #include <linux/smp.h>
- #include <linux/atomic.h>
- #include <asm/pgalloc.h>
-+#include <asm/processor.h>
- #include <asm/smp.h>
- #include <asm/bl_bit.h>
-
---- a/arch/sh/kernel/setup.c
-+++ b/arch/sh/kernel/setup.c
-@@ -42,6 +42,7 @@
- #include <asm/smp.h>
- #include <asm/mmu_context.h>
- #include <asm/mmzone.h>
-+#include <asm/processor.h>
- #include <asm/sparsemem.h>
-
- /*
-@@ -361,3 +362,57 @@ int test_mode_pin(int pin)
- {
- return sh_mv.mv_mode_pins() & pin;
- }
-+
-+void __init arch_cpu_finalize_init(void)
-+{
-+ char *p = &init_utsname()->machine[2]; /* "sh" */
-+
-+ select_idle_routine();
-+
-+ current_cpu_data.loops_per_jiffy = loops_per_jiffy;
-+
-+ switch (current_cpu_data.family) {
-+ case CPU_FAMILY_SH2:
-+ *p++ = '2';
-+ break;
-+ case CPU_FAMILY_SH2A:
-+ *p++ = '2';
-+ *p++ = 'a';
-+ break;
-+ case CPU_FAMILY_SH3:
-+ *p++ = '3';
-+ break;
-+ case CPU_FAMILY_SH4:
-+ *p++ = '4';
-+ break;
-+ case CPU_FAMILY_SH4A:
-+ *p++ = '4';
-+ *p++ = 'a';
-+ break;
-+ case CPU_FAMILY_SH4AL_DSP:
-+ *p++ = '4';
-+ *p++ = 'a';
-+ *p++ = 'l';
-+ *p++ = '-';
-+ *p++ = 'd';
-+ *p++ = 's';
-+ *p++ = 'p';
-+ break;
-+ case CPU_FAMILY_UNKNOWN:
-+ /*
-+ * Specifically use CPU_FAMILY_UNKNOWN rather than
-+ * default:, so we're able to have the compiler whine
-+ * about unhandled enumerations.
-+ */
-+ break;
-+ }
-+
-+ pr_info("CPU: %s\n", get_cpu_subtype(&current_cpu_data));
-+
-+#ifndef __LITTLE_ENDIAN__
-+ /* 'eb' means 'Endian Big' */
-+ *p++ = 'e';
-+ *p++ = 'b';
-+#endif
-+ *p = '\0';
-+}
diff --git a/debian/patches/bugfix/x86/gds/sparc-cpu-switch-to-arch_cpu_finalize_init.patch b/debian/patches/bugfix/x86/gds/sparc-cpu-switch-to-arch_cpu_finalize_init.patch
deleted file mode 100644
index a1677f487..000000000
--- a/debian/patches/bugfix/x86/gds/sparc-cpu-switch-to-arch_cpu_finalize_init.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From e7a2caf480097e1131b5239e95083c3e8995be07 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:35 +0200
-Subject: sparc/cpu: Switch to arch_cpu_finalize_init()
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 44ade508e3bfac45ae97864587de29eb1a881ec0 upstream
-
-check_bugs() is about to be phased out. Switch over to the new
-arch_cpu_finalize_init() implementation.
-
-No functional change.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
-Link: https://lore.kernel.org/r/20230613224545.431995857@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/sparc/Kconfig | 1 +
- arch/sparc/include/asm/bugs.h | 18 ------------------
- arch/sparc/kernel/setup_32.c | 7 +++++++
- 3 files changed, 8 insertions(+), 18 deletions(-)
- delete mode 100644 arch/sparc/include/asm/bugs.h
-
---- a/arch/sparc/Kconfig
-+++ b/arch/sparc/Kconfig
-@@ -12,6 +12,7 @@ config 64BIT
- config SPARC
- bool
- default y
-+ select ARCH_HAS_CPU_FINALIZE_INIT if !SMP
- select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
- select ARCH_MIGHT_HAVE_PC_SERIO
- select OF
---- a/arch/sparc/include/asm/bugs.h
-+++ /dev/null
-@@ -1,18 +0,0 @@
--/* SPDX-License-Identifier: GPL-2.0 */
--/* include/asm/bugs.h: Sparc probes for various bugs.
-- *
-- * Copyright (C) 1996, 2007 David S. Miller (davem@davemloft.net)
-- */
--
--#ifdef CONFIG_SPARC32
--#include <asm/cpudata.h>
--#endif
--
--extern unsigned long loops_per_jiffy;
--
--static void __init check_bugs(void)
--{
--#if defined(CONFIG_SPARC32) && !defined(CONFIG_SMP)
-- cpu_data(0).udelay_val = loops_per_jiffy;
--#endif
--}
---- a/arch/sparc/kernel/setup_32.c
-+++ b/arch/sparc/kernel/setup_32.c
-@@ -422,3 +422,10 @@ static int __init topology_init(void)
- }
-
- subsys_initcall(topology_init);
-+
-+#if defined(CONFIG_SPARC32) && !defined(CONFIG_SMP)
-+void __init arch_cpu_finalize_init(void)
-+{
-+ cpu_data(0).udelay_val = loops_per_jiffy;
-+}
-+#endif
diff --git a/debian/patches/bugfix/x86/gds/um-cpu-switch-to-arch_cpu_finalize_init.patch b/debian/patches/bugfix/x86/gds/um-cpu-switch-to-arch_cpu_finalize_init.patch
deleted file mode 100644
index 372822010..000000000
--- a/debian/patches/bugfix/x86/gds/um-cpu-switch-to-arch_cpu_finalize_init.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 760b926637a95305fe8b066e8943ef688607dc0e Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:36 +0200
-Subject: um/cpu: Switch to arch_cpu_finalize_init()
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 9349b5cd0908f8afe95529fc7a8cbb1417df9b0c upstream
-
-check_bugs() is about to be phased out. Switch over to the new
-arch_cpu_finalize_init() implementation.
-
-No functional change.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Acked-by: Richard Weinberger <richard@nod.at>
-Link: https://lore.kernel.org/r/20230613224545.493148694@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/um/Kconfig | 1 +
- arch/um/include/asm/bugs.h | 7 -------
- arch/um/kernel/um_arch.c | 3 ++-
- 3 files changed, 3 insertions(+), 8 deletions(-)
- delete mode 100644 arch/um/include/asm/bugs.h
-
---- a/arch/um/Kconfig
-+++ b/arch/um/Kconfig
-@@ -5,6 +5,7 @@ menu "UML-specific options"
- config UML
- bool
- default y
-+ select ARCH_HAS_CPU_FINALIZE_INIT
- select ARCH_HAS_KCOV
- select ARCH_NO_PREEMPT
- select HAVE_ARCH_AUDITSYSCALL
---- a/arch/um/include/asm/bugs.h
-+++ /dev/null
-@@ -1,7 +0,0 @@
--/* SPDX-License-Identifier: GPL-2.0 */
--#ifndef __UM_BUGS_H
--#define __UM_BUGS_H
--
--void check_bugs(void);
--
--#endif
---- a/arch/um/kernel/um_arch.c
-+++ b/arch/um/kernel/um_arch.c
-@@ -3,6 +3,7 @@
- * Licensed under the GPL
- */
-
-+#include <linux/cpu.h>
- #include <linux/delay.h>
- #include <linux/init.h>
- #include <linux/mm.h>
-@@ -352,7 +353,7 @@ void __init setup_arch(char **cmdline_p)
- setup_hostinfo(host_info, sizeof host_info);
- }
-
--void __init check_bugs(void)
-+void __init arch_cpu_finalize_init(void)
- {
- arch_check_bugs();
- os_check_bugs();
diff --git a/debian/patches/bugfix/x86/gds/x86-cpu-switch-to-arch_cpu_finalize_init.patch b/debian/patches/bugfix/x86/gds/x86-cpu-switch-to-arch_cpu_finalize_init.patch
deleted file mode 100644
index 7d9b171a2..000000000
--- a/debian/patches/bugfix/x86/gds/x86-cpu-switch-to-arch_cpu_finalize_init.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-From b3454eb2d26a6cecada04b38e72e255ae702ccdb Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:24 +0200
-Subject: x86/cpu: Switch to arch_cpu_finalize_init()
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 7c7077a72674402654f3291354720cd73cdf649e upstream
-
-check_bugs() is a dumping ground for finalizing the CPU bringup. Only parts of
-it has to do with actual CPU bugs.
-
-Split it apart into arch_cpu_finalize_init() and cpu_select_mitigations().
-
-Fixup the bogus 32bit comments while at it.
-
-No functional change.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de>
-Link: https://lore.kernel.org/r/20230613224545.019583869@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/Kconfig | 1
- arch/x86/include/asm/bugs.h | 2 -
- arch/x86/kernel/cpu/bugs.c | 51 ---------------------------------------
- arch/x86/kernel/cpu/common.c | 55 +++++++++++++++++++++++++++++++++++++++++++
- arch/x86/kernel/cpu/cpu.h | 1
- 5 files changed, 58 insertions(+), 52 deletions(-)
-
---- a/arch/x86/Kconfig
-+++ b/arch/x86/Kconfig
-@@ -50,6 +50,7 @@ config X86
- select ARCH_CLOCKSOURCE_DATA
- select ARCH_DISCARD_MEMBLOCK
- select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
-+ select ARCH_HAS_CPU_FINALIZE_INIT
- select ARCH_HAS_DEBUG_VIRTUAL
- select ARCH_HAS_DEVMEM_IS_ALLOWED
- select ARCH_HAS_ELF_RANDOMIZE
---- a/arch/x86/include/asm/bugs.h
-+++ b/arch/x86/include/asm/bugs.h
-@@ -4,8 +4,6 @@
-
- #include <asm/processor.h>
-
--extern void check_bugs(void);
--
- #if defined(CONFIG_CPU_SUP_INTEL)
- void check_mpx_erratum(struct cpuinfo_x86 *c);
- #else
---- a/arch/x86/kernel/cpu/bugs.c
-+++ b/arch/x86/kernel/cpu/bugs.c
-@@ -9,7 +9,6 @@
- * - Andrew D. Balsa (code cleanup).
- */
- #include <linux/init.h>
--#include <linux/utsname.h>
- #include <linux/cpu.h>
- #include <linux/module.h>
- #include <linux/nospec.h>
-@@ -25,9 +24,7 @@
- #include <asm/msr.h>
- #include <asm/vmx.h>
- #include <asm/paravirt.h>
--#include <asm/alternative.h>
- #include <asm/pgtable.h>
--#include <asm/set_memory.h>
- #include <asm/intel-family.h>
- #include <asm/e820/api.h>
- #include <asm/hypervisor.h>
-@@ -115,21 +112,8 @@ EXPORT_SYMBOL_GPL(mds_idle_clear);
- DEFINE_STATIC_KEY_FALSE(mmio_stale_data_clear);
- EXPORT_SYMBOL_GPL(mmio_stale_data_clear);
-
--void __init check_bugs(void)
-+void __init cpu_select_mitigations(void)
- {
-- identify_boot_cpu();
--
-- /*
-- * identify_boot_cpu() initialized SMT support information, let the
-- * core code know.
-- */
-- cpu_smt_check_topology();
--
-- if (!IS_ENABLED(CONFIG_SMP)) {
-- pr_info("CPU: ");
-- print_cpu_info(&boot_cpu_data);
-- }
--
- /*
- * Read the SPEC_CTRL MSR to account for reserved bits which may
- * have unknown values. AMD64_LS_CFG MSR is cached in the early AMD
-@@ -165,39 +149,6 @@ void __init check_bugs(void)
- l1tf_select_mitigation();
- md_clear_select_mitigation();
- srbds_select_mitigation();
--
-- arch_smt_update();
--
--#ifdef CONFIG_X86_32
-- /*
-- * Check whether we are able to run this kernel safely on SMP.
-- *
-- * - i386 is no longer supported.
-- * - In order to run on anything without a TSC, we need to be
-- * compiled for a i486.
-- */
-- if (boot_cpu_data.x86 < 4)
-- panic("Kernel requires i486+ for 'invlpg' and other features");
--
-- init_utsname()->machine[1] =
-- '0' + (boot_cpu_data.x86 > 6 ? 6 : boot_cpu_data.x86);
-- alternative_instructions();
--
-- fpu__init_check_bugs();
--#else /* CONFIG_X86_64 */
-- alternative_instructions();
--
-- /*
-- * Make sure the first 2MB area is not mapped by huge pages
-- * There are typically fixed size MTRRs in there and overlapping
-- * MTRRs into large pages causes slow downs.
-- *
-- * Right now we don't do that with gbpages because there seems
-- * very little benefit for that case.
-- */
-- if (!direct_gbpages)
-- set_memory_4k((unsigned long)__va(0), 1);
--#endif
- }
-
- /*
---- a/arch/x86/kernel/cpu/common.c
-+++ b/arch/x86/kernel/cpu/common.c
-@@ -13,14 +13,19 @@
- #include <linux/sched/mm.h>
- #include <linux/sched/clock.h>
- #include <linux/sched/task.h>
-+#include <linux/sched/smt.h>
- #include <linux/init.h>
- #include <linux/kprobes.h>
- #include <linux/kgdb.h>
- #include <linux/smp.h>
-+#include <linux/cpu.h>
- #include <linux/io.h>
- #include <linux/syscore_ops.h>
-
- #include <asm/stackprotector.h>
-+#include <linux/utsname.h>
-+
-+#include <asm/alternative.h>
- #include <asm/perf_event.h>
- #include <asm/mmu_context.h>
- #include <asm/archrandom.h>
-@@ -56,6 +61,7 @@
- #ifdef CONFIG_X86_LOCAL_APIC
- #include <asm/uv/uv.h>
- #endif
-+#include <asm/set_memory.h>
-
- #include "cpu.h"
-
-@@ -2097,3 +2103,52 @@ void microcode_check(void)
- pr_warn("x86/CPU: CPU features have changed after loading microcode, but might not take effect.\n");
- pr_warn("x86/CPU: Please consider either early loading through initrd/built-in or a potential BIOS update.\n");
- }
-+
-+void __init arch_cpu_finalize_init(void)
-+{
-+ identify_boot_cpu();
-+
-+ /*
-+ * identify_boot_cpu() initialized SMT support information, let the
-+ * core code know.
-+ */
-+ cpu_smt_check_topology();
-+
-+ if (!IS_ENABLED(CONFIG_SMP)) {
-+ pr_info("CPU: ");
-+ print_cpu_info(&boot_cpu_data);
-+ }
-+
-+ cpu_select_mitigations();
-+
-+ arch_smt_update();
-+
-+ if (IS_ENABLED(CONFIG_X86_32)) {
-+ /*
-+ * Check whether this is a real i386 which is not longer
-+ * supported and fixup the utsname.
-+ */
-+ if (boot_cpu_data.x86 < 4)
-+ panic("Kernel requires i486+ for 'invlpg' and other features");
-+
-+ init_utsname()->machine[1] =
-+ '0' + (boot_cpu_data.x86 > 6 ? 6 : boot_cpu_data.x86);
-+ }
-+
-+ alternative_instructions();
-+
-+ if (IS_ENABLED(CONFIG_X86_64)) {
-+ /*
-+ * Make sure the first 2MB area is not mapped by huge pages
-+ * There are typically fixed size MTRRs in there and overlapping
-+ * MTRRs into large pages causes slow downs.
-+ *
-+ * Right now we don't do that with gbpages because there seems
-+ * very little benefit for that case.
-+ */
-+ if (!direct_gbpages)
-+ set_memory_4k((unsigned long)__va(0), 1);
-+ } else {
-+ fpu__init_check_bugs();
-+ }
-+}
---- a/arch/x86/kernel/cpu/cpu.h
-+++ b/arch/x86/kernel/cpu/cpu.h
-@@ -79,6 +79,7 @@ extern void detect_ht(struct cpuinfo_x86
- extern void check_null_seg_clears_base(struct cpuinfo_x86 *c);
-
- unsigned int aperfmperf_get_khz(int cpu);
-+void cpu_select_mitigations(void);
-
- extern void x86_spec_ctrl_setup_ap(void);
- extern void update_srbds_msr(void);
diff --git a/debian/patches/bugfix/x86/gds/x86-fpu-mark-init-functions-__init.patch b/debian/patches/bugfix/x86/gds/x86-fpu-mark-init-functions-__init.patch
deleted file mode 100644
index b6e116465..000000000
--- a/debian/patches/bugfix/x86/gds/x86-fpu-mark-init-functions-__init.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 677d1e9bb0bff552b161e9058f1b6fdfd88ece91 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:45 +0200
-Subject: x86/fpu: Mark init functions __init
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 1703db2b90c91b2eb2d699519fc505fe431dde0e upstream
-
-No point in keeping them around.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Link: https://lore.kernel.org/r/20230613224545.841685728@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/kernel/fpu/init.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/arch/x86/kernel/fpu/init.c
-+++ b/arch/x86/kernel/fpu/init.c
-@@ -49,7 +49,7 @@ void fpu__init_cpu(void)
- fpu__init_cpu_xstate();
- }
-
--static bool fpu__probe_without_cpuid(void)
-+static bool __init fpu__probe_without_cpuid(void)
- {
- unsigned long cr0;
- u16 fsw, fcw;
-@@ -67,7 +67,7 @@ static bool fpu__probe_without_cpuid(voi
- return fsw == 0 && (fcw & 0x103f) == 0x003f;
- }
-
--static void fpu__init_system_early_generic(void)
-+static void __init fpu__init_system_early_generic(void)
- {
- if (!boot_cpu_has(X86_FEATURE_CPUID) &&
- !test_bit(X86_FEATURE_FPU, (unsigned long *)cpu_caps_cleared)) {
diff --git a/debian/patches/bugfix/x86/gds/x86-fpu-move-fpu-initialization-into-arch_cpu_finalize_init.patch b/debian/patches/bugfix/x86/gds/x86-fpu-move-fpu-initialization-into-arch_cpu_finalize_init.patch
deleted file mode 100644
index b0423f814..000000000
--- a/debian/patches/bugfix/x86/gds/x86-fpu-move-fpu-initialization-into-arch_cpu_finalize_init.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 8a3b312da29169625141ff9c984a796724240ac1 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:46 +0200
-Subject: x86/fpu: Move FPU initialization into arch_cpu_finalize_init()
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit b81fac906a8f9e682e513ddd95697ec7a20878d4 upstream
-
-Initializing the FPU during the early boot process is a pointless
-exercise. Early boot is convoluted and fragile enough.
-
-Nothing requires that the FPU is set up early. It has to be initialized
-before fork_init() because the task_struct size depends on the FPU register
-buffer size.
-
-Move the initialization to arch_cpu_finalize_init() which is the perfect
-place to do so.
-
-No functional change.
-
-This allows to remove quite some of the custom early command line parsing,
-but that's subject to the next installment.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Link: https://lore.kernel.org/r/20230613224545.902376621@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/kernel/cpu/common.c | 13 +++++++------
- arch/x86/kernel/smpboot.c | 1 +
- 2 files changed, 8 insertions(+), 6 deletions(-)
-
---- a/arch/x86/kernel/cpu/common.c
-+++ b/arch/x86/kernel/cpu/common.c
-@@ -1278,8 +1278,6 @@ static void __init early_identify_cpu(st
-
- cpu_set_bug_bits(c);
-
-- fpu__init_system();
--
- #ifdef CONFIG_X86_32
- /*
- * Regardless of whether PCID is enumerated, the SDM says
-@@ -1985,8 +1983,6 @@ void cpu_init(void)
- clear_all_debug_regs();
- dbg_restore_debug_regs();
-
-- fpu__init_cpu();
--
- if (is_uv_system())
- uv_cpu_init();
-
-@@ -2050,8 +2046,6 @@ void cpu_init(void)
- clear_all_debug_regs();
- dbg_restore_debug_regs();
-
-- fpu__init_cpu();
--
- load_fixmap_gdt(cpu);
- }
- #endif
-@@ -2136,6 +2130,13 @@ void __init arch_cpu_finalize_init(void)
- '0' + (boot_cpu_data.x86 > 6 ? 6 : boot_cpu_data.x86);
- }
-
-+ /*
-+ * Must be before alternatives because it might set or clear
-+ * feature bits.
-+ */
-+ fpu__init_system();
-+ fpu__init_cpu();
-+
- alternative_instructions();
-
- if (IS_ENABLED(CONFIG_X86_64)) {
---- a/arch/x86/kernel/smpboot.c
-+++ b/arch/x86/kernel/smpboot.c
-@@ -231,6 +231,7 @@ static void notrace start_secondary(void
- #endif
- load_current_idt();
- cpu_init();
-+ fpu__init_cpu();
- x86_cpuinit.early_percpu_clock_init();
- preempt_disable();
- smp_callin();
diff --git a/debian/patches/bugfix/x86/gds/x86-fpu-remove-cpuinfo-argument-from-init-functions.patch b/debian/patches/bugfix/x86/gds/x86-fpu-remove-cpuinfo-argument-from-init-functions.patch
deleted file mode 100644
index f5eddda28..000000000
--- a/debian/patches/bugfix/x86/gds/x86-fpu-remove-cpuinfo-argument-from-init-functions.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From a03b110dad183d18d01f0f8e370228c2747133e6 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 14 Jun 2023 01:39:43 +0200
-Subject: x86/fpu: Remove cpuinfo argument from init functions
-
-From: Thomas Gleixner <tglx@linutronix.de>
-
-commit 1f34bb2a24643e0087652d81078e4f616562738d upstream
-
-Nothing in the call chain requires it
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Link: https://lore.kernel.org/r/20230613224545.783704297@linutronix.de
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/include/asm/fpu/internal.h | 2 +-
- arch/x86/kernel/cpu/common.c | 2 +-
- arch/x86/kernel/fpu/init.c | 6 +++---
- 3 files changed, 5 insertions(+), 5 deletions(-)
-
---- a/arch/x86/include/asm/fpu/internal.h
-+++ b/arch/x86/include/asm/fpu/internal.h
-@@ -42,7 +42,7 @@ extern int dump_fpu(struct pt_regs *ptr
- extern void fpu__init_cpu(void);
- extern void fpu__init_system_xstate(void);
- extern void fpu__init_cpu_xstate(void);
--extern void fpu__init_system(struct cpuinfo_x86 *c);
-+extern void fpu__init_system(void);
- extern void fpu__init_check_bugs(void);
- extern void fpu__resume_cpu(void);
- extern u64 fpu__get_supported_xfeatures_mask(void);
---- a/arch/x86/kernel/cpu/common.c
-+++ b/arch/x86/kernel/cpu/common.c
-@@ -1278,7 +1278,7 @@ static void __init early_identify_cpu(st
-
- cpu_set_bug_bits(c);
-
-- fpu__init_system(c);
-+ fpu__init_system();
-
- #ifdef CONFIG_X86_32
- /*
---- a/arch/x86/kernel/fpu/init.c
-+++ b/arch/x86/kernel/fpu/init.c
-@@ -67,7 +67,7 @@ static bool fpu__probe_without_cpuid(voi
- return fsw == 0 && (fcw & 0x103f) == 0x003f;
- }
-
--static void fpu__init_system_early_generic(struct cpuinfo_x86 *c)
-+static void fpu__init_system_early_generic(void)
- {
- if (!boot_cpu_has(X86_FEATURE_CPUID) &&
- !test_bit(X86_FEATURE_FPU, (unsigned long *)cpu_caps_cleared)) {
-@@ -297,10 +297,10 @@ static void __init fpu__init_parse_early
- * Called on the boot CPU once per system bootup, to set up the initial
- * FPU state that is later cloned into all processes:
- */
--void __init fpu__init_system(struct cpuinfo_x86 *c)
-+void __init fpu__init_system(void)
- {
- fpu__init_parse_early_param();
-- fpu__init_system_early_generic(c);
-+ fpu__init_system_early_generic();
-
- /*
- * The FPU has to be operational for some of the
diff --git a/debian/patches/bugfix/x86/gds/x86-speculation-add-force-option-to-gds-mitigation.patch b/debian/patches/bugfix/x86/gds/x86-speculation-add-force-option-to-gds-mitigation.patch
deleted file mode 100644
index 65c4594b1..000000000
--- a/debian/patches/bugfix/x86/gds/x86-speculation-add-force-option-to-gds-mitigation.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From ead252286b6800873dd961075a36939f15e9b163 Mon Sep 17 00:00:00 2001
-From: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Date: Wed, 12 Jul 2023 19:43:12 -0700
-Subject: x86/speculation: Add force option to GDS mitigation
-
-From: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-
-commit 553a5c03e90a6087e88f8ff878335ef0621536fb upstream
-
-The Gather Data Sampling (GDS) vulnerability allows malicious software
-to infer stale data previously stored in vector registers. This may
-include sensitive data such as cryptographic keys. GDS is mitigated in
-microcode, and systems with up-to-date microcode are protected by
-default. However, any affected system that is running with older
-microcode will still be vulnerable to GDS attacks.
-
-Since the gather instructions used by the attacker are part of the
-AVX2 and AVX512 extensions, disabling these extensions prevents gather
-instructions from being executed, thereby mitigating the system from
-GDS. Disabling AVX2 is sufficient, but we don't have the granularity
-to do this. The XCR0[2] disables AVX, with no option to just disable
-AVX2.
-
-Add a kernel parameter gather_data_sampling=force that will enable the
-microcode mitigation if available, otherwise it will disable AVX on
-affected systems.
-
-This option will be ignored if cmdline mitigations=off.
-
-This is a *big* hammer. It is known to break buggy userspace that
-uses incomplete, buggy AVX enumeration. Unfortunately, such userspace
-does exist in the wild:
-
- https://www.mail-archive.com/bug-coreutils@gnu.org/msg33046.html
-
-[ dhansen: add some more ominous warnings about disabling AVX ]
-
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
-Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- Documentation/admin-guide/hw-vuln/gather_data_sampling.rst | 18 +++++++++--
- Documentation/admin-guide/kernel-parameters.txt | 8 ++++-
- arch/x86/kernel/cpu/bugs.c | 20 ++++++++++++-
- 3 files changed, 40 insertions(+), 6 deletions(-)
-
---- a/Documentation/admin-guide/hw-vuln/gather_data_sampling.rst
-+++ b/Documentation/admin-guide/hw-vuln/gather_data_sampling.rst
-@@ -60,14 +60,21 @@ bits:
- ================================ === ============================
-
- GDS can also be mitigated on systems that don't have updated microcode by
--disabling AVX. This can be done by setting "clearcpuid=avx" on the kernel
--command-line.
-+disabling AVX. This can be done by setting gather_data_sampling="force" or
-+"clearcpuid=avx" on the kernel command-line.
-+
-+If used, these options will disable AVX use by turning on XSAVE YMM support.
-+However, the processor will still enumerate AVX support. Userspace that
-+does not follow proper AVX enumeration to check both AVX *and* XSAVE YMM
-+support will break.
-
- Mitigation control on the kernel command line
- ---------------------------------------------
- The mitigation can be disabled by setting "gather_data_sampling=off" or
--"mitigations=off" on the kernel command line. Not specifying either will
--default to the mitigation being enabled.
-+"mitigations=off" on the kernel command line. Not specifying either will default
-+to the mitigation being enabled. Specifying "gather_data_sampling=force" will
-+use the microcode mitigation when available or disable AVX on affected systems
-+where the microcode hasn't been updated to include the mitigation.
-
- GDS System Information
- ------------------------
-@@ -83,6 +90,9 @@ The possible values contained in this fi
- Vulnerable Processor vulnerable and mitigation disabled.
- Vulnerable: No microcode Processor vulnerable and microcode is missing
- mitigation.
-+ Mitigation: AVX disabled,
-+ no microcode Processor is vulnerable and microcode is missing
-+ mitigation. AVX disabled as mitigation.
- Mitigation: Microcode Processor is vulnerable and mitigation is in
- effect.
- Mitigation: Microcode (locked) Processor is vulnerable and mitigation is in
---- a/Documentation/admin-guide/kernel-parameters.txt
-+++ b/Documentation/admin-guide/kernel-parameters.txt
-@@ -1300,7 +1300,13 @@
-
- This issue is mitigated by default in updated microcode.
- The mitigation may have a performance impact but can be
-- disabled.
-+ disabled. On systems without the microcode mitigation
-+ disabling AVX serves as a mitigation.
-+
-+ force: Disable AVX to mitigate systems without
-+ microcode mitigation. No effect if the microcode
-+ mitigation is present. Known to cause crashes in
-+ userspace with buggy AVX enumeration.
-
- off: Disable GDS mitigation.
-
---- a/arch/x86/kernel/cpu/bugs.c
-+++ b/arch/x86/kernel/cpu/bugs.c
-@@ -607,6 +607,7 @@ early_param("srbds", srbds_parse_cmdline
- enum gds_mitigations {
- GDS_MITIGATION_OFF,
- GDS_MITIGATION_UCODE_NEEDED,
-+ GDS_MITIGATION_FORCE,
- GDS_MITIGATION_FULL,
- GDS_MITIGATION_FULL_LOCKED,
- GDS_MITIGATION_HYPERVISOR,
-@@ -617,6 +618,7 @@ static enum gds_mitigations gds_mitigati
- static const char * const gds_strings[] = {
- [GDS_MITIGATION_OFF] = "Vulnerable",
- [GDS_MITIGATION_UCODE_NEEDED] = "Vulnerable: No microcode",
-+ [GDS_MITIGATION_FORCE] = "Mitigation: AVX disabled, no microcode",
- [GDS_MITIGATION_FULL] = "Mitigation: Microcode",
- [GDS_MITIGATION_FULL_LOCKED] = "Mitigation: Microcode (locked)",
- [GDS_MITIGATION_HYPERVISOR] = "Unknown: Dependent on hypervisor status",
-@@ -642,6 +644,7 @@ void update_gds_msr(void)
- rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
- mcu_ctrl &= ~GDS_MITG_DIS;
- break;
-+ case GDS_MITIGATION_FORCE:
- case GDS_MITIGATION_UCODE_NEEDED:
- case GDS_MITIGATION_HYPERVISOR:
- return;
-@@ -676,10 +679,23 @@ static void __init gds_select_mitigation
-
- /* No microcode */
- if (!(x86_read_arch_cap_msr() & ARCH_CAP_GDS_CTRL)) {
-- gds_mitigation = GDS_MITIGATION_UCODE_NEEDED;
-+ if (gds_mitigation == GDS_MITIGATION_FORCE) {
-+ /*
-+ * This only needs to be done on the boot CPU so do it
-+ * here rather than in update_gds_msr()
-+ */
-+ setup_clear_cpu_cap(X86_FEATURE_AVX);
-+ pr_warn("Microcode update needed! Disabling AVX as mitigation.\n");
-+ } else {
-+ gds_mitigation = GDS_MITIGATION_UCODE_NEEDED;
-+ }
- goto out;
- }
-
-+ /* Microcode has mitigation, use it */
-+ if (gds_mitigation == GDS_MITIGATION_FORCE)
-+ gds_mitigation = GDS_MITIGATION_FULL;
-+
- rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
- if (mcu_ctrl & GDS_MITG_LOCKED) {
- if (gds_mitigation == GDS_MITIGATION_OFF)
-@@ -710,6 +726,8 @@ static int __init gds_parse_cmdline(char
-
- if (!strcmp(str, "off"))
- gds_mitigation = GDS_MITIGATION_OFF;
-+ else if (!strcmp(str, "force"))
-+ gds_mitigation = GDS_MITIGATION_FORCE;
-
- return 0;
- }
diff --git a/debian/patches/bugfix/x86/gds/x86-speculation-add-gather-data-sampling-mitigation.patch b/debian/patches/bugfix/x86/gds/x86-speculation-add-gather-data-sampling-mitigation.patch
deleted file mode 100644
index c426811c6..000000000
--- a/debian/patches/bugfix/x86/gds/x86-speculation-add-gather-data-sampling-mitigation.patch
+++ /dev/null
@@ -1,562 +0,0 @@
-From d63b3f0e819275ee64648eb01330aad3e347d9ba Mon Sep 17 00:00:00 2001
-From: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Date: Wed, 12 Jul 2023 19:43:11 -0700
-Subject: x86/speculation: Add Gather Data Sampling mitigation
-
-From: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-
-commit 8974eb588283b7d44a7c91fa09fcbaf380339f3a upstream
-
-Gather Data Sampling (GDS) is a hardware vulnerability which allows
-unprivileged speculative access to data which was previously stored in
-vector registers.
-
-Intel processors that support AVX2 and AVX512 have gather instructions
-that fetch non-contiguous data elements from memory. On vulnerable
-hardware, when a gather instruction is transiently executed and
-encounters a fault, stale data from architectural or internal vector
-registers may get transiently stored to the destination vector
-register allowing an attacker to infer the stale data using typical
-side channel techniques like cache timing attacks.
-
-This mitigation is different from many earlier ones for two reasons.
-First, it is enabled by default and a bit must be set to *DISABLE* it.
-This is the opposite of normal mitigation polarity. This means GDS can
-be mitigated simply by updating microcode and leaving the new control
-bit alone.
-
-Second, GDS has a "lock" bit. This lock bit is there because the
-mitigation affects the hardware security features KeyLocker and SGX.
-It needs to be enabled and *STAY* enabled for these features to be
-mitigated against GDS.
-
-The mitigation is enabled in the microcode by default. Disable it by
-setting gather_data_sampling=off or by disabling all mitigations with
-mitigations=off. The mitigation status can be checked by reading:
-
- /sys/devices/system/cpu/vulnerabilities/gather_data_sampling
-
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
-Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- Documentation/ABI/testing/sysfs-devices-system-cpu | 11 -
- Documentation/admin-guide/hw-vuln/gather_data_sampling.rst | 99 +++++++++
- Documentation/admin-guide/hw-vuln/index.rst | 1
- Documentation/admin-guide/kernel-parameters.txt | 33 ++-
- arch/x86/include/asm/cpufeatures.h | 1
- arch/x86/include/asm/msr-index.h | 11 +
- arch/x86/kernel/cpu/bugs.c | 129 +++++++++++++
- arch/x86/kernel/cpu/common.c | 34 ++-
- arch/x86/kernel/cpu/cpu.h | 1
- drivers/base/cpu.c | 8
- 10 files changed, 305 insertions(+), 23 deletions(-)
- create mode 100644 Documentation/admin-guide/hw-vuln/gather_data_sampling.rst
-
---- a/Documentation/ABI/testing/sysfs-devices-system-cpu
-+++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
-@@ -472,16 +472,17 @@ Description: information about CPUs hete
- cpu_capacity: capacity of cpu#.
-
- What: /sys/devices/system/cpu/vulnerabilities
-+ /sys/devices/system/cpu/vulnerabilities/gather_data_sampling
-+ /sys/devices/system/cpu/vulnerabilities/itlb_multihit
-+ /sys/devices/system/cpu/vulnerabilities/l1tf
-+ /sys/devices/system/cpu/vulnerabilities/mds
- /sys/devices/system/cpu/vulnerabilities/meltdown
-+ /sys/devices/system/cpu/vulnerabilities/mmio_stale_data
-+ /sys/devices/system/cpu/vulnerabilities/spec_store_bypass
- /sys/devices/system/cpu/vulnerabilities/spectre_v1
- /sys/devices/system/cpu/vulnerabilities/spectre_v2
-- /sys/devices/system/cpu/vulnerabilities/spec_store_bypass
-- /sys/devices/system/cpu/vulnerabilities/l1tf
-- /sys/devices/system/cpu/vulnerabilities/mds
- /sys/devices/system/cpu/vulnerabilities/srbds
- /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
-- /sys/devices/system/cpu/vulnerabilities/itlb_multihit
-- /sys/devices/system/cpu/vulnerabilities/mmio_stale_data
- Date: January 2018
- Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
- Description: Information about CPU vulnerabilities
---- /dev/null
-+++ b/Documentation/admin-guide/hw-vuln/gather_data_sampling.rst
-@@ -0,0 +1,99 @@
-+.. SPDX-License-Identifier: GPL-2.0
-+
-+GDS - Gather Data Sampling
-+==========================
-+
-+Gather Data Sampling is a hardware vulnerability which allows unprivileged
-+speculative access to data which was previously stored in vector registers.
-+
-+Problem
-+-------
-+When a gather instruction performs loads from memory, different data elements
-+are merged into the destination vector register. However, when a gather
-+instruction that is transiently executed encounters a fault, stale data from
-+architectural or internal vector registers may get transiently forwarded to the
-+destination vector register instead. This will allow a malicious attacker to
-+infer stale data using typical side channel techniques like cache timing
-+attacks. GDS is a purely sampling-based attack.
-+
-+The attacker uses gather instructions to infer the stale vector register data.
-+The victim does not need to do anything special other than use the vector
-+registers. The victim does not need to use gather instructions to be
-+vulnerable.
-+
-+Because the buffers are shared between Hyper-Threads cross Hyper-Thread attacks
-+are possible.
-+
-+Attack scenarios
-+----------------
-+Without mitigation, GDS can infer stale data across virtually all
-+permission boundaries:
-+
-+ Non-enclaves can infer SGX enclave data
-+ Userspace can infer kernel data
-+ Guests can infer data from hosts
-+ Guest can infer guest from other guests
-+ Users can infer data from other users
-+
-+Because of this, it is important to ensure that the mitigation stays enabled in
-+lower-privilege contexts like guests and when running outside SGX enclaves.
-+
-+The hardware enforces the mitigation for SGX. Likewise, VMMs should ensure
-+that guests are not allowed to disable the GDS mitigation. If a host erred and
-+allowed this, a guest could theoretically disable GDS mitigation, mount an
-+attack, and re-enable it.
-+
-+Mitigation mechanism
-+--------------------
-+This issue is mitigated in microcode. The microcode defines the following new
-+bits:
-+
-+ ================================ === ============================
-+ IA32_ARCH_CAPABILITIES[GDS_CTRL] R/O Enumerates GDS vulnerability
-+ and mitigation support.
-+ IA32_ARCH_CAPABILITIES[GDS_NO] R/O Processor is not vulnerable.
-+ IA32_MCU_OPT_CTRL[GDS_MITG_DIS] R/W Disables the mitigation
-+ 0 by default.
-+ IA32_MCU_OPT_CTRL[GDS_MITG_LOCK] R/W Locks GDS_MITG_DIS=0. Writes
-+ to GDS_MITG_DIS are ignored
-+ Can't be cleared once set.
-+ ================================ === ============================
-+
-+GDS can also be mitigated on systems that don't have updated microcode by
-+disabling AVX. This can be done by setting "clearcpuid=avx" on the kernel
-+command-line.
-+
-+Mitigation control on the kernel command line
-+---------------------------------------------
-+The mitigation can be disabled by setting "gather_data_sampling=off" or
-+"mitigations=off" on the kernel command line. Not specifying either will
-+default to the mitigation being enabled.
-+
-+GDS System Information
-+------------------------
-+The kernel provides vulnerability status information through sysfs. For
-+GDS this can be accessed by the following sysfs file:
-+
-+/sys/devices/system/cpu/vulnerabilities/gather_data_sampling
-+
-+The possible values contained in this file are:
-+
-+ ============================== =============================================
-+ Not affected Processor not vulnerable.
-+ Vulnerable Processor vulnerable and mitigation disabled.
-+ Vulnerable: No microcode Processor vulnerable and microcode is missing
-+ mitigation.
-+ Mitigation: Microcode Processor is vulnerable and mitigation is in
-+ effect.
-+ Mitigation: Microcode (locked) Processor is vulnerable and mitigation is in
-+ effect and cannot be disabled.
-+ Unknown: Dependent on
-+ hypervisor status Running on a virtual guest processor that is
-+ affected but with no way to know if host
-+ processor is mitigated or vulnerable.
-+ ============================== =============================================
-+
-+GDS Default mitigation
-+----------------------
-+The updated microcode will enable the mitigation by default. The kernel's
-+default action is to leave the mitigation enabled.
---- a/Documentation/admin-guide/hw-vuln/index.rst
-+++ b/Documentation/admin-guide/hw-vuln/index.rst
-@@ -16,3 +16,4 @@ are configurable at compile, boot or run
- multihit.rst
- special-register-buffer-data-sampling.rst
- processor_mmio_stale_data.rst
-+ gather_data_sampling.rst
---- a/Documentation/admin-guide/kernel-parameters.txt
-+++ b/Documentation/admin-guide/kernel-parameters.txt
-@@ -1290,6 +1290,20 @@
- Format: off | on
- default: on
-
-+ gather_data_sampling=
-+ [X86,INTEL] Control the Gather Data Sampling (GDS)
-+ mitigation.
-+
-+ Gather Data Sampling is a hardware vulnerability which
-+ allows unprivileged speculative access to data which was
-+ previously stored in vector registers.
-+
-+ This issue is mitigated by default in updated microcode.
-+ The mitigation may have a performance impact but can be
-+ disabled.
-+
-+ off: Disable GDS mitigation.
-+
- gcov_persist= [GCOV] When non-zero (default), profiling data for
- kernel modules is saved and remains accessible via
- debugfs, even when the module is unloaded/reloaded.
-@@ -2555,22 +2569,23 @@
- Disable all optional CPU mitigations. This
- improves system performance, but it may also
- expose users to several CPU vulnerabilities.
-- Equivalent to: nopti [X86,PPC]
-+ Equivalent to: gather_data_sampling=off [X86]
- kpti=0 [ARM64]
-- nospectre_v1 [PPC]
-+ kvm.nx_huge_pages=off [X86]
-+ l1tf=off [X86]
-+ mds=off [X86]
-+ mmio_stale_data=off [X86]
-+ no_entry_flush [PPC]
-+ no_uaccess_flush [PPC]
- nobp=0 [S390]
-+ nopti [X86,PPC]
-+ nospectre_v1 [PPC]
- nospectre_v1 [X86]
- nospectre_v2 [X86,PPC,S390,ARM64]
-- spectre_v2_user=off [X86]
- spec_store_bypass_disable=off [X86,PPC]
-+ spectre_v2_user=off [X86]
- ssbd=force-off [ARM64]
-- l1tf=off [X86]
-- mds=off [X86]
- tsx_async_abort=off [X86]
-- kvm.nx_huge_pages=off [X86]
-- no_entry_flush [PPC]
-- no_uaccess_flush [PPC]
-- mmio_stale_data=off [X86]
-
- Exceptions:
- This does not have any effect on
---- a/arch/x86/include/asm/cpufeatures.h
-+++ b/arch/x86/include/asm/cpufeatures.h
-@@ -409,5 +409,6 @@
- #define X86_BUG_MMIO_UNKNOWN X86_BUG(26) /* CPU is too old and its MMIO Stale Data status is unknown */
- #define X86_BUG_RETBLEED X86_BUG(27) /* CPU is affected by RETBleed */
- #define X86_BUG_EIBRS_PBRSB X86_BUG(28) /* EIBRS is vulnerable to Post Barrier RSB Predictions */
-+#define X86_BUG_GDS X86_BUG(29) /* CPU is affected by Gather Data Sampling */
-
- #endif /* _ASM_X86_CPUFEATURES_H */
---- a/arch/x86/include/asm/msr-index.h
-+++ b/arch/x86/include/asm/msr-index.h
-@@ -138,6 +138,15 @@
- * Not susceptible to Post-Barrier
- * Return Stack Buffer Predictions.
- */
-+#define ARCH_CAP_GDS_CTRL BIT(25) /*
-+ * CPU is vulnerable to Gather
-+ * Data Sampling (GDS) and
-+ * has controls for mitigation.
-+ */
-+#define ARCH_CAP_GDS_NO BIT(26) /*
-+ * CPU is not vulnerable to Gather
-+ * Data Sampling (GDS).
-+ */
-
- #define MSR_IA32_FLUSH_CMD 0x0000010b
- #define L1D_FLUSH BIT(0) /*
-@@ -156,6 +165,8 @@
- #define MSR_IA32_MCU_OPT_CTRL 0x00000123
- #define RNGDS_MITG_DIS BIT(0)
- #define FB_CLEAR_DIS BIT(3) /* CPU Fill buffer clear disable */
-+#define GDS_MITG_DIS BIT(4) /* Disable GDS mitigation */
-+#define GDS_MITG_LOCKED BIT(5) /* GDS mitigation locked */
-
- #define MSR_IA32_SYSENTER_CS 0x00000174
- #define MSR_IA32_SYSENTER_ESP 0x00000175
---- a/arch/x86/kernel/cpu/bugs.c
-+++ b/arch/x86/kernel/cpu/bugs.c
-@@ -44,6 +44,7 @@ static void __init md_clear_select_mitig
- static void __init taa_select_mitigation(void);
- static void __init mmio_select_mitigation(void);
- static void __init srbds_select_mitigation(void);
-+static void __init gds_select_mitigation(void);
-
- /* The base value of the SPEC_CTRL MSR without task-specific bits set */
- u64 x86_spec_ctrl_base;
-@@ -149,6 +150,7 @@ void __init cpu_select_mitigations(void)
- l1tf_select_mitigation();
- md_clear_select_mitigation();
- srbds_select_mitigation();
-+ gds_select_mitigation();
- }
-
- /*
-@@ -600,6 +602,120 @@ static int __init srbds_parse_cmdline(ch
- early_param("srbds", srbds_parse_cmdline);
-
- #undef pr_fmt
-+#define pr_fmt(fmt) "GDS: " fmt
-+
-+enum gds_mitigations {
-+ GDS_MITIGATION_OFF,
-+ GDS_MITIGATION_UCODE_NEEDED,
-+ GDS_MITIGATION_FULL,
-+ GDS_MITIGATION_FULL_LOCKED,
-+ GDS_MITIGATION_HYPERVISOR,
-+};
-+
-+static enum gds_mitigations gds_mitigation __ro_after_init = GDS_MITIGATION_FULL;
-+
-+static const char * const gds_strings[] = {
-+ [GDS_MITIGATION_OFF] = "Vulnerable",
-+ [GDS_MITIGATION_UCODE_NEEDED] = "Vulnerable: No microcode",
-+ [GDS_MITIGATION_FULL] = "Mitigation: Microcode",
-+ [GDS_MITIGATION_FULL_LOCKED] = "Mitigation: Microcode (locked)",
-+ [GDS_MITIGATION_HYPERVISOR] = "Unknown: Dependent on hypervisor status",
-+};
-+
-+void update_gds_msr(void)
-+{
-+ u64 mcu_ctrl_after;
-+ u64 mcu_ctrl;
-+
-+ switch (gds_mitigation) {
-+ case GDS_MITIGATION_OFF:
-+ rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
-+ mcu_ctrl |= GDS_MITG_DIS;
-+ break;
-+ case GDS_MITIGATION_FULL_LOCKED:
-+ /*
-+ * The LOCKED state comes from the boot CPU. APs might not have
-+ * the same state. Make sure the mitigation is enabled on all
-+ * CPUs.
-+ */
-+ case GDS_MITIGATION_FULL:
-+ rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
-+ mcu_ctrl &= ~GDS_MITG_DIS;
-+ break;
-+ case GDS_MITIGATION_UCODE_NEEDED:
-+ case GDS_MITIGATION_HYPERVISOR:
-+ return;
-+ };
-+
-+ wrmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
-+
-+ /*
-+ * Check to make sure that the WRMSR value was not ignored. Writes to
-+ * GDS_MITG_DIS will be ignored if this processor is locked but the boot
-+ * processor was not.
-+ */
-+ rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl_after);
-+ WARN_ON_ONCE(mcu_ctrl != mcu_ctrl_after);
-+}
-+
-+static void __init gds_select_mitigation(void)
-+{
-+ u64 mcu_ctrl;
-+
-+ if (!boot_cpu_has_bug(X86_BUG_GDS))
-+ return;
-+
-+ if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) {
-+ gds_mitigation = GDS_MITIGATION_HYPERVISOR;
-+ goto out;
-+ }
-+
-+ if (cpu_mitigations_off())
-+ gds_mitigation = GDS_MITIGATION_OFF;
-+ /* Will verify below that mitigation _can_ be disabled */
-+
-+ /* No microcode */
-+ if (!(x86_read_arch_cap_msr() & ARCH_CAP_GDS_CTRL)) {
-+ gds_mitigation = GDS_MITIGATION_UCODE_NEEDED;
-+ goto out;
-+ }
-+
-+ rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
-+ if (mcu_ctrl & GDS_MITG_LOCKED) {
-+ if (gds_mitigation == GDS_MITIGATION_OFF)
-+ pr_warn("Mitigation locked. Disable failed.\n");
-+
-+ /*
-+ * The mitigation is selected from the boot CPU. All other CPUs
-+ * _should_ have the same state. If the boot CPU isn't locked
-+ * but others are then update_gds_msr() will WARN() of the state
-+ * mismatch. If the boot CPU is locked update_gds_msr() will
-+ * ensure the other CPUs have the mitigation enabled.
-+ */
-+ gds_mitigation = GDS_MITIGATION_FULL_LOCKED;
-+ }
-+
-+ update_gds_msr();
-+out:
-+ pr_info("%s\n", gds_strings[gds_mitigation]);
-+}
-+
-+static int __init gds_parse_cmdline(char *str)
-+{
-+ if (!str)
-+ return -EINVAL;
-+
-+ if (!boot_cpu_has_bug(X86_BUG_GDS))
-+ return 0;
-+
-+ if (!strcmp(str, "off"))
-+ gds_mitigation = GDS_MITIGATION_OFF;
-+
-+ return 0;
-+}
-+early_param("gather_data_sampling", gds_parse_cmdline);
-+
-+#undef pr_fmt
- #define pr_fmt(fmt) "Spectre V1 : " fmt
-
- enum spectre_v1_mitigation {
-@@ -2147,6 +2263,11 @@ static ssize_t retbleed_show_state(char
- return sprintf(buf, "%s\n", retbleed_strings[retbleed_mitigation]);
- }
-
-+static ssize_t gds_show_state(char *buf)
-+{
-+ return sysfs_emit(buf, "%s\n", gds_strings[gds_mitigation]);
-+}
-+
- static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr,
- char *buf, unsigned int bug)
- {
-@@ -2196,6 +2317,9 @@ static ssize_t cpu_show_common(struct de
- case X86_BUG_RETBLEED:
- return retbleed_show_state(buf);
-
-+ case X86_BUG_GDS:
-+ return gds_show_state(buf);
-+
- default:
- break;
- }
-@@ -2260,4 +2384,9 @@ ssize_t cpu_show_retbleed(struct device
- {
- return cpu_show_common(dev, attr, buf, X86_BUG_RETBLEED);
- }
-+
-+ssize_t cpu_show_gds(struct device *dev, struct device_attribute *attr, char *buf)
-+{
-+ return cpu_show_common(dev, attr, buf, X86_BUG_GDS);
-+}
- #endif
---- a/arch/x86/kernel/cpu/common.c
-+++ b/arch/x86/kernel/cpu/common.c
-@@ -1047,6 +1047,8 @@ static const __initconst struct x86_cpu_
- #define MMIO_SBDS BIT(2)
- /* CPU is affected by RETbleed, speculating where you would not expect it */
- #define RETBLEED BIT(3)
-+/* CPU is affected by GDS */
-+#define GDS BIT(4)
-
- static const struct x86_cpu_id cpu_vuln_blacklist[] __initconst = {
- VULNBL_INTEL_STEPPINGS(IVYBRIDGE, X86_STEPPING_ANY, SRBDS),
-@@ -1059,18 +1061,20 @@ static const struct x86_cpu_id cpu_vuln_
- VULNBL_INTEL_STEPPINGS(BROADWELL_X, X86_STEPPING_ANY, MMIO),
- VULNBL_INTEL_STEPPINGS(BROADWELL_CORE, X86_STEPPING_ANY, SRBDS),
- VULNBL_INTEL_STEPPINGS(SKYLAKE_MOBILE, X86_STEPPING_ANY, SRBDS | MMIO | RETBLEED),
-- VULNBL_INTEL_STEPPINGS(SKYLAKE_X, X86_STEPPING_ANY, MMIO | RETBLEED),
-+ VULNBL_INTEL_STEPPINGS(SKYLAKE_X, X86_STEPPING_ANY, MMIO | RETBLEED | GDS),
- VULNBL_INTEL_STEPPINGS(SKYLAKE_DESKTOP, X86_STEPPING_ANY, SRBDS | MMIO | RETBLEED),
-- VULNBL_INTEL_STEPPINGS(KABYLAKE_MOBILE, X86_STEPPING_ANY, SRBDS | MMIO | RETBLEED),
-- VULNBL_INTEL_STEPPINGS(KABYLAKE_DESKTOP,X86_STEPPING_ANY, SRBDS | MMIO | RETBLEED),
-+ VULNBL_INTEL_STEPPINGS(KABYLAKE_MOBILE, X86_STEPPING_ANY, SRBDS | MMIO | RETBLEED | GDS),
-+ VULNBL_INTEL_STEPPINGS(KABYLAKE_DESKTOP,X86_STEPPING_ANY, SRBDS | MMIO | RETBLEED | GDS),
- VULNBL_INTEL_STEPPINGS(CANNONLAKE_MOBILE,X86_STEPPING_ANY, RETBLEED),
-- VULNBL_INTEL_STEPPINGS(ICELAKE_MOBILE, X86_STEPPING_ANY, MMIO | MMIO_SBDS | RETBLEED),
-- VULNBL_INTEL_STEPPINGS(ICELAKE_XEON_D, X86_STEPPING_ANY, MMIO),
-- VULNBL_INTEL_STEPPINGS(ICELAKE_X, X86_STEPPING_ANY, MMIO),
-- VULNBL_INTEL_STEPPINGS(COMETLAKE, X86_STEPPING_ANY, MMIO | MMIO_SBDS | RETBLEED),
-- VULNBL_INTEL_STEPPINGS(COMETLAKE_L, X86_STEPPING_ANY, MMIO | MMIO_SBDS | RETBLEED),
-+ VULNBL_INTEL_STEPPINGS(ICELAKE_MOBILE, X86_STEPPING_ANY, MMIO | MMIO_SBDS | RETBLEED | GDS),
-+ VULNBL_INTEL_STEPPINGS(ICELAKE_XEON_D, X86_STEPPING_ANY, MMIO | GDS),
-+ VULNBL_INTEL_STEPPINGS(ICELAKE_X, X86_STEPPING_ANY, MMIO | GDS),
-+ VULNBL_INTEL_STEPPINGS(COMETLAKE, X86_STEPPING_ANY, MMIO | MMIO_SBDS | RETBLEED | GDS),
-+ VULNBL_INTEL_STEPPINGS(COMETLAKE_L, X86_STEPPING_ANY, MMIO | MMIO_SBDS | RETBLEED | GDS),
-+ VULNBL_INTEL_STEPPINGS(TIGERLAKE_L, X86_STEPPING_ANY, GDS),
-+ VULNBL_INTEL_STEPPINGS(TIGERLAKE, X86_STEPPING_ANY, GDS),
- VULNBL_INTEL_STEPPINGS(LAKEFIELD, X86_STEPPING_ANY, MMIO | MMIO_SBDS | RETBLEED),
-- VULNBL_INTEL_STEPPINGS(ROCKETLAKE, X86_STEPPING_ANY, MMIO | RETBLEED),
-+ VULNBL_INTEL_STEPPINGS(ROCKETLAKE, X86_STEPPING_ANY, MMIO | RETBLEED | GDS),
- VULNBL_INTEL_STEPPINGS(ATOM_TREMONT, X86_STEPPING_ANY, MMIO | MMIO_SBDS),
- VULNBL_INTEL_STEPPINGS(ATOM_TREMONT_X, X86_STEPPING_ANY, MMIO),
- VULNBL_INTEL_STEPPINGS(ATOM_TREMONT_L, X86_STEPPING_ANY, MMIO | MMIO_SBDS),
-@@ -1193,6 +1197,16 @@ static void __init cpu_set_bug_bits(stru
- !(ia32_cap & ARCH_CAP_PBRSB_NO))
- setup_force_cpu_bug(X86_BUG_EIBRS_PBRSB);
-
-+ /*
-+ * Check if CPU is vulnerable to GDS. If running in a virtual machine on
-+ * an affected processor, the VMM may have disabled the use of GATHER by
-+ * disabling AVX2. The only way to do this in HW is to clear XCR0[2],
-+ * which means that AVX will be disabled.
-+ */
-+ if (cpu_matches(cpu_vuln_blacklist, GDS) && !(ia32_cap & ARCH_CAP_GDS_NO) &&
-+ boot_cpu_has(X86_FEATURE_AVX))
-+ setup_force_cpu_bug(X86_BUG_GDS);
-+
- if (cpu_matches(cpu_vuln_whitelist, NO_MELTDOWN))
- return;
-
-@@ -1666,6 +1680,8 @@ void identify_secondary_cpu(struct cpuin
- validate_apic_and_package_id(c);
- x86_spec_ctrl_setup_ap();
- update_srbds_msr();
-+ if (boot_cpu_has_bug(X86_BUG_GDS))
-+ update_gds_msr();
- }
-
- static __init int setup_noclflush(char *arg)
---- a/arch/x86/kernel/cpu/cpu.h
-+++ b/arch/x86/kernel/cpu/cpu.h
-@@ -83,6 +83,7 @@ void cpu_select_mitigations(void);
-
- extern void x86_spec_ctrl_setup_ap(void);
- extern void update_srbds_msr(void);
-+extern void update_gds_msr(void);
-
- extern u64 x86_read_arch_cap_msr(void);
-
---- a/drivers/base/cpu.c
-+++ b/drivers/base/cpu.c
-@@ -584,6 +584,12 @@ ssize_t __weak cpu_show_retbleed(struct
- return sysfs_emit(buf, "Not affected\n");
- }
-
-+ssize_t __weak cpu_show_gds(struct device *dev,
-+ struct device_attribute *attr, char *buf)
-+{
-+ return sysfs_emit(buf, "Not affected\n");
-+}
-+
- static DEVICE_ATTR(meltdown, 0444, cpu_show_meltdown, NULL);
- static DEVICE_ATTR(spectre_v1, 0444, cpu_show_spectre_v1, NULL);
- static DEVICE_ATTR(spectre_v2, 0444, cpu_show_spectre_v2, NULL);
-@@ -595,6 +601,7 @@ static DEVICE_ATTR(itlb_multihit, 0444,
- static DEVICE_ATTR(srbds, 0444, cpu_show_srbds, NULL);
- static DEVICE_ATTR(mmio_stale_data, 0444, cpu_show_mmio_stale_data, NULL);
- static DEVICE_ATTR(retbleed, 0444, cpu_show_retbleed, NULL);
-+static DEVICE_ATTR(gather_data_sampling, 0444, cpu_show_gds, NULL);
-
- static struct attribute *cpu_root_vulnerabilities_attrs[] = {
- &dev_attr_meltdown.attr,
-@@ -608,6 +615,7 @@ static struct attribute *cpu_root_vulner
- &dev_attr_srbds.attr,
- &dev_attr_mmio_stale_data.attr,
- &dev_attr_retbleed.attr,
-+ &dev_attr_gather_data_sampling.attr,
- NULL
- };
-
diff --git a/debian/patches/bugfix/x86/gds/x86-speculation-add-kconfig-option-for-gds.patch b/debian/patches/bugfix/x86/gds/x86-speculation-add-kconfig-option-for-gds.patch
deleted file mode 100644
index 5d01d4fa9..000000000
--- a/debian/patches/bugfix/x86/gds/x86-speculation-add-kconfig-option-for-gds.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From dc9710d3e8c3a26fbd764f4bd733814c9464bf31 Mon Sep 17 00:00:00 2001
-From: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Date: Wed, 12 Jul 2023 19:43:13 -0700
-Subject: x86/speculation: Add Kconfig option for GDS
-
-From: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-
-commit 53cf5797f114ba2bd86d23a862302119848eff19 upstream
-
-Gather Data Sampling (GDS) is mitigated in microcode. However, on
-systems that haven't received the updated microcode, disabling AVX
-can act as a mitigation. Add a Kconfig option that uses the microcode
-mitigation if available and disables AVX otherwise. Setting this
-option has no effect on systems not affected by GDS. This is the
-equivalent of setting gather_data_sampling=force.
-
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
-Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
-Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/Kconfig | 19 +++++++++++++++++++
- arch/x86/kernel/cpu/bugs.c | 4 ++++
- 2 files changed, 23 insertions(+)
-
---- a/arch/x86/Kconfig
-+++ b/arch/x86/Kconfig
-@@ -2438,6 +2438,25 @@ config ARCH_ENABLE_SPLIT_PMD_PTLOCK
- def_bool y
- depends on X86_64 || X86_PAE
-
-+config GDS_FORCE_MITIGATION
-+ bool "Force GDS Mitigation"
-+ depends on CPU_SUP_INTEL
-+ default n
-+ help
-+ Gather Data Sampling (GDS) is a hardware vulnerability which allows
-+ unprivileged speculative access to data which was previously stored in
-+ vector registers.
-+
-+ This option is equivalent to setting gather_data_sampling=force on the
-+ command line. The microcode mitigation is used if present, otherwise
-+ AVX is disabled as a mitigation. On affected systems that are missing
-+ the microcode any userspace code that unconditionally uses AVX will
-+ break with this option set.
-+
-+ Setting this option on systems not vulnerable to GDS has no effect.
-+
-+ If in doubt, say N.
-+
- config ARCH_ENABLE_HUGEPAGE_MIGRATION
- def_bool y
- depends on X86_64 && HUGETLB_PAGE && MIGRATION
---- a/arch/x86/kernel/cpu/bugs.c
-+++ b/arch/x86/kernel/cpu/bugs.c
-@@ -613,7 +613,11 @@ enum gds_mitigations {
- GDS_MITIGATION_HYPERVISOR,
- };
-
-+#if IS_ENABLED(CONFIG_GDS_FORCE_MITIGATION)
-+static enum gds_mitigations gds_mitigation __ro_after_init = GDS_MITIGATION_FORCE;
-+#else
- static enum gds_mitigations gds_mitigation __ro_after_init = GDS_MITIGATION_FULL;
-+#endif
-
- static const char * const gds_strings[] = {
- [GDS_MITIGATION_OFF] = "Vulnerable",
diff --git a/debian/patches/bugfix/x86/gds/x86-xen-fix-secondary-processors-fpu-initialization.patch b/debian/patches/bugfix/x86/gds/x86-xen-fix-secondary-processors-fpu-initialization.patch
deleted file mode 100644
index 658710bb5..000000000
--- a/debian/patches/bugfix/x86/gds/x86-xen-fix-secondary-processors-fpu-initialization.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From fe3e0a13e597c1c8617814bf9b42ab732db5c26e Mon Sep 17 00:00:00 2001
-From: Juergen Gross <jgross@suse.com>
-Date: Mon, 3 Jul 2023 15:00:32 +0200
-Subject: x86/xen: Fix secondary processors' FPU initialization
-
-From: Juergen Gross <jgross@suse.com>
-
-commit fe3e0a13e597c1c8617814bf9b42ab732db5c26e upstream.
-
-Moving the call of fpu__init_cpu() from cpu_init() to start_secondary()
-broke Xen PV guests, as those don't call start_secondary() for APs.
-
-Call fpu__init_cpu() in Xen's cpu_bringup(), which is the Xen PV
-replacement of start_secondary().
-
-Fixes: b81fac906a8f ("x86/fpu: Move FPU initialization into arch_cpu_finalize_init()")
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
-Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
-Acked-by: Thomas Gleixner <tglx@linutronix.de>
-Link: https://lore.kernel.org/r/20230703130032.22916-1-jgross@suse.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/xen/smp_pv.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/arch/x86/xen/smp_pv.c
-+++ b/arch/x86/xen/smp_pv.c
-@@ -27,6 +27,7 @@
- #include <asm/desc.h>
- #include <asm/pgtable.h>
- #include <asm/cpu.h>
-+#include <asm/fpu/internal.h>
-
- #include <xen/interface/xen.h>
- #include <xen/interface/vcpu.h>
-@@ -58,6 +59,7 @@ static void cpu_bringup(void)
- int cpu;
-
- cpu_init();
-+ fpu__init_cpu();
- touch_softlockup_watchdog();
- preempt_disable();
-
diff --git a/debian/patches/debian/abi/x86-cpu-avoid-abi-change-for-gds-mitigations.patch b/debian/patches/debian/abi/x86-cpu-avoid-abi-change-for-gds-mitigations.patch
deleted file mode 100644
index 9b0cde03b..000000000
--- a/debian/patches/debian/abi/x86-cpu-avoid-abi-change-for-gds-mitigations.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Ben Hutchings <benh@debian.org>
-Date: Mon, 07 Aug 2023 19:24:36 +0200
-Subject: x86/cpu: Avoid ABI change for GDS mitigations
-Forwarded: not-needed
-
-The changes to support control of GDS mitigation added some #includes
-to arch/x86/kernel/cpu/common.c. This changed the symbol version for
-current_task which is defined there, not because of a real ABI change
-but because it now includes definitions of more of the types referred
-to by struct task_struct. To avoid the symbol version change, make
-those #includes conditional on !__GENKSYMS__.
-
----
---- a/arch/x86/kernel/cpu/common.c
-+++ b/arch/x86/kernel/cpu/common.c
-@@ -19,12 +19,16 @@
- #include <linux/kgdb.h>
- #include <linux/mem_encrypt.h>
- #include <linux/smp.h>
-+#ifndef __GENKSYMS__
- #include <linux/cpu.h>
-+#endif
- #include <linux/io.h>
- #include <linux/syscore_ops.h>
-
- #include <asm/stackprotector.h>
-+#ifndef __GENKSYMS__
- #include <linux/utsname.h>
-+#endif
-
- #include <asm/alternative.h>
- #include <asm/perf_event.h>
diff --git a/debian/patches/series b/debian/patches/series
index 9c245c48f..d16ae1e5e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -309,27 +309,5 @@ bugfix/arm64/arm64-PCI-Preserve-firmware-configuration-when-desir.patch
# Security fixes
debian/i386-686-pae-pci-set-pci-nobios-by-default.patch
debian/ntfs-mark-it-as-broken.patch
-bugfix/x86/gds/init-provide-arch_cpu_finalize_init.patch
-bugfix/x86/gds/x86-cpu-switch-to-arch_cpu_finalize_init.patch
-bugfix/x86/gds/arm-cpu-switch-to-arch_cpu_finalize_init.patch
-bugfix/x86/gds/ia64-cpu-switch-to-arch_cpu_finalize_init.patch
-bugfix/x86/gds/m68k-cpu-switch-to-arch_cpu_finalize_init.patch
-bugfix/x86/gds/mips-cpu-switch-to-arch_cpu_finalize_init.patch
-bugfix/x86/gds/sh-cpu-switch-to-arch_cpu_finalize_init.patch
-bugfix/x86/gds/sparc-cpu-switch-to-arch_cpu_finalize_init.patch
-bugfix/x86/gds/um-cpu-switch-to-arch_cpu_finalize_init.patch
-bugfix/x86/gds/init-remove-check_bugs-leftovers.patch
-bugfix/x86/gds/init-invoke-arch_cpu_finalize_init-earlier.patch
-bugfix/x86/gds/init-x86-move-mem_encrypt_init-into-arch_cpu_finalize_init.patch
-bugfix/x86/gds/x86-fpu-remove-cpuinfo-argument-from-init-functions.patch
-bugfix/x86/gds/x86-fpu-mark-init-functions-__init.patch
-bugfix/x86/gds/x86-fpu-move-fpu-initialization-into-arch_cpu_finalize_init.patch
-bugfix/x86/gds/x86-speculation-add-gather-data-sampling-mitigation.patch
-bugfix/x86/gds/x86-speculation-add-force-option-to-gds-mitigation.patch
-bugfix/x86/gds/x86-speculation-add-kconfig-option-for-gds.patch
-bugfix/x86/gds/kvm-add-gds_no-support-to-kvm.patch
-bugfix/x86/gds/x86-xen-fix-secondary-processors-fpu-initialization.patch
-bugfix/x86/gds/documentation-x86-fix-backwards-on-off-logic-about-ymm-support.patch
# ABI maintenance
-debian/abi/x86-cpu-avoid-abi-change-for-gds-mitigations.patch