summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt')
-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.patch4
-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.patch4
-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.patch29
-rw-r--r--debian/patches-rt/0018-efi-Allow-efi-runtime.patch6
-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.patch6
-rw-r--r--debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch8
-rw-r--r--debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch36
-rw-r--r--debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch12
-rw-r--r--debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch6
-rw-r--r--debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch4
-rw-r--r--debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch4
-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.patch6
-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.patch6
-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.patch4
-rw-r--r--debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch6
-rw-r--r--debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch4
-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.patch4
-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.patch4
-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.patch4
-rw-r--r--debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch4
-rw-r--r--debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch4
-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.patch6
-rw-r--r--debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch4
-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.patch4
-rw-r--r--debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch4
-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.patch8
-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.patch6
-rw-r--r--debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch6
-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.patch6
-rw-r--r--debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch6
-rw-r--r--debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch6
-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.patch10
-rw-r--r--debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch8
-rw-r--r--debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch4
-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.patch4
-rw-r--r--debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch4
-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.patch4
-rw-r--r--debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch6
-rw-r--r--debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch4
-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.patch14
-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.patch4
-rw-r--r--debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch4
-rw-r--r--debian/patches-rt/0100-hrtimer-by-timers-by-default-into-the-softirq-contex.patch18
-rw-r--r--debian/patches-rt/0101-sched-fair-Make-the-hrtimers-non-hard-again.patch4
-rw-r--r--debian/patches-rt/0102-hrtimer-Move-schedule_work-call-to-helper-thread.patch4
-rw-r--r--debian/patches-rt/0103-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch4
-rw-r--r--debian/patches-rt/0104-posix-timers-Thread-posix-cpu-timers-on-rt.patch8
-rw-r--r--debian/patches-rt/0105-sched-Move-task_struct-cleanup-to-RCU.patch8
-rw-r--r--debian/patches-rt/0106-sched-Limit-the-number-of-task-migrations-per-batch.patch6
-rw-r--r--debian/patches-rt/0107-sched-Move-mmdrop-to-RCU-on-RT.patch8
-rw-r--r--debian/patches-rt/0108-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch6
-rw-r--r--debian/patches-rt/0109-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch12
-rw-r--r--debian/patches-rt/0110-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch8
-rw-r--r--debian/patches-rt/0111-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch4
-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.patch6
-rw-r--r--debian/patches-rt/0114-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch12
-rw-r--r--debian/patches-rt/0115-hotplug-Lightweight-get-online-cpus.patch10
-rw-r--r--debian/patches-rt/0116-trace-Add-migrate-disabled-counter-to-tracing-output.patch8
-rw-r--r--debian/patches-rt/0117-lockdep-Make-it-RT-aware.patch4
-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.patch6
-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.patch6
-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.patch4
-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-.patch4
-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.patch4
-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.patch10
-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.patch10
-rw-r--r--debian/patches-rt/0154-rtmutex-annotate-sleeping-lock-context.patch14
-rw-r--r--debian/patches-rt/0155-sched-migrate_disable-fallback-to-preempt_disable-in.patch16
-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.patch4
-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.patch14
-rw-r--r--debian/patches-rt/0182-rt-Introduce-cpu_chill.patch4
-rw-r--r--debian/patches-rt/0183-hrtimer-Don-t-lose-state-in-cpu_chill.patch4
-rw-r--r--debian/patches-rt/0184-hrtimer-cpu_chill-save-task-state-in-saved_state.patch4
-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.patch4
-rw-r--r--debian/patches-rt/0189-fs-dcache-use-swait_queue-instead-of-waitqueue.patch6
-rw-r--r--debian/patches-rt/0190-workqueue-Use-normal-rcu.patch30
-rw-r--r--debian/patches-rt/0191-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch12
-rw-r--r--debian/patches-rt/0192-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch6
-rw-r--r--debian/patches-rt/0193-sched-Distangle-worker-accounting-from-rqlock.patch8
-rw-r--r--debian/patches-rt/0194-debugobjects-Make-RT-aware.patch4
-rw-r--r--debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch4
-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.patch23
-rw-r--r--debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch10
-rw-r--r--debian/patches-rt/0199-net-provide-a-way-to-delegate-processing-a-softirq-t.patch6
-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.patch6
-rw-r--r--debian/patches-rt/0202-net-add-back-the-missing-serialization-in-ip_send_un.patch6
-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.patch6
-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.patch8
-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.patch4
-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.patch8
-rw-r--r--debian/patches-rt/0228-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch6
-rw-r--r--debian/patches-rt/0229-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch4
-rw-r--r--debian/patches-rt/0230-net-Remove-preemption-disabling-in-netif_rx.patch6
-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-.patch4
-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.patch18
-rw-r--r--debian/patches-rt/0237-ftrace-Fix-trace-header-alignment.patch4
-rw-r--r--debian/patches-rt/0238-x86-Support-for-lazy-preemption.patch4
-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.patch6
-rw-r--r--debian/patches-rt/0242-powerpc-Add-support-for-lazy-preemption.patch4
-rw-r--r--debian/patches-rt/0243-arch-arm64-Add-lazy-preempt-support.patch6
-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.patch4
-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.patch8
-rw-r--r--debian/patches-rt/0258-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch8
-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.patch6
-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.patch6
-rw-r--r--debian/patches-rt/0270-timers-Redo-the-notification-of-canceling-timers-on-.patch4
-rw-r--r--debian/patches-rt/0271-Revert-futex-Ensure-lock-unlock-symetry-versus-pi_lo.patch4
-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.patch4
-rw-r--r--debian/patches-rt/0274-Revert-futex-workaround-migrate_disable-enable-in-di.patch4
-rw-r--r--debian/patches-rt/0275-futex-Make-the-futex_hash_bucket-lock-raw.patch4
-rw-r--r--debian/patches-rt/0276-futex-Delay-deallocation-of-pi_state.patch4
-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.patch72
-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.patch10
-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.patch4
-rw-r--r--debian/patches-rt/0293-hrtimer-Don-t-grab-the-expiry-lock-for-non-soft-hrti.patch4
-rw-r--r--debian/patches-rt/0294-hrtimer-Prevent-using-hrtimer_grab_expiry_lock-on-mi.patch4
-rw-r--r--debian/patches-rt/0295-hrtimer-Add-a-missing-bracket-and-hide-migration_bas.patch4
-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.patch8
-rw-r--r--debian/patches-rt/0298-sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch6
-rw-r--r--debian/patches-rt/0299-sched-Remove-dead-__migrate_disabled-check.patch6
-rw-r--r--debian/patches-rt/0300-sched-migrate-disable-Protect-cpus_ptr-with-lock.patch10
-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.patch4
-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.patch6
-rw-r--r--debian/patches-rt/0306-sched-migrate_enable-Use-select_fallback_rq.patch10
-rw-r--r--debian/patches-rt/0307-sched-Lazy-migrate_disable-processing.patch22
-rw-r--r--debian/patches-rt/0308-sched-migrate_enable-Use-stop_one_cpu_nowait.patch10
-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.patch8
-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.patch10
-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.patch10
-rw-r--r--debian/patches-rt/0316-sched-migrate_enable-Remove-__schedule-call.patch8
-rw-r--r--debian/patches-rt/0317-mm-memcontrol-Move-misplaced-local_unlock_irqrestore.patch4
-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.patch4
-rw-r--r--debian/patches-rt/0325-fs-dcache-Include-swait.h-header.patch4
-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.patch6
-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.patch4
-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.patch97
-rw-r--r--debian/patches-rt/0341-random-Use-local-locks-for-crng-context-access.patch80
-rw-r--r--debian/patches-rt/0342-local_lock-Provide-INIT_LOCAL_LOCK.patch66
-rw-r--r--debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch38
-rw-r--r--debian/patches-rt/0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch31
-rw-r--r--debian/patches-rt/0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch68
-rw-r--r--debian/patches-rt/0346-rcu-Update-rcuwait.patch176
-rw-r--r--debian/patches-rt/0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch102
-rw-r--r--debian/patches-rt/0348-timers-Prepare-support-for-PREEMPT_RT.patch280
-rw-r--r--debian/patches-rt/0349-timers-Move-clearing-of-base-timer_running-under-bas.patch86
-rw-r--r--debian/patches-rt/0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch68
-rw-r--r--debian/patches-rt/0351-Linux-4.19.265-rt117-REBASE.patch (renamed from debian/patches-rt/0342-Linux-4.19.255-rt113-REBASE.patch)10
-rw-r--r--debian/patches-rt/series14
353 files changed, 1960 insertions, 1044 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 b1156f3d4..b8f80db73 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/342] ARM: at91: add TCB registers definitions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3122df320b5f6ba0e36a28168877c8205ab46747
+Subject: [PATCH 001/351] ARM: at91: add TCB registers definitions
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=066bff5bc180d4a40c961efbbe8bc938044d0bb3
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 650f9b842..2c0e2a003 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/342] clocksource/drivers: Add a new driver for the Atmel
+Subject: [PATCH 002/351] 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=3a947a9a5de4fc114b407c5648b6f71e9f825856
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=732ba9ebea0cec8807da3283f075fc7ce32cfc0d
Add a driver for the Atmel Timer Counter Blocks. This driver provides a
clocksource and two clockevent devices.
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 fb37f66d2..395a38d75 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/342] clocksource/drivers: timer-atmel-tcb: add clockevent
+Subject: [PATCH 003/351] 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=13133ffb22ec065c30837eceb253ab60a7f86715
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=403681deaff8ad3197633616efee3524cda04e60
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 812239f21..0883db9c8 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/342] clocksource/drivers: atmel-pit: make option silent
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ec89b134f165b0003da705e1eb33db69f8b105f5
+Subject: [PATCH 004/351] clocksource/drivers: atmel-pit: make option silent
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f68d0ac524af4688ccf7b9466c047fb9852b005a
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 1ca294cdf..55116bc8c 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/342] ARM: at91: Implement clocksource selection
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=86f4900f6f6c9c8786a1162b473598e6f83fa5fd
+Subject: [PATCH 005/351] ARM: at91: Implement clocksource selection
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8f2cee27973350059b967705738e817b161fd383
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 1e3746718..818572855 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/342] ARM: configs: at91: use new TCB timer driver
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0f91582449e7283518ad5c49a625b35d49dceb3d
+Subject: [PATCH 006/351] ARM: configs: at91: use new TCB timer driver
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d63f340509cda48540e06ddaec11870de0600a51
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 7627ee614..724b65991 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/342] ARM: configs: at91: unselect PIT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9a3f3c8892299e5539c6ae47a682c3c77e9a3dd
+Subject: [PATCH 007/351] ARM: configs: at91: unselect PIT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b77e847f5681b5ee54a353133ff5519679c6bca6
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 fecbdb3e6..ede2dd62d 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/342] irqchip/gic-v3-its: Move pending table allocation to
+Subject: [PATCH 008/351] 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=9b8978ba6e95562abffb58dc7969127f4c05afe0
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d9fb57db9ae54bc1252eb9cb8eb620889742c94e
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 c60ad230c..f8b78ab00 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/342] kthread: convert worker lock to raw spinlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=25ba83fe78235738f65e2c7b07943e346ccb9452
+Subject: [PATCH 009/351] kthread: convert worker lock to raw spinlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b0e39ae62c0db19890ea0909adb3c41b6251b095
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 9d2fafcd8..373c60ab9 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/342] crypto: caam/qi - simplify CGR allocation, freeing
+Subject: [PATCH 010/351] 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=268ff461cf60c56307d742d6937380187c150147
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b728fd1725301cc64ba51b9c679496bf9d376e7
[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 7df648712..8b2a7828a 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/342] sched/fair: Robustify CFS-bandwidth timer locking
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b3b58e86ed0fa1cd05db063c8da6034a698bd96d
+Subject: [PATCH 011/351] sched/fair: Robustify CFS-bandwidth timer locking
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=323a0b247762ebfba81f76799d150d2735e97f21
Traditionally hrtimer callbacks were run with IRQs disabled, but with
the introduction of HRTIMER_MODE_SOFT it is possible they run from
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 56625fdcb..5b582426f 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/342] arm: Convert arm boot_lock to raw
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=832bd38726e8de90d400c1708e3c68c0eb97f0ae
+Subject: [PATCH 012/351] arm: Convert arm boot_lock to raw
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=22e18dfa9b5585e6655106684c3e05b7ceaf13de
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 fa5207746..5c9b99218 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/342] x86/ioapic: Don't let setaffinity unmask threaded EOI
+Subject: [PATCH 013/351] 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=6d53bf26f7092895193d947150b8de66ea8e226a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2291d37f1f88b1e7c56dcc321af436a85891e3d5
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 cfef075fd..1a23d4bbf 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/342] cgroup: use irqsave in cgroup_rstat_flush_locked()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b1c2c072c291f7bcf9e3480cc8474ff68ecebb31
+Subject: [PATCH 014/351] cgroup: use irqsave in cgroup_rstat_flush_locked()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4452139e74bc5b77978cf9d783bde7761584ba56
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 e4b2a74a6..bbd52033c 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/342] fscache: initialize cookie hash table raw spinlocks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5f9b412940e746eb7fd8900f57db7046efe4f2e0
+Subject: [PATCH 015/351] fscache: initialize cookie hash table raw spinlocks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4dbc2ab3ba55810cfe4d50e68409b00364df869
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 ff80542d2..5cca3d2ce 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/342] Drivers: hv: vmbus: include header for get_irq_regs()
+Subject: [PATCH 016/351] 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=d64aa2fd269aac918b112984f2dab94ad18aff89
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=08d5b89869038b04508e01db3d9c2823f1d18c1c
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
deleted file mode 100644
index 2a9367801..000000000
--- a/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-Date: Thu, 11 Oct 2018 16:39:59 +0200
-Subject: [PATCH 017/342] 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=83573d1e9158243e6190ff7a90a1fe73c4794a8b
-
-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
-header file is included via an other header file.
-On -RT the build fails because raw_local_irq_save() is not defined.
-
-Include irqflags.h in percpu.h.
-
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- include/asm-generic/percpu.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h
-index 1817a8415a5e..942d64c0476e 100644
---- a/include/asm-generic/percpu.h
-+++ b/include/asm-generic/percpu.h
-@@ -5,6 +5,7 @@
- #include <linux/compiler.h>
- #include <linux/threads.h>
- #include <linux/percpu-defs.h>
-+#include <linux/irqflags.h>
-
- #ifdef CONFIG_SMP
-
diff --git a/debian/patches-rt/0018-efi-Allow-efi-runtime.patch b/debian/patches-rt/0018-efi-Allow-efi-runtime.patch
index 592a3e9fc..983c323c8 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/342] efi: Allow efi=runtime
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd99215d19fcabe2d1580cda61ff189cc41aa689
+Subject: [PATCH 018/351] efi: Allow efi=runtime
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fbe76f6e74b065be6b21849333fcee093baff12a
In case the option "efi=noruntime" is default at built-time, the user
could overwrite its sate by `efi=runtime' and allow it again.
@@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 3 insertions(+)
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
-index 7098744f9276..e89932f1ae65 100644
+index f0ef2643b70e..9137fb107ae4 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -113,6 +113,9 @@ static int __init parse_efi_cmdline(char *str)
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 1aaf6ca75..5f26c186b 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/342] 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=420295d524170fe978692f9ccc424105b7a6f4a7
+Subject: [PATCH 019/351] 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=5d8cc223618ac465b6dba6bedfe4ca7f060dea01
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 c1af4d95b..ce3da1517 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/342] arm64: KVM: compute_layout before altenates are
+Subject: [PATCH 020/351] arm64: KVM: compute_layout before altenates are
applied
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4a7c21c9d8dd18466e30c7b471e0e9ad276f38de
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3e7a19db684d20c99425ab89480c71931f76aed3
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 910dd1aa1..afa46a183 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/342] of: allocate / free phandle cache outside of the
+Subject: [PATCH 021/351] 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=811c1552ba8fc9c2522834455cc7a0f0421cc149
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3d365b804f891b5e1e3554be17d8c834db3330e3
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 d6f6279fa..2b2115681 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/342] 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=320da726e91aaaedde9f1b6921f60f7ff8dd76d8
+Subject: [PATCH 022/351] 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=880f96c5ded03733219b97b647369b7ac19052aa
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 78dca5721..1f1bbe53f 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/342] EXP rcu: Revert expedited GP parallelization
+Subject: [PATCH 023/351] EXP rcu: Revert expedited GP parallelization
cleverness
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bbc41f565212047da61ffb6763bb9843c6ea9775
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0bd926ced576e698b47251d7867b02d829e4115
(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 cbe6080bc..0081cb724 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/342] kmemleak: Turn kmemleak_lock to raw spinlock on RT
+Subject: [PATCH 024/351] 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=214db2ab9702fd60e0549651edf19dcfb17d9f20
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd3b951faee26093ccec1213cffb509f40cb19d0
kmemleak_lock, as a rwlock on RT, can possibly be held in atomic context and
causes the follow BUG.
@@ -78,7 +78,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
-index 639acbb91fd5..5b6718dd3a64 100644
+index f54734abf946..86caf2025c35 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -26,7 +26,7 @@
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 38cd44c91..108d1a08a 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/342] NFSv4: replace seqcount_t with a seqlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b840fb9c0979726ce4cf8e6136da1ce9be6baeb8
+Subject: [PATCH 025/351] NFSv4: replace seqcount_t with a seqlock_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=94e5754505317d785d438d9fcf7e0130ed11b8f3
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 5ac7bf24c507..b15a7a2f64fe 100644
};
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index f48a11fa78bb..93dcfcd1424d 100644
+index f9f76594b866..7feb4c11471a 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -2874,7 +2874,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
@@ -79,7 +79,7 @@ index f48a11fa78bb..93dcfcd1424d 100644
}
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
-index 30576a10a1f4..e0b94cbce3bf 100644
+index 5ab021f87ecf..f97c63038ff2 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -516,7 +516,7 @@ nfs4_alloc_state_owner(struct nfs_server *server,
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 56d89ace2..1732dfed8 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/342] kernel: sched: Provide a pointer to the valid CPU
+Subject: [PATCH 026/351] 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=3a742715efe880a8606d4b57cd2d1ee4715afa3c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b52972c9d7da09d15e44aad1448655ebdbb87553
In commit 4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed()
wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not
@@ -270,10 +270,10 @@ index 9eb99a43f849..e4d0cfebaac5 100644
static inline void task_core_dumping(struct seq_file *m, struct mm_struct *mm)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index f92d5ae6d04e..fc5f476c2aca 100644
+index fd4899236037..6d5937fc782e 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -660,7 +660,8 @@ struct task_struct {
+@@ -664,7 +664,8 @@ struct task_struct {
unsigned int policy;
int nr_cpus_allowed;
@@ -283,7 +283,7 @@ index f92d5ae6d04e..fc5f476c2aca 100644
#ifdef CONFIG_PREEMPT_RCU
int rcu_read_lock_nesting;
-@@ -1398,7 +1399,7 @@ extern struct pid *cad_pid;
+@@ -1402,7 +1403,7 @@ extern struct pid *cad_pid;
#define PF_KTHREAD 0x00200000 /* I am a kernel thread */
#define PF_RANDOMIZE 0x00400000 /* Randomize virtual address space */
#define PF_SWAPWRITE 0x00800000 /* Allowed to write to swap */
@@ -333,7 +333,7 @@ index b65871600507..a18d695259af 100644
/*
* One for us, one for whoever does the "release_task()" (usually
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 32af895bd86b..3fb7638a8863 100644
+index a03464249771..985cfa10fda5 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -878,7 +878,7 @@ static inline bool is_per_cpu_kthread(struct task_struct *p)
@@ -456,7 +456,7 @@ index 32af895bd86b..3fb7638a8863 100644
* - any previously selected CPU might disappear through hotplug
*
* Use __set_task_cpu() to avoid calling sched_class::migrate_task_rq,
-@@ -4322,7 +4322,7 @@ static int __sched_setscheduler(struct task_struct *p,
+@@ -4323,7 +4323,7 @@ static int __sched_setscheduler(struct task_struct *p,
* the entire root_domain to become SCHED_DEADLINE. We
* will also fail if there's no bandwidth available.
*/
@@ -465,7 +465,7 @@ index 32af895bd86b..3fb7638a8863 100644
rq->rd->dl_bw.bw == 0) {
task_rq_unlock(rq, p, &rf);
return -EPERM;
-@@ -4921,7 +4921,7 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask)
+@@ -4922,7 +4922,7 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask)
goto out_unlock;
raw_spin_lock_irqsave(&p->pi_lock, flags);
@@ -474,7 +474,7 @@ index 32af895bd86b..3fb7638a8863 100644
raw_spin_unlock_irqrestore(&p->pi_lock, flags);
out_unlock:
-@@ -5498,7 +5498,7 @@ int task_can_attach(struct task_struct *p,
+@@ -5499,7 +5499,7 @@ int task_can_attach(struct task_struct *p,
* allowed nodes is unnecessary. Thus, cpusets are not
* applicable for such threads. This prevents checking for
* success of set_cpus_allowed_ptr() on all attached tasks
@@ -483,7 +483,7 @@ index 32af895bd86b..3fb7638a8863 100644
*/
if (p->flags & PF_NO_SETAFFINITY) {
ret = -EINVAL;
-@@ -5525,7 +5525,7 @@ int migrate_task_to(struct task_struct *p, int target_cpu)
+@@ -5526,7 +5526,7 @@ int migrate_task_to(struct task_struct *p, int target_cpu)
if (curr_cpu == target_cpu)
return 0;
@@ -492,7 +492,7 @@ index 32af895bd86b..3fb7638a8863 100644
return -EINVAL;
/* TODO: This is not properly updating schedstats */
-@@ -5664,7 +5664,7 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf)
+@@ -5665,7 +5665,7 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf)
put_prev_task(rq, next);
/*
@@ -541,10 +541,10 @@ index daaadf939ccb..f7d2c10b4c92 100644
/*
* We have to ensure that we have at least one bit
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
-index beec5081a55a..95ebbb2074c7 100644
+index 29ed5d8d30d6..9243d0049714 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
-@@ -539,7 +539,7 @@ static struct rq *dl_task_offline_migration(struct rq *rq, struct task_struct *p
+@@ -561,7 +561,7 @@ static struct rq *dl_task_offline_migration(struct rq *rq, struct task_struct *p
* If we cannot preempt any rq, fall back to pick any
* online CPU:
*/
@@ -553,7 +553,7 @@ index beec5081a55a..95ebbb2074c7 100644
if (cpu >= nr_cpu_ids) {
/*
* Failed to find any suitable CPU.
-@@ -1857,7 +1857,7 @@ static void set_curr_task_dl(struct rq *rq)
+@@ -1887,7 +1887,7 @@ static void set_curr_task_dl(struct rq *rq)
static int pick_dl_task(struct rq *rq, struct task_struct *p, int cpu)
{
if (!task_running(rq, p) &&
@@ -562,7 +562,7 @@ index beec5081a55a..95ebbb2074c7 100644
return 1;
return 0;
}
-@@ -2007,7 +2007,7 @@ static struct rq *find_lock_later_rq(struct task_struct *task, struct rq *rq)
+@@ -2037,7 +2037,7 @@ static struct rq *find_lock_later_rq(struct task_struct *task, struct rq *rq)
/* Retry if something changed. */
if (double_lock_balance(rq, later_rq)) {
if (unlikely(task_rq(task) != rq ||
@@ -719,10 +719,10 @@ index e84a056f783f..16940416d526 100644
flags);
env.flags |= LBF_ALL_PINNED;
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
-index 70e8cd395474..52b55144d8ad 100644
+index 9c6c3572b131..a068884c369f 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
-@@ -1620,7 +1620,7 @@ static void put_prev_task_rt(struct rq *rq, struct task_struct *p)
+@@ -1623,7 +1623,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 70e8cd395474..52b55144d8ad 100644
return 1;
return 0;
-@@ -1757,7 +1757,7 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq)
+@@ -1760,7 +1760,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 3f81197cb..84c4e061a 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/342] kernel/sched/core: add migrate_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=530f57e728e9d76193a46746650e621d832ef4ce
+Subject: [PATCH 027/351] kernel/sched/core: add migrate_disable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=41846fc4c5b1eb7d7629a63f70673bccf13cda15
---
include/linux/preempt.h | 23 +++++++
@@ -53,10 +53,10 @@ index c01813c3fbe9..3196d0e76719 100644
#ifdef MODULE
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index fc5f476c2aca..52069b9ddce8 100644
+index 6d5937fc782e..6a4e7b2d27d3 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -662,6 +662,13 @@ struct task_struct {
+@@ -666,6 +666,13 @@ struct task_struct {
int nr_cpus_allowed;
const cpumask_t *cpus_ptr;
cpumask_t cpus_mask;
@@ -85,7 +85,7 @@ index 6bb7f07bc1dd..039da089482c 100644
* Callback to arch code if there's nosmp or maxcpus=0 on the
* boot command line:
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 3fb7638a8863..5a691d2bfbfe 100644
+index 985cfa10fda5..116529019d34 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1008,7 +1008,15 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma
@@ -144,7 +144,7 @@ index 3fb7638a8863..5a691d2bfbfe 100644
if (task_running(rq, p) || p->state == TASK_WAKING) {
struct migration_arg arg = { p, dest_cpu };
/* Need help from migration thread: drop lock and wait. */
-@@ -7108,3 +7137,100 @@ const u32 sched_prio_to_wmult[40] = {
+@@ -7109,3 +7138,100 @@ const u32 sched_prio_to_wmult[40] = {
};
#undef CREATE_TRACE_POINTS
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 7ad746c36..99ca1fe43 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/342] sched/migrate_disable: Add export_symbol_gpl for
+Subject: [PATCH 028/351] 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=4b2f85c983f4170f60b4cbcaad98639bae7f7405
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4dbb7a73b2a3ff8390b1f6733f765388d12fd95e
Jonathan reported that lttng/modules can't use __migrate_disabled().
This function is only used by sched/core itself and the tracing
@@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 5a691d2bfbfe..0a51a66f5a63 100644
+index 116529019d34..80234d096926 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1013,6 +1013,7 @@ int __migrate_disabled(struct task_struct *p)
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 36959604c..78a167c2a 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/342] 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=c36a4aed62bdfc4b3139d5eb2a696dbe27949d8a
+Subject: [PATCH 029/351] 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=31e72cd5369cf2c6403f07abc1374030c991f005
Currently the driver will disable the clock and enable it one line later
if it is switching from periodic mode into one shot.
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 7a86c07d1..495092d59 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/342] clocksource: TCLIB: Allow higher clock rates for
+Subject: [PATCH 030/351] 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=08b49c99b7289f44964d91fe316ef6ae8c374390
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8e1f1b7959b48c060d868f85bb9c5b76388a7883
As default the TCLIB uses the 32KiHz base clock rate for clock events.
Add a compile time selection to allow higher clock resulution.
diff --git a/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch b/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch
index 5fdbb3432..378a88d2a 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/342] timekeeping: Split jiffies seqlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3d75e269bb6eae9e11c610942b292d51c3c196eb
+Subject: [PATCH 031/351] timekeeping: Split jiffies seqlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a342f5aed55ec0615985281f556def2909aa3b11
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 b4180b71a..696c0bc14 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/342] signal: Revert ptrace preempt magic
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51da8853d991fbd0844a069e36176cf6ed659a37
+Subject: [PATCH 032/351] signal: Revert ptrace preempt magic
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f259904935b748e2ab49a6b3fc0fbb67ad9f55c2
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 527f92bbf..e73719d2c 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/342] net: sched: Use msleep() instead of yield()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a94458b4bbc9b3a16e8bb4a00125a37f47e8b599
+Subject: [PATCH 033/351] net: sched: Use msleep() instead of yield()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=270824f61f11dda318237b2f8494e41a6e14732a
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
@@ -46,7 +46,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
-index cad2586c3473..8d8a9ac2562f 100644
+index c966dacf1130..a5262b2ba536 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -1254,7 +1254,7 @@ void dev_deactivate_many(struct list_head *head)
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 e3e7ed5f9..1de6e1025 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/342] dm rq: remove BUG_ON(!irqs_disabled) check
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=04040555cbe921e190bb0678f83732b0d6fa3874
+Subject: [PATCH 034/351] dm rq: remove BUG_ON(!irqs_disabled) check
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=86a1d7b3dd8d77fc353216b123a5aa3e71b8fba2
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 4980cdeb8..98222b1f9 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/342] usb: do no disable interrupts in giveback
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0fb80d18f8ca1e31e157b7f8a6730906446c1841
+Subject: [PATCH 035/351] usb: do no disable interrupts in giveback
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=24285ec394cfc5b1b4af44f56548cfa9e879b892
Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet
context") the USB code disables interrupts before invoking the complete
@@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 3 deletions(-)
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
-index df661460e9f9..1a1487d312d0 100644
+index 59d5d506d73c..79133ba4b9e0 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1752,7 +1752,6 @@ static void __usb_hcd_giveback_urb(struct urb *urb)
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 f3c92a375..d5f98c1ec 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/342] rt: Provide PREEMPT_RT_BASE config switch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b37dde63f1b8d26b2f65461293519ec99abe4dbd
+Subject: [PATCH 036/351] rt: Provide PREEMPT_RT_BASE config switch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2eb43bebcb9669b59a2fee6a5327f8bef73f8e45
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 3e1d44c0e..64998e81a 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/342] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f8131bb6f8295c7b4fabd12a0c0c3eb1713c9d48
+Subject: [PATCH 037/351] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2cefbc94c90efe8efe8f34c679b8600166c9e826
There are "valid" GFP_ATOMIC allocations such as
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 25e6be2d0..2876262cf 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/342] jump-label: disable if stop_machine() is used
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a7f82ff6e79a284d2d7daccbc50d25896e6f846
+Subject: [PATCH 038/351] jump-label: disable if stop_machine() is used
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be64e97ee85c4a5f15eef0c12f3bcb8e4733404b
Some architectures are using stop_machine() while switching the opcode which
leads to latency spikes.
@@ -24,7 +24,7 @@ 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 d89d013f586c..32d59b815b52 100644
+index 41bde0e62e90..48f7fcbe2f37 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -51,7 +51,7 @@ config ARM
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 b1012ea33..469d33439 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/342] kconfig: Disable config options which are not RT
+Subject: [PATCH 039/351] 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=d20dc87ef027ae10b83e8aa13ba63fcde819da26
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0115c06a2e96d73db09183ec6d9db3a8a916f168
Disable stuff which is known to have issues on RT
diff --git a/debian/patches-rt/0040-lockdep-disable-self-test.patch b/debian/patches-rt/0040-lockdep-disable-self-test.patch
index 3679cc993..cdd1dc8fc 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/342] lockdep: disable self-test
+Subject: [PATCH 040/351] 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=af6ae5f97037f7668869705020867edf0a5e09c6
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40abab90b52c85179850b096d37f4f2a0a04ee49
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 c876f8229..adcde3e0a 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/342] mm: Allow only slub on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=24f9bbf38dfd0fd57553176d5d441c91a7a2c0a1
+Subject: [PATCH 041/351] mm: Allow only slub on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b272dce3cb99163ddf66752f5a4d0085072bb984
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 dc1e1715f..569236d53 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/342] locking: Disable spin on owner for RT
+Subject: [PATCH 042/351] 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=595a698c628e8a06b9aa23ee86ce93052b1e9cf4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fdeb43a61a34faa550bb24553035571b0a6e160e
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 f4486a279..be2d75221 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/342] rcu: Disable RCU_FAST_NO_HZ on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2906b81a2b2eac6c3a6ca5e7e782008896eacf43
+Subject: [PATCH 043/351] rcu: Disable RCU_FAST_NO_HZ on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8079abf731bf56879717176964b971cbdf3f1007
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 8bff8ab7d..7a63fa141 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/342] rcu: make RCU_BOOST default on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3c6db36bde45dd585557217b67660ac13aff8c9e
+Subject: [PATCH 044/351] rcu: make RCU_BOOST default on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea2fee0dd85d7e32fcfa89eea3b57994d27b1492
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 8ab2262eb..cd1174615 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/342] sched: Disable CONFIG_RT_GROUP_SCHED on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=35fe4c7ed5f8c8dbd6fc8dbc4ea79f38e6709cbc
+Subject: [PATCH 045/351] sched: Disable CONFIG_RT_GROUP_SCHED on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6c9ef7626c9f8d1e755ff347bdc8d0eb77bd19f2
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 4997d3125..f03a5afa9 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/342] net/core: disable NET_RX_BUSY_POLL
+Subject: [PATCH 046/351] 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=9ddd1e187d289bf0b0e0ed40eb776010526c95fb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c53647c0ba6c1f26e6684ce58e6e205fb868384
sk_busy_loop() does preempt_disable() followed by a few operations which can
take sleeping locks and may get long.
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 6081352c4..09b6657f7 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/342] arm*: disable NEON in kernel mode
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3871acb68bb4ed0ffe77ad68b497182a4aaf9cce
+Subject: [PATCH 047/351] arm*: disable NEON in kernel mode
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a20492d0466c0b896707e1bb5225999bbb783327
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 32d59b815b52..ec99422059e3 100644
+index 48f7fcbe2f37..d411fbbf13f0 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -2166,7 +2166,7 @@ config NEON
+@@ -2165,7 +2165,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 d0fdba62d..9ed135890 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/342] powerpc: Use generic rwsem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=31c7f2b069511b279e94f8dcd85a919944e98866
+Subject: [PATCH 048/351] powerpc: Use generic rwsem on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f98dbe22ff6729a05890070df7f061addd2072c5
Use generic code which uses rtmutex
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 72d40f076..78bf7aa86 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/342] powerpc/kvm: Disable in-kernel MPIC emulation for
+Subject: [PATCH 049/351] 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=157f0f9e40401380eeb97d8cba087b4f8380c2f3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40dc5a0139f7bb54e9ff37b419e08850140eaa3d
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 4f2ce559d..d6706d97a 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/342] powerpc: Disable highmem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea4bdea3cd8b827c68cf8d5b7622f834dadc2761
+Subject: [PATCH 050/351] powerpc: Disable highmem on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=43fee54156012d317e4f417de670622288a4ec80
The current highmem handling on -RT is not compatible and needs fixups.
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 939256714..113daf105 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/342] mips: Disable highmem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=269a64247aeed7cb930850d38719a815cedbfebc
+Subject: [PATCH 051/351] mips: Disable highmem on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=08ad5cb52632f61ee11020cbe7f684782091da8e
The current highmem handling on -RT is not compatible and needs fixups.
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 1c01fec7e..54041ff48 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/342] x86: Use generic rwsem_spinlocks on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3f6a1a4dffbffb8bc4e0b4dbcf46fa6409d3635c
+Subject: [PATCH 052/351] x86: Use generic rwsem_spinlocks on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=52a4ac8fb5330560387dd1f03c526ebe8d0f013f
Simplifies the separation of anon_rw_semaphores and rw_semaphores for
-rt.
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 6584b8eb6..ac1056a2b 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/342] leds: trigger: disable CPU trigger on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=33c8d8dbc6da63c95050f879b153aeec536b820b
+Subject: [PATCH 053/351] leds: trigger: disable CPU trigger on -RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=214376063f567b46e8ebaf5f459ba8f7e1ee5d2f
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 4b2f990f2..2e2f27606 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/342] cpufreq: drop K8's driver from beeing selected
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5418743cfe93bd81d0666a754324fbb8c0d094bd
+Subject: [PATCH 054/351] cpufreq: drop K8's driver from beeing selected
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cd711b3f7f067737c313778a19f497b70348423b
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 64e79c786..ce8e3c7ac 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/342] md: disable bcache
+Subject: [PATCH 055/351] 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=b43ef7e1e9d0f8f376c1cbecd5603eed7ffd27c3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c4eb5c4adb3eed5b47e5abf6d8b648c67c448d02
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 a3991fa44..e80997e9f 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/342] efi: Disable runtime services on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=365411fe5df7eb06fef3644a96222b96878107f6
+Subject: [PATCH 056/351] efi: Disable runtime services on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a9fddbab9b46d9c5cda5f28666c9c11f878c4d74
Based on meassurements the EFI functions get_variable /
get_next_variable take up to 2us which looks okay.
@@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
-index e89932f1ae65..221957ccdb0b 100644
+index 9137fb107ae4..2d4ce39e23ff 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -87,7 +87,7 @@ struct mm_struct efi_mm = {
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 8bab85c4e..a9d7ef34b 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/342] printk: Add a printk kill switch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ed296a69a4f4cc1e1df5a29c87fe629f9f7a61c5
+Subject: [PATCH 057/351] printk: Add a printk kill switch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2559bd7b8660e9dedcc64e3eaf5178080dfb8c12
Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that
it does not dead-lock with the early printk code.
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 891f76a59..891dea427 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/342] printk: Add "force_early_printk" boot param to help
+Subject: [PATCH 058/351] 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=5bc26d1775b46f51023f203f4eab5c1068cc165c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=575558ec674727f3a61f5176e1a3a48bd0b2ef6e
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 06a260365..55e10f9d5 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/342] preempt: Provide preempt_*_(no)rt variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=53b5cbf2736307303fe726f09c6036bc8490fa9e
+Subject: [PATCH 059/351] preempt: Provide preempt_*_(no)rt variants
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b19ac3da49fd7a3ac66300e5bf4f4aa01e7245a5
RT needs a few preempt_disable/enable points which are not necessary
otherwise. Implement variants to avoid #ifdeffery.
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 f589e420b..b6b8724cf 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/342] futex: workaround migrate_disable/enable in different
+Subject: [PATCH 060/351] futex: workaround migrate_disable/enable in different
context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1b4d3dbc8790453456e4eed79e76cc04c35af965
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2a3ce7af87dbe96b38d528cbbc440801f469834d
migrate_disable()/migrate_enable() takes a different path in atomic() vs
!atomic() context. These little hacks ensure that we don't underflow / overflow
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 3b46f2259..7038eef6d 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/342] rt: Add local irq locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c059c18f3ffb8049cb8d1e3f674ce1dadd9e1716
+Subject: [PATCH 061/351] rt: Add local irq locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e3a1711c49812c82c1af8e5b82624a8a3f2b4687
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 59782baab..f4fe95d0f 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/342] locallock: provide {get,put}_locked_ptr() variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a103d13e1c82e65714758163ca6a573a1192099c
+Subject: [PATCH 062/351] locallock: provide {get,put}_locked_ptr() variants
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=138eba591ac83924b533005888b35e070687a49d
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 41f44b72e..4450f22f5 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/342] mm/scatterlist: Do not disable irqs on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e9f18c257d54ad5d2aab765ab83165b1f914a211
+Subject: [PATCH 063/351] mm/scatterlist: Do not disable irqs on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5136392a21ed50d1b5ef6243092b5e33b53cd45
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 fac2bd9ec..aeef1f1be 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/342] signal/x86: Delay calling signals in atomic
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b34409a64f8206c8591fe1e49021a5b10f2da5d8
+Subject: [PATCH 064/351] signal/x86: Delay calling signals in atomic
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2cb53deb143489d57d80cf98be7e5c9566cd599e
On x86_64 we must disable preemption before we enable interrupts
for stack faults, int3 and debugging, because the current task is using
@@ -79,10 +79,10 @@ index 33d3c88a7225..fb0438d06ca7 100644
typedef sigset_t compat_sigset_t;
#endif
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 52069b9ddce8..56047f57ebc7 100644
+index 6a4e7b2d27d3..96b1e60d2444 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -881,6 +881,10 @@ struct task_struct {
+@@ -885,6 +885,10 @@ struct task_struct {
/* Restored if set_restore_sigmask() was used: */
sigset_t saved_sigmask;
struct sigpending pending;
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 c5e0394ae..fc46fa878 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/342] x86/signal: delay calling signals on 32bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=634425200c2407f794e54dfa9f59786e87b81860
+Subject: [PATCH 065/351] x86/signal: delay calling signals on 32bit
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea5a8c6c4661a9a1d808238ce345d32911b7529f
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 4fb0d2e07..cdcf535e0 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/342] buffer_head: Replace bh_uptodate_lock for -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=83ebb8fff9183675790a74c7d47700e4498cc51a
+Subject: [PATCH 066/351] buffer_head: Replace bh_uptodate_lock for -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=26279f7db2149b404506e6dec0c13effa245c8b6
Wrap the bit_spin_lock calls into a separate inline and add the RT
replacements with a real spinlock.
@@ -145,7 +145,7 @@ index 8946130c87ad..71d0b3ba70f8 100644
/**
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
-index 9168fc33a4f7..572541d6cc90 100644
+index 87fbaa84b0df..00028e4f7410 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -76,8 +76,42 @@ struct buffer_head {
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 3f88de87a..19a6a89c0 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/342] fs: jbd/jbd2: Make state lock and journal head lock
+Subject: [PATCH 067/351] 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=f91a99950e81ad7b0afc52a031624f5c58aab806
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c9524014ae5950c28836dd2d963362c3cde072f8
bit_spin_locks break under RT.
@@ -18,7 +18,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2 files changed, 32 insertions(+)
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
-index 572541d6cc90..703bf3335a3d 100644
+index 00028e4f7410..ba488c24f969 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -78,6 +78,10 @@ struct buffer_head {
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 4a6b621f2..6d3b88828 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/342] list_bl: Make list head locking RT safe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51b2c6abf67d49a7986b6c833aed0acb1392865e
+Subject: [PATCH 068/351] list_bl: Make list head locking RT safe
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4381d71fe99bf7961742680738c30d1b889ebdb7
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 bbb6e593d..fa98c04d8 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/342] list_bl: fixup bogus lockdep warning
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=31f4da06270d71015ad1d8d03c45fdba34ef07bb
+Subject: [PATCH 069/351] list_bl: fixup bogus lockdep warning
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=93ff082fd139fddc2c77c34b99c59ec82d491121
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 d05578e64..8a25680b5 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/342] genirq: Disable irqpoll on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb89b91111430b636ef8decb3c4b1043fff1658b
+Subject: [PATCH 070/351] genirq: Disable irqpoll on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c1671eff698dc6a676b4de310bef9366eae254f8
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 70501763b..ccccd5f9b 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/342] genirq: Force interrupt thread on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9ed3c480f56be478ccd03c80943df887b0e0baa6
+Subject: [PATCH 071/351] genirq: Force interrupt thread on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ea2cafd86841f3d75cea13a28c385e6c65e6bad
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 71f2952c5..d626c2fb0 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/342] Split IRQ-off and zone->lock while freeing pages from
+Subject: [PATCH 072/351] 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=214e6808e3ae9655e1530a4da1698e20754a33a5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=afd0fba4aeb3f625c26f744e174d4c03e3d3b914
Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages.
@@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 52 insertions(+), 30 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 9c35403d9646..6763dfc2dde0 100644
+index 1cffd4e1fd8f..7b48a742f235 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1096,7 +1096,7 @@ static inline void prefetch_buddy(struct page *page)
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 eddc1c4de..3c89ad68e 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/342] Split IRQ-off and zone->lock while freeing pages from
+Subject: [PATCH 073/351] 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=0a4d7be1a0591f795f80c043627b1c30d633459a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a7fcfa2efb2d8e57db62b3e3ad5cd632a2876bf9
Split the IRQ-off section while accessing the PCP list from zone->lock
while freeing pages.
@@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 50 insertions(+), 10 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 6763dfc2dde0..ba6f9b334073 100644
+index 7b48a742f235..ea7c80e38b83 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1106,8 +1106,8 @@ static inline void prefetch_buddy(struct page *page)
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 e3bd8de68..b73a35943 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/342] 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=d8c58de5abafe875e6c797d46f6a9272262d1358
+Subject: [PATCH 074/351] 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=5f15fea3b62af963babcb686a09026b8dc07d9cf
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,7 +398,7 @@ 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 0fefe0ad8f57..ef6fc4df3ed5 100644
+index ef730ea8263c..97d2bd78534b 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1182,7 +1182,7 @@ static noinline int free_debug_processing(
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 0035016fb..010e70a62 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/342] mm/SLUB: delay giving back empty slubs to IRQ enabled
+Subject: [PATCH 075/351] 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=2ea46cd4066413ae217e7307020fa0e4a4cbc223
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0fe365431dc1420c65024651a7ec5df624151761
__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 ef6fc4df3ed5..e9abe4aa5801 100644
+index 97d2bd78534b..c62e0bf85d8e 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 3422be6dc..23fdb3335 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/342] mm: page_alloc: rt-friendly per-cpu pages
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5a85fb64e5e9bd14a4754af946d40a154f966492
+Subject: [PATCH 076/351] mm: page_alloc: rt-friendly per-cpu pages
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b8a62914995f0e36b3121b5f0076ecd2553592f
rt-friendly per-cpu pages: convert the irqs-off per-cpu locking
method into a preemptible, explicit-per-cpu-locks method.
@@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 43 insertions(+), 20 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index ba6f9b334073..59ea701ecfe0 100644
+index ea7c80e38b83..94ab9500f9d7 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -60,6 +60,7 @@
@@ -215,7 +215,7 @@ index ba6f9b334073..59ea701ecfe0 100644
return NULL;
}
-@@ -8146,7 +8169,7 @@ void zone_pcp_reset(struct zone *zone)
+@@ -8191,7 +8214,7 @@ void zone_pcp_reset(struct zone *zone)
struct per_cpu_pageset *pset;
/* avoid races with drain_pages() */
@@ -224,7 +224,7 @@ index ba6f9b334073..59ea701ecfe0 100644
if (zone->pageset != &boot_pageset) {
for_each_online_cpu(cpu) {
pset = per_cpu_ptr(zone->pageset, cpu);
-@@ -8155,7 +8178,7 @@ void zone_pcp_reset(struct zone *zone)
+@@ -8200,7 +8223,7 @@ void zone_pcp_reset(struct zone *zone)
free_percpu(zone->pageset);
zone->pageset = &boot_pageset;
}
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 46e35b420..0dfa1bb5b 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/342] mm/swap: Convert to percpu locked
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40bb64bdb9f08a966387ce191c13d6042c979062
+Subject: [PATCH 077/351] mm/swap: Convert to percpu locked
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=83abd37b431627122bf19be29ff45a520f8bfc2e
Replace global locks (get_cpu + local_irq_save) with "local_locks()".
Currently there is one of for "rotate" and one for "swap".
@@ -55,10 +55,10 @@ index 5079ddbec8f9..c40d3a13cbbd 100644
cc->last_migrated_pfn = 0;
}
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 59ea701ecfe0..11c08cfd6dfb 100644
+index 94ab9500f9d7..27808409a25c 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -7257,8 +7257,9 @@ void __init free_area_init(unsigned long *zones_size)
+@@ -7302,8 +7302,9 @@ void __init free_area_init(unsigned long *zones_size)
static int page_alloc_cpu_dead(unsigned int cpu)
{
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 1c1bc4128..86d38f6f7 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/342] mm: perform lru_add_drain_all() remotely
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0db71c6d6c532698314525788c98376e43ab8792
+Subject: [PATCH 078/351] mm: perform lru_add_drain_all() remotely
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=166029f4c6a938230690bb19a404b305f0ea9ae3
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
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 0a244ba6a..09b3d390b 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/342] mm/vmstat: Protect per cpu variables with preempt
+Subject: [PATCH 079/351] 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=2f41021e38ad41f3fa1580a7d2562c242d06be06
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bf0eea4c0c30f7f5ee33168a9bffef98fac66058
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 e9ce703fa..0b3f95cfc 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/342] ARM: Initialize split page table locks for vector
+Subject: [PATCH 080/351] 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=004b09285edbce245a32c7ba47b4c0d1ce080afe
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9bba7707b5620080399ae9a97342c1c4176740f3
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 6636ce493..27a4a5c14 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/342] mm: Enable SLUB for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=66a902f49030b2d9bfb39fe4f55b1896c93f213d
+Subject: [PATCH 081/351] mm: Enable SLUB for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1cd2fa84f5e951db996b0064abaf351e9f6dfede
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 e9abe4aa5801..ae6ab2cb4fbf 100644
+index c62e0bf85d8e..1f32f64254a7 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 280d17588..3f83dc8d1 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/342] slub: Enable irqs for __GFP_WAIT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=34456ee6c4c856f7cce8ac33edc699d985d3a9ed
+Subject: [PATCH 082/351] slub: Enable irqs for __GFP_WAIT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1be9be5f873d2a5d5743064f8e1a0c80d7ecc737
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 ae6ab2cb4fbf..676006f34077 100644
+index 1f32f64254a7..197bab70a05d 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 737240239..aa2554ed4 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/342] slub: Disable SLUB_CPU_PARTIAL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3cd2c1912d56bbd633cd7fb9da7e156ec2c8019f
+Subject: [PATCH 083/351] slub: Disable SLUB_CPU_PARTIAL
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=128abebd45e2b89746bff62be16e68a3495a9452
|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 a48bfa868..1cc2389a0 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/342] mm/memcontrol: Don't call schedule_work_on in
+Subject: [PATCH 084/351] 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=1453dc8469e34b538adc7c22d2e33f0c4b017153
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb8889975c22e66f0bf04ba78ed03491594216ef
The following trace is triggered when running ltp oom test cases:
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 c58a81b82..45df0f80c 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/342] mm/memcontrol: Replace local_irq_disable with local
+Subject: [PATCH 085/351] 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=c695d8d84b8950d1dbadfb23f5135d0482c74014
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=872cfe2b863a1a9a32e60bf73b7bff0e800b94f9
There are a few local_irq_disable() which then take sleeping locks. This
patch converts them local locks.
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 5933d34ed..7eca257bb 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/342] 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=0d02aa51348471acca9af9ec915069b45e1709da
+Subject: [PATCH 086/351] 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=796f74fb5cf504dbc2bf1f3af13f16e0c09d3877
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 ef0db33f5..100c313a1 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/342] x86/mm/pat: disable preemption __split_large_page()
+Subject: [PATCH 087/351] 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=ee35c399cafe97f822c232c385f3e5be619dbe9e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=652e2139defe970fd2d82b04d5aeb12394c008d9
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 8a8531ebb..fe8ec191b 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/342] radix-tree: use local locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=234dfd00f2c617fbc93207317ac69f2dba0bb05a
+Subject: [PATCH 088/351] radix-tree: use local locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=005680192f8aae72026cff0eff54af2ae3cb0b49
The preload functionality uses per-CPU variables and preempt-disable to
ensure that it does not switch CPUs during its usage. This patch adds
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 8fba12012..9587a5ee8 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/342] timers: Prepare for full preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6e530eb3ecf4c019b3d4a2b5f00c0dcd295c741f
+Subject: [PATCH 089/351] timers: Prepare for full preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51fd00e00d7474c27ef7cd2453cedcd5e6b4ffd4
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
@@ -29,7 +29,7 @@ index 7b066fd38248..54627d046b3a 100644
#else
# define del_timer_sync(t) del_timer(t)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 0a51a66f5a63..974d92afd23e 100644
+index 80234d096926..4becc6f1f56c 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -498,11 +498,14 @@ void resched_cpu(int cpu)
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 1f8082f04..365c5fb03 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/342] x86: kvm Require const tsc for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a78a1abd53560fa236781a743b6991f1d2115c5
+Subject: [PATCH 090/351] x86: kvm Require const tsc for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3636d60b0c62a884fa793ba6bcc2503b3904c635
Non constant TSC is a nightmare on bare metal already, but with
virtualization it becomes a complete disaster because the workarounds
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 9b54f7f8b..5a87aa93c 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/342] 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=bc4efd9eda261dc33bbd4879e5372415434f2b73
+Subject: [PATCH 091/351] 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=48d756630ef34726f78831f9de78387269714991
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 c41af172e..425ec9dfe 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/342] wait.h: include atomic.h
+Subject: [PATCH 092/351] 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=c5650d84f71a6e552239a8cb37bfd4c4f71c3694
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=198558e88fadd7681aaf9b8900de684fd7d79536
| 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 9e5fcdae8..9503e8341 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/342] work-simple: Simple work queue implemenation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1db798e94e6356004af3d7f40120bfa1d3085575
+Subject: [PATCH 093/351] work-simple: Simple work queue implemenation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6f39471a941908be762004e90ebabdc80fa6aa7d
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 870364e7c..a485ebc6d 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/342] work-simple: drop a shit statement in
+Subject: [PATCH 094/351] 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=0792de6350ded4bfe1e75e38094d9a96714f2345
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4659d4d28e8ce492dc3843111b15d19df9618039
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 03ed158d5..a48a363e6 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/342] completion: Use simple wait queues
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d23a63b2ce2dac0f15ecccec672b163dc974c1b
+Subject: [PATCH 095/351] completion: Use simple wait queues
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6f1a04f32f49733171bb6bf7b2f512a9b3581a02
Completions have no long lasting callbacks and therefor do not need
the complex waitqueue variant. Use simple waitqueues which reduces the
@@ -67,7 +67,7 @@ index 49eb4e3c760f..49fc75368aa2 100644
destroy_workqueue(ffs->io_completion_wq);
kfree(ffs->dev_name);
diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c
-index 3ebcbd199a79..a2240aa9f4ab 100644
+index b0a2b8805f41..2da5a1bb0d01 100644
--- a/drivers/usb/gadget/legacy/inode.c
+++ b/drivers/usb/gadget/legacy/inode.c
@@ -345,7 +345,7 @@ ep_io (struct ep_data *epdata, void *buf, unsigned len)
@@ -160,7 +160,7 @@ index 73e06e9986d4..f426a0661aa0 100644
extern long prepare_to_swait_event(struct swait_queue_head *q, struct swait_queue *wait, int state);
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
-index 6abdfdf571ee..7020a6582a4c 100644
+index 6737ae6ffbae..7f90441a6238 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -690,6 +690,10 @@ static int load_image_and_restore(void)
@@ -319,10 +319,10 @@ index a1ad5b7d5521..755a58084978 100644
}
EXPORT_SYMBOL(completion_done);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 974d92afd23e..3c5999476609 100644
+index 4becc6f1f56c..116b2d65f4e3 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7157,7 +7157,10 @@ void migrate_disable(void)
+@@ -7158,7 +7158,10 @@ void migrate_disable(void)
return;
}
#ifdef CONFIG_SCHED_DEBUG
@@ -334,7 +334,7 @@ index 974d92afd23e..3c5999476609 100644
#endif
if (p->migrate_disable) {
-@@ -7187,7 +7190,10 @@ void migrate_enable(void)
+@@ -7188,7 +7191,10 @@ void migrate_enable(void)
}
#ifdef CONFIG_SCHED_DEBUG
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 862846974..08f95b2db 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/342] fs/aio: simple simple work
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4617d96a1bbab94f3bcd001e87d8180e39423e14
+Subject: [PATCH 096/351] fs/aio: simple simple work
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e6b2f2ea19d44e55222b3d0455ec4b279a8cef52
|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 0ecc12bf9..52fb77753 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/342] time/hrtimer: avoid schedule_work() with interrupts
+Subject: [PATCH 097/351] time/hrtimer: avoid schedule_work() with interrupts
disabled
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aedfbca1bdb44eeadb289b485e48abe2fb8f387c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6226cda643b8168dc02c740131337f68dd450370
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 fcc2e35a7..ae86d0335 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/342] hrtimer: consolidate hrtimer_init() +
+Subject: [PATCH 098/351] hrtimer: consolidate hrtimer_init() +
hrtimer_init_sleeper() calls
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=07da73a0fed15ec8893cb1866155b59c290a3238
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd0ab4b50f5c1acee380ca0e57f43d8300d6c6b8
hrtimer_init_sleeper() calls require a prior initialisation of the
hrtimer object with hrtimer_init(). Lets make the initialisation of
diff --git a/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch b/debian/patches-rt/0099-hrtimers-Prepare-full-preemption.patch
index 8883a33f1..5715e057d 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/342] hrtimers: Prepare full preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ff266a71965e444605aee13d7b449196b60a9cb6
+Subject: [PATCH 099/351] hrtimers: Prepare full preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=18791268204a236b73607c8e4cbb4734da37426e
Make cancellation of a running callback in softirq context safe
against preemption.
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 06a7570b8..fc8506ceb 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/342] hrtimer: by timers by default into the softirq
+Subject: [PATCH 100/351] 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=f68468a5cbe2c273bed160e13102b7ed2a2dc653
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89282e2a055b47694e78836cc63efb94ec30aa73
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 89d07312e58c..037dbe04fda2 100644
+index 027941e3df68..9699f3735a55 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
-@@ -2258,7 +2258,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
+@@ -2262,7 +2262,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
apic->vcpu = vcpu;
hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC,
@@ -87,7 +87,7 @@ index ba66ea3ca705..11e9bbad4878 100644
/*
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 3c5999476609..0f949b7738fd 100644
+index 116b2d65f4e3..98a994f98fbd 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -315,7 +315,7 @@ static void hrtick_rq_init(struct rq *rq)
@@ -100,10 +100,10 @@ index 3c5999476609..0f949b7738fd 100644
}
#else /* CONFIG_SCHED_HRTICK */
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
-index 95ebbb2074c7..1a285367081c 100644
+index 9243d0049714..52acbb31a777 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
-@@ -1086,7 +1086,7 @@ void init_dl_task_timer(struct sched_dl_entity *dl_se)
+@@ -1105,7 +1105,7 @@ void init_dl_task_timer(struct sched_dl_entity *dl_se)
{
struct hrtimer *timer = &dl_se->dl_timer;
@@ -129,7 +129,7 @@ index 16940416d526..d804b5443bb9 100644
cfs_b->distribute_running = 0;
}
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
-index 52b55144d8ad..a2f2c6c91e05 100644
+index a068884c369f..b15428ede6cf 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)
@@ -219,7 +219,7 @@ index e774a49176cc..012bc81879bf 100644
/* Get the next period (per-CPU) */
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
-index 6d60701dc636..328620fe85f6 100644
+index 44096c4f4d60..bd381bfe7fa4 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -485,7 +485,7 @@ static void watchdog_enable(unsigned int cpu)
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 f80f74104..10703885b 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/342] sched/fair: Make the hrtimers non-hard again
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=90e4dd88198300e2cff6390921e007f8c9b65cd2
+Subject: [PATCH 101/351] sched/fair: Make the hrtimers non-hard again
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f95707e37e5a72313b6af6c3a680339ecd28c984
Since commit "sched/fair: Robustify CFS-bandwidth timer locking" both
hrtimer can run in softirq context because now interrupts are disabled
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 1090eca9f..0fc9d2f2f 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/342] hrtimer: Move schedule_work call to helper thread
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb8fb1f4b937d13140f8318d40aa918bb3d56c6a
+Subject: [PATCH 102/351] hrtimer: Move schedule_work call to helper thread
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9e8e9dc46083762d86515ef6889930f05d128cb3
When run ltp leapsec_timer test, the following call trace is caught:
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 1f6332c5b..4a6296d99 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/342] hrtimer: move state change before hrtimer_cancel in
+Subject: [PATCH 103/351] 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=caa78d03cd12d437e13c46990f9bbf0d5e4213a2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=267d544f94bf3b3faae448fb614cde6ea57d1bb1
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
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 cfb97e0ec..21c4c89f4 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/342] posix-timers: Thread posix-cpu-timers on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9fccc98390795269e7eadabb5d45da878152469
+Subject: [PATCH 104/351] posix-timers: Thread posix-cpu-timers on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=869ba66cccb83e6b6fa385a378e1a0eb62b30e06
posix-cpu-timer code takes non -rt safe locks in hard irq
context. Move it to a thread.
@@ -18,10 +18,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
4 files changed, 164 insertions(+), 3 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 56047f57ebc7..5369eb1fd456 100644
+index 96b1e60d2444..92faffe9ecf0 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -832,6 +832,9 @@ struct task_struct {
+@@ -836,6 +836,9 @@ struct task_struct {
#ifdef CONFIG_POSIX_TIMERS
struct task_cputime cputime_expires;
struct list_head cpu_timers[3];
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 35ae45e9c..2ef8de15f 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/342] sched: Move task_struct cleanup to RCU
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=db20a0cee5b392d2b8ed3c4190f110cb0bb4190f
+Subject: [PATCH 105/351] sched: Move task_struct cleanup to RCU
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4a264f82c1ecb578701edbdf97f8d040ad1f9cba
__put_task_struct() does quite some expensive work. We don't want to
burden random tasks with that.
@@ -14,10 +14,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
3 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 5369eb1fd456..5e2ec9c86b4b 100644
+index 92faffe9ecf0..d627469bab35 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1196,6 +1196,9 @@ struct task_struct {
+@@ -1200,6 +1200,9 @@ struct task_struct {
unsigned int sequential_io;
unsigned int sequential_io_avg;
#endif
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 9be17c7d6..9693134b7 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/342] 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=f99e05418d4105ecba282a7b0f8213164425f903
+Subject: [PATCH 106/351] 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=c8d0aca09270aaacbb5a4ffd4e9e42e9cf28531a
Put an upper limit on the number of tasks which are migrated per batch
to avoid large latencies.
@@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 4 insertions(+)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 0f949b7738fd..4cc39856c4c6 100644
+index 98a994f98fbd..a291133f169f 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -44,7 +44,11 @@ const_debug unsigned int sysctl_sched_features =
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 c0c665ee2..5c561e80e 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/342] sched: Move mmdrop to RCU on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8de90b6c82e68a3d721e0eab2caedb37ba27386a
+Subject: [PATCH 107/351] sched: Move mmdrop to RCU on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1fda01d66505c00694bf701fee98783bfd51188
Takes sleeping locks and calls into the memory allocator, so nothing
we want to do in task switch and oder atomic contexts.
@@ -83,7 +83,7 @@ index f5a4c42233f0..114ff9724b02 100644
{
struct mm_struct *mm;
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 4cc39856c4c6..676b9b213991 100644
+index a291133f169f..632999d01f73 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2734,9 +2734,13 @@ static struct rq *finish_task_switch(struct task_struct *prev)
@@ -101,7 +101,7 @@ index 4cc39856c4c6..676b9b213991 100644
}
if (unlikely(prev_state == TASK_DEAD)) {
if (prev->sched_class->task_dead)
-@@ -5603,6 +5607,7 @@ void sched_setnuma(struct task_struct *p, int nid)
+@@ -5604,6 +5608,7 @@ void sched_setnuma(struct task_struct *p, int nid)
#endif /* CONFIG_NUMA_BALANCING */
#ifdef CONFIG_HOTPLUG_CPU
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 b5ae2dbe7..4f27963b7 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/342] kernel/sched: move stack + kprobe clean up to
+Subject: [PATCH 108/351] 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=3dd0ebab3223ff2fcf7a12a1ee3bf1ad46d17b85
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7845c522934f431f6d3ca31934e2461c89800c38
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
@@ -45,7 +45,7 @@ index 114ff9724b02..efe690af29f1 100644
task_numa_free(tsk, true);
security_task_free(tsk);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 676b9b213991..089779e18440 100644
+index 632999d01f73..4763faddac6b 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2746,15 +2746,6 @@ static struct rq *finish_task_switch(struct task_struct *prev)
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 0340f4f44..3a5c8ac62 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/342] sched: Add saved_state for tasks blocked on sleeping
+Subject: [PATCH 109/351] 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=2b049915c871102cb82a98f65f734bdf7963f933
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=93ed8db7e6295b227c390bffa860f7e5e833d6e4
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
@@ -18,10 +18,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
3 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 5e2ec9c86b4b..1b2884889dd0 100644
+index d627469bab35..44a5e80481bb 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -600,6 +600,8 @@ struct task_struct {
+@@ -604,6 +604,8 @@ struct task_struct {
#endif
/* -1 unrunnable, 0 runnable, >0 stopped: */
volatile long state;
@@ -30,7 +30,7 @@ index 5e2ec9c86b4b..1b2884889dd0 100644
/*
* This begins the randomizable portion of task_struct. Only
-@@ -1621,6 +1623,7 @@ extern struct task_struct *find_get_task_by_vpid(pid_t nr);
+@@ -1625,6 +1627,7 @@ extern struct task_struct *find_get_task_by_vpid(pid_t nr);
extern int wake_up_state(struct task_struct *tsk, unsigned int state);
extern int wake_up_process(struct task_struct *tsk);
@@ -39,7 +39,7 @@ index 5e2ec9c86b4b..1b2884889dd0 100644
#ifdef CONFIG_SMP
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 089779e18440..3ec69104d0e0 100644
+index 4763faddac6b..165df30aad7b 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2002,8 +2002,27 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
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 9d2a2a801..574609567 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/342] sched: Do not account rcu_preempt_depth on RT in
+Subject: [PATCH 110/351] 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=46c7e6ef6b0afa0ef14f78ebafb0de5027ff2a1a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4c33fbefa2d8dbc37a5298a428f24021f34b3285
RT changes the rcu_preempt_depth semantics, so we cannot check for it
in might_sleep().
@@ -39,10 +39,10 @@ index 68cbe111420b..027c58cdbb6e 100644
/* Internal to kernel */
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 3ec69104d0e0..52e821ac5872 100644
+index 165df30aad7b..b375f10ca8f8 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -6192,7 +6192,7 @@ void __init sched_init(void)
+@@ -6193,7 +6193,7 @@ void __init sched_init(void)
#ifdef CONFIG_DEBUG_ATOMIC_SLEEP
static inline int preempt_count_equals(int preempt_offset)
{
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 02abd27d7..66930bd89 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/342] 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=ad711b8b50c3ec2c9eb719a8dd713462e9480baa
+Subject: [PATCH 111/351] 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=4951308b85f29382d1cf1f29287bf908dd20c9f9
RT does not increment preempt count when a 'sleeping' spinlock is
locked. Update PREEMPT_LOCK_OFFSET for that case.
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 0cc8404ca..71a35061c 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/342] sched: Disable TTWU_QUEUE on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c761744fc89f74ee4646f732e2f7589faa095af3
+Subject: [PATCH 112/351] sched: Disable TTWU_QUEUE on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a2f3635713fb3360b9ce65703477a4db96cd8064
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 cac51e0af..47f7cff3e 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/342] sched/workqueue: Only wake up idle workers if not
+Subject: [PATCH 113/351] 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=317447a5b3d776b6cfd3c4c98050fcd97322e4d8
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb80c24da74db0be170d2e19868ad5eb355a27b0
In -rt, most spin_locks() turn into mutexes. One of these spin_lock
conversions is performed on the workqueue gcwq->lock. When the idle
@@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 52e821ac5872..dadf92046f01 100644
+index b375f10ca8f8..54f22c835740 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -3544,8 +3544,10 @@ static void __sched notrace __schedule(bool preempt)
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 40b318eb7..26a09df27 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/342] rt: Increase/decrease the nr of migratory tasks when
+Subject: [PATCH 114/351] 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=7cec25c101288e60f1ff32098dcf7f6ddb34cce0
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f12714dbfa30e40ef8023d652f115cb6ff2ad99d
There is a problem in the migrate_disable()/enable() implementation
regarding the number of migratory tasks in the rt/dl RQs. The problem
@@ -81,10 +81,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 44 insertions(+), 5 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index dadf92046f01..ba6f445ac9e8 100644
+index 54f22c835740..7b4752fa34d1 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7179,6 +7179,47 @@ const u32 sched_prio_to_wmult[40] = {
+@@ -7180,6 +7180,47 @@ const u32 sched_prio_to_wmult[40] = {
#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP)
@@ -132,7 +132,7 @@ index dadf92046f01..ba6f445ac9e8 100644
void migrate_disable(void)
{
struct task_struct *p = current;
-@@ -7202,10 +7243,9 @@ void migrate_disable(void)
+@@ -7203,10 +7244,9 @@ void migrate_disable(void)
}
preempt_disable();
@@ -145,7 +145,7 @@ index dadf92046f01..ba6f445ac9e8 100644
preempt_enable();
}
-@@ -7237,9 +7277,8 @@ void migrate_enable(void)
+@@ -7238,9 +7278,8 @@ void migrate_enable(void)
preempt_disable();
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 dce52eae4..594e332d9 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/342] hotplug: Lightweight get online cpus
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9830fd079687f2127d5cfc53c16f8d4d0e1cfb19
+Subject: [PATCH 115/351] hotplug: Lightweight get online cpus
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e035a899f179507ef0a952663aaa96e83989be51
get_online_cpus() is a heavy weight function which involves a global
mutex. migrate_disable() wants a simpler construct which prevents only
@@ -68,10 +68,10 @@ index c9ca190ec034..f4c49bbc3fa3 100644
void cpus_read_lock(void)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index ba6f445ac9e8..ed79f921a84e 100644
+index 7b4752fa34d1..b1771f3de84a 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7243,6 +7243,7 @@ void migrate_disable(void)
+@@ -7244,6 +7244,7 @@ void migrate_disable(void)
}
preempt_disable();
@@ -79,7 +79,7 @@ index ba6f445ac9e8..ed79f921a84e 100644
migrate_disable_update_cpus_allowed(p);
p->migrate_disable = 1;
-@@ -7308,12 +7309,15 @@ void migrate_enable(void)
+@@ -7309,12 +7310,15 @@ void migrate_enable(void)
arg.task = p;
arg.dest_cpu = dest_cpu;
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 26dc37a7e..e612118cc 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/342] trace: Add migrate-disabled counter to tracing output
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5252ba8da88a7390c388073a08dcc5eba3206046
+Subject: [PATCH 116/351] trace: Add migrate-disabled counter to tracing output
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4f8fdde1b3678b5833d803cc42a6be3c119fe2af
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
@@ -52,10 +52,10 @@ index 5b7a6e9b0ab6..5cb37fa71316 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 1ca64a9296d0..fbb04cf1d5bc 100644
+index d2f9146d1ad7..ddda660b84f9 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
-@@ -188,6 +188,8 @@ static int trace_define_common_fields(void)
+@@ -189,6 +189,8 @@ static int trace_define_common_fields(void)
__common_field(unsigned char, flags);
__common_field(unsigned char, preempt_count);
__common_field(int, pid);
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 edeec8c3e..3ea9b9bcc 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/342] lockdep: Make it RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3079bca07ad3f83c30c86e9542e7edb1c7f2ed70
+Subject: [PATCH 117/351] lockdep: Make it RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=111ccdb78876a9e7e8dbec25cb2b1815aa53ab20
teach lockdep that we don't really do softirqs on -RT.
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 6c3880cdb..4d51123ea 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/342] tasklet: Prevent tasklets from going into infinite
+Subject: [PATCH 118/351] 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=e11d4ceb7976f9f4bb42ed76c972b28cc32c295f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=842018f53f2583b16e1553f3443162e7f8e5e4e9
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 c12437f64..163f9d22a 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/342] softirq: Check preemption after reenabling interrupts
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c36de62cf384d49f3a0f23f7502b17c1be03ceb
+Subject: [PATCH 119/351] softirq: Check preemption after reenabling interrupts
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=edfadd52335e1c2709012ff052173aaa8bee23f7
raise_softirq_irqoff() disables interrupts and wakes the softirq
daemon, but after reenabling interrupts there is no preemption check,
@@ -116,7 +116,7 @@ index 86a709954f5a..9c069ef83d6d 100644
return 0;
}
diff --git a/net/core/dev.c b/net/core/dev.c
-index 42f6ff8b9703..b8e3ae050bcc 100644
+index 880b096eef8a..b11a0189124d 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2725,6 +2725,7 @@ static void __netif_reschedule(struct Qdisc *q)
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 458995fb2..5f1ebbc71 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/342] softirq: Disable softirq stacks for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=accf186584b07cb6c604b5f165381367dad68b9e
+Subject: [PATCH 120/351] softirq: Disable softirq stacks for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8aff4d895825375152ceb183fd81b8a9d4921921
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 1744900fe..8940a458a 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/342] softirq: Split softirq locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b2084eea88470c1ab4999158ba663263ffe62cc
+Subject: [PATCH 121/351] softirq: Split softirq locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b4331c68b1951abae16632083ed35fd2f6d7789
The 3.x RT series removed the split softirq implementation in favour
of pushing softirq processing into the context of the thread which
@@ -177,10 +177,10 @@ index 9984f2b75b73..27c3176d88d2 100644
#define in_task() (!(preempt_count() & \
(NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET)))
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 1b2884889dd0..63a97f24d138 100644
+index 44a5e80481bb..bf13a967491e 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1200,6 +1200,8 @@ struct task_struct {
+@@ -1204,6 +1204,8 @@ struct task_struct {
#endif
#ifdef CONFIG_PREEMPT_RT_BASE
struct rcu_head put_rcu;
@@ -189,7 +189,7 @@ index 1b2884889dd0..63a97f24d138 100644
#endif
#ifdef CONFIG_DEBUG_ATOMIC_SLEEP
unsigned long task_state_change;
-@@ -1397,6 +1399,7 @@ extern struct pid *cad_pid;
+@@ -1401,6 +1403,7 @@ extern struct pid *cad_pid;
/*
* Per process flags
*/
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 2bad52b3c..35e7901f4 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/342] 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=90c011694ab18ee6bf1ed891fd489a5ec95ffb1a
+Subject: [PATCH 122/351] 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=3dd730875c01ae6a3216ede09dafed368fcd7a8a
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,7 +18,7 @@ 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 b8e3ae050bcc..315bdaf00ac8 100644
+index b11a0189124d..add05f74ba38 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4537,11 +4537,9 @@ int netif_rx_ni(struct sk_buff *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 75cdbf25f..14943be50 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/342] genirq: Allow disabling of softirq processing in irq
+Subject: [PATCH 123/351] 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=fcae9108c6950e37988deba7ca6c824ccb1c97cc
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5c7cadec0dc0ec451f60a23a21c8e1c9dbd298f2
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 4413600e9..195df2b00 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/342] softirq: split timer softirqs out of ksoftirqd
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=df12f0ccfce0f4ac8542c56f719e8f2f71a65f2a
+Subject: [PATCH 124/351] softirq: split timer softirqs out of ksoftirqd
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=00591fd6ff8548bff5a45ad725a435f31da6484b
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 ce57380af..ec8958196 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/342] softirq: Avoid "local_softirq_pending" messages if
+Subject: [PATCH 125/351] 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=96d9095dbc28be31e65da4563d72dca0813eccbf
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3656ad07294bb694dcb23d7c402b6f28339beafc
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 3615bb40a..3fc9df139 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/342] softirq: Avoid "local_softirq_pending" messages if
+Subject: [PATCH 126/351] 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=29f30ebce0eb689baf7f7b34e71797872822a58d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=69f5153e7f1652483c78774022844be37eefbcd4
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 291d8d372..535a5bcaa 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/342] rtmutex: trylock is okay on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f76f4735aed998bb2c03c61a89230b757a4fe952
+Subject: [PATCH 127/351] rtmutex: trylock is okay on -RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aca2cbeb348d796df3306d9f3aee897235b3dc19
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 bf211c1b5..235a9a1c3 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/342] fs/nfs: turn rmdir_sem into a semaphore
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6fb5ec130d9a1ccb20b3cea61c5b177c798e898c
+Subject: [PATCH 128/351] fs/nfs: turn rmdir_sem into a semaphore
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3506eb98111a4728cff279a6efc90db5600a1e73
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 8befd5d3f..c9005afe2 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/342] rtmutex: Handle the various new futex race conditions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f36213e96b6be3d94dda72b8b3d6dbe386346a1
+Subject: [PATCH 129/351] rtmutex: Handle the various new futex race conditions
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=87defa1c67a6936496ff138d852327de93790c03
RT opens a few new interesting race conditions in the rtmutex/futex
combo due to futex hash bucket lock being a 'sleeping' spinlock and
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 74ad7a1cb..b296aebdc 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/342] 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=a211a6391b03430c4bd22cf99ebe8e4412a76fc1
+Subject: [PATCH 130/351] 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=b91f0a4ed2048e086d3787e48816c961fefb74f3
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 aecdc337a..1ef64a486 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/342] futex: Ensure lock/unlock symetry versus pi_lock and
+Subject: [PATCH 131/351] 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=9b9b23148e1ee440fb6709067736cfa33b4c4f27
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c0e7d88a0e4c773f20ccfc49eaaa5e2a4a4d2a98
In exit_pi_state_list() we have the following locking construct:
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 25d9273ac..c488054a3 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/342] pid.h: include atomic.h
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ebc8e476657349538056e71e80aa977057972195
+Subject: [PATCH 132/351] pid.h: include atomic.h
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=56bdb37f8349a9206791ca7112f76f085cd97053
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 1b2825108..89f7999d5 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/342] arm: include definition for cpumask_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d65c1c9c5bf77db5005a8b99a0c703f5bb892fcb
+Subject: [PATCH 133/351] arm: include definition for cpumask_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=af54c02857b13e640014f46b568c88244623fbf6
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 b548ef966..b244586f7 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/342] locking: locktorture: Do NOT include rwlock.h
+Subject: [PATCH 134/351] locking: locktorture: Do NOT include rwlock.h
directly
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cc9d1be680177e81b590286d422a410a747aaeb4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fe91471c8c82661ea5869a8f4fe29226dcdea4a4
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 d97f3545b..4553d5e5d 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/342] rtmutex: Add rtmutex_lock_killable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ab6b6c8bc1aabe6b845f3f27a2e1177591c6f619
+Subject: [PATCH 135/351] rtmutex: Add rtmutex_lock_killable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=88f6577c4fb59ca7ef8760561f80a6dea788ddbc
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 394058af8..865eee08c 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/342] rtmutex: Make lock_killable work
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=61fa01d84f2b1b35d66b69c4b7fda86f45ad7d50
+Subject: [PATCH 136/351] rtmutex: Make lock_killable work
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fbf7123998ba54e81012475000c6708088804590
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 1b5e85469..e5c86f274 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/342] spinlock: Split the lock types header
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c79f3fea34f5b6aa30f2e97c8d5dcb95fd161f64
+Subject: [PATCH 137/351] spinlock: Split the lock types header
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=835910505452d94466b0d87fee584b8159b3b6eb
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 44a5be729..c6832a94f 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/342] rtmutex: Avoid include hell
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c34fc8975a05f3be15d042b8e1a195fe2e406e7e
+Subject: [PATCH 138/351] rtmutex: Avoid include hell
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6cf62501b5f4caa77de7214c81ba71f60d38f517
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 ef16640ab..d31fd381b 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/342] rbtree: don't include the rcu header
+Subject: [PATCH 139/351] 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=89a313db5ff54e6ebe97cd147bc27e27e7448732
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3aae1dd0ed999b612c527c0a456f2ff5db5042e2
The RCU header pulls in spinlock.h and fails due not yet defined types:
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 17f0a56e5..d15c1d325 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/342] rtmutex: Provide rt_mutex_slowlock_locked()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=53cb0c772c30a3f534246da306630892657aee07
+Subject: [PATCH 140/351] rtmutex: Provide rt_mutex_slowlock_locked()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=32da04034f5c21e8dd44d8859a74b44f4a75437b
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 41b28d266..3253b2eb6 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/342] rtmutex: export lockdep-less version of rt_mutex's
+Subject: [PATCH 141/351] 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=5dbdcffac97ac1a307e15a14592c3e8d837766c4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c24a0727689de5d4de97056bd23226d5ea1d5d5e
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 0891c9fa3..554cf0dac 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/342] rtmutex: add sleeping lock implementation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ba50c47e65ffab81bd256813390bbdf7f4c7ff22
+Subject: [PATCH 142/351] rtmutex: add sleeping lock implementation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aeb2fe1f0d08e5e10e6cdccad7ebc570e2412d4f
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
@@ -102,7 +102,7 @@ index a355289b1fa1..138bd1e183e0 100644
* rt_mutex_is_locked - is the mutex locked
* @lock: the mutex to be queried
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 63a97f24d138..e4e206a1e7dd 100644
+index bf13a967491e..1bdb44910261 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -134,6 +134,9 @@ struct task_group;
@@ -133,7 +133,7 @@ index 63a97f24d138..e4e206a1e7dd 100644
/*
* set_special_state() should be used for those states when the blocking task
* can not use the regular condition based wait-loop. In that case we must
-@@ -914,6 +921,7 @@ struct task_struct {
+@@ -918,6 +925,7 @@ struct task_struct {
raw_spinlock_t pi_lock;
struct wake_q_node wake_q;
@@ -1144,7 +1144,7 @@ index 53a8c5d03d28..7c1dd1bd95c7 100644
#ifdef CONFIG_DEBUG_RT_MUTEXES
# include "rtmutex-debug.h"
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index ed79f921a84e..1f450a7649f0 100644
+index b1771f3de84a..d448d4768507 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -401,9 +401,15 @@ static bool set_nr_if_polling(struct task_struct *p)
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 ab0dfe716..81ac49bbe 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/342] rtmutex: add mutex implementation based on rtmutex
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0721909250ea1708b9a71d403791a6d0d1c847bf
+Subject: [PATCH 143/351] rtmutex: add mutex implementation based on rtmutex
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=692bc4be34ce8b072c663df403dee5d1ff2d1edf
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 b045cbb85..b403e34de 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/342] rtmutex: add rwsem implementation based on rtmutex
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a50802f1a28bc3efc3da58b2dc02e2ce9e262bf7
+Subject: [PATCH 144/351] rtmutex: add rwsem implementation based on rtmutex
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9d009b9784f5fb819228761e8c43c15eed2c456
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 a23eb96df..ca4ec6522 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/342] rtmutex: add rwlock implementation based on rtmutex
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=15018c2ebb240be9c688212d67e7ccef0a0b76c3
+Subject: [PATCH 145/351] rtmutex: add rwlock implementation based on rtmutex
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7e575d30efc07fdf41c42e279cfc7e86f770bee5
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 6eca4e175..169c589c9 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/342] rtmutex/rwlock: preserve state like a sleeping lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a394b6d10212e9724d148f88c5ca736270ad2967
+Subject: [PATCH 146/351] rtmutex/rwlock: preserve state like a sleeping lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c6ae3427e4d697b6c663c992da53d43f4e9c9e3
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 30f210655..0b5eb09bd 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/342] rtmutex: wire up RT's locking
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=15d882ef5f548758242ab6f1ef81b06189619403
+Subject: [PATCH 147/351] rtmutex: wire up RT's locking
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40562ef5910bd6b47337d1c78e86aeabf4ffe5ef
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 6241aed37..f4030c34a 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/342] rtmutex: add ww_mutex addon for mutex-rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09033e8bd64e77065eceb62cd95fa1054dbd4b84
+Subject: [PATCH 148/351] rtmutex: add ww_mutex addon for mutex-rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=364264a221705e0d3168cee361d8c33cd0b8765a
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 4e04f34aa..e297312f2 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/342] kconfig: Add PREEMPT_RT_FULL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=602f4e43efe1b27b4acd0a6f09186d0d2aa71a24
+Subject: [PATCH 149/351] kconfig: Add PREEMPT_RT_FULL
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=50403d3662b97dc86aad24ce9aaf70eac7243e9d
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 baf9bfc92..0759be8c6 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/342] locking/rt-mutex: fix deadlock in device mapper /
+Subject: [PATCH 150/351] 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=5d5e1d7efa41d6c8e4e40b2505c073c13555f8cf
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c1b102410a832da4c5605c6bcd58840065a6c371
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 27c354d1d..a35807a76 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/342] 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=0997f874d638be3d2f65de4bf3d9710d1e5bc2d8
+Subject: [PATCH 151/351] 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=1581ef1c4659083458124c21aeca498adf9951b1
__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 d79f148a7..d6671ebf2 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/342] locking/rtmutex: re-init the wait_lock in
+Subject: [PATCH 152/351] 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=33986efd8958c2bf3bbd528799dcb6cba9aaef50
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=969797c8c974dc599312a4609570f755bead0c4b
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 2fffa6e73..1ed66fb0d 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/342] ptrace: fix ptrace vs tasklist_lock race
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cb675ae1b0511d73895bd276d65c88740717b40b
+Subject: [PATCH 153/351] ptrace: fix ptrace vs tasklist_lock race
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb736d5bbc7154b40fd917ad3d2c6b6665f9cf0b
As explained by Alexander Fyodorov <halcy@yandex.ru>:
@@ -30,7 +30,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
3 files changed, 68 insertions(+), 7 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index e4e206a1e7dd..5374ade34b87 100644
+index 1bdb44910261..c0ee1caf5a9b 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -101,12 +101,8 @@ struct task_group;
@@ -46,7 +46,7 @@ index e4e206a1e7dd..5374ade34b87 100644
#define task_contributes_to_load(task) ((task->state & TASK_UNINTERRUPTIBLE) != 0 && \
(task->flags & PF_FROZEN) == 0 && \
(task->state & TASK_NOLOAD) == 0)
-@@ -1717,6 +1713,51 @@ static inline int test_tsk_need_resched(struct task_struct *tsk)
+@@ -1721,6 +1717,51 @@ static inline int test_tsk_need_resched(struct task_struct *tsk)
return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED));
}
@@ -119,7 +119,7 @@ index bf8360e86f62..9078fdefc6e0 100644
}
spin_unlock_irq(&task->sighand->siglock);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 1f450a7649f0..9494e2007118 100644
+index d448d4768507..8586d8834f5e 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1349,6 +1349,18 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p,
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 0780d303e..ac6bf85ef 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/342] rtmutex: annotate sleeping lock context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=776ea97a6f953041a1ba42eafc4148ee1687f731
+Subject: [PATCH 154/351] rtmutex: annotate sleeping lock context
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=553e5540bb68f9d632ea835f006f7285a0656d62
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
@@ -53,10 +53,10 @@ index 27c3176d88d2..9eafc34898b4 100644
#define migrate_disable() barrier()
#define migrate_enable() barrier()
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 5374ade34b87..4f8fcba23c1d 100644
+index c0ee1caf5a9b..08971062c194 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -673,6 +673,15 @@ struct task_struct {
+@@ -677,6 +677,15 @@ struct task_struct {
# ifdef CONFIG_SCHED_DEBUG
int migrate_disable_atomic;
# endif
@@ -72,7 +72,7 @@ index 5374ade34b87..4f8fcba23c1d 100644
#endif
#ifdef CONFIG_PREEMPT_RCU
-@@ -1810,6 +1819,23 @@ static __always_inline bool need_resched(void)
+@@ -1814,6 +1823,23 @@ static __always_inline bool need_resched(void)
return unlikely(tif_need_resched());
}
@@ -249,10 +249,10 @@ index 5f6de49dc78e..35f3552b7463 100644
!t->rcu_read_unlock_special.b.blocked) {
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 9494e2007118..555dea10764e 100644
+index 8586d8834f5e..22b49744a3d9 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7348,4 +7348,49 @@ void migrate_enable(void)
+@@ -7349,4 +7349,49 @@ void migrate_enable(void)
preempt_enable();
}
EXPORT_SYMBOL(migrate_enable);
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 4ed82ea97..2c050e602 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/342] sched/migrate_disable: fallback to preempt_disable()
+Subject: [PATCH 155/351] 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=1e31f6ab66216ee3cd7976b73cf11a8f8f0ab55f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=45c69023a6783aef1cdde83c05006953e80582b6
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
@@ -70,10 +70,10 @@ index 9eafc34898b4..ed8413e7140f 100644
{
return 0;
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 4f8fcba23c1d..ceb3bdfb6bc4 100644
+index 08971062c194..3bc6b3206e14 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -667,7 +667,7 @@ struct task_struct {
+@@ -671,7 +671,7 @@ struct task_struct {
int nr_cpus_allowed;
const cpumask_t *cpus_ptr;
cpumask_t cpus_mask;
@@ -82,7 +82,7 @@ index 4f8fcba23c1d..ceb3bdfb6bc4 100644
int migrate_disable;
int migrate_disable_update;
# ifdef CONFIG_SCHED_DEBUG
-@@ -675,8 +675,8 @@ struct task_struct {
+@@ -679,8 +679,8 @@ struct task_struct {
# endif
#elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
@@ -93,7 +93,7 @@ index 4f8fcba23c1d..ceb3bdfb6bc4 100644
# endif
#endif
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 555dea10764e..0c44c16244a1 100644
+index 22b49744a3d9..630e726acdd2 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1031,7 +1031,7 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma
@@ -123,7 +123,7 @@ index 555dea10764e..0c44c16244a1 100644
if (__migrate_disabled(p)) {
p->migrate_disable_update = 1;
goto out;
-@@ -7204,7 +7204,7 @@ const u32 sched_prio_to_wmult[40] = {
+@@ -7205,7 +7205,7 @@ const u32 sched_prio_to_wmult[40] = {
#undef CREATE_TRACE_POINTS
@@ -132,7 +132,7 @@ index 555dea10764e..0c44c16244a1 100644
static inline void
update_nr_migratory(struct task_struct *p, long delta)
-@@ -7352,45 +7352,44 @@ EXPORT_SYMBOL(migrate_enable);
+@@ -7353,45 +7353,44 @@ EXPORT_SYMBOL(migrate_enable);
#elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
void migrate_disable(void)
{
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 cca123ab3..02a185487 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/342] locking: don't check for __LINUX_SPINLOCK_TYPES_H on
+Subject: [PATCH 156/351] 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=8ab0fecbe8b849e10b94a02f931ef52a238372cc
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ff53da4bff019a3522340011b04e29fe2d045bb4
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 6598a1655..306a8cc2f 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/342] rcu: Frob softirq test
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=628969206bda92fd3cb80f9a7f60d46f759f6ff3
+Subject: [PATCH 157/351] rcu: Frob softirq test
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f70612a68dc5b44cc40eae34d239e05d06c754ab
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 2b96eb9c6..9bd8f8d5a 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/342] rcu: Merge RCU-bh into RCU-preempt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e8243820023d1864d3416ab5ecae7c3537625b9e
+Subject: [PATCH 158/351] rcu: Merge RCU-bh into RCU-preempt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=06862d99cf60d93afdc8bdb45b8c8859a61f48cb
The Linux kernel has long RCU-bh read-side critical sections that
intolerably increase scheduling latency under mainline's RCU-bh rules,
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 e166211d1..31e7a7f08 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/342] rcu: Make ksoftirqd do RCU quiescent states
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=910ed8de1b690c46028f322611f08647be22a46e
+Subject: [PATCH 159/351] rcu: Make ksoftirqd do RCU quiescent states
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=79dcd4ab14bb75bb6a07e7d03c68eea1a2e59e14
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 00533902b..740e5df8c 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/342] rcu: Eliminate softirq processing from rcutree
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e6956a4a5226c57030ab0f03a099961a7912622c
+Subject: [PATCH 160/351] rcu: Eliminate softirq processing from rcutree
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=67b40435052173f46e033a6efab379495f1c875e
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 f59184c6f..26401b4bb 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/342] srcu: use cpu_online() instead custom check
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40f0daab09838e3cb2bb289fd81961d4b99a371b
+Subject: [PATCH 161/351] srcu: use cpu_online() instead custom check
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0f05eb0c288f3567fef98eb7f15cf10c0d127ebe
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 b6f85e0af..0feb71e70 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/342] srcu: replace local_irqsave() with a locallock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2fc8ab8893cf5d21d8f969355bfafef1e2d061f9
+Subject: [PATCH 162/351] srcu: replace local_irqsave() with a locallock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7197d35e35853da7cd81d701e92c1ea09e0d8fbb
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 deabd95f6..5cd7caddc 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/342] 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=2a0165d80207502259764b4e08ff9292ec282d14
+Subject: [PATCH 163/351] 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=55cb72a44f355ceafa38471122b23a51ac59fdd9
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 34496fcb7..c78c8cc0c 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/342] tty/serial/omap: Make the locking RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=21dad8bb64706a3b67bd55dc0e9bbc20e87e5975
+Subject: [PATCH 164/351] tty/serial/omap: Make the locking RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c332491e79cabb61063862a86e0cbddd7704c39
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 9bb7c51b0..209ed61bd 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/342] 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=4fdbc8d0d5cf770ae17bc4112cb279784d1e78de
+Subject: [PATCH 165/351] 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=ea773575f22c250996b10c85b48267f6266a47bb
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 963fe9faf..33d88b4c3 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/342] tty: serial: pl011: explicitly initialize the flags
+Subject: [PATCH 166/351] 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=2a2684c06eb6b87c6cd8a915f01cd285ae4acec1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3bb62a5bc5bf67845e898bd9b8ce8e44502def17
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 5fbfa68c3..e9c728350 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/342] rt: Improve the serial console PASS_LIMIT
+Subject: [PATCH 167/351] 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=c489a37730ab7dc6711eaf529e620ffa4a040083
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=54f38c5acf4d18362d5186c7756b78e5321249ed
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 e80b1a15e..838a8f725 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/342] 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=9baedf4a77e41542731e04db12fe39ec29b3f547
+Subject: [PATCH 168/351] 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=d293d6a4bedffd2f361e3057a0290331aab3caa7
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 f11d1202566e..33d489691fdf 100644
+index 6fc89888a52e..15a92d855ca7 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
-@@ -3298,10 +3298,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
+@@ -3303,10 +3303,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 2691f7f99..7748d1b46 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/342] locking/percpu-rwsem: Remove preempt_disable variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a6144b3d320a51f37923f97565c2075acfa272e2
+Subject: [PATCH 169/351] locking/percpu-rwsem: Remove preempt_disable variants
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3996cc801bbcf1bf7982692116491a05d11e6d98
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 efb35b78d..81e988eb8 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/342] mm: Protect activate_mm() by
+Subject: [PATCH 170/351] 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=9c267b77756364bd7e03dfa8c35b44e8aac88a92
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2744d7008885b27cae3644145fcd16d9375ef68f
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 fd867af3a..a7bb2fed5 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/342] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD
+Subject: [PATCH 171/351] 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=16d7e388305072fa331ed9314f101642caf833df
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fa1bbdefa768d6776aa9355dbf060438c97cf3c8
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 5e95883cd..ffd494fa5 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/342] fs/dcache: disable preemption on i_dir_seq's write
+Subject: [PATCH 172/351] 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=e5aa3cd1fb61377548b05992478366fa06df648a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=243086d979b7ad6dd457418734fd3bf7b36eac62
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
@@ -68,7 +68,7 @@ index b5e53587d14b..1ae163d54925 100644
rcu_read_unlock();
goto retry;
diff --git a/fs/inode.c b/fs/inode.c
-index c9eb5041ffae..e1fb0b743c96 100644
+index 5df2e8ee23ed..9cdec5f41e40 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -156,7 +156,7 @@ int inode_init_always(struct super_block *sb, struct inode *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 a8c04adce..b14dc20e9 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/342] squashfs: make use of local lock in multi_cpu
+Subject: [PATCH 173/351] 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=cd15b8ea0b373f60c52fd336a51db28780e51ddf
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=28a5885425f7c1b1988b6f9778abdf2ac6618820
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 55f25516b..0abd92c40 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/342] thermal: Defer thermal wakups to threads
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=80d2debabf144ce9ed2ba4ef7be880809eb9415e
+Subject: [PATCH 174/351] thermal: Defer thermal wakups to threads
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1a5eb814bba630b57b3b562a0cbb1f43b755455d
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 83ea602c2..f6634261f 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/342] x86/fpu: Disable preemption around local_bh_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=71e8b8cd3f9e13bcfed104c93718b61839917f12
+Subject: [PATCH 175/351] x86/fpu: Disable preemption around local_bh_disable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=43e9f2f66d607d2d2c00cd783b48ce1fbb6b3f8e
__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 a38bf0919..1f24c35e3 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/342] fs/epoll: Do not disable preemption on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=39465cb875c530ab48723b2d7631fd7f39e0a332
+Subject: [PATCH 176/351] fs/epoll: Do not disable preemption on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=de20909c36add2592e1fd5ec37b2c116b1054e20
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 a0fd78510..872bd62ce 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/342] mm/vmalloc: Another preempt disable region which
+Subject: [PATCH 177/351] mm/vmalloc: Another preempt disable region which
sucks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=08f4a1f48722a9046148340af70b3e2fcde3eb75
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f2e80e7c6aa95e16a3bf5d27afb1bb6b0ba5f0d
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 ed3ebd629..1f4b0697e 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/342] block: mq: use cpu_light()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ceaaa62b2d57cc6c4ea2ea7dba6f6c266bd208b5
+Subject: [PATCH 178/351] block: mq: use cpu_light()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1db4f0ed568e7f616c7d8dfc6985231ae050beb
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 859ff09e8..fdd7ee444 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/342] block/mq: do not invoke preempt_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb97e375c69de88bac89ad2d4b152f3ae23637ad
+Subject: [PATCH 179/351] block/mq: do not invoke preempt_disable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c970ba38e5079fc6d1560ce719231ec332f5da28
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 207cd80ff..7ee729b61 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/342] block/mq: don't complete requests via IPI
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4e9380971f8b08119840af917fb3d20b44697363
+Subject: [PATCH 180/351] block/mq: don't complete requests via IPI
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7923bcefeab753e50d06c209f4af8832dda27365
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 148b94e4b..90a497e14 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/342] md: raid5: Make raid5_percpu handling RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ee5b72719d2eaaef95179f02ba27140ecc010e87
+Subject: [PATCH 181/351] md: raid5: Make raid5_percpu handling RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=215c75ad291ac658b1b6756853fcf92b7e781daa
__raid_run_ops() disables preemption with get_cpu() around the access
to the raid5_percpu variables. That causes scheduling while atomic
@@ -19,10 +19,10 @@ 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 dad426cc0f90..73083d826cb5 100644
+index 7fe0619c487a..fdbe17d1b1c4 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
-@@ -2069,8 +2069,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
+@@ -2070,8 +2070,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
struct raid5_percpu *percpu;
unsigned long cpu;
@@ -33,7 +33,7 @@ index dad426cc0f90..73083d826cb5 100644
if (test_bit(STRIPE_OP_BIOFILL, &ops_request)) {
ops_run_biofill(sh);
overlap_clear++;
-@@ -2129,7 +2130,8 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
+@@ -2130,7 +2131,8 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
if (test_and_clear_bit(R5_Overlap, &dev->flags))
wake_up(&sh->raid_conf->wait_for_overlap);
}
@@ -43,7 +43,7 @@ index dad426cc0f90..73083d826cb5 100644
}
static void free_stripe(struct kmem_cache *sc, struct stripe_head *sh)
-@@ -6816,6 +6818,7 @@ static int raid456_cpu_up_prepare(unsigned int cpu, struct hlist_node *node)
+@@ -6828,6 +6830,7 @@ static int raid456_cpu_up_prepare(unsigned int cpu, struct hlist_node *node)
__func__, cpu);
return -ENOMEM;
}
@@ -51,7 +51,7 @@ index dad426cc0f90..73083d826cb5 100644
return 0;
}
-@@ -6826,7 +6829,6 @@ static int raid5_alloc_percpu(struct r5conf *conf)
+@@ -6838,7 +6841,6 @@ static int raid5_alloc_percpu(struct r5conf *conf)
conf->percpu = alloc_percpu(struct raid5_percpu);
if (!conf->percpu)
return -ENOMEM;
diff --git a/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch b/debian/patches-rt/0182-rt-Introduce-cpu_chill.patch
index 45763af0f..4eb51619d 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/342] rt: Introduce cpu_chill()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1a90e8a8114c8293b082950723f161fb291c9a98
+Subject: [PATCH 182/351] rt: Introduce cpu_chill()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c23ee57332cab70fefb6e4bfdc189f61d600fac8
Retry loops on RT might loop forever when the modifying side was
preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill()
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 f559f43c0..2a32274a1 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/342] hrtimer: Don't lose state in cpu_chill()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=97dde541f771635fac327fcb3c43579f5a62e644
+Subject: [PATCH 183/351] hrtimer: Don't lose state in cpu_chill()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b04ba7e4cf4e2eaacd7cef517ff353dd3c7c0a74
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
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 7c2b86a09..9372f0ce4 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/342] hrtimer: cpu_chill(): save task state in
+Subject: [PATCH 184/351] 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=250017b35e442ec3f0c0de915bc759b7c09970a4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=781af25fa18a1586f4a6e1690b49521a79ebd7cf
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.
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 a408a43f9..24cc36bab 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/342] block: blk-mq: move blk_queue_usage_counter_release()
+Subject: [PATCH 185/351] 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=6a7adb1b98617edcc96b31d7e0540fa0c3e0028e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea6963bba2bb29ce40ebaf69a1911cb113ffb0f2
| 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 96077e1de..91a666ab0 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/342] block: Use cpu_chill() for retry loops
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09fd64566fb6662245eaad575fa0c9639974f404
+Subject: [PATCH 186/351] block: Use cpu_chill() for retry loops
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b021010d1896544df3c81965258e0911ce63f14
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 e25f891db..5764362ef 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/342] fs: dcache: Use cpu_chill() in trylock loops
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e02df13d5d60689b59c3c616e8d5e8b0b590f5ac
+Subject: [PATCH 187/351] fs: dcache: Use cpu_chill() in trylock loops
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3842106559d0b7f9b1b644b62e0943bf41d0f1c0
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 842d973e9..c2d475d7c 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/342] net: Use cpu_chill() instead of cpu_relax()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=08d2287893d5effd32a2d1c8821c3cf55702d8c2
+Subject: [PATCH 188/351] net: Use cpu_chill() instead of cpu_relax()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=005f9cf4461533015d3a1b5ccc5bbdbeeaf7b4bd
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/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 5e37f719f..1cf46cb64 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/342] fs/dcache: use swait_queue instead of waitqueue
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7dde6c012afca804e922a5e807f06908f9170fe
+Subject: [PATCH 189/351] fs/dcache: use swait_queue instead of waitqueue
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6af69d2bbc226ecdacb1f944d8798b02c19c738
__d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock()
which disables preemption. As a workaround convert it to swait.
@@ -97,7 +97,7 @@ index 6098e0c7f87b..9ce28840684a 100644
if (!o->nodeid) {
/*
diff --git a/fs/namei.c b/fs/namei.c
-index 327844fedf3d..5114c8111807 100644
+index c34ee9653559..83294b91b6bf 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1646,7 +1646,7 @@ static struct dentry *__lookup_slow(const struct qstr *name,
diff --git a/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch b/debian/patches-rt/0190-workqueue-Use-normal-rcu.patch
index da306db75..6e3b1f2b5 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/342] workqueue: Use normal rcu
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=320456e9c705d27e54f3896084adce4fc4930f86
+Subject: [PATCH 190/351] workqueue: Use normal rcu
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cee67a8812386cf151098b840ad3f043ec198571
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 b1bb6cb5802e..3e2f67b77ab8 100644
+index 4ea2f7fd20ce..d002a0ab68d6 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -128,7 +128,7 @@ enum {
@@ -210,7 +210,7 @@ index b1bb6cb5802e..3e2f67b77ab8 100644
return false;
}
-@@ -3350,7 +3355,7 @@ static void rcu_free_pool(struct rcu_head *rcu)
+@@ -3348,7 +3353,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 b1bb6cb5802e..3e2f67b77ab8 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().
-@@ -3404,8 +3409,8 @@ static void put_unbound_pool(struct worker_pool *pool)
+@@ -3402,8 +3407,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 b1bb6cb5802e..3e2f67b77ab8 100644
}
/**
-@@ -3518,14 +3523,14 @@ static void pwq_unbound_release_workfn(struct work_struct *work)
+@@ -3516,14 +3521,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 b1bb6cb5802e..3e2f67b77ab8 100644
}
/**
-@@ -4232,7 +4237,7 @@ void destroy_workqueue(struct workqueue_struct *wq)
+@@ -4230,7 +4235,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 b1bb6cb5802e..3e2f67b77ab8 100644
} else {
/*
* We're the sole accessor of @wq at this point. Directly
-@@ -4342,7 +4347,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
+@@ -4340,7 +4345,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
struct pool_workqueue *pwq;
bool ret;
@@ -266,7 +266,7 @@ index b1bb6cb5802e..3e2f67b77ab8 100644
if (cpu == WORK_CPU_UNBOUND)
cpu = smp_processor_id();
-@@ -4353,7 +4359,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
+@@ -4351,7 +4357,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 b1bb6cb5802e..3e2f67b77ab8 100644
return ret;
}
-@@ -4379,15 +4386,15 @@ unsigned int work_busy(struct work_struct *work)
+@@ -4377,15 +4384,15 @@ unsigned int work_busy(struct work_struct *work)
if (work_pending(work))
ret |= WORK_BUSY_PENDING;
@@ -296,7 +296,7 @@ index b1bb6cb5802e..3e2f67b77ab8 100644
return ret;
}
-@@ -4572,7 +4579,7 @@ void show_workqueue_state(void)
+@@ -4570,7 +4577,7 @@ void show_workqueue_state(void)
unsigned long flags;
int pi;
@@ -305,7 +305,7 @@ index b1bb6cb5802e..3e2f67b77ab8 100644
pr_info("Showing busy workqueues and worker pools:\n");
-@@ -4637,7 +4644,7 @@ void show_workqueue_state(void)
+@@ -4635,7 +4642,7 @@ void show_workqueue_state(void)
touch_nmi_watchdog();
}
@@ -314,7 +314,7 @@ index b1bb6cb5802e..3e2f67b77ab8 100644
}
/* used to show worker information through /proc/PID/{comm,stat,status} */
-@@ -5024,16 +5031,16 @@ bool freeze_workqueues_busy(void)
+@@ -5022,16 +5029,16 @@ bool freeze_workqueues_busy(void)
* nr_active is monotonically decreasing. It's safe
* to peek without lock.
*/
@@ -334,7 +334,7 @@ index b1bb6cb5802e..3e2f67b77ab8 100644
}
out_unlock:
mutex_unlock(&wq_pool_mutex);
-@@ -5235,7 +5242,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
+@@ -5233,7 +5240,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
const char *delim = "";
int node, written = 0;
@@ -344,7 +344,7 @@ index b1bb6cb5802e..3e2f67b77ab8 100644
for_each_node(node) {
written += scnprintf(buf + written, PAGE_SIZE - written,
"%s%d:%d", delim, node,
-@@ -5243,7 +5251,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
+@@ -5241,7 +5249,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 af0123dec..14b34fc5f 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/342] workqueue: Use local irq lock instead of irq disable
+Subject: [PATCH 191/351] 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=db677b16afffaae08d8aa77b72025ae6155646ca
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4c1728ed1dd59c5957012b24a6234fc3cf170af4
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 3e2f67b77ab8..2b4c052c51b3 100644
+index d002a0ab68d6..3cf50eac5351 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -50,6 +50,7 @@
@@ -149,7 +149,7 @@ index 3e2f67b77ab8..2b4c052c51b3 100644
}
/**
-@@ -3008,7 +3023,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
+@@ -3006,7 +3021,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 3e2f67b77ab8..2b4c052c51b3 100644
/*
* This allows canceling during early boot. We know that @work
-@@ -3069,10 +3084,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
+@@ -3067,10 +3082,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
*/
bool flush_delayed_work(struct delayed_work *dwork)
{
@@ -171,7 +171,7 @@ index 3e2f67b77ab8..2b4c052c51b3 100644
return flush_work(&dwork->work);
}
EXPORT_SYMBOL(flush_delayed_work);
-@@ -3110,7 +3125,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
+@@ -3108,7 +3123,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 998f230b3..231bdc15f 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/342] workqueue: Prevent workqueue versus ata-piix livelock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7e44200efbc637bb4e2d7632e624fae8d13d050f
+Subject: [PATCH 192/351] workqueue: Prevent workqueue versus ata-piix livelock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a2d0ca5fb649be6d26aee5f3ff19ec8e870f37b9
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 2b4c052c51b3..6e73e3eaca5e 100644
+index 3cf50eac5351..50b037b79101 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -51,6 +51,7 @@
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 a973153f3..f885d3f3e 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/342] sched: Distangle worker accounting from rqlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8ca2a73886fa457834e49ae8f2488d39428f7a6b
+Subject: [PATCH 193/351] sched: Distangle worker accounting from rqlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=35aa7cdaff0e8ddfff9de6beb12bae216c821157
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
@@ -33,7 +33,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
3 files changed, 47 insertions(+), 100 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 0c44c16244a1..11afaa2c618a 100644
+index 630e726acdd2..3849015303f6 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1704,10 +1704,6 @@ static inline void ttwu_activate(struct rq *rq, struct task_struct *p, int en_fl
@@ -169,7 +169,7 @@ index 0c44c16244a1..11afaa2c618a 100644
EXPORT_SYMBOL(schedule);
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 6e73e3eaca5e..0c529f920232 100644
+index 50b037b79101..7561ac884a3e 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -844,43 +844,32 @@ static void wake_up_worker(struct worker_pool *pool)
diff --git a/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch b/debian/patches-rt/0194-debugobjects-Make-RT-aware.patch
index 84ba1e2bb..3eed7ea32 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/342] debugobjects: Make RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3f4b31a6cffe2e681eb6631ee488dfb405b2cd8c
+Subject: [PATCH 194/351] debugobjects: Make RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d6dea4e57ada7166ad21527d1f6153022aa1687f
Avoid filling the pool / allocating memory with irqs off().
diff --git a/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch b/debian/patches-rt/0195-seqlock-Prevent-rt-starvation.patch
index 9be672971..292195b07 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/342] seqlock: Prevent rt starvation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8072825488181a21a2f501d13d57d3220abcb7f3
+Subject: [PATCH 195/351] seqlock: Prevent rt starvation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=55168c0a00e26c468f05faedee2a4196eb0d6e6f
If a low prio writer gets preempted while holding the seqlock write
locked, a high prio reader spins forever on RT.
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 c5f235d1e..851ab91fa 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/342] sunrpc: Make svc_xprt_do_enqueue() use
+Subject: [PATCH 196/351] 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=228ab644582c29253ee82c543e2ebb2e63f1d55b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3f5bcdedbb0bb449888702e291046bdbbc85b56
|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 4625d57cb..b107d36b4 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,20 +1,21 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 12 Jul 2011 15:38:34 +0200
-Subject: [PATCH 197/342] net: Use skbufhead with raw lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f524a61883a8ae93a669bc5d257d7bd5ecb25b4f
+Subject: [PATCH 197/351] net: Use skbufhead with raw lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=619cb3448d91f55316735c1ca4725b7d8b3d73e3
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
to the softirq and use the tofree_queue list for it (similar to process_queue).
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-[bwh: Adjust context to apply on top of 4.19.257]
---
include/linux/netdevice.h | 1 +
include/linux/skbuff.h | 7 +++++++
net/core/dev.c | 26 ++++++++++++++++++++------
3 files changed, 28 insertions(+), 6 deletions(-)
+diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
+index 8d48b352ee74..d893dc112afc 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2990,6 +2990,7 @@ struct softnet_data {
@@ -25,6 +26,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
};
+diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
+index f97734f34746..3ede4f0eac10 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -287,6 +287,7 @@ struct sk_buff_head {
@@ -35,7 +38,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
};
struct sk_buff;
-@@ -1735,6 +1736,12 @@ static inline void skb_queue_head_init(s
+@@ -1735,6 +1736,12 @@ static inline void skb_queue_head_init(struct sk_buff_head *list)
__skb_queue_head_init(list);
}
@@ -48,9 +51,11 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
static inline void skb_queue_head_init_class(struct sk_buff_head *list,
struct lock_class_key *class)
{
+diff --git a/net/core/dev.c b/net/core/dev.c
+index add05f74ba38..8ea1c7347987 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -219,14 +219,14 @@ static inline struct hlist_head *dev_ind
+@@ -219,14 +219,14 @@ static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex)
static inline void rps_lock(struct softnet_data *sd)
{
#ifdef CONFIG_RPS
@@ -67,7 +72,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#endif
}
-@@ -5858,7 +5858,9 @@ static int process_backlog(struct napi_s
+@@ -5858,7 +5858,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
while (again) {
struct sk_buff *skb;
@@ -77,7 +82,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
rcu_read_lock();
__netif_receive_skb(skb);
rcu_read_unlock();
-@@ -5866,9 +5868,9 @@ static int process_backlog(struct napi_s
+@@ -5866,9 +5868,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
if (++work >= quota)
return work;
@@ -88,7 +93,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
rps_lock(sd);
if (skb_queue_empty(&sd->input_pkt_queue)) {
/*
-@@ -6341,13 +6343,21 @@ static __latent_entropy void net_rx_acti
+@@ -6341,13 +6343,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);
@@ -110,7 +115,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
for (;;) {
struct napi_struct *n;
-@@ -9545,10 +9555,13 @@ static int dev_cpu_dead(unsigned int old
+@@ -9545,10 +9555,13 @@ static int dev_cpu_dead(unsigned int oldcpu)
netif_rx_ni(skb);
input_queue_head_incr(oldsd);
}
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 8bcd7bc6b..6a82958eb 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/342] 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=94836799f3c24696f98f3517a0681f167007fd18
+Subject: [PATCH 198/351] 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=0cd54619f2ddfd939c73b97d5318d50ffc142ee0
A softirq on -RT can be preempted. That means one task is in
__dev_queue_xmit(), gets preempted and another task may enter
@@ -142,10 +142,10 @@ index d893dc112afc..dfec34087039 100644
}
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index ceb3bdfb6bc4..b7a357635d60 100644
+index 3bc6b3206e14..7aa299de5ebf 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1218,6 +1218,9 @@ struct task_struct {
+@@ -1222,6 +1222,9 @@ struct task_struct {
#endif
#ifdef CONFIG_DEBUG_ATOMIC_SLEEP
unsigned long task_state_change;
@@ -156,7 +156,7 @@ index ceb3bdfb6bc4..b7a357635d60 100644
int pagefault_disabled;
#ifdef CONFIG_MMU
diff --git a/net/core/dev.c b/net/core/dev.c
-index c279375fa5b9..a59b1db02f8b 100644
+index 8ea1c7347987..78fd4ac06a1b 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3833,10 +3833,14 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev)
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 ab1e08c6b..1baa7a1dd 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/342] net: provide a way to delegate processing a softirq
+Subject: [PATCH 199/351] 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=9c6bc0e0c15e8990049af42ea7f423c9057c262d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=78bd50361c1f17ea23a805e1b5903a9eb04afd0e
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,7 +71,7 @@ index 27a4bb2303d0..25bcf2f2714b 100644
* This function must run with irqs disabled!
*/
diff --git a/net/core/dev.c b/net/core/dev.c
-index a59b1db02f8b..2bf357d5602b 100644
+index 78fd4ac06a1b..480c6d91c004 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -6391,7 +6391,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
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 ad802bb69..686152480 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/342] net: dev: always take qdisc's busylock in
+Subject: [PATCH 200/351] 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=1722e39cfe183bfcf871f6e35ffcf2b3f1738b3e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=150c0292b648aa25d172ce53afe6a9cdc9611a72
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 2bf357d5602b..7c59fa4d3ecf 100644
+index 480c6d91c004..8e3cee96ce87 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3472,7 +3472,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 dac59a0ed..a9a97dd3c 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/342] net/Qdisc: use a seqlock instead seqcount
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b3887369aebc1200946b977b1291a1226f40613d
+Subject: [PATCH 201/351] net/Qdisc: use a seqlock instead seqcount
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=69530287cd70d715146a3988edfd92a69846f65b
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
@@ -254,7 +254,7 @@ index 424e70907b96..6b4ee7c98d69 100644
err = -EOPNOTSUPP;
if (sch->flags & TCQ_F_MQROOT) {
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
-index 8d8a9ac2562f..cc777abd16da 100644
+index a5262b2ba536..881467d3afb9 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -576,7 +576,11 @@ struct Qdisc noop_qdisc = {
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 7201414d9..e143d3a55 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/342] net: add back the missing serialization in
+Subject: [PATCH 202/351] 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=513fe58b8aa1cf9e2d118103cc28854c01e83ab1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=507b155f20020ad477cfe379fe332536dd19a7d2
Some time ago Sami Pietikäinen reported a crash on -RT in
ip_send_unicast_reply() which was later fixed by Nicholas Mc Guire
@@ -42,7 +42,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 6 insertions(+)
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
-index ddc1af8731e3..2a080d70d64c 100644
+index 6549e07ce19c..84adb4755c5e 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -62,6 +62,7 @@
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 4ee80f7e7..1a3f490d3 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/342] net: add a lock around icmp_sk()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0034f22f94d4dda2d9486dfb4e8acabc8f947c17
+Subject: [PATCH 203/351] net: add a lock around icmp_sk()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd065d2184568c5188dc758e617b4cef3eecd9de
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 11f3b2b95..f029d1482 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/342] net: Have __napi_schedule_irqoff() disable interrupts
+Subject: [PATCH 204/351] 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=4171dffd1a3b19e920140745da11771243ac3631
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ba1f28e1110d9c8ae7ddf71f24246835e166956e
A customer hit a crash where the napi sd->poll_list became corrupted.
The customer had the bnx2x driver, which does a
@@ -52,7 +52,7 @@ index dfec34087039..c4713217b20e 100644
static inline bool napi_disable_pending(struct napi_struct *n)
{
diff --git a/net/core/dev.c b/net/core/dev.c
-index 7c59fa4d3ecf..e65dc7a7cc13 100644
+index 8e3cee96ce87..ad8f5563c85e 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5953,6 +5953,7 @@ bool napi_schedule_prep(struct napi_struct *n)
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 314809d7b..4f6ed8687 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/342] irqwork: push most work into softirq context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b91447711938ba1aee8c66249408ab12ba1b8f2
+Subject: [PATCH 205/351] irqwork: push most work into softirq context
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3061f788ba9b0f332281c8117a8d9df4a1fda0d9
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 0a5220da2..9c28e2a28 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/342] printk: Make rt aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=338dc05ea3a9f2fc4900771ff722965bf1a72427
+Subject: [PATCH 206/351] printk: Make rt aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=14966a4441f9a55fa1334f6959c0c40c217a8d8c
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 b7e92b8c4..b84e2d438 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/342] 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=5d98d6ee2ef71f23a1efd1f0a393f41b7329acfd
+Subject: [PATCH 207/351] 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=4c21b40f9d1d5a3c6b0b2bb8bc0292f3ee9f8bbb
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 07a845599..c91872e66 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/342] printk: Drop the logbuf_lock more often
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51849f67a7bf243a541853e4d207d4e94fd82a78
+Subject: [PATCH 208/351] printk: Drop the logbuf_lock more often
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a7251c41471c363cfc01a070c987ce820b30cc17
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 94a0637df..db2ea74d9 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/342] ARM: enable irq in translation/section permission
+Subject: [PATCH 209/351] 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=339dbf4f42b071e7f56b9dcb8e219d4d4e0656d6
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8559825d974faa51e55b46c4b0af5ffaf869e2ed
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 dd1b4df51..3e8221038 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/342] genirq: update irq_set_irqchip_state documentation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fd9790f0effc20eb941a4073134c21ca951f238c
+Subject: [PATCH 210/351] genirq: update irq_set_irqchip_state documentation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0941ee84264e2a31d516413da6d4f0a23333958
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 2ab74f6ae..959f82605 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/342] KVM: arm/arm64: downgrade preempt_disable()d region
+Subject: [PATCH 211/351] 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=3da26421c3fe48964d225679c51bda781c92b5e2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ca8704ae000da9439b5b1a0073a8861fdcd12a6e
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 bf251dfc5..37f587e80 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/342] arm64: fpsimd: use preemp_disable in addition to
+Subject: [PATCH 212/351] 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=008f9bc0512899030ddd5356f45dae391302fa9b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dfa86674c318427ff210232a6fa270db15c539ec
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 71f829e94..6e0f4c731 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/342] kgdb/serial: Short term workaround
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=85172618f0e8bf15a8cf9029d0eca810de4ce722
+Subject: [PATCH 213/351] kgdb/serial: Short term workaround
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1afcd2e2254c5cb03c06b402aff96238833bce7
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 33d489691fdf..8f6239892d39 100644
+index 15a92d855ca7..df931895cdcb 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -31,6 +31,7 @@
@@ -35,7 +35,7 @@ index 33d489691fdf..8f6239892d39 100644
#include <linux/uaccess.h>
#include <linux/pm_runtime.h>
#include <linux/ktime.h>
-@@ -3300,6 +3301,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
+@@ -3305,6 +3306,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 f9b72b5dd..146e03265 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/342] sysfs: Add /sys/kernel/realtime entry
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=377be180fa8ca554fbf62d9c8c01fe9e4d007f47
+Subject: [PATCH 214/351] sysfs: Add /sys/kernel/realtime entry
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=db314e5983fff75e4f9ebbfc9d2fcfea6bdc43ea
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 fc23f6506..e7616609e 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/342] mm, rt: kmap_atomic scheduling
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=92ff3d2e6bfe3adeccf410f7b9e9a95ce2bf8d53
+Subject: [PATCH 215/351] mm, rt: kmap_atomic scheduling
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4490d82f97c961c35eeeef1031e9e45a410ec5d6
In fact, with migrate_disable() existing one could play games with
kmap_atomic. You could save/restore the kmap_atomic slots on context
@@ -247,7 +247,7 @@ index 0690679832d4..1ac89e4718bf 100644
}
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index b7a357635d60..577045ae8693 100644
+index 7aa299de5ebf..b32eb75dd73b 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -28,6 +28,7 @@
@@ -258,7 +258,7 @@ index b7a357635d60..577045ae8693 100644
/* task_struct member predeclarations (sorted alphabetically): */
struct audit_context;
-@@ -1216,6 +1217,12 @@ struct task_struct {
+@@ -1220,6 +1221,12 @@ struct task_struct {
int softirq_nestcnt;
unsigned int softirqs_raised;
#endif
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 b04db4e0c..ec6e6fd06 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/342] x86/highmem: Add a "already used pte" check
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f6be1300407789b3a66f5ca8fa2bceef903b897
+Subject: [PATCH 216/351] x86/highmem: Add a "already used pte" check
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9bd9625b954ad877bc89bb1e87c19f343a242053
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 47cc179f0..51b7e37c1 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/342] arm/highmem: Flush tlb on unmap
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=176869557b04f77d08189ccf8f2acf9f07da4b26
+Subject: [PATCH 217/351] arm/highmem: Flush tlb on unmap
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=99e954248856729b307ba145a5491f706844d90e
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 3b7aa387a..194d63743 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/342] arm: Enable highmem for rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9a34408767001844806b3b8225682c8afdc6c17a
+Subject: [PATCH 218/351] arm: Enable highmem for rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8372a8317fceb409bba55ae9a39490d9a41cffb9
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 068b8f620..e46379659 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/342] scsi/fcoe: Make RT aware.
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4940a288f7cc4f9cf09fbdb0084921be93d92152
+Subject: [PATCH 219/351] scsi/fcoe: Make RT aware.
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=901ee7587b93437dcfc3b92c8e5cb8c5ebd51001
Do not disable preemption while taking sleeping locks. All user look safe
for migrate_diable() only.
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 38357c7ba..eed8bc5ad 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/342] x86: crypto: Reduce preempt disabled regions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4fad8b937dfa74e2ccba8a8e492be8f8249cc9c
+Subject: [PATCH 220/351] x86: crypto: Reduce preempt disabled regions
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09d9a12df974fceb589eb81af36faa09d8d39605
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 f2dda2f5b..7737e932b 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/342] crypto: Reduce preempt disabled regions, more algos
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ceb1792fc68a494695be3551b6a796af177f2f30
+Subject: [PATCH 221/351] crypto: Reduce preempt disabled regions, more algos
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a0b6f228d90b5135e33a5c8936a9c411264efb38
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 57c9a4d1c..4bea15cd7 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/342] crypto: limit more FPU-enabled sections
+Subject: [PATCH 222/351] 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=d77f41fea4c23bf15b65b4703f0a70c3e8c633c2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a9dd547cc7ef845c4fbd93163ed42d7d623848a2
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 eb8b1dde8..f809de546 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/342] crypto: scompress - serialize RT percpu scratch
+Subject: [PATCH 223/351] 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=3ded7053ca92ed84c6a4aa9392ce406faaca6e12
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=18eaf07ec37f2f06619b6b90d309748e0e86dc94
| 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 883b1e747..de5706d3e 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/342] crypto: cryptd - add a lock instead
+Subject: [PATCH 224/351] 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=a65b405a299e90f7a3a0de278af917a86e2c1f07
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=728b5a4f8b9b88f5fc53c480dcaedc107740554c
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 4104ddf50..8b4c6d561 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/342] panic: skip get_random_bytes for RT_FULL in
+Subject: [PATCH 225/351] 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=4859e3416b599547296a1970d9b8fef5c72bb671
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5786af4abd4135796d537815f1dd27c8759a09d4
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 3021c7916..02aa72603 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/342] x86: stackprotector: Avoid random pool on rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=899dd6a87172ba4ef8839115bce7f4393a0274bc
+Subject: [PATCH 226/351] x86: stackprotector: Avoid random pool on rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=816d0fb08c3857907dadc22cd2c4a1f28a111650
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 1a1ee7954..65d876792 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/342] cpu/hotplug: Implement CPU pinning
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6fa443c6c513b0e160a42bfbc0a4f3023fdf4edb
+Subject: [PATCH 227/351] cpu/hotplug: Implement CPU pinning
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9f0de8987ce46748aebdeb23f492c0775194b0bc
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
@@ -10,10 +10,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2 files changed, 39 insertions(+)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 577045ae8693..7523c0786a63 100644
+index b32eb75dd73b..19eb4838cf03 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -671,6 +671,7 @@ struct task_struct {
+@@ -675,6 +675,7 @@ struct task_struct {
#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
int migrate_disable;
int migrate_disable_update;
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 817e0736d..e25f81c84 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/342] sched: Allow pinned user tasks to be awakened to the
+Subject: [PATCH 228/351] 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=1a7a03ac5f6eb866ddd317630b747d6e8f81013b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b3bd1c0c38b284bb75335fcd8be89eb82e0b7b59
Since commit 7af443ee16976 ("sched/core: Require cpu_active() in
select_task_rq(), for user tasks") select_fallback_rq() will BUG() if
@@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 11afaa2c618a..dba425296275 100644
+index 3849015303f6..7def8ae96342 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -904,7 +904,7 @@ static inline bool is_cpu_allowed(struct task_struct *p, int cpu)
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 357c70d07..83302ea8a 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/342] 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=c925857dee98daf7eea5dd1e206a94a9d9cd72cf
+Subject: [PATCH 229/351] 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=45d4e64fe28e0a883774697dedd82e54e653d2ef
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
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 190c702a6..548b50b30 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/342] net: Remove preemption disabling in netif_rx()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=857d0eea97c02863c4283d4ece826762ed4ae3f3
+Subject: [PATCH 230/351] net: Remove preemption disabling in netif_rx()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0604caaea4458fb904513d7935dc21c3de51db67
1)enqueue_to_backlog() (called from netif_rx) should be
bind to a particluar CPU. This can be achieved by
@@ -35,7 +35,7 @@ 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 e65dc7a7cc13..3df1fe052863 100644
+index ad8f5563c85e..ebe7e6939269 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4494,7 +4494,7 @@ static int netif_rx_internal(struct sk_buff *skb)
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 14d695001..37924f0c1 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/342] net: Another local_irq_disable/kmalloc headache
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=10e37587e11821472945b3a1cfe2306a3ca12b8f
+Subject: [PATCH 231/351] net: Another local_irq_disable/kmalloc headache
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3bd7c599dd78f9fcd4ae90f84556e0544741e343
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 c623c129d0ab..0696d3cb809d 100644
+index e0be1f8651bb..e2561c9c20bd 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 137625f8c..998ea0844 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/342] net/core: protect users of napi_alloc_cache against
+Subject: [PATCH 232/351] 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=2a676f69c03cd2c988d61efa9af4089f653fd83f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=04e22c7dd016cc14e1c3df677791677ff9260c68
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 0696d3cb809d..58f78205585c 100644
+index e2561c9c20bd..5e58555405a7 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 3f6319ef4..e53a91df1 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/342] net: netfilter: Serialize xt_write_recseq sections on
+Subject: [PATCH 233/351] 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=a9374258672d870fd9fa14c86167cf3fb4186859
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=768a90f9da24fea4a57dfef2c174142befc033be
The netfilter code relies only on the implicit semantics of
local_bh_disable() for serializing wt_write_recseq sections. RT breaks
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 5b9098659..98e28dbba 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/342] lockdep: selftest: Only do hardirq context test for
+Subject: [PATCH 234/351] 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=f4f917f2cf46718b42d1954b657f756852896a52
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ae44753fb09a79252061f21c051ab94de6a4e2c5
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 22b6ac89b..c4d7b9c80 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/342] lockdep: selftest: fix warnings due to missing
+Subject: [PATCH 235/351] 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=55b0653e2c4e3159bdfece0f545e959b2583de30
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09b57e155c7dce80d5c4d9593ddc091cc97046b1
"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 0c7ff0691..8ab7c4c53 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/342] sched: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f58baddb785517ba67a7470fb9278fcf919590ff
+Subject: [PATCH 236/351] sched: Add support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=48ddc8513cc012c5cf3c2da038c2544f6c3f591e
It has become an obsession to mitigate the determinism vs. throughput
loss of RT. Looking at the mainline semantics of preemption points
@@ -143,10 +143,10 @@ index ed8413e7140f..9c74a019bf57 100644
} while (0)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 7523c0786a63..044bebd3d16f 100644
+index 19eb4838cf03..00b307a4156c 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1733,6 +1733,44 @@ static inline int test_tsk_need_resched(struct task_struct *tsk)
+@@ -1737,6 +1737,44 @@ static inline int test_tsk_need_resched(struct task_struct *tsk)
return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED));
}
@@ -262,7 +262,7 @@ index 6ae5b18bf3a5..396394ebbc5b 100644
__read_rt_unlock(cpuhp_pin);
goto again;
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index dba425296275..0995748a3a1d 100644
+index 7def8ae96342..cf60731667bf 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -493,6 +493,48 @@ void resched_curr(struct rq *rq)
@@ -383,7 +383,7 @@ index dba425296275..0995748a3a1d 100644
do {
/*
* Because the function tracer can trace preempt_count_sub()
-@@ -5505,7 +5579,9 @@ void init_idle(struct task_struct *idle, int cpu)
+@@ -5506,7 +5580,9 @@ void init_idle(struct task_struct *idle, int cpu)
/* Set the preempt count _outside_ the spinlocks! */
init_idle_preempt_count(idle, cpu);
@@ -394,7 +394,7 @@ index dba425296275..0995748a3a1d 100644
/*
* The idle tasks have their own, simple scheduling class:
*/
-@@ -7222,6 +7298,7 @@ void migrate_disable(void)
+@@ -7223,6 +7299,7 @@ void migrate_disable(void)
}
preempt_disable();
@@ -402,7 +402,7 @@ index dba425296275..0995748a3a1d 100644
pin_current_cpu();
migrate_disable_update_cpus_allowed(p);
-@@ -7289,6 +7366,7 @@ void migrate_enable(void)
+@@ -7290,6 +7367,7 @@ void migrate_enable(void)
arg.dest_cpu = dest_cpu;
unpin_current_cpu();
@@ -410,7 +410,7 @@ index dba425296275..0995748a3a1d 100644
preempt_enable();
stop_one_cpu(task_cpu(p), migration_cpu_stop, &arg);
tlb_migrate_finish(p->mm);
-@@ -7297,6 +7375,7 @@ void migrate_enable(void)
+@@ -7298,6 +7376,7 @@ void migrate_enable(void)
}
}
unpin_current_cpu();
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 45a8800f7..a8793b330 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/342] ftrace: Fix trace header alignment
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b5e921de659bd00cd76e89aded2b7d6b63533a6a
+Subject: [PATCH 237/351] ftrace: Fix trace header alignment
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9486468d82f8e5fb18a4a23ed97e890ccea93835
Line up helper arrows to the right column.
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 563d97c84..5ff97f123 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/342] x86: Support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ebf6918cf9f47fbdd3414aacbc7091e776654392
+Subject: [PATCH 238/351] x86: Support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4baee5bc17c6cc95083544e897256d6438135bc9
Implement the x86 pieces for lazy preempt.
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 2c287d8e1..e90a9e067 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/342] x86: lazy-preempt: properly check against
+Subject: [PATCH 239/351] x86: lazy-preempt: properly check against
preempt-mask
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=62de1107905ffc4ce432b5192aa4e86cba2ea98b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=75513510857bff0bd24e1366af7d6aa055a69b12
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 2d6a1424f..e38dc3355 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/342] x86: lazy-preempt: use proper return label on
+Subject: [PATCH 240/351] 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=af7aacae59cd66ea1a797fb9f9e333423d3d7c71
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f573c1654480f0cf483d8970b1bbbd982643053
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 477fe5af0..540ed8df5 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/342] arm: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=33e85292f4a1b6620af83c5904889dfba4732126
+Subject: [PATCH 241/351] arm: Add support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=26375d10447b34ed31c960277109eca22b4ee37c
Implement the arm pieces for lazy preempt.
@@ -16,7 +16,7 @@ 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 ec99422059e3..2607cae04885 100644
+index d411fbbf13f0..11757b141c4a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -91,6 +91,7 @@ config ARM
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 45e464dee..a0552d68c 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/342] powerpc: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=807f60d61d5538e5acc319218a368950deb6fcdf
+Subject: [PATCH 242/351] powerpc: Add support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e57b5b18ecdd01a4d6c25f64b9bdd7fdf64bbc91
Implement the powerpc pieces for lazy preempt.
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 385d63933..70a1cbc09 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/342] arch/arm64: Add lazy preempt support
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d78ec4a3e861e9c07b84fa323cfd72f647808a23
+Subject: [PATCH 243/351] arch/arm64: Add lazy preempt support
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6da57ed2b5ca1bfb6c77726d034721566678bbce
arm64 is missing support for PREEMPT_RT. The main feature which is
lacking is support for lazy preemption. The arch-specific entry code,
@@ -20,7 +20,7 @@ Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
5 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
-index a101f5d2fbed..84f53dc1a75b 100644
+index e16f0d45b47a..82a85559fa17 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -141,6 +141,7 @@ config ARM64
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 038bec03d..ae25fbe96 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/342] connector/cn_proc: Protect send_msg() with a local
+Subject: [PATCH 244/351] 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=b4f0ce722072d0e6ea67db8c7f6936abe9de0764
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=80e11a209b70e7abefdffaf06e69fc55f0705b6e
|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 b33d8a7a0..20c0c905b 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/342] drivers/block/zram: Replace bit spinlocks with
+Subject: [PATCH 245/351] 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=e9c40001860ea506bbb2d75c4f9a704fdce8b98c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ca01c73a094a833d8d65788bede4ad0112047eca
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 dfb12a9b2..c8b605d85 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/342] drivers/zram: Don't disable preemption in
+Subject: [PATCH 246/351] 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=2689fcbfe8b15a102ec207f5b8c94095333fae9c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ac83a7513fa9bd4761845b295a8caf6dd72668e
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 6c1508d32..84417e01f 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/342] drivers/zram: fix zcomp_stream_get()
+Subject: [PATCH 247/351] 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=8623e80cefb82edf752c74cb790d33a96410271d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dbce882bb932648fcafed8562053feddff71a443
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 97554882b..c576819b3 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/342] tpm_tis: fix stall after iowrite*()s
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=704fbd8b3a5c6a211e3b96b92a5a73ee0bba800c
+Subject: [PATCH 248/351] tpm_tis: fix stall after iowrite*()s
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bfbcd15a1738d0dd3d63567813c6a2927520f286
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 2a7057825..5a9269708 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/342] watchdog: prevent deferral of watchdogd wakeup on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2bdd12a025e0691b88a6b524a8bf4659f64211d0
+Subject: [PATCH 249/351] watchdog: prevent deferral of watchdogd wakeup on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b6a3322fb480a542ab32635329f69b82a5f52b05
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 9dc4e81e3..2e1de7365 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/342] drm,radeon,i915: Use preempt_disable/enable_rt()
+Subject: [PATCH 250/351] 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=d94a37f0014c1bfccacffb6a70f731af4c289090
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f9106310f90277b39dfedd4c7b133ff340c8f183
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 9d529c66e..eb6a76332 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/342] drm,i915: Use local_lock/unlock_irq() in
+Subject: [PATCH 251/351] 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=7f085a648643b652361155e0b483d114b769aaeb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c9d9ae462ce5439ff82d0b2177b4cc6b88cd7c4c
[ 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 714ab87a8..bed2b6737 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/342] drm/i915: disable tracing on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ac5ab95c075b23b5b71b8c9727bc0e4aabe64906
+Subject: [PATCH 252/351] drm/i915: disable tracing on -RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c289c4929e1de551836ec24f7516915727d8e818
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 b80f180b8..4f6231bd1 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/342] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with
+Subject: [PATCH 253/351] 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=a8537101898e867f331b1425ee9d3ed7c42e479d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=36d9355e7da732bec8f0a8871e6c40f4f9fdf63d
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 dc69d3b4d..e09e9da8d 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/342] cgroups: use simple wait in css_release()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5ac1545190c5a7071dc36c3dfda12707af3664c9
+Subject: [PATCH 254/351] cgroups: use simple wait in css_release()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=70e2e15afe58caecf956527ffcfb2f121f6bbbef
To avoid:
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
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 0b163ce8b..afa21c505 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/342] cpuset: Convert callback_lock to raw_spinlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a75ea5624901308867ac5949e01e65b349192283
+Subject: [PATCH 255/351] cpuset: Convert callback_lock to raw_spinlock_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a910bd62761360c31ffecd586b2c36bf03d74e7e
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 2c7d17fea..55a057e01 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/342] apparmor: use a locallock instead preempt_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9f1cf26d60407ea931cff7f1be73bf279a69dd56
+Subject: [PATCH 256/351] apparmor: use a locallock instead preempt_disable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=22e81dfb9afdef3fa2bb494852610c0672e02579
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 730a017ed..4aa84f292 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/342] workqueue: Prevent deadlock/stall on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3250e54d2a2051a789ae9c8fe3a7191f56f4e205
+Subject: [PATCH 257/351] workqueue: Prevent deadlock/stall on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=87d9d53971f4e410e1ad22c2c9a80c3b1de7b58c
Austin reported a XFS deadlock/stall on RT where scheduled work gets
never exececuted and tasks are waiting for each other for ever.
@@ -42,7 +42,7 @@ Cc: Steven Rostedt <rostedt@goodmis.org>
2 files changed, 51 insertions(+), 15 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 0995748a3a1d..feaf4d5683af 100644
+index cf60731667bf..f9babcec1afc 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -3615,9 +3615,8 @@ void __noreturn do_task_dead(void)
@@ -67,7 +67,7 @@ index 0995748a3a1d..feaf4d5683af 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 0c529f920232..91f5696cf335 100644
+index 7561ac884a3e..cb81c7767b17 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -126,6 +126,11 @@ enum {
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 b4b502df1..feaa41c25 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/342] 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=5aac397e1ae3068a8bef5c75bbfbdb268c95b2c5
+Subject: [PATCH 258/351] 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=5f8513444a7cd90b248465aa547d0d9a6bf79d1e
To avoid allocation allow rt tasks to cache one sigqueue struct in
task struct.
@@ -16,10 +16,10 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
5 files changed, 70 insertions(+), 5 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 044bebd3d16f..e567fe2d7058 100644
+index 00b307a4156c..72255bf2166e 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -895,6 +895,8 @@ struct task_struct {
+@@ -899,6 +899,8 @@ struct task_struct {
/* Signal handlers: */
struct signal_struct *signal;
struct sighand_struct *sighand;
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 9b39dc39c..e31b74d66 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/342] Add localversion for -RT release
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=830df089aa5bd42afcc7733ada793ae405e532b0
+Subject: [PATCH 259/351] Add localversion for -RT release
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d9c4840798b87941665de0d03e2e0ae4d1aea3f6
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 b5d7da2d1..349428d20 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/342] powerpc/pseries/iommu: Use a locallock instead
+Subject: [PATCH 260/351] 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=8c0eed1d8e078239e15aeb6ebf028c167f62c92f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2e34d2f882b8f50dc56fb17c2671eefcd3a10613
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 dd5e0dafe..689688d42 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/342] powerpc: reshuffle TIF bits
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e383507c4f1cd7ac67d8fa323e18757106326c37
+Subject: [PATCH 261/351] powerpc: reshuffle TIF bits
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bbd147e21279831b99859a1403741a7ea5cb0cc1
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 0c8bcf942..c2174d734 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/342] 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=bc471880b65be979c4ee19553ef62c6ab0af5b73
+Subject: [PATCH 262/351] 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=0fa8918b8835b046e47ce2bc5de45e815faebd80
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 5e76fee9c..c6202c76b 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/342] drm/i915: Don't disable interrupts independently of
+Subject: [PATCH 263/351] 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=11d12db319077ee47d28ed241e8947c5b86762b7
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=797d3c7e24d525fcadd72c6f71220656625c88ef
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 4174df41c..184364493 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/342] sched/completion: Fix a lockup in
+Subject: [PATCH 264/351] 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=83dfd5e7c7759d10ab5260a4ed98cdd46efa7213
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8d147c6201655ace488f41a1c271d3da10e48853
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 304316c46..834d19ea4 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/342] kthread: add a global worker thread.
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a3be1221a15666a2cca554da5c38c39d106bcbdf
+Subject: [PATCH 265/351] kthread: add a global worker thread.
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=416cf118ae8b8fea6609bc01fbc4d63db005b100
[ 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 c31a76485c9c..d24660961343 100644
+index 12eb48980df7..b8c2c469ce7e 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -70,7 +70,7 @@
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 f4ab668e2..59c1f4834 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/342] arm: imx6: cpuidle: Use raw_spinlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=18215a774fb6f25e6044f44d0bb7285b03a1e151
+Subject: [PATCH 266/351] arm: imx6: cpuidle: Use raw_spinlock_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ec05cab0fe0a4fff3110ce62e12882bf66cbcc09
[ 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 6d0413f44..4aa1d5fb3 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/342] rcu: Don't allow to change rcu_normal_after_boot on
+Subject: [PATCH 267/351] 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=ab3e64d17f40661769b76ad4ec295ced23d15efd
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=565e362156219f5a3f23c65e806e5954a72382ba
[ 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 b31baf7b4..7a943fe6c 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/342] pci/switchtec: fix stream_open.cocci warnings
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=69a465fae034c3aa1f134b2802bc4edfa7b60016
+Subject: [PATCH 268/351] pci/switchtec: fix stream_open.cocci warnings
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=87dcdc9e40513a9725f065cabfd72fedf704f655
[ 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 a4b7753db..b0a231d28 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/342] sched/core: Drop a preempt_disable_rt() statement
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=74d2e1a7300ec02a7bea54ed43fbabaa4e8e1193
+Subject: [PATCH 269/351] sched/core: Drop a preempt_disable_rt() statement
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3022be56ad0e3024dbedc053260b0773ae09f8d
[ Upstream commit 761126efdcbe3fa3e99c9079fa0ad6eca2f251f2 ]
@@ -15,7 +15,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index feaf4d5683af..3b0f62be3ece 100644
+index f9babcec1afc..5473824aee5b 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -558,14 +558,11 @@ void resched_cpu(int cpu)
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 1f5b2ab81..47bf2c336 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/342] timers: Redo the notification of canceling timers on
+Subject: [PATCH 270/351] 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=e0d1c4cbc44a31f090ff94e4c029f31c97d2391d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f8b3a6db4434a0ee962dcb2dc5b1fc160d0cfeaa
[ Upstream commit c71273154c2ad12e13333aada340ff30e826a11b ]
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 c4309368f..3f9d61e96 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/342] Revert "futex: Ensure lock/unlock symetry versus
+Subject: [PATCH 271/351] 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=d00bb8bbc139fe4cd03a34a820bc7ed395b791ea
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b6f5a87870f7fd1194b5f15cef6e73343b5478b0
[ Upstream commit 6a773b70cf105b46298ed3b44e77c102ce31d9ec ]
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 d622e9bf3..104f75dae 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/342] Revert "futex: Fix bug on when a requeued RT task
+Subject: [PATCH 272/351] 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=424bdc4ecbdf891bb9781c66827c6552d45ec9c3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b06b941626e30f9c6a9743a2a280d4592965bcf8
[ 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 391c7c48c..6e515c0f5 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/342] Revert "rtmutex: Handle the various new futex race
+Subject: [PATCH 273/351] 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=3cc6426a21b537ce05a7acb6a499a205559ae766
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=71b0e401fc6afe8f443f4dc34a8ddbc0bf2fb37e
[ Upstream commit 9e0265c21af4d6388d47dcd5ce20f76ec3a2e468 ]
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 b2f940fe5..e2f90f5d5 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/342] Revert "futex: workaround migrate_disable/enable in
+Subject: [PATCH 274/351] 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=188a1d1aaac5e0288814560fad22b3c638bad3bd
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=046fd715e485046870aeebf9354a5387a9ad2aeb
[ Upstream commit a71221d81cc4873891ae44f3aa02df596079b786 ]
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 b10825ac3..9a932ce48 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/342] futex: Make the futex_hash_bucket lock raw
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=26753445b4537710a56a34c3e43828b16269f682
+Subject: [PATCH 275/351] futex: Make the futex_hash_bucket lock raw
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=99f26cff18e9f6698cdf1f624047844a144ed1b7
[ Upstream commit f646521aadedab78801c9befe193e2e8a0c99298 ]
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 e041db583..89ef520db 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/342] futex: Delay deallocation of pi_state
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=47e8761ab84ff28b2cbff2d64018bdedb9be7d11
+Subject: [PATCH 276/351] futex: Delay deallocation of pi_state
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=45894c2eaf4378a9492d096c550577887d9bce85
[ Upstream commit d7c7cf8cb68b7df17e6e50be1f25f35d83e686c7 ]
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 e85c24bc9..be12c7dff 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/342] mm/zswap: Do not disable preemption in
+Subject: [PATCH 277/351] 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=bf2f37b64408cdd6fd6be0309d0a7bfe88a20d29
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=db3636ad52c6dfbee7ff55e3b61dce331b8a5c90
[ Upstream commit 4e4cf4be79635e67144632d9135286381acbc95a ]
diff --git a/debian/patches-rt/0278-revert-aio.patch b/debian/patches-rt/0278-revert-aio.patch
index 6cca2777c..719785852 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/342] revert-aio
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3385a4e70adb04e8ac905d0b889452f53b8348cd
+Subject: [PATCH 278/351] revert-aio
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=25cccdfad7fb4bc477ed3f2c9b092f86cbc6ea47
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 a7752d7d2..7030c4269 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/342] fs/aio: simple simple work
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f620c96e59582f313de1000b3bebf41c6ee7d382
+Subject: [PATCH 279/351] fs/aio: simple simple work
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=02a5fd9f02f332e1556257ef9efdda4f8e1260f6
[ Upstream commit 1a142116f6435ef070ecebb66d2d599507c10601 ]
diff --git a/debian/patches-rt/0280-revert-thermal.patch b/debian/patches-rt/0280-revert-thermal.patch
index ef4bca6e0..ca446853b 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/342] revert-thermal
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=889019b2cc23787f62b86f2a97fdb25dd13861d5
+Subject: [PATCH 280/351] revert-thermal
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e5d1f189fd154780b94568b1d742c74815d52b62
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 8f7a05e42..f68a5f066 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/342] thermal: Defer thermal wakups to threads
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37fb59a4561847466dd2ca567dfab731f99f9611
+Subject: [PATCH 281/351] thermal: Defer thermal wakups to threads
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=165114700f74a8d7040fcbe78d65d5fd1e8ca582
[ Upstream commit ad2408dc248fe58536eef5b2b5734d8f9d3a280b ]
diff --git a/debian/patches-rt/0282-revert-block.patch b/debian/patches-rt/0282-revert-block.patch
index dd7be9b97..f60c96ddb 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/342] revert-block
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e13e0ac0a7e8bc9f08dae4cab727db6ad6ee35a4
+Subject: [PATCH 282/351] revert-block
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09cadfb1381e0e9d3cc991688646273a58cbdbd7
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 957d8d5d8..c7a2fe397 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/342] block: blk-mq: move blk_queue_usage_counter_release()
+Subject: [PATCH 283/351] 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=99bc7e0dc93da8bfa71231dc359276a09819c7e6
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=63413a20c60b9b1637830ec4294e0b437d598005
[ Upstream commit 61c928ecf4fe200bda9b49a0813b5ba0f43995b5 ]
diff --git a/debian/patches-rt/0284-workqueue-rework.patch b/debian/patches-rt/0284-workqueue-rework.patch
index ea00e194a..38e6a71e4 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/342] workqueue: rework
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ef48b1fd6691fa627afcf72bba3295c66c23da41
+Subject: [PATCH 284/351] workqueue: rework
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=03a1d47bc6d2f2e32d7c26fae2809fd8050a8226
[ Upstream commit d15a862f24df983458533aebd6fa207ecdd1095a ]
@@ -65,7 +65,7 @@ index a67a50dd714a..ed6ae335756d 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 d24660961343..c31a76485c9c 100644
+index b8c2c469ce7e..12eb48980df7 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -70,7 +70,7 @@
@@ -352,7 +352,7 @@ index 6bbd391f0d9c..c8cf4731ced8 100644
/**
* kthread_associate_blkcg - associate blkcg to current kthread
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 3b0f62be3ece..1d4d4780dd79 100644
+index 5473824aee5b..ea275b4b3d0a 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -3612,6 +3612,7 @@ static inline void sched_submit_work(struct task_struct *tsk)
@@ -406,7 +406,7 @@ index bbc408f24f5d..eb2db7e6a241 100644
#else
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 91f5696cf335..4ed22776b2ee 100644
+index cb81c7767b17..c047a647146e 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -50,8 +50,6 @@
@@ -1131,7 +1131,7 @@ index 91f5696cf335..4ed22776b2ee 100644
rcu_read_unlock();
return false;
}
-@@ -3052,7 +3004,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
+@@ -3050,7 +3002,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 91f5696cf335..4ed22776b2ee 100644
/*
* This allows canceling during early boot. We know that @work
-@@ -3113,10 +3065,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
+@@ -3111,10 +3063,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
*/
bool flush_delayed_work(struct delayed_work *dwork)
{
@@ -1153,7 +1153,7 @@ index 91f5696cf335..4ed22776b2ee 100644
return flush_work(&dwork->work);
}
EXPORT_SYMBOL(flush_delayed_work);
-@@ -3154,7 +3106,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
+@@ -3152,7 +3104,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 91f5696cf335..4ed22776b2ee 100644
return ret;
}
-@@ -3264,7 +3216,7 @@ EXPORT_SYMBOL_GPL(execute_in_process_context);
+@@ -3262,7 +3214,7 @@ EXPORT_SYMBOL_GPL(execute_in_process_context);
*
* Undo alloc_workqueue_attrs().
*/
@@ -1171,7 +1171,7 @@ index 91f5696cf335..4ed22776b2ee 100644
{
if (attrs) {
free_cpumask_var(attrs->cpumask);
-@@ -3274,21 +3226,20 @@ void free_workqueue_attrs(struct workqueue_attrs *attrs)
+@@ -3272,21 +3224,20 @@ void free_workqueue_attrs(struct workqueue_attrs *attrs)
/**
* alloc_workqueue_attrs - allocate a workqueue_attrs
@@ -1196,7 +1196,7 @@ index 91f5696cf335..4ed22776b2ee 100644
goto fail;
cpumask_copy(attrs->cpumask, cpu_possible_mask);
-@@ -3345,7 +3296,7 @@ static bool wqattrs_equal(const struct workqueue_attrs *a,
+@@ -3343,7 +3294,7 @@ static bool wqattrs_equal(const struct workqueue_attrs *a,
*/
static int init_worker_pool(struct worker_pool *pool)
{
@@ -1205,7 +1205,7 @@ index 91f5696cf335..4ed22776b2ee 100644
pool->id = -1;
pool->cpu = -1;
pool->node = NUMA_NO_NODE;
-@@ -3366,7 +3317,7 @@ static int init_worker_pool(struct worker_pool *pool)
+@@ -3364,7 +3315,7 @@ static int init_worker_pool(struct worker_pool *pool)
pool->refcnt = 1;
/* shouldn't fail above this point */
@@ -1214,7 +1214,7 @@ index 91f5696cf335..4ed22776b2ee 100644
if (!pool->attrs)
return -ENOMEM;
return 0;
-@@ -3431,15 +3382,15 @@ static void put_unbound_pool(struct worker_pool *pool)
+@@ -3429,15 +3380,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 91f5696cf335..4ed22776b2ee 100644
mutex_lock(&wq_pool_attach_mutex);
if (!list_empty(&pool->workers))
-@@ -3599,7 +3550,7 @@ static void pwq_adjust_max_active(struct pool_workqueue *pwq)
+@@ -3597,7 +3548,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 91f5696cf335..4ed22776b2ee 100644
/*
* During [un]freezing, the caller is responsible for ensuring that
-@@ -3629,7 +3580,7 @@ static void pwq_adjust_max_active(struct pool_workqueue *pwq)
+@@ -3627,7 +3578,7 @@ static void pwq_adjust_max_active(struct pool_workqueue *pwq)
pwq->max_active = 0;
}
@@ -1251,7 +1251,7 @@ index 91f5696cf335..4ed22776b2ee 100644
}
/* initialize newly alloced @pwq which is associated with @wq and @pool */
-@@ -3802,8 +3753,8 @@ apply_wqattrs_prepare(struct workqueue_struct *wq,
+@@ -3800,8 +3751,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 91f5696cf335..4ed22776b2ee 100644
if (!ctx || !new_attrs || !tmp_attrs)
goto out_free;
-@@ -3939,7 +3890,7 @@ static int apply_workqueue_attrs_locked(struct workqueue_struct *wq,
+@@ -3937,7 +3888,7 @@ static int apply_workqueue_attrs_locked(struct workqueue_struct *wq,
*
* Return: 0 on success and -errno on failure.
*/
@@ -1271,7 +1271,7 @@ index 91f5696cf335..4ed22776b2ee 100644
const struct workqueue_attrs *attrs)
{
int ret;
-@@ -3950,7 +3901,6 @@ int apply_workqueue_attrs(struct workqueue_struct *wq,
+@@ -3948,7 +3899,6 @@ int apply_workqueue_attrs(struct workqueue_struct *wq,
return ret;
}
@@ -1279,7 +1279,7 @@ index 91f5696cf335..4ed22776b2ee 100644
/**
* wq_update_unbound_numa - update NUMA affinity of a wq for CPU hot[un]plug
-@@ -4028,9 +3978,9 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,
+@@ -4026,9 +3976,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 91f5696cf335..4ed22776b2ee 100644
old_pwq = numa_pwq_tbl_install(wq, node, wq->dfl_pwq);
out_unlock:
mutex_unlock(&wq->mutex);
-@@ -4149,7 +4099,7 @@ struct workqueue_struct *__alloc_workqueue_key(const char *fmt,
+@@ -4147,7 +4097,7 @@ struct workqueue_struct *__alloc_workqueue_key(const char *fmt,
return NULL;
if (flags & WQ_UNBOUND) {
@@ -1300,7 +1300,7 @@ index 91f5696cf335..4ed22776b2ee 100644
if (!wq->unbound_attrs)
goto err_free_wq;
}
-@@ -4236,9 +4186,9 @@ void destroy_workqueue(struct workqueue_struct *wq)
+@@ -4234,9 +4184,9 @@ void destroy_workqueue(struct workqueue_struct *wq)
struct worker *rescuer = wq->rescuer;
/* this prevents new queueing */
@@ -1312,7 +1312,7 @@ index 91f5696cf335..4ed22776b2ee 100644
/* rescuer will empty maydays list before exiting */
kthread_stop(rescuer->task);
-@@ -4433,10 +4383,10 @@ unsigned int work_busy(struct work_struct *work)
+@@ -4431,10 +4381,10 @@ unsigned int work_busy(struct work_struct *work)
rcu_read_lock();
pool = get_work_pool(work);
if (pool) {
@@ -1325,7 +1325,7 @@ index 91f5696cf335..4ed22776b2ee 100644
}
rcu_read_unlock();
-@@ -4643,10 +4593,10 @@ void show_workqueue_state(void)
+@@ -4641,10 +4591,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 91f5696cf335..4ed22776b2ee 100644
/*
* We could be printing a lot from atomic context, e.g.
* sysrq-t -> show_workqueue_state(). Avoid triggering
-@@ -4660,7 +4610,7 @@ void show_workqueue_state(void)
+@@ -4658,7 +4608,7 @@ void show_workqueue_state(void)
struct worker *worker;
bool first = true;
@@ -1347,7 +1347,7 @@ index 91f5696cf335..4ed22776b2ee 100644
if (pool->nr_workers == pool->nr_idle)
goto next_pool;
-@@ -4679,7 +4629,7 @@ void show_workqueue_state(void)
+@@ -4677,7 +4627,7 @@ void show_workqueue_state(void)
}
pr_cont("\n");
next_pool:
@@ -1356,7 +1356,7 @@ index 91f5696cf335..4ed22776b2ee 100644
/*
* We could be printing a lot from atomic context, e.g.
* sysrq-t -> show_workqueue_state(). Avoid triggering
-@@ -4709,7 +4659,7 @@ void wq_worker_comm(char *buf, size_t size, struct task_struct *task)
+@@ -4707,7 +4657,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 91f5696cf335..4ed22776b2ee 100644
/*
* ->desc tracks information (wq name or
* set_worker_desc()) for the latest execution. If
-@@ -4723,7 +4673,7 @@ void wq_worker_comm(char *buf, size_t size, struct task_struct *task)
+@@ -4721,7 +4671,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 91f5696cf335..4ed22776b2ee 100644
}
}
-@@ -4754,7 +4704,7 @@ static void unbind_workers(int cpu)
+@@ -4752,7 +4702,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 91f5696cf335..4ed22776b2ee 100644
/*
* We've blocked all attach/detach operations. Make all workers
-@@ -4768,7 +4718,7 @@ static void unbind_workers(int cpu)
+@@ -4766,7 +4716,7 @@ static void unbind_workers(int cpu)
pool->flags |= POOL_DISASSOCIATED;
@@ -1392,7 +1392,7 @@ index 91f5696cf335..4ed22776b2ee 100644
mutex_unlock(&wq_pool_attach_mutex);
/*
-@@ -4794,9 +4744,9 @@ static void unbind_workers(int cpu)
+@@ -4792,9 +4742,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 91f5696cf335..4ed22776b2ee 100644
}
}
-@@ -4823,7 +4773,7 @@ static void rebind_workers(struct worker_pool *pool)
+@@ -4821,7 +4771,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 91f5696cf335..4ed22776b2ee 100644
pool->flags &= ~POOL_DISASSOCIATED;
-@@ -4862,7 +4812,7 @@ static void rebind_workers(struct worker_pool *pool)
+@@ -4860,7 +4810,7 @@ static void rebind_workers(struct worker_pool *pool)
WRITE_ONCE(worker->flags, worker_flags);
}
@@ -1422,7 +1422,7 @@ index 91f5696cf335..4ed22776b2ee 100644
}
/**
-@@ -5321,7 +5271,7 @@ static struct workqueue_attrs *wq_sysfs_prep_attrs(struct workqueue_struct *wq)
+@@ -5319,7 +5269,7 @@ static struct workqueue_attrs *wq_sysfs_prep_attrs(struct workqueue_struct *wq)
lockdep_assert_held(&wq_pool_mutex);
@@ -1431,7 +1431,7 @@ index 91f5696cf335..4ed22776b2ee 100644
if (!attrs)
return NULL;
-@@ -5750,7 +5700,7 @@ static void __init wq_numa_init(void)
+@@ -5748,7 +5698,7 @@ static void __init wq_numa_init(void)
return;
}
@@ -1440,7 +1440,7 @@ index 91f5696cf335..4ed22776b2ee 100644
BUG_ON(!wq_update_unbound_numa_attrs_buf);
/*
-@@ -5825,7 +5775,7 @@ int __init workqueue_init_early(void)
+@@ -5823,7 +5773,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 91f5696cf335..4ed22776b2ee 100644
attrs->nice = std_nice[i];
unbound_std_wq_attrs[i] = attrs;
-@@ -5834,7 +5784,7 @@ int __init workqueue_init_early(void)
+@@ -5832,7 +5782,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 8291cc7fa..9044aa353 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/342] i2c: exynos5: Remove IRQF_ONESHOT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5d059b45c5670000931198afbd5e767ea166d2af
+Subject: [PATCH 285/351] i2c: exynos5: Remove IRQF_ONESHOT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=07d92bd6d58b8af4f6e1eaa685ac0add6ffa1964
[ 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 7ced2b106..4dd9d4c3e 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/342] i2c: hix5hd2: Remove IRQF_ONESHOT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=de0840ad000a4cd09abdbf0beb44a736108ecbf5
+Subject: [PATCH 286/351] i2c: hix5hd2: Remove IRQF_ONESHOT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37b47c7d3a8b23ff0998283736ca06252760556e
[ 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 b3668b2fe..0b8da97ac 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/342] sched/deadline: Ensure inactive_timer runs in hardirq
+Subject: [PATCH 287/351] 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=428e3bd4726ac6ebbd987f67871d11fcb95f8369
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5602a664dba672cb7db6fa266ad071e12b18bf71
[ Upstream commit ba94e7aed7405c58251b1380e6e7d73aa8284b41 ]
@@ -23,10 +23,10 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
-index 1a285367081c..0bc1bad199c1 100644
+index 52acbb31a777..85310fed26f0 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
-@@ -287,7 +287,7 @@ static void task_non_contending(struct task_struct *p)
+@@ -309,7 +309,7 @@ static void task_non_contending(struct task_struct *p)
dl_se->dl_non_contending = 1;
get_task_struct(p);
@@ -35,7 +35,7 @@ index 1a285367081c..0bc1bad199c1 100644
}
static void task_contending(struct sched_dl_entity *dl_se, int flags)
-@@ -1325,7 +1325,7 @@ void init_dl_inactive_task_timer(struct sched_dl_entity *dl_se)
+@@ -1344,7 +1344,7 @@ void init_dl_inactive_task_timer(struct sched_dl_entity *dl_se)
{
struct hrtimer *timer = &dl_se->inactive_timer;
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 889c850ef..8f9bf0644 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/342] thermal/x86_pkg_temp: make pkg_temp_lock a raw
+Subject: [PATCH 288/351] 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=592471e36b3b2ac61c32c4b93503fccbb7adab5b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c616b99c8cf7cecda61613c288b20b072976ea58
[ 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 aef963401..b36afad41 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/342] dma-buf: Use seqlock_t instread disabling preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=540c895b043eda1c43ae57fff6829d6e210ca69e
+Subject: [PATCH 289/351] dma-buf: Use seqlock_t instread disabling preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=74f78801989fbf28092a53ce1c657e83766bb5cd
[ 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 8ce7e3d98..da7dd555d 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/342] KVM: arm/arm64: Let the timer expire in hardirq
+Subject: [PATCH 290/351] 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=ee72e57437b6b664bd7784277353a5dfd529c67e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a23f7d6d0f46020f64841837901f0cf715710edf
[ 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 0101e802e..49af18ed9 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/342] x86: preempt: Check preemption level before looking
+Subject: [PATCH 291/351] 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=cbcd32705234c16095b150867b2191151ca8a9be
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a4e037ca583b2e9c0cf1b8e0b41d57393c66a46
[ 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 96b0c6320..70de0ecbc 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/342] hrtimer: Use READ_ONCE to access timer->base in
+Subject: [PATCH 292/351] 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=651af665014e442103551831276cb17778ec5ffa
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9d2a65bdb9560dfbe48c47b9b104952b9888cd7
[ Upstream commit 2c8fdbe7ef0ad06c1a326886c5954e117b5657d6 ]
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 74c1274db..37b4d080e 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/342] hrtimer: Don't grab the expiry lock for non-soft
+Subject: [PATCH 293/351] 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=c08561e4507bece7acce0e54872524c3c670260c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=257d3ed6a99a9055a4b7725652f0608a0c19dfab
[ Upstream commit fd420354bea2f57c11f3de191dffdeea76531e76 ]
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 8618d61b5..2317ddfbe 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/342] hrtimer: Prevent using hrtimer_grab_expiry_lock() on
+Subject: [PATCH 294/351] 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=93b879f6d94c9ca346d233d70a5afdb03d97355f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ef8d3a148a827f4f173179ea176d6deae3a4517
[ Upstream commit cef1b87f98823af923a386f3f69149acb212d4a1 ]
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 f24fd1199..248781694 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/342] hrtimer: Add a missing bracket and hide
+Subject: [PATCH 295/351] 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=44e95bce9a5f97221e79be2d034fafe617dff0f7
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=78e97bf152629ea0dc4890964d9a8e92be8c0844
[ Upstream commit 47b6de0b7f22c28b40275aeede3993d807668c3b ]
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 c5827397e..8003370ff 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/342] 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=6d94a6b1400f572d9acbb7e045afb65c8d8fa530
+Subject: [PATCH 296/351] 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=c607c24d4378ebe9be9bb641703e00d28eca3c75
[ 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 11ce037e5..964a19590 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/342] =?UTF-8?q?sched:=20migrate=5Fdis/enable:=20Use=20?=
+Subject: [PATCH 297/351] =?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=cb7f34c0ba155510ebd0db8410614eca88812750
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=302ef1699867ae23b2531b0f689517b615c25866
[ Upstream commit 4230dd3824c3e1785504e6f757ce79a4b55651fa ]
@@ -38,10 +38,10 @@ index 396394ebbc5b..4bf82665f28c 100644
preempt_disable();
preempt_lazy_disable();
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 1d4d4780dd79..33c1ae19410e 100644
+index ea275b4b3d0a..b5675306ebed 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7366,7 +7366,10 @@ void migrate_enable(void)
+@@ -7367,7 +7367,10 @@ void migrate_enable(void)
unpin_current_cpu();
preempt_lazy_enable();
preempt_enable();
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 91f4c497c..267ecd233 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/342] sched: __set_cpus_allowed_ptr: Check cpus_mask, not
+Subject: [PATCH 298/351] 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=1cc9480667aa314a5de466bc624262f1aa2cf19a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=db7cc169d8ef63ea459c7fde68b248a2789e895a
[ Upstream commit e5606fb7b042db634ed62b4dd733d62e050e468f ]
@@ -21,7 +21,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 33c1ae19410e..4f5242c9ca78 100644
+index b5675306ebed..6fd462e18949 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1157,7 +1157,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
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 11109f24e..5f98d4e46 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/342] sched: Remove dead __migrate_disabled() check
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4abc9fbc0662890ad6eecb6b9daaf7d0544c7d22
+Subject: [PATCH 299/351] sched: Remove dead __migrate_disabled() check
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=163461f3eff2e283b92faac40ea6c6be1830bc28
[ Upstream commit 14d9272d534ea91262e15db99443fc5995c7c016 ]
@@ -16,7 +16,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 7 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 4f5242c9ca78..e64d2b2b3a69 100644
+index 6fd462e18949..473413b83ffc 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1182,13 +1182,6 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
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 98a2369c2..f86cc9e80 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/342] sched: migrate disable: Protect cpus_ptr with lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51a9977c0b69716f9a2ca78d92686b134d5fe5e3
+Subject: [PATCH 300/351] sched: migrate disable: Protect cpus_ptr with lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5227db1c9c24b2c6feb8209f3f43cf53ed100cdf
[ Upstream commit 27ee52a891ed2c7e2e2c8332ccae0de7c2674b09 ]
@@ -16,10 +16,10 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index e64d2b2b3a69..6f91ee2b7e91 100644
+index 473413b83ffc..07a46769ca3d 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7244,9 +7244,8 @@ migrate_disable_update_cpus_allowed(struct task_struct *p)
+@@ -7245,9 +7245,8 @@ migrate_disable_update_cpus_allowed(struct task_struct *p)
struct rq *rq;
struct rq_flags rf;
@@ -30,7 +30,7 @@ index e64d2b2b3a69..6f91ee2b7e91 100644
update_nr_migratory(p, -1);
p->nr_cpus_allowed = 1;
task_rq_unlock(rq, p, &rf);
-@@ -7258,9 +7257,8 @@ migrate_enable_update_cpus_allowed(struct task_struct *p)
+@@ -7259,9 +7258,8 @@ migrate_enable_update_cpus_allowed(struct task_struct *p)
struct rq *rq;
struct rq_flags rf;
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 456e9caae..703a448db 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/342] 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=83c7d978aa1fe629e0c8c48204de93e5555cdc24
+Subject: [PATCH 301/351] 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=abc76798c863ebc7979792b6f6f45bafccf1eeb3
[ 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 224b6a81a..df7d5f0e9 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/342] futex: Make the futex_hash_bucket spinlock_t again
+Subject: [PATCH 302/351] 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=db07179f5403257fab1645f3d1b5016389d2d3bb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e51d697ea4fe1c6c06a7033c81af8d3d482dfbfe
[ Upstream commit 954ad80c23edfe71f4e8ce70b961eac884320c3a ]
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 8ec5a16d0..1f210b1ba 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/342] locking/rtmutex: Clean ->pi_blocked_on in the error
+Subject: [PATCH 303/351] 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=aa4169c26b331ce5542238710c17b2bfe9cab704
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=20cb8227d2f37fdf374e404baf9cfa92b0c72598
[ 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 d2b221679..75f1fc148 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/342] lib/ubsan: Don't seralize UBSAN report
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9d8814df58e1f97746fa2da50d282d631c11542d
+Subject: [PATCH 304/351] lib/ubsan: Don't seralize UBSAN report
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a271296613b17df1188c72b23a8cdeb3bc4ccd87
[ 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 81533bee0..36bf1a733 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/342] kmemleak: Change the lock of kmemleak_object to
+Subject: [PATCH 305/351] 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=6b143bcf21b5a432f5fd03c79ff17188dfb00790
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3f32f13e58f0ece8a428a1a4eb5536bac51044c1
[ Upstream commit 217847f57119b5fdd377bfa3d344613ddb98d9fc ]
@@ -24,7 +24,7 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 36 insertions(+), 36 deletions(-)
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
-index 5b6718dd3a64..23e2837501d6 100644
+index 86caf2025c35..e8a7eebc27a5 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -147,7 +147,7 @@ struct kmemleak_scan_area {
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 8177c1f0a..06db45615 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/342] sched: migrate_enable: Use select_fallback_rq()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b19de5d2c7678334eef4c5e764fcbe08f4fce1f6
+Subject: [PATCH 306/351] sched: migrate_enable: Use select_fallback_rq()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eab7e025879588c20239f95ac003add1390422a8
[ Upstream commit adfa969d4cfcc995a9d866020124e50f1827d2d1 ]
@@ -18,10 +18,10 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 10 insertions(+), 15 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 6f91ee2b7e91..7eb3037c0b35 100644
+index 07a46769ca3d..57e8dee4e7ce 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7329,6 +7329,7 @@ void migrate_enable(void)
+@@ -7330,6 +7330,7 @@ void migrate_enable(void)
if (p->migrate_disable_update) {
struct rq *rq;
struct rq_flags rf;
@@ -29,7 +29,7 @@ index 6f91ee2b7e91..7eb3037c0b35 100644
rq = task_rq_lock(p, &rf);
update_rq_clock(rq);
-@@ -7338,21 +7339,15 @@ void migrate_enable(void)
+@@ -7339,21 +7340,15 @@ void migrate_enable(void)
p->migrate_disable_update = 0;
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 0db42edaa..29c41aec9 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/342] sched: Lazy migrate_disable processing
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=80bc8f45b65be158feec72e427e42b77fcf0745a
+Subject: [PATCH 307/351] sched: Lazy migrate_disable processing
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ef6c7cbc5053f8db6f2493ab56a9e0f2a9d4b523
[ Upstream commit 425c5b38779a860062aa62219dc920d374b13c17 ]
@@ -66,7 +66,7 @@ index a3c246214d28..81ce109caec3 100644
#endif /* !CONFIG_HOTPLUG_CPU */
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index e567fe2d7058..65069db8923c 100644
+index 72255bf2166e..072dc9da7838 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -227,6 +227,8 @@ extern void io_schedule_finish(int token);
@@ -78,7 +78,7 @@ index e567fe2d7058..65069db8923c 100644
/**
* struct prev_cputime - snapshot of system and user cputime
* @utime: time spent in user mode
-@@ -670,16 +672,13 @@ struct task_struct {
+@@ -674,16 +676,13 @@ struct task_struct {
cpumask_t cpus_mask;
#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE)
int migrate_disable;
@@ -97,7 +97,7 @@ index e567fe2d7058..65069db8923c 100644
# endif
#endif
#ifdef CONFIG_PREEMPT_RT_FULL
-@@ -2058,4 +2057,6 @@ static inline void rseq_syscall(struct pt_regs *regs)
+@@ -2062,4 +2061,6 @@ static inline void rseq_syscall(struct pt_regs *regs)
#endif
@@ -278,7 +278,7 @@ index 4bf82665f28c..f603ea80af2e 100644
/* Interrupts are moved away from the dying cpu, reenable alloc/free */
irq_unlock_sparse();
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 7eb3037c0b35..de6514e13e0c 100644
+index 57e8dee4e7ce..a2c0f199f362 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1065,7 +1065,8 @@ static int migration_cpu_stop(void *data)
@@ -351,7 +351,7 @@ index 7eb3037c0b35..de6514e13e0c 100644
/* Promote REQ to ACT */
rq->clock_update_flags <<= 1;
update_rq_clock(rq);
-@@ -5777,6 +5769,8 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf)
+@@ -5778,6 +5770,8 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf)
BUG_ON(!next);
put_prev_task(rq, next);
@@ -360,7 +360,7 @@ index 7eb3037c0b35..de6514e13e0c 100644
/*
* Rules for changing task_struct::cpus_mask are holding
* both pi_lock and rq->lock, such that holding either
-@@ -7241,14 +7235,9 @@ update_nr_migratory(struct task_struct *p, long delta)
+@@ -7242,14 +7236,9 @@ update_nr_migratory(struct task_struct *p, long delta)
static inline void
migrate_disable_update_cpus_allowed(struct task_struct *p)
{
@@ -375,7 +375,7 @@ index 7eb3037c0b35..de6514e13e0c 100644
}
static inline void
-@@ -7266,54 +7255,35 @@ migrate_enable_update_cpus_allowed(struct task_struct *p)
+@@ -7267,54 +7256,35 @@ migrate_enable_update_cpus_allowed(struct task_struct *p)
void migrate_disable(void)
{
@@ -446,7 +446,7 @@ index 7eb3037c0b35..de6514e13e0c 100644
WARN_ON_ONCE(p->migrate_disable <= 0);
if (p->migrate_disable > 1) {
-@@ -7323,67 +7293,69 @@ void migrate_enable(void)
+@@ -7324,67 +7294,69 @@ void migrate_enable(void)
preempt_disable();
@@ -556,7 +556,7 @@ index 7eb3037c0b35..de6514e13e0c 100644
#endif
barrier();
}
-@@ -7394,20 +7366,14 @@ void migrate_enable(void)
+@@ -7395,20 +7367,14 @@ void migrate_enable(void)
#ifdef CONFIG_SCHED_DEBUG
struct task_struct *p = current;
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 306caf6c4..6bb640a4b 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/342] sched: migrate_enable: Use stop_one_cpu_nowait()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=519fb3634f6b249f1ffe9e72c3df31ac00b7797e
+Subject: [PATCH 308/351] sched: migrate_enable: Use stop_one_cpu_nowait()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1c8f8380a7031358ac5fc4177bbbe5d03bc6cfd2
[ Upstream commit 6b39a1fa8c53cae08dc03afdae193b7d3a78a173 ]
@@ -34,7 +34,7 @@ index ccdaa8fd5657..150e886ed83d 100644
int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index de6514e13e0c..dff9d26a8625 100644
+index a2c0f199f362..eeb53ea1483c 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -990,6 +990,7 @@ static struct rq *move_queued_task(struct rq *rq, struct rq_flags *rf,
@@ -69,7 +69,7 @@ index de6514e13e0c..dff9d26a8625 100644
}
rq_unlock(rq, &rf);
raw_spin_unlock(&p->pi_lock);
-@@ -7316,6 +7322,7 @@ void migrate_enable(void)
+@@ -7317,6 +7323,7 @@ void migrate_enable(void)
WARN_ON(smp_processor_id() != cpu);
if (!is_cpu_allowed(p, cpu)) {
struct migration_arg arg = { p };
@@ -77,7 +77,7 @@ index de6514e13e0c..dff9d26a8625 100644
struct rq_flags rf;
rq = task_rq_lock(p, &rf);
-@@ -7323,15 +7330,11 @@ void migrate_enable(void)
+@@ -7324,15 +7331,11 @@ void migrate_enable(void)
arg.dest_cpu = select_fallback_rq(cpu, p);
task_rq_unlock(rq, p, &rf);
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 511698c42..14509bfa5 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/342] Revert "ARM: Initialize split page table locks for
+Subject: [PATCH 309/351] 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=954608a19dde6afa6ee3fcbc50ad717c888a9050
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=feaae0c27de4b8a4a10bd422d11b702fadd4c801
[ 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 fa066cce6..c8b3f4f22 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/342] locking: Make spinlock_t and rwlock_t a RCU section
+Subject: [PATCH 310/351] 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=5a4cb6344d94ce566d562e036d4fd69ead0338f3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=307384e8ca0050ff69a708ea239e7fd25688d1a2
[ 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 b616edaed..69d771ead 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/342] sched/core: migrate_enable() must access
+Subject: [PATCH 311/351] 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=ea00648e17779a1d2d3f7f21bcc8f1d0455f20d4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a046dca6cadf46d37e6a42f5f5f950191bbec3cc
[ Upstream commit a61d1977f692e46bad99a100f264981ba08cb4bd ]
@@ -34,10 +34,10 @@ index f603ea80af2e..57bd32c83c9e 100644
static int takedown_cpu(unsigned int cpu)
{
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index dff9d26a8625..270adb525d93 100644
+index eeb53ea1483c..577bec75ffd8 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7308,9 +7308,11 @@ void migrate_enable(void)
+@@ -7309,9 +7309,11 @@ void migrate_enable(void)
p->migrate_disable = 0;
rq->nr_pinned--;
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 106756de0..a690ce31b 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/342] lib/smp_processor_id: Adjust
+Subject: [PATCH 312/351] lib/smp_processor_id: Adjust
check_preemption_disabled()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8234196f578cabadf98da643b83e2904de6a2ef4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2e1705477262342382e7423129edb2e570567b53
[ 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 fc1b7bd92..667c9ca00 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/342] sched: migrate_enable: Busy loop until the migration
+Subject: [PATCH 313/351] 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=f1f1be8e83c25527d3890d98c6e176bd41c63562
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7212bfd2c5351861cd36c82fe6cbdd37c202a2e6
[ Upstream commit 140d7f54a5fff02898d2ca9802b39548bf7455f1 ]
@@ -27,10 +27,10 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 270adb525d93..d190d9e6b10f 100644
+index 577bec75ffd8..89133dff3161 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7323,7 +7323,7 @@ void migrate_enable(void)
+@@ -7324,7 +7324,7 @@ void migrate_enable(void)
WARN_ON(smp_processor_id() != cpu);
if (!is_cpu_allowed(p, cpu)) {
@@ -39,7 +39,7 @@ index 270adb525d93..d190d9e6b10f 100644
struct cpu_stop_work work;
struct rq_flags rf;
-@@ -7336,7 +7336,10 @@ void migrate_enable(void)
+@@ -7337,7 +7337,10 @@ void migrate_enable(void)
&arg, &work);
tlb_migrate_finish(p->mm);
__schedule(true);
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 89cafe5b9..188c99523 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/342] userfaultfd: Use a seqlock instead of seqcount
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3691ae6ce62505ebd9eaf9e6589a857b5eb5e4ea
+Subject: [PATCH 314/351] userfaultfd: Use a seqlock instead of seqcount
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fc997a6a8f23cd5880f5e0eee2860490e6e45145
[ 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 e14b98f42..28352517c 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/342] 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=eb1e75f22c7c7fef03f9ff0441ae1e7d7275a470
+Subject: [PATCH 315/351] 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=a7e94b3eb9610ca7f198abf96699a5d2eab443e7
[ Upstream commit 2dcd94b443c5dcbc20281666321b7f025f9cc85c ]
@@ -29,10 +29,10 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index d190d9e6b10f..8b946353b1d7 100644
+index 89133dff3161..96edb14cb099 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7285,6 +7285,9 @@ static void migrate_disabled_sched(struct task_struct *p)
+@@ -7286,6 +7286,9 @@ static void migrate_disabled_sched(struct task_struct *p)
p->migrate_disable_scheduled = 1;
}
@@ -42,7 +42,7 @@ index d190d9e6b10f..8b946353b1d7 100644
void migrate_enable(void)
{
struct task_struct *p = current;
-@@ -7323,23 +7326,26 @@ void migrate_enable(void)
+@@ -7324,23 +7327,26 @@ void migrate_enable(void)
WARN_ON(smp_processor_id() != cpu);
if (!is_cpu_allowed(p, cpu)) {
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 a47b24169..4ab22e205 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/342] sched: migrate_enable: Remove __schedule() call
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f416311d786e940c55fab1dfcdbdd03188b6855f
+Subject: [PATCH 316/351] sched: migrate_enable: Remove __schedule() call
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5e75bce9b51a26fc1280cff002de35b13ba3cb50
[ Upstream commit b8162e61e9a33bd1de6452eb838fbf50a93ddd9a ]
@@ -24,10 +24,10 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 file changed, 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 8b946353b1d7..410882ff2007 100644
+index 96edb14cb099..64e3371c8955 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7345,7 +7345,6 @@ void migrate_enable(void)
+@@ -7346,7 +7346,6 @@ void migrate_enable(void)
stop_one_cpu_nowait(task_cpu(p), migration_cpu_stop,
arg, work);
tlb_migrate_finish(p->mm);
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 1ddd98611..ff4a95c31 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/342] mm/memcontrol: Move misplaced
+Subject: [PATCH 317/351] mm/memcontrol: Move misplaced
local_unlock_irqrestore()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e7a4f4c7b57d3592b7ea282256ec21e120299aae
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0e93c1cdf2659fdb41c0c23a64d4560bf76bc4b3
[ Upstream commit 071a1d6a6e14d0dec240a8c67b425140d7f92f6a ]
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 5308f4706..282b0db95 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/342] locallock: Include header for the `current' macro
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4d1a63f5abebd6be6dcb7f06632d6c0970db1ce9
+Subject: [PATCH 318/351] locallock: Include header for the `current' macro
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b4385eeb59c07fb490f19cf69b08793f40a6272c
[ 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 016783a60..0bb95f485 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/342] drm/vmwgfx: Drop preempt_disable() in
+Subject: [PATCH 319/351] 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=d41c023d443b698d184f54f642578b0c195f140c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=795750d817cf7962fcfd63ea8437d5b0f21a30a3
[ 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 d4c857412..5cfc9994b 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/342] tracing: make preempt_lazy and migrate_disable
+Subject: [PATCH 320/351] 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=023b81c02c171c25b54507f6e10f8627e4427041
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=81699e3e656db0e83047e22cde247331924cd87f
[ Upstream commit dd430bf5ecb40f9a89679c85868826475d71de54 ]
@@ -36,10 +36,10 @@ index 72864a11cec0..e26a85c1b7ba 100644
};
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
-index fbb04cf1d5bc..9b1b1c6de2bd 100644
+index ddda660b84f9..91df34a11341 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
-@@ -188,8 +188,8 @@ static int trace_define_common_fields(void)
+@@ -189,8 +189,8 @@ static int trace_define_common_fields(void)
__common_field(unsigned char, flags);
__common_field(unsigned char, preempt_count);
__common_field(int, pid);
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 ec71bc2b2..3af21c13f 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/342] lib/ubsan: Remove flags parameter from calls to
+Subject: [PATCH 321/351] 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=be2cad96ad54e4a1f5795790aad7ca8091567cce
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c2d2b43f417cbedc676f8b28e93683716416a719
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 ce3238a88..b2e7f8fe1 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/342] irq_work: Fix checking of IRQ_WORK_LAZY flag set on
+Subject: [PATCH 322/351] 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=7d8e3a7d353467d377d3b32fdf759c2c3171fb89
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3cf00ce224f7ecd568bd3f766fb8ff671136d88
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 7ebdfe086..3dd7cb745 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/342] tasklet: Address a race resulting in double-enqueue
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3f0945b4e8c94333caf5c9384103ebfc0a055375
+Subject: [PATCH 323/351] tasklet: Address a race resulting in double-enqueue
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a3e88f16112d045918ea1e4df41674cb1e411434
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 557ca56b3..835a8530f 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/342] hrtimer: fix logic for when grabbing
+Subject: [PATCH 324/351] 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=44b8364a13277bc84e81f619bd8db3c98cd5f63d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=36b0eadf58daa2135f9139436ccfd778db315f0f
Commit
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 8aef11928..a8d8db93b 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/342] fs/dcache: Include swait.h header
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=80f3096d3e0bf8ea0482b3c1dd1c3bb835580d7f
+Subject: [PATCH 325/351] fs/dcache: Include swait.h header
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=939289738f60a2ab3070c16e629d31642b0d5765
[ Upstream commit 279f90ddf53cd6bd3c203fbbf488d642ea2603de ]
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 e47281eae..ebf74571a 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/342] mm: slub: Always flush the delayed empty slubs in
+Subject: [PATCH 326/351] 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=e7c1ebce4ab716a7ddb59afbd334d1ab5b89c684
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=029a41eeabb734eb30dcd02bdb9ed92e79f6db2f
[ 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 676006f34077..de80b015fb99 100644
+index 197bab70a05d..d16d390df21e 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 448ee797a..099504d3a 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/342] tasklet: Fix UP case for tasklet CHAINED state
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ca828148bcc43ec7ed745e6bb0c076441138f09f
+Subject: [PATCH 327/351] tasklet: Fix UP case for tasklet CHAINED state
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d2b462527f8c10c0c852efeda88dd2cef218261
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 728a5ce48..f8bfa30d6 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/342] signal: Prevent double-free of user struct
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c247eea7618fab8dc4ca5b123a7708de3550a64b
+Subject: [PATCH 328/351] signal: Prevent double-free of user struct
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b97bd6ce365304c4417b3cd0c5bf49d026b772f4
[ 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 662a647b7..90e6ed5cf 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/342] Bluetooth: Acquire sk_lock.slock without disabling
+Subject: [PATCH 329/351] Bluetooth: Acquire sk_lock.slock without disabling
interrupts
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f70f452aa211f4c64f5a8cf1c8a97cf8d4f1f2b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0a1175c05ff74dd57894ec2ef7ca2e1cad31042a
[ 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 b69e98a7f..5450494b9 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/342] net: phy: fixed_phy: Remove unused seqcount
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ac41b33982062b3bee7c5c1823f179d6fec787ad
+Subject: [PATCH 330/351] net: phy: fixed_phy: Remove unused seqcount
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=040ef37710adeb660b0585546fbaac550e082c2b
[ 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 7d3f711b4..db936e83b 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/342] net: xfrm: fix compress vs decompress serialization
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=232e27733feb20a490b99f63f08c073c9ed9e9d9
+Subject: [PATCH 331/351] net: xfrm: fix compress vs decompress serialization
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d6098c916ec421ca3c89cd072e73cd3b410b208d
A crash was seen in xfrm when running ltp's 'tcp4_ipsec06' stresser on v4.x
based RT kernels.
@@ -23,7 +23,7 @@ Signed-off-by: Tom Zanussi <zanussi@kernel.org>
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/net/xfrm/xfrm_ipcomp.c b/net/xfrm/xfrm_ipcomp.c
-index a00ec715aa46..a97997385423 100644
+index 32aed1d0f6ee..2fb55dba4b08 100644
--- a/net/xfrm/xfrm_ipcomp.c
+++ b/net/xfrm/xfrm_ipcomp.c
@@ -20,6 +20,7 @@
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 40b467019..6594106cf 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/342] mm/memcontrol: Disable preemption in
+Subject: [PATCH 332/351] 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=63d8d55e818822e2fbbcc26d07e498d22d21f001
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c8d747a7c7dd6b59f68b8466893b0c18d1fa2074
[ 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 a6f016150..bea8ce154 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/342] ptrace: fix ptrace_unfreeze_traced() race with
+Subject: [PATCH 333/351] 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=8b07e7ff85bd9cfa73d79f1f133ad4b96dc3369c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bde585ceef8712a993226213ef25ea54bfde9b57
[ 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 827afb4dd..defd91d5d 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/342] mm: slub: Don't resize the location tracking cache on
+Subject: [PATCH 334/351] 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=cbb851e2f49e471db5e2ea40478394b48139f4ca
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7139a83bac66eb7a530553197e6a2fcc06ed74a7
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 de80b015fb99..46158ba761ce 100644
+index d16d390df21e..869a3be27980 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 312f6f2ef..670d73338 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/342] locking/rwsem_rt: Add __down_read_interruptible()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95f51b5f0caacd4978a39b16473ca035f8047fdf
+Subject: [PATCH 335/351] locking/rwsem_rt: Add __down_read_interruptible()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=23f2c13df9cedc58f454be0e03543a9398ec0402
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 1055aed23..30df1882f 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/342] 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=f4cae546c87033b52ee5a80dc860427ebd02568e
+Subject: [PATCH 336/351] 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=108f1a36454ac1403c140d7cba07f1d7b5139ef5
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 8895d4c16..b2b2ef69d 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/342] fscache: fix initialisation of cookie hash table raw
+Subject: [PATCH 337/351] 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=324135b9a8f1539dd356c377beaf882164634c5f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b8c3c6e6c2ee7f63ad0673d179d48439e00a4e1
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 927d47cb0..434b61807 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/342] rt: PREEMPT_RT safety net for backported patches
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7c847666d7341feb472045cb36e599fc76b63a6
+Subject: [PATCH 338/351] rt: PREEMPT_RT safety net for backported patches
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=97df0b15ec78b16f27b176cfedf8ed11d2b4ac56
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 c5bf85313..8fc335457 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/342] net: Add missing xmit_lock_owner hunks.
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f9ce408f7c095f80030cfb2f6671eab84a42e643
+Subject: [PATCH 339/351] net: Add missing xmit_lock_owner hunks.
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=42062a2e27ad3a9da95ef7c4c799c1ca71a6bd66
The patch
net: move xmit_recursion to per-task variable on -RT
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 7297c027c..c04e34617 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/342] 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=d872802a6e9cfbe98d85409cd78d88b6ea9ffc51
+Subject: [PATCH 340/351] 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=0fd11e70e0f3922f30320f2105366514df7b5bf9
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
new file mode 100644
index 000000000..1b9e30364
--- /dev/null
+++ b/debian/patches-rt/0341-random-Bring-back-the-local_locks.patch
@@ -0,0 +1,97 @@
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 19 Aug 2022 11:24:38 +0200
+Subject: [PATCH 341/351] random: Bring back the local_locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=269eda25b7a58b0397934d72f6fef03f0301d696
+
+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
+the older kernel did not provide those primitives.
+
+RT as of v4.9 has a slightly different variant of local_locks.
+Replace the local_irq_*() operations with matching local_lock_irq*()
+operations which were there as part of commit
+ 77760fd7f7ae3 ("random: remove batched entropy locking")
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Link: https://lore.kernel.org/all/20220819092446.980320-2-bigeasy@linutronix.de/
+Signed-off-by: Daniel Wagner <dwagner@suse.de>
+---
+ drivers/char/random.c | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/char/random.c b/drivers/char/random.c
+index 6aea12fa48ba..be2b7520ade9 100644
+--- a/drivers/char/random.c
++++ b/drivers/char/random.c
+@@ -53,6 +53,7 @@
+ #include <linux/uaccess.h>
+ #include <linux/siphash.h>
+ #include <linux/uio.h>
++#include <linux/locallock.h>
+ #include <crypto/chacha20.h>
+ #include <crypto/blake2s.h>
+ #include <asm/processor.h>
+@@ -229,10 +230,12 @@ static struct {
+ struct crng {
+ u8 key[CHACHA20_KEY_SIZE];
+ unsigned long generation;
++ struct local_irq_lock lock;
+ };
+
+ static DEFINE_PER_CPU(struct crng, crngs) = {
+- .generation = ULONG_MAX
++ .generation = ULONG_MAX,
++ .lock.lock = __SPIN_LOCK_UNLOCKED(crngs.lock.lock),
+ };
+
+ /* Used by crng_reseed() and crng_make_state() to extract a new seed from the input pool. */
+@@ -362,7 +365,7 @@ static void crng_make_state(u32 chacha_state[CHACHA20_BLOCK_SIZE / sizeof(u32)],
+ if (unlikely(crng_has_old_seed()))
+ crng_reseed();
+
+- local_irq_save(flags);
++ local_lock_irqsave(crngs.lock, flags);
+ crng = raw_cpu_ptr(&crngs);
+
+ /*
+@@ -387,7 +390,7 @@ static void crng_make_state(u32 chacha_state[CHACHA20_BLOCK_SIZE / sizeof(u32)],
+ * should wind up here immediately.
+ */
+ crng_fast_key_erasure(crng->key, chacha_state, random_data, random_data_len);
+- local_irq_restore(flags);
++ local_unlock_irqrestore(crngs.lock, flags);
+ }
+
+ static void _get_random_bytes(void *buf, size_t len)
+@@ -505,11 +508,13 @@ struct batch_ ##type { \
+ * formula of (integer_blocks + 0.5) * CHACHA20_BLOCK_SIZE. \
+ */ \
+ type entropy[CHACHA20_BLOCK_SIZE * 3 / (2 * sizeof(type))]; \
++ struct local_irq_lock lock; \
+ unsigned long generation; \
+ unsigned int position; \
+ }; \
+ \
+ static DEFINE_PER_CPU(struct batch_ ##type, batched_entropy_ ##type) = { \
++ .lock.lock = __SPIN_LOCK_UNLOCKED(batched_entropy_ ##type.lock.lock), \
+ .position = UINT_MAX \
+ }; \
+ \
+@@ -527,7 +532,7 @@ type get_random_ ##type(void) \
+ return ret; \
+ } \
+ \
+- local_irq_save(flags); \
++ local_lock_irqsave(batched_entropy_ ##type.lock, flags); \
+ batch = raw_cpu_ptr(&batched_entropy_##type); \
+ \
+ next_gen = READ_ONCE(base_crng.generation); \
+@@ -541,7 +546,7 @@ type get_random_ ##type(void) \
+ ret = batch->entropy[batch->position]; \
+ batch->entropy[batch->position] = 0; \
+ ++batch->position; \
+- local_irq_restore(flags); \
++ local_unlock_irqrestore(batched_entropy_ ##type.lock, flags); \
+ return ret; \
+ } \
+ EXPORT_SYMBOL(get_random_ ##type);
diff --git a/debian/patches-rt/0341-random-Use-local-locks-for-crng-context-access.patch b/debian/patches-rt/0341-random-Use-local-locks-for-crng-context-access.patch
deleted file mode 100644
index acf66335b..000000000
--- a/debian/patches-rt/0341-random-Use-local-locks-for-crng-context-access.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From: Daniel Wagner <wagi@monom.org>
-Date: Wed, 13 Jul 2022 15:02:30 +0200
-Subject: [PATCH 341/342] random: Use local locks for crng context access
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=78c61f9bc5797149c2dfbd84ee4c5ee0fdd9ab6c
-
-The backport of 5f1bb112006b ("random: group initialization wait
-functions") changed the upstream local locks to normal spin locks
-because the local infrastructure in v4.19 is missing. As spin locks
-are turned into sleeping locks for RT we have to add the local locks
-back using the v4.19-rt API.
-
-Signed-off-by: Daniel Wagner <dwagner@suse.de>
----
- drivers/char/random.c | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 2be38780a7f7..c06705a32246 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -53,6 +53,7 @@
- #include <linux/uaccess.h>
- #include <linux/siphash.h>
- #include <linux/uio.h>
-+#include <linux/locallock.h>
- #include <crypto/chacha20.h>
- #include <crypto/blake2s.h>
- #include <asm/processor.h>
-@@ -234,6 +235,7 @@ struct crng {
- static DEFINE_PER_CPU(struct crng, crngs) = {
- .generation = ULONG_MAX
- };
-+DEFINE_LOCAL_IRQ_LOCK(crngs_lock);
-
- /* Used by crng_reseed() and crng_make_state() to extract a new seed from the input pool. */
- static void extract_entropy(void *buf, size_t len);
-@@ -362,7 +364,7 @@ static void crng_make_state(u32 chacha_state[CHACHA20_BLOCK_SIZE / sizeof(u32)],
- if (unlikely(crng_has_old_seed()))
- crng_reseed();
-
-- local_irq_save(flags);
-+ local_lock_irqsave(crngs_lock, flags);
- crng = raw_cpu_ptr(&crngs);
-
- /*
-@@ -387,7 +389,7 @@ static void crng_make_state(u32 chacha_state[CHACHA20_BLOCK_SIZE / sizeof(u32)],
- * should wind up here immediately.
- */
- crng_fast_key_erasure(crng->key, chacha_state, random_data, random_data_len);
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(crngs_lock, flags);
- }
-
- static void _get_random_bytes(void *buf, size_t len)
-@@ -512,6 +514,7 @@ struct batch_ ##type { \
- static DEFINE_PER_CPU(struct batch_ ##type, batched_entropy_ ##type) = { \
- .position = UINT_MAX \
- }; \
-+static DEFINE_LOCAL_IRQ_LOCK(batched_entropy_lock_ ##type); \
- \
- type get_random_ ##type(void) \
- { \
-@@ -527,7 +530,7 @@ type get_random_ ##type(void) \
- return ret; \
- } \
- \
-- local_irq_save(flags); \
-+ local_lock_irqsave(batched_entropy_lock_ ##type, flags); \
- batch = raw_cpu_ptr(&batched_entropy_##type); \
- \
- next_gen = READ_ONCE(base_crng.generation); \
-@@ -541,7 +544,7 @@ type get_random_ ##type(void) \
- ret = batch->entropy[batch->position]; \
- batch->entropy[batch->position] = 0; \
- ++batch->position; \
-- local_irq_restore(flags); \
-+ local_unlock_irqrestore(batched_entropy_lock_ ##type, flags); \
- return ret; \
- } \
- EXPORT_SYMBOL(get_random_ ##type);
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
new file mode 100644
index 000000000..553e72e58
--- /dev/null
+++ b/debian/patches-rt/0342-local_lock-Provide-INIT_LOCAL_LOCK.patch
@@ -0,0 +1,66 @@
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 21 Oct 2022 15:55:39 +0200
+Subject: [PATCH 342/351] local_lock: Provide INIT_LOCAL_LOCK().
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c9ff512c96a416b8c82964b8f03b81d1cf76c80
+
+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
+platforms.
+
+Provide INIT_LOCAL_LOCK() to initialize properly on RT and do nothing on
+!RT. Let random.c use which is the only user so far and oes not compile
+on !RT otherwise.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Link: https://lore.kernel.org/all/YzcEIU17EIZ7ZIF5@linutronix.de/
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ drivers/char/random.c | 4 ++--
+ include/linux/locallock.h | 5 +++++
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/char/random.c b/drivers/char/random.c
+index be2b7520ade9..c72dcfbff608 100644
+--- a/drivers/char/random.c
++++ b/drivers/char/random.c
+@@ -235,7 +235,7 @@ struct crng {
+
+ static DEFINE_PER_CPU(struct crng, crngs) = {
+ .generation = ULONG_MAX,
+- .lock.lock = __SPIN_LOCK_UNLOCKED(crngs.lock.lock),
++ .lock = INIT_LOCAL_LOCK(crngs.lock),
+ };
+
+ /* Used by crng_reseed() and crng_make_state() to extract a new seed from the input pool. */
+@@ -514,7 +514,7 @@ struct batch_ ##type { \
+ }; \
+ \
+ static DEFINE_PER_CPU(struct batch_ ##type, batched_entropy_ ##type) = { \
+- .lock.lock = __SPIN_LOCK_UNLOCKED(batched_entropy_ ##type.lock.lock), \
++ .lock = INIT_LOCAL_LOCK(batched_entropy_ ##type.lock), \
+ .position = UINT_MAX \
+ }; \
+ \
+diff --git a/include/linux/locallock.h b/include/linux/locallock.h
+index 81c89d87723b..7964ee6b998c 100644
+--- a/include/linux/locallock.h
++++ b/include/linux/locallock.h
+@@ -23,6 +23,8 @@ struct local_irq_lock {
+ unsigned long flags;
+ };
+
++#define INIT_LOCAL_LOCK(lvar) { .lock = __SPIN_LOCK_UNLOCKED((lvar).lock.lock) }
++
+ #define DEFINE_LOCAL_IRQ_LOCK(lvar) \
+ DEFINE_PER_CPU(struct local_irq_lock, lvar) = { \
+ .lock = __SPIN_LOCK_UNLOCKED((lvar).lock) }
+@@ -241,6 +243,9 @@ static inline int __local_unlock_irqrestore(struct local_irq_lock *lv,
+
+ #else /* PREEMPT_RT_BASE */
+
++struct local_irq_lock { };
++#define INIT_LOCAL_LOCK(lvar) { }
++
+ #define DEFINE_LOCAL_IRQ_LOCK(lvar) __typeof__(const int) lvar
+ #define DECLARE_LOCAL_IRQ_LOCK(lvar) extern __typeof__(const int) lvar
+
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
new file mode 100644
index 000000000..b2cf769f2
--- /dev/null
+++ b/debian/patches-rt/0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch
@@ -0,0 +1,38 @@
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 21 Oct 2022 16:15:56 +0200
+Subject: [PATCH 343/351] 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=673b95794c85f76d4c99994d288cc41ecc8b02bd
+
+This reverts the PREEMPT_RT related changes to workqueue. It reverts the
+usage of local_locks() and cpu_chill().
+
+This is a preparation to pull in the PREEMPT_RT related changes which
+were merged upstream.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+[wagi: 827b6f6962da ("workqueue: rework") already reverted
+ most of the changes, except the missing update in
+ put_pwq_unlocked.]
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ kernel/workqueue.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index c047a647146e..e0ab9febe11f 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -1496,11 +1496,9 @@ EXPORT_SYMBOL(queue_work_on);
+ void delayed_work_timer_fn(struct timer_list *t)
+ {
+ struct delayed_work *dwork = from_timer(dwork, t, timer);
+- unsigned long flags;
+
+- local_irq_save(flags);
++ /* should have been called from irqsafe timer with irq already off */
+ __queue_work(dwork->cpu, dwork->wq, &dwork->work);
+- local_irq_restore(flags);
+ }
+ EXPORT_SYMBOL(delayed_work_timer_fn);
+
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
new file mode 100644
index 000000000..a9e4b14ab
--- /dev/null
+++ b/debian/patches-rt/0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch
@@ -0,0 +1,31 @@
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 19 Aug 2022 11:24:42 +0200
+Subject: [PATCH 344/351] timers: Keep interrupts disabled for TIMER_IRQSAFE
+ timer.
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c954214601502e0896ac0b81f1222879dad55393
+
+Keep interrupts disabled across callback invocation for the
+TIMER_IRQSAFE as expected.
+This is required for the timer used by workqueue after the upcomming
+rework.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ kernel/time/timer.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/kernel/time/timer.c b/kernel/time/timer.c
+index a2be2277506d..3e2c0bd03004 100644
+--- a/kernel/time/timer.c
++++ b/kernel/time/timer.c
+@@ -1397,8 +1397,7 @@ static void expire_timers(struct timer_base *base, struct hlist_head *head)
+
+ fn = timer->function;
+
+- if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL) &&
+- timer->flags & TIMER_IRQSAFE) {
++ if (timer->flags & TIMER_IRQSAFE) {
+ raw_spin_unlock(&base->lock);
+ call_timer_fn(timer, fn);
+ base->running_timer = NULL;
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
new file mode 100644
index 000000000..c7a563449
--- /dev/null
+++ b/debian/patches-rt/0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch
@@ -0,0 +1,68 @@
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 24 Oct 2022 10:17:22 +0200
+Subject: [PATCH 345/351] 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=9841dc5af8b334fa1a9f4c0e9acde4a0b3839d6f
+
+Upstream commit c725dafc95f1b37027840aaeaa8b7e4e9cd20516
+
+PREEMPT_RT does not spin and wait until a running timer completes its
+callback but instead it blocks on a sleeping lock to prevent a livelock in
+the case that the task waiting for the callback completion preempted the
+callback.
+
+This cannot be done for timers flagged with TIMER_IRQSAFE. These timers can
+be canceled from an interrupt disabled context even on RT kernels.
+
+The expiry callback of such timers is invoked with interrupts disabled so
+there is no need to use the expiry lock mechanism because obviously the
+callback cannot be preempted even on RT kernels.
+
+Do not use the timer_base::expiry_lock mechanism when waiting for a running
+callback to complete if the timer is flagged with TIMER_IRQSAFE.
+
+Also add a lockdep assertion for RT kernels to validate that the expiry
+lock mechanism is always invoked in preemptible context.
+
+Reported-by: Mike Galbraith <efault@gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Link: https://lore.kernel.org/r/20201103190937.hga67rqhvknki3tp@linutronix.de
+[bigeasy: The logic in v4.19 is slightly different but the outcome is the
+ same as we must not sleep while waiting for the irqsafe timer to
+ complete. The IRQSAFE timer can not be preempted.
+ The "lockdep annotation" is not available and has been replaced with
+ might_sleep()]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ kernel/time/timer.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/kernel/time/timer.c b/kernel/time/timer.c
+index 3e2c0bd03004..0a6d60b3e67c 100644
+--- a/kernel/time/timer.c
++++ b/kernel/time/timer.c
+@@ -1272,6 +1272,9 @@ static int __del_timer_sync(struct timer_list *timer)
+ if (ret >= 0)
+ return ret;
+
++ if (READ_ONCE(timer->flags) & TIMER_IRQSAFE)
++ continue;
++
+ /*
+ * When accessing the lock, timers of base are no longer expired
+ * and so timer is no longer running.
+@@ -1336,6 +1339,12 @@ int del_timer_sync(struct timer_list *timer)
+ * could lead to deadlock.
+ */
+ WARN_ON(in_irq() && !(timer->flags & TIMER_IRQSAFE));
++ /*
++ * Must be able to sleep on PREEMPT_RT because of the slowpath in
++ * __del_timer_sync().
++ */
++ if (IS_ENABLED(CONFIG_PREEMPT_RT) && !(timer->flags & TIMER_IRQSAFE))
++ might_sleep();
+
+ return __del_timer_sync(timer);
+ }
diff --git a/debian/patches-rt/0346-rcu-Update-rcuwait.patch b/debian/patches-rt/0346-rcu-Update-rcuwait.patch
new file mode 100644
index 000000000..c54c65f9c
--- /dev/null
+++ b/debian/patches-rt/0346-rcu-Update-rcuwait.patch
@@ -0,0 +1,176 @@
+From: Daniel Wagner <wagi@monom.org>
+Date: Mon, 24 Oct 2022 10:58:29 +0200
+Subject: [PATCH 346/351] rcu: Update rcuwait
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6f1be9e81d653b56aeefbff1883d1f762e8b594e
+
+This is an all in one commit backporting updates for rcuwait:
+ - 03f4b48edae7 ("rcuwait: Annotate task_struct with __rcu")
+ - 191a43be61d6 ("rcuwait: Introduce rcuwait_active()")
+ - 5c21f7b322cb ("rcuwait: Introduce prepare_to and finish_rcuwait")
+ - 80fbaf1c3f29 ("rcuwait: Add @state argument to rcuwait_wait_event()")
+ - 9d9a6ebfea32 ("rcuwait: Let rcuwait_wake_up() return whether or not a task was awoken")
+ - 58d4292bd037 ("rcu: Uninline multi-use function: finish_rcuwait()")
+
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ include/linux/rcuwait.h | 42 +++++++++++++++++++++++++++--------
+ kernel/exit.c | 7 ++++--
+ kernel/locking/percpu-rwsem.c | 2 +-
+ kernel/rcu/update.c | 8 +++++++
+ 4 files changed, 47 insertions(+), 12 deletions(-)
+
+diff --git a/include/linux/rcuwait.h b/include/linux/rcuwait.h
+index 90bfa3279a01..4fe9ecd56aac 100644
+--- a/include/linux/rcuwait.h
++++ b/include/linux/rcuwait.h
+@@ -3,6 +3,7 @@
+ #define _LINUX_RCUWAIT_H_
+
+ #include <linux/rcupdate.h>
++#include <linux/sched/signal.h>
+
+ /*
+ * rcuwait provides a way of blocking and waking up a single
+@@ -18,7 +19,7 @@
+ * awoken.
+ */
+ struct rcuwait {
+- struct task_struct *task;
++ struct task_struct __rcu *task;
+ };
+
+ #define __RCUWAIT_INITIALIZER(name) \
+@@ -29,14 +30,33 @@ static inline void rcuwait_init(struct rcuwait *w)
+ w->task = NULL;
+ }
+
+-extern void rcuwait_wake_up(struct rcuwait *w);
++extern int rcuwait_wake_up(struct rcuwait *w);
++
++/*
++ * Note: this provides no serialization and, just as with waitqueues,
++ * requires care to estimate as to whether or not the wait is active.
++ */
++static inline int rcuwait_active(struct rcuwait *w)
++{
++ return !!rcu_access_pointer(w->task);
++}
+
+ /*
+ * The caller is responsible for locking around rcuwait_wait_event(),
+- * such that writes to @task are properly serialized.
++ * and [prepare_to/finish]_rcuwait() such that writes to @task are
++ * properly serialized.
+ */
+-#define rcuwait_wait_event(w, condition) \
++
++static inline void prepare_to_rcuwait(struct rcuwait *w)
++{
++ rcu_assign_pointer(w->task, current);
++}
++
++extern void finish_rcuwait(struct rcuwait *w);
++
++#define rcuwait_wait_event(w, condition, state) \
+ ({ \
++ int __ret = 0; \
+ /* \
+ * Complain if we are called after do_exit()/exit_notify(), \
+ * as we cannot rely on the rcu critical region for the \
+@@ -44,21 +64,25 @@ extern void rcuwait_wake_up(struct rcuwait *w);
+ */ \
+ WARN_ON(current->exit_state); \
+ \
+- rcu_assign_pointer((w)->task, current); \
++ prepare_to_rcuwait(w); \
+ for (;;) { \
+ /* \
+ * Implicit barrier (A) pairs with (B) in \
+ * rcuwait_wake_up(). \
+ */ \
+- set_current_state(TASK_UNINTERRUPTIBLE); \
++ set_current_state(state); \
+ if (condition) \
+ break; \
+ \
++ if (signal_pending_state(state, current)) { \
++ __ret = -EINTR; \
++ break; \
++ } \
++ \
+ schedule(); \
+ } \
+- \
+- WRITE_ONCE((w)->task, NULL); \
+- __set_current_state(TASK_RUNNING); \
++ finish_rcuwait(w); \
++ __ret; \
+ })
+
+ #endif /* _LINUX_RCUWAIT_H_ */
+diff --git a/kernel/exit.c b/kernel/exit.c
+index 2a414fc71b87..cf68896a94fa 100644
+--- a/kernel/exit.c
++++ b/kernel/exit.c
+@@ -291,8 +291,9 @@ struct task_struct *task_rcu_dereference(struct task_struct **ptask)
+ return task;
+ }
+
+-void rcuwait_wake_up(struct rcuwait *w)
++int rcuwait_wake_up(struct rcuwait *w)
+ {
++ int ret = 0;
+ struct task_struct *task;
+
+ rcu_read_lock();
+@@ -316,8 +317,10 @@ void rcuwait_wake_up(struct rcuwait *w)
+ */
+ task = rcu_dereference(w->task);
+ if (task)
+- wake_up_process(task);
++ ret = wake_up_process(task);
+ rcu_read_unlock();
++
++ return ret;
+ }
+
+ /*
+diff --git a/kernel/locking/percpu-rwsem.c b/kernel/locking/percpu-rwsem.c
+index 883cf1b92d90..41787e80dbde 100644
+--- a/kernel/locking/percpu-rwsem.c
++++ b/kernel/locking/percpu-rwsem.c
+@@ -159,7 +159,7 @@ void percpu_down_write(struct percpu_rw_semaphore *sem)
+ */
+
+ /* Wait for all now active readers to complete. */
+- rcuwait_wait_event(&sem->writer, readers_active_check(sem));
++ rcuwait_wait_event(&sem->writer, readers_active_check(sem), TASK_UNINTERRUPTIBLE);
+ }
+ EXPORT_SYMBOL_GPL(percpu_down_write);
+
+diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c
+index ed75addd3ccd..4b2ce6bb94a4 100644
+--- a/kernel/rcu/update.c
++++ b/kernel/rcu/update.c
+@@ -53,6 +53,7 @@
+ #include <linux/rcupdate_wait.h>
+ #include <linux/sched/isolation.h>
+ #include <linux/kprobes.h>
++#include <linux/rcuwait.h>
+
+ #define CREATE_TRACE_POINTS
+
+@@ -375,6 +376,13 @@ void __wait_rcu_gp(bool checktiny, int n, call_rcu_func_t *crcu_array,
+ }
+ EXPORT_SYMBOL_GPL(__wait_rcu_gp);
+
++void finish_rcuwait(struct rcuwait *w)
++{
++ rcu_assign_pointer(w->task, NULL);
++ __set_current_state(TASK_RUNNING);
++}
++EXPORT_SYMBOL_GPL(finish_rcuwait);
++
+ #ifdef CONFIG_DEBUG_OBJECTS_RCU_HEAD
+ void init_rcu_head(struct rcu_head *head)
+ {
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
new file mode 100644
index 000000000..c1a587ec4
--- /dev/null
+++ b/debian/patches-rt/0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch
@@ -0,0 +1,102 @@
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 19 Aug 2022 11:24:45 +0200
+Subject: [PATCH 347/351] workqueue: Use rcuwait for wq_manager_wait
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c577abd14a242e742d69c94d1bb2d469212db82
+
+Upstream commit d8bb65ab70f702531aaaa11d9710f9450078e295
+
+The workqueue code has it's internal spinlock (pool::lock) and also
+implicit spinlock usage in the wq_manager waitqueue. These spinlocks
+are converted to 'sleeping' spinlocks on a RT-kernel.
+
+Workqueue functions can be invoked from contexts which are truly atomic
+even on a PREEMPT_RT enabled kernel. Taking sleeping locks from such
+contexts is forbidden.
+
+pool::lock can be converted to a raw spinlock as the lock held times
+are short. But the workqueue manager waitqueue is handled inside of
+pool::lock held regions which again violates the lock nesting rules
+of raw and regular spinlocks.
+
+The manager waitqueue has no special requirements like custom wakeup
+callbacks or mass wakeups. While it does not use exclusive wait mode
+explicitly there is no strict requirement to queue the waiters in a
+particular order as there is only one waiter at a time.
+
+This allows to replace the waitqueue with rcuwait which solves the
+locking problem because rcuwait relies on existing locking.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+[wagi: Updated context as v4.19-rt was using swait]
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ kernel/workqueue.c | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index e0ab9febe11f..a9f3cc02bdc1 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -50,6 +50,7 @@
+ #include <linux/sched/isolation.h>
+ #include <linux/nmi.h>
+ #include <linux/kvm_para.h>
++#include <linux/rcuwait.h>
+
+ #include "workqueue_internal.h"
+
+@@ -299,7 +300,8 @@ static struct workqueue_attrs *wq_update_unbound_numa_attrs_buf;
+ static DEFINE_MUTEX(wq_pool_mutex); /* protects pools and workqueues list */
+ static DEFINE_MUTEX(wq_pool_attach_mutex); /* protects worker attach/detach */
+ static DEFINE_RAW_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
+-static DECLARE_SWAIT_QUEUE_HEAD(wq_manager_wait); /* wait for manager to go away */
++/* wait for manager to go away */
++static struct rcuwait manager_wait = __RCUWAIT_INITIALIZER(manager_wait);
+
+ 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)
+
+ pool->manager = NULL;
+ pool->flags &= ~POOL_MANAGER_ACTIVE;
+- swake_up_one(&wq_manager_wait);
++ rcuwait_wake_up(&manager_wait);
+ return true;
+ }
+
+@@ -3342,6 +3344,18 @@ static void rcu_free_pool(struct rcu_head *rcu)
+ kfree(pool);
+ }
+
++/* This returns with the lock held on success (pool manager is inactive). */
++static bool wq_manager_inactive(struct worker_pool *pool)
++{
++ raw_spin_lock_irq(&pool->lock);
++
++ if (pool->flags & POOL_MANAGER_ACTIVE) {
++ raw_spin_unlock_irq(&pool->lock);
++ return false;
++ }
++ return true;
++}
++
+ /**
+ * 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)
+ * 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.
++ * Because of how wq_manager_inactive() works, we will hold the
++ * spinlock after a successful wait.
+ */
+ raw_spin_lock_irq(&pool->lock);
+- swait_event_lock_irq(wq_manager_wait,
+- !(pool->flags & POOL_MANAGER_ACTIVE), pool->lock);
++ rcuwait_wait_event(&manager_wait, wq_manager_inactive(pool),
++ TASK_UNINTERRUPTIBLE);
+ pool->flags |= POOL_MANAGER_ACTIVE;
+
+ while ((worker = first_idle_worker(pool)))
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
new file mode 100644
index 000000000..625a2434f
--- /dev/null
+++ b/debian/patches-rt/0348-timers-Prepare-support-for-PREEMPT_RT.patch
@@ -0,0 +1,280 @@
+From: Anna-Maria Gleixner <anna-maria@linutronix.de>
+Date: Mon, 31 Oct 2022 16:50:04 +0100
+Subject: [PATCH 348/351] timers: Prepare support for PREEMPT_RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6c0246ab42f10c23cc1af06c6b651507b612eb8f
+
+Upstream commit 030dcdd197d77374879bb5603d091eee7d8aba80
+
+When PREEMPT_RT is enabled, the soft interrupt thread can be preempted. If
+the soft interrupt thread is preempted in the middle of a timer callback,
+then calling del_timer_sync() can lead to two issues:
+
+ - If the caller is on a remote CPU then it has to spin wait for the timer
+ handler to complete. This can result in unbound priority inversion.
+
+ - If the caller originates from the task which preempted the timer
+ handler on the same CPU, then spin waiting for the timer handler to
+ complete is never going to end.
+
+To avoid these issues, add a new lock to the timer base which is held
+around the execution of the timer callbacks. If del_timer_sync() detects
+that the timer callback is currently running, it blocks on the expiry
+lock. When the callback is finished, the expiry lock is dropped by the
+softirq thread which wakes up the waiter and the system makes progress.
+
+This addresses both the priority inversion and the life lock issues.
+
+This mechanism is not used for timers which are marked IRQSAFE as for those
+preemption is disabled accross the callback and therefore this situation
+cannot happen. The callbacks for such timers need to be individually
+audited for RT compliance.
+
+The same issue can happen in virtual machines when the vCPU which runs a
+timer callback is scheduled out. If a second vCPU of the same guest calls
+del_timer_sync() it will spin wait for the other vCPU to be scheduled back
+in. The expiry lock mechanism would avoid that. It'd be trivial to enable
+this when paravirt spinlocks are enabled in a guest, but it's not clear
+whether this is an actual problem in the wild, so for now it's an RT only
+mechanism.
+
+As the softirq thread can be preempted with PREEMPT_RT=y, the SMP variant
+of del_timer_sync() needs to be used on UP as well.
+
+[ tglx: Refactored it for mainline ]
+
+Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
+Link: https://lkml.kernel.org/r/20190726185753.832418500@linutronix.de
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ kernel/time/timer.c | 130 ++++++++++++++++++++++++++++++--------------
+ 1 file changed, 88 insertions(+), 42 deletions(-)
+
+diff --git a/kernel/time/timer.c b/kernel/time/timer.c
+index 0a6d60b3e67c..b859ecf6424b 100644
+--- a/kernel/time/timer.c
++++ b/kernel/time/timer.c
+@@ -198,7 +198,10 @@ EXPORT_SYMBOL(jiffies_64);
+ struct timer_base {
+ raw_spinlock_t lock;
+ struct timer_list *running_timer;
++#ifdef CONFIG_PREEMPT_RT
+ spinlock_t expiry_lock;
++ atomic_t timer_waiters;
++#endif
+ unsigned long clk;
+ unsigned long next_expiry;
+ unsigned int cpu;
+@@ -1227,8 +1230,14 @@ int del_timer(struct timer_list *timer)
+ }
+ EXPORT_SYMBOL(del_timer);
+
+-static int __try_to_del_timer_sync(struct timer_list *timer,
+- struct timer_base **basep)
++/**
++ * try_to_del_timer_sync - Try to deactivate a timer
++ * @timer: timer to delete
++ *
++ * This function tries to deactivate a timer. Upon successful (ret >= 0)
++ * exit the timer is not queued and the handler is not running on any CPU.
++ */
++int try_to_del_timer_sync(struct timer_list *timer)
+ {
+ struct timer_base *base;
+ unsigned long flags;
+@@ -1236,7 +1245,7 @@ static int __try_to_del_timer_sync(struct timer_list *timer,
+
+ debug_assert_init(timer);
+
+- *basep = base = lock_timer_base(timer, &flags);
++ base = lock_timer_base(timer, &flags);
+
+ if (base->running_timer != timer)
+ ret = detach_if_pending(timer, base, true);
+@@ -1245,45 +1254,80 @@ static int __try_to_del_timer_sync(struct timer_list *timer,
+
+ return ret;
+ }
++EXPORT_SYMBOL(try_to_del_timer_sync);
+
+-/**
+- * try_to_del_timer_sync - Try to deactivate a timer
+- * @timer: timer to delete
+- *
+- * This function tries to deactivate a timer. Upon successful (ret >= 0)
+- * exit the timer is not queued and the handler is not running on any CPU.
+- */
+-int try_to_del_timer_sync(struct timer_list *timer)
++#ifdef CONFIG_PREEMPT_RT
++static __init void timer_base_init_expiry_lock(struct timer_base *base)
+ {
+- struct timer_base *base;
++ spin_lock_init(&base->expiry_lock);
++}
+
+- return __try_to_del_timer_sync(timer, &base);
++static inline void timer_base_lock_expiry(struct timer_base *base)
++{
++ spin_lock(&base->expiry_lock);
+ }
+-EXPORT_SYMBOL(try_to_del_timer_sync);
+
+-#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
+-static int __del_timer_sync(struct timer_list *timer)
++static inline void timer_base_unlock_expiry(struct timer_base *base)
+ {
+- struct timer_base *base;
+- int ret;
++ spin_unlock(&base->expiry_lock);
++}
+
+- for (;;) {
+- ret = __try_to_del_timer_sync(timer, &base);
+- if (ret >= 0)
+- return ret;
++/*
++ * The counterpart to del_timer_wait_running().
++ *
++ * If there is a waiter for base->expiry_lock, then it was waiting for the
++ * timer callback to finish. Drop expiry_lock and reaquire it. That allows
++ * the waiter to acquire the lock and make progress.
++ */
++static void timer_sync_wait_running(struct timer_base *base)
++{
++ if (atomic_read(&base->timer_waiters)) {
++ spin_unlock(&base->expiry_lock);
++ spin_lock(&base->expiry_lock);
++ }
++}
+
+- if (READ_ONCE(timer->flags) & TIMER_IRQSAFE)
+- continue;
++/*
++ * This function is called on PREEMPT_RT kernels when the fast path
++ * deletion of a timer failed because the timer callback function was
++ * running.
++ *
++ * This prevents priority inversion, if the softirq thread on a remote CPU
++ * got preempted, and it prevents a life lock when the task which tries to
++ * delete a timer preempted the softirq thread running the timer callback
++ * function.
++ */
++static void del_timer_wait_running(struct timer_list *timer)
++{
++ u32 tf;
++
++ tf = READ_ONCE(timer->flags);
++ if (!(tf & TIMER_MIGRATING)) {
++ struct timer_base *base = get_timer_base(tf);
+
+ /*
+- * When accessing the lock, timers of base are no longer expired
+- * and so timer is no longer running.
++ * Mark the base as contended and grab the expiry lock,
++ * which is held by the softirq across the timer
++ * callback. Drop the lock immediately so the softirq can
++ * expire the next timer. In theory the timer could already
++ * be running again, but that's more than unlikely and just
++ * causes another wait loop.
+ */
+- spin_lock(&base->expiry_lock);
+- spin_unlock(&base->expiry_lock);
++ atomic_inc(&base->timer_waiters);
++ spin_lock_bh(&base->expiry_lock);
++ atomic_dec(&base->timer_waiters);
++ spin_unlock_bh(&base->expiry_lock);
+ }
+ }
++#else
++static inline void timer_base_init_expiry_lock(struct timer_base *base) { }
++static inline void timer_base_lock_expiry(struct timer_base *base) { }
++static inline void timer_base_unlock_expiry(struct timer_base *base) { }
++static inline void timer_sync_wait_running(struct timer_base *base) { }
++static inline void del_timer_wait_running(struct timer_list *timer) { }
++#endif
+
++#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
+ /**
+ * del_timer_sync - deactivate a timer and wait for the handler to finish.
+ * @timer: the timer to be deactivated
+@@ -1322,6 +1366,8 @@ static int __del_timer_sync(struct timer_list *timer)
+ */
+ int del_timer_sync(struct timer_list *timer)
+ {
++ int ret;
++
+ #ifdef CONFIG_LOCKDEP
+ unsigned long flags;
+
+@@ -1339,14 +1385,17 @@ int del_timer_sync(struct timer_list *timer)
+ * could lead to deadlock.
+ */
+ WARN_ON(in_irq() && !(timer->flags & TIMER_IRQSAFE));
+- /*
+- * Must be able to sleep on PREEMPT_RT because of the slowpath in
+- * __del_timer_sync().
+- */
+- if (IS_ENABLED(CONFIG_PREEMPT_RT) && !(timer->flags & TIMER_IRQSAFE))
+- might_sleep();
+
+- return __del_timer_sync(timer);
++ do {
++ ret = try_to_del_timer_sync(timer);
++
++ if (unlikely(ret < 0)) {
++ del_timer_wait_running(timer);
++ cpu_relax();
++ }
++ } while (ret < 0);
++
++ return ret;
+ }
+ EXPORT_SYMBOL(del_timer_sync);
+ #endif
+@@ -1410,15 +1459,12 @@ static void expire_timers(struct timer_base *base, struct hlist_head *head)
+ raw_spin_unlock(&base->lock);
+ call_timer_fn(timer, fn);
+ base->running_timer = NULL;
+- spin_unlock(&base->expiry_lock);
+- spin_lock(&base->expiry_lock);
+ raw_spin_lock(&base->lock);
+ } else {
+ raw_spin_unlock_irq(&base->lock);
+ call_timer_fn(timer, fn);
+ base->running_timer = NULL;
+- spin_unlock(&base->expiry_lock);
+- spin_lock(&base->expiry_lock);
++ timer_sync_wait_running(base);
+ raw_spin_lock_irq(&base->lock);
+ }
+ }
+@@ -1715,7 +1761,7 @@ static inline void __run_timers(struct timer_base *base)
+ if (!time_after_eq(jiffies, base->clk))
+ return;
+
+- spin_lock(&base->expiry_lock);
++ timer_base_lock_expiry(base);
+ raw_spin_lock_irq(&base->lock);
+
+ /*
+@@ -1743,7 +1789,7 @@ static inline void __run_timers(struct timer_base *base)
+ expire_timers(base, heads + levels);
+ }
+ raw_spin_unlock_irq(&base->lock);
+- spin_unlock(&base->expiry_lock);
++ timer_base_unlock_expiry(base);
+ }
+
+ /*
+@@ -1990,7 +2036,7 @@ static void __init init_timer_cpu(int cpu)
+ base->cpu = cpu;
+ raw_spin_lock_init(&base->lock);
+ base->clk = jiffies;
+- spin_lock_init(&base->expiry_lock);
++ timer_base_init_expiry_lock(base);
+ }
+ }
+
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
new file mode 100644
index 000000000..d01940b4c
--- /dev/null
+++ b/debian/patches-rt/0349-timers-Move-clearing-of-base-timer_running-under-bas.patch
@@ -0,0 +1,86 @@
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Mon, 31 Oct 2022 16:50:05 +0100
+Subject: [PATCH 349/351] 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=eee43f1aec23fc7a8d80e59c805ddfeacfe1eac5
+
+Upstream commit bb7262b295472eb6858b5c49893954794027cd84
+
+syzbot reported KCSAN data races vs. timer_base::timer_running being set to
+NULL without holding base::lock in expire_timers().
+
+This looks innocent and most reads are clearly not problematic, but
+Frederic identified an issue which is:
+
+ int data = 0;
+
+ void timer_func(struct timer_list *t)
+ {
+ data = 1;
+ }
+
+ CPU 0 CPU 1
+ ------------------------------ --------------------------
+ base = lock_timer_base(timer, &flags); raw_spin_unlock(&base->lock);
+ if (base->running_timer != timer) call_timer_fn(timer, fn, baseclk);
+ ret = detach_if_pending(timer, base, true); base->running_timer = NULL;
+ raw_spin_unlock_irqrestore(&base->lock, flags); raw_spin_lock(&base->lock);
+
+ x = data;
+
+If the timer has previously executed on CPU 1 and then CPU 0 can observe
+base->running_timer == NULL and returns, assuming the timer has completed,
+but it's not guaranteed on all architectures. The comment for
+del_timer_sync() makes that guarantee. Moving the assignment under
+base->lock prevents this.
+
+For non-RT kernel it's performance wise completely irrelevant whether the
+store happens before or after taking the lock. For an RT kernel moving the
+store under the lock requires an extra unlock/lock pair in the case that
+there is a waiter for the timer, but that's not the end of the world.
+
+Reported-by: syzbot+aa7c2385d46c5eba0b89@syzkaller.appspotmail.com
+Reported-by: syzbot+abea4558531bae1ba9fe@syzkaller.appspotmail.com
+Fixes: 030dcdd197d7 ("timers: Prepare support for PREEMPT_RT")
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Tested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Link: https://lore.kernel.org/r/87lfea7gw8.fsf@nanos.tec.linutronix.de
+Cc: stable@vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ kernel/time/timer.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/time/timer.c b/kernel/time/timer.c
+index b859ecf6424b..603985720f54 100644
+--- a/kernel/time/timer.c
++++ b/kernel/time/timer.c
+@@ -1282,8 +1282,10 @@ static inline void timer_base_unlock_expiry(struct timer_base *base)
+ static void timer_sync_wait_running(struct timer_base *base)
+ {
+ if (atomic_read(&base->timer_waiters)) {
++ raw_spin_unlock_irq(&base->lock);
+ spin_unlock(&base->expiry_lock);
+ spin_lock(&base->expiry_lock);
++ raw_spin_lock_irq(&base->lock);
+ }
+ }
+
+@@ -1458,14 +1460,14 @@ static void expire_timers(struct timer_base *base, struct hlist_head *head)
+ if (timer->flags & TIMER_IRQSAFE) {
+ raw_spin_unlock(&base->lock);
+ call_timer_fn(timer, fn);
+- base->running_timer = NULL;
+ raw_spin_lock(&base->lock);
++ base->running_timer = NULL;
+ } else {
+ raw_spin_unlock_irq(&base->lock);
+ call_timer_fn(timer, fn);
++ raw_spin_lock_irq(&base->lock);
+ base->running_timer = NULL;
+ timer_sync_wait_running(base);
+- raw_spin_lock_irq(&base->lock);
+ }
+ }
+ }
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
new file mode 100644
index 000000000..7bf384e14
--- /dev/null
+++ b/debian/patches-rt/0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch
@@ -0,0 +1,68 @@
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Mon, 31 Oct 2022 16:50:06 +0100
+Subject: [PATCH 350/351] 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=deb2c700cef1bff119c5b7fe75b105e1918ad70f
+
+Upstream commit c725dafc95f1b37027840aaeaa8b7e4e9cd20516
+
+PREEMPT_RT does not spin and wait until a running timer completes its
+callback but instead it blocks on a sleeping lock to prevent a livelock in
+the case that the task waiting for the callback completion preempted the
+callback.
+
+This cannot be done for timers flagged with TIMER_IRQSAFE. These timers can
+be canceled from an interrupt disabled context even on RT kernels.
+
+The expiry callback of such timers is invoked with interrupts disabled so
+there is no need to use the expiry lock mechanism because obviously the
+callback cannot be preempted even on RT kernels.
+
+Do not use the timer_base::expiry_lock mechanism when waiting for a running
+callback to complete if the timer is flagged with TIMER_IRQSAFE.
+
+Also add a lockdep assertion for RT kernels to validate that the expiry
+lock mechanism is always invoked in preemptible context.
+
+[ bigeasy: Dropping that lockdep_assert_preemption_enabled() check in
+ backport ]
+
+Reported-by: Mike Galbraith <efault@gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Link: https://lore.kernel.org/r/20201103190937.hga67rqhvknki3tp@linutronix.de
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Daniel Wagner <wagi@monom.org>
+---
+ kernel/time/timer.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/time/timer.c b/kernel/time/timer.c
+index 603985720f54..8c7bfcee9609 100644
+--- a/kernel/time/timer.c
++++ b/kernel/time/timer.c
+@@ -1304,7 +1304,7 @@ static void del_timer_wait_running(struct timer_list *timer)
+ u32 tf;
+
+ tf = READ_ONCE(timer->flags);
+- if (!(tf & TIMER_MIGRATING)) {
++ if (!(tf & (TIMER_MIGRATING | TIMER_IRQSAFE))) {
+ struct timer_base *base = get_timer_base(tf);
+
+ /*
+@@ -1388,6 +1388,15 @@ int del_timer_sync(struct timer_list *timer)
+ */
+ WARN_ON(in_irq() && !(timer->flags & TIMER_IRQSAFE));
+
++ /*
++ * Must be able to sleep on PREEMPT_RT because of the slowpath in
++ * del_timer_wait_running().
++ */
++#if 0
++ if (IS_ENABLED(CONFIG_PREEMPT_RT) && !(timer->flags & TIMER_IRQSAFE))
++ lockdep_assert_preemption_enabled();
++#endif
++
+ do {
+ ret = try_to_del_timer_sync(timer);
+
diff --git a/debian/patches-rt/0342-Linux-4.19.255-rt113-REBASE.patch b/debian/patches-rt/0351-Linux-4.19.265-rt117-REBASE.patch
index 35ac2d84b..794dd1786 100644
--- a/debian/patches-rt/0342-Linux-4.19.255-rt113-REBASE.patch
+++ b/debian/patches-rt/0351-Linux-4.19.265-rt117-REBASE.patch
@@ -1,7 +1,7 @@
From: Daniel Wagner <wagi@monom.org>
-Date: Sat, 13 Aug 2022 18:54:48 +0200
-Subject: [PATCH 342/342] Linux 4.19.255-rt113 REBASE
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0d99014e3dd9542fa47ea03e0d4cde570e34928
+Date: Tue, 15 Nov 2022 17:47:25 +0100
+Subject: [PATCH 351/351] Linux 4.19.265-rt117 REBASE
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=562b4732685f0fb3dc0a4abe804fe6e31f47d6b9
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..fdcd9167ca0b 100644
+index 1199ebade17b..9788245dd428 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt16
-+-rt113
++-rt117
diff --git a/debian/patches-rt/series b/debian/patches-rt/series
index 1bf3392fd..0e5bb8615 100644
--- a/debian/patches-rt/series
+++ b/debian/patches-rt/series
@@ -14,7 +14,6 @@
0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch
0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch
0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch
-0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch
0018-efi-Allow-efi-runtime.patch
0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch
0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch
@@ -338,5 +337,14 @@
0338-rt-PREEMPT_RT-safety-net-for-backported-patches.patch
0339-net-Add-missing-xmit_lock_owner-hunks.patch
0340-genirq-Add-lost-hunk-to-irq_forced_thread_fn.patch
-0341-random-Use-local-locks-for-crng-context-access.patch
-0342-Linux-4.19.255-rt113-REBASE.patch
+0341-random-Bring-back-the-local_locks.patch
+0342-local_lock-Provide-INIT_LOCAL_LOCK.patch
+0343-Revert-workqueue-Use-local-irq-lock-instead-of-irq-d.patch
+0344-timers-Keep-interrupts-disabled-for-TIMER_IRQSAFE-ti.patch
+0345-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch
+0346-rcu-Update-rcuwait.patch
+0347-workqueue-Use-rcuwait-for-wq_manager_wait.patch
+0348-timers-Prepare-support-for-PREEMPT_RT.patch
+0349-timers-Move-clearing-of-base-timer_running-under-bas.patch
+0350-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE-.patch
+0351-Linux-4.19.265-rt117-REBASE.patch