[linux] 02/04: [rt] Update to 4.9.68-rt60
debian-kernel at lists.debian.org
debian-kernel at lists.debian.org
Fri Jan 5 16:01:39 UTC 2018
This is an automated email from the git hooks/post-receive script.
benh pushed a commit to branch stretch
in repository linux.
commit 0f41ecd39c471a4ab88e63683eda15fb854ab9a0
Author: Ben Hutchings <ben at decadent.org.uk>
Date: Thu Dec 28 02:29:14 2017 +0000
[rt] Update to 4.9.68-rt60
---
debian/changelog | 18 +++
.../all/rt/0001-timer-make-the-base-lock-raw.patch | 4 +-
...dle-statically-initialized-PER_CPU-locks-.patch | 4 +-
...-compilation-error-for-CONFIG_MODULES-and.patch | 4 +-
.../0004-lockdep-Fix-per-cpu-static-objects.patch | 4 +-
...eanup-variable-names-for-futex_top_waiter.patch | 4 +-
...-Use-smp_store_release-in-mark_wake_futex.patch | 4 +-
...7-futex-Remove-rt_mutex_deadlock_account_.patch | 4 +-
...mutex-Provide-futex-specific-rt_mutex-API.patch | 4 +-
.../all/rt/0009-futex-Change-locking-rules.patch | 4 +-
.../all/rt/0010-futex-Cleanup-refcounting.patch | 4 +-
...ework-inconsistent-rt_mutex-futex_q-state.patch | 4 +-
...rt_mutex_futex_unlock-out-from-under-hb-l.patch | 4 +-
...x-rt_mutex-Introduce-rt_mutex_init_waiter.patch | 4 +-
...tex-Restructure-rt_mutex_finish_proxy_loc.patch | 4 +-
...k-futex_lock_pi-to-use-rt_mutex_-_proxy_l.patch | 4 +-
.../0016-futex-Futex_unlock_pi-determinism.patch | 4 +-
...-hb-lock-before-enqueueing-on-the-rtmutex.patch | 4 +-
...x-Deboost-before-waking-up-the-top-waiter.patch | 4 +-
...ex-deadline-Fix-a-PI-crash-for-deadline-t.patch | 8 +-
...ine-rtmutex-Dont-miss-the-dl_runtime-dl_p.patch | 4 +-
.../features/all/rt/0021-rtmutex-Clean-up.patch | 4 +-
...2-sched-rtmutex-Refactor-rt_mutex_setprio.patch | 20 +--
...hed-tracing-Update-trace_sched_pi_setprio.patch | 8 +-
...0024-rtmutex-Fix-PI-chain-order-integrity.patch | 4 +-
.../0025-rtmutex-Fix-more-prio-comparisons.patch | 4 +-
...g-preempt-count-leak-in-rt_mutex_futex_un.patch | 4 +-
.../0027-futex-Avoid-freeing-an-active-timer.patch | 4 +-
...mall-and-harmless-looking-inconsistencies.patch | 4 +-
...rify-mark_wake_futex-memory-barrier-usage.patch | 4 +-
.../rt/0030-MAINTAINERS-Add-FUTEX-SUBSYSTEM.patch | 4 +-
...-rt_mutex-Fix-rt_mutex_cleanup_proxy_lock.patch | 4 +-
...t91-do-not-disable-enable-clocks-in-a-row.patch | 4 +-
...e-clear_tasks_mm_cpumask-call-to-__cpu_di.patch | 4 +-
...ex-Handle-non-enqueued-waiters-gracefully.patch | 4 +-
.../all/rt/0035-fs-dcache-include-wait.h.patch | 4 +-
...36-rbtree-include-rcu.h-because-we-use-it.patch | 4 +-
.../0037-fs-dcache-init-in_lookup_hashtable.patch | 4 +-
...don-t-disable-preempt-around-this_cpu_ptr.patch | 4 +-
...don-t-disable-preemption-while-accessing-.patch | 4 +-
...t-rid-of-warning-acpi_ioapic_lock-defined.patch | 4 +-
...0041-rxrpc-remove-unused-static-variables.patch | 4 +-
...rcu-update-make-RCU_EXPEDITE_BOOT-default.patch | 4 +-
...cpu-rwsem-use-swait-for-the-wating-writer.patch | 4 +-
...44-pinctrl-qcom-Use-raw-spinlock-variants.patch | 4 +-
.../0045-x86-mm-cpa-avoid-wbinvd-for-PREEMPT.patch | 4 +-
...NFSv4-replace-seqcount_t-with-a-seqlock_t.patch | 12 +-
...47-sparc64-use-generic-rwsem-spinlocks-rt.patch | 6 +-
...-kernel-SRCU-provide-a-static-initializer.patch | 4 +-
...-block-Shorten-interrupt-disabled-regions.patch | 16 +-
.../0050-timekeeping-Split-jiffies-seqlock.patch | 4 +-
...count-for-preempt-off-in-preempt_schedule.patch | 8 +-
.../0052-signal-Revert-ptrace-preempt-magic.patch | 4 +-
.../rt/0053-arm-Convert-arm-boot_lock-to-raw.patch | 4 +-
...arm-kprobe-replace-patch_lock-to-raw-lock.patch | 4 +-
...55-posix-timers-Prevent-broadcast-signals.patch | 4 +-
...low-rt-tasks-to-cache-one-sigqueue-struct.patch | 4 +-
...ers-random-Reduce-preempt-disabled-region.patch | 4 +-
...T-Remove-irq-handler-when-clock-event-is-.patch | 4 +-
...-drivers-timer-atmel-pit-fix-double-free_.patch | 4 +-
...-TCLIB-Allow-higher-clock-rates-for-clock.patch | 4 +-
...ers-net-Use-disable_irq_nosync-in-8139too.patch | 4 +-
.../0062-suspend-Prevent-might-sleep-splats.patch | 4 +-
.../rt/0063-net-flip-lock-dep-thingy.patch.patch | 8 +-
...064-net-sched-Use-msleep-instead-of-yield.patch | 4 +-
...Do-not-unmask-io_apic-when-interrupt-is-i.patch | 4 +-
.../rt/0066-latencyhist-disable-jump-labels.patch | 4 +-
.../rt/0067-tracing-Add-latency-histograms.patch | 4 +-
...68-latency_hist-Update-sched_wakeup-probe.patch | 4 +-
...cy-hist-Consider-new-argument-when-probin.patch | 4 +-
...cuidle-version-for-preemptoff_hist-trace-.patch | 4 +-
.../rt/0071-printk-Add-a-printk-kill-switch.patch | 4 +-
...force_early_printk-boot-param-to-help-wit.patch | 4 +-
...-rt-Provide-PREEMPT_RT_BASE-config-switch.patch | 4 +-
...able-config-options-which-are-not-RT-comp.patch | 4 +-
.../all/rt/0075-kconfig-Add-PREEMPT_RT_FULL.patch | 4 +-
...UG_ON-WARN_ON-variants-dependend-on-RT-RT.patch | 4 +-
...u-amd-Use-WARN_ON_NORT-in-__attach_device.patch | 4 +-
...rt-local_irq_-variants-depending-on-RT-RT.patch | 4 +-
...preempt-Provide-preempt_-_-no-rt-variants.patch | 10 +-
.../0080-Intrduce-migrate_disable-cpu_light.patch | 16 +-
...round-migrate_disable-enable-in-different.patch | 4 +-
.../all/rt/0082-rt-Add-local-irq-locks.patch | 4 +-
.../all/rt/0083-locallock-add-local_lock_on.patch | 4 +-
...disable-interrupts-in-ide-code-for-preemp.patch | 4 +-
...-Do-not-disable-interrupts-for-PREEMPT-RT.patch | 4 +-
...Mellanox-IB-driver-patch-use-_nort-primit.patch | 4 +-
...ort-Do-not-disable-interrupts-on-PREEMPT_.patch | 4 +-
...-disable-interrupts-on-RT-in-kernel-users.patch | 4 +-
.../0089-usb-Use-_nort-in-giveback-function.patch | 6 +-
...-mm-scatterlist-Do-not-disable-irqs-on-RT.patch | 4 +-
...et-Do-not-protect-workingset_shadow_nodes.patch | 4 +-
...-signal-Make-__lock_task_sighand-RT-aware.patch | 4 +-
...ignal-x86-Delay-calling-signals-in-atomic.patch | 4 +-
...x86-signal-delay-calling-signals-on-32bit.patch | 4 +-
.../rt/0095-net-wireless-Use-WARN_ON_NORT.patch | 4 +-
...ffer_head-Replace-bh_uptodate_lock-for-rt.patch | 6 +-
...-Make-state-lock-and-journal-head-lock-rt.patch | 6 +-
...98-list_bl-Make-list-head-locking-RT-safe.patch | 4 +-
.../0099-list_bl-fixup-bogus-lockdep-warning.patch | 4 +-
.../all/rt/0100-genirq-Disable-irqpoll-on-rt.patch | 4 +-
.../0101-genirq-Force-interrupt-thread-on-RT.patch | 4 +-
...102-drivers-net-vortex-fix-locking-issues.patch | 4 +-
...3-mm-page_alloc-rt-friendly-per-cpu-pages.patch | 32 ++--
...m-page_alloc-Reduce-lock-sections-further.patch | 24 +--
.../rt/0105-mm-swap-Convert-to-percpu-locked.patch | 8 +-
...106-mm-perform-lru_add_drain_all-remotely.patch | 4 +-
...rotect-per-cpu-variables-with-preempt-dis.patch | 4 +-
...ize-split-page-table-locks-for-vector-pag.patch | 4 +-
.../0109-mm-bounce-Use-local_irq_save_nort.patch | 4 +-
.../all/rt/0110-mm-Allow-only-slub-on-RT.patch | 4 +-
.../all/rt/0111-mm-Enable-SLUB-for-RT.patch | 4 +-
.../rt/0112-slub-Enable-irqs-for-__GFP_WAIT.patch | 4 +-
.../rt/0113-slub-Disable-SLUB_CPU_PARTIAL.patch | 4 +-
...oc-Use-local_lock_on-instead-of-plain-spi.patch | 6 +-
...ol-Don-t-call-schedule_work_on-in-preempt.patch | 4 +-
...ol-Replace-local_irq_disable-with-local-l.patch | 4 +-
...ol-mem_cgroup_migrate-replace-another-loc.patch | 4 +-
...dev-don-t-disable-IRQs-in-wb_congested_pu.patch | 4 +-
...smalloc-copy-with-get_cpu_var-and-locking.patch | 4 +-
.../all/rt/0120-radix-tree-use-local-locks.patch | 4 +-
...get_random_bytes-for-RT_FULL-in-init_oops.patch | 4 +-
.../0122-timers-Prepare-for-full-preemption.patch | 10 +-
...delay-waking-softirqs-from-the-jiffy-tick.patch | 4 +-
.../rt/0124-hrtimers-Prepare-full-preemption.patch | 4 +-
.../rt/0125-hrtimer-enfore-64byte-alignment.patch | 4 +-
...up-hrtimer-callback-changes-for-preempt-r.patch | 8 +-
...-deadline-dl_task_timer-has-to-be-irqsafe.patch | 11 +-
.../all/rt/0128-timer-fd-Prevent-live-lock.patch | 4 +-
...-broadcast-Make-broadcast-hrtimer-irqsafe.patch | 4 +-
...rtimer-check-properly-for-a-running-timer.patch | 4 +-
...osix-timers-Thread-posix-cpu-timers-on-rt.patch | 4 +-
...132-sched-Move-task_struct-cleanup-to-RCU.patch | 4 +-
...t-the-number-of-task-migrations-per-batch.patch | 6 +-
.../rt/0134-sched-Move-mmdrop-to-RCU-on-RT.patch | 14 +-
...d-move-stack-kprobe-clean-up-to-__put_tas.patch | 8 +-
...aved_state-for-tasks-blocked-on-sleeping-.patch | 14 +-
...nt-task-state-corruption-by-spurious-lock.patch | 8 +-
.../all/rt/0138-sched-Remove-TASK_ALL.patch | 4 +-
...t-account-rcu_preempt_depth-on-RT-in-migh.patch | 8 +-
...RT-softirq-semantics-into-account-in-cond.patch | 10 +-
...e-the-proper-LOCK_OFFSET-for-cond_resched.patch | 8 +-
.../rt/0142-sched-Disable-TTWU_QUEUE-on-RT.patch | 9 +-
...sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch | 4 +-
...Return-success-when-only-changing-the-sav.patch | 8 +-
...ueue-Only-wake-up-idle-workers-if-not-blo.patch | 8 +-
...ne-convert-stop_machine_run-to-PREEMPT_RT.patch | 4 +-
.../rt/0147-stop_machine-Use-raw-spinlocks.patch | 4 +-
.../0148-hotplug-Lightweight-get-online-cpus.patch | 4 +-
...149-hotplug-sync_unplug-No-n-in-task-name.patch | 4 +-
...read-hotplug_pcp-on-pin_current_cpu-retry.patch | 4 +-
...igrate-disabled-counter-to-tracing-output.patch | 4 +-
...152-hotplug-Use-migrate-disable-on-unplug.patch | 4 +-
.../all/rt/0153-lockdep-Make-it-RT-aware.patch | 4 +-
...0154-locking-Disable-spin-on-owner-for-RT.patch | 4 +-
...vent-tasklets-from-going-into-infinite-sp.patch | 4 +-
...ck-preemption-after-reenabling-interrupts.patch | 12 +-
...157-softirq-Disable-softirq-stacks-for-RT.patch | 4 +-
.../all/rt/0158-softirq-Split-softirq-locks.patch | 50 +++---
.../0159-kernel-softirq-unlock-with-irqs-on.patch | 4 +-
...ate_disable-do-fastpath-in-atomic-irqs-of.patch | 10 +-
...w-disabling-of-softirq-processing-in-irq-.patch | 4 +-
...irq-split-timer-softirqs-out-of-ksoftirqd.patch | 4 +-
...-softirq-wake-the-timer-softirq-if-needed.patch | 4 +-
...mers-Don-t-wake-ktimersoftd-on-every-tick.patch | 4 +-
...mers-Don-t-wake-ktimersoftd-on-every-tick.patch | 4 +-
.../rt/0166-rtmutex-trylock-is-okay-on-RT.patch | 4 +-
.../0167-gpu-don-t-check-for-the-lock-owner.patch | 4 +-
...68-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch | 10 +-
...dle-the-various-new-futex-race-conditions.patch | 4 +-
...-bug-on-when-a-requeued-RT-task-times-out.patch | 4 +-
...e-lock-unlock-symetry-versus-pi_lock-and-.patch | 4 +-
.../all/rt/0172-pid.h-include-atomic.h.patch | 4 +-
...0173-arm-include-definition-for-cpumask_t.patch | 4 +-
...ktorture-Do-NOT-include-rwlock.h-directly.patch | 4 +-
.../0175-rtmutex-Add-rtmutex_lock_killable.patch | 4 +-
.../rt/0176-rtmutex-Make-lock_killable-work.patch | 4 +-
...0177-spinlock-Split-the-lock-types-header.patch | 4 +-
.../all/rt/0178-rtmutex-Avoid-include-hell.patch | 4 +-
.../0179-rbtree-don-t-include-the-rcu-header.patch | 4 +-
...-Add-the-preempt-rt-lock-replacement-APIs.patch | 6 +-
...ex_disable-on-DEBUG-configs-and-the-GPL-s.patch | 4 +-
...king-use-an-exclusive-wait_q-for-sleepers.patch | 6 +-
.../rt/0183-rtmutex-Add-RT-aware-ww-locks.patch | 4 +-
.../0184-rtmutex-Provide-rt_mutex_lock_state.patch | 4 +-
.../rt/0185-rtmutex-Provide-locked-slowpath.patch | 4 +-
...tex-rtmutex-Cure-RT-double-blocking-issue.patch | 4 +-
...7-rwsem-rt-Lift-single-reader-restriction.patch | 4 +-
...8-ptrace-fix-ptrace-vs-tasklist_lock-race.patch | 12 +-
.../all/rt/0189-rcu-Frob-softirq-test.patch | 4 +-
.../0190-rcu-Merge-RCU-bh-into-RCU-preempt.patch | 4 +-
...cu-Make-ksoftirqd-do-RCU-quiescent-states.patch | 4 +-
..._bh_qs-Disable-irq-while-calling-rcu_pree.patch | 4 +-
...tty-serial-omap-Make-the-locking-RT-aware.patch | 6 +-
...-serial-pl011-Make-the-locking-work-on-RT.patch | 4 +-
...-rt-Improve-the-serial-console-PASS_LIMIT.patch | 4 +-
...l-8250-don-t-take-the-trylock-during-oops.patch | 8 +-
.../all/rt/0197-wait.h-include-atomic.h.patch | 4 +-
...rk-simple-Simple-work-queue-implemenation.patch | 4 +-
.../0199-completion-Use-simple-wait-queues.patch | 12 +-
.../all/rt/0200-fs-aio-simple-simple-work.patch | 4 +-
...ot-invoke-the-affinity-callback-via-a-wor.patch | 4 +-
...-Move-schedule_work-call-to-helper-thread.patch | 4 +-
...cpu-rwsem-Remove-preempt_disable-variants.patch | 4 +-
.../all/rt/0204-fs-namespace-preemption-fix.patch | 4 +-
...activate_mm-by-preempt_-disable-enable-_r.patch | 4 +-
...ock-Turn-off-warning-which-is-bogus-on-RT.patch | 6 +-
...0207-fs-ntfs-disable-interrupt-only-on-RT.patch | 4 +-
...bd2-pull-your-plug-when-waiting-for-space.patch | 4 +-
.../rt/0209-x86-Convert-mce-timer-to-hrtimer.patch | 4 +-
...0-x86-mce-use-swait-queue-for-mce-wakeups.patch | 4 +-
...86-stackprotector-Avoid-random-pool-on-rt.patch | 4 +-
...212-x86-Use-generic-rwsem_spinlocks-on-rt.patch | 6 +-
.../rt/0213-x86-UV-raw_spinlock-conversion.patch | 4 +-
...4-thermal-Defer-thermal-wakups-to-threads.patch | 4 +-
...-fs-epoll-Do-not-disable-preemption-on-RT.patch | 4 +-
...Another-preempt-disable-region-which-suck.patch | 4 +-
.../all/rt/0217-block-mq-use-cpu_light.patch | 4 +-
...18-block-mq-do-not-invoke-preempt_disable.patch | 4 +-
...-block-mq-don-t-complete-requests-via-IPI.patch | 6 +-
...raid5-Make-raid5_percpu-handling-RT-aware.patch | 4 +-
.../all/rt/0221-rt-Introduce-cpu_chill.patch | 4 +-
...l-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch | 4 +-
.../all/rt/0223-block-blk-mq-Use-swait.patch | 12 +-
.../0224-block-Use-cpu_chill-for-retry-loops.patch | 4 +-
...-fs-dcache-Use-cpu_chill-in-trylock-loops.patch | 4 +-
...26-net-Use-cpu_chill-instead-of-cpu_relax.patch | 6 +-
...ache-use-swait_queue-instead-of-waitqueue.patch | 8 +-
.../all/rt/0228-workqueue-Use-normal-rcu.patch | 4 +-
...se-local-irq-lock-instead-of-irq-disable-.patch | 4 +-
...revent-workqueue-versus-ata-piix-livelock.patch | 4 +-
...d-Distangle-worker-accounting-from-rqlock.patch | 24 +--
...al-lock-instead-of-preempt-enable-disable.patch | 4 +-
.../all/rt/0233-percpu_ida-Use-local-locks.patch | 4 +-
.../all/rt/0234-debugobjects-Make-RT-aware.patch | 4 +-
...ump-label-disable-if-stop_machine-is-used.patch | 4 +-
.../rt/0236-seqlock-Prevent-rt-starvation.patch | 4 +-
...ake-svc_xprt_do_enqueue-use-get_cpu_light.patch | 4 +-
.../rt/0238-net-Use-skbufhead-with-raw-lock.patch | 10 +-
...cpuhotplug-Drain-input_pkt_queue-lockless.patch | 6 +-
...xmit_recursion-to-per-task-variable-on-RT.patch | 8 +-
...-a-way-to-delegate-processing-a-softirq-t.patch | 6 +-
...ays-take-qdisc-s-busylock-in-__dev_xmit_s.patch | 6 +-
...-net-Qdisc-use-a-seqlock-instead-seqcount.patch | 8 +-
...k-the-missing-serialization-in-ip_send_un.patch | 6 +-
.../rt/0245-net-add-a-lock-around-icmp_sk.patch | 4 +-
...napi_schedule_irqoff-disable-interrupts-o.patch | 8 +-
.../features/all/rt/0247-net-sysrq-via-icmp.patch | 4 +-
...qwork-push-most-work-into-softirq-context.patch | 28 ++--
...irqwork-Move-irq-safe-work-to-irq-context.patch | 4 +-
...-snd_pcm_stream_lock-irqs_disabled-splats.patch | 4 +-
.../all/rt/0251-printk-Make-rt-aware.patch | 4 +-
...tk-Don-t-try-to-print-from-IRQ-NMI-region.patch | 4 +-
...53-printk-Drop-the-logbuf_lock-more-often.patch | 4 +-
.../rt/0254-powerpc-Use-generic-rwsem-on-RT.patch | 6 +-
...-Disable-in-kernel-MPIC-emulation-for-PRE.patch | 4 +-
...-device-init.c-adapt-to-completions-using.patch | 4 +-
...-at91-tclib-Default-to-tclib-timer-for-RT.patch | 4 +-
.../rt/0258-arm-unwind-use-a-raw_spin_lock.patch | 4 +-
...irq-in-translation-section-permission-fau.patch | 4 +-
...pdate-irq_set_irqchip_state-documentation.patch | 4 +-
...64-downgrade-preempt_disable-d-region-to-.patch | 4 +-
.../rt/0262-arm64-xen-Make-XEN-depend-on-RT.patch | 4 +-
.../0263-kgdb-serial-Short-term-workaround.patch | 8 +-
.../0264-sysfs-Add-sys-kernel-realtime-entry.patch | 4 +-
.../rt/0265-powerpc-Disable-highmem-on-RT.patch | 6 +-
.../all/rt/0266-mips-Disable-highmem-on-RT.patch | 4 +-
.../all/rt/0267-mm-rt-kmap_atomic-scheduling.patch | 4 +-
...0268-mm-rt-Fix-generic-kmap_atomic-for-RT.patch | 4 +-
...-x86-highmem-Add-a-already-used-pte-check.patch | 4 +-
.../rt/0270-arm-highmem-Flush-tlb-on-unmap.patch | 4 +-
.../all/rt/0271-arm-Enable-highmem-for-rt.patch | 4 +-
.../rt/0272-ipc-sem-Rework-semaphore-wakeups.patch | 4 +-
.../rt/0273-x86-kvm-Require-const-tsc-for-RT.patch | 8 +-
...lapic-mark-LAPIC-timer-handler-as-irqsafe.patch | 8 +-
.../all/rt/0275-scsi-fcoe-Make-RT-aware.patch | 4 +-
...i-dont-t-disable-interrupts-in-qc_issue-h.patch | 4 +-
...86-crypto-Reduce-preempt-disabled-regions.patch | 4 +-
...educe-preempt-disabled-regions-more-algos.patch | 4 +-
.../features/all/rt/0279-dm-Make-rt-aware.patch | 4 +-
...vert-acpi_gbl_hardware-lock-back-to-a-raw.patch | 4 +-
...sk-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch | 6 +-
.../all/rt/0282-random-Make-it-work-on-rt.patch | 4 +-
...3-random-avoid-preempt_disable-ed-section.patch | 4 +-
...ke-hotplug.lock-a-sleeping-spinlock-on-RT.patch | 4 +-
...285-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch | 8 +-
...g-Document-why-PREEMPT_RT-uses-a-spinlock.patch | 4 +-
...fix-cpu-down-problem-if-kthread-s-cpu-is-.patch | 4 +-
...plug-restore-original-cpu-mask-oncpu-down.patch | 4 +-
.../0289-cpu_down-move-migrate_enable-back.patch | 4 +-
...-set_cpus_allowed_ptr-in-sync_unplug_thre.patch | 4 +-
...cking-Reenable-migration-accross-schedule.patch | 4 +-
...x-Use-local_irq_save_nort-in-qla2x00_poll.patch | 4 +-
...t-Remove-preemption-disabling-in-netif_rx.patch | 6 +-
...nother-local_irq_disable-kmalloc-headache.patch | 6 +-
...otect-users-of-napi_alloc_cache-against-r.patch | 6 +-
...er-Serialize-xt_write_recseq-sections-on-.patch | 4 +-
...-net-Add-a-mutex-around-devnet_rename_seq.patch | 6 +-
...pto-Convert-crypto-notifier-chain-to-SRCU.patch | 4 +-
...ftest-Only-do-hardirq-context-test-for-ra.patch | 4 +-
...ftest-fix-warnings-due-to-missing-PREEMPT.patch | 4 +-
...wevent-hrtimer-run-in-irq-instead-of-soft.patch | 8 +-
...-mark-perf_cpu_context-s-timer-as-irqsafe.patch | 6 +-
.../rt/0303-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch | 4 +-
...Eliminate-softirq-processing-from-rcutree.patch | 4 +-
.../rt/0305-rcu-make-RCU_BOOST-default-on-RT.patch | 4 +-
...e-rcu_normal_after_boot-by-default-for-RT.patch | 4 +-
...307-sched-Add-support-for-lazy-preemption.patch | 36 ++---
.../0308-ftrace-Fix-trace-header-alignment.patch | 4 +-
.../rt/0309-x86-Support-for-lazy-preemption.patch | 6 +-
.../0310-arm-Add-support-for-lazy-preemption.patch | 4 +-
...1-powerpc-Add-support-for-lazy-preemption.patch | 6 +-
.../0312-arch-arm64-Add-lazy-preempt-support.patch | 4 +-
...te-disable-handle-updated-task-mask-mg-di.patch | 12 +-
...14-leds-trigger-disable-CPU-trigger-on-RT.patch | 4 +-
.../rt/0315-mmci-Remove-bogus-local_irq_save.patch | 4 +-
...req-drop-K8-s-driver-from-beeing-selected.patch | 4 +-
...n_proc-Protect-send_msg-with-a-local-lock.patch | 4 +-
...ck-zram-Replace-bit-spinlocks-with-rtmute.patch | 4 +-
...m-Don-t-disable-preemption-in-zcomp_strea.patch | 4 +-
...5-drop-trace_i915_gem_ring_dispatch-on-rt.patch | 4 +-
...warning-from-i915-when-running-on-PREEMPT.patch | 4 +-
...i915-Use-preempt_disable-enable_rt-where-.patch | 4 +-
...e-local_lock-unlock_irq-in-intel_pipe_upd.patch | 4 +-
...24-cgroups-use-simple-wait-in-css_release.patch | 4 +-
...Prevent-scheduling-while-atomic-in-cgroup.patch | 4 +-
...t-Convert-callback_lock-to-raw_spinlock_t.patch | 4 +-
...-call-to-schedule_delayed_work-to-helper-.patch | 4 +-
.../features/all/rt/0328-md-disable-bcache.patch | 4 +-
...29-workqueue-Prevent-deadlock-stall-on-RT.patch | 10 +-
.../rt/0330-Add-localversion-for-RT-release.patch | 4 +-
...m-fix-zcomp_stream_get-smp_processor_id-u.patch | 4 +-
...isable-preemption-on-i_dir_seq-s-write-si.patch | 6 +-
.../0333-tpm_tis-fix-stall-after-iowrite-s.patch | 4 +-
...two-more-BH_Uptodate_Lock-related-bitspin.patch | 4 +-
...mutex-fix-deadlock-in-device-mapper-block.patch | 4 +-
.../0336-md-raid5-do-not-disable-interrupts.patch | 4 +-
...ontrol-Prevent-scheduling-while-atomic-in.patch | 103 ++++++++++++
...bd2-pull-your-plug-when-waiting-for-space.patch | 30 ++++
.../rt/0339-rtmutex-Fix-lock-stealing-logic.patch | 162 +++++++++++++++++++
...m-replace-raw_notifier-to-atomic_notifier.patch | 175 +++++++++++++++++++++
...ace-raw_notifier-with-atomic_notifier-fix.patch | 34 ++++
...rtimer-migrate-deferred-timer-on-CPU-down.patch | 35 +++++
...ake-the-tcp_sk_lock-lock-with-BH-disabled.patch | 70 +++++++++
...mer-don-t-wakeup-a-process-while-holding-.patch | 88 +++++++++++
...mer-hotplug-don-t-wake-ktimersoftd-while-.patch | 71 +++++++++
...void-recursive-locking-in-hci_send_to_cha.patch | 73 +++++++++
...se-raw_cpu_ptr-instead-of-get_cpu_ptr-for.patch | 46 ++++++
...-rt-locking-allow-recursive-local_trylock.patch | 41 +++++
...ng-rtmutex-don-t-drop-the-wait_lock-twice.patch | 32 ++++
.../all/rt/0350-net-use-trylock-in-icmp_sk.patch | 32 ++++
...E.patch => 0351-Linux-4.9.68-rt60-REBASE.patch} | 10 +-
debian/patches/series-rt | 16 +-
353 files changed, 1946 insertions(+), 910 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index d151122..6625ab9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -634,6 +634,24 @@ linux (4.9.72-1) UNRELEASED; urgency=medium
- [x86] platform: asus-wireless: send an EV_SYN/SYN_REPORT between state
changes
+ [ Ben Hutchings ]
+ * [rt] Update to 4.9.68-rt60:
+ - Revert "memcontrol: Prevent scheduling while atomic in cgroup code"
+ - Revert "fs: jbd2: pull your plug when waiting for space"
+ - rtmutex: Fix lock stealing logic
+ - cpu_pm: replace raw_notifier to atomic_notifier
+ - PM / CPU: replace raw_notifier with atomic_notifier (fixup)
+ - kernel/hrtimer: migrate deferred timer on CPU down
+ - net: take the tcp_sk_lock lock with BH disabled
+ - kernel/hrtimer: don't wakeup a process while holding the hrtimer base lock
+ - kernel/hrtimer/hotplug: don't wake ktimersoftd while holding the hrtimer
+ base lock
+ - Bluetooth: avoid recursive locking in hci_send_to_channel()
+ - iommu/amd: Use raw_cpu_ptr() instead of get_cpu_ptr() for ->flush_queue
+ - rt/locking: allow recursive local_trylock()
+ - locking/rtmutex: don't drop the wait_lock twice
+ - net: use trylock in icmp_sk
+
-- Ben Hutchings <ben at decadent.org.uk> Thu, 28 Dec 2017 02:16:23 +0000
linux (4.9.65-3+deb9u1) stretch-security; urgency=high
diff --git a/debian/patches/features/all/rt/0001-timer-make-the-base-lock-raw.patch b/debian/patches/features/all/rt/0001-timer-make-the-base-lock-raw.patch
index 160644b..538e1ac 100644
--- a/debian/patches/features/all/rt/0001-timer-make-the-base-lock-raw.patch
+++ b/debian/patches/features/all/rt/0001-timer-make-the-base-lock-raw.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 13 Jul 2016 18:22:23 +0200
-Subject: [PATCH 001/337] timer: make the base lock raw
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=84aba58820697bb2cfc0e32e608922dc6cf3e957
+Subject: [PATCH 001/351] timer: make the base lock raw
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=729899e04162021cad7ce71ab460abdf612bd827
The part where the base lock is held got more predictable / shorter after the
timer rework. One reason is the lack of re-cascading.
diff --git a/debian/patches/features/all/rt/0002-lockdep-Handle-statically-initialized-PER_CPU-locks-.patch b/debian/patches/features/all/rt/0002-lockdep-Handle-statically-initialized-PER_CPU-locks-.patch
index 2cba959..a5506e3 100644
--- a/debian/patches/features/all/rt/0002-lockdep-Handle-statically-initialized-PER_CPU-locks-.patch
+++ b/debian/patches/features/all/rt/0002-lockdep-Handle-statically-initialized-PER_CPU-locks-.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 17 Feb 2017 19:44:39 +0100
-Subject: [PATCH 002/337] lockdep: Handle statically initialized PER_CPU locks
+Subject: [PATCH 002/351] lockdep: Handle statically initialized PER_CPU locks
proper
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0f2859f53384ac558cc57e02ffceaeefc67da777
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=90d2ef5de7ac852039f6619fc8c0f841d3c6d280
If a PER_CPU struct which contains a spin_lock is statically initialized
via:
diff --git a/debian/patches/features/all/rt/0003-lockdep-Fix-compilation-error-for-CONFIG_MODULES-and.patch b/debian/patches/features/all/rt/0003-lockdep-Fix-compilation-error-for-CONFIG_MODULES-and.patch
index 01e5c71..7e0d14f 100644
--- a/debian/patches/features/all/rt/0003-lockdep-Fix-compilation-error-for-CONFIG_MODULES-and.patch
+++ b/debian/patches/features/all/rt/0003-lockdep-Fix-compilation-error-for-CONFIG_MODULES-and.patch
@@ -1,8 +1,8 @@
From: Dan Murphy <dmurphy at ti.com>
Date: Fri, 24 Feb 2017 08:41:49 -0600
-Subject: [PATCH 003/337] lockdep: Fix compilation error for !CONFIG_MODULES
+Subject: [PATCH 003/351] lockdep: Fix compilation error for !CONFIG_MODULES
and !CONFIG_SMP
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d3a8997a41362ed009d149d1be5f8d1a7b6baef3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=04290ef7aa427a278b49b5872ac959e7a9b5126b
When CONFIG_MODULES is not set then it fails to compile in lockdep:
diff --git a/debian/patches/features/all/rt/0004-lockdep-Fix-per-cpu-static-objects.patch b/debian/patches/features/all/rt/0004-lockdep-Fix-per-cpu-static-objects.patch
index e7e223f..60f7f6d 100644
--- a/debian/patches/features/all/rt/0004-lockdep-Fix-per-cpu-static-objects.patch
+++ b/debian/patches/features/all/rt/0004-lockdep-Fix-per-cpu-static-objects.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Mon, 20 Mar 2017 12:26:55 +0100
-Subject: [PATCH 004/337] lockdep: Fix per-cpu static objects
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c4bf1bc72df835f42f491060623b50393849515d
+Subject: [PATCH 004/351] lockdep: Fix per-cpu static objects
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=490cf29da27b6166beab375d86beb70f0be43afa
Since commit 383776fa7527 ("locking/lockdep: Handle statically initialized
PER_CPU locks properly") we try to collapse per-cpu locks into a single
diff --git a/debian/patches/features/all/rt/0005-futex-Cleanup-variable-names-for-futex_top_waiter.patch b/debian/patches/features/all/rt/0005-futex-Cleanup-variable-names-for-futex_top_waiter.patch
index f42d548..4221f05 100644
--- a/debian/patches/features/all/rt/0005-futex-Cleanup-variable-names-for-futex_top_waiter.patch
+++ b/debian/patches/features/all/rt/0005-futex-Cleanup-variable-names-for-futex_top_waiter.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:48 +0100
-Subject: [PATCH 005/337] futex: Cleanup variable names for futex_top_waiter()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e53552b8c627a3bd2d21bd16da37ce3c333ead04
+Subject: [PATCH 005/351] futex: Cleanup variable names for futex_top_waiter()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e508a6de022c6e24f364e2a0b6f4f8143408994e
Upstream commit 499f5aca2cdd5e958b27e2655e7e7f82524f46b1
diff --git a/debian/patches/features/all/rt/0006-futex-Use-smp_store_release-in-mark_wake_futex.patch b/debian/patches/features/all/rt/0006-futex-Use-smp_store_release-in-mark_wake_futex.patch
index f76e0f6..e2a966c 100644
--- a/debian/patches/features/all/rt/0006-futex-Use-smp_store_release-in-mark_wake_futex.patch
+++ b/debian/patches/features/all/rt/0006-futex-Use-smp_store_release-in-mark_wake_futex.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:49 +0100
-Subject: [PATCH 006/337] futex: Use smp_store_release() in mark_wake_futex()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=efe6d8173837fc9d21ae812ba50fdde14fc75f6e
+Subject: [PATCH 006/351] futex: Use smp_store_release() in mark_wake_futex()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a941bea864a5898af72decaedca96d54217657ad
Upstream commit 1b367ece0d7e696cab1c8501bab282cc6a538b3f
diff --git a/debian/patches/features/all/rt/0007-futex-Remove-rt_mutex_deadlock_account_.patch b/debian/patches/features/all/rt/0007-futex-Remove-rt_mutex_deadlock_account_.patch
index 4cc7c19..f7e6f9c 100644
--- a/debian/patches/features/all/rt/0007-futex-Remove-rt_mutex_deadlock_account_.patch
+++ b/debian/patches/features/all/rt/0007-futex-Remove-rt_mutex_deadlock_account_.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:50 +0100
-Subject: [PATCH 007/337] futex: Remove rt_mutex_deadlock_account_*()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ccc4cbac7321ca5eb001e5eeae5286cfa3549db5
+Subject: [PATCH 007/351] futex: Remove rt_mutex_deadlock_account_*()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=965d53c03e073e5696d2cf1d8d601210b81e48cb
Upstream commit fffa954fb528963c2fb7b0c0084eb77e2be7ab52
diff --git a/debian/patches/features/all/rt/0008-futex-rt_mutex-Provide-futex-specific-rt_mutex-API.patch b/debian/patches/features/all/rt/0008-futex-rt_mutex-Provide-futex-specific-rt_mutex-API.patch
index b0b9160..c6c2aff 100644
--- a/debian/patches/features/all/rt/0008-futex-rt_mutex-Provide-futex-specific-rt_mutex-API.patch
+++ b/debian/patches/features/all/rt/0008-futex-rt_mutex-Provide-futex-specific-rt_mutex-API.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:51 +0100
-Subject: [PATCH 008/337] futex,rt_mutex: Provide futex specific rt_mutex API
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=662f450daf0090547a48b5f5d970e9b5da579561
+Subject: [PATCH 008/351] futex,rt_mutex: Provide futex specific rt_mutex API
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=58f809c8566f4803eb0bb3e83a47340b1bfb92b5
Upstream commit 5293c2efda37775346885c7e924d4ef7018ea60b
diff --git a/debian/patches/features/all/rt/0009-futex-Change-locking-rules.patch b/debian/patches/features/all/rt/0009-futex-Change-locking-rules.patch
index e8f013c..4c36e38 100644
--- a/debian/patches/features/all/rt/0009-futex-Change-locking-rules.patch
+++ b/debian/patches/features/all/rt/0009-futex-Change-locking-rules.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:52 +0100
-Subject: [PATCH 009/337] futex: Change locking rules
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c9c5639e513bf6832f81c5d6b51d048fc59c172
+Subject: [PATCH 009/351] futex: Change locking rules
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3df179d9d97ca3616702e8ba3ebf97d5b5c2e8fa
Upstream commit 734009e96d1983ad739e5b656e03430b3660c913
diff --git a/debian/patches/features/all/rt/0010-futex-Cleanup-refcounting.patch b/debian/patches/features/all/rt/0010-futex-Cleanup-refcounting.patch
index 7f45d90..c7bb7a3 100644
--- a/debian/patches/features/all/rt/0010-futex-Cleanup-refcounting.patch
+++ b/debian/patches/features/all/rt/0010-futex-Cleanup-refcounting.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:53 +0100
-Subject: [PATCH 010/337] futex: Cleanup refcounting
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bf5f66e96794f917af360b0f7230c1a5131b6fcb
+Subject: [PATCH 010/351] futex: Cleanup refcounting
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=848aba0a4dfb1dae94bf67c41374a58700c1194a
Upstream commit bf92cf3a5100f5a0d5f9834787b130159397cb22
diff --git a/debian/patches/features/all/rt/0011-futex-Rework-inconsistent-rt_mutex-futex_q-state.patch b/debian/patches/features/all/rt/0011-futex-Rework-inconsistent-rt_mutex-futex_q-state.patch
index dd370b2..ee5ce43 100644
--- a/debian/patches/features/all/rt/0011-futex-Rework-inconsistent-rt_mutex-futex_q-state.patch
+++ b/debian/patches/features/all/rt/0011-futex-Rework-inconsistent-rt_mutex-futex_q-state.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:54 +0100
-Subject: [PATCH 011/337] futex: Rework inconsistent rt_mutex/futex_q state
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c959ea11d71d70b4f2983c34fa3ac53d7c450f1
+Subject: [PATCH 011/351] futex: Rework inconsistent rt_mutex/futex_q state
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6ab217e45a3a33d61bfabeae7b5b3c68fe13a6d
Upstream commit 73d786bd043ebc855f349c81ea805f6b11cbf2aa
diff --git a/debian/patches/features/all/rt/0012-futex-Pull-rt_mutex_futex_unlock-out-from-under-hb-l.patch b/debian/patches/features/all/rt/0012-futex-Pull-rt_mutex_futex_unlock-out-from-under-hb-l.patch
index ba4424a..ba3fc22 100644
--- a/debian/patches/features/all/rt/0012-futex-Pull-rt_mutex_futex_unlock-out-from-under-hb-l.patch
+++ b/debian/patches/features/all/rt/0012-futex-Pull-rt_mutex_futex_unlock-out-from-under-hb-l.patch
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:55 +0100
-Subject: [PATCH 012/337] futex: Pull rt_mutex_futex_unlock() out from under
+Subject: [PATCH 012/351] futex: Pull rt_mutex_futex_unlock() out from under
hb->lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=af0a782aab0f7d89bed7636e9f42ff46f863cbec
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2a548f7db3e1af99e54405e42fe0e056b6006e81
Upstream commit 16ffa12d742534d4ff73e8b3a4e81c1de39196f0
diff --git a/debian/patches/features/all/rt/0013-futex-rt_mutex-Introduce-rt_mutex_init_waiter.patch b/debian/patches/features/all/rt/0013-futex-rt_mutex-Introduce-rt_mutex_init_waiter.patch
index 47f0824..c87f435 100644
--- a/debian/patches/features/all/rt/0013-futex-rt_mutex-Introduce-rt_mutex_init_waiter.patch
+++ b/debian/patches/features/all/rt/0013-futex-rt_mutex-Introduce-rt_mutex_init_waiter.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:56 +0100
-Subject: [PATCH 013/337] futex,rt_mutex: Introduce rt_mutex_init_waiter()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=833deb8f4c6b2b9193e93daa8dc582546981cc6f
+Subject: [PATCH 013/351] futex,rt_mutex: Introduce rt_mutex_init_waiter()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=359f7baeccfb977e3493e858fa908388f2e0d3b8
Upstream commit 50809358dd7199aa7ce232f6877dd09ec30ef374
diff --git a/debian/patches/features/all/rt/0014-futex-rt_mutex-Restructure-rt_mutex_finish_proxy_loc.patch b/debian/patches/features/all/rt/0014-futex-rt_mutex-Restructure-rt_mutex_finish_proxy_loc.patch
index 0f1efa0..f450000 100644
--- a/debian/patches/features/all/rt/0014-futex-rt_mutex-Restructure-rt_mutex_finish_proxy_loc.patch
+++ b/debian/patches/features/all/rt/0014-futex-rt_mutex-Restructure-rt_mutex_finish_proxy_loc.patch
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:57 +0100
-Subject: [PATCH 014/337] futex,rt_mutex: Restructure
+Subject: [PATCH 014/351] futex,rt_mutex: Restructure
rt_mutex_finish_proxy_lock()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ecd0af90b7fe34297eaf3700d6a2f397363b802b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9dfc9cb667a3980b26c81b1430dff934004d50df
Upstream commit 38d589f2fd08f1296aea3ce62bebd185125c6d81
diff --git a/debian/patches/features/all/rt/0015-futex-Rework-futex_lock_pi-to-use-rt_mutex_-_proxy_l.patch b/debian/patches/features/all/rt/0015-futex-Rework-futex_lock_pi-to-use-rt_mutex_-_proxy_l.patch
index 65ed824..2adcd3f 100644
--- a/debian/patches/features/all/rt/0015-futex-Rework-futex_lock_pi-to-use-rt_mutex_-_proxy_l.patch
+++ b/debian/patches/features/all/rt/0015-futex-Rework-futex_lock_pi-to-use-rt_mutex_-_proxy_l.patch
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:58 +0100
-Subject: [PATCH 015/337] futex: Rework futex_lock_pi() to use
+Subject: [PATCH 015/351] futex: Rework futex_lock_pi() to use
rt_mutex_*_proxy_lock()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7e0a6276be286d44985d89760fc09f9ba0a084a8
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ac8a0cba48179217dabe9af5d7fc8075850d8a8f
Upstream commit cfafcd117da0216520568c195cb2f6cd1980c4bb
diff --git a/debian/patches/features/all/rt/0016-futex-Futex_unlock_pi-determinism.patch b/debian/patches/features/all/rt/0016-futex-Futex_unlock_pi-determinism.patch
index 24d6533..8ef9666 100644
--- a/debian/patches/features/all/rt/0016-futex-Futex_unlock_pi-determinism.patch
+++ b/debian/patches/features/all/rt/0016-futex-Futex_unlock_pi-determinism.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:35:59 +0100
-Subject: [PATCH 016/337] futex: Futex_unlock_pi() determinism
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6fdee8cb79c1db1d1ab8052913d32d8681336b6a
+Subject: [PATCH 016/351] futex: Futex_unlock_pi() determinism
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e3c041714046eb0a7c5d94f96494f005f7e624a5
Upstream commit bebe5b514345f09be2c15e414d076b02ecb9cce8
diff --git a/debian/patches/features/all/rt/0017-futex-Drop-hb-lock-before-enqueueing-on-the-rtmutex.patch b/debian/patches/features/all/rt/0017-futex-Drop-hb-lock-before-enqueueing-on-the-rtmutex.patch
index b689426..7d78487 100644
--- a/debian/patches/features/all/rt/0017-futex-Drop-hb-lock-before-enqueueing-on-the-rtmutex.patch
+++ b/debian/patches/features/all/rt/0017-futex-Drop-hb-lock-before-enqueueing-on-the-rtmutex.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 22 Mar 2017 11:36:00 +0100
-Subject: [PATCH 017/337] futex: Drop hb->lock before enqueueing on the rtmutex
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b72363875eb723bc944b961e1b0b7dc1a16d2962
+Subject: [PATCH 017/351] futex: Drop hb->lock before enqueueing on the rtmutex
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2a24fa4cf065d2d794ac1049c66f164ae1c3924a
Upstream commit 56222b212e8edb1cf51f5dd73ff645809b082b40
diff --git a/debian/patches/features/all/rt/0018-rtmutex-Deboost-before-waking-up-the-top-waiter.patch b/debian/patches/features/all/rt/0018-rtmutex-Deboost-before-waking-up-the-top-waiter.patch
index 6ee8e93..73cd96f 100644
--- a/debian/patches/features/all/rt/0018-rtmutex-Deboost-before-waking-up-the-top-waiter.patch
+++ b/debian/patches/features/all/rt/0018-rtmutex-Deboost-before-waking-up-the-top-waiter.patch
@@ -1,7 +1,7 @@
From: Xunlei Pang <xlpang at redhat.com>
Date: Thu, 23 Mar 2017 15:56:07 +0100
-Subject: [PATCH 018/337] rtmutex: Deboost before waking up the top waiter
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6c0da3ff6be4f36a49fe5e89de10ed0c03039c46
+Subject: [PATCH 018/351] rtmutex: Deboost before waking up the top waiter
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=28e4510d075d7679424d76de6ec3283ee12f25fc
Upstream commit 2a1c6029940675abb2217b590512dbf691867ec4
diff --git a/debian/patches/features/all/rt/0019-sched-rtmutex-deadline-Fix-a-PI-crash-for-deadline-t.patch b/debian/patches/features/all/rt/0019-sched-rtmutex-deadline-Fix-a-PI-crash-for-deadline-t.patch
index d6a22f7..4c1d868 100644
--- a/debian/patches/features/all/rt/0019-sched-rtmutex-deadline-Fix-a-PI-crash-for-deadline-t.patch
+++ b/debian/patches/features/all/rt/0019-sched-rtmutex-deadline-Fix-a-PI-crash-for-deadline-t.patch
@@ -1,8 +1,8 @@
From: Xunlei Pang <xlpang at redhat.com>
Date: Thu, 23 Mar 2017 15:56:08 +0100
-Subject: [PATCH 019/337] sched/rtmutex/deadline: Fix a PI crash for deadline
+Subject: [PATCH 019/351] sched/rtmutex/deadline: Fix a PI crash for deadline
tasks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9e78d3af61d9a8f6d19aac98224f81c4102fcadc
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=369438603d6dbc48af5b7ca3f4c2dfbee504a1d3
Upstream commit e96a7705e7d3fef96aec9b590c63b2f6f7d2ba22
@@ -168,10 +168,10 @@ index 440469b69df9..3c4e5bff1d9a 100644
/*
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 02e7ad860b52..c35bf6bc1009 100644
+index e5066955cc3a..7c4614c54a26 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3670,6 +3670,8 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
+@@ -3669,6 +3669,8 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
goto out_unlock;
}
diff --git a/debian/patches/features/all/rt/0020-sched-deadline-rtmutex-Dont-miss-the-dl_runtime-dl_p.patch b/debian/patches/features/all/rt/0020-sched-deadline-rtmutex-Dont-miss-the-dl_runtime-dl_p.patch
index a8eb206..e8bc594 100644
--- a/debian/patches/features/all/rt/0020-sched-deadline-rtmutex-Dont-miss-the-dl_runtime-dl_p.patch
+++ b/debian/patches/features/all/rt/0020-sched-deadline-rtmutex-Dont-miss-the-dl_runtime-dl_p.patch
@@ -1,8 +1,8 @@
From: Xunlei Pang <xlpang at redhat.com>
Date: Thu, 23 Mar 2017 15:56:09 +0100
-Subject: [PATCH 020/337] sched/deadline/rtmutex: Dont miss the
+Subject: [PATCH 020/351] sched/deadline/rtmutex: Dont miss the
dl_runtime/dl_period update
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=140ffc28b706ec8adc0ab5bce38b980ede2d5513
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e9685e687154039e67013ac2b502e80c7b1fa0de
Upstream commit 85e2d4f992868ad78dc8bb2c077b652fcfb3661a
diff --git a/debian/patches/features/all/rt/0021-rtmutex-Clean-up.patch b/debian/patches/features/all/rt/0021-rtmutex-Clean-up.patch
index 95889bd..2f10eec 100644
--- a/debian/patches/features/all/rt/0021-rtmutex-Clean-up.patch
+++ b/debian/patches/features/all/rt/0021-rtmutex-Clean-up.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Thu, 23 Mar 2017 15:56:10 +0100
-Subject: [PATCH 021/337] rtmutex: Clean up
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=048ae71318908597acac3a06df942bfdf778d2e2
+Subject: [PATCH 021/351] rtmutex: Clean up
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2df320e234dfe5c5dd465e568a02d1350eb982b2
Upstream commit aa2bfe55366552cb7e93e8709d66e698d79ccc47
diff --git a/debian/patches/features/all/rt/0022-sched-rtmutex-Refactor-rt_mutex_setprio.patch b/debian/patches/features/all/rt/0022-sched-rtmutex-Refactor-rt_mutex_setprio.patch
index 584d84c..f113504 100644
--- a/debian/patches/features/all/rt/0022-sched-rtmutex-Refactor-rt_mutex_setprio.patch
+++ b/debian/patches/features/all/rt/0022-sched-rtmutex-Refactor-rt_mutex_setprio.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Thu, 23 Mar 2017 15:56:11 +0100
-Subject: [PATCH 022/337] sched/rtmutex: Refactor rt_mutex_setprio()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=88ebbe8770e5b470b7d6f94858fb383137d305fd
+Subject: [PATCH 022/351] sched/rtmutex: Refactor rt_mutex_setprio()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ff82e8189c758a01961537730b076c9c1a64aa4
Upstream commit acd58620e415aee4a43a808d7d2fd87259ee0001
@@ -269,10 +269,10 @@ index 7ca8407e865a..6eb6a8a9dd61 100644
return true; /* call rt_mutex_postunlock() */
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index c35bf6bc1009..2b084e067ec5 100644
+index 7c4614c54a26..3d2bcd9d4c88 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3630,10 +3630,25 @@ EXPORT_SYMBOL(default_wake_function);
+@@ -3629,10 +3629,25 @@ EXPORT_SYMBOL(default_wake_function);
#ifdef CONFIG_RT_MUTEXES
@@ -300,7 +300,7 @@ index c35bf6bc1009..2b084e067ec5 100644
*
* This function changes the 'effective' priority of a task. It does
* not touch ->normal_prio like __setscheduler().
-@@ -3641,16 +3656,40 @@ EXPORT_SYMBOL(default_wake_function);
+@@ -3640,16 +3655,40 @@ EXPORT_SYMBOL(default_wake_function);
* Used by the rt_mutex code to implement priority inheritance
* logic. Call site only calls if the priority of the task changed.
*/
@@ -344,7 +344,7 @@ index c35bf6bc1009..2b084e067ec5 100644
/*
* Idle task boosting is a nono in general. There is one
-@@ -3670,9 +3709,7 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
+@@ -3669,9 +3708,7 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
goto out_unlock;
}
@@ -355,7 +355,7 @@ index c35bf6bc1009..2b084e067ec5 100644
oldprio = p->prio;
if (oldprio == prio)
-@@ -3696,7 +3733,6 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
+@@ -3695,7 +3732,6 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
* running task
*/
if (dl_prio(prio)) {
@@ -363,7 +363,7 @@ index c35bf6bc1009..2b084e067ec5 100644
if (!dl_prio(p->normal_prio) ||
(pi_task && dl_entity_preempt(&pi_task->dl, &p->dl))) {
p->dl.dl_boosted = 1;
-@@ -3733,6 +3769,11 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
+@@ -3732,6 +3768,11 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
balance_callback(rq);
preempt_enable();
}
@@ -375,7 +375,7 @@ index c35bf6bc1009..2b084e067ec5 100644
#endif
void set_user_nice(struct task_struct *p, long nice)
-@@ -3977,10 +4018,9 @@ static void __setscheduler(struct rq *rq, struct task_struct *p,
+@@ -3976,10 +4017,9 @@ static void __setscheduler(struct rq *rq, struct task_struct *p,
* Keep a potential priority boosting if called from
* sched_setscheduler().
*/
@@ -388,7 +388,7 @@ index c35bf6bc1009..2b084e067ec5 100644
if (dl_prio(p->prio))
p->sched_class = &dl_sched_class;
-@@ -4267,7 +4307,7 @@ static int __sched_setscheduler(struct task_struct *p,
+@@ -4266,7 +4306,7 @@ static int __sched_setscheduler(struct task_struct *p,
* the runqueue. This will be done when the task deboost
* itself.
*/
diff --git a/debian/patches/features/all/rt/0023-sched-tracing-Update-trace_sched_pi_setprio.patch b/debian/patches/features/all/rt/0023-sched-tracing-Update-trace_sched_pi_setprio.patch
index 2c4b442..f00f1fb 100644
--- a/debian/patches/features/all/rt/0023-sched-tracing-Update-trace_sched_pi_setprio.patch
+++ b/debian/patches/features/all/rt/0023-sched-tracing-Update-trace_sched_pi_setprio.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Thu, 23 Mar 2017 15:56:12 +0100
-Subject: [PATCH 023/337] sched,tracing: Update trace_sched_pi_setprio()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=43efee95fd0f655118b34cc230b388e054a1d19f
+Subject: [PATCH 023/351] sched,tracing: Update trace_sched_pi_setprio()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=67be1dae30921f1e62a92d6c32b44079ea1816ba
Upstream commit b91473ff6e979c0028f02f90e40c844959c736d8
@@ -99,10 +99,10 @@ index 9b90c57517a9..516ae88cddf4 100644
TP_printk("comm=%s pid=%d oldprio=%d newprio=%d",
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 2b084e067ec5..42f27d3e307f 100644
+index 3d2bcd9d4c88..3564d9d41495 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3709,7 +3709,7 @@ void rt_mutex_setprio(struct task_struct *p, struct task_struct *pi_task)
+@@ -3708,7 +3708,7 @@ void rt_mutex_setprio(struct task_struct *p, struct task_struct *pi_task)
goto out_unlock;
}
diff --git a/debian/patches/features/all/rt/0024-rtmutex-Fix-PI-chain-order-integrity.patch b/debian/patches/features/all/rt/0024-rtmutex-Fix-PI-chain-order-integrity.patch
index ee034f5..98c0673 100644
--- a/debian/patches/features/all/rt/0024-rtmutex-Fix-PI-chain-order-integrity.patch
+++ b/debian/patches/features/all/rt/0024-rtmutex-Fix-PI-chain-order-integrity.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Thu, 23 Mar 2017 15:56:13 +0100
-Subject: [PATCH 024/337] rtmutex: Fix PI chain order integrity
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=84e992e56fcb0a0384bffe6cc2b0dfebe856acb8
+Subject: [PATCH 024/351] rtmutex: Fix PI chain order integrity
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8770059f31de05c53bfe90167719f2dd8d59f32b
Upstream commit e0aad5b44ff5d28ac1d6ae70cdf84ca228e889dc
diff --git a/debian/patches/features/all/rt/0025-rtmutex-Fix-more-prio-comparisons.patch b/debian/patches/features/all/rt/0025-rtmutex-Fix-more-prio-comparisons.patch
index bc056d5..4ee0e22 100644
--- a/debian/patches/features/all/rt/0025-rtmutex-Fix-more-prio-comparisons.patch
+++ b/debian/patches/features/all/rt/0025-rtmutex-Fix-more-prio-comparisons.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Thu, 23 Mar 2017 15:56:14 +0100
-Subject: [PATCH 025/337] rtmutex: Fix more prio comparisons
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cf9353dd3b4f201da03f7b376f13b38d0a9c1573
+Subject: [PATCH 025/351] rtmutex: Fix more prio comparisons
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=84c387d8aeb4b28ccb9cb722c100af29b9664924
Upstream commit 19830e55247cddb3f46f1bf60b8e245593491bea
diff --git a/debian/patches/features/all/rt/0026-rtmutex-Plug-preempt-count-leak-in-rt_mutex_futex_un.patch b/debian/patches/features/all/rt/0026-rtmutex-Plug-preempt-count-leak-in-rt_mutex_futex_un.patch
index 3cadcf1..4830f34 100644
--- a/debian/patches/features/all/rt/0026-rtmutex-Plug-preempt-count-leak-in-rt_mutex_futex_un.patch
+++ b/debian/patches/features/all/rt/0026-rtmutex-Plug-preempt-count-leak-in-rt_mutex_futex_un.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <efault at gmx.de>
Date: Wed, 5 Apr 2017 10:08:27 +0200
-Subject: [PATCH 026/337] rtmutex: Plug preempt count leak in
+Subject: [PATCH 026/351] rtmutex: Plug preempt count leak in
rt_mutex_futex_unlock()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c9c77745f4bb19fb8529387ffafbc4c64676d1c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=beba9a5fa91b3ff3a9850f6e868ee7c5899eaeba
Upstream commit def34eaae5ce04b324e48e1bfac873091d945213
diff --git a/debian/patches/features/all/rt/0027-futex-Avoid-freeing-an-active-timer.patch b/debian/patches/features/all/rt/0027-futex-Avoid-freeing-an-active-timer.patch
index eb52775..17264c9 100644
--- a/debian/patches/features/all/rt/0027-futex-Avoid-freeing-an-active-timer.patch
+++ b/debian/patches/features/all/rt/0027-futex-Avoid-freeing-an-active-timer.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 10 Apr 2017 18:03:36 +0200
-Subject: [PATCH 027/337] futex: Avoid freeing an active timer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5fbb627cf9d5e65aab28543edfcb090333e97e4a
+Subject: [PATCH 027/351] futex: Avoid freeing an active timer
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c3e8a46724a7f0f23f4c52713ca509a4fc4c2b0
Upstream commit 97181f9bd57405b879403763284537e27d46963d
diff --git a/debian/patches/features/all/rt/0028-futex-Fix-small-and-harmless-looking-inconsistencies.patch b/debian/patches/features/all/rt/0028-futex-Fix-small-and-harmless-looking-inconsistencies.patch
index f9347ba..42c48fc 100644
--- a/debian/patches/features/all/rt/0028-futex-Fix-small-and-harmless-looking-inconsistencies.patch
+++ b/debian/patches/features/all/rt/0028-futex-Fix-small-and-harmless-looking-inconsistencies.patch
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Fri, 7 Apr 2017 09:04:07 +0200
-Subject: [PATCH 028/337] futex: Fix small (and harmless looking)
+Subject: [PATCH 028/351] futex: Fix small (and harmless looking)
inconsistencies
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fafa0fab38adf2b5386f31f53848c99eb056d3f4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=baac99b199c4118aad1e551106d453dcb14130d3
Upstream commit 94ffac5d847cfd790bb37b7cef1cad803743985e
diff --git a/debian/patches/features/all/rt/0029-futex-Clarify-mark_wake_futex-memory-barrier-usage.patch b/debian/patches/features/all/rt/0029-futex-Clarify-mark_wake_futex-memory-barrier-usage.patch
index 1d9cc46..844ebb2 100644
--- a/debian/patches/features/all/rt/0029-futex-Clarify-mark_wake_futex-memory-barrier-usage.patch
+++ b/debian/patches/features/all/rt/0029-futex-Clarify-mark_wake_futex-memory-barrier-usage.patch
@@ -1,7 +1,7 @@
From: "Darren Hart (VMware)" <dvhart at infradead.org>
Date: Fri, 14 Apr 2017 15:31:38 -0700
-Subject: [PATCH 029/337] futex: Clarify mark_wake_futex memory barrier usage
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f2ab970b2dd1a8e841d0de7433efcb6d4705daf8
+Subject: [PATCH 029/351] futex: Clarify mark_wake_futex memory barrier usage
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d6c37ef7b89b99e1f6e72c8537fc4f0f8cfbee4f
Upstream commit 38fcd06e9b7f6855db1f3ebac5e18b8fdb467ffd
diff --git a/debian/patches/features/all/rt/0030-MAINTAINERS-Add-FUTEX-SUBSYSTEM.patch b/debian/patches/features/all/rt/0030-MAINTAINERS-Add-FUTEX-SUBSYSTEM.patch
index 3ed7c34..5082cca 100644
--- a/debian/patches/features/all/rt/0030-MAINTAINERS-Add-FUTEX-SUBSYSTEM.patch
+++ b/debian/patches/features/all/rt/0030-MAINTAINERS-Add-FUTEX-SUBSYSTEM.patch
@@ -1,7 +1,7 @@
From: "Darren Hart (VMware)" <dvhart at infradead.org>
Date: Fri, 14 Apr 2017 15:46:08 -0700
-Subject: [PATCH 030/337] MAINTAINERS: Add FUTEX SUBSYSTEM
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=666f24d3609c61f3df0dbbe16630f0301263ed85
+Subject: [PATCH 030/351] MAINTAINERS: Add FUTEX SUBSYSTEM
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3aeda864925cc002b1febd1d1064a78c73fadeb1
Upstream commit 59cd42c29618c45cd3c56da43402b14f611888dd
diff --git a/debian/patches/features/all/rt/0031-futex-rt_mutex-Fix-rt_mutex_cleanup_proxy_lock.patch b/debian/patches/features/all/rt/0031-futex-rt_mutex-Fix-rt_mutex_cleanup_proxy_lock.patch
index 857a93b..d326360 100644
--- a/debian/patches/features/all/rt/0031-futex-rt_mutex-Fix-rt_mutex_cleanup_proxy_lock.patch
+++ b/debian/patches/features/all/rt/0031-futex-rt_mutex-Fix-rt_mutex_cleanup_proxy_lock.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Mon, 22 May 2017 13:04:50 -0700
-Subject: [PATCH 031/337] futex,rt_mutex: Fix rt_mutex_cleanup_proxy_lock()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fa4c208a508cee31b2bc19ce9e36dc8d5f586156
+Subject: [PATCH 031/351] futex,rt_mutex: Fix rt_mutex_cleanup_proxy_lock()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f87410719a641ad0542e9a763367d699e65f0ea1
Markus reported that the glibc/nptl/tst-robustpi8 test was failing after
commit:
diff --git a/debian/patches/features/all/rt/0032-arm-at91-do-not-disable-enable-clocks-in-a-row.patch b/debian/patches/features/all/rt/0032-arm-at91-do-not-disable-enable-clocks-in-a-row.patch
index f1e0635..d577e4e 100644
--- a/debian/patches/features/all/rt/0032-arm-at91-do-not-disable-enable-clocks-in-a-row.patch
+++ b/debian/patches/features/all/rt/0032-arm-at91-do-not-disable-enable-clocks-in-a-row.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 9 Mar 2016 10:51:06 +0100
-Subject: [PATCH 032/337] 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=2b1cb148597b29aa26167e72e6474d9b26164ae1
+Subject: [PATCH 032/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=0a6405300a8c2842ce6ce11a5f6ccd70bbe63971
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/features/all/rt/0033-ARM-smp-Move-clear_tasks_mm_cpumask-call-to-__cpu_di.patch b/debian/patches/features/all/rt/0033-ARM-smp-Move-clear_tasks_mm_cpumask-call-to-__cpu_di.patch
index 5d6d8b7..fa2943d 100644
--- a/debian/patches/features/all/rt/0033-ARM-smp-Move-clear_tasks_mm_cpumask-call-to-__cpu_di.patch
+++ b/debian/patches/features/all/rt/0033-ARM-smp-Move-clear_tasks_mm_cpumask-call-to-__cpu_di.patch
@@ -1,8 +1,8 @@
From: Grygorii Strashko <grygorii.strashko at ti.com>
Date: Fri, 11 Sep 2015 21:21:23 +0300
-Subject: [PATCH 033/337] ARM: smp: Move clear_tasks_mm_cpumask() call to
+Subject: [PATCH 033/351] ARM: smp: Move clear_tasks_mm_cpumask() call to
__cpu_die()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6edb8479b99b8a35bacb6203d1abc02dba3ed29b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ed07eee05411303964f1520227324d192a81f6f
When running with the RT-kernel (4.1.5-rt5) on TI OMAP dra7-evm and trying
to do Suspend to RAM, the following backtrace occurs:
diff --git a/debian/patches/features/all/rt/0034-rtmutex-Handle-non-enqueued-waiters-gracefully.patch b/debian/patches/features/all/rt/0034-rtmutex-Handle-non-enqueued-waiters-gracefully.patch
index eb99c21..7f52de0 100644
--- a/debian/patches/features/all/rt/0034-rtmutex-Handle-non-enqueued-waiters-gracefully.patch
+++ b/debian/patches/features/all/rt/0034-rtmutex-Handle-non-enqueued-waiters-gracefully.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 6 Nov 2015 18:51:03 +0100
-Subject: [PATCH 034/337] rtmutex: Handle non enqueued waiters gracefully
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c0e0ab7d9c03b9515e70ef646077acc94f291ff
+Subject: [PATCH 034/351] rtmutex: Handle non enqueued waiters gracefully
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3d00b0372ac47d78e8b4d8269a0e5de6bf66b857
Yimin debugged that in case of a PI wakeup in progress when
rt_mutex_start_proxy_lock() calls task_blocks_on_rt_mutex() the latter
diff --git a/debian/patches/features/all/rt/0035-fs-dcache-include-wait.h.patch b/debian/patches/features/all/rt/0035-fs-dcache-include-wait.h.patch
index f50306d..114b90f 100644
--- a/debian/patches/features/all/rt/0035-fs-dcache-include-wait.h.patch
+++ b/debian/patches/features/all/rt/0035-fs-dcache-include-wait.h.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 14 Sep 2016 11:55:23 +0200
-Subject: [PATCH 035/337] fs/dcache: include wait.h
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c6194c45376bce60a87516da71d7825d011946d
+Subject: [PATCH 035/351] fs/dcache: include wait.h
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37fd69dff5c92937d063acda3f22b1a9a1124091
Since commit d9171b934526 ("parallel lookups machinery, part 4 (and
last)") dcache.h is using but does not include wait.h. It works as long
diff --git a/debian/patches/features/all/rt/0036-rbtree-include-rcu.h-because-we-use-it.patch b/debian/patches/features/all/rt/0036-rbtree-include-rcu.h-because-we-use-it.patch
index b8600d8..f259d0a 100644
--- a/debian/patches/features/all/rt/0036-rbtree-include-rcu.h-because-we-use-it.patch
+++ b/debian/patches/features/all/rt/0036-rbtree-include-rcu.h-because-we-use-it.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 14 Sep 2016 11:52:17 +0200
-Subject: [PATCH 036/337] rbtree: include rcu.h because we use it
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bddfe70b04481df0dbd47f8589a3ef60071939a5
+Subject: [PATCH 036/351] rbtree: include rcu.h because we use it
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=826b7dee269c5a66531442a5c92a0bc791c7811f
Since commit c1adf20052d8 ("Introduce rb_replace_node_rcu()")
rbtree_augmented.h uses RCU related data structures but does not include
diff --git a/debian/patches/features/all/rt/0037-fs-dcache-init-in_lookup_hashtable.patch b/debian/patches/features/all/rt/0037-fs-dcache-init-in_lookup_hashtable.patch
index e780d33..c960371 100644
--- a/debian/patches/features/all/rt/0037-fs-dcache-init-in_lookup_hashtable.patch
+++ b/debian/patches/features/all/rt/0037-fs-dcache-init-in_lookup_hashtable.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 14 Sep 2016 17:57:03 +0200
-Subject: [PATCH 037/337] fs/dcache: init in_lookup_hashtable
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=338445d751a368d6ccb79a310491c12469fcf61b
+Subject: [PATCH 037/351] fs/dcache: init in_lookup_hashtable
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1e4ae2502cf7681822e1965edb6f9b17dea7ffb3
in_lookup_hashtable was introduced in commit 94bdd655caba ("parallel
lookups machinery, part 3") and never initialized but since it is in
diff --git a/debian/patches/features/all/rt/0038-iommu-iova-don-t-disable-preempt-around-this_cpu_ptr.patch b/debian/patches/features/all/rt/0038-iommu-iova-don-t-disable-preempt-around-this_cpu_ptr.patch
index a141927..2c072d4 100644
--- a/debian/patches/features/all/rt/0038-iommu-iova-don-t-disable-preempt-around-this_cpu_ptr.patch
+++ b/debian/patches/features/all/rt/0038-iommu-iova-don-t-disable-preempt-around-this_cpu_ptr.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 15 Sep 2016 16:58:19 +0200
-Subject: [PATCH 038/337] iommu/iova: don't disable preempt around
+Subject: [PATCH 038/351] iommu/iova: don't disable preempt around
this_cpu_ptr()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d08d5d682448e8fa67703cc671e31302725c3232
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2505300446589b3ec3a440ca82ee26ecf980e2eb
Commit 583248e6620a ("iommu/iova: Disable preemption around use of
this_cpu_ptr()") disables preemption while accessing a per-CPU variable.
diff --git a/debian/patches/features/all/rt/0039-iommu-vt-d-don-t-disable-preemption-while-accessing-.patch b/debian/patches/features/all/rt/0039-iommu-vt-d-don-t-disable-preemption-while-accessing-.patch
index 8cb6ce6..d757300 100644
--- a/debian/patches/features/all/rt/0039-iommu-vt-d-don-t-disable-preemption-while-accessing-.patch
+++ b/debian/patches/features/all/rt/0039-iommu-vt-d-don-t-disable-preemption-while-accessing-.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 15 Sep 2016 17:16:44 +0200
-Subject: [PATCH 039/337] iommu/vt-d: don't disable preemption while accessing
+Subject: [PATCH 039/351] iommu/vt-d: don't disable preemption while accessing
deferred_flush()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa9c79b627431da14233c092b0898d6098081e92
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=90a456774613a5941fd409c3329508a642321c4d
get_cpu() disables preemption and returns the current CPU number. The
CPU number is later only used once while retrieving the address of the
diff --git a/debian/patches/features/all/rt/0040-x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch b/debian/patches/features/all/rt/0040-x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch
index 36b45e1..c671970 100644
--- a/debian/patches/features/all/rt/0040-x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch
+++ b/debian/patches/features/all/rt/0040-x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 21 Oct 2016 10:29:11 +0200
-Subject: [PATCH 040/337] x86/apic: get rid of "warning: 'acpi_ioapic_lock'
+Subject: [PATCH 040/351] x86/apic: get rid of "warning: 'acpi_ioapic_lock'
defined but not used"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=acac772febf234c9cddd722716dd401c3eaf7349
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3886e1cbe1a6cd2dfe31681a9bc925586854f284
kbuild test robot reported this against the -RT tree:
diff --git a/debian/patches/features/all/rt/0041-rxrpc-remove-unused-static-variables.patch b/debian/patches/features/all/rt/0041-rxrpc-remove-unused-static-variables.patch
index ee2fc08..bac12fe 100644
--- a/debian/patches/features/all/rt/0041-rxrpc-remove-unused-static-variables.patch
+++ b/debian/patches/features/all/rt/0041-rxrpc-remove-unused-static-variables.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 21 Oct 2016 10:54:50 +0200
-Subject: [PATCH 041/337] rxrpc: remove unused static variables
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=12910640f149c89cae64235354050216a7df2140
+Subject: [PATCH 041/351] rxrpc: remove unused static variables
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ffdfebe719f38dc1982db4cdb550406bf05f512
The rxrpc_security_methods and rxrpc_security_sem user has been removed
in 648af7fca159 ("rxrpc: Absorb the rxkad security module"). This was
diff --git a/debian/patches/features/all/rt/0042-rcu-update-make-RCU_EXPEDITE_BOOT-default.patch b/debian/patches/features/all/rt/0042-rcu-update-make-RCU_EXPEDITE_BOOT-default.patch
index 91133ee..70f0721 100644
--- a/debian/patches/features/all/rt/0042-rcu-update-make-RCU_EXPEDITE_BOOT-default.patch
+++ b/debian/patches/features/all/rt/0042-rcu-update-make-RCU_EXPEDITE_BOOT-default.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 2 Nov 2016 16:45:58 +0100
-Subject: [PATCH 042/337] rcu: update: make RCU_EXPEDITE_BOOT default
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=975387b0d1ab20a74859be6c647d2d30f24dec0c
+Subject: [PATCH 042/351] rcu: update: make RCU_EXPEDITE_BOOT default
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f03d9b6a71a20c71edac387b0b973a0123c244e2
RCU_EXPEDITE_BOOT should speed up the boot process by enforcing
synchronize_rcu_expedited() instead of synchronize_rcu() during the boot
diff --git a/debian/patches/features/all/rt/0043-locking-percpu-rwsem-use-swait-for-the-wating-writer.patch b/debian/patches/features/all/rt/0043-locking-percpu-rwsem-use-swait-for-the-wating-writer.patch
index 0443250..0b36cd9 100644
--- a/debian/patches/features/all/rt/0043-locking-percpu-rwsem-use-swait-for-the-wating-writer.patch
+++ b/debian/patches/features/all/rt/0043-locking-percpu-rwsem-use-swait-for-the-wating-writer.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 21 Nov 2016 19:26:15 +0100
-Subject: [PATCH 043/337] locking/percpu-rwsem: use swait for the wating writer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb8ae27f7f630fcdb3091e0f62a24d26a6edfa37
+Subject: [PATCH 043/351] locking/percpu-rwsem: use swait for the wating writer
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fc9e4b77ab0e1244be8dedc215634177c25d9e20
Use struct swait_queue_head instead of wait_queue_head_t for the waiting
writer. The swait implementation is smaller and lightweight compared to
diff --git a/debian/patches/features/all/rt/0044-pinctrl-qcom-Use-raw-spinlock-variants.patch b/debian/patches/features/all/rt/0044-pinctrl-qcom-Use-raw-spinlock-variants.patch
index 5373502..aa56343 100644
--- a/debian/patches/features/all/rt/0044-pinctrl-qcom-Use-raw-spinlock-variants.patch
+++ b/debian/patches/features/all/rt/0044-pinctrl-qcom-Use-raw-spinlock-variants.patch
@@ -1,7 +1,7 @@
From: Julia Cartwright <julia at ni.com>
Date: Fri, 20 Jan 2017 10:13:47 -0600
-Subject: [PATCH 044/337] pinctrl: qcom: Use raw spinlock variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9e474b7b62efda3964471dad92be16122d3d1feb
+Subject: [PATCH 044/351] pinctrl: qcom: Use raw spinlock variants
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ed099dca885712f15644b23011876d9d852e3ee0
The MSM pinctrl driver currently implements an irq_chip for handling
GPIO interrupts; due to how irq_chip handling is done, it's necessary
diff --git a/debian/patches/features/all/rt/0045-x86-mm-cpa-avoid-wbinvd-for-PREEMPT.patch b/debian/patches/features/all/rt/0045-x86-mm-cpa-avoid-wbinvd-for-PREEMPT.patch
index fa5db3a..25e1aa1 100644
--- a/debian/patches/features/all/rt/0045-x86-mm-cpa-avoid-wbinvd-for-PREEMPT.patch
+++ b/debian/patches/features/all/rt/0045-x86-mm-cpa-avoid-wbinvd-for-PREEMPT.patch
@@ -1,7 +1,7 @@
From: John Ogness <john.ogness at linutronix.de>
Date: Mon, 30 Jan 2017 09:41:21 +0100
-Subject: [PATCH 045/337] x86/mm/cpa: avoid wbinvd() for PREEMPT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f3f154702f6c4caa3291872b97a6ad3821bea9f3
+Subject: [PATCH 045/351] x86/mm/cpa: avoid wbinvd() for PREEMPT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=96f3c0ac4e63ab47e624f91efbd1e527139d9bf5
Although wbinvd() is faster than flushing many individual pages, it
blocks the memory bus for "long" periods of time (>100us), thus
diff --git a/debian/patches/features/all/rt/0046-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch b/debian/patches/features/all/rt/0046-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
index c49fdf8..c737e4e 100644
--- a/debian/patches/features/all/rt/0046-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
+++ b/debian/patches/features/all/rt/0046-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 28 Oct 2016 23:05:11 +0200
-Subject: [PATCH 046/337] NFSv4: replace seqcount_t with a seqlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=db5141050badd9a9a3e6af59886fbc212161c4e0
+Subject: [PATCH 046/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=5e3b43218398de95a9bc822cd041679daceedcce
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,10 +57,10 @@ index 1452177c822d..f43b01d54c59 100644
};
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index a53b8e0c896a..da0a483c5442 100644
+index 4638654e26f3..5dd6fd555c72 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
-@@ -2695,7 +2695,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
+@@ -2691,7 +2691,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
unsigned int seq;
int ret;
@@ -69,7 +69,7 @@ index a53b8e0c896a..da0a483c5442 100644
ret = _nfs4_proc_open(opendata);
if (ret != 0)
-@@ -2733,7 +2733,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
+@@ -2729,7 +2729,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
if (d_inode(dentry) == state->inode) {
nfs_inode_attach_open_context(ctx);
@@ -79,7 +79,7 @@ index a53b8e0c896a..da0a483c5442 100644
}
out:
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
-index 92671914067f..44038480c88c 100644
+index 71deeae6eefd..4be6999299dc 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -488,7 +488,7 @@ nfs4_alloc_state_owner(struct nfs_server *server,
diff --git a/debian/patches/features/all/rt/0047-sparc64-use-generic-rwsem-spinlocks-rt.patch b/debian/patches/features/all/rt/0047-sparc64-use-generic-rwsem-spinlocks-rt.patch
index 06796bd..0532c52 100644
--- a/debian/patches/features/all/rt/0047-sparc64-use-generic-rwsem-spinlocks-rt.patch
+++ b/debian/patches/features/all/rt/0047-sparc64-use-generic-rwsem-spinlocks-rt.patch
@@ -1,7 +1,7 @@
From: Allen Pais <allen.pais at oracle.com>
Date: Fri, 13 Dec 2013 09:44:41 +0530
-Subject: [PATCH 047/337] sparc64: use generic rwsem spinlocks rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=64c756deaaaef25395510adc337c50853a99dc28
+Subject: [PATCH 047/351] sparc64: use generic rwsem spinlocks rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7fc5062dfa375522032ac4c0fa667b1957e02fda
Signed-off-by: Allen Pais <allen.pais at oracle.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
@@ -10,7 +10,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
-index b27e48e25841..2965bf76d070 100644
+index 8b4152f3a764..c5cca159692a 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -194,12 +194,10 @@ config NR_CPUS
diff --git a/debian/patches/features/all/rt/0048-kernel-SRCU-provide-a-static-initializer.patch b/debian/patches/features/all/rt/0048-kernel-SRCU-provide-a-static-initializer.patch
index 21af495..db88c5b 100644
--- a/debian/patches/features/all/rt/0048-kernel-SRCU-provide-a-static-initializer.patch
+++ b/debian/patches/features/all/rt/0048-kernel-SRCU-provide-a-static-initializer.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Tue, 19 Mar 2013 14:44:30 +0100
-Subject: [PATCH 048/337] kernel/SRCU: provide a static initializer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eaea2adce2e1e5aabe2e14bee6f6c381a7adaa19
+Subject: [PATCH 048/351] kernel/SRCU: provide a static initializer
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1459d6a2d49fb3742b9bcc17261b899eccfbc3d1
There are macros for static initializer for the three out of four
possible notifier types, that are:
diff --git a/debian/patches/features/all/rt/0049-block-Shorten-interrupt-disabled-regions.patch b/debian/patches/features/all/rt/0049-block-Shorten-interrupt-disabled-regions.patch
index 3b9603a..5d990e0 100644
--- a/debian/patches/features/all/rt/0049-block-Shorten-interrupt-disabled-regions.patch
+++ b/debian/patches/features/all/rt/0049-block-Shorten-interrupt-disabled-regions.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 22 Jun 2011 19:47:02 +0200
-Subject: [PATCH 049/337] block: Shorten interrupt disabled regions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d3306564ca7d31ce891b487d01ea8e77b935ca80
+Subject: [PATCH 049/351] block: Shorten interrupt disabled regions
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1de9473b395f25e52edf59678c19663be43cab6d
Moving the blk_sched_flush_plug() call out of the interrupt/preempt
disabled region in the scheduler allows us to replace
@@ -47,10 +47,10 @@ Link: http://lkml.kernel.org/r/20110622174919.025446432@linutronix.de
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
-index 95379fc83805..a6bbeb48495b 100644
+index b1c76aa73492..6ca17282da87 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
-@@ -3200,7 +3200,7 @@ static void queue_unplugged(struct request_queue *q, unsigned int depth,
+@@ -3202,7 +3202,7 @@ static void queue_unplugged(struct request_queue *q, unsigned int depth,
blk_run_queue_async(q);
else
__blk_run_queue(q);
@@ -59,7 +59,7 @@ index 95379fc83805..a6bbeb48495b 100644
}
static void flush_plug_callbacks(struct blk_plug *plug, bool from_schedule)
-@@ -3248,7 +3248,6 @@ EXPORT_SYMBOL(blk_check_plugged);
+@@ -3250,7 +3250,6 @@ EXPORT_SYMBOL(blk_check_plugged);
void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule)
{
struct request_queue *q;
@@ -67,7 +67,7 @@ index 95379fc83805..a6bbeb48495b 100644
struct request *rq;
LIST_HEAD(list);
unsigned int depth;
-@@ -3268,11 +3267,6 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule)
+@@ -3270,11 +3269,6 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule)
q = NULL;
depth = 0;
@@ -79,7 +79,7 @@ index 95379fc83805..a6bbeb48495b 100644
while (!list_empty(&list)) {
rq = list_entry_rq(list.next);
list_del_init(&rq->queuelist);
-@@ -3285,7 +3279,7 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule)
+@@ -3287,7 +3281,7 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule)
queue_unplugged(q, depth, from_schedule);
q = rq->q;
depth = 0;
@@ -88,7 +88,7 @@ index 95379fc83805..a6bbeb48495b 100644
}
/*
-@@ -3312,8 +3306,6 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule)
+@@ -3314,8 +3308,6 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule)
*/
if (q)
queue_unplugged(q, depth, from_schedule);
diff --git a/debian/patches/features/all/rt/0050-timekeeping-Split-jiffies-seqlock.patch b/debian/patches/features/all/rt/0050-timekeeping-Split-jiffies-seqlock.patch
index 1eb4264..fd02af3 100644
--- a/debian/patches/features/all/rt/0050-timekeeping-Split-jiffies-seqlock.patch
+++ b/debian/patches/features/all/rt/0050-timekeeping-Split-jiffies-seqlock.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 14 Feb 2013 22:36:59 +0100
-Subject: [PATCH 050/337] timekeeping: Split jiffies seqlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d01fc515e88cc6373019507929bbe2097edc58f
+Subject: [PATCH 050/351] timekeeping: Split jiffies seqlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5d9f75e05968432957536e96baa0f772e72275e5
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/features/all/rt/0051-tracing-Account-for-preempt-off-in-preempt_schedule.patch b/debian/patches/features/all/rt/0051-tracing-Account-for-preempt-off-in-preempt_schedule.patch
index 0cb4e15..bb4c3b5 100644
--- a/debian/patches/features/all/rt/0051-tracing-Account-for-preempt-off-in-preempt_schedule.patch
+++ b/debian/patches/features/all/rt/0051-tracing-Account-for-preempt-off-in-preempt_schedule.patch
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Thu, 29 Sep 2011 12:24:30 -0500
-Subject: [PATCH 051/337] tracing: Account for preempt off in
+Subject: [PATCH 051/351] tracing: Account for preempt off in
preempt_schedule()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e4b525e75300bad6232c6a165a322ddd1d04d4c4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fd5e2d81ba167b783b55116e3fecb6761ed5189a
The preempt_schedule() uses the preempt_disable_notrace() version
because it can cause infinite recursion by the function tracer as
@@ -28,10 +28,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 9 insertions(+)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 42f27d3e307f..4ffc51451f16 100644
+index 3564d9d41495..1127df1b3463 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3584,7 +3584,16 @@ asmlinkage __visible void __sched notrace preempt_schedule_notrace(void)
+@@ -3583,7 +3583,16 @@ asmlinkage __visible void __sched notrace preempt_schedule_notrace(void)
* an infinite recursion.
*/
prev_ctx = exception_enter();
diff --git a/debian/patches/features/all/rt/0052-signal-Revert-ptrace-preempt-magic.patch b/debian/patches/features/all/rt/0052-signal-Revert-ptrace-preempt-magic.patch
index b0ddd9e..6c9f263 100644
--- a/debian/patches/features/all/rt/0052-signal-Revert-ptrace-preempt-magic.patch
+++ b/debian/patches/features/all/rt/0052-signal-Revert-ptrace-preempt-magic.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 21 Sep 2011 19:57:12 +0200
-Subject: [PATCH 052/337] signal: Revert ptrace preempt magic
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ca358f3da8879957d2d6fccbab12b9c78de1217
+Subject: [PATCH 052/351] signal: Revert ptrace preempt magic
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=82522e9d2bbf34b06951a79e6a7970629f1060d9
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/features/all/rt/0053-arm-Convert-arm-boot_lock-to-raw.patch b/debian/patches/features/all/rt/0053-arm-Convert-arm-boot_lock-to-raw.patch
index 59fa77a..f90beb1 100644
--- a/debian/patches/features/all/rt/0053-arm-Convert-arm-boot_lock-to-raw.patch
+++ b/debian/patches/features/all/rt/0053-arm-Convert-arm-boot_lock-to-raw.patch
@@ -1,7 +1,7 @@
From: Frank Rowand <frank.rowand at am.sony.com>
Date: Mon, 19 Sep 2011 14:51:14 -0700
-Subject: [PATCH 053/337] arm: Convert arm boot_lock to raw
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d6d46ef1b1125a8e1444f4bd4fbd4fac05679bd6
+Subject: [PATCH 053/351] arm: Convert arm boot_lock to raw
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7d1db4e07b30edf58e9c2d286a70442520247d67
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/features/all/rt/0054-arm-kprobe-replace-patch_lock-to-raw-lock.patch b/debian/patches/features/all/rt/0054-arm-kprobe-replace-patch_lock-to-raw-lock.patch
index f1b7d81..ebb86ad 100644
--- a/debian/patches/features/all/rt/0054-arm-kprobe-replace-patch_lock-to-raw-lock.patch
+++ b/debian/patches/features/all/rt/0054-arm-kprobe-replace-patch_lock-to-raw-lock.patch
@@ -1,7 +1,7 @@
From: Yang Shi <yang.shi at linaro.org>
Date: Thu, 10 Nov 2016 16:17:55 -0800
-Subject: [PATCH 054/337] arm: kprobe: replace patch_lock to raw lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=295137f586043416fd7915e96dbdc79a8d05f508
+Subject: [PATCH 054/351] arm: kprobe: replace patch_lock to raw lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=07ac21427cac8d41caa735da3cc4b75f6ec4d911
When running kprobe on -rt kernel, the below bug is caught:
diff --git a/debian/patches/features/all/rt/0055-posix-timers-Prevent-broadcast-signals.patch b/debian/patches/features/all/rt/0055-posix-timers-Prevent-broadcast-signals.patch
index d261673..a11624a 100644
--- a/debian/patches/features/all/rt/0055-posix-timers-Prevent-broadcast-signals.patch
+++ b/debian/patches/features/all/rt/0055-posix-timers-Prevent-broadcast-signals.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 08:29:20 -0500
-Subject: [PATCH 055/337] posix-timers: Prevent broadcast signals
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9277888ef4e387f9bfed9808071b58d13ded6367
+Subject: [PATCH 055/351] posix-timers: Prevent broadcast signals
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8f85936d5dd673f54627519805222e318b90824
Posix timers should not send broadcast signals and kernel only
signals. Prevent it.
diff --git a/debian/patches/features/all/rt/0056-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/debian/patches/features/all/rt/0056-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
index ff26bef..cbd74c2 100644
--- a/debian/patches/features/all/rt/0056-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
+++ b/debian/patches/features/all/rt/0056-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 08:44:56 -0500
-Subject: [PATCH 056/337] 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=bc31cada414edcf451e5daac8233c0ea89b9fe8d
+Subject: [PATCH 056/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=388213f48f691826b2cf39500500f2194112e117
To avoid allocation allow rt tasks to cache one sigqueue struct in
task struct.
diff --git a/debian/patches/features/all/rt/0057-drivers-random-Reduce-preempt-disabled-region.patch b/debian/patches/features/all/rt/0057-drivers-random-Reduce-preempt-disabled-region.patch
index 875cd3d..aa0d1e3 100644
--- a/debian/patches/features/all/rt/0057-drivers-random-Reduce-preempt-disabled-region.patch
+++ b/debian/patches/features/all/rt/0057-drivers-random-Reduce-preempt-disabled-region.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:30 -0500
-Subject: [PATCH 057/337] drivers: random: Reduce preempt disabled region
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1739e39ce01247c62430a3b42555bdde74c75b66
+Subject: [PATCH 057/351] drivers: random: Reduce preempt disabled region
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9e1a191ad328b7bbe03477327ef51ea5dde63a47
No need to keep preemption disabled across the whole function.
diff --git a/debian/patches/features/all/rt/0058-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch b/debian/patches/features/all/rt/0058-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch
index b6bc436..6d6d3a2 100644
--- a/debian/patches/features/all/rt/0058-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch
+++ b/debian/patches/features/all/rt/0058-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch
@@ -1,11 +1,11 @@
From: Benedikt Spranger <b.spranger at linutronix.de>
Date: Sat, 6 Mar 2010 17:47:10 +0100
-Subject: [PATCH 058/337] ARM: AT91: PIT: Remove irq handler when clock event
+Subject: [PATCH 058/351] ARM: AT91: PIT: Remove irq handler when clock event
is unused
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=8c9b8285c7b6f4ae00a15ab40a2c54a9f256669f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=991068b0e5a09a9091c7560b17d87996dc326580
Setup and remove the interrupt handler in clock event mode selection.
This avoids calling the (shared) interrupt handler when the device is
diff --git a/debian/patches/features/all/rt/0059-clockevents-drivers-timer-atmel-pit-fix-double-free_.patch b/debian/patches/features/all/rt/0059-clockevents-drivers-timer-atmel-pit-fix-double-free_.patch
index f0a7e6e..b3d56c2 100644
--- a/debian/patches/features/all/rt/0059-clockevents-drivers-timer-atmel-pit-fix-double-free_.patch
+++ b/debian/patches/features/all/rt/0059-clockevents-drivers-timer-atmel-pit-fix-double-free_.patch
@@ -1,8 +1,8 @@
From: Alexandre Belloni <alexandre.belloni at free-electrons.com>
Date: Thu, 17 Mar 2016 21:09:43 +0100
-Subject: [PATCH 059/337] clockevents/drivers/timer-atmel-pit: fix double
+Subject: [PATCH 059/351] clockevents/drivers/timer-atmel-pit: fix double
free_irq
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fcf2b69102672796b45cdde92964f985d066721d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1e00aa18cb34c894b9fe6044cb336eb2d53420d2
clockevents_exchange_device() changes the state from detached to shutdown
and so at that point the IRQ has not yet been requested.
diff --git a/debian/patches/features/all/rt/0060-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch b/debian/patches/features/all/rt/0060-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
index d5152cc..c0d1dbd 100644
--- a/debian/patches/features/all/rt/0060-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
+++ b/debian/patches/features/all/rt/0060-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
@@ -1,11 +1,11 @@
From: Benedikt Spranger <b.spranger at linutronix.de>
Date: Mon, 8 Mar 2010 18:57:04 +0100
-Subject: [PATCH 060/337] clocksource: TCLIB: Allow higher clock rates for
+Subject: [PATCH 060/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=83d2a7be9f43ab8b3bec02c9cbdc1ff6effb66d9
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6e30432541321eb935687a583cc5d1d5c286cbe1
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/features/all/rt/0061-drivers-net-Use-disable_irq_nosync-in-8139too.patch b/debian/patches/features/all/rt/0061-drivers-net-Use-disable_irq_nosync-in-8139too.patch
index 5aed0fe..c94cb58 100644
--- a/debian/patches/features/all/rt/0061-drivers-net-Use-disable_irq_nosync-in-8139too.patch
+++ b/debian/patches/features/all/rt/0061-drivers-net-Use-disable_irq_nosync-in-8139too.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:24 -0500
-Subject: [PATCH 061/337] drivers/net: Use disable_irq_nosync() in 8139too
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=689be964757b9b98af3184ea0eed9720427bcbaf
+Subject: [PATCH 061/351] drivers/net: Use disable_irq_nosync() in 8139too
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=418c4480e46866f88575da9a8d41c5872c3a56a7
Use disable_irq_nosync() instead of disable_irq() as this might be
called in atomic context with netpoll.
diff --git a/debian/patches/features/all/rt/0062-suspend-Prevent-might-sleep-splats.patch b/debian/patches/features/all/rt/0062-suspend-Prevent-might-sleep-splats.patch
index ccdf8bc..0b9db7a 100644
--- a/debian/patches/features/all/rt/0062-suspend-Prevent-might-sleep-splats.patch
+++ b/debian/patches/features/all/rt/0062-suspend-Prevent-might-sleep-splats.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 15 Jul 2010 10:29:00 +0200
-Subject: [PATCH 062/337] suspend: Prevent might sleep splats
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a2a4c169de7b08b0c8a4bdf2345bc2542112f405
+Subject: [PATCH 062/351] suspend: Prevent might sleep splats
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bf76b25a4327c9b26be80b3e8c4537863fd18419
timekeeping suspend/resume calls read_persistant_clock() which takes
rtc_lock. That results in might sleep warnings because at that point
diff --git a/debian/patches/features/all/rt/0063-net-flip-lock-dep-thingy.patch.patch b/debian/patches/features/all/rt/0063-net-flip-lock-dep-thingy.patch.patch
index 50cf145..c5053b9 100644
--- a/debian/patches/features/all/rt/0063-net-flip-lock-dep-thingy.patch.patch
+++ b/debian/patches/features/all/rt/0063-net-flip-lock-dep-thingy.patch.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 28 Jun 2011 10:59:58 +0200
-Subject: [PATCH 063/337] net-flip-lock-dep-thingy.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0419c26b776c387f8e4acc0963e815979b417c3
+Subject: [PATCH 063/351] net-flip-lock-dep-thingy.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2cbe390fe34a5e1d9c2250e78bcf9e47cf448127
=======================================================
[ INFO: possible circular locking dependency detected ]
@@ -95,10 +95,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/net/core/sock.c b/net/core/sock.c
-index 231c38d91855..d8e0aed19903 100644
+index e3b60460dc9c..8d15848c3a22 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -2494,12 +2494,11 @@ void lock_sock_nested(struct sock *sk, int subclass)
+@@ -2493,12 +2493,11 @@ void lock_sock_nested(struct sock *sk, int subclass)
if (sk->sk_lock.owned)
__lock_sock(sk);
sk->sk_lock.owned = 1;
diff --git a/debian/patches/features/all/rt/0064-net-sched-Use-msleep-instead-of-yield.patch b/debian/patches/features/all/rt/0064-net-sched-Use-msleep-instead-of-yield.patch
index 13d9e67..5c67dbc 100644
--- a/debian/patches/features/all/rt/0064-net-sched-Use-msleep-instead-of-yield.patch
+++ b/debian/patches/features/all/rt/0064-net-sched-Use-msleep-instead-of-yield.patch
@@ -1,7 +1,7 @@
From: Marc Kleine-Budde <mkl at pengutronix.de>
Date: Wed, 5 Mar 2014 00:49:47 +0100
-Subject: [PATCH 064/337] net: sched: Use msleep() instead of yield()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e9869f09d537b778340d2a5af735b60faafbf00c
+Subject: [PATCH 064/351] net: sched: Use msleep() instead of yield()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=68115907f14e74848bd167b2cab60b1a56cb7bf8
On PREEMPT_RT enabled systems the interrupt handler run as threads at prio 50
(by default). If a high priority userspace process tries to shut down a busy
diff --git a/debian/patches/features/all/rt/0065-x86-ioapic-Do-not-unmask-io_apic-when-interrupt-is-i.patch b/debian/patches/features/all/rt/0065-x86-ioapic-Do-not-unmask-io_apic-when-interrupt-is-i.patch
index 6e98989..94a8c24 100644
--- a/debian/patches/features/all/rt/0065-x86-ioapic-Do-not-unmask-io_apic-when-interrupt-is-i.patch
+++ b/debian/patches/features/all/rt/0065-x86-ioapic-Do-not-unmask-io_apic-when-interrupt-is-i.patch
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:27 -0500
-Subject: [PATCH 065/337] x86/ioapic: Do not unmask io_apic when interrupt is
+Subject: [PATCH 065/351] x86/ioapic: Do not unmask io_apic when interrupt is
in progress
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=463f07c14af63348c56c645acd0dc07147ba30d4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3ddf4bb3e1af0ec2528f0f46703c6eeee4766e6
With threaded interrupts we might see an interrupt in progress on
migration. Do not unmask it when this is the case.
diff --git a/debian/patches/features/all/rt/0066-latencyhist-disable-jump-labels.patch b/debian/patches/features/all/rt/0066-latencyhist-disable-jump-labels.patch
index e08126d..2a05669 100644
--- a/debian/patches/features/all/rt/0066-latencyhist-disable-jump-labels.patch
+++ b/debian/patches/features/all/rt/0066-latencyhist-disable-jump-labels.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 4 Feb 2016 14:08:06 +0100
-Subject: [PATCH 066/337] latencyhist: disable jump-labels
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b537768edcd9aaa49378bee617a68a1f6559c036
+Subject: [PATCH 066/351] latencyhist: disable jump-labels
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0a5eba0a9fb981e0f647364103c904aed8a88196
Atleast on X86 we die a recursive death
diff --git a/debian/patches/features/all/rt/0067-tracing-Add-latency-histograms.patch b/debian/patches/features/all/rt/0067-tracing-Add-latency-histograms.patch
index eac98c4..74bf928 100644
--- a/debian/patches/features/all/rt/0067-tracing-Add-latency-histograms.patch
+++ b/debian/patches/features/all/rt/0067-tracing-Add-latency-histograms.patch
@@ -1,7 +1,7 @@
From: Carsten Emde <C.Emde at osadl.org>
Date: Tue, 19 Jul 2011 14:03:41 +0100
-Subject: [PATCH 067/337] tracing: Add latency histograms
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=48f7286700aac0aed98778cc06c7feea0704176e
+Subject: [PATCH 067/351] tracing: Add latency histograms
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e9c168233d00b655d17d7760da31720066ee3182
This patch provides a recording mechanism to store data of potential
sources of system latencies. The recordings separately determine the
diff --git a/debian/patches/features/all/rt/0068-latency_hist-Update-sched_wakeup-probe.patch b/debian/patches/features/all/rt/0068-latency_hist-Update-sched_wakeup-probe.patch
index f0bc16a..b503d61 100644
--- a/debian/patches/features/all/rt/0068-latency_hist-Update-sched_wakeup-probe.patch
+++ b/debian/patches/features/all/rt/0068-latency_hist-Update-sched_wakeup-probe.patch
@@ -1,7 +1,7 @@
From: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
Date: Sun, 25 Oct 2015 18:06:05 -0400
-Subject: [PATCH 068/337] latency_hist: Update sched_wakeup probe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c42b4d24ee3b6ab7c01ae6a76f51a4f82f61da32
+Subject: [PATCH 068/351] latency_hist: Update sched_wakeup probe
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ae3de88378490def3998be9f3405217e93e156d9
"sched: Introduce the 'trace_sched_waking' tracepoint" introduces a
prototype change for the sched_wakeup probe: the "success" argument is
diff --git a/debian/patches/features/all/rt/0069-trace-latency-hist-Consider-new-argument-when-probin.patch b/debian/patches/features/all/rt/0069-trace-latency-hist-Consider-new-argument-when-probin.patch
index 407332e..d642f94 100644
--- a/debian/patches/features/all/rt/0069-trace-latency-hist-Consider-new-argument-when-probin.patch
+++ b/debian/patches/features/all/rt/0069-trace-latency-hist-Consider-new-argument-when-probin.patch
@@ -1,8 +1,8 @@
From: Carsten Emde <C.Emde at osadl.org>
Date: Tue, 5 Jan 2016 10:21:59 +0100
-Subject: [PATCH 069/337] trace/latency-hist: Consider new argument when
+Subject: [PATCH 069/351] trace/latency-hist: Consider new argument when
probing the sched_switch tracer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dc4150f7ff5d40c0d1b68a3e16c2d890fbc4b94c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=12b95063aae837307578d057db5062834a0c4160
The sched_switch tracer has got a new argument. Fix the latency tracer
accordingly.
diff --git a/debian/patches/features/all/rt/0070-trace-Use-rcuidle-version-for-preemptoff_hist-trace-.patch b/debian/patches/features/all/rt/0070-trace-Use-rcuidle-version-for-preemptoff_hist-trace-.patch
index af607ee..a32e5bd 100644
--- a/debian/patches/features/all/rt/0070-trace-Use-rcuidle-version-for-preemptoff_hist-trace-.patch
+++ b/debian/patches/features/all/rt/0070-trace-Use-rcuidle-version-for-preemptoff_hist-trace-.patch
@@ -1,8 +1,8 @@
From: Yang Shi <yang.shi at windriver.com>
Date: Tue, 23 Feb 2016 13:23:23 -0800
-Subject: [PATCH 070/337] trace: Use rcuidle version for preemptoff_hist trace
+Subject: [PATCH 070/351] trace: Use rcuidle version for preemptoff_hist trace
point
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a2da22f07a2197f0be29e645e7ede952cd915a5e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=832a6a567b9f28ec0b6bce686efd173b54a67d71
When running -rt kernel with both PREEMPT_OFF_HIST and LOCKDEP enabled,
the below error is reported:
diff --git a/debian/patches/features/all/rt/0071-printk-Add-a-printk-kill-switch.patch b/debian/patches/features/all/rt/0071-printk-Add-a-printk-kill-switch.patch
index f7473d2..50d9c13 100644
--- a/debian/patches/features/all/rt/0071-printk-Add-a-printk-kill-switch.patch
+++ b/debian/patches/features/all/rt/0071-printk-Add-a-printk-kill-switch.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 22 Jul 2011 17:58:40 +0200
-Subject: [PATCH 071/337] printk: Add a printk kill switch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4003d892230b12daff8b6d57ff36eb78616765a8
+Subject: [PATCH 071/351] printk: Add a printk kill switch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb42b8132781f916ba3765c0dd984834b1be214b
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/features/all/rt/0072-printk-Add-force_early_printk-boot-param-to-help-wit.patch b/debian/patches/features/all/rt/0072-printk-Add-force_early_printk-boot-param-to-help-wit.patch
index afa4a32..2104a1d 100644
--- a/debian/patches/features/all/rt/0072-printk-Add-force_early_printk-boot-param-to-help-wit.patch
+++ b/debian/patches/features/all/rt/0072-printk-Add-force_early_printk-boot-param-to-help-wit.patch
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Fri, 2 Sep 2011 14:41:29 +0200
-Subject: [PATCH 072/337] printk: Add "force_early_printk" boot param to help
+Subject: [PATCH 072/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=1b888094cfcf047fe2cfd07f7267e18c33226fa7
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f532e7fdf5b0482cf667c733b89c2e04d399b2db
Gives me an option to screw printk and actually see what the machine
says.
diff --git a/debian/patches/features/all/rt/0073-rt-Provide-PREEMPT_RT_BASE-config-switch.patch b/debian/patches/features/all/rt/0073-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
index fdfd23a..96fe16d 100644
--- a/debian/patches/features/all/rt/0073-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
+++ b/debian/patches/features/all/rt/0073-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 17 Jun 2011 12:39:57 +0200
-Subject: [PATCH 073/337] rt: Provide PREEMPT_RT_BASE config switch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f75557c55906f18a61ed840532af49a371173610
+Subject: [PATCH 073/351] rt: Provide PREEMPT_RT_BASE config switch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=136764a6b0c06ea52406b3b403e48e0726f849e8
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/features/all/rt/0074-kconfig-Disable-config-options-which-are-not-RT-comp.patch b/debian/patches/features/all/rt/0074-kconfig-Disable-config-options-which-are-not-RT-comp.patch
index 0a223c2..82f002c 100644
--- a/debian/patches/features/all/rt/0074-kconfig-Disable-config-options-which-are-not-RT-comp.patch
+++ b/debian/patches/features/all/rt/0074-kconfig-Disable-config-options-which-are-not-RT-comp.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 24 Jul 2011 12:11:43 +0200
-Subject: [PATCH 074/337] kconfig: Disable config options which are not RT
+Subject: [PATCH 074/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=1bff56dd94ebbc1cbc934a4be22458c6a906f490
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=acc440ddad06b17641ee57c3a349b1b497c28a10
Disable stuff which is known to have issues on RT
diff --git a/debian/patches/features/all/rt/0075-kconfig-Add-PREEMPT_RT_FULL.patch b/debian/patches/features/all/rt/0075-kconfig-Add-PREEMPT_RT_FULL.patch
index be96188..a43cba9 100644
--- a/debian/patches/features/all/rt/0075-kconfig-Add-PREEMPT_RT_FULL.patch
+++ b/debian/patches/features/all/rt/0075-kconfig-Add-PREEMPT_RT_FULL.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 29 Jun 2011 14:58:57 +0200
-Subject: [PATCH 075/337] kconfig: Add PREEMPT_RT_FULL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=97efc2cadf6f0e46a5b811ad413f0fbf5ce709ea
+Subject: [PATCH 075/351] kconfig: Add PREEMPT_RT_FULL
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=75c3fcfc93316550772dec76cd1c66ed69a48082
Introduce the final symbol for PREEMPT_RT_FULL.
diff --git a/debian/patches/features/all/rt/0076-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch b/debian/patches/features/all/rt/0076-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
index 7d11ae3..b38619a 100644
--- a/debian/patches/features/all/rt/0076-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
+++ b/debian/patches/features/all/rt/0076-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:58 -0500
-Subject: [PATCH 076/337] bug: BUG_ON/WARN_ON variants dependend on RT/!RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0d87d4d50850db0fddcc1ea8dc0afcaef898eaa
+Subject: [PATCH 076/351] bug: BUG_ON/WARN_ON variants dependend on RT/!RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7b17e83e1bdcd7c425d3d778454b874daf361329
Introduce RT/NON-RT WARN/BUG statements to avoid ifdefs in the code.
diff --git a/debian/patches/features/all/rt/0077-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch b/debian/patches/features/all/rt/0077-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch
index a80b015..38b916b 100644
--- a/debian/patches/features/all/rt/0077-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch
+++ b/debian/patches/features/all/rt/0077-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 27 Feb 2016 10:22:23 +0100
-Subject: [PATCH 077/337] iommu/amd: Use WARN_ON_NORT in __attach_device()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1e1318d3a25e7eeea04c172cafd350720281487d
+Subject: [PATCH 077/351] iommu/amd: Use WARN_ON_NORT in __attach_device()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=54a3b493d78e1057cfbe5d4d9a6efcfb1671de99
RT does not disable interrupts here, but the protection is still
correct. Fixup the WARN_ON so it won't yell on RT.
diff --git a/debian/patches/features/all/rt/0078-rt-local_irq_-variants-depending-on-RT-RT.patch b/debian/patches/features/all/rt/0078-rt-local_irq_-variants-depending-on-RT-RT.patch
index 4a936c4..9e77132 100644
--- a/debian/patches/features/all/rt/0078-rt-local_irq_-variants-depending-on-RT-RT.patch
+++ b/debian/patches/features/all/rt/0078-rt-local_irq_-variants-depending-on-RT-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 21 Jul 2009 22:34:14 +0200
-Subject: [PATCH 078/337] rt: local_irq_* variants depending on RT/!RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=08748566cff8a35752b8bab6d22d3901584481b1
+Subject: [PATCH 078/351] rt: local_irq_* variants depending on RT/!RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f35dd408f32933f8e5d4474f60e15768203e3a65
Add local_irq_*_(no)rt variant which are mainly used to break
interrupt disabled sections on PREEMPT_RT or to explicitely disable
diff --git a/debian/patches/features/all/rt/0079-preempt-Provide-preempt_-_-no-rt-variants.patch b/debian/patches/features/all/rt/0079-preempt-Provide-preempt_-_-no-rt-variants.patch
index 9980461..c6eca0f 100644
--- a/debian/patches/features/all/rt/0079-preempt-Provide-preempt_-_-no-rt-variants.patch
+++ b/debian/patches/features/all/rt/0079-preempt-Provide-preempt_-_-no-rt-variants.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 24 Jul 2009 12:38:56 +0200
-Subject: [PATCH 079/337] preempt: Provide preempt_*_(no)rt variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3d605ce4737b4a3e84845d05038ce1fb5b786f20
+Subject: [PATCH 079/351] preempt: Provide preempt_*_(no)rt variants
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=67c1f4cc5dc33d4e541749b65c67080c545afd97
RT needs a few preempt_disable/enable points which are not necessary
otherwise. Implement variants to avoid #ifdeffery.
@@ -12,10 +12,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index 75e4e30677f1..a15f948667e9 100644
+index 7eeceac52dea..26e0eaa16492 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
-@@ -154,7 +154,11 @@ do { \
+@@ -159,7 +159,11 @@ do { \
preempt_count_dec(); \
} while (0)
@@ -28,7 +28,7 @@ index 75e4e30677f1..a15f948667e9 100644
#define preemptible() (preempt_count() == 0 && !irqs_disabled())
-@@ -248,6 +252,18 @@ do { \
+@@ -253,6 +257,18 @@ do { \
set_preempt_need_resched(); \
} while (0)
diff --git a/debian/patches/features/all/rt/0080-Intrduce-migrate_disable-cpu_light.patch b/debian/patches/features/all/rt/0080-Intrduce-migrate_disable-cpu_light.patch
index 252f6d7..075955b 100644
--- a/debian/patches/features/all/rt/0080-Intrduce-migrate_disable-cpu_light.patch
+++ b/debian/patches/features/all/rt/0080-Intrduce-migrate_disable-cpu_light.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 17 Jun 2011 15:42:38 +0200
-Subject: [PATCH 080/337] Intrduce migrate_disable() + cpu_light()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=94b2d46c5d51d6ab8a63977925a49a0df5fa3c6b
+Subject: [PATCH 080/351] Intrduce migrate_disable() + cpu_light()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5fbfdf1fe816d093bdfa864b3d0cf298c1d167a
Introduce migrate_disable(). The task can't be pushed to another CPU but can
be preempted.
@@ -55,10 +55,10 @@ index e571128ad99a..dcfcdd563f69 100644
/* Stop CPUs going up and down. */
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index a15f948667e9..57c7731bfe04 100644
+index 26e0eaa16492..64f1488df183 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
-@@ -257,11 +257,20 @@ do { \
+@@ -262,11 +262,20 @@ do { \
# define preempt_enable_rt() preempt_enable()
# define preempt_disable_nort() barrier()
# define preempt_enable_nort() barrier()
@@ -158,10 +158,10 @@ index 68123c1fe549..891c533724f5 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 4ffc51451f16..409b8b292ebc 100644
+index 1127df1b3463..fe82f403abe4 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -1100,6 +1100,11 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
+@@ -1099,6 +1099,11 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
lockdep_assert_held(&p->pi_lock);
@@ -173,7 +173,7 @@ index 4ffc51451f16..409b8b292ebc 100644
queued = task_on_rq_queued(p);
running = task_current(rq, p);
-@@ -1180,7 +1185,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
+@@ -1179,7 +1184,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
}
/* Can the task run on the task's current CPU? If so, we're done */
@@ -182,7 +182,7 @@ index 4ffc51451f16..409b8b292ebc 100644
goto out;
dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask);
-@@ -3253,6 +3258,69 @@ static inline void schedule_debug(struct task_struct *prev)
+@@ -3252,6 +3257,69 @@ static inline void schedule_debug(struct task_struct *prev)
schedstat_inc(this_rq()->sched_count);
}
diff --git a/debian/patches/features/all/rt/0081-futex-workaround-migrate_disable-enable-in-different.patch b/debian/patches/features/all/rt/0081-futex-workaround-migrate_disable-enable-in-different.patch
index da4b59f..fe6b084 100644
--- a/debian/patches/features/all/rt/0081-futex-workaround-migrate_disable-enable-in-different.patch
+++ b/debian/patches/features/all/rt/0081-futex-workaround-migrate_disable-enable-in-different.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 8 Mar 2017 14:23:35 +0100
-Subject: [PATCH 081/337] futex: workaround migrate_disable/enable in different
+Subject: [PATCH 081/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=871e79e50f83884342bbfcf8b39d1365a8e6a7e4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9d97e28743fc9103c38fb0433ed9bce69954b0cd
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/features/all/rt/0082-rt-Add-local-irq-locks.patch b/debian/patches/features/all/rt/0082-rt-Add-local-irq-locks.patch
index 3fa2c6c..5cc55f4 100644
--- a/debian/patches/features/all/rt/0082-rt-Add-local-irq-locks.patch
+++ b/debian/patches/features/all/rt/0082-rt-Add-local-irq-locks.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 20 Jun 2011 09:03:47 +0200
-Subject: [PATCH 082/337] rt: Add local irq locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fa54d722401971d5f3b52006c16f6b98bf200f1f
+Subject: [PATCH 082/351] rt: Add local irq locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4ae0c4e496540dd51576cbb9f2c1e1089b0ff76
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/features/all/rt/0083-locallock-add-local_lock_on.patch b/debian/patches/features/all/rt/0083-locallock-add-local_lock_on.patch
index ad3309f..db2a6f3 100644
--- a/debian/patches/features/all/rt/0083-locallock-add-local_lock_on.patch
+++ b/debian/patches/features/all/rt/0083-locallock-add-local_lock_on.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 27 May 2016 15:11:51 +0200
-Subject: [PATCH 083/337] locallock: add local_lock_on()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3e7498a80eee418647f058e4e7430ea968559998
+Subject: [PATCH 083/351] locallock: add local_lock_on()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7fb19106d14de5132a4599c80cde80784c1c2c18
Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
---
diff --git a/debian/patches/features/all/rt/0084-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch b/debian/patches/features/all/rt/0084-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
index f787c68..9cb0d42 100644
--- a/debian/patches/features/all/rt/0084-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
+++ b/debian/patches/features/all/rt/0084-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
@@ -1,8 +1,8 @@
From: Steven Rostedt <srostedt at redhat.com>
Date: Fri, 3 Jul 2009 08:44:29 -0500
-Subject: [PATCH 084/337] ata: Do not disable interrupts in ide code for
+Subject: [PATCH 084/351] ata: Do not disable interrupts in ide code for
preempt-rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=08eddc120c6d066deabeed3048c1398735a95e9a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=783300bb506dac22bdbfab1637069c905c21092e
Use the local_irq_*_nort variants.
diff --git a/debian/patches/features/all/rt/0085-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch b/debian/patches/features/all/rt/0085-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
index b495de6..3d454ec 100644
--- a/debian/patches/features/all/rt/0085-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
+++ b/debian/patches/features/all/rt/0085-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:16 -0500
-Subject: [PATCH 085/337] ide: Do not disable interrupts for PREEMPT-RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6294215ccd5a1e1b66517680eeaac9b4c5f767c7
+Subject: [PATCH 085/351] ide: Do not disable interrupts for PREEMPT-RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ea21ba2e2894d22963a029e3b5ad77b311b3063
Use the local_irq_*_nort variants.
diff --git a/debian/patches/features/all/rt/0086-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch b/debian/patches/features/all/rt/0086-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
index 021750f..deb7dba 100644
--- a/debian/patches/features/all/rt/0086-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
+++ b/debian/patches/features/all/rt/0086-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
@@ -1,8 +1,8 @@
From: Sven-Thorsten Dietrich <sdietrich at novell.com>
Date: Fri, 3 Jul 2009 08:30:35 -0500
-Subject: [PATCH 086/337] infiniband: Mellanox IB driver patch use _nort()
+Subject: [PATCH 086/351] infiniband: Mellanox IB driver patch use _nort()
primitives
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1d175dd060ba1ff7ee021f83f5b440f0ac139524
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=47d0b4af8a5292ca23ee32855a2030d07dda4ebe
Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT
Kernel.
diff --git a/debian/patches/features/all/rt/0087-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch b/debian/patches/features/all/rt/0087-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
index cb0c12f..3916f47 100644
--- a/debian/patches/features/all/rt/0087-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
+++ b/debian/patches/features/all/rt/0087-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:16 -0500
-Subject: [PATCH 087/337] input: gameport: Do not disable interrupts on
+Subject: [PATCH 087/351] input: gameport: Do not disable interrupts on
PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7fbdfa440bdb90a23299565a805e80b9aab26fb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b6a6d5428517edaa56f52b05720d900bed50524e
Use the _nort() primitives.
diff --git a/debian/patches/features/all/rt/0088-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch b/debian/patches/features/all/rt/0088-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
index 1520936..2a99a85 100644
--- a/debian/patches/features/all/rt/0088-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
+++ b/debian/patches/features/all/rt/0088-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 21 Jul 2009 23:06:05 +0200
-Subject: [PATCH 088/337] core: Do not disable interrupts on RT in
+Subject: [PATCH 088/351] core: Do not disable interrupts on RT in
kernel/users.c
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa9b4d2d24aa7d5bf68cb01530ef90d6e0db0fa4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6cdd61495f3fbbe55e7fdecb828048e86b20f33c
Use the local_irq_*_nort variants to reduce latencies in RT. The code
is serialized by the locks. No need to disable interrupts.
diff --git a/debian/patches/features/all/rt/0089-usb-Use-_nort-in-giveback-function.patch b/debian/patches/features/all/rt/0089-usb-Use-_nort-in-giveback-function.patch
index b9420fe..32c3763 100644
--- a/debian/patches/features/all/rt/0089-usb-Use-_nort-in-giveback-function.patch
+++ b/debian/patches/features/all/rt/0089-usb-Use-_nort-in-giveback-function.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 8 Nov 2013 17:34:54 +0100
-Subject: [PATCH 089/337] usb: Use _nort in giveback function
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=deae60b8d39a82b7020e38fc3729c9482196fff2
+Subject: [PATCH 089/351] usb: Use _nort in giveback function
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd0fe588371fa58fa0eb9839af53488e121d0c0c
Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet
context") I see
@@ -43,7 +43,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
-index 882fc4e08284..14ab6046e440 100644
+index fcc7aa248ce7..fb2c38d875f9 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1764,9 +1764,9 @@ static void __usb_hcd_giveback_urb(struct urb *urb)
diff --git a/debian/patches/features/all/rt/0090-mm-scatterlist-Do-not-disable-irqs-on-RT.patch b/debian/patches/features/all/rt/0090-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
index 37fcc03..49a68a1 100644
--- a/debian/patches/features/all/rt/0090-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
+++ b/debian/patches/features/all/rt/0090-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 08:44:34 -0500
-Subject: [PATCH 090/337] mm/scatterlist: Do not disable irqs on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=52265ce81d04e4d02172a3d3df93401f83608f45
+Subject: [PATCH 090/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=7023840c8d6b360a05a9e3705ec459b0c69215e7
The local_irq_save() is not only used to get things done "fast" but
also to ensure that in case of SG_MITER_ATOMIC we are in "atomic"
diff --git a/debian/patches/features/all/rt/0091-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch b/debian/patches/features/all/rt/0091-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch
index b639179..b9b924d 100644
--- a/debian/patches/features/all/rt/0091-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch
+++ b/debian/patches/features/all/rt/0091-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 29 Jan 2015 17:19:44 +0100
-Subject: [PATCH 091/337] mm/workingset: Do not protect workingset_shadow_nodes
+Subject: [PATCH 091/351] mm/workingset: Do not protect workingset_shadow_nodes
with irq off
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f51fcc2e58905a6a37f21f24a1bc83781132f86f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1e542fbd29e6be6ce8c78793a2472fe24174cb0e
workingset_shadow_nodes is protected by local_irq_disable(). Some users
use spin_lock_irq().
diff --git a/debian/patches/features/all/rt/0092-signal-Make-__lock_task_sighand-RT-aware.patch b/debian/patches/features/all/rt/0092-signal-Make-__lock_task_sighand-RT-aware.patch
index c82f14f..cebac6d 100644
--- a/debian/patches/features/all/rt/0092-signal-Make-__lock_task_sighand-RT-aware.patch
+++ b/debian/patches/features/all/rt/0092-signal-Make-__lock_task_sighand-RT-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 22 Jul 2011 08:07:08 +0200
-Subject: [PATCH 092/337] signal: Make __lock_task_sighand() RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=93daf40302460b94cb4a913b133eb419c301a004
+Subject: [PATCH 092/351] signal: Make __lock_task_sighand() RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=99fa9ac3e90ac5049fb761f2a34f0d56e5c1c664
local_irq_save() + spin_lock(&sighand->siglock) does not work on
-RT. Use the nort variants.
diff --git a/debian/patches/features/all/rt/0093-signal-x86-Delay-calling-signals-in-atomic.patch b/debian/patches/features/all/rt/0093-signal-x86-Delay-calling-signals-in-atomic.patch
index be01f54..a9508f5 100644
--- a/debian/patches/features/all/rt/0093-signal-x86-Delay-calling-signals-in-atomic.patch
+++ b/debian/patches/features/all/rt/0093-signal-x86-Delay-calling-signals-in-atomic.patch
@@ -1,7 +1,7 @@
From: Oleg Nesterov <oleg at redhat.com>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 093/337] signal/x86: Delay calling signals in atomic
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d18d119a615ac1aaf0259dc54a5a2cb1904e8bf
+Subject: [PATCH 093/351] signal/x86: Delay calling signals in atomic
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=adce01ee88f6f51a2d835765cb4d7ac7f70d022f
On x86_64 we must disable preemption before we enable interrupts
for stack faults, int3 and debugging, because the current task is using
diff --git a/debian/patches/features/all/rt/0094-x86-signal-delay-calling-signals-on-32bit.patch b/debian/patches/features/all/rt/0094-x86-signal-delay-calling-signals-on-32bit.patch
index 18817ed..51411a0 100644
--- a/debian/patches/features/all/rt/0094-x86-signal-delay-calling-signals-on-32bit.patch
+++ b/debian/patches/features/all/rt/0094-x86-signal-delay-calling-signals-on-32bit.patch
@@ -1,7 +1,7 @@
From: Yang Shi <yang.shi at linaro.org>
Date: Thu, 10 Dec 2015 10:58:51 -0800
-Subject: [PATCH 094/337] x86/signal: delay calling signals on 32bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d8d3cc7b9e84d02da4d225bba5db6795b01c062d
+Subject: [PATCH 094/351] x86/signal: delay calling signals on 32bit
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=92b348ab58b893166bee6f03651c6a23395a7260
When running some ptrace single step tests on x86-32 machine, the below problem
is triggered:
diff --git a/debian/patches/features/all/rt/0095-net-wireless-Use-WARN_ON_NORT.patch b/debian/patches/features/all/rt/0095-net-wireless-Use-WARN_ON_NORT.patch
index 7e32b44..34114d7 100644
--- a/debian/patches/features/all/rt/0095-net-wireless-Use-WARN_ON_NORT.patch
+++ b/debian/patches/features/all/rt/0095-net-wireless-Use-WARN_ON_NORT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 21 Jul 2011 21:05:33 +0200
-Subject: [PATCH 095/337] net/wireless: Use WARN_ON_NORT()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e25dcba5060a8c281dd6f82d69b928b0e1359146
+Subject: [PATCH 095/351] net/wireless: Use WARN_ON_NORT()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ea2ea9ed0fda5d0892b8d0fc44f8cd1d0099d9e0
The softirq counter is meaningless on RT, so the check triggers a
false positive.
diff --git a/debian/patches/features/all/rt/0096-buffer_head-Replace-bh_uptodate_lock-for-rt.patch b/debian/patches/features/all/rt/0096-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
index 8167160..7f5c9ff 100644
--- a/debian/patches/features/all/rt/0096-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
+++ b/debian/patches/features/all/rt/0096-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 18 Mar 2011 09:18:52 +0100
-Subject: [PATCH 096/337] buffer_head: Replace bh_uptodate_lock for -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a4b3885cb183dbf6385e7bf8735a41a74f39601
+Subject: [PATCH 096/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=4be10b502cc41eeeabe4d2b52273fe10cafaef8c
Wrap the bit_spin_lock calls into a separate inline and add the RT
replacements with a real spinlock.
@@ -120,7 +120,7 @@ index fe251f187ff8..8bb79f5fda59 100644
/**
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
-index 447a915db25d..8fe1f6e59b87 100644
+index 4431ea2c8802..87c4ed37ee77 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -75,8 +75,42 @@ struct buffer_head {
diff --git a/debian/patches/features/all/rt/0097-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch b/debian/patches/features/all/rt/0097-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
index d64000a..203387b 100644
--- a/debian/patches/features/all/rt/0097-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
+++ b/debian/patches/features/all/rt/0097-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 18 Mar 2011 10:11:25 +0100
-Subject: [PATCH 097/337] fs: jbd/jbd2: Make state lock and journal head lock
+Subject: [PATCH 097/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=b07a8880b8b4b4ae0d63f10caaf150cfd1131728
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=343cafc95761b4ed3490ab1a4d9657cea3541e5f
bit_spin_locks break under RT.
@@ -18,7 +18,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
2 files changed, 32 insertions(+)
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
-index 8fe1f6e59b87..e187a3356345 100644
+index 87c4ed37ee77..0744157a97ca 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -77,6 +77,10 @@ struct buffer_head {
diff --git a/debian/patches/features/all/rt/0098-list_bl-Make-list-head-locking-RT-safe.patch b/debian/patches/features/all/rt/0098-list_bl-Make-list-head-locking-RT-safe.patch
index c45eba8..36fbcf9 100644
--- a/debian/patches/features/all/rt/0098-list_bl-Make-list-head-locking-RT-safe.patch
+++ b/debian/patches/features/all/rt/0098-list_bl-Make-list-head-locking-RT-safe.patch
@@ -1,7 +1,7 @@
From: Paul Gortmaker <paul.gortmaker at windriver.com>
Date: Fri, 21 Jun 2013 15:07:25 -0400
-Subject: [PATCH 098/337] list_bl: Make list head locking RT safe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dd8be96f2b2c69e05ae1e7ca7ed6e56a81941562
+Subject: [PATCH 098/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=7c9dcf1deaf8bbc254be286d30c11c3835c6411b
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/features/all/rt/0099-list_bl-fixup-bogus-lockdep-warning.patch b/debian/patches/features/all/rt/0099-list_bl-fixup-bogus-lockdep-warning.patch
index e395f00..4e65d20 100644
--- a/debian/patches/features/all/rt/0099-list_bl-fixup-bogus-lockdep-warning.patch
+++ b/debian/patches/features/all/rt/0099-list_bl-fixup-bogus-lockdep-warning.patch
@@ -1,7 +1,7 @@
From: Josh Cartwright <joshc at ni.com>
Date: Thu, 31 Mar 2016 00:04:25 -0500
-Subject: [PATCH 099/337] list_bl: fixup bogus lockdep warning
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0cf9b618dc95ace1e08d168553ccf9522dc4aea3
+Subject: [PATCH 099/351] list_bl: fixup bogus lockdep warning
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7a5551333822f3138fc742402f735c5dd9cca97
At first glance, the use of 'static inline' seems appropriate for
INIT_HLIST_BL_HEAD().
diff --git a/debian/patches/features/all/rt/0100-genirq-Disable-irqpoll-on-rt.patch b/debian/patches/features/all/rt/0100-genirq-Disable-irqpoll-on-rt.patch
index fc41526..f6bde48 100644
--- a/debian/patches/features/all/rt/0100-genirq-Disable-irqpoll-on-rt.patch
+++ b/debian/patches/features/all/rt/0100-genirq-Disable-irqpoll-on-rt.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:57 -0500
-Subject: [PATCH 100/337] genirq: Disable irqpoll on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f2082ec97607ea6e4c9da18a82fd3215390c82ca
+Subject: [PATCH 100/351] genirq: Disable irqpoll on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=457d9cc09aba1fb19f9ee0b9ca2373a3b3433e6d
Creates long latencies for no value
diff --git a/debian/patches/features/all/rt/0101-genirq-Force-interrupt-thread-on-RT.patch b/debian/patches/features/all/rt/0101-genirq-Force-interrupt-thread-on-RT.patch
index 55c2772..75b4f49 100644
--- a/debian/patches/features/all/rt/0101-genirq-Force-interrupt-thread-on-RT.patch
+++ b/debian/patches/features/all/rt/0101-genirq-Force-interrupt-thread-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 3 Apr 2011 11:57:29 +0200
-Subject: [PATCH 101/337] genirq: Force interrupt thread on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=75b63a148cb12672605cbc061af7db4107224266
+Subject: [PATCH 101/351] genirq: Force interrupt thread on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=da9e3cd9428c84cba6c6896b026b789cb1c9ae65
Force threaded_irqs and optimize the code (force_irqthreads) in regard
to this.
diff --git a/debian/patches/features/all/rt/0102-drivers-net-vortex-fix-locking-issues.patch b/debian/patches/features/all/rt/0102-drivers-net-vortex-fix-locking-issues.patch
index 98c642f..fab6fe6 100644
--- a/debian/patches/features/all/rt/0102-drivers-net-vortex-fix-locking-issues.patch
+++ b/debian/patches/features/all/rt/0102-drivers-net-vortex-fix-locking-issues.patch
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Fri, 3 Jul 2009 08:30:00 -0500
-Subject: [PATCH 102/337] drivers/net: vortex fix locking issues
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=05a8db9871e4045d26508d651259145a1077ab76
+Subject: [PATCH 102/351] drivers/net: vortex fix locking issues
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09ae2be6e4f2d047549beb8256d9725367038bc6
Argh, cut and paste wasn't enough...
diff --git a/debian/patches/features/all/rt/0103-mm-page_alloc-rt-friendly-per-cpu-pages.patch b/debian/patches/features/all/rt/0103-mm-page_alloc-rt-friendly-per-cpu-pages.patch
index abb6443..141e820 100644
--- a/debian/patches/features/all/rt/0103-mm-page_alloc-rt-friendly-per-cpu-pages.patch
+++ b/debian/patches/features/all/rt/0103-mm-page_alloc-rt-friendly-per-cpu-pages.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:37 -0500
-Subject: [PATCH 103/337] mm: page_alloc: rt-friendly per-cpu pages
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=08eb6e4641022c870c2f1789cb586a277d1f600c
+Subject: [PATCH 103/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=9711549a49c512d15e47fb0a499185f4b554b6c1
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 at linutronix.de>
1 file changed, 41 insertions(+), 16 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 7064aae8ded7..b08ace7d4d92 100644
+index fbc38888252b..cb3569830c46 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -61,6 +61,7 @@
@@ -47,7 +47,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
int page_group_by_mobility_disabled __read_mostly;
#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
-@@ -1255,10 +1268,10 @@ static void __free_pages_ok(struct page *page, unsigned int order)
+@@ -1264,10 +1277,10 @@ static void __free_pages_ok(struct page *page, unsigned int order)
return;
migratetype = get_pfnblock_migratetype(page, pfn);
@@ -60,7 +60,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
}
static void __init __free_pages_boot_core(struct page *page, unsigned int order)
-@@ -2275,14 +2288,14 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
+@@ -2284,14 +2297,14 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
unsigned long flags;
int to_drain, batch;
@@ -77,7 +77,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
}
#endif
-@@ -2299,7 +2312,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
+@@ -2308,7 +2321,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
struct per_cpu_pageset *pset;
struct per_cpu_pages *pcp;
@@ -86,7 +86,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
pset = per_cpu_ptr(zone->pageset, cpu);
pcp = &pset->pcp;
-@@ -2307,7 +2320,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
+@@ -2316,7 +2329,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
free_pcppages_bulk(zone, pcp->count, pcp);
pcp->count = 0;
}
@@ -95,7 +95,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
}
/*
-@@ -2393,8 +2406,17 @@ void drain_all_pages(struct zone *zone)
+@@ -2402,8 +2415,17 @@ void drain_all_pages(struct zone *zone)
else
cpumask_clear_cpu(cpu, &cpus_with_pcps);
}
@@ -113,7 +113,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
}
#ifdef CONFIG_HIBERNATION
-@@ -2454,7 +2476,7 @@ void free_hot_cold_page(struct page *page, bool cold)
+@@ -2463,7 +2485,7 @@ void free_hot_cold_page(struct page *page, bool cold)
migratetype = get_pfnblock_migratetype(page, pfn);
set_pcppage_migratetype(page, migratetype);
@@ -122,7 +122,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
__count_vm_event(PGFREE);
/*
-@@ -2485,7 +2507,7 @@ void free_hot_cold_page(struct page *page, bool cold)
+@@ -2494,7 +2516,7 @@ void free_hot_cold_page(struct page *page, bool cold)
}
out:
@@ -131,7 +131,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
}
/*
-@@ -2627,7 +2649,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
+@@ -2629,7 +2651,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
struct per_cpu_pages *pcp;
struct list_head *list;
@@ -140,7 +140,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
do {
pcp = &this_cpu_ptr(zone->pageset)->pcp;
list = &pcp->lists[migratetype];
-@@ -2654,7 +2676,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
+@@ -2656,7 +2678,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
* allocate greater than order-1 page units with __GFP_NOFAIL.
*/
WARN_ON_ONCE((gfp_flags & __GFP_NOFAIL) && (order > 1));
@@ -149,7 +149,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
do {
page = NULL;
-@@ -2666,22 +2688,24 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
+@@ -2668,22 +2690,24 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
if (!page)
page = __rmqueue(zone, order, migratetype);
} while (page && check_new_pages(page, order));
@@ -178,7 +178,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
return NULL;
}
-@@ -6585,6 +6609,7 @@ static int page_alloc_cpu_notify(struct notifier_block *self,
+@@ -6587,6 +6611,7 @@ static int page_alloc_cpu_notify(struct notifier_block *self,
void __init page_alloc_init(void)
{
hotcpu_notifier(page_alloc_cpu_notify, 0);
@@ -186,7 +186,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
}
/*
-@@ -7413,7 +7438,7 @@ void zone_pcp_reset(struct zone *zone)
+@@ -7422,7 +7447,7 @@ void zone_pcp_reset(struct zone *zone)
struct per_cpu_pageset *pset;
/* avoid races with drain_pages() */
@@ -195,7 +195,7 @@ index 7064aae8ded7..b08ace7d4d92 100644
if (zone->pageset != &boot_pageset) {
for_each_online_cpu(cpu) {
pset = per_cpu_ptr(zone->pageset, cpu);
-@@ -7422,7 +7447,7 @@ void zone_pcp_reset(struct zone *zone)
+@@ -7431,7 +7456,7 @@ void zone_pcp_reset(struct zone *zone)
free_percpu(zone->pageset);
zone->pageset = &boot_pageset;
}
diff --git a/debian/patches/features/all/rt/0104-mm-page_alloc-Reduce-lock-sections-further.patch b/debian/patches/features/all/rt/0104-mm-page_alloc-Reduce-lock-sections-further.patch
index 4d2067d..6cce1d2 100644
--- a/debian/patches/features/all/rt/0104-mm-page_alloc-Reduce-lock-sections-further.patch
+++ b/debian/patches/features/all/rt/0104-mm-page_alloc-Reduce-lock-sections-further.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Fri, 3 Jul 2009 08:44:37 -0500
-Subject: [PATCH 104/337] mm: page_alloc: Reduce lock sections further
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=33c10c99339a023e0bbdbf650eb8db43ee8302fd
+Subject: [PATCH 104/351] mm: page_alloc: Reduce lock sections further
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb8cd4d3a9bcf616fc4ec295e796e4cd02025ac1
Split out the pages which are to be freed into a separate list and
call free_pages_bulk() outside of the percpu page allocator locks.
@@ -13,10 +13,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 66 insertions(+), 28 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index b08ace7d4d92..a41ad6fe1cb2 100644
+index cb3569830c46..f06a57ee00b4 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -1096,7 +1096,7 @@ static bool bulkfree_pcp_prepare(struct page *page)
+@@ -1105,7 +1105,7 @@ static bool bulkfree_pcp_prepare(struct page *page)
#endif /* CONFIG_DEBUG_VM */
/*
@@ -25,7 +25,7 @@ index b08ace7d4d92..a41ad6fe1cb2 100644
* Assumes all pages on list are in same zone, and of same order.
* count is the number of pages to free.
*
-@@ -1107,19 +1107,58 @@ static bool bulkfree_pcp_prepare(struct page *page)
+@@ -1116,19 +1116,58 @@ static bool bulkfree_pcp_prepare(struct page *page)
* pinned" detection logic.
*/
static void free_pcppages_bulk(struct zone *zone, int count,
@@ -88,7 +88,7 @@ index b08ace7d4d92..a41ad6fe1cb2 100644
while (count) {
struct page *page;
struct list_head *list;
-@@ -1135,7 +1174,7 @@ static void free_pcppages_bulk(struct zone *zone, int count,
+@@ -1144,7 +1183,7 @@ static void free_pcppages_bulk(struct zone *zone, int count,
batch_free++;
if (++migratetype == MIGRATE_PCPTYPES)
migratetype = 0;
@@ -97,7 +97,7 @@ index b08ace7d4d92..a41ad6fe1cb2 100644
} while (list_empty(list));
/* This is the only non-empty list. Free them all. */
-@@ -1143,27 +1182,12 @@ static void free_pcppages_bulk(struct zone *zone, int count,
+@@ -1152,27 +1191,12 @@ static void free_pcppages_bulk(struct zone *zone, int count,
batch_free = count;
do {
@@ -126,7 +126,7 @@ index b08ace7d4d92..a41ad6fe1cb2 100644
}
static void free_one_page(struct zone *zone,
-@@ -1172,7 +1196,9 @@ static void free_one_page(struct zone *zone,
+@@ -1181,7 +1205,9 @@ static void free_one_page(struct zone *zone,
int migratetype)
{
unsigned long nr_scanned;
@@ -137,7 +137,7 @@ index b08ace7d4d92..a41ad6fe1cb2 100644
nr_scanned = node_page_state(zone->zone_pgdat, NR_PAGES_SCANNED);
if (nr_scanned)
__mod_node_page_state(zone->zone_pgdat, NR_PAGES_SCANNED, -nr_scanned);
-@@ -1182,7 +1208,7 @@ static void free_one_page(struct zone *zone,
+@@ -1191,7 +1217,7 @@ static void free_one_page(struct zone *zone,
migratetype = get_pfnblock_migratetype(page, pfn);
}
__free_one_page(page, pfn, zone, order, migratetype);
@@ -146,7 +146,7 @@ index b08ace7d4d92..a41ad6fe1cb2 100644
}
static void __meminit __init_single_page(struct page *page, unsigned long pfn,
-@@ -2286,16 +2312,18 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order,
+@@ -2295,16 +2321,18 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order,
void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
{
unsigned long flags;
@@ -166,7 +166,7 @@ index b08ace7d4d92..a41ad6fe1cb2 100644
}
#endif
-@@ -2311,16 +2339,21 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
+@@ -2320,16 +2348,21 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
unsigned long flags;
struct per_cpu_pageset *pset;
struct per_cpu_pages *pcp;
@@ -190,7 +190,7 @@ index b08ace7d4d92..a41ad6fe1cb2 100644
}
/*
-@@ -2502,8 +2535,13 @@ void free_hot_cold_page(struct page *page, bool cold)
+@@ -2511,8 +2544,13 @@ void free_hot_cold_page(struct page *page, bool cold)
pcp->count++;
if (pcp->count >= pcp->high) {
unsigned long batch = READ_ONCE(pcp->batch);
diff --git a/debian/patches/features/all/rt/0105-mm-swap-Convert-to-percpu-locked.patch b/debian/patches/features/all/rt/0105-mm-swap-Convert-to-percpu-locked.patch
index dc6fdc4..53c6abe 100644
--- a/debian/patches/features/all/rt/0105-mm-swap-Convert-to-percpu-locked.patch
+++ b/debian/patches/features/all/rt/0105-mm-swap-Convert-to-percpu-locked.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:51 -0500
-Subject: [PATCH 105/337] mm/swap: Convert to percpu locked
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c4c799b99e9ca25d48e0b7f3a09ff0541191685
+Subject: [PATCH 105/351] mm/swap: Convert to percpu locked
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=626121de914af008728eead6090a63c87e951e8b
Replace global locks (get_cpu + local_irq_save) with "local_locks()".
Currently there is one of for "rotate" and one for "swap".
@@ -47,10 +47,10 @@ index 70e6bec46dc2..6678ed58b7c6 100644
cc->last_migrated_pfn = 0;
}
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index a41ad6fe1cb2..3ebf9c2ae7de 100644
+index f06a57ee00b4..0e3df89b76a5 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -6621,7 +6621,9 @@ static int page_alloc_cpu_notify(struct notifier_block *self,
+@@ -6623,7 +6623,9 @@ static int page_alloc_cpu_notify(struct notifier_block *self,
int cpu = (unsigned long)hcpu;
if (action == CPU_DEAD || action == CPU_DEAD_FROZEN) {
diff --git a/debian/patches/features/all/rt/0106-mm-perform-lru_add_drain_all-remotely.patch b/debian/patches/features/all/rt/0106-mm-perform-lru_add_drain_all-remotely.patch
index 699dadd..3049aa8 100644
--- a/debian/patches/features/all/rt/0106-mm-perform-lru_add_drain_all-remotely.patch
+++ b/debian/patches/features/all/rt/0106-mm-perform-lru_add_drain_all-remotely.patch
@@ -1,7 +1,7 @@
From: Luiz Capitulino <lcapitulino at redhat.com>
Date: Fri, 27 May 2016 15:03:28 +0200
-Subject: [PATCH 106/337] mm: perform lru_add_drain_all() remotely
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=da10ef02d5e5c384a039664aa474d3c91014ddab
+Subject: [PATCH 106/351] mm: perform lru_add_drain_all() remotely
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=45b613f8e695ba4b6ad8f71f0513efca16b93e1a
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/features/all/rt/0107-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch b/debian/patches/features/all/rt/0107-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
index 3649abd..724884c 100644
--- a/debian/patches/features/all/rt/0107-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
+++ b/debian/patches/features/all/rt/0107-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:13 -0500
-Subject: [PATCH 107/337] mm/vmstat: Protect per cpu variables with preempt
+Subject: [PATCH 107/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=5cfac94c8e9d01ab287a7fc14dcf2beb51dfa9bb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9980328d216e909e6a4c99273e60faf308421446
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/features/all/rt/0108-ARM-Initialize-split-page-table-locks-for-vector-pag.patch b/debian/patches/features/all/rt/0108-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
index 0359b6d..65fec04 100644
--- a/debian/patches/features/all/rt/0108-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
+++ b/debian/patches/features/all/rt/0108-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
@@ -1,8 +1,8 @@
From: Frank Rowand <frank.rowand at am.sony.com>
Date: Sat, 1 Oct 2011 18:58:13 -0700
-Subject: [PATCH 108/337] ARM: Initialize split page table locks for vector
+Subject: [PATCH 108/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=06a71e906cbc722b038e9d92251ef2f7663bd12f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1915af65520726915411741e0338e1a25fbbeb8e
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/features/all/rt/0109-mm-bounce-Use-local_irq_save_nort.patch b/debian/patches/features/all/rt/0109-mm-bounce-Use-local_irq_save_nort.patch
index 3628c2c..794d565 100644
--- a/debian/patches/features/all/rt/0109-mm-bounce-Use-local_irq_save_nort.patch
+++ b/debian/patches/features/all/rt/0109-mm-bounce-Use-local_irq_save_nort.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 9 Jan 2013 10:33:09 +0100
-Subject: [PATCH 109/337] mm: bounce: Use local_irq_save_nort
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a8e4eec8e763612c070d85084863d61dbd4c95d9
+Subject: [PATCH 109/351] mm: bounce: Use local_irq_save_nort
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=369b69704b7a049906eb769b052c31e9d590130e
kmap_atomic() is preemptible on RT.
diff --git a/debian/patches/features/all/rt/0110-mm-Allow-only-slub-on-RT.patch b/debian/patches/features/all/rt/0110-mm-Allow-only-slub-on-RT.patch
index 4427558..3fde560 100644
--- a/debian/patches/features/all/rt/0110-mm-Allow-only-slub-on-RT.patch
+++ b/debian/patches/features/all/rt/0110-mm-Allow-only-slub-on-RT.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:44:03 -0500
-Subject: [PATCH 110/337] mm: Allow only slub on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4d938e482715c8573992255254b92104a1157e05
+Subject: [PATCH 110/351] mm: Allow only slub on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a8fb76cbd0c4aadd2c9a06c34887678c14102ba7
Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs.
diff --git a/debian/patches/features/all/rt/0111-mm-Enable-SLUB-for-RT.patch b/debian/patches/features/all/rt/0111-mm-Enable-SLUB-for-RT.patch
index fde04bd..d88cc94 100644
--- a/debian/patches/features/all/rt/0111-mm-Enable-SLUB-for-RT.patch
+++ b/debian/patches/features/all/rt/0111-mm-Enable-SLUB-for-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 25 Oct 2012 10:32:35 +0100
-Subject: [PATCH 111/337] mm: Enable SLUB for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=088b1f5d0b2e1e58abd54f4918462329ce8805c7
+Subject: [PATCH 111/351] mm: Enable SLUB for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b75f3e580f017fcb96b486709e8de11a8261a51f
Make SLUB RT aware by converting locks to raw and using free lists to
move the freeing out of the lock held region.
diff --git a/debian/patches/features/all/rt/0112-slub-Enable-irqs-for-__GFP_WAIT.patch b/debian/patches/features/all/rt/0112-slub-Enable-irqs-for-__GFP_WAIT.patch
index 21f79c6..3f25f0c 100644
--- a/debian/patches/features/all/rt/0112-slub-Enable-irqs-for-__GFP_WAIT.patch
+++ b/debian/patches/features/all/rt/0112-slub-Enable-irqs-for-__GFP_WAIT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 9 Jan 2013 12:08:15 +0100
-Subject: [PATCH 112/337] slub: Enable irqs for __GFP_WAIT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fcd418633bf4349c84975a1aa91ed850bfa501c1
+Subject: [PATCH 112/351] slub: Enable irqs for __GFP_WAIT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=87bf853eab5133b71980d9978e01ff8529a173ba
SYSTEM_RUNNING might be too late for enabling interrupts. Allocations
with GFP_WAIT can happen before that. So use this as an indicator.
diff --git a/debian/patches/features/all/rt/0113-slub-Disable-SLUB_CPU_PARTIAL.patch b/debian/patches/features/all/rt/0113-slub-Disable-SLUB_CPU_PARTIAL.patch
index 27df4eb..3247ede 100644
--- a/debian/patches/features/all/rt/0113-slub-Disable-SLUB_CPU_PARTIAL.patch
+++ b/debian/patches/features/all/rt/0113-slub-Disable-SLUB_CPU_PARTIAL.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 15 Apr 2015 19:00:47 +0200
-Subject: [PATCH 113/337] slub: Disable SLUB_CPU_PARTIAL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6def3bb8cde3d7b4d2889b44979f7aea60ab349f
+Subject: [PATCH 113/351] slub: Disable SLUB_CPU_PARTIAL
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57c1051f0b9d2263921f794bad21607f9e6c53dd
|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/features/all/rt/0114-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch b/debian/patches/features/all/rt/0114-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
index 1cc7461..1dd07a5 100644
--- a/debian/patches/features/all/rt/0114-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
+++ b/debian/patches/features/all/rt/0114-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 27 Sep 2012 11:11:46 +0200
-Subject: [PATCH 114/337] mm: page_alloc: Use local_lock_on() instead of plain
+Subject: [PATCH 114/351] mm: page_alloc: Use local_lock_on() instead of plain
spinlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=54d5ff56b9260269b683b36bb840ca13fb08b587
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a3b9a8e2735dddbcb015c537cb784fcec314c16d
The plain spinlock while sufficient does not update the local_lock
internals. Use a proper local_lock function instead to ease debugging.
@@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 3ebf9c2ae7de..6a187c2adcc9 100644
+index 0e3df89b76a5..1cb08e1406ea 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -286,9 +286,9 @@ static DEFINE_LOCAL_IRQ_LOCK(pa_lock);
diff --git a/debian/patches/features/all/rt/0115-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch b/debian/patches/features/all/rt/0115-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
index 9b3eed4..aa4e86f 100644
--- a/debian/patches/features/all/rt/0115-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
+++ b/debian/patches/features/all/rt/0115-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
@@ -1,8 +1,8 @@
From: Yang Shi <yang.shi at windriver.com>
Date: Wed, 30 Oct 2013 11:48:33 -0700
-Subject: [PATCH 115/337] mm/memcontrol: Don't call schedule_work_on in
+Subject: [PATCH 115/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=a92aac8e016427c6e148bf8e67130a0a21a66323
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=158715cfabde690f20ba8a669c1687e440d890d8
The following trace is triggered when running ltp oom test cases:
diff --git a/debian/patches/features/all/rt/0116-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch b/debian/patches/features/all/rt/0116-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
index a1253f4..9658c20 100644
--- a/debian/patches/features/all/rt/0116-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
+++ b/debian/patches/features/all/rt/0116-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 28 Jan 2015 17:14:16 +0100
-Subject: [PATCH 116/337] mm/memcontrol: Replace local_irq_disable with local
+Subject: [PATCH 116/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=637ff36b749e429253059a9384dc429a7024ff90
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=75c42e195f15eebc3a3fa8693badc5c9ab025736
There are a few local_irq_disable() which then take sleeping locks. This
patch converts them local locks.
diff --git a/debian/patches/features/all/rt/0117-mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch b/debian/patches/features/all/rt/0117-mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch
index 3568bcc..20c7f0f 100644
--- a/debian/patches/features/all/rt/0117-mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch
+++ b/debian/patches/features/all/rt/0117-mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Sun, 5 Jun 2016 08:11:13 +0200
-Subject: [PATCH 117/337] mm/memcontrol: mem_cgroup_migrate() - replace another
+Subject: [PATCH 117/351] mm/memcontrol: mem_cgroup_migrate() - replace another
local_irq_disable() w. local_lock_irq()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=11f55866beb66fc14d7cf2812cca6b795e8d4304
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f02b41a976e71faae52732ff3ccb4c7998275020
v4.6 grew a local_irq_disable() in mm/memcontrol.c::mem_cgroup_migrate().
Convert it to use the existing local lock (event_lock) like the others.
diff --git a/debian/patches/features/all/rt/0118-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch b/debian/patches/features/all/rt/0118-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch
index 6f82134..4245723 100644
--- a/debian/patches/features/all/rt/0118-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch
+++ b/debian/patches/features/all/rt/0118-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 5 Feb 2016 12:17:14 +0100
-Subject: [PATCH 118/337] mm: backing-dev: don't disable IRQs in
+Subject: [PATCH 118/351] mm: backing-dev: don't disable IRQs in
wb_congested_put()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=587e507caa802abd1641d17983edd6b0a32456d4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a17d84e073aa0299b5120c970377e0e9307d54c6
it triggers:
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:930
diff --git a/debian/patches/features/all/rt/0119-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch b/debian/patches/features/all/rt/0119-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
index 5a6b6c3..0f75ab6 100644
--- a/debian/patches/features/all/rt/0119-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
+++ b/debian/patches/features/all/rt/0119-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
@@ -1,7 +1,7 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Tue, 22 Mar 2016 11:16:09 +0100
-Subject: [PATCH 119/337] 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=d431bb863d4e592cdc7ac94d5df6ff6a246f314e
+Subject: [PATCH 119/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=7798e86bcba233f398def8640963ff6c51d63db4
get_cpu_var() disables preemption and triggers a might_sleep() splat later.
This is replaced with get_locked_var().
diff --git a/debian/patches/features/all/rt/0120-radix-tree-use-local-locks.patch b/debian/patches/features/all/rt/0120-radix-tree-use-local-locks.patch
index bd52f43..580bc8e 100644
--- a/debian/patches/features/all/rt/0120-radix-tree-use-local-locks.patch
+++ b/debian/patches/features/all/rt/0120-radix-tree-use-local-locks.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 25 Jan 2017 16:34:27 +0100
-Subject: [PATCH 120/337] radix-tree: use local locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f29d1d2cde81e24387c9fb65e12be9eeb9bdd3b7
+Subject: [PATCH 120/351] radix-tree: use local locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=517b419dffa4cfa8c5582aeb4b8fc1326919742f
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/features/all/rt/0121-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch b/debian/patches/features/all/rt/0121-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
index aa082df..f187389 100644
--- a/debian/patches/features/all/rt/0121-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
+++ b/debian/patches/features/all/rt/0121-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 121/337] panic: skip get_random_bytes for RT_FULL in
+Subject: [PATCH 121/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=dabc6f4d0f0d58981fd1f638e36896b84a0554ea
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=24c72cccdf2073d49707d9ee7157e6a2611f53a1
Disable on -RT. If this is invoked from irq-context we will have problems
to acquire the sleeping lock.
diff --git a/debian/patches/features/all/rt/0122-timers-Prepare-for-full-preemption.patch b/debian/patches/features/all/rt/0122-timers-Prepare-for-full-preemption.patch
index ec1afe3..9b6b6bf 100644
--- a/debian/patches/features/all/rt/0122-timers-Prepare-for-full-preemption.patch
+++ b/debian/patches/features/all/rt/0122-timers-Prepare-for-full-preemption.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:34 -0500
-Subject: [PATCH 122/337] timers: Prepare for full preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b751d60567969430e20976920a7598dabcd1abdd
+Subject: [PATCH 122/351] timers: Prepare for full preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=58e8faf5b24512964f01f7792831e9f596c489f0
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,10 +29,10 @@ index 51d601f192d4..83cea629efe1 100644
#else
# define del_timer_sync(t) del_timer(t)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 409b8b292ebc..21c4ebbd6178 100644
+index fe82f403abe4..46adabdde922 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -525,11 +525,14 @@ void resched_cpu(int cpu)
+@@ -524,11 +524,14 @@ void resched_cpu(int cpu)
*/
int get_nohz_timer_target(void)
{
@@ -49,7 +49,7 @@ index 409b8b292ebc..21c4ebbd6178 100644
rcu_read_lock();
for_each_domain(cpu, sd) {
-@@ -548,6 +551,8 @@ int get_nohz_timer_target(void)
+@@ -547,6 +550,8 @@ int get_nohz_timer_target(void)
cpu = housekeeping_any_cpu();
unlock:
rcu_read_unlock();
diff --git a/debian/patches/features/all/rt/0123-timer-delay-waking-softirqs-from-the-jiffy-tick.patch b/debian/patches/features/all/rt/0123-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
index 1f7f5fa..8622213 100644
--- a/debian/patches/features/all/rt/0123-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
+++ b/debian/patches/features/all/rt/0123-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Fri, 21 Aug 2009 11:56:45 +0200
-Subject: [PATCH 123/337] timer: delay waking softirqs from the jiffy tick
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=70ab494306fad1bfbcf82d2b6d512262ae1717cc
+Subject: [PATCH 123/351] timer: delay waking softirqs from the jiffy tick
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2e93096c172bb0fb38d935a8d43f0eca8e258a12
People were complaining about broken balancing with the recent -rt
series.
diff --git a/debian/patches/features/all/rt/0124-hrtimers-Prepare-full-preemption.patch b/debian/patches/features/all/rt/0124-hrtimers-Prepare-full-preemption.patch
index cfdeb26..a448d03 100644
--- a/debian/patches/features/all/rt/0124-hrtimers-Prepare-full-preemption.patch
+++ b/debian/patches/features/all/rt/0124-hrtimers-Prepare-full-preemption.patch
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:34 -0500
-Subject: [PATCH 124/337] hrtimers: Prepare full preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7d947bd09455aafc7527e5409faca944cc5faa00
+Subject: [PATCH 124/351] hrtimers: Prepare full preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0162e021dc90c51780d274689d8d5a994861a2ce
Make cancellation of a running callback in softirq context safe
against preemption.
diff --git a/debian/patches/features/all/rt/0125-hrtimer-enfore-64byte-alignment.patch b/debian/patches/features/all/rt/0125-hrtimer-enfore-64byte-alignment.patch
index 8f35f25..34f4367 100644
--- a/debian/patches/features/all/rt/0125-hrtimer-enfore-64byte-alignment.patch
+++ b/debian/patches/features/all/rt/0125-hrtimer-enfore-64byte-alignment.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 23 Dec 2015 20:57:41 +0100
-Subject: [PATCH 125/337] hrtimer: enfore 64byte alignment
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8e931651ff99b6d53aeef63d30ce5354131a93de
+Subject: [PATCH 125/351] hrtimer: enfore 64byte alignment
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0ee9a53037772577493da2ab5229410df6b258b5
The patch "hrtimer: Fixup hrtimer callback changes for preempt-rt" adds
a list_head expired to struct hrtimer_clock_base and with it we run into
diff --git a/debian/patches/features/all/rt/0126-hrtimer-Fixup-hrtimer-callback-changes-for-preempt-r.patch b/debian/patches/features/all/rt/0126-hrtimer-Fixup-hrtimer-callback-changes-for-preempt-r.patch
index bb09a25..0bb44ac 100644
--- a/debian/patches/features/all/rt/0126-hrtimer-Fixup-hrtimer-callback-changes-for-preempt-r.patch
+++ b/debian/patches/features/all/rt/0126-hrtimer-Fixup-hrtimer-callback-changes-for-preempt-r.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 08:44:31 -0500
-Subject: [PATCH 126/337] hrtimer: Fixup hrtimer callback changes for
+Subject: [PATCH 126/351] hrtimer: Fixup hrtimer callback changes for
preempt-rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0db1110e1d4dabbfd79dd961085c31fb0d750b17
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=863b090b016280d244d619cd444efb46d01589c4
In preempt-rt we can not call the callbacks which take sleeping locks
from the timer interrupt context.
@@ -68,7 +68,7 @@ index b7c2d54af68e..65d0671f20b4 100644
unsigned int active_bases;
unsigned int clock_was_set_seq;
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 21c4ebbd6178..7e90cd2e5794 100644
+index 46adabdde922..7944079a4d71 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -345,6 +345,7 @@ static void init_rq_hrtick(struct rq *rq)
@@ -80,7 +80,7 @@ index 21c4ebbd6178..7e90cd2e5794 100644
#else /* CONFIG_SCHED_HRTICK */
static inline void hrtick_clear(struct rq *rq)
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
-index f139f22ce30d..f5a1132f9014 100644
+index 9c131168d933..340a0a5d435c 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -47,6 +47,7 @@ void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime)
diff --git a/debian/patches/features/all/rt/0127-sched-deadline-dl_task_timer-has-to-be-irqsafe.patch b/debian/patches/features/all/rt/0127-sched-deadline-dl_task_timer-has-to-be-irqsafe.patch
index c803268..e8b05e7 100644
--- a/debian/patches/features/all/rt/0127-sched-deadline-dl_task_timer-has-to-be-irqsafe.patch
+++ b/debian/patches/features/all/rt/0127-sched-deadline-dl_task_timer-has-to-be-irqsafe.patch
@@ -1,7 +1,8 @@
+From faea6ad3f29e5328706c402375fa5ccc1652994a Mon Sep 17 00:00:00 2001
From: Juri Lelli <juri.lelli at gmail.com>
Date: Tue, 13 May 2014 15:30:20 +0200
-Subject: [PATCH 127/337] sched/deadline: dl_task_timer has to be irqsafe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c94b687c21266f84da0aae87b7a104c01731d610
+Subject: [PATCH 127/351] sched/deadline: dl_task_timer has to be irqsafe
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.68-rt60.tar.xz
As for rt_period_timer, dl_task_timer has to be irqsafe.
@@ -11,15 +12,13 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
kernel/sched/deadline.c | 1 +
1 file changed, 1 insertion(+)
-diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
-index c95c5122b105..e00accf92a4b 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
-@@ -687,6 +687,7 @@ void init_dl_task_timer(struct sched_dl_entity *dl_se)
+@@ -693,6 +693,7 @@ void init_dl_task_timer(struct sched_dl_
hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
timer->function = dl_task_timer;
+ timer->irqsafe = 1;
}
- static
+ /*
diff --git a/debian/patches/features/all/rt/0128-timer-fd-Prevent-live-lock.patch b/debian/patches/features/all/rt/0128-timer-fd-Prevent-live-lock.patch
index 669dd52..888d4c8 100644
--- a/debian/patches/features/all/rt/0128-timer-fd-Prevent-live-lock.patch
+++ b/debian/patches/features/all/rt/0128-timer-fd-Prevent-live-lock.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 25 Jan 2012 11:08:40 +0100
-Subject: [PATCH 128/337] timer-fd: Prevent live lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d1fd44a00f45dec8fd09a20fc0b64f8b7d345366
+Subject: [PATCH 128/351] timer-fd: Prevent live lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09cbaac7b189e3cbd77bdbc58ca7ba4e08843dc1
If hrtimer_try_to_cancel() requires a retry, then depending on the
priority setting te retry loop might prevent timer callback completion
diff --git a/debian/patches/features/all/rt/0129-tick-broadcast-Make-broadcast-hrtimer-irqsafe.patch b/debian/patches/features/all/rt/0129-tick-broadcast-Make-broadcast-hrtimer-irqsafe.patch
index b180634..49a5ff4 100644
--- a/debian/patches/features/all/rt/0129-tick-broadcast-Make-broadcast-hrtimer-irqsafe.patch
+++ b/debian/patches/features/all/rt/0129-tick-broadcast-Make-broadcast-hrtimer-irqsafe.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 27 Feb 2016 10:47:10 +0100
-Subject: [PATCH 129/337] tick/broadcast: Make broadcast hrtimer irqsafe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6cd3b2f0ec02d7d5fb0833a3633d979c0492e332
+Subject: [PATCH 129/351] tick/broadcast: Make broadcast hrtimer irqsafe
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0157f3118949c6c387a7d822011439db3b1fab69
Otherwise we end up with the following:
diff --git a/debian/patches/features/all/rt/0130-timer-hrtimer-check-properly-for-a-running-timer.patch b/debian/patches/features/all/rt/0130-timer-hrtimer-check-properly-for-a-running-timer.patch
index eda0d6f..1c2fad0 100644
--- a/debian/patches/features/all/rt/0130-timer-hrtimer-check-properly-for-a-running-timer.patch
+++ b/debian/patches/features/all/rt/0130-timer-hrtimer-check-properly-for-a-running-timer.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 1 Mar 2017 16:30:49 +0100
-Subject: [PATCH 130/337] timer/hrtimer: check properly for a running timer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0a733623e6761dcf6da6142acae8febd44453d69
+Subject: [PATCH 130/351] timer/hrtimer: check properly for a running timer
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1c819369269ad7eecbd43c23d68ca421ce2d380d
hrtimer_callback_running() checks only whether a timmer is running on a
CPU in hardirq-context. This is okay for !RT. For RT environment we move
diff --git a/debian/patches/features/all/rt/0131-posix-timers-Thread-posix-cpu-timers-on-rt.patch b/debian/patches/features/all/rt/0131-posix-timers-Thread-posix-cpu-timers-on-rt.patch
index e8e7c89..bf20d73 100644
--- a/debian/patches/features/all/rt/0131-posix-timers-Thread-posix-cpu-timers-on-rt.patch
+++ b/debian/patches/features/all/rt/0131-posix-timers-Thread-posix-cpu-timers-on-rt.patch
@@ -1,7 +1,7 @@
From: John Stultz <johnstul at us.ibm.com>
Date: Fri, 3 Jul 2009 08:29:58 -0500
-Subject: [PATCH 131/337] posix-timers: Thread posix-cpu-timers on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f88c7aa6e259ba6563d72369fa05c25276130d61
+Subject: [PATCH 131/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=87a99aaca3bf8ea426b049f38ba8451115b4691b
posix-cpu-timer code takes non -rt safe locks in hard irq
context. Move it to a thread.
diff --git a/debian/patches/features/all/rt/0132-sched-Move-task_struct-cleanup-to-RCU.patch b/debian/patches/features/all/rt/0132-sched-Move-task_struct-cleanup-to-RCU.patch
index c796af5..d038f74 100644
--- a/debian/patches/features/all/rt/0132-sched-Move-task_struct-cleanup-to-RCU.patch
+++ b/debian/patches/features/all/rt/0132-sched-Move-task_struct-cleanup-to-RCU.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 31 May 2011 16:59:16 +0200
-Subject: [PATCH 132/337] sched: Move task_struct cleanup to RCU
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b77fa6e4d827d90789f68f00336673262ebdcc50
+Subject: [PATCH 132/351] sched: Move task_struct cleanup to RCU
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=398c7aa901a1cc203163a2e03557120cb9987cb3
__put_task_struct() does quite some expensive work. We don't want to
burden random tasks with that.
diff --git a/debian/patches/features/all/rt/0133-sched-Limit-the-number-of-task-migrations-per-batch.patch b/debian/patches/features/all/rt/0133-sched-Limit-the-number-of-task-migrations-per-batch.patch
index 5f40634..091d1ab 100644
--- a/debian/patches/features/all/rt/0133-sched-Limit-the-number-of-task-migrations-per-batch.patch
+++ b/debian/patches/features/all/rt/0133-sched-Limit-the-number-of-task-migrations-per-batch.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 6 Jun 2011 12:12:51 +0200
-Subject: [PATCH 133/337] 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=43c906e4217ec7f00fb37ccedc289f9a12908332
+Subject: [PATCH 133/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=7d0e18261572b79f5410bb3fcdc6579674f11c82
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 at linutronix.de>
1 file changed, 4 insertions(+)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 7e90cd2e5794..e5499de0dfeb 100644
+index 7944079a4d71..b3515090f4fe 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -129,7 +129,11 @@ const_debug unsigned int sysctl_sched_features =
diff --git a/debian/patches/features/all/rt/0134-sched-Move-mmdrop-to-RCU-on-RT.patch b/debian/patches/features/all/rt/0134-sched-Move-mmdrop-to-RCU-on-RT.patch
index 6f26598..d2fb8b2 100644
--- a/debian/patches/features/all/rt/0134-sched-Move-mmdrop-to-RCU-on-RT.patch
+++ b/debian/patches/features/all/rt/0134-sched-Move-mmdrop-to-RCU-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 6 Jun 2011 12:20:33 +0200
-Subject: [PATCH 134/337] sched: Move mmdrop to RCU on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=56fb498d5ad66ae81a08993090a36977522d31d7
+Subject: [PATCH 134/351] sched: Move mmdrop to RCU on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0cb39bea677cad4b1e453add734eb9fda56a4669
Takes sleeping locks and calls into the memory allocator, so nothing
we want to do in task switch and oder atomic contexts.
@@ -83,10 +83,10 @@ index a9f95368ca66..eac2a145ccb8 100644
{
VM_BUG_ON(atomic_read(&mm->mm_users));
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index e5499de0dfeb..72efa74ab1c2 100644
+index b3515090f4fe..a49d6550d483 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2786,8 +2786,12 @@ static struct rq *finish_task_switch(struct task_struct *prev)
+@@ -2785,8 +2785,12 @@ static struct rq *finish_task_switch(struct task_struct *prev)
finish_arch_post_lock_switch();
fire_sched_in_preempt_notifiers(current);
@@ -100,7 +100,7 @@ index e5499de0dfeb..72efa74ab1c2 100644
if (unlikely(prev_state == TASK_DEAD)) {
if (prev->sched_class->task_dead)
prev->sched_class->task_dead(prev);
-@@ -5588,6 +5592,8 @@ void sched_setnuma(struct task_struct *p, int nid)
+@@ -5587,6 +5591,8 @@ void sched_setnuma(struct task_struct *p, int nid)
#endif /* CONFIG_NUMA_BALANCING */
#ifdef CONFIG_HOTPLUG_CPU
@@ -109,7 +109,7 @@ index e5499de0dfeb..72efa74ab1c2 100644
/*
* Ensures that the idle task is using init_mm right before its cpu goes
* offline.
-@@ -5602,7 +5608,12 @@ void idle_task_exit(void)
+@@ -5601,7 +5607,12 @@ void idle_task_exit(void)
switch_mm(mm, &init_mm, current);
finish_arch_post_lock_switch();
}
@@ -123,7 +123,7 @@ index e5499de0dfeb..72efa74ab1c2 100644
}
/*
-@@ -7563,6 +7574,10 @@ int sched_cpu_dying(unsigned int cpu)
+@@ -7568,6 +7579,10 @@ int sched_cpu_dying(unsigned int cpu)
update_max_interval();
nohz_balance_exit_idle(cpu);
hrtick_clear(rq);
diff --git a/debian/patches/features/all/rt/0135-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch b/debian/patches/features/all/rt/0135-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
index 32d0437..fbb0b40 100644
--- a/debian/patches/features/all/rt/0135-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
+++ b/debian/patches/features/all/rt/0135-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 21 Nov 2016 19:31:08 +0100
-Subject: [PATCH 135/337] kernel/sched: move stack + kprobe clean up to
+Subject: [PATCH 135/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=664930cec95254bbb4179a4f07ac7440c61a8008
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=11bd4ba93c99d025822d30eeb30938770e23e4f1
There is no need to free the stack before the task struct. This also
comes handy on -RT because we can't free memory in preempt disabled
@@ -44,10 +44,10 @@ index eac2a145ccb8..11fa53573d26 100644
task_numa_free(tsk);
security_task_free(tsk);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 72efa74ab1c2..80328674b249 100644
+index a49d6550d483..c330f971d6db 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2796,15 +2796,6 @@ static struct rq *finish_task_switch(struct task_struct *prev)
+@@ -2795,15 +2795,6 @@ static struct rq *finish_task_switch(struct task_struct *prev)
if (prev->sched_class->task_dead)
prev->sched_class->task_dead(prev);
diff --git a/debian/patches/features/all/rt/0136-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch b/debian/patches/features/all/rt/0136-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
index 503493d..44a8054 100644
--- a/debian/patches/features/all/rt/0136-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
+++ b/debian/patches/features/all/rt/0136-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 25 Jun 2011 09:21:04 +0200
-Subject: [PATCH 136/337] sched: Add saved_state for tasks blocked on sleeping
+Subject: [PATCH 136/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=8e163bc5607e99c6143e5265a5168342e9f6e697
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ebf6df019a8d4889eb2c07e7cd7e6d3739652b28
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
@@ -38,10 +38,10 @@ index 34c29a31f94b..aa26cea7618f 100644
#ifdef CONFIG_SMP
extern void kick_process(struct task_struct *tsk);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 80328674b249..ce8e5e9b7fd5 100644
+index c330f971d6db..109e6fbaf970 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2034,8 +2034,25 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
+@@ -2033,8 +2033,25 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
*/
smp_mb__before_spinlock();
raw_spin_lock_irqsave(&p->pi_lock, flags);
@@ -68,7 +68,7 @@ index 80328674b249..ce8e5e9b7fd5 100644
trace_sched_waking(p);
-@@ -2182,6 +2199,18 @@ int wake_up_process(struct task_struct *p)
+@@ -2181,6 +2198,18 @@ int wake_up_process(struct task_struct *p)
}
EXPORT_SYMBOL(wake_up_process);
@@ -88,10 +88,10 @@ index 80328674b249..ce8e5e9b7fd5 100644
{
return try_to_wake_up(p, state, 0);
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
-index ad77d666583c..662a9e43031c 100644
+index cff985feb6e7..5dc95852c984 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
-@@ -1152,6 +1152,7 @@ static inline void finish_lock_switch(struct rq *rq, struct task_struct *prev)
+@@ -1162,6 +1162,7 @@ static inline void finish_lock_switch(struct rq *rq, struct task_struct *prev)
#define WF_SYNC 0x01 /* waker goes to sleep after wakeup */
#define WF_FORK 0x02 /* child wakeup after fork */
#define WF_MIGRATED 0x4 /* internal use, task got migrated */
diff --git a/debian/patches/features/all/rt/0137-sched-Prevent-task-state-corruption-by-spurious-lock.patch b/debian/patches/features/all/rt/0137-sched-Prevent-task-state-corruption-by-spurious-lock.patch
index c125560..275e71f 100644
--- a/debian/patches/features/all/rt/0137-sched-Prevent-task-state-corruption-by-spurious-lock.patch
+++ b/debian/patches/features/all/rt/0137-sched-Prevent-task-state-corruption-by-spurious-lock.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 6 Jun 2017 14:20:37 +0200
-Subject: [PATCH 137/337] sched: Prevent task state corruption by spurious lock
+Subject: [PATCH 137/351] sched: Prevent task state corruption by spurious lock
wakeup
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8dff3ed5ba268df813f869b41081f77eed8da7a4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=658d8741e55b6e8c3c9975be4b5e11a22728d976
Mathias and others reported GDB failures on RT.
@@ -67,10 +67,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index ce8e5e9b7fd5..33c4824e0abb 100644
+index 109e6fbaf970..7769837b3926 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2208,7 +2208,7 @@ EXPORT_SYMBOL(wake_up_process);
+@@ -2207,7 +2207,7 @@ EXPORT_SYMBOL(wake_up_process);
*/
int wake_up_lock_sleeper(struct task_struct *p)
{
diff --git a/debian/patches/features/all/rt/0138-sched-Remove-TASK_ALL.patch b/debian/patches/features/all/rt/0138-sched-Remove-TASK_ALL.patch
index cc3946a..79148ca 100644
--- a/debian/patches/features/all/rt/0138-sched-Remove-TASK_ALL.patch
+++ b/debian/patches/features/all/rt/0138-sched-Remove-TASK_ALL.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 7 Jun 2017 10:12:45 +0200
-Subject: [PATCH 138/337] sched: Remove TASK_ALL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1bb2d4daa94eb542df434f313ff8726d8b5c6b87
+Subject: [PATCH 138/351] sched: Remove TASK_ALL
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cf1173b3a32909b0af486c36a7475898d42afa2a
It's unused:
diff --git a/debian/patches/features/all/rt/0139-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch b/debian/patches/features/all/rt/0139-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
index fcd75f0..a678349 100644
--- a/debian/patches/features/all/rt/0139-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
+++ b/debian/patches/features/all/rt/0139-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 7 Jun 2011 09:19:06 +0200
-Subject: [PATCH 139/337] sched: Do not account rcu_preempt_depth on RT in
+Subject: [PATCH 139/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=1a9e2b02f99b33e00adcb87bda1545bc5c82720e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1c0df98cd4f4b366a9a07df12ea01de3f976d32
RT changes the rcu_preempt_depth semantics, so we cannot check for it
in might_sleep().
@@ -39,10 +39,10 @@ index 01f71e1d2e94..00dc4a9474c0 100644
/* Internal to kernel */
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 33c4824e0abb..e2d0ab845b09 100644
+index 7769837b3926..91d3f785d764 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -7859,7 +7859,7 @@ void __init sched_init(void)
+@@ -7864,7 +7864,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/features/all/rt/0140-sched-Take-RT-softirq-semantics-into-account-in-cond.patch b/debian/patches/features/all/rt/0140-sched-Take-RT-softirq-semantics-into-account-in-cond.patch
index f447f14..6c9f689 100644
--- a/debian/patches/features/all/rt/0140-sched-Take-RT-softirq-semantics-into-account-in-cond.patch
+++ b/debian/patches/features/all/rt/0140-sched-Take-RT-softirq-semantics-into-account-in-cond.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 14 Jul 2011 09:56:44 +0200
-Subject: [PATCH 140/337] sched: Take RT softirq semantics into account in
+Subject: [PATCH 140/351] sched: Take RT softirq semantics into account in
cond_resched()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c68feb2dc054c13cc9f680b6b53347dbc58a62d2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b58221ada1e9ec17cb357a20edbc7016bb8187c
The softirq semantics work different on -RT. There is no SOFTIRQ_MASK in
the preemption counter which leads to the BUG_ON() statement in
@@ -37,10 +37,10 @@ index 7deb4bff4e06..4ffeb8ce1795 100644
static inline void cond_resched_rcu(void)
{
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index e2d0ab845b09..de08805c512f 100644
+index 91d3f785d764..ced1266c7ef7 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -5093,6 +5093,7 @@ int __cond_resched_lock(spinlock_t *lock)
+@@ -5092,6 +5092,7 @@ int __cond_resched_lock(spinlock_t *lock)
}
EXPORT_SYMBOL(__cond_resched_lock);
@@ -48,7 +48,7 @@ index e2d0ab845b09..de08805c512f 100644
int __sched __cond_resched_softirq(void)
{
BUG_ON(!in_softirq());
-@@ -5106,6 +5107,7 @@ int __sched __cond_resched_softirq(void)
+@@ -5105,6 +5106,7 @@ int __sched __cond_resched_softirq(void)
return 0;
}
EXPORT_SYMBOL(__cond_resched_softirq);
diff --git a/debian/patches/features/all/rt/0141-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch b/debian/patches/features/all/rt/0141-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
index ffacdc1..6ced4cc 100644
--- a/debian/patches/features/all/rt/0141-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
+++ b/debian/patches/features/all/rt/0141-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 22:51:33 +0200
-Subject: [PATCH 141/337] 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=a0fce4204a92bf8870b8356c9a9907438c1404e7
+Subject: [PATCH 141/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=9b9e93d75f16574e5fc1b9259dfc0c5dd99d250d
RT does not increment preempt count when a 'sleeping' spinlock is
locked. Update PREEMPT_LOCK_OFFSET for that case.
@@ -12,10 +12,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 4 insertions(+)
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index 57c7731bfe04..210bd26b1882 100644
+index 64f1488df183..f17045be9fbf 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
-@@ -91,7 +91,11 @@
+@@ -96,7 +96,11 @@
/*
* The preempt_count offset after spin_lock()
*/
diff --git a/debian/patches/features/all/rt/0142-sched-Disable-TTWU_QUEUE-on-RT.patch b/debian/patches/features/all/rt/0142-sched-Disable-TTWU_QUEUE-on-RT.patch
index f136b25..f2b927e 100644
--- a/debian/patches/features/all/rt/0142-sched-Disable-TTWU_QUEUE-on-RT.patch
+++ b/debian/patches/features/all/rt/0142-sched-Disable-TTWU_QUEUE-on-RT.patch
@@ -1,7 +1,8 @@
+From d828c07c3abb7528cd1e50c549dd79b89184ea93 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 13 Sep 2011 16:42:35 +0200
-Subject: [PATCH 142/337] sched: Disable TTWU_QUEUE on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=55f29c10da86a6338ea5eb77791be6212c52a516
+Subject: [PATCH 142/351] sched: Disable TTWU_QUEUE on RT
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.68-rt60.tar.xz
The queued remote wakeup mechanism can introduce rather large
latencies if the number of migrated tasks is high. Disable it for RT.
@@ -11,8 +12,6 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
kernel/sched/features.h | 5 +++++
1 file changed, 5 insertions(+)
-diff --git a/kernel/sched/features.h b/kernel/sched/features.h
-index 69631fa46c2f..11258a0feae7 100644
--- a/kernel/sched/features.h
+++ b/kernel/sched/features.h
@@ -45,11 +45,16 @@ SCHED_FEAT(LB_BIAS, true)
@@ -30,5 +29,5 @@ index 69631fa46c2f..11258a0feae7 100644
SCHED_FEAT(TTWU_QUEUE, true)
+#endif
- #ifdef HAVE_RT_PUSH_IPI
/*
+ * When doing wakeups, attempt to limit superfluous scans of the LLC domain.
diff --git a/debian/patches/features/all/rt/0143-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch b/debian/patches/features/all/rt/0143-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
index 08ba705..0ea3aaf 100644
--- a/debian/patches/features/all/rt/0143-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
+++ b/debian/patches/features/all/rt/0143-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 18 Jul 2011 17:03:52 +0200
-Subject: [PATCH 143/337] sched: Disable CONFIG_RT_GROUP_SCHED on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=83742bd95dccec553b6eaf6aee22387aea7d4b7a
+Subject: [PATCH 143/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=7df0f49b4d4b6f407913aa97ff93db807d95bdb9
Carsten reported problems when running:
diff --git a/debian/patches/features/all/rt/0144-sched-ttwu-Return-success-when-only-changing-the-sav.patch b/debian/patches/features/all/rt/0144-sched-ttwu-Return-success-when-only-changing-the-sav.patch
index 86bea28..6d9266b 100644
--- a/debian/patches/features/all/rt/0144-sched-ttwu-Return-success-when-only-changing-the-sav.patch
+++ b/debian/patches/features/all/rt/0144-sched-ttwu-Return-success-when-only-changing-the-sav.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 13 Dec 2011 21:42:19 +0100
-Subject: [PATCH 144/337] sched: ttwu: Return success when only changing the
+Subject: [PATCH 144/351] sched: ttwu: Return success when only changing the
saved_state value
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ffb733b2a78b8eef26305da6981d83b22188c6b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9362fbc0be233c4a42fec759440431694e18bcb9
When a task blocks on a rt lock, it saves the current state in
p->saved_state, so a lock related wake up will not destroy the
@@ -20,10 +20,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index de08805c512f..1fbb4b394e0f 100644
+index ced1266c7ef7..7451d4e3d92f 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2041,8 +2041,10 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
+@@ -2040,8 +2040,10 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
* if the wakeup condition is true.
*/
if (!(wake_flags & WF_LOCK_SLEEPER)) {
diff --git a/debian/patches/features/all/rt/0145-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch b/debian/patches/features/all/rt/0145-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
index 6d06cdd..9251dd3 100644
--- a/debian/patches/features/all/rt/0145-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
+++ b/debian/patches/features/all/rt/0145-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Mon, 18 Mar 2013 15:12:49 -0400
-Subject: [PATCH 145/337] sched/workqueue: Only wake up idle workers if not
+Subject: [PATCH 145/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=7f2fd82c31764f821e0269619366bf67556763f0
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3409c4cdfe60fb58ee3a7dc9a686ca73d1dc34fd
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,10 +24,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 1fbb4b394e0f..d1e319e59cc2 100644
+index 7451d4e3d92f..e506ecc2f962 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3478,8 +3478,10 @@ static void __sched notrace __schedule(bool preempt)
+@@ -3477,8 +3477,10 @@ static void __sched notrace __schedule(bool preempt)
* If a worker went to sleep, notify and ask workqueue
* whether it wants to wake up a task to maintain
* concurrency.
diff --git a/debian/patches/features/all/rt/0146-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch b/debian/patches/features/all/rt/0146-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
index 037e2cd..4c86edf 100644
--- a/debian/patches/features/all/rt/0146-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
+++ b/debian/patches/features/all/rt/0146-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:27 -0500
-Subject: [PATCH 146/337] stop_machine: convert stop_machine_run() to
+Subject: [PATCH 146/351] stop_machine: convert stop_machine_run() to
PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4ea73f3223404bca9867551c10a54e8cf9fc0280
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=070c022891528b1d372df4a8fec0d1697dc39a72
Instead of playing with non-preemption, introduce explicit
startup serialization. This is more robust and cleaner as
diff --git a/debian/patches/features/all/rt/0147-stop_machine-Use-raw-spinlocks.patch b/debian/patches/features/all/rt/0147-stop_machine-Use-raw-spinlocks.patch
index d2099b6..849cf0c 100644
--- a/debian/patches/features/all/rt/0147-stop_machine-Use-raw-spinlocks.patch
+++ b/debian/patches/features/all/rt/0147-stop_machine-Use-raw-spinlocks.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 29 Jun 2011 11:01:51 +0200
-Subject: [PATCH 147/337] stop_machine: Use raw spinlocks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b252d1f6f5a81015d22439f751518c01c02ebed7
+Subject: [PATCH 147/351] stop_machine: Use raw spinlocks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f05d650bc2b5462a7035cb23f80e89b3daba9d7e
Use raw-locks in stomp_machine() to allow locking in irq-off regions.
diff --git a/debian/patches/features/all/rt/0148-hotplug-Lightweight-get-online-cpus.patch b/debian/patches/features/all/rt/0148-hotplug-Lightweight-get-online-cpus.patch
index 7d80472..2547915 100644
--- a/debian/patches/features/all/rt/0148-hotplug-Lightweight-get-online-cpus.patch
+++ b/debian/patches/features/all/rt/0148-hotplug-Lightweight-get-online-cpus.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 15 Jun 2011 12:36:06 +0200
-Subject: [PATCH 148/337] hotplug: Lightweight get online cpus
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=01de561afbecd8d23ebc75df920d534b1b694bb9
+Subject: [PATCH 148/351] hotplug: Lightweight get online cpus
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ffdf8c8221b954d0a23233c03c0661eef425cc75
get_online_cpus() is a heavy weight function which involves a global
mutex. migrate_disable() wants a simpler construct which prevents only
diff --git a/debian/patches/features/all/rt/0149-hotplug-sync_unplug-No-n-in-task-name.patch b/debian/patches/features/all/rt/0149-hotplug-sync_unplug-No-n-in-task-name.patch
index 97c41e7..64be3aa 100644
--- a/debian/patches/features/all/rt/0149-hotplug-sync_unplug-No-n-in-task-name.patch
+++ b/debian/patches/features/all/rt/0149-hotplug-sync_unplug-No-n-in-task-name.patch
@@ -1,7 +1,7 @@
From: Yong Zhang <yong.zhang0 at gmail.com>
Date: Sun, 16 Oct 2011 18:56:43 +0800
-Subject: [PATCH 149/337] hotplug: sync_unplug: No "\n" in task name
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ca942ba4c6c2dd7536389415fd53ebcbc38f77c4
+Subject: [PATCH 149/351] hotplug: sync_unplug: No "\n" in task name
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6493cded1d79a620e6268536736dfd62cf034b62
Otherwise the output will look a little odd.
diff --git a/debian/patches/features/all/rt/0150-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch b/debian/patches/features/all/rt/0150-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
index d604708..7ae239c 100644
--- a/debian/patches/features/all/rt/0150-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
+++ b/debian/patches/features/all/rt/0150-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
@@ -1,8 +1,8 @@
From: Yong Zhang <yong.zhang0 at gmail.com>
Date: Thu, 28 Jul 2011 11:16:00 +0800
-Subject: [PATCH 150/337] hotplug: Reread hotplug_pcp on pin_current_cpu()
+Subject: [PATCH 150/351] hotplug: Reread hotplug_pcp on pin_current_cpu()
retry
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f7e40e02e2ac2c73e2c2207542949261cf7bd1f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eeeb91e6975f99b0b071aefabc1be67d01cfefd9
When retry happens, it's likely that the task has been migrated to
another cpu (except unplug failed), but it still derefernces the
diff --git a/debian/patches/features/all/rt/0151-trace-Add-migrate-disabled-counter-to-tracing-output.patch b/debian/patches/features/all/rt/0151-trace-Add-migrate-disabled-counter-to-tracing-output.patch
index a7eabfa..045c5eb 100644
--- a/debian/patches/features/all/rt/0151-trace-Add-migrate-disabled-counter-to-tracing-output.patch
+++ b/debian/patches/features/all/rt/0151-trace-Add-migrate-disabled-counter-to-tracing-output.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 21:56:42 +0200
-Subject: [PATCH 151/337] trace: Add migrate-disabled counter to tracing output
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a88489fcd51bbcafd638ff736c3c53cf0322ffae
+Subject: [PATCH 151/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=705dc0dece3c0e636f8eaa1e1a1707ca92e62e4d
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
diff --git a/debian/patches/features/all/rt/0152-hotplug-Use-migrate-disable-on-unplug.patch b/debian/patches/features/all/rt/0152-hotplug-Use-migrate-disable-on-unplug.patch
index b318724..52c0c86 100644
--- a/debian/patches/features/all/rt/0152-hotplug-Use-migrate-disable-on-unplug.patch
+++ b/debian/patches/features/all/rt/0152-hotplug-Use-migrate-disable-on-unplug.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 19:35:29 +0200
-Subject: [PATCH 152/337] hotplug: Use migrate disable on unplug
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3870b2cadc5d62dd37303b64dcef56d018a4e687
+Subject: [PATCH 152/351] hotplug: Use migrate disable on unplug
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=12843abad53a10e287c30dd8484239dae3aa56e3
Migration needs to be disabled accross the unplug handling to make
sure that the unplug thread is off the unplugged cpu.
diff --git a/debian/patches/features/all/rt/0153-lockdep-Make-it-RT-aware.patch b/debian/patches/features/all/rt/0153-lockdep-Make-it-RT-aware.patch
index 336e33a..725a54c 100644
--- a/debian/patches/features/all/rt/0153-lockdep-Make-it-RT-aware.patch
+++ b/debian/patches/features/all/rt/0153-lockdep-Make-it-RT-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 18:51:23 +0200
-Subject: [PATCH 153/337] lockdep: Make it RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ca37b817711a93acd2f0aeae5176085cdc62dd92
+Subject: [PATCH 153/351] lockdep: Make it RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a7893de1f67bdaa79d7925d798ae8e5489a39e8b
teach lockdep that we don't really do softirqs on -RT.
diff --git a/debian/patches/features/all/rt/0154-locking-Disable-spin-on-owner-for-RT.patch b/debian/patches/features/all/rt/0154-locking-Disable-spin-on-owner-for-RT.patch
index 85ac3a7..bc55017 100644
--- a/debian/patches/features/all/rt/0154-locking-Disable-spin-on-owner-for-RT.patch
+++ b/debian/patches/features/all/rt/0154-locking-Disable-spin-on-owner-for-RT.patch
@@ -1,10 +1,10 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 21:51:45 +0200
-Subject: [PATCH 154/337] locking: Disable spin on owner for RT
+Subject: [PATCH 154/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=883b5ee0624a111575905a12ff938ba934de0411
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2b09cc96af1c7a085bd7a25485a9afda87dfcffd
Drop spin on owner for mutex / rwsem. We are most likely not using it
but…
diff --git a/debian/patches/features/all/rt/0155-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch b/debian/patches/features/all/rt/0155-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
index 5760f51..05bbc50 100644
--- a/debian/patches/features/all/rt/0155-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
+++ b/debian/patches/features/all/rt/0155-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Tue, 29 Nov 2011 20:18:22 -0500
-Subject: [PATCH 155/337] tasklet: Prevent tasklets from going into infinite
+Subject: [PATCH 155/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=c2c0e7469c57bf5056ad03a35ee83277f4289b2c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb173301a3894851776fb2a84749d5bc5d48440e
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/features/all/rt/0156-softirq-Check-preemption-after-reenabling-interrupts.patch b/debian/patches/features/all/rt/0156-softirq-Check-preemption-after-reenabling-interrupts.patch
index 3c33125..701e3ef 100644
--- a/debian/patches/features/all/rt/0156-softirq-Check-preemption-after-reenabling-interrupts.patch
+++ b/debian/patches/features/all/rt/0156-softirq-Check-preemption-after-reenabling-interrupts.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 13 Nov 2011 17:17:09 +0100
-Subject: [PATCH 156/337] softirq: Check preemption after reenabling interrupts
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b08262ec9d1eef357631ba2445d882a56edd2103
+Subject: [PATCH 156/351] softirq: Check preemption after reenabling interrupts
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=71f27909ecca9a96baa626477b0e5b8d4fcef21d
raise_softirq_irqoff() disables interrupts and wakes the softirq
daemon, but after reenabling interrupts there is no preemption check,
@@ -49,10 +49,10 @@ index 06cf9807f49a..c40342643ca0 100644
/**
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index 210bd26b1882..2b761d0c89d6 100644
+index f17045be9fbf..2eed4b5fd08e 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
-@@ -160,8 +160,10 @@ do { \
+@@ -165,8 +165,10 @@ do { \
#ifdef CONFIG_PREEMPT_RT_BASE
# define preempt_enable_no_resched() sched_preempt_enable_no_resched()
@@ -63,7 +63,7 @@ index 210bd26b1882..2b761d0c89d6 100644
#endif
#define preemptible() (preempt_count() == 0 && !irqs_disabled())
-@@ -232,6 +234,7 @@ do { \
+@@ -237,6 +239,7 @@ do { \
#define preempt_disable_notrace() barrier()
#define preempt_enable_no_resched_notrace() barrier()
#define preempt_enable_notrace() barrier()
@@ -116,7 +116,7 @@ index 1d6565e81030..b23a79761df7 100644
return 0;
}
diff --git a/net/core/dev.c b/net/core/dev.c
-index 7f2caad46a3d..179818729260 100644
+index c37891828e4e..a275a8c147e7 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2286,6 +2286,7 @@ static void __netif_reschedule(struct Qdisc *q)
diff --git a/debian/patches/features/all/rt/0157-softirq-Disable-softirq-stacks-for-RT.patch b/debian/patches/features/all/rt/0157-softirq-Disable-softirq-stacks-for-RT.patch
index 08ab948..88f84dc 100644
--- a/debian/patches/features/all/rt/0157-softirq-Disable-softirq-stacks-for-RT.patch
+++ b/debian/patches/features/all/rt/0157-softirq-Disable-softirq-stacks-for-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 18 Jul 2011 13:59:17 +0200
-Subject: [PATCH 157/337] softirq: Disable softirq stacks for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b47013cf2cc9fcb75e4e33a42a51e4d8a303b1d9
+Subject: [PATCH 157/351] softirq: Disable softirq stacks for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=488bd5e47b67312958029e01ea267d7c733887a8
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/features/all/rt/0158-softirq-Split-softirq-locks.patch b/debian/patches/features/all/rt/0158-softirq-Split-softirq-locks.patch
index 3dbeeb0..e97dda1 100644
--- a/debian/patches/features/all/rt/0158-softirq-Split-softirq-locks.patch
+++ b/debian/patches/features/all/rt/0158-softirq-Split-softirq-locks.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 4 Oct 2012 14:20:47 +0100
-Subject: [PATCH 158/337] softirq: Split softirq locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0112322af2f6d051879c9bb97beb1c4b10368220
+Subject: [PATCH 158/351] softirq: Split softirq locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0b7bf6e470ff75f2c425b4b3a33ff62828aef37d
The 3.x RT series removed the split softirq implementation in favour
of pushing softirq processing into the context of the thread which
@@ -24,8 +24,6 @@ softirq elevation in the context of user space tasks or interrupt
threads.
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-[bwh: Adjust context to apply after "x86/uaccess, sched/preempt: Verify
- access_ok() context"]
---
include/linux/bottom_half.h | 34 +++
include/linux/interrupt.h | 15 +-
@@ -37,6 +35,8 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
net/core/dev.c | 6 +-
8 files changed, 480 insertions(+), 95 deletions(-)
+diff --git a/include/linux/bottom_half.h b/include/linux/bottom_half.h
+index 8fdcb783197d..d07dbeec7bc1 100644
--- a/include/linux/bottom_half.h
+++ b/include/linux/bottom_half.h
@@ -3,6 +3,39 @@
@@ -86,6 +86,8 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+#endif
#endif /* _LINUX_BH_H */
+diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
+index c2bcbd41e0ad..127cfbd8f129 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -469,10 +469,11 @@ struct softirq_action
@@ -102,7 +104,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
void do_softirq_own_stack(void);
#else
static inline void do_softirq_own_stack(void)
-@@ -480,6 +481,9 @@ static inline void do_softirq_own_stack(
+@@ -480,6 +481,9 @@ static inline void do_softirq_own_stack(void)
__do_softirq();
}
#endif
@@ -112,7 +114,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
extern void open_softirq(int nr, void (*action)(struct softirq_action *));
extern void softirq_init(void);
-@@ -487,6 +491,7 @@ extern void __raise_softirq_irqoff(unsig
+@@ -487,6 +491,7 @@ extern void __raise_softirq_irqoff(unsigned int nr);
extern void raise_softirq_irqoff(unsigned int nr);
extern void raise_softirq(unsigned int nr);
@@ -120,7 +122,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
DECLARE_PER_CPU(struct task_struct *, ksoftirqd);
-@@ -644,6 +649,12 @@ void tasklet_hrtimer_cancel(struct taskl
+@@ -644,6 +649,12 @@ void tasklet_hrtimer_cancel(struct tasklet_hrtimer *ttimer)
tasklet_kill(&ttimer->tasklet);
}
@@ -133,6 +135,8 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
/*
* Autoprobing for irqs:
*
+diff --git a/include/linux/preempt.h b/include/linux/preempt.h
+index 2eed4b5fd08e..0c7346289422 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -50,7 +50,11 @@
@@ -173,6 +177,8 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
#define in_nmi() (preempt_count() & NMI_MASK)
#define in_task() (!(preempt_count() & \
(NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET)))
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 4ffeb8ce1795..9aa9fef1d48d 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1980,6 +1980,8 @@ struct task_struct {
@@ -184,7 +190,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
#endif
#ifdef CONFIG_DEBUG_ATOMIC_SLEEP
unsigned long task_state_change;
-@@ -2300,6 +2302,7 @@ extern void thread_group_cputime_adjuste
+@@ -2300,6 +2302,7 @@ extern void thread_group_cputime_adjusted(struct task_struct *p, cputime_t *ut,
/*
* Per process flags
*/
@@ -192,9 +198,11 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
#define PF_EXITING 0x00000004 /* getting shut down */
#define PF_EXITPIDONE 0x00000008 /* pi exit done on shut down */
#define PF_VCPU 0x00000010 /* I'm a virtual CPU */
+diff --git a/init/main.c b/init/main.c
+index 25bac88bc66e..a4a61e7d2248 100644
--- a/init/main.c
+++ b/init/main.c
-@@ -506,6 +506,7 @@ asmlinkage __visible void __init start_k
+@@ -506,6 +506,7 @@ asmlinkage __visible void __init start_kernel(void)
setup_command_line(command_line);
setup_nr_cpu_ids();
setup_per_cpu_areas();
@@ -202,6 +210,8 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
boot_cpu_state_init();
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
+diff --git a/kernel/softirq.c b/kernel/softirq.c
+index 8669000c2aa3..ec9b3611f886 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -26,6 +26,7 @@
@@ -212,7 +222,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
#include <linux/irq.h>
#define CREATE_TRACE_POINTS
-@@ -63,6 +64,98 @@ const char * const softirq_to_name[NR_SO
+@@ -63,6 +64,98 @@ const char * const softirq_to_name[NR_SOFTIRQS] = {
"TASKLET", "SCHED", "HRTIMER", "RCU"
};
@@ -387,7 +397,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
/*
* preempt_count and SOFTIRQ_OFFSET usage:
* - preempt_count is changed by SOFTIRQ_OFFSET on entering or leaving
-@@ -244,10 +399,8 @@ asmlinkage __visible void __softirq_entr
+@@ -244,10 +399,8 @@ asmlinkage __visible void __softirq_entry __do_softirq(void)
unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
unsigned long old_flags = current->flags;
int max_restart = MAX_SOFTIRQ_RESTART;
@@ -398,7 +408,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
/*
* Mask out PF_MEMALLOC s current task context is borrowed for the
-@@ -266,36 +419,7 @@ restart:
+@@ -266,36 +419,7 @@ asmlinkage __visible void __softirq_entry __do_softirq(void)
/* Reset the pending bitmask before enabling irqs */
set_softirq_pending(0);
@@ -436,10 +446,11 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
pending = local_softirq_pending();
if (pending) {
-@@ -332,6 +456,246 @@ asmlinkage __visible void do_softirq(voi
+@@ -331,6 +455,246 @@ asmlinkage __visible void do_softirq(void)
+ local_irq_restore(flags);
}
- /*
++/*
+ * This function must run with irqs disabled!
+ */
+void raise_softirq_irqoff(unsigned int nr)
@@ -679,10 +690,9 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+}
+
+#endif /* PREEMPT_RT_FULL */
-+/*
+ /*
* Enter an interrupt context.
*/
- void irq_enter(void)
@@ -342,9 +706,9 @@ void irq_enter(void)
* Prevent raise_softirq from needlessly waking up ksoftirqd
* here, as softirq will be serviced on return from interrupt.
@@ -790,7 +800,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
}
#ifdef CONFIG_HOTPLUG_CPU
-@@ -830,6 +1164,8 @@ static int takeover_tasklets(unsigned in
+@@ -830,6 +1164,8 @@ static int takeover_tasklets(unsigned int cpu)
static struct smp_hotplug_thread softirq_threads = {
.store = &ksoftirqd,
@@ -799,9 +809,11 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
.thread_should_run = ksoftirqd_should_run,
.thread_fn = run_ksoftirqd,
.thread_comm = "ksoftirqd/%u",
+diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
+index 14eaf34cbbc9..4367249e0dde 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
-@@ -882,14 +882,7 @@ static bool can_stop_idle_tick(int cpu,
+@@ -882,14 +882,7 @@ static bool can_stop_idle_tick(int cpu, struct tick_sched *ts)
return false;
if (unlikely(local_softirq_pending() && cpu_online(cpu))) {
@@ -817,6 +829,8 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
return false;
}
+diff --git a/net/core/dev.c b/net/core/dev.c
+index a275a8c147e7..885db5d6613c 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3867,11 +3867,9 @@ int netif_rx_ni(struct sk_buff *skb)
diff --git a/debian/patches/features/all/rt/0159-kernel-softirq-unlock-with-irqs-on.patch b/debian/patches/features/all/rt/0159-kernel-softirq-unlock-with-irqs-on.patch
index 64c57be..a107ec1 100644
--- a/debian/patches/features/all/rt/0159-kernel-softirq-unlock-with-irqs-on.patch
+++ b/debian/patches/features/all/rt/0159-kernel-softirq-unlock-with-irqs-on.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Tue, 9 Feb 2016 18:17:18 +0100
-Subject: [PATCH 159/337] kernel: softirq: unlock with irqs on
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=55a6f2081f350ffde3cd025ff2d83733abc70659
+Subject: [PATCH 159/351] kernel: softirq: unlock with irqs on
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95910c306744de0224a4e9775323e1b12133fcd3
We unlock the lock while the interrupts are off. This isn't a problem
now but will get because the migrate_disable() + enable are not
diff --git a/debian/patches/features/all/rt/0160-kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch b/debian/patches/features/all/rt/0160-kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch
index 250052a..608447d 100644
--- a/debian/patches/features/all/rt/0160-kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch
+++ b/debian/patches/features/all/rt/0160-kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Tue, 9 Feb 2016 18:18:01 +0100
-Subject: [PATCH 160/337] kernel: migrate_disable() do fastpath in atomic &
+Subject: [PATCH 160/351] kernel: migrate_disable() do fastpath in atomic &
irqs-off
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=796979a2ed1d3cb4976b68865f536ad874b4ca39
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=848e45dca6af0cfd8823d909bb03a4e4028200ec
With interrupts off it makes no sense to do the long path since we can't
leave the CPU anyway. Also we might end up in a recursion with lockdep.
@@ -13,10 +13,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index d1e319e59cc2..42c29b743057 100644
+index e506ecc2f962..dcc12e735b50 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3300,7 +3300,7 @@ void migrate_disable(void)
+@@ -3299,7 +3299,7 @@ void migrate_disable(void)
{
struct task_struct *p = current;
@@ -25,7 +25,7 @@ index d1e319e59cc2..42c29b743057 100644
#ifdef CONFIG_SCHED_DEBUG
p->migrate_disable_atomic++;
#endif
-@@ -3327,7 +3327,7 @@ void migrate_enable(void)
+@@ -3326,7 +3326,7 @@ void migrate_enable(void)
{
struct task_struct *p = current;
diff --git a/debian/patches/features/all/rt/0161-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch b/debian/patches/features/all/rt/0161-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
index ac93e32..9b978a0 100644
--- a/debian/patches/features/all/rt/0161-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
+++ b/debian/patches/features/all/rt/0161-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 31 Jan 2012 13:01:27 +0100
-Subject: [PATCH 161/337] genirq: Allow disabling of softirq processing in irq
+Subject: [PATCH 161/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=c54f9fbb5d98a93fb9fb54b0383ef0a1c44c7895
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1808ce8675d75f887da43df457e3dc790e87bc29
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/features/all/rt/0162-softirq-split-timer-softirqs-out-of-ksoftirqd.patch b/debian/patches/features/all/rt/0162-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
index d43bec8..cb61905 100644
--- a/debian/patches/features/all/rt/0162-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
+++ b/debian/patches/features/all/rt/0162-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 20 Jan 2016 16:34:17 +0100
-Subject: [PATCH 162/337] softirq: split timer softirqs out of ksoftirqd
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=afefc8cdd0ef7b51617622e45735e65605c547e0
+Subject: [PATCH 162/351] softirq: split timer softirqs out of ksoftirqd
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0cd872e5bb54fe1cca8f755333576f12ff29a4e2
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/features/all/rt/0163-softirq-wake-the-timer-softirq-if-needed.patch b/debian/patches/features/all/rt/0163-softirq-wake-the-timer-softirq-if-needed.patch
index 958b674..1464caa 100644
--- a/debian/patches/features/all/rt/0163-softirq-wake-the-timer-softirq-if-needed.patch
+++ b/debian/patches/features/all/rt/0163-softirq-wake-the-timer-softirq-if-needed.patch
@@ -1,7 +1,7 @@
From: Mike Galbraith <efault at gmx.de>
Date: Fri, 20 Jan 2017 18:10:20 +0100
-Subject: [PATCH 163/337] softirq: wake the timer softirq if needed
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9b040c3b56f1cc982f1c7b3704de8f794a350820
+Subject: [PATCH 163/351] softirq: wake the timer softirq if needed
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dc5521725df8d41de07395cd1a95221821063b75
The irq-exit path only checks the "normal"-softirq thread if it is
running and ignores the state of the "timer"-softirq thread. It is possible
diff --git a/debian/patches/features/all/rt/0164-timers-Don-t-wake-ktimersoftd-on-every-tick.patch b/debian/patches/features/all/rt/0164-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
index 3802471..f63e44e 100644
--- a/debian/patches/features/all/rt/0164-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
+++ b/debian/patches/features/all/rt/0164-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
@@ -1,7 +1,7 @@
From: Haris Okanovic <haris.okanovic at ni.com>
Date: Fri, 3 Feb 2017 17:26:44 +0100
-Subject: [PATCH 164/337] timers: Don't wake ktimersoftd on every tick
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e913831ac1d76839e8227a5f7442c5b6b8b896b6
+Subject: [PATCH 164/351] timers: Don't wake ktimersoftd on every tick
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2125e9bf9e38673518c0d104e90cd260f734b699
We recently upgraded from 4.1 to 4.6 and noticed a minor latency
regression caused by an additional thread wakeup (ktimersoftd) in
diff --git a/debian/patches/features/all/rt/0165-Revert-timers-Don-t-wake-ktimersoftd-on-every-tick.patch b/debian/patches/features/all/rt/0165-Revert-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
index 8abc062..4365812 100644
--- a/debian/patches/features/all/rt/0165-Revert-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
+++ b/debian/patches/features/all/rt/0165-Revert-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
@@ -1,7 +1,7 @@
From: Anna-Maria Gleixner <anna-maria at linutronix.de>
Date: Fri, 26 May 2017 19:16:07 +0200
-Subject: [PATCH 165/337] Revert "timers: Don't wake ktimersoftd on every tick"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d1c4adc967b29c73555a044de5c9e722a7577722
+Subject: [PATCH 165/351] Revert "timers: Don't wake ktimersoftd on every tick"
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c542fd7c49aa94da131596fb7694f2ba3ea0995
This reverts commit 032f93cae150a ("timers: Don't wake ktimersoftd on
every tick").
diff --git a/debian/patches/features/all/rt/0166-rtmutex-trylock-is-okay-on-RT.patch b/debian/patches/features/all/rt/0166-rtmutex-trylock-is-okay-on-RT.patch
index 4b86a1e..59c2d09 100644
--- a/debian/patches/features/all/rt/0166-rtmutex-trylock-is-okay-on-RT.patch
+++ b/debian/patches/features/all/rt/0166-rtmutex-trylock-is-okay-on-RT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 2 Dec 2015 11:34:07 +0100
-Subject: [PATCH 166/337] rtmutex: trylock is okay on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=196175f22490be66ad64ff094adda08392704273
+Subject: [PATCH 166/351] rtmutex: trylock is okay on -RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8acbeef83c33340e870ac10706c57daa099a7231
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/features/all/rt/0167-gpu-don-t-check-for-the-lock-owner.patch b/debian/patches/features/all/rt/0167-gpu-don-t-check-for-the-lock-owner.patch
index c2847d9..efeb8a4 100644
--- a/debian/patches/features/all/rt/0167-gpu-don-t-check-for-the-lock-owner.patch
+++ b/debian/patches/features/all/rt/0167-gpu-don-t-check-for-the-lock-owner.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 167/337] gpu: don't check for the lock owner.
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4b07a280821a90835da13ba2eaa1adc4c6e30a21
+Subject: [PATCH 167/351] gpu: don't check for the lock owner.
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=30dbafd3e222f0319e38081e63b32872a9e9051c
Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
---
diff --git a/debian/patches/features/all/rt/0168-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch b/debian/patches/features/all/rt/0168-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
index 45e0646..c6dc244 100644
--- a/debian/patches/features/all/rt/0168-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
+++ b/debian/patches/features/all/rt/0168-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 15 Sep 2016 10:51:27 +0200
-Subject: [PATCH 168/337] fs/nfs: turn rmdir_sem into a semaphore
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c5ea0f2b2eb5af340799124ac6370d92aa536903
+Subject: [PATCH 168/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=7653ba0a36c73c6d9996c4ed69516e30fcb66fe4
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
@@ -21,10 +21,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
4 files changed, 43 insertions(+), 4 deletions(-)
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
-index d04ec3814779..63ed5180e544 100644
+index 65566d5fcf39..c1cc9707bbb3 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
-@@ -1806,7 +1806,11 @@ int nfs_rmdir(struct inode *dir, struct dentry *dentry)
+@@ -1807,7 +1807,11 @@ int nfs_rmdir(struct inode *dir, struct dentry *dentry)
trace_nfs_rmdir_enter(dir, dentry);
if (d_really_is_positive(dentry)) {
@@ -36,7 +36,7 @@ index d04ec3814779..63ed5180e544 100644
error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name);
/* Ensure the VFS deletes this inode */
switch (error) {
-@@ -1816,7 +1820,11 @@ int nfs_rmdir(struct inode *dir, struct dentry *dentry)
+@@ -1817,7 +1821,11 @@ int nfs_rmdir(struct inode *dir, struct dentry *dentry)
case -ENOENT:
nfs_dentry_handle_enoent(dentry);
}
diff --git a/debian/patches/features/all/rt/0169-rtmutex-Handle-the-various-new-futex-race-conditions.patch b/debian/patches/features/all/rt/0169-rtmutex-Handle-the-various-new-futex-race-conditions.patch
index be5e018..1526c25 100644
--- a/debian/patches/features/all/rt/0169-rtmutex-Handle-the-various-new-futex-race-conditions.patch
+++ b/debian/patches/features/all/rt/0169-rtmutex-Handle-the-various-new-futex-race-conditions.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 10 Jun 2011 11:04:15 +0200
-Subject: [PATCH 169/337] rtmutex: Handle the various new futex race conditions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a27c3cc31a441a9d4e4b575c76b1afd91865915
+Subject: [PATCH 169/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=352fa01858ed2713c52d175786df4be1b9bed12e
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/features/all/rt/0170-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch b/debian/patches/features/all/rt/0170-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
index c9f5f34..fb093e5 100644
--- a/debian/patches/features/all/rt/0170-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
+++ b/debian/patches/features/all/rt/0170-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 170/337] 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=30f8421f2842cde7a84f7b7335b1a885155785ff
+Subject: [PATCH 170/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=9e6e77bdae60cc2fb191c84b21440bc071db39cc
Requeue with timeout causes a bug with PREEMPT_RT_FULL.
diff --git a/debian/patches/features/all/rt/0171-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch b/debian/patches/features/all/rt/0171-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
index 4724ff1..f82d89f 100644
--- a/debian/patches/features/all/rt/0171-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
+++ b/debian/patches/features/all/rt/0171-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 1 Mar 2013 11:17:42 +0100
-Subject: [PATCH 171/337] futex: Ensure lock/unlock symetry versus pi_lock and
+Subject: [PATCH 171/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=ab0f848ef569db0049595a7e1d92b9cd4808be00
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f5b6e36be5099d6afd23e12e72e04546e4f8aee7
In exit_pi_state_list() we have the following locking construct:
diff --git a/debian/patches/features/all/rt/0172-pid.h-include-atomic.h.patch b/debian/patches/features/all/rt/0172-pid.h-include-atomic.h.patch
index 6c998a6..1386669 100644
--- a/debian/patches/features/all/rt/0172-pid.h-include-atomic.h.patch
+++ b/debian/patches/features/all/rt/0172-pid.h-include-atomic.h.patch
@@ -1,7 +1,7 @@
From: Grygorii Strashko <Grygorii.Strashko at linaro.org>
Date: Tue, 21 Jul 2015 19:43:56 +0300
-Subject: [PATCH 172/337] pid.h: include atomic.h
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb22a93ae450197bd565673784e2246bf74acf32
+Subject: [PATCH 172/351] pid.h: include atomic.h
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3377df0108d1fb221f910593b5316b8c8e2bcfc
This patch fixes build error:
CC kernel/pid_namespace.o
diff --git a/debian/patches/features/all/rt/0173-arm-include-definition-for-cpumask_t.patch b/debian/patches/features/all/rt/0173-arm-include-definition-for-cpumask_t.patch
index b6f492b..d935d41 100644
--- a/debian/patches/features/all/rt/0173-arm-include-definition-for-cpumask_t.patch
+++ b/debian/patches/features/all/rt/0173-arm-include-definition-for-cpumask_t.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 22 Dec 2016 17:28:33 +0100
-Subject: [PATCH 173/337] arm: include definition for cpumask_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=39ab471329f05960ac4dd0178c84f181301ca5e1
+Subject: [PATCH 173/351] arm: include definition for cpumask_t
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f997597409411715b196354fb81bb2c69bba688c
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/features/all/rt/0174-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch b/debian/patches/features/all/rt/0174-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
index 288afc5..6f80a96 100644
--- a/debian/patches/features/all/rt/0174-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
+++ b/debian/patches/features/all/rt/0174-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
@@ -1,8 +1,8 @@
From: "Wolfgang M. Reimer" <linuxball at gmail.com>
Date: Tue, 21 Jul 2015 16:20:07 +0200
-Subject: [PATCH 174/337] locking: locktorture: Do NOT include rwlock.h
+Subject: [PATCH 174/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=604b10c3bd920fe58d835323298be379838b384f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=47b0667bfe0691c821e0990db366cb60a1d67434
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/features/all/rt/0175-rtmutex-Add-rtmutex_lock_killable.patch b/debian/patches/features/all/rt/0175-rtmutex-Add-rtmutex_lock_killable.patch
index f89cf43..f6dbaec 100644
--- a/debian/patches/features/all/rt/0175-rtmutex-Add-rtmutex_lock_killable.patch
+++ b/debian/patches/features/all/rt/0175-rtmutex-Add-rtmutex_lock_killable.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 9 Jun 2011 11:43:52 +0200
-Subject: [PATCH 175/337] rtmutex: Add rtmutex_lock_killable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=257c158460a8ba0262ff9ad4a0709497b015a1e5
+Subject: [PATCH 175/351] rtmutex: Add rtmutex_lock_killable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2428322fb6ebbc9ac697d8583898dd894a67bb48
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/features/all/rt/0176-rtmutex-Make-lock_killable-work.patch b/debian/patches/features/all/rt/0176-rtmutex-Make-lock_killable-work.patch
index 4131cdd..ed74ef0 100644
--- a/debian/patches/features/all/rt/0176-rtmutex-Make-lock_killable-work.patch
+++ b/debian/patches/features/all/rt/0176-rtmutex-Make-lock_killable-work.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 1 Apr 2017 12:50:59 +0200
-Subject: [PATCH 176/337] rtmutex: Make lock_killable work
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6acdd8eb1ac3f1a5b9e4831d49474aba9189ef57
+Subject: [PATCH 176/351] rtmutex: Make lock_killable work
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=432d0238e258f9e32ef9cfec374d3f1f64a67afe
Locking an rt mutex killable does not work because signal handling is
restricted to TASK_INTERRUPTIBLE.
diff --git a/debian/patches/features/all/rt/0177-spinlock-Split-the-lock-types-header.patch b/debian/patches/features/all/rt/0177-spinlock-Split-the-lock-types-header.patch
index 140d2b7..6fc8085 100644
--- a/debian/patches/features/all/rt/0177-spinlock-Split-the-lock-types-header.patch
+++ b/debian/patches/features/all/rt/0177-spinlock-Split-the-lock-types-header.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 29 Jun 2011 19:34:01 +0200
-Subject: [PATCH 177/337] spinlock: Split the lock types header
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4458edd3f737948c85eb46d4ceede5844f7f971
+Subject: [PATCH 177/351] spinlock: Split the lock types header
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9a9c429294bf50e8e5575033209ace534e11393c
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/features/all/rt/0178-rtmutex-Avoid-include-hell.patch b/debian/patches/features/all/rt/0178-rtmutex-Avoid-include-hell.patch
index b2177d7..f820b41 100644
--- a/debian/patches/features/all/rt/0178-rtmutex-Avoid-include-hell.patch
+++ b/debian/patches/features/all/rt/0178-rtmutex-Avoid-include-hell.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 29 Jun 2011 20:06:39 +0200
-Subject: [PATCH 178/337] rtmutex: Avoid include hell
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ce29e0980e0f0c30be3d8cc4b8b31287586558f8
+Subject: [PATCH 178/351] rtmutex: Avoid include hell
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=85e8078ff5076a830eefa3ba2c37fd189c184d58
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/features/all/rt/0179-rbtree-don-t-include-the-rcu-header.patch b/debian/patches/features/all/rt/0179-rbtree-don-t-include-the-rcu-header.patch
index a8a55b0..bd63053 100644
--- a/debian/patches/features/all/rt/0179-rbtree-don-t-include-the-rcu-header.patch
+++ b/debian/patches/features/all/rt/0179-rbtree-don-t-include-the-rcu-header.patch
@@ -1,10 +1,10 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 23 Jun 2017 16:22:02 +0200
-Subject: [PATCH 179/337] rbtree: don't include the rcu header
+Subject: [PATCH 179/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=c1b8208c55eccaa4d68683c13885b673c8eff443
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=840207ac18135ed09fe1d0bef03f1a02ebcfba7e
The RCU header pulls in spinlock.h and fails due not yet defined types:
diff --git a/debian/patches/features/all/rt/0180-rt-Add-the-preempt-rt-lock-replacement-APIs.patch b/debian/patches/features/all/rt/0180-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
index 8b41862..c698a49 100644
--- a/debian/patches/features/all/rt/0180-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
+++ b/debian/patches/features/all/rt/0180-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 26 Jul 2009 19:39:56 +0200
-Subject: [PATCH 180/337] rt: Add the preempt-rt lock replacement APIs
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=457e24ade25eae59f688efdb747354212679c927
+Subject: [PATCH 180/351] rt: Add the preempt-rt lock replacement APIs
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d9677beb5cdec54cb9b48723485ed1193c17d10
Map spinlocks, rwlocks, rw_semaphores and semaphores to the rt_mutex
based locking functions for preempt-rt.
@@ -2355,7 +2355,7 @@ index 9aa0fccd5d43..76d0b40d9193 100644
+
+#endif
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 42c29b743057..5adfa81cf487 100644
+index dcc12e735b50..ea1c44f014b8 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -454,7 +454,7 @@ void wake_q_add(struct wake_q_head *head, struct task_struct *task)
diff --git a/debian/patches/features/all/rt/0181-rt-Drop-mutex_disable-on-DEBUG-configs-and-the-GPL-s.patch b/debian/patches/features/all/rt/0181-rt-Drop-mutex_disable-on-DEBUG-configs-and-the-GPL-s.patch
index a175b51..61eb4bd 100644
--- a/debian/patches/features/all/rt/0181-rt-Drop-mutex_disable-on-DEBUG-configs-and-the-GPL-s.patch
+++ b/debian/patches/features/all/rt/0181-rt-Drop-mutex_disable-on-DEBUG-configs-and-the-GPL-s.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 10 Feb 2017 18:21:04 +0100
-Subject: [PATCH 181/337] rt: Drop mutex_disable() on !DEBUG configs and the
+Subject: [PATCH 181/351] rt: Drop mutex_disable() on !DEBUG configs and the
GPL suffix from export symbol
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8b2ec6b65014553eead45460ba78fef2b4d5d24
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c8bdeccb2087245f3fdda1f4365f11b2587d573
Alex Goins reported that mutex_destroy() on RT will force a GPL only symbol
which won't link and therefore fail on a non-GPL kernel module.
diff --git a/debian/patches/features/all/rt/0182-kernel-locking-use-an-exclusive-wait_q-for-sleepers.patch b/debian/patches/features/all/rt/0182-kernel-locking-use-an-exclusive-wait_q-for-sleepers.patch
index d2f72d5..2a41ed7 100644
--- a/debian/patches/features/all/rt/0182-kernel-locking-use-an-exclusive-wait_q-for-sleepers.patch
+++ b/debian/patches/features/all/rt/0182-kernel-locking-use-an-exclusive-wait_q-for-sleepers.patch
@@ -1,10 +1,10 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 22 Jun 2017 17:53:34 +0200
-Subject: [PATCH 182/337] kernel/locking: use an exclusive wait_q for sleepers
+Subject: [PATCH 182/351] kernel/locking: use an exclusive wait_q for sleepers
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=cc4aecb0f1612bd70442581811193a2a66eebc3d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b4b54803cec1806371a6dc409b6b2b3550efc1ed
If a task is queued as a sleeper for a wakeup and never goes to
schedule() (because it just obtained the lock) then it will receive a
@@ -103,7 +103,7 @@ index b99ddf374df1..c1a3b9f099de 100644
wake_q_add(wake_q, waiter->task);
raw_spin_unlock(¤t->pi_lock);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 5adfa81cf487..1f81517d9133 100644
+index ea1c44f014b8..7adb41e4b0f6 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -430,9 +430,15 @@ static bool set_nr_if_polling(struct task_struct *p)
diff --git a/debian/patches/features/all/rt/0183-rtmutex-Add-RT-aware-ww-locks.patch b/debian/patches/features/all/rt/0183-rtmutex-Add-RT-aware-ww-locks.patch
index dc39528..75b748e 100644
--- a/debian/patches/features/all/rt/0183-rtmutex-Add-RT-aware-ww-locks.patch
+++ b/debian/patches/features/all/rt/0183-rtmutex-Add-RT-aware-ww-locks.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
Date: Mon, 28 Oct 2013 09:36:37 +0100
-Subject: [PATCH 183/337] rtmutex: Add RT aware ww locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b6cea976307117b757d2fb8576b6678c395bb8d
+Subject: [PATCH 183/351] rtmutex: Add RT aware ww locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=41f6261e920c6bf80f1fb71362656fbcead21919
lockdep says:
| --------------------------------------------------------------------------
diff --git a/debian/patches/features/all/rt/0184-rtmutex-Provide-rt_mutex_lock_state.patch b/debian/patches/features/all/rt/0184-rtmutex-Provide-rt_mutex_lock_state.patch
index 530aee9..962051b 100644
--- a/debian/patches/features/all/rt/0184-rtmutex-Provide-rt_mutex_lock_state.patch
+++ b/debian/patches/features/all/rt/0184-rtmutex-Provide-rt_mutex_lock_state.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 1 Apr 2017 12:51:00 +0200
-Subject: [PATCH 184/337] rtmutex: Provide rt_mutex_lock_state()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9343c2a49989bbe972eccfa70206fa4ae2258e5f
+Subject: [PATCH 184/351] rtmutex: Provide rt_mutex_lock_state()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f57fba35e2b5cd07df585f6dc132416881d4962a
Allow rtmutex to be locked with arbitrary states. Preparatory patch for the
rt rwsem rework.
diff --git a/debian/patches/features/all/rt/0185-rtmutex-Provide-locked-slowpath.patch b/debian/patches/features/all/rt/0185-rtmutex-Provide-locked-slowpath.patch
index 92c2d7f..cc23834 100644
--- a/debian/patches/features/all/rt/0185-rtmutex-Provide-locked-slowpath.patch
+++ b/debian/patches/features/all/rt/0185-rtmutex-Provide-locked-slowpath.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 1 Apr 2017 12:51:01 +0200
-Subject: [PATCH 185/337] rtmutex: Provide locked slowpath
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e8917b3ee9222a5d560e598c2b7a3c74e8ed3044
+Subject: [PATCH 185/351] rtmutex: Provide locked slowpath
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b66010b0048ec5feb14dab5eb5d46c8c42a7e16e
The new rt rwsem implementation needs rtmutex::wait_lock to protect struct
rw_semaphore. Dropping the lock and reaquiring it for locking the rtmutex
diff --git a/debian/patches/features/all/rt/0186-futex-rtmutex-Cure-RT-double-blocking-issue.patch b/debian/patches/features/all/rt/0186-futex-rtmutex-Cure-RT-double-blocking-issue.patch
index 95faa0a..4835687 100644
--- a/debian/patches/features/all/rt/0186-futex-rtmutex-Cure-RT-double-blocking-issue.patch
+++ b/debian/patches/features/all/rt/0186-futex-rtmutex-Cure-RT-double-blocking-issue.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 9 May 2017 17:11:10 +0200
-Subject: [PATCH 186/337] futex/rtmutex: Cure RT double blocking issue
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98987ce68e46b9b7f0d4c350ca6e0f96877ac5f0
+Subject: [PATCH 186/351] futex/rtmutex: Cure RT double blocking issue
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bcba9aa81d398adcfbddfe1bcbe0300e5b8cb14f
RT has a problem when the wait on a futex/rtmutex got interrupted by a
timeout or a signal. task->pi_blocked_on is still set when returning from
diff --git a/debian/patches/features/all/rt/0187-rwsem-rt-Lift-single-reader-restriction.patch b/debian/patches/features/all/rt/0187-rwsem-rt-Lift-single-reader-restriction.patch
index e860e17..1b58e0f 100644
--- a/debian/patches/features/all/rt/0187-rwsem-rt-Lift-single-reader-restriction.patch
+++ b/debian/patches/features/all/rt/0187-rwsem-rt-Lift-single-reader-restriction.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 1 Apr 2017 12:51:02 +0200
-Subject: [PATCH 187/337] rwsem/rt: Lift single reader restriction
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ebc0c43990be99f87dc198e944189182313fa6bb
+Subject: [PATCH 187/351] rwsem/rt: Lift single reader restriction
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7940550a681c32bfcccd78519d8a2053a0ea0141
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/features/all/rt/0188-ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/debian/patches/features/all/rt/0188-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
index 75a47b6..181b11b 100644
--- a/debian/patches/features/all/rt/0188-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
+++ b/debian/patches/features/all/rt/0188-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 29 Aug 2013 18:21:04 +0200
-Subject: [PATCH 188/337] ptrace: fix ptrace vs tasklist_lock race
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9849eeea616456364c7186ebc8d19625abe0f0d7
+Subject: [PATCH 188/351] ptrace: fix ptrace vs tasklist_lock race
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a891976b84ef23a40b1114b410e005972543cacb
As explained by Alexander Fyodorov <halcy at yandex.ru>:
@@ -117,10 +117,10 @@ index f39a7be98fc1..583ce3aad891 100644
}
spin_unlock_irq(&task->sighand->siglock);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 1f81517d9133..0f42bc89d391 100644
+index 7adb41e4b0f6..da02e71c58e8 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -1397,6 +1397,18 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p)
+@@ -1396,6 +1396,18 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p)
return ret;
}
@@ -139,7 +139,7 @@ index 1f81517d9133..0f42bc89d391 100644
/*
* wait_task_inactive - wait for a thread to unschedule.
*
-@@ -1441,7 +1453,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
+@@ -1440,7 +1452,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
* is actually now running somewhere else!
*/
while (task_running(rq, p)) {
@@ -148,7 +148,7 @@ index 1f81517d9133..0f42bc89d391 100644
return 0;
cpu_relax();
}
-@@ -1456,7 +1468,8 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
+@@ -1455,7 +1467,8 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
running = task_running(rq, p);
queued = task_on_rq_queued(p);
ncsw = 0;
diff --git a/debian/patches/features/all/rt/0189-rcu-Frob-softirq-test.patch b/debian/patches/features/all/rt/0189-rcu-Frob-softirq-test.patch
index ffb9003..7026cf6 100644
--- a/debian/patches/features/all/rt/0189-rcu-Frob-softirq-test.patch
+++ b/debian/patches/features/all/rt/0189-rcu-Frob-softirq-test.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Sat, 13 Aug 2011 00:23:17 +0200
-Subject: [PATCH 189/337] rcu: Frob softirq test
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1e2dd2bf0beef3d803f30f000b5625cfff8e8f25
+Subject: [PATCH 189/351] rcu: Frob softirq test
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5ef8c27aaf0213b7f8a1a7302d8071339c75cd4
With RT_FULL we get the below wreckage:
diff --git a/debian/patches/features/all/rt/0190-rcu-Merge-RCU-bh-into-RCU-preempt.patch b/debian/patches/features/all/rt/0190-rcu-Merge-RCU-bh-into-RCU-preempt.patch
index b1a1eaf..37602a1 100644
--- a/debian/patches/features/all/rt/0190-rcu-Merge-RCU-bh-into-RCU-preempt.patch
+++ b/debian/patches/features/all/rt/0190-rcu-Merge-RCU-bh-into-RCU-preempt.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 5 Oct 2011 11:59:38 -0700
-Subject: [PATCH 190/337] rcu: Merge RCU-bh into RCU-preempt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=278854ad148a5fca7a5edd951f29e1b781f3f9da
+Subject: [PATCH 190/351] rcu: Merge RCU-bh into RCU-preempt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c81040786dfee676b435f9cc77effa805453001
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/features/all/rt/0191-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch b/debian/patches/features/all/rt/0191-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
index b0135ea..1d15944 100644
--- a/debian/patches/features/all/rt/0191-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
+++ b/debian/patches/features/all/rt/0191-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
@@ -1,7 +1,7 @@
From: "Paul E. McKenney" <paulmck at linux.vnet.ibm.com>
Date: Wed, 5 Oct 2011 11:45:18 -0700
-Subject: [PATCH 191/337] rcu: Make ksoftirqd do RCU quiescent states
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8d4c4e4cbdc1e6baf62447966af7a59c75002350
+Subject: [PATCH 191/351] rcu: Make ksoftirqd do RCU quiescent states
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb4b37e7d1720443ae8484b67784be0058be42e5
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/features/all/rt/0192-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch b/debian/patches/features/all/rt/0192-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch
index 68b940f..c890d51 100644
--- a/debian/patches/features/all/rt/0192-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch
+++ b/debian/patches/features/all/rt/0192-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch
@@ -1,8 +1,8 @@
From: Tiejun Chen <tiejun.chen at windriver.com>
Date: Wed, 18 Dec 2013 17:51:49 +0800
-Subject: [PATCH 192/337] rcutree/rcu_bh_qs: Disable irq while calling
+Subject: [PATCH 192/351] rcutree/rcu_bh_qs: Disable irq while calling
rcu_preempt_qs()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d70ca14fad24820b5548528b1f65c91032f2244f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=05db6a8cb6304233eb3f2a60f6fc99f90bc115f7
Any callers to the function rcu_preempt_qs() must disable irqs in
order to protect the assignment to ->rcu_read_unlock_special. In
diff --git a/debian/patches/features/all/rt/0193-tty-serial-omap-Make-the-locking-RT-aware.patch b/debian/patches/features/all/rt/0193-tty-serial-omap-Make-the-locking-RT-aware.patch
index 822df60..630e9ae 100644
--- a/debian/patches/features/all/rt/0193-tty-serial-omap-Make-the-locking-RT-aware.patch
+++ b/debian/patches/features/all/rt/0193-tty-serial-omap-Make-the-locking-RT-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 28 Jul 2011 13:32:57 +0200
-Subject: [PATCH 193/337] tty/serial/omap: Make the locking RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=885c62ba3b9131549f30e140aa1dd843880edca0
+Subject: [PATCH 193/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=6831c42db052ea23e3e9bbfe1010c08cd245d622
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
@@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
-index 44e5b5bf713b..400140d1dfff 100644
+index 472ba3c813c1..e654cb421fb7 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -1257,13 +1257,10 @@ serial_omap_console_write(struct console *co, const char *s,
diff --git a/debian/patches/features/all/rt/0194-tty-serial-pl011-Make-the-locking-work-on-RT.patch b/debian/patches/features/all/rt/0194-tty-serial-pl011-Make-the-locking-work-on-RT.patch
index 872bd1c..c902929 100644
--- a/debian/patches/features/all/rt/0194-tty-serial-pl011-Make-the-locking-work-on-RT.patch
+++ b/debian/patches/features/all/rt/0194-tty-serial-pl011-Make-the-locking-work-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 8 Jan 2013 21:36:51 +0100
-Subject: [PATCH 194/337] 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=220f582c1b6a4ba7a364a1232f3996189bf78aa5
+Subject: [PATCH 194/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=8e14a8061e9ba40b0bdb5f4be05b3848e5d84c2b
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/features/all/rt/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch b/debian/patches/features/all/rt/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch
index ab82ef9..b129409 100644
--- a/debian/patches/features/all/rt/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch
+++ b/debian/patches/features/all/rt/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch
@@ -1,10 +1,10 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Wed, 14 Dec 2011 13:05:54 +0100
-Subject: [PATCH 195/337] rt: Improve the serial console PASS_LIMIT
+Subject: [PATCH 195/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=2d34927c29470dad5cdee172fafb2c6101d56c91
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=305c878b6fade44a35656ea5059d7c20643085a8
Beyond the warning:
diff --git a/debian/patches/features/all/rt/0196-tty-serial-8250-don-t-take-the-trylock-during-oops.patch b/debian/patches/features/all/rt/0196-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
index d74a70c..deb1e87 100644
--- a/debian/patches/features/all/rt/0196-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
+++ b/debian/patches/features/all/rt/0196-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 11 Apr 2016 16:55:02 +0200
-Subject: [PATCH 196/337] 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=2d10e71ff6459672709bd00abc5658727342788b
+Subject: [PATCH 196/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=7fe85278972fe09701a6dd91772ddc9dd0ad6366
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 at 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 1ef31e3ee4a1..105bbc01b4e9 100644
+index f6e4373a8850..004931f34d04 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
-@@ -3140,10 +3140,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
+@@ -3143,10 +3143,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
serial8250_rpm_get(up);
diff --git a/debian/patches/features/all/rt/0197-wait.h-include-atomic.h.patch b/debian/patches/features/all/rt/0197-wait.h-include-atomic.h.patch
index 6daca2c..7e15b20 100644
--- a/debian/patches/features/all/rt/0197-wait.h-include-atomic.h.patch
+++ b/debian/patches/features/all/rt/0197-wait.h-include-atomic.h.patch
@@ -1,10 +1,10 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 28 Oct 2013 12:19:57 +0100
-Subject: [PATCH 197/337] wait.h: include atomic.h
+Subject: [PATCH 197/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=b62ec12490d6ef73d3335599e55ed1a392e26112
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ebde33cfd1182abcf5c296fc4f5e470475cc35cb
| CC init/main.o
|In file included from include/linux/mmzone.h:9:0,
diff --git a/debian/patches/features/all/rt/0198-work-simple-Simple-work-queue-implemenation.patch b/debian/patches/features/all/rt/0198-work-simple-Simple-work-queue-implemenation.patch
index 35d31fe..b5b3064 100644
--- a/debian/patches/features/all/rt/0198-work-simple-Simple-work-queue-implemenation.patch
+++ b/debian/patches/features/all/rt/0198-work-simple-Simple-work-queue-implemenation.patch
@@ -1,7 +1,7 @@
From: Daniel Wagner <daniel.wagner at bmw-carit.de>
Date: Fri, 11 Jul 2014 15:26:11 +0200
-Subject: [PATCH 198/337] work-simple: Simple work queue implemenation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b45a60ffde0b5157fc82dd65657b2395f3a67e72
+Subject: [PATCH 198/351] work-simple: Simple work queue implemenation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f8d32488f522317e756b32ffe574419e4dbd463
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/features/all/rt/0199-completion-Use-simple-wait-queues.patch b/debian/patches/features/all/rt/0199-completion-Use-simple-wait-queues.patch
index d18ff06..22b0a25 100644
--- a/debian/patches/features/all/rt/0199-completion-Use-simple-wait-queues.patch
+++ b/debian/patches/features/all/rt/0199-completion-Use-simple-wait-queues.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 11 Jan 2013 11:23:51 +0100
-Subject: [PATCH 199/337] completion: Use simple wait queues
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7e2734df8110e0e24e089732d509867423e1698c
+Subject: [PATCH 199/351] completion: Use simple wait queues
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=439088f209b2b5919065a6c444a5596999d88acd
Completions have no long lasting callbacks and therefor do not need
the complex waitqueue variant. Use simple waitqueues which reduces the
@@ -37,7 +37,7 @@ index bca6935a94db..d7a35ee34d03 100644
}
break;
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
-index f9c99803a43d..e7adb023b921 100644
+index 4fce83266926..5e902a89d8e6 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -1593,7 +1593,7 @@ static void ffs_data_put(struct ffs_data *ffs)
@@ -306,10 +306,10 @@ index 8d0f35debf35..b62cf6400fe0 100644
}
EXPORT_SYMBOL(completion_done);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 0f42bc89d391..fe7a7a8353cc 100644
+index da02e71c58e8..13cf7061ee36 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3336,7 +3336,10 @@ void migrate_disable(void)
+@@ -3335,7 +3335,10 @@ void migrate_disable(void)
}
#ifdef CONFIG_SCHED_DEBUG
@@ -321,7 +321,7 @@ index 0f42bc89d391..fe7a7a8353cc 100644
#endif
if (p->migrate_disable) {
-@@ -3363,7 +3366,10 @@ void migrate_enable(void)
+@@ -3362,7 +3365,10 @@ void migrate_enable(void)
}
#ifdef CONFIG_SCHED_DEBUG
diff --git a/debian/patches/features/all/rt/0200-fs-aio-simple-simple-work.patch b/debian/patches/features/all/rt/0200-fs-aio-simple-simple-work.patch
index 992f7b7..3819547 100644
--- a/debian/patches/features/all/rt/0200-fs-aio-simple-simple-work.patch
+++ b/debian/patches/features/all/rt/0200-fs-aio-simple-simple-work.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 16 Feb 2015 18:49:10 +0100
-Subject: [PATCH 200/337] fs/aio: simple simple work
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a4d0f8cc676a491893c4d2a28929b0f6dcd2b8d1
+Subject: [PATCH 200/351] fs/aio: simple simple work
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2cf79576d15f6fe4746fac3ef3bac8b39594b37d
|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/features/all/rt/0201-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch b/debian/patches/features/all/rt/0201-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch
index a1bab94..1661688 100644
--- a/debian/patches/features/all/rt/0201-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch
+++ b/debian/patches/features/all/rt/0201-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 21 Aug 2013 17:48:46 +0200
-Subject: [PATCH 201/337] genirq: Do not invoke the affinity callback via a
+Subject: [PATCH 201/351] genirq: Do not invoke the affinity callback via a
workqueue on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c8f2280b172185fcaa3ec345a2a6394ca78df2e2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2e148d5859ff5d5acd7f444bb4b2ba029cbded92
Joe Korty reported, that __irq_set_affinity_locked() schedules a
workqueue while holding a rawlock which results in a might_sleep()
diff --git a/debian/patches/features/all/rt/0202-hrtimer-Move-schedule_work-call-to-helper-thread.patch b/debian/patches/features/all/rt/0202-hrtimer-Move-schedule_work-call-to-helper-thread.patch
index 5e4e0ec..e829406 100644
--- a/debian/patches/features/all/rt/0202-hrtimer-Move-schedule_work-call-to-helper-thread.patch
+++ b/debian/patches/features/all/rt/0202-hrtimer-Move-schedule_work-call-to-helper-thread.patch
@@ -1,7 +1,7 @@
From: Yang Shi <yang.shi at windriver.com>
Date: Mon, 16 Sep 2013 14:09:19 -0700
-Subject: [PATCH 202/337] hrtimer: Move schedule_work call to helper thread
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=544aaf268a02c236916a52f6c4a12e4f14077201
+Subject: [PATCH 202/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=3faa57c11f1d08ed370e5ca73e7ccc8381f98987
When run ltp leapsec_timer test, the following call trace is caught:
diff --git a/debian/patches/features/all/rt/0203-locking-percpu-rwsem-Remove-preempt_disable-variants.patch b/debian/patches/features/all/rt/0203-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
index 5d38bd2..8324ee7 100644
--- a/debian/patches/features/all/rt/0203-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
+++ b/debian/patches/features/all/rt/0203-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 23 Nov 2016 16:29:32 +0100
-Subject: [PATCH 203/337] locking/percpu-rwsem: Remove preempt_disable variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=399ce8dd4a30ec58a2419404f48455ebc911f0f4
+Subject: [PATCH 203/351] locking/percpu-rwsem: Remove preempt_disable variants
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3cd88a296ed3973a3f2d2d82e34bbba6ddd013da
Effective revert commit:
diff --git a/debian/patches/features/all/rt/0204-fs-namespace-preemption-fix.patch b/debian/patches/features/all/rt/0204-fs-namespace-preemption-fix.patch
index 0adbd48..27a84d9 100644
--- a/debian/patches/features/all/rt/0204-fs-namespace-preemption-fix.patch
+++ b/debian/patches/features/all/rt/0204-fs-namespace-preemption-fix.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 19 Jul 2009 08:44:27 -0500
-Subject: [PATCH 204/337] fs: namespace preemption fix
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=417362b74a03f52fab5158643d999ed8289503f6
+Subject: [PATCH 204/351] fs: namespace preemption fix
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7d6de0d7098fe1f886968f180a667543ab0b9f29
On RT we cannot loop with preemption disabled here as
mnt_make_readonly() might have been preempted. We can safely enable
diff --git a/debian/patches/features/all/rt/0205-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch b/debian/patches/features/all/rt/0205-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
index d1278b1..2027e5d 100644
--- a/debian/patches/features/all/rt/0205-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
+++ b/debian/patches/features/all/rt/0205-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
@@ -1,8 +1,8 @@
From: Yong Zhang <yong.zhang0 at gmail.com>
Date: Tue, 15 May 2012 13:53:56 +0800
-Subject: [PATCH 205/337] mm: Protect activate_mm() by
+Subject: [PATCH 205/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=784496562a468d9aefdd3859b7ff656cea5922ab
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e8bfe7ea326d36b8c5a8121fe6b617cfc9c00b6d
User preempt_*_rt instead of local_irq_*_rt or otherwise there will be
warning on ARM like below:
diff --git a/debian/patches/features/all/rt/0206-block-Turn-off-warning-which-is-bogus-on-RT.patch b/debian/patches/features/all/rt/0206-block-Turn-off-warning-which-is-bogus-on-RT.patch
index 541f376..084c2dc 100644
--- a/debian/patches/features/all/rt/0206-block-Turn-off-warning-which-is-bogus-on-RT.patch
+++ b/debian/patches/features/all/rt/0206-block-Turn-off-warning-which-is-bogus-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 14 Jun 2011 17:05:09 +0200
-Subject: [PATCH 206/337] block: Turn off warning which is bogus on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5dd5aafb9089dcb09b443b02559a2e2d663968e9
+Subject: [PATCH 206/351] block: Turn off warning which is bogus on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0cfcd5218dd65049b69bd53aaafa4fef28a01d65
On -RT the context is always with IRQs enabled. Ignore this warning on -RT.
@@ -11,7 +11,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/blk-core.c b/block/blk-core.c
-index a6bbeb48495b..8477b6e281df 100644
+index 6ca17282da87..9d70e3d27f74 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -233,7 +233,7 @@ EXPORT_SYMBOL(blk_start_queue_async);
diff --git a/debian/patches/features/all/rt/0207-fs-ntfs-disable-interrupt-only-on-RT.patch b/debian/patches/features/all/rt/0207-fs-ntfs-disable-interrupt-only-on-RT.patch
index cb0091c..025a6a7 100644
--- a/debian/patches/features/all/rt/0207-fs-ntfs-disable-interrupt-only-on-RT.patch
+++ b/debian/patches/features/all/rt/0207-fs-ntfs-disable-interrupt-only-on-RT.patch
@@ -1,7 +1,7 @@
From: Mike Galbraith <efault at gmx.de>
Date: Fri, 3 Jul 2009 08:44:12 -0500
-Subject: [PATCH 207/337] fs: ntfs: disable interrupt only on !RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f343b2761d41c4e8c7cc9f2f071f445924eceb5d
+Subject: [PATCH 207/351] fs: ntfs: disable interrupt only on !RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=44355bff88c128e750c2005a2f3d6252e7b809fe
On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote:
> * Nick Piggin <nickpiggin at yahoo.com.au> wrote:
diff --git a/debian/patches/features/all/rt/0208-fs-jbd2-pull-your-plug-when-waiting-for-space.patch b/debian/patches/features/all/rt/0208-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
index 071ff52..12bebf8 100644
--- a/debian/patches/features/all/rt/0208-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
+++ b/debian/patches/features/all/rt/0208-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 17 Feb 2014 17:30:03 +0100
-Subject: [PATCH 208/337] fs: jbd2: pull your plug when waiting for space
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=74a01968343a60e3a9a96f7c11217adae77f94d8
+Subject: [PATCH 208/351] fs: jbd2: pull your plug when waiting for space
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e88fa76dcd3daf908ca6be92231f2307d8d9d16d
Two cps in parallel managed to stall the the ext4 fs. It seems that
journal code is either waiting for locks or sleeping waiting for
diff --git a/debian/patches/features/all/rt/0209-x86-Convert-mce-timer-to-hrtimer.patch b/debian/patches/features/all/rt/0209-x86-Convert-mce-timer-to-hrtimer.patch
index 0187166..ba045cd 100644
--- a/debian/patches/features/all/rt/0209-x86-Convert-mce-timer-to-hrtimer.patch
+++ b/debian/patches/features/all/rt/0209-x86-Convert-mce-timer-to-hrtimer.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 13 Dec 2010 16:33:39 +0100
-Subject: [PATCH 209/337] x86: Convert mce timer to hrtimer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bdddc92b21190d31f19858cdaa55f73a6d766a65
+Subject: [PATCH 209/351] x86: Convert mce timer to hrtimer
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b4856cb2ca459dfa88471705147165586bc673bb
mce_timer is started in atomic contexts of cpu bringup. This results
in might_sleep() warnings on RT. Convert mce_timer to a hrtimer to
diff --git a/debian/patches/features/all/rt/0210-x86-mce-use-swait-queue-for-mce-wakeups.patch b/debian/patches/features/all/rt/0210-x86-mce-use-swait-queue-for-mce-wakeups.patch
index 2c9a775..c10cfc1 100644
--- a/debian/patches/features/all/rt/0210-x86-mce-use-swait-queue-for-mce-wakeups.patch
+++ b/debian/patches/features/all/rt/0210-x86-mce-use-swait-queue-for-mce-wakeups.patch
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Fri, 27 Feb 2015 15:20:37 +0100
-Subject: [PATCH 210/337] x86/mce: use swait queue for mce wakeups
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3254afe3585748cbfaef2b9ef65efb70df5757ee
+Subject: [PATCH 210/351] x86/mce: use swait queue for mce wakeups
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=599e2c48e126db7663f3e045f64436cdbadf4f00
We had a customer report a lockup on a 3.0-rt kernel that had the
following backtrace:
diff --git a/debian/patches/features/all/rt/0211-x86-stackprotector-Avoid-random-pool-on-rt.patch b/debian/patches/features/all/rt/0211-x86-stackprotector-Avoid-random-pool-on-rt.patch
index b231917..4b6c90c 100644
--- a/debian/patches/features/all/rt/0211-x86-stackprotector-Avoid-random-pool-on-rt.patch
+++ b/debian/patches/features/all/rt/0211-x86-stackprotector-Avoid-random-pool-on-rt.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 16 Dec 2010 14:25:18 +0100
-Subject: [PATCH 211/337] x86: stackprotector: Avoid random pool on rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=400d52f52a014b8d6d05f7ecc11ec51b81e42663
+Subject: [PATCH 211/351] x86: stackprotector: Avoid random pool on rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=79d9eb5be9d1be9f30b1849abe0d69b492a45b63
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/features/all/rt/0212-x86-Use-generic-rwsem_spinlocks-on-rt.patch b/debian/patches/features/all/rt/0212-x86-Use-generic-rwsem_spinlocks-on-rt.patch
index 9005afa..ec9aa2e 100644
--- a/debian/patches/features/all/rt/0212-x86-Use-generic-rwsem_spinlocks-on-rt.patch
+++ b/debian/patches/features/all/rt/0212-x86-Use-generic-rwsem_spinlocks-on-rt.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 26 Jul 2009 02:21:32 +0200
-Subject: [PATCH 212/337] x86: Use generic rwsem_spinlocks on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5ff0e1fdde99309f50ad1716926af2c50046b6d8
+Subject: [PATCH 212/351] x86: Use generic rwsem_spinlocks on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c9a625db9ea233fc1c756ae27f12f0356e677f2
Simplifies the separation of anon_rw_semaphores and rw_semaphores for
-rt.
@@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index bada636d1065..935b5fbacd85 100644
+index b9c546a305a4..88c67b3a25a4 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -232,8 +232,11 @@ config ARCH_MAY_HAVE_PC_FDC
diff --git a/debian/patches/features/all/rt/0213-x86-UV-raw_spinlock-conversion.patch b/debian/patches/features/all/rt/0213-x86-UV-raw_spinlock-conversion.patch
index b89e3ea..c4b437d 100644
--- a/debian/patches/features/all/rt/0213-x86-UV-raw_spinlock-conversion.patch
+++ b/debian/patches/features/all/rt/0213-x86-UV-raw_spinlock-conversion.patch
@@ -1,7 +1,7 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Sun, 2 Nov 2014 08:31:37 +0100
-Subject: [PATCH 213/337] x86: UV: raw_spinlock conversion
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e4465d05f767ff494bd879b541c9091b0bf10c72
+Subject: [PATCH 213/351] x86: UV: raw_spinlock conversion
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c7a7c75f834180f08f88d4310facc6bca4e3286d
Shrug. Lots of hobbyists have a beast in their basement, right?
diff --git a/debian/patches/features/all/rt/0214-thermal-Defer-thermal-wakups-to-threads.patch b/debian/patches/features/all/rt/0214-thermal-Defer-thermal-wakups-to-threads.patch
index 5cacb42..e463bc8 100644
--- a/debian/patches/features/all/rt/0214-thermal-Defer-thermal-wakups-to-threads.patch
+++ b/debian/patches/features/all/rt/0214-thermal-Defer-thermal-wakups-to-threads.patch
@@ -1,7 +1,7 @@
From: Daniel Wagner <wagi at monom.org>
Date: Tue, 17 Feb 2015 09:37:44 +0100
-Subject: [PATCH 214/337] thermal: Defer thermal wakups to threads
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7ddac21ed20be526d2dfaf95904b4c951e5e28f8
+Subject: [PATCH 214/351] thermal: Defer thermal wakups to threads
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8890b285e7bbe0399acc9769b3747d5f40721510
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/features/all/rt/0215-fs-epoll-Do-not-disable-preemption-on-RT.patch b/debian/patches/features/all/rt/0215-fs-epoll-Do-not-disable-preemption-on-RT.patch
index 762331f..d685ac0 100644
--- a/debian/patches/features/all/rt/0215-fs-epoll-Do-not-disable-preemption-on-RT.patch
+++ b/debian/patches/features/all/rt/0215-fs-epoll-Do-not-disable-preemption-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 8 Jul 2011 16:35:35 +0200
-Subject: [PATCH 215/337] fs/epoll: Do not disable preemption on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=017d06aa3d052e4f87398e46c0a449d212051e9f
+Subject: [PATCH 215/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=86c983ae33d605addc6a030fc87a51d2c44e7a58
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/features/all/rt/0216-mm-vmalloc-Another-preempt-disable-region-which-suck.patch b/debian/patches/features/all/rt/0216-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
index 5f05768..1ea0e26 100644
--- a/debian/patches/features/all/rt/0216-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
+++ b/debian/patches/features/all/rt/0216-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 12 Jul 2011 11:39:36 +0200
-Subject: [PATCH 216/337] mm/vmalloc: Another preempt disable region which
+Subject: [PATCH 216/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=cfe7f3ceedcdb0dc260dc8c831901d4f02d71cdc
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a34fa4868e9a19a6cda4ffb2cefe7c8d1afd238
Avoid the preempt disable version of get_cpu_var(). The inner-lock should
provide enough serialisation.
diff --git a/debian/patches/features/all/rt/0217-block-mq-use-cpu_light.patch b/debian/patches/features/all/rt/0217-block-mq-use-cpu_light.patch
index b71b37b..fe8e6af 100644
--- a/debian/patches/features/all/rt/0217-block-mq-use-cpu_light.patch
+++ b/debian/patches/features/all/rt/0217-block-mq-use-cpu_light.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 9 Apr 2014 10:37:23 +0200
-Subject: [PATCH 217/337] block: mq: use cpu_light()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a57ad7a5ac7db3b52d1c36da6464357b3fc848b6
+Subject: [PATCH 217/351] block: mq: use cpu_light()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4995cf457c8a65fcabe167bd8e76a4fa981adcb1
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/features/all/rt/0218-block-mq-do-not-invoke-preempt_disable.patch b/debian/patches/features/all/rt/0218-block-mq-do-not-invoke-preempt_disable.patch
index 7a9d720..fba59cc 100644
--- a/debian/patches/features/all/rt/0218-block-mq-do-not-invoke-preempt_disable.patch
+++ b/debian/patches/features/all/rt/0218-block-mq-do-not-invoke-preempt_disable.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 218/337] block/mq: do not invoke preempt_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f9ed0b2140a2fa993dc98c33b8473032408511c7
+Subject: [PATCH 218/351] block/mq: do not invoke preempt_disable()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e93f2bf68d6b3a43c534c1cff63c369f9a36897f
preempt_disable() and get_cpu() don't play well together with the sleeping
locks it tries to allocate later.
diff --git a/debian/patches/features/all/rt/0219-block-mq-don-t-complete-requests-via-IPI.patch b/debian/patches/features/all/rt/0219-block-mq-don-t-complete-requests-via-IPI.patch
index d863150..af46598 100644
--- a/debian/patches/features/all/rt/0219-block-mq-don-t-complete-requests-via-IPI.patch
+++ b/debian/patches/features/all/rt/0219-block-mq-don-t-complete-requests-via-IPI.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 29 Jan 2015 15:10:08 +0100
-Subject: [PATCH 219/337] block/mq: don't complete requests via IPI
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=46263aac56691867feed51bfb1d7747221d5e532
+Subject: [PATCH 219/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=c964c3696f88eec45bf4cb6655fbe0583cff81a2
The IPI runs in hardirq context and there are sleeping locks. This patch
moves the completion into a workqueue.
@@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
4 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/block/blk-core.c b/block/blk-core.c
-index 8477b6e281df..f3537ddd3c0b 100644
+index 9d70e3d27f74..1ff9fbcbe320 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -125,6 +125,9 @@ void blk_rq_init(struct request_queue *q, struct request *rq)
diff --git a/debian/patches/features/all/rt/0220-md-raid5-Make-raid5_percpu-handling-RT-aware.patch b/debian/patches/features/all/rt/0220-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
index 171ed10..2f12a20 100644
--- a/debian/patches/features/all/rt/0220-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
+++ b/debian/patches/features/all/rt/0220-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 6 Apr 2010 16:51:31 +0200
-Subject: [PATCH 220/337] md: raid5: Make raid5_percpu handling RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=22666d0083988441a94d657540afee7e7e196071
+Subject: [PATCH 220/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=807eefa6420c86fab6734776b6447a4e38d9a0d7
__raid_run_ops() disables preemption with get_cpu() around the access
to the raid5_percpu variables. That causes scheduling while atomic
diff --git a/debian/patches/features/all/rt/0221-rt-Introduce-cpu_chill.patch b/debian/patches/features/all/rt/0221-rt-Introduce-cpu_chill.patch
index c47260d..f7d2360 100644
--- a/debian/patches/features/all/rt/0221-rt-Introduce-cpu_chill.patch
+++ b/debian/patches/features/all/rt/0221-rt-Introduce-cpu_chill.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 7 Mar 2012 20:51:03 +0100
-Subject: [PATCH 221/337] rt: Introduce cpu_chill()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ce5b985251ebf64eea4d60ea781ba2fd61747e23
+Subject: [PATCH 221/351] rt: Introduce cpu_chill()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a90e2f63a0d3634549561fbe5a68766b7f0dc61
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/features/all/rt/0222-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch b/debian/patches/features/all/rt/0222-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch
index 98ded7a..86f86fd 100644
--- a/debian/patches/features/all/rt/0222-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch
+++ b/debian/patches/features/all/rt/0222-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Tue, 4 Mar 2014 12:28:32 -0500
-Subject: [PATCH 222/337] cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6efac0bf07bffbcf39794fb62807e3e2e0cc3583
+Subject: [PATCH 222/351] cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b1da223b42215b141707dd955d839a0dadd99019
We hit another bug that was caused by switching cpu_chill() from
msleep() to hrtimer_nanosleep().
diff --git a/debian/patches/features/all/rt/0223-block-blk-mq-Use-swait.patch b/debian/patches/features/all/rt/0223-block-blk-mq-Use-swait.patch
index e8068a9..d723dc2 100644
--- a/debian/patches/features/all/rt/0223-block-blk-mq-Use-swait.patch
+++ b/debian/patches/features/all/rt/0223-block-blk-mq-Use-swait.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 13 Feb 2015 11:01:26 +0100
-Subject: [PATCH 223/337] block: blk-mq: Use swait
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b02e2361c5e42553a61ea4bbc94935952174fe6e
+Subject: [PATCH 223/351] block: blk-mq: Use swait
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4015dace9fb83207d95049fcdbbf01fa008a61ef
| 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
@@ -45,10 +45,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
-index f3537ddd3c0b..e531da0c9232 100644
+index 1ff9fbcbe320..5808a85a7974 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
-@@ -662,7 +662,7 @@ int blk_queue_enter(struct request_queue *q, bool nowait)
+@@ -663,7 +663,7 @@ int blk_queue_enter(struct request_queue *q, bool nowait)
if (nowait)
return -EBUSY;
@@ -57,7 +57,7 @@ index f3537ddd3c0b..e531da0c9232 100644
!atomic_read(&q->mq_freeze_depth) ||
blk_queue_dying(q));
if (blk_queue_dying(q))
-@@ -682,7 +682,7 @@ static void blk_queue_usage_counter_release(struct percpu_ref *ref)
+@@ -683,7 +683,7 @@ static void blk_queue_usage_counter_release(struct percpu_ref *ref)
struct request_queue *q =
container_of(ref, struct request_queue, q_usage_counter);
@@ -66,7 +66,7 @@ index f3537ddd3c0b..e531da0c9232 100644
}
static void blk_rq_timed_out_timer(unsigned long data)
-@@ -751,7 +751,7 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id)
+@@ -753,7 +753,7 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id)
q->bypass_depth = 1;
__set_bit(QUEUE_FLAG_BYPASS, &q->queue_flags);
diff --git a/debian/patches/features/all/rt/0224-block-Use-cpu_chill-for-retry-loops.patch b/debian/patches/features/all/rt/0224-block-Use-cpu_chill-for-retry-loops.patch
index 946742c..2fe1c6a 100644
--- a/debian/patches/features/all/rt/0224-block-Use-cpu_chill-for-retry-loops.patch
+++ b/debian/patches/features/all/rt/0224-block-Use-cpu_chill-for-retry-loops.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 20 Dec 2012 18:28:26 +0100
-Subject: [PATCH 224/337] block: Use cpu_chill() for retry loops
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4bb4b7d596bd8a52680310cd4d88dc2f860630f7
+Subject: [PATCH 224/351] block: Use cpu_chill() for retry loops
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d0adc2ca37964a2e5b5573c2f4f1730027afd9a6
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/features/all/rt/0225-fs-dcache-Use-cpu_chill-in-trylock-loops.patch b/debian/patches/features/all/rt/0225-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
index 79e1dbc..5ecfff1 100644
--- a/debian/patches/features/all/rt/0225-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
+++ b/debian/patches/features/all/rt/0225-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 7 Mar 2012 21:00:34 +0100
-Subject: [PATCH 225/337] fs: dcache: Use cpu_chill() in trylock loops
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ff1c5f15f6e1ba4875f1bdc5afb420a09c29515f
+Subject: [PATCH 225/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=4ef996a87817b5c15ec6e9cf4ec9e3ad608d4587
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/features/all/rt/0226-net-Use-cpu_chill-instead-of-cpu_relax.patch b/debian/patches/features/all/rt/0226-net-Use-cpu_chill-instead-of-cpu_relax.patch
index f854bb7..a80bd5a 100644
--- a/debian/patches/features/all/rt/0226-net-Use-cpu_chill-instead-of-cpu_relax.patch
+++ b/debian/patches/features/all/rt/0226-net-Use-cpu_chill-instead-of-cpu_relax.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 7 Mar 2012 21:10:04 +0100
-Subject: [PATCH 226/337] net: Use cpu_chill() instead of cpu_relax()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a17e5532fa1a9ecb1b47cdb53709d2a52ab727b3
+Subject: [PATCH 226/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=5f3ff8158446f154b0cf0e302f07db92ef0db443
Retry loops on RT might loop forever when the modifying side was
preempted. Use cpu_chill() instead of cpu_relax() to let the system
@@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
-index b17f9097c6fe..dd181bdadfb8 100644
+index e7f6657269e0..f635b773d28f 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -63,6 +63,7 @@
diff --git a/debian/patches/features/all/rt/0227-fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/debian/patches/features/all/rt/0227-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
index 2e2afcc..3da9dde 100644
--- a/debian/patches/features/all/rt/0227-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
+++ b/debian/patches/features/all/rt/0227-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 14 Sep 2016 14:35:49 +0200
-Subject: [PATCH 227/337] fs/dcache: use swait_queue instead of waitqueue
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e7720665d54c1cd813a80fc3940b666a7d3bd483
+Subject: [PATCH 227/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=db8a4c70e86b558691babe8b6afdce311ccf840c
__d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock()
which disables preemption. As a workaround convert it to swait.
@@ -119,7 +119,7 @@ index e7d125c23aa6..072a2f724437 100644
if (unlikely(IS_DEADDIR(dir_inode)))
return -ENOENT;
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
-index 63ed5180e544..ba90d41d3c34 100644
+index c1cc9707bbb3..5f08183dddcd 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -485,7 +485,7 @@ static
@@ -131,7 +131,7 @@ index 63ed5180e544..ba90d41d3c34 100644
struct dentry *dentry;
struct dentry *alias;
struct inode *dir = d_inode(parent);
-@@ -1491,7 +1491,7 @@ int nfs_atomic_open(struct inode *dir, struct dentry *dentry,
+@@ -1492,7 +1492,7 @@ int nfs_atomic_open(struct inode *dir, struct dentry *dentry,
struct file *file, unsigned open_flags,
umode_t mode, int *opened)
{
diff --git a/debian/patches/features/all/rt/0228-workqueue-Use-normal-rcu.patch b/debian/patches/features/all/rt/0228-workqueue-Use-normal-rcu.patch
index b894192..658154f 100644
--- a/debian/patches/features/all/rt/0228-workqueue-Use-normal-rcu.patch
+++ b/debian/patches/features/all/rt/0228-workqueue-Use-normal-rcu.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 24 Jul 2013 15:26:54 +0200
-Subject: [PATCH 228/337] workqueue: Use normal rcu
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2728eef8145bf84d67a4e89aacadaf96815eb41c
+Subject: [PATCH 228/351] workqueue: Use normal rcu
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51b21aec93a42a3f112772db63d8d097bd35127f
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
diff --git a/debian/patches/features/all/rt/0229-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch b/debian/patches/features/all/rt/0229-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
index 42e09c3..948a326 100644
--- a/debian/patches/features/all/rt/0229-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
+++ b/debian/patches/features/all/rt/0229-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 21:42:26 +0200
-Subject: [PATCH 229/337] workqueue: Use local irq lock instead of irq disable
+Subject: [PATCH 229/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=84d2d95aedc05ad942092a2662021dc95434acbc
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d2774944585ea9690dfd3412410e11f1b4bec752
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.
diff --git a/debian/patches/features/all/rt/0230-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch b/debian/patches/features/all/rt/0230-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
index ad3b930..65ca93b 100644
--- a/debian/patches/features/all/rt/0230-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
+++ b/debian/patches/features/all/rt/0230-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 1 Jul 2013 11:02:42 +0200
-Subject: [PATCH 230/337] workqueue: Prevent workqueue versus ata-piix livelock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b3a082448e05eab0fc5152c4bd0177e3487b5163
+Subject: [PATCH 230/351] workqueue: Prevent workqueue versus ata-piix livelock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8fc431e1a8e9cfa4219aa71b74d9bc1e29708206
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
diff --git a/debian/patches/features/all/rt/0231-sched-Distangle-worker-accounting-from-rqlock.patch b/debian/patches/features/all/rt/0231-sched-Distangle-worker-accounting-from-rqlock.patch
index 2b55271..fbd030c 100644
--- a/debian/patches/features/all/rt/0231-sched-Distangle-worker-accounting-from-rqlock.patch
+++ b/debian/patches/features/all/rt/0231-sched-Distangle-worker-accounting-from-rqlock.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 22 Jun 2011 19:47:03 +0200
-Subject: [PATCH 231/337] sched: Distangle worker accounting from rqlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=df1b8ec88010f581fdf50a27cec880e374de1125
+Subject: [PATCH 231/351] sched: Distangle worker accounting from rqlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=35cca0b9744eedfa527ca8814429dfe375eb898d
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
@@ -30,10 +30,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
3 files changed, 41 insertions(+), 97 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index fe7a7a8353cc..f787ad3e9d90 100644
+index 13cf7061ee36..63f536082449 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -1724,10 +1724,6 @@ static inline void ttwu_activate(struct rq *rq, struct task_struct *p, int en_fl
+@@ -1723,10 +1723,6 @@ static inline void ttwu_activate(struct rq *rq, struct task_struct *p, int en_fl
{
activate_task(rq, p, en_flags);
p->on_rq = TASK_ON_RQ_QUEUED;
@@ -44,7 +44,7 @@ index fe7a7a8353cc..f787ad3e9d90 100644
}
/*
-@@ -2164,53 +2160,6 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
+@@ -2163,53 +2159,6 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
return success;
}
@@ -98,7 +98,7 @@ index fe7a7a8353cc..f787ad3e9d90 100644
/**
* wake_up_process - Wake up a specific process
* @p: The process to be woken up.
-@@ -3507,21 +3456,6 @@ static void __sched notrace __schedule(bool preempt)
+@@ -3506,21 +3455,6 @@ static void __sched notrace __schedule(bool preempt)
} else {
deactivate_task(rq, prev, DEQUEUE_SLEEP);
prev->on_rq = 0;
@@ -120,7 +120,7 @@ index fe7a7a8353cc..f787ad3e9d90 100644
}
switch_count = &prev->nvcsw;
}
-@@ -3580,6 +3514,14 @@ static inline void sched_submit_work(struct task_struct *tsk)
+@@ -3579,6 +3513,14 @@ static inline void sched_submit_work(struct task_struct *tsk)
{
if (!tsk->state || tsk_is_pi_blocked(tsk))
return;
@@ -135,7 +135,7 @@ index fe7a7a8353cc..f787ad3e9d90 100644
/*
* If we are going to sleep and we have plugged IO queued,
* make sure to submit it to avoid deadlocks.
-@@ -3588,6 +3530,12 @@ static inline void sched_submit_work(struct task_struct *tsk)
+@@ -3587,6 +3529,12 @@ static inline void sched_submit_work(struct task_struct *tsk)
blk_schedule_flush_plug(tsk);
}
@@ -148,7 +148,7 @@ index fe7a7a8353cc..f787ad3e9d90 100644
asmlinkage __visible void __sched schedule(void)
{
struct task_struct *tsk = current;
-@@ -3598,6 +3546,7 @@ asmlinkage __visible void __sched schedule(void)
+@@ -3597,6 +3545,7 @@ asmlinkage __visible void __sched schedule(void)
__schedule(false);
sched_preempt_enable_no_resched();
} while (need_resched());
@@ -252,10 +252,10 @@ index 707f56db71c8..4bb9113bd1f9 100644
/**
diff --git a/kernel/workqueue_internal.h b/kernel/workqueue_internal.h
-index 8635417c587b..f000c4d6917e 100644
+index 29fa81f0f51a..42d1e3974554 100644
--- a/kernel/workqueue_internal.h
+++ b/kernel/workqueue_internal.h
-@@ -43,6 +43,7 @@ struct worker {
+@@ -44,6 +44,7 @@ struct worker {
unsigned long last_active; /* L: last active timestamp */
unsigned int flags; /* X: flags */
int id; /* I: worker id */
@@ -263,7 +263,7 @@ index 8635417c587b..f000c4d6917e 100644
/*
* Opaque string set with work_set_desc(). Printed out with task
-@@ -68,7 +69,7 @@ static inline struct worker *current_wq_worker(void)
+@@ -69,7 +70,7 @@ static inline struct worker *current_wq_worker(void)
* Scheduler hooks for concurrency managed workqueue. Only to be used from
* sched/core.c and workqueue.c.
*/
diff --git a/debian/patches/features/all/rt/0232-idr-Use-local-lock-instead-of-preempt-enable-disable.patch b/debian/patches/features/all/rt/0232-idr-Use-local-lock-instead-of-preempt-enable-disable.patch
index ebf8250..ea85e8e 100644
--- a/debian/patches/features/all/rt/0232-idr-Use-local-lock-instead-of-preempt-enable-disable.patch
+++ b/debian/patches/features/all/rt/0232-idr-Use-local-lock-instead-of-preempt-enable-disable.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 232/337] idr: Use local lock instead of preempt enable/disable
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f9e7742395203af300ff2447cc9226cbf9427db5
+Subject: [PATCH 232/351] idr: Use local lock instead of preempt enable/disable
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=df3234134973c51c30568cc369d2f3cebfc1094f
We need to protect the per cpu variable and prevent migration.
diff --git a/debian/patches/features/all/rt/0233-percpu_ida-Use-local-locks.patch b/debian/patches/features/all/rt/0233-percpu_ida-Use-local-locks.patch
index bf5f5e3..2ee4835 100644
--- a/debian/patches/features/all/rt/0233-percpu_ida-Use-local-locks.patch
+++ b/debian/patches/features/all/rt/0233-percpu_ida-Use-local-locks.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 9 Apr 2014 11:58:17 +0200
-Subject: [PATCH 233/337] percpu_ida: Use local locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aeabb7d1ec2212bb5b5bb354a67648eb7fd332eb
+Subject: [PATCH 233/351] percpu_ida: Use local locks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7eba5c7003680060bc596111c50de483d8ef8802
the local_irq_save() + spin_lock() does not work that well on -RT
diff --git a/debian/patches/features/all/rt/0234-debugobjects-Make-RT-aware.patch b/debian/patches/features/all/rt/0234-debugobjects-Make-RT-aware.patch
index 93e318f..82bdd02 100644
--- a/debian/patches/features/all/rt/0234-debugobjects-Make-RT-aware.patch
+++ b/debian/patches/features/all/rt/0234-debugobjects-Make-RT-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 21:41:35 +0200
-Subject: [PATCH 234/337] debugobjects: Make RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=576aa726ac76a567e8d67f80fc13bbf19e62c9a7
+Subject: [PATCH 234/351] debugobjects: Make RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=58b185bd6e77d2b3550d06b8cee894cbce9618c8
Avoid filling the pool / allocating memory with irqs off().
diff --git a/debian/patches/features/all/rt/0235-jump-label-disable-if-stop_machine-is-used.patch b/debian/patches/features/all/rt/0235-jump-label-disable-if-stop_machine-is-used.patch
index 38f9721..eefc428 100644
--- a/debian/patches/features/all/rt/0235-jump-label-disable-if-stop_machine-is-used.patch
+++ b/debian/patches/features/all/rt/0235-jump-label-disable-if-stop_machine-is-used.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 8 Jul 2015 17:14:48 +0200
-Subject: [PATCH 235/337] jump-label: disable if stop_machine() is used
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ec384b30e1e480453cf0d27b2b69795f275e718f
+Subject: [PATCH 235/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=f30dc44d998ceb1ccfc20b6c06ec23c97238480c
Some architectures are using stop_machine() while switching the opcode which
leads to latency spikes.
diff --git a/debian/patches/features/all/rt/0236-seqlock-Prevent-rt-starvation.patch b/debian/patches/features/all/rt/0236-seqlock-Prevent-rt-starvation.patch
index 2dcf8ed..49931bb 100644
--- a/debian/patches/features/all/rt/0236-seqlock-Prevent-rt-starvation.patch
+++ b/debian/patches/features/all/rt/0236-seqlock-Prevent-rt-starvation.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 22 Feb 2012 12:03:30 +0100
-Subject: [PATCH 236/337] seqlock: Prevent rt starvation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=396e66d451ec7de68944dc3737c5056bc0025b81
+Subject: [PATCH 236/351] seqlock: Prevent rt starvation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f8226c2aa283913281efd23706d51ef787b1c9a1
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/features/all/rt/0237-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch b/debian/patches/features/all/rt/0237-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
index c5f9a6b..7940514 100644
--- a/debian/patches/features/all/rt/0237-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
+++ b/debian/patches/features/all/rt/0237-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Wed, 18 Feb 2015 16:05:28 +0100
-Subject: [PATCH 237/337] sunrpc: Make svc_xprt_do_enqueue() use
+Subject: [PATCH 237/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=a3b9f8002eb757f68c39b4d93528e36df7a6df92
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a3036feb3aac2cc8c4a207adcdcb15b8053fdb86
|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/features/all/rt/0238-net-Use-skbufhead-with-raw-lock.patch b/debian/patches/features/all/rt/0238-net-Use-skbufhead-with-raw-lock.patch
index 9884cc5..7f053fd 100644
--- a/debian/patches/features/all/rt/0238-net-Use-skbufhead-with-raw-lock.patch
+++ b/debian/patches/features/all/rt/0238-net-Use-skbufhead-with-raw-lock.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 12 Jul 2011 15:38:34 +0200
-Subject: [PATCH 238/337] net: Use skbufhead with raw lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1905dc0c1210165c7d2d6470194c5ee7184cd5f1
+Subject: [PATCH 238/351] net: Use skbufhead with raw lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dec2aeb787791e57345571a64c65130d02050638
Use the rps lock as rawlock so we can keep irq-off regions. It looks low
latency. However we can't kfree() from this context therefore we defer this
@@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
3 files changed, 32 insertions(+), 7 deletions(-)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index 23db1ae37464..17e39e7e17ad 100644
+index 47c7f5b8f675..6e05a76da2bf 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2856,6 +2856,7 @@ struct softnet_data {
@@ -27,7 +27,7 @@ index 23db1ae37464..17e39e7e17ad 100644
};
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index 32810f279f8e..0db6e31161f6 100644
+index 601dfa849d30..dca387a8fa6b 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -284,6 +284,7 @@ struct sk_buff_head {
@@ -52,7 +52,7 @@ index 32810f279f8e..0db6e31161f6 100644
struct lock_class_key *class)
{
diff --git a/net/core/dev.c b/net/core/dev.c
-index 20860f0a0d29..c56ec08be8ac 100644
+index 885db5d6613c..f39b2a53b716 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -211,14 +211,14 @@ static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex)
diff --git a/debian/patches/features/all/rt/0239-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch b/debian/patches/features/all/rt/0239-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch
index ae4b9bc..829077f 100644
--- a/debian/patches/features/all/rt/0239-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch
+++ b/debian/patches/features/all/rt/0239-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch
@@ -1,7 +1,7 @@
From: Grygorii Strashko <grygorii.strashko at ti.com>
Date: Fri, 9 Oct 2015 09:25:49 -0500
-Subject: [PATCH 239/337] net/core/cpuhotplug: Drain input_pkt_queue lockless
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=55a5ced518564f319c29ca3ad553eae1099277a2
+Subject: [PATCH 239/351] net/core/cpuhotplug: Drain input_pkt_queue lockless
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2324fe928ce5f25976add3a4498fdfea01ef2288
I can constantly see below error report with 4.1 RT-kernel on TI ARM dra7-evm
if I'm trying to unplug cpu1:
@@ -35,7 +35,7 @@ Cc: stable-rt at vger.kernel.org
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/dev.c b/net/core/dev.c
-index c56ec08be8ac..1e8b69e8c007 100644
+index f39b2a53b716..1460f176cea7 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -8068,7 +8068,7 @@ static int dev_cpu_callback(struct notifier_block *nfb,
diff --git a/debian/patches/features/all/rt/0240-net-move-xmit_recursion-to-per-task-variable-on-RT.patch b/debian/patches/features/all/rt/0240-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
index e993d9b..39fbf52 100644
--- a/debian/patches/features/all/rt/0240-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
+++ b/debian/patches/features/all/rt/0240-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 13 Jan 2016 15:55:02 +0100
-Subject: [PATCH 240/337] 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=0b38381948bc481b230afde0c293e777a1536677
+Subject: [PATCH 240/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=e41836398451629b5f23a1d29f9d963ef312bd94
A softirq on -RT can be preempted. That means one task is in
__dev_queue_xmit(), gets preempted and another task may enter
@@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
4 files changed, 51 insertions(+), 8 deletions(-)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index 17e39e7e17ad..cc281a9c74f9 100644
+index 6e05a76da2bf..dcad41b4e3b3 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2464,14 +2464,53 @@ void netdev_freemem(struct net_device *dev);
@@ -96,7 +96,7 @@ index a1331f77fad3..bdf040606769 100644
int pagefault_disabled;
#ifdef CONFIG_MMU
diff --git a/net/core/dev.c b/net/core/dev.c
-index 1e8b69e8c007..0026df88af51 100644
+index 1460f176cea7..77fea52924b3 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3176,8 +3176,10 @@ static void skb_update_prio(struct sk_buff *skb)
diff --git a/debian/patches/features/all/rt/0241-net-provide-a-way-to-delegate-processing-a-softirq-t.patch b/debian/patches/features/all/rt/0241-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
index e5cfd1a..45633fb 100644
--- a/debian/patches/features/all/rt/0241-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
+++ b/debian/patches/features/all/rt/0241-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 20 Jan 2016 15:39:05 +0100
-Subject: [PATCH 241/337] net: provide a way to delegate processing a softirq
+Subject: [PATCH 241/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=8c15755931164f9ff36bbb9793f2161c494ea451
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be9a38cda60166b27964a0eae3d3eb5a679d7020
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 af2fd81cb9a5..819bd7cf5ad0 100644
* This function must run with irqs disabled!
*/
diff --git a/net/core/dev.c b/net/core/dev.c
-index 0026df88af51..6bd54aa226a9 100644
+index 77fea52924b3..729daa8052fd 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5300,7 +5300,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
diff --git a/debian/patches/features/all/rt/0242-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch b/debian/patches/features/all/rt/0242-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
index 0ef1f2d..262ac4d 100644
--- a/debian/patches/features/all/rt/0242-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
+++ b/debian/patches/features/all/rt/0242-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 30 Mar 2016 13:36:29 +0200
-Subject: [PATCH 242/337] net: dev: always take qdisc's busylock in
+Subject: [PATCH 242/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=bb3ef0d2787a11cc7f93e6c6c54643b6804d38e6
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ca58f3ce24a831ef2c413ea14b9a79e8f7bafee
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 at linutronix.de>
1 file changed, 4 insertions(+)
diff --git a/net/core/dev.c b/net/core/dev.c
-index 6bd54aa226a9..fe2afb8d4807 100644
+index 729daa8052fd..e88c621a7c39 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3113,7 +3113,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q,
diff --git a/debian/patches/features/all/rt/0243-net-Qdisc-use-a-seqlock-instead-seqcount.patch b/debian/patches/features/all/rt/0243-net-Qdisc-use-a-seqlock-instead-seqcount.patch
index e2fcbf9..4486423 100644
--- a/debian/patches/features/all/rt/0243-net-Qdisc-use-a-seqlock-instead-seqcount.patch
+++ b/debian/patches/features/all/rt/0243-net-Qdisc-use-a-seqlock-instead-seqcount.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 14 Sep 2016 17:36:35 +0200
-Subject: [PATCH 243/337] net/Qdisc: use a seqlock instead seqcount
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=979daac7cb3d0b758d247a4423c3d0d0873694a5
+Subject: [PATCH 243/351] net/Qdisc: use a seqlock instead seqcount
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d110ec6f66b72a0b9668b48374e568dbc68a5b0e
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
@@ -243,10 +243,10 @@ index 508e051304fb..bc3b17b78c94 100644
struct gnet_stats_basic_cpu __percpu *cpu,
struct gnet_stats_basic_packed *b)
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
-index 195a3b2d9afc..7bf29e3fd71c 100644
+index ea13df1be067..76c20745b502 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
-@@ -978,7 +978,7 @@ static struct Qdisc *qdisc_create(struct net_device *dev,
+@@ -980,7 +980,7 @@ static struct Qdisc *qdisc_create(struct net_device *dev,
rcu_assign_pointer(sch->stab, stab);
}
if (tca[TCA_RATE]) {
diff --git a/debian/patches/features/all/rt/0244-net-add-back-the-missing-serialization-in-ip_send_un.patch b/debian/patches/features/all/rt/0244-net-add-back-the-missing-serialization-in-ip_send_un.patch
index 108a785..7f78976 100644
--- a/debian/patches/features/all/rt/0244-net-add-back-the-missing-serialization-in-ip_send_un.patch
+++ b/debian/patches/features/all/rt/0244-net-add-back-the-missing-serialization-in-ip_send_un.patch
@@ -1,11 +1,11 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 31 Aug 2016 17:21:56 +0200
-Subject: [PATCH 244/337] net: add back the missing serialization in
+Subject: [PATCH 244/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=1b3ae3f5bbce2a464fbfe10f7365c3caddc333e2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=82f113114bc888f6a3d64377540a09cf06fe4a01
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 at linutronix.de>
1 file changed, 7 insertions(+)
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
-index 6988566dc72f..672fffcde28c 100644
+index d577ec07a0d8..3336e1534bc5 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -62,6 +62,7 @@
diff --git a/debian/patches/features/all/rt/0245-net-add-a-lock-around-icmp_sk.patch b/debian/patches/features/all/rt/0245-net-add-a-lock-around-icmp_sk.patch
index 4c2ad95..de35c11 100644
--- a/debian/patches/features/all/rt/0245-net-add-a-lock-around-icmp_sk.patch
+++ b/debian/patches/features/all/rt/0245-net-add-a-lock-around-icmp_sk.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 31 Aug 2016 17:54:09 +0200
-Subject: [PATCH 245/337] net: add a lock around icmp_sk()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=68f11c977117cbbac5d1b018fafaeb61f2f39c7f
+Subject: [PATCH 245/351] net: add a lock around icmp_sk()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a30d01fec27b3bc07052666aa0fdf998844ef4d2
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/features/all/rt/0246-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch b/debian/patches/features/all/rt/0246-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
index 30cc9db..e754a93 100644
--- a/debian/patches/features/all/rt/0246-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
+++ b/debian/patches/features/all/rt/0246-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Tue, 6 Dec 2016 17:50:30 -0500
-Subject: [PATCH 246/337] net: Have __napi_schedule_irqoff() disable interrupts
+Subject: [PATCH 246/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=57363272528096c2cfbcedc43453e35ca0829e2d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=952f3cf307422176232f461a4132ff57474b30aa
A customer hit a crash where the napi sd->poll_list became corrupted.
The customer had the bnx2x driver, which does a
@@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
2 files changed, 14 insertions(+)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index cc281a9c74f9..67af02914bf8 100644
+index dcad41b4e3b3..85fc72b8a92b 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -396,7 +396,19 @@ typedef enum rx_handler_result rx_handler_result_t;
@@ -52,7 +52,7 @@ index cc281a9c74f9..67af02914bf8 100644
static inline bool napi_disable_pending(struct napi_struct *n)
{
diff --git a/net/core/dev.c b/net/core/dev.c
-index fe2afb8d4807..665c7c0ca816 100644
+index e88c621a7c39..d9e0da1032fd 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4959,6 +4959,7 @@ void __napi_schedule(struct napi_struct *n)
diff --git a/debian/patches/features/all/rt/0247-net-sysrq-via-icmp.patch b/debian/patches/features/all/rt/0247-net-sysrq-via-icmp.patch
index 8a4467e..adf629b 100644
--- a/debian/patches/features/all/rt/0247-net-sysrq-via-icmp.patch
+++ b/debian/patches/features/all/rt/0247-net-sysrq-via-icmp.patch
@@ -1,7 +1,7 @@
From: Carsten Emde <C.Emde at osadl.org>
Date: Tue, 19 Jul 2011 13:51:17 +0100
-Subject: [PATCH 247/337] net: sysrq via icmp
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7889f24952bce9bd89f33f5623ccaf947b41cce4
+Subject: [PATCH 247/351] net: sysrq via icmp
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2cdf564a4b3d6d45d0d4c0310fbbc127163c6aea
There are (probably rare) situations when a system crashed and the system
console becomes unresponsive but the network icmp layer still is alive.
diff --git a/debian/patches/features/all/rt/0248-irqwork-push-most-work-into-softirq-context.patch b/debian/patches/features/all/rt/0248-irqwork-push-most-work-into-softirq-context.patch
index aabd2c9..1a32a5c 100644
--- a/debian/patches/features/all/rt/0248-irqwork-push-most-work-into-softirq-context.patch
+++ b/debian/patches/features/all/rt/0248-irqwork-push-most-work-into-softirq-context.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Tue, 23 Jun 2015 15:32:51 +0200
-Subject: [PATCH 248/337] irqwork: push most work into softirq context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89020e73eaac64e9b206c0183d5077a51927be7c
+Subject: [PATCH 248/351] irqwork: push most work into softirq context
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40070118a2f4f6e3e2ee709cbccbea10f1f31404
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.
@@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
---
include/linux/irq_work.h | 1 +
kernel/irq_work.c | 47 ++++++++++++++++++++++++++++++++++-------------
- kernel/sched/rt.c | 1 +
+ kernel/sched/core.c | 1 +
kernel/time/tick-sched.c | 1 +
kernel/time/timer.c | 6 +++++-
5 files changed, 42 insertions(+), 14 deletions(-)
@@ -146,18 +146,18 @@ index bcf107ce0854..0ddaf1e66d8c 100644
}
EXPORT_SYMBOL_GPL(irq_work_run);
-diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
-index f5a1132f9014..b0691f4e7d49 100644
---- a/kernel/sched/rt.c
-+++ b/kernel/sched/rt.c
-@@ -102,6 +102,7 @@ void init_rt_rq(struct rt_rq *rt_rq)
- rt_rq->push_cpu = nr_cpu_ids;
- raw_spin_lock_init(&rt_rq->push_lock);
- init_irq_work(&rt_rq->push_work, push_irq_work_func);
-+ rt_rq->push_work.flags |= IRQ_WORK_HARD_IRQ;
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 63f536082449..ca7927521f2f 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -6030,6 +6030,7 @@ static int init_rootdomain(struct root_domain *rd)
+ rd->rto_cpu = -1;
+ raw_spin_lock_init(&rd->rto_lock);
+ init_irq_work(&rd->rto_push_work, rto_push_irq_work_func);
++ rd->rto_push_work.flags |= IRQ_WORK_HARD_IRQ;
#endif
- #endif /* CONFIG_SMP */
- /* We start is dequeued state, because no RT tasks are queued */
+
+ init_dl_bw(&rd->dl_bw);
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 4367249e0dde..66d85482a96e 100644
--- a/kernel/time/tick-sched.c
diff --git a/debian/patches/features/all/rt/0249-irqwork-Move-irq-safe-work-to-irq-context.patch b/debian/patches/features/all/rt/0249-irqwork-Move-irq-safe-work-to-irq-context.patch
index 575e833..9966940 100644
--- a/debian/patches/features/all/rt/0249-irqwork-Move-irq-safe-work-to-irq-context.patch
+++ b/debian/patches/features/all/rt/0249-irqwork-Move-irq-safe-work-to-irq-context.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 15 Nov 2015 18:40:17 +0100
-Subject: [PATCH 249/337] irqwork: Move irq safe work to irq context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=76766fe11c5cef9a1fd1cb55148b823847a80613
+Subject: [PATCH 249/351] irqwork: Move irq safe work to irq context
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=54d53ca594ebe06ea7e2ef5f7d109a1c2da7339e
On architectures where arch_irq_work_has_interrupt() returns false, we
end up running the irq safe work from the softirq context. That
diff --git a/debian/patches/features/all/rt/0250-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch b/debian/patches/features/all/rt/0250-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch
index 0f64dc6..37ce1a5 100644
--- a/debian/patches/features/all/rt/0250-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch
+++ b/debian/patches/features/all/rt/0250-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Wed, 18 Feb 2015 15:09:23 +0100
-Subject: [PATCH 250/337] snd/pcm: fix snd_pcm_stream_lock*() irqs_disabled()
+Subject: [PATCH 250/351] snd/pcm: fix snd_pcm_stream_lock*() irqs_disabled()
splats
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=00e635e09198f7730ff58e658509f0f44c42625b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7460301bdeb52befcfe28cd99be02d373fc90a8
Locking functions previously using read_lock_irq()/read_lock_irqsave() were
changed to local_irq_disable/save(), leading to gripes. Use nort variants.
diff --git a/debian/patches/features/all/rt/0251-printk-Make-rt-aware.patch b/debian/patches/features/all/rt/0251-printk-Make-rt-aware.patch
index 458682a..44f0b89 100644
--- a/debian/patches/features/all/rt/0251-printk-Make-rt-aware.patch
+++ b/debian/patches/features/all/rt/0251-printk-Make-rt-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 19 Sep 2012 14:50:37 +0200
-Subject: [PATCH 251/337] printk: Make rt aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c2ae7c26d3d24fa1901a2b62d5f4f337df60a63f
+Subject: [PATCH 251/351] printk: Make rt aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ceb5c20d0c1c56beff1ea388e15b12406ef2f9d6
Drop the lock before calling the console driver and do not disable
interrupts while printing to a serial console.
diff --git a/debian/patches/features/all/rt/0252-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch b/debian/patches/features/all/rt/0252-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
index 7ec5ae1..18c2a6d 100644
--- a/debian/patches/features/all/rt/0252-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
+++ b/debian/patches/features/all/rt/0252-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 19 May 2016 17:45:27 +0200
-Subject: [PATCH 252/337] 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=c449cf8809ad8beab87c2505b439459b59c19a4c
+Subject: [PATCH 252/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=0d852df32bf5b05afa405fc67b60f937df52ab32
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/features/all/rt/0253-printk-Drop-the-logbuf_lock-more-often.patch b/debian/patches/features/all/rt/0253-printk-Drop-the-logbuf_lock-more-often.patch
index 80efc00..c967ff1 100644
--- a/debian/patches/features/all/rt/0253-printk-Drop-the-logbuf_lock-more-often.patch
+++ b/debian/patches/features/all/rt/0253-printk-Drop-the-logbuf_lock-more-often.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 21 Mar 2013 19:01:05 +0100
-Subject: [PATCH 253/337] printk: Drop the logbuf_lock more often
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=75dab284fbd8e55231280163db98ec4dbc2912d6
+Subject: [PATCH 253/351] printk: Drop the logbuf_lock more often
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cf809c12378d4a22a1a6be07ae050e7b63674017
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/features/all/rt/0254-powerpc-Use-generic-rwsem-on-RT.patch b/debian/patches/features/all/rt/0254-powerpc-Use-generic-rwsem-on-RT.patch
index 1bb3b64..a568374 100644
--- a/debian/patches/features/all/rt/0254-powerpc-Use-generic-rwsem-on-RT.patch
+++ b/debian/patches/features/all/rt/0254-powerpc-Use-generic-rwsem-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 14 Jul 2015 14:26:34 +0200
-Subject: [PATCH 254/337] powerpc: Use generic rwsem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6973911fb52afaec4be62f1ad6602324cec14120
+Subject: [PATCH 254/351] powerpc: Use generic rwsem on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9f478e50eda0b85cd4fed3524d1d228c4ecc0d2
Use generic code which uses rtmutex
@@ -11,7 +11,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
-index 8f01f21e78f1..e66bc552ef48 100644
+index 6eda5abbd719..1aca48ecabe5 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -52,10 +52,11 @@ config LOCKDEP_SUPPORT
diff --git a/debian/patches/features/all/rt/0255-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/debian/patches/features/all/rt/0255-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
index c320252..3ef7934 100644
--- a/debian/patches/features/all/rt/0255-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
+++ b/debian/patches/features/all/rt/0255-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
@@ -1,8 +1,8 @@
From: Bogdan Purcareata <bogdan.purcareata at freescale.com>
Date: Fri, 24 Apr 2015 15:53:13 +0000
-Subject: [PATCH 255/337] powerpc/kvm: Disable in-kernel MPIC emulation for
+Subject: [PATCH 255/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=e5f6b094b2fceb728db3b9a9adfaafb8800634f8
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c07b0aafb1e0d1a0756adb0d4f7d8b1732c4781
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/features/all/rt/0256-powerpc-ps3-device-init.c-adapt-to-completions-using.patch b/debian/patches/features/all/rt/0256-powerpc-ps3-device-init.c-adapt-to-completions-using.patch
index 692c8fd..8cd4088 100644
--- a/debian/patches/features/all/rt/0256-powerpc-ps3-device-init.c-adapt-to-completions-using.patch
+++ b/debian/patches/features/all/rt/0256-powerpc-ps3-device-init.c-adapt-to-completions-using.patch
@@ -1,8 +1,8 @@
From: Paul Gortmaker <paul.gortmaker at windriver.com>
Date: Sun, 31 May 2015 14:44:42 -0400
-Subject: [PATCH 256/337] powerpc: ps3/device-init.c - adapt to completions
+Subject: [PATCH 256/351] powerpc: ps3/device-init.c - adapt to completions
using swait vs wait
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7bdedda4fb86d3dd06a31c83577aec9fec55eb3b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95acfb07ed845bb2bd07740b68327becf3483d78
To fix:
diff --git a/debian/patches/features/all/rt/0257-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch b/debian/patches/features/all/rt/0257-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
index 682b360..f14324e 100644
--- a/debian/patches/features/all/rt/0257-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
+++ b/debian/patches/features/all/rt/0257-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 1 May 2010 18:29:35 +0200
-Subject: [PATCH 257/337] ARM: at91: tclib: Default to tclib timer for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9a0437ddd91f3f8d82a2ab07cac2d8c7d6b52f80
+Subject: [PATCH 257/351] ARM: at91: tclib: Default to tclib timer for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6f77315a976ca1687bf08dc39c99a62f8ed1e1a4
RT is not too happy about the shared timer interrupt in AT91
devices. Default to tclib timer for RT.
diff --git a/debian/patches/features/all/rt/0258-arm-unwind-use-a-raw_spin_lock.patch b/debian/patches/features/all/rt/0258-arm-unwind-use-a-raw_spin_lock.patch
index dde946a..499a1d7 100644
--- a/debian/patches/features/all/rt/0258-arm-unwind-use-a-raw_spin_lock.patch
+++ b/debian/patches/features/all/rt/0258-arm-unwind-use-a-raw_spin_lock.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 20 Sep 2013 14:31:54 +0200
-Subject: [PATCH 258/337] arm/unwind: use a raw_spin_lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4a8ee60d714bc9d3fc6997efcf5661e05d39a1c3
+Subject: [PATCH 258/351] arm/unwind: use a raw_spin_lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a00e398eec5e2c3af7bc4cb3270220082d7e8dc1
Mostly unwind is done with irqs enabled however SLUB may call it with
irqs disabled while creating a new SLUB cache.
diff --git a/debian/patches/features/all/rt/0259-ARM-enable-irq-in-translation-section-permission-fau.patch b/debian/patches/features/all/rt/0259-ARM-enable-irq-in-translation-section-permission-fau.patch
index 7635601..74f168e 100644
--- a/debian/patches/features/all/rt/0259-ARM-enable-irq-in-translation-section-permission-fau.patch
+++ b/debian/patches/features/all/rt/0259-ARM-enable-irq-in-translation-section-permission-fau.patch
@@ -1,11 +1,11 @@
From: "Yadi.hu" <yadi.hu at windriver.com>
Date: Wed, 10 Dec 2014 10:32:09 +0800
-Subject: [PATCH 259/337] ARM: enable irq in translation/section permission
+Subject: [PATCH 259/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=26bfcca82eb620926f361612c9bd0779c58c3201
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5a686eecd3f7db127e1a7a2f3aeedcb5542873e5
Probably happens on all ARM, with
CONFIG_PREEMPT_RT_FULL
diff --git a/debian/patches/features/all/rt/0260-genirq-update-irq_set_irqchip_state-documentation.patch b/debian/patches/features/all/rt/0260-genirq-update-irq_set_irqchip_state-documentation.patch
index ad7adb8..62ba03b 100644
--- a/debian/patches/features/all/rt/0260-genirq-update-irq_set_irqchip_state-documentation.patch
+++ b/debian/patches/features/all/rt/0260-genirq-update-irq_set_irqchip_state-documentation.patch
@@ -1,7 +1,7 @@
From: Josh Cartwright <joshc at ni.com>
Date: Thu, 11 Feb 2016 11:54:00 -0600
-Subject: [PATCH 260/337] genirq: update irq_set_irqchip_state documentation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4acb829d19a667ceeb9ad150433498c063745ac0
+Subject: [PATCH 260/351] genirq: update irq_set_irqchip_state documentation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3a39034661e1222aee4e9fdfc36aec315b4f7eab
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/features/all/rt/0261-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch b/debian/patches/features/all/rt/0261-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
index 4daee0d..7c96dfb 100644
--- a/debian/patches/features/all/rt/0261-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
+++ b/debian/patches/features/all/rt/0261-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
@@ -1,8 +1,8 @@
From: Josh Cartwright <joshc at ni.com>
Date: Thu, 11 Feb 2016 11:54:01 -0600
-Subject: [PATCH 261/337] KVM: arm/arm64: downgrade preempt_disable()d region
+Subject: [PATCH 261/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=4b992145bb93541fb997c9082ee948ffad34afdf
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=838ee9c1a410b7649938d7c003765b44a91f1bd1
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/features/all/rt/0262-arm64-xen-Make-XEN-depend-on-RT.patch b/debian/patches/features/all/rt/0262-arm64-xen-Make-XEN-depend-on-RT.patch
index 250b7fe..3eb121e 100644
--- a/debian/patches/features/all/rt/0262-arm64-xen-Make-XEN-depend-on-RT.patch
+++ b/debian/patches/features/all/rt/0262-arm64-xen-Make-XEN-depend-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 12 Oct 2015 11:18:40 +0200
-Subject: [PATCH 262/337] arm64/xen: Make XEN depend on !RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0b0aeb4952b4b9015b00a68d4706349e7e07b64c
+Subject: [PATCH 262/351] arm64/xen: Make XEN depend on !RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f7c258226225fe38b5d57b815357eca34d00a5b0
It's not ready and probably never will be, unless xen folks have a
look at it.
diff --git a/debian/patches/features/all/rt/0263-kgdb-serial-Short-term-workaround.patch b/debian/patches/features/all/rt/0263-kgdb-serial-Short-term-workaround.patch
index 6c4f2e5..a333921 100644
--- a/debian/patches/features/all/rt/0263-kgdb-serial-Short-term-workaround.patch
+++ b/debian/patches/features/all/rt/0263-kgdb-serial-Short-term-workaround.patch
@@ -1,7 +1,7 @@
From: Jason Wessel <jason.wessel at windriver.com>
Date: Thu, 28 Jul 2011 12:42:23 -0500
-Subject: [PATCH 263/337] kgdb/serial: Short term workaround
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9e954d915b8f2f88567f52a82276f5ed6ac8756d
+Subject: [PATCH 263/351] kgdb/serial: Short term workaround
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=531001893ab2f04ff397be186712c9a67b019c73
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(+), 4 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
-index 105bbc01b4e9..ff9f4e50563c 100644
+index 004931f34d04..4620b51b0e7c 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -35,6 +35,7 @@
@@ -35,7 +35,7 @@ index 105bbc01b4e9..ff9f4e50563c 100644
#include <linux/uaccess.h>
#include <linux/pm_runtime.h>
#include <linux/timer.h>
-@@ -3142,6 +3143,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
+@@ -3145,6 +3146,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/features/all/rt/0264-sysfs-Add-sys-kernel-realtime-entry.patch b/debian/patches/features/all/rt/0264-sysfs-Add-sys-kernel-realtime-entry.patch
index 9c4bb44..1f288ea 100644
--- a/debian/patches/features/all/rt/0264-sysfs-Add-sys-kernel-realtime-entry.patch
+++ b/debian/patches/features/all/rt/0264-sysfs-Add-sys-kernel-realtime-entry.patch
@@ -1,7 +1,7 @@
From: Clark Williams <williams at redhat.com>
Date: Sat, 30 Jul 2011 21:55:53 -0500
-Subject: [PATCH 264/337] sysfs: Add /sys/kernel/realtime entry
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd00303b3059d35d27eda5c729689d7ae0c2514b
+Subject: [PATCH 264/351] sysfs: Add /sys/kernel/realtime entry
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ffc3696f920ba50fb6fa2f1760d65bb8a8aa8079
Add a /sys/kernel entry to indicate that the kernel is a
realtime kernel.
diff --git a/debian/patches/features/all/rt/0265-powerpc-Disable-highmem-on-RT.patch b/debian/patches/features/all/rt/0265-powerpc-Disable-highmem-on-RT.patch
index 656436b..2689010 100644
--- a/debian/patches/features/all/rt/0265-powerpc-Disable-highmem-on-RT.patch
+++ b/debian/patches/features/all/rt/0265-powerpc-Disable-highmem-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 18 Jul 2011 17:08:34 +0200
-Subject: [PATCH 265/337] powerpc: Disable highmem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b3c20ce5ebca0351a5d539a9171a48b7fd040521
+Subject: [PATCH 265/351] powerpc: Disable highmem on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=13812c4fd8e40dc39a452662e504967c42fe6696
The current highmem handling on -RT is not compatible and needs fixups.
@@ -11,7 +11,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
-index e66bc552ef48..7b9f0a58ffb6 100644
+index 1aca48ecabe5..cdf9c16c1284 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -322,7 +322,7 @@ menu "Kernel options"
diff --git a/debian/patches/features/all/rt/0266-mips-Disable-highmem-on-RT.patch b/debian/patches/features/all/rt/0266-mips-Disable-highmem-on-RT.patch
index 3657aee..68eb432 100644
--- a/debian/patches/features/all/rt/0266-mips-Disable-highmem-on-RT.patch
+++ b/debian/patches/features/all/rt/0266-mips-Disable-highmem-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 18 Jul 2011 17:10:12 +0200
-Subject: [PATCH 266/337] mips: Disable highmem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f77ca0ba890e9da5fda4c43a89819212a0dcedc
+Subject: [PATCH 266/351] mips: Disable highmem on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e017443689ed8a4edef900e5e894c21d24f0bd7c
The current highmem handling on -RT is not compatible and needs fixups.
diff --git a/debian/patches/features/all/rt/0267-mm-rt-kmap_atomic-scheduling.patch b/debian/patches/features/all/rt/0267-mm-rt-kmap_atomic-scheduling.patch
index 5a2e16a..34a515f 100644
--- a/debian/patches/features/all/rt/0267-mm-rt-kmap_atomic-scheduling.patch
+++ b/debian/patches/features/all/rt/0267-mm-rt-kmap_atomic-scheduling.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Thu, 28 Jul 2011 10:43:51 +0200
-Subject: [PATCH 267/337] mm, rt: kmap_atomic scheduling
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5f002e7f75030ba76526597cc2613e0cb1997918
+Subject: [PATCH 267/351] mm, rt: kmap_atomic scheduling
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e1b604ac98e9b40d7d17c9464601943e88f91899
In fact, with migrate_disable() existing one could play games with
kmap_atomic. You could save/restore the kmap_atomic slots on context
diff --git a/debian/patches/features/all/rt/0268-mm-rt-Fix-generic-kmap_atomic-for-RT.patch b/debian/patches/features/all/rt/0268-mm-rt-Fix-generic-kmap_atomic-for-RT.patch
index d954adf..d75881b 100644
--- a/debian/patches/features/all/rt/0268-mm-rt-Fix-generic-kmap_atomic-for-RT.patch
+++ b/debian/patches/features/all/rt/0268-mm-rt-Fix-generic-kmap_atomic-for-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 19 Sep 2015 10:15:00 +0200
-Subject: [PATCH 268/337] mm: rt: Fix generic kmap_atomic for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3c6cf2c3a8cd1a6cf17f38297c2921ac0609a8b
+Subject: [PATCH 268/351] mm: rt: Fix generic kmap_atomic for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=30afbf6049972651a5edce171c8018f73c76a45b
The update to 4.1 brought in the mainline variant of the pagefault
disable distangling from preempt count. That introduced a
diff --git a/debian/patches/features/all/rt/0269-x86-highmem-Add-a-already-used-pte-check.patch b/debian/patches/features/all/rt/0269-x86-highmem-Add-a-already-used-pte-check.patch
index d6e6f98..7421b25 100644
--- a/debian/patches/features/all/rt/0269-x86-highmem-Add-a-already-used-pte-check.patch
+++ b/debian/patches/features/all/rt/0269-x86-highmem-Add-a-already-used-pte-check.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 11 Mar 2013 17:09:55 +0100
-Subject: [PATCH 269/337] x86/highmem: Add a "already used pte" check
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8d3504e7ca13b25239db80190c894ba770891638
+Subject: [PATCH 269/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=09e62707cdfd52eab3538466864a410d5bd9f599
This is a copy from kmap_atomic_prot().
diff --git a/debian/patches/features/all/rt/0270-arm-highmem-Flush-tlb-on-unmap.patch b/debian/patches/features/all/rt/0270-arm-highmem-Flush-tlb-on-unmap.patch
index f37ff2d..3f3d9a6 100644
--- a/debian/patches/features/all/rt/0270-arm-highmem-Flush-tlb-on-unmap.patch
+++ b/debian/patches/features/all/rt/0270-arm-highmem-Flush-tlb-on-unmap.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 11 Mar 2013 21:37:27 +0100
-Subject: [PATCH 270/337] arm/highmem: Flush tlb on unmap
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=48dd4cd0aa207ee27c535e1edffa9ba3d554aaeb
+Subject: [PATCH 270/351] arm/highmem: Flush tlb on unmap
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f59a84bc219601047001a30f16c5667c8ef311a6
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/features/all/rt/0271-arm-Enable-highmem-for-rt.patch b/debian/patches/features/all/rt/0271-arm-Enable-highmem-for-rt.patch
index 6b006f6..637684f 100644
--- a/debian/patches/features/all/rt/0271-arm-Enable-highmem-for-rt.patch
+++ b/debian/patches/features/all/rt/0271-arm-Enable-highmem-for-rt.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 13 Feb 2013 11:03:11 +0100
-Subject: [PATCH 271/337] arm: Enable highmem for rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c0bbe998cd3901c1a6768f9d62eab704c147683a
+Subject: [PATCH 271/351] arm: Enable highmem for rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=25f18f6a787e457f12f9ac48fbd26f6fa608ba35
fixup highmem for ARM.
diff --git a/debian/patches/features/all/rt/0272-ipc-sem-Rework-semaphore-wakeups.patch b/debian/patches/features/all/rt/0272-ipc-sem-Rework-semaphore-wakeups.patch
index 425b8dd..1f24e61 100644
--- a/debian/patches/features/all/rt/0272-ipc-sem-Rework-semaphore-wakeups.patch
+++ b/debian/patches/features/all/rt/0272-ipc-sem-Rework-semaphore-wakeups.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Wed, 14 Sep 2011 11:57:04 +0200
-Subject: [PATCH 272/337] ipc/sem: Rework semaphore wakeups
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95d40efa7f29e1731d184b3174a4be8d85d90213
+Subject: [PATCH 272/351] ipc/sem: Rework semaphore wakeups
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98e4276949bb2494165c839db10e5f2d1c49c385
Current sysv sems have a weird ass wakeup scheme that involves keeping
preemption disabled over a potential O(n^2) loop and busy waiting on
diff --git a/debian/patches/features/all/rt/0273-x86-kvm-Require-const-tsc-for-RT.patch b/debian/patches/features/all/rt/0273-x86-kvm-Require-const-tsc-for-RT.patch
index 619a0e3..b0c813a 100644
--- a/debian/patches/features/all/rt/0273-x86-kvm-Require-const-tsc-for-RT.patch
+++ b/debian/patches/features/all/rt/0273-x86-kvm-Require-const-tsc-for-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 6 Nov 2011 12:26:18 +0100
-Subject: [PATCH 273/337] x86: kvm Require const tsc for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=103f4117ba3feaa905a6cc9a03ddafbb5d404e6f
+Subject: [PATCH 273/351] x86: kvm Require const tsc for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e7591296fdc69a7a673b9e8bb80a1a6f0e3a58c9
Non constant TSC is a nightmare on bare metal already, but with
virtualization it becomes a complete disaster because the workarounds
@@ -14,10 +14,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 7 insertions(+)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index 595f8149c0d9..31b15149f412 100644
+index 02d45296a97c..4963bd51d20b 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
-@@ -5961,6 +5961,13 @@ int kvm_arch_init(void *opaque)
+@@ -5966,6 +5966,13 @@ int kvm_arch_init(void *opaque)
goto out;
}
diff --git a/debian/patches/features/all/rt/0274-KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch b/debian/patches/features/all/rt/0274-KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch
index d584538..d8b8838 100644
--- a/debian/patches/features/all/rt/0274-KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch
+++ b/debian/patches/features/all/rt/0274-KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch
@@ -1,7 +1,7 @@
From: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed, 8 Apr 2015 20:33:25 -0300
-Subject: [PATCH 274/337] KVM: lapic: mark LAPIC timer handler as irqsafe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=06e7d370f6e8b3574b81b21afa774d357eded19b
+Subject: [PATCH 274/351] KVM: lapic: mark LAPIC timer handler as irqsafe
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cae1efe1d20f8dbcb21cfd8248d2c77b92a2c525
Since lapic timer handler only wakes up a simple waitqueue,
it can be executed from hardirq context.
@@ -15,10 +15,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 1 insertion(+)
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
-index 3f05c044720b..fe68afd37162 100644
+index b24b3c6d686e..02a062b0de5d 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
-@@ -1939,6 +1939,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
+@@ -1944,6 +1944,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC,
HRTIMER_MODE_ABS_PINNED);
apic->lapic_timer.timer.function = apic_timer_fn;
diff --git a/debian/patches/features/all/rt/0275-scsi-fcoe-Make-RT-aware.patch b/debian/patches/features/all/rt/0275-scsi-fcoe-Make-RT-aware.patch
index b60132d..76b12c0 100644
--- a/debian/patches/features/all/rt/0275-scsi-fcoe-Make-RT-aware.patch
+++ b/debian/patches/features/all/rt/0275-scsi-fcoe-Make-RT-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 12 Nov 2011 14:00:48 +0100
-Subject: [PATCH 275/337] scsi/fcoe: Make RT aware.
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d71f57dbcb1b81b297c502992ef16b65687b406
+Subject: [PATCH 275/351] scsi/fcoe: Make RT aware.
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f81588c6ec0d9371860da68432f15416a2b77e1a
Do not disable preemption while taking sleeping locks. All user look safe
for migrate_diable() only.
diff --git a/debian/patches/features/all/rt/0276-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch b/debian/patches/features/all/rt/0276-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch
index 6dec2d4..bc90d71 100644
--- a/debian/patches/features/all/rt/0276-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch
+++ b/debian/patches/features/all/rt/0276-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch
@@ -1,8 +1,8 @@
From: Paul Gortmaker <paul.gortmaker at windriver.com>
Date: Sat, 14 Feb 2015 11:01:16 -0500
-Subject: [PATCH 276/337] sas-ata/isci: dont't disable interrupts in qc_issue
+Subject: [PATCH 276/351] sas-ata/isci: dont't disable interrupts in qc_issue
handler
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1ee14e096f83a5d75bac2e22431251b9eae74b91
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=22fb44122d1e189d823f45a43dd1478b838dcc95
On 3.14-rt we see the following trace on Canoe Pass for
SCSI_ISCI "Intel(R) C600 Series Chipset SAS Controller"
diff --git a/debian/patches/features/all/rt/0277-x86-crypto-Reduce-preempt-disabled-regions.patch b/debian/patches/features/all/rt/0277-x86-crypto-Reduce-preempt-disabled-regions.patch
index af4be6a..761b40f 100644
--- a/debian/patches/features/all/rt/0277-x86-crypto-Reduce-preempt-disabled-regions.patch
+++ b/debian/patches/features/all/rt/0277-x86-crypto-Reduce-preempt-disabled-regions.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Mon, 14 Nov 2011 18:19:27 +0100
-Subject: [PATCH 277/337] x86: crypto: Reduce preempt disabled regions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a8edd1e6fe05d88b487c47d7b4fdd652498c758
+Subject: [PATCH 277/351] x86: crypto: Reduce preempt disabled regions
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7777d7b57bd2079813b77e8fe8cb21bf94816b29
Restrict the preempt disabled regions to the actual floating point
operations and enable preemption for the administrative actions.
diff --git a/debian/patches/features/all/rt/0278-crypto-Reduce-preempt-disabled-regions-more-algos.patch b/debian/patches/features/all/rt/0278-crypto-Reduce-preempt-disabled-regions-more-algos.patch
index 82c50a0..1b054c7 100644
--- a/debian/patches/features/all/rt/0278-crypto-Reduce-preempt-disabled-regions-more-algos.patch
+++ b/debian/patches/features/all/rt/0278-crypto-Reduce-preempt-disabled-regions-more-algos.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 21 Feb 2014 17:24:04 +0100
-Subject: [PATCH 278/337] crypto: Reduce preempt disabled regions, more algos
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=efe2eb610d25d43422e7b0f76e0cdaedae253668
+Subject: [PATCH 278/351] crypto: Reduce preempt disabled regions, more algos
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4b609ad53307543be5a0bdd2642bbcb221034cc2
Don Estabrook reported
| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100()
diff --git a/debian/patches/features/all/rt/0279-dm-Make-rt-aware.patch b/debian/patches/features/all/rt/0279-dm-Make-rt-aware.patch
index 8e0d399..c609b12 100644
--- a/debian/patches/features/all/rt/0279-dm-Make-rt-aware.patch
+++ b/debian/patches/features/all/rt/0279-dm-Make-rt-aware.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 14 Nov 2011 23:06:09 +0100
-Subject: [PATCH 279/337] dm: Make rt aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=11ef2e5d70af8855af87b71c827e7696c0b45dd5
+Subject: [PATCH 279/351] dm: Make rt aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3df8ba175e799faf63caf668dfbde9c24c6ca594
Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has
interrupts legitimately enabled here as we cant deadlock against the
diff --git a/debian/patches/features/all/rt/0280-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch b/debian/patches/features/all/rt/0280-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch
index 1283738..e62a19c 100644
--- a/debian/patches/features/all/rt/0280-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch
+++ b/debian/patches/features/all/rt/0280-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Wed, 13 Feb 2013 09:26:05 -0500
-Subject: [PATCH 280/337] acpi/rt: Convert acpi_gbl_hardware lock back to a
+Subject: [PATCH 280/351] acpi/rt: Convert acpi_gbl_hardware lock back to a
raw_spinlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=906e785c51c58a2abab54e98dd2d313f15fc371f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7ddd5fbf666830c1138c3ff6529a77711b51e513
We hit the following bug with 3.6-rt:
diff --git a/debian/patches/features/all/rt/0281-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch b/debian/patches/features/all/rt/0281-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
index 57f6ff3..c8b12d1 100644
--- a/debian/patches/features/all/rt/0281-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
+++ b/debian/patches/features/all/rt/0281-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 14 Dec 2011 01:03:49 +0100
-Subject: [PATCH 281/337] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9dd854fa5286ddbbaf16539c8dc09cc64ff971e8
+Subject: [PATCH 281/351] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4527e2562a35d86da4d2839fdb9e1b6c26549e13
There are "valid" GFP_ATOMIC allocations such as
@@ -46,7 +46,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index 935b5fbacd85..14c824810efd 100644
+index 88c67b3a25a4..ab7c90867543 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -900,7 +900,7 @@ config IOMMU_HELPER
diff --git a/debian/patches/features/all/rt/0282-random-Make-it-work-on-rt.patch b/debian/patches/features/all/rt/0282-random-Make-it-work-on-rt.patch
index 38347c9..7d6b15a 100644
--- a/debian/patches/features/all/rt/0282-random-Make-it-work-on-rt.patch
+++ b/debian/patches/features/all/rt/0282-random-Make-it-work-on-rt.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 21 Aug 2012 20:38:50 +0200
-Subject: [PATCH 282/337] random: Make it work on rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=70fb51b3a10b0e48121df74b23980f65ebea1226
+Subject: [PATCH 282/351] random: Make it work on rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f44e63d2da7b2e20dcb55db02a2a4328f5f303dc
Delegate the random insertion to the forced threaded interrupt
handler. Store the return IP of the hard interrupt handler in the irq
diff --git a/debian/patches/features/all/rt/0283-random-avoid-preempt_disable-ed-section.patch b/debian/patches/features/all/rt/0283-random-avoid-preempt_disable-ed-section.patch
index 5725f90..4dc7b4f 100644
--- a/debian/patches/features/all/rt/0283-random-avoid-preempt_disable-ed-section.patch
+++ b/debian/patches/features/all/rt/0283-random-avoid-preempt_disable-ed-section.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 12 May 2017 15:46:17 +0200
-Subject: [PATCH 283/337] random: avoid preempt_disable()ed section
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9784e1428435ea4573de4c5d8490593ee0758309
+Subject: [PATCH 283/351] random: avoid preempt_disable()ed section
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fd62e45d7b2893263f27ca403644145260f66bd6
extract_crng() will use sleeping locks while in a preempt_disable()
section due to get_cpu_var().
diff --git a/debian/patches/features/all/rt/0284-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch b/debian/patches/features/all/rt/0284-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
index 8764c27..08b55d9 100644
--- a/debian/patches/features/all/rt/0284-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
+++ b/debian/patches/features/all/rt/0284-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Fri, 2 Mar 2012 10:36:57 -0500
-Subject: [PATCH 284/337] cpu: Make hotplug.lock a "sleeping" spinlock on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=314cb8364a81d3e6d347d4269d1986c4b91e7618
+Subject: [PATCH 284/351] cpu: Make hotplug.lock a "sleeping" spinlock on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b76bdb82d3a63dad44933efa392550c31b16b59
Tasks can block on hotplug.lock in pin_current_cpu(), but their state
might be != RUNNING. So the mutex wakeup will set the state
diff --git a/debian/patches/features/all/rt/0285-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch b/debian/patches/features/all/rt/0285-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
index cb0a44b..a1713d8 100644
--- a/debian/patches/features/all/rt/0285-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
+++ b/debian/patches/features/all/rt/0285-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
@@ -1,7 +1,7 @@
From: Steven Rostedt <srostedt at redhat.com>
Date: Mon, 16 Jul 2012 08:07:43 +0000
-Subject: [PATCH 285/337] cpu/rt: Rework cpu down for PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fde3d6ee50fb07d2830f370f029202054ee0a93a
+Subject: [PATCH 285/351] cpu/rt: Rework cpu down for PREEMPT_RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7e84328fe8e6bc6d33668ab9a1abfd6ee050c9ed
Bringing a CPU down is a pain with the PREEMPT_RT kernel because
tasks can be preempted in many more places than in non-RT. In
@@ -441,10 +441,10 @@ index 9bb0d333bfc7..acac23803b36 100644
* Prevent irq alloc/free while the dying cpu reorganizes the
* interrupt affinities.
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index f787ad3e9d90..2a4c083bf44f 100644
+index ca7927521f2f..0cbc7654192a 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -1152,6 +1152,84 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
+@@ -1151,6 +1151,84 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
set_curr_task(rq, p);
}
diff --git a/debian/patches/features/all/rt/0286-cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch b/debian/patches/features/all/rt/0286-cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch
index 9337f44..34159d8 100644
--- a/debian/patches/features/all/rt/0286-cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch
+++ b/debian/patches/features/all/rt/0286-cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Thu, 5 Dec 2013 09:16:52 -0500
-Subject: [PATCH 286/337] cpu hotplug: Document why PREEMPT_RT uses a spinlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c1da6ac2cda814ba9e130347070f82b80423ab6f
+Subject: [PATCH 286/351] cpu hotplug: Document why PREEMPT_RT uses a spinlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c369b45060503082bc6dbfbca35b28aed1eb8760
The patch:
diff --git a/debian/patches/features/all/rt/0287-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch b/debian/patches/features/all/rt/0287-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch
index 83897d0..11d4e1f 100644
--- a/debian/patches/features/all/rt/0287-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch
+++ b/debian/patches/features/all/rt/0287-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 7 Jun 2013 22:37:06 +0200
-Subject: [PATCH 287/337] kernel/cpu: fix cpu down problem if kthread's cpu is
+Subject: [PATCH 287/351] kernel/cpu: fix cpu down problem if kthread's cpu is
going down
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e78f3617a5d90d3de215bee94f814f023bab1073
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=70b57c11672144bdc000a6a7596f317bdeaa9291
If kthread is pinned to CPUx and CPUx is going down then we get into
trouble:
diff --git a/debian/patches/features/all/rt/0288-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch b/debian/patches/features/all/rt/0288-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch
index 361c3ac..86da583 100644
--- a/debian/patches/features/all/rt/0288-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch
+++ b/debian/patches/features/all/rt/0288-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 14 Jun 2013 17:16:35 +0200
-Subject: [PATCH 288/337] kernel/hotplug: restore original cpu mask oncpu/down
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=245499da3dfa9ba88deee88fea53c6dff6293f82
+Subject: [PATCH 288/351] kernel/hotplug: restore original cpu mask oncpu/down
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6dc7df03df93744ccdf84c80c17486a7cfbc43c
If a task which is allowed to run only on CPU X puts CPU Y down then it
will be allowed on all CPUs but the on CPU Y after it comes back from
diff --git a/debian/patches/features/all/rt/0289-cpu_down-move-migrate_enable-back.patch b/debian/patches/features/all/rt/0289-cpu_down-move-migrate_enable-back.patch
index fc0fff0..1c5d5ab 100644
--- a/debian/patches/features/all/rt/0289-cpu_down-move-migrate_enable-back.patch
+++ b/debian/patches/features/all/rt/0289-cpu_down-move-migrate_enable-back.patch
@@ -1,7 +1,7 @@
From: Tiejun Chen <tiejun.chen at windriver.com>
Date: Thu, 7 Nov 2013 10:06:07 +0800
-Subject: [PATCH 289/337] cpu_down: move migrate_enable() back
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=70ea1b36ee1b8bc7c4eb9f7a185ae32ff651eb01
+Subject: [PATCH 289/351] cpu_down: move migrate_enable() back
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bbe0284060e7f564e9613b2d5edf47231364d56f
Commit 08c1ab68, "hotplug-use-migrate-disable.patch", intends to
use migrate_enable()/migrate_disable() to replace that combination
diff --git a/debian/patches/features/all/rt/0290-hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch b/debian/patches/features/all/rt/0290-hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch
index b354899..26c833b 100644
--- a/debian/patches/features/all/rt/0290-hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch
+++ b/debian/patches/features/all/rt/0290-hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Tue, 24 Mar 2015 08:14:49 +0100
-Subject: [PATCH 290/337] hotplug: Use set_cpus_allowed_ptr() in
+Subject: [PATCH 290/351] hotplug: Use set_cpus_allowed_ptr() in
sync_unplug_thread()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=05aee80c941450cf52eb10c942534228025c4ba7
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a774888bd016e57202db0372489986571d5b8b9d
do_set_cpus_allowed() is not safe vs ->sched_class change.
diff --git a/debian/patches/features/all/rt/0291-rt-locking-Reenable-migration-accross-schedule.patch b/debian/patches/features/all/rt/0291-rt-locking-Reenable-migration-accross-schedule.patch
index c48a80b..2d26645 100644
--- a/debian/patches/features/all/rt/0291-rt-locking-Reenable-migration-accross-schedule.patch
+++ b/debian/patches/features/all/rt/0291-rt-locking-Reenable-migration-accross-schedule.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 8 Feb 2016 16:15:28 +0100
-Subject: [PATCH 291/337] rt/locking: Reenable migration accross schedule
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2998fe5f1af780d1f99001d1e271748884504ba7
+Subject: [PATCH 291/351] rt/locking: Reenable migration accross schedule
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7b00e0a9a809dbc2062c7dc7d2bd43e50243782b
We currently disable migration across lock acquisition. That includes the part
where we block on the lock and schedule out. We cannot disable migration after
diff --git a/debian/patches/features/all/rt/0292-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch b/debian/patches/features/all/rt/0292-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
index d4e248d..cbfa5a3 100644
--- a/debian/patches/features/all/rt/0292-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
+++ b/debian/patches/features/all/rt/0292-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
@@ -1,8 +1,8 @@
From: John Kacur <jkacur at redhat.com>
Date: Fri, 27 Apr 2012 12:48:46 +0200
-Subject: [PATCH 292/337] scsi: qla2xxx: Use local_irq_save_nort() in
+Subject: [PATCH 292/351] scsi: qla2xxx: Use local_irq_save_nort() in
qla2x00_poll
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f16761892a04fd932342fe73ade25bffbd835f27
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=74c7bcf76b9fc859076a39712f85a2c35c8a198f
RT triggers the following:
diff --git a/debian/patches/features/all/rt/0293-net-Remove-preemption-disabling-in-netif_rx.patch b/debian/patches/features/all/rt/0293-net-Remove-preemption-disabling-in-netif_rx.patch
index 7f5236a..8e93a80 100644
--- a/debian/patches/features/all/rt/0293-net-Remove-preemption-disabling-in-netif_rx.patch
+++ b/debian/patches/features/all/rt/0293-net-Remove-preemption-disabling-in-netif_rx.patch
@@ -1,7 +1,7 @@
From: Priyanka Jain <Priyanka.Jain at freescale.com>
Date: Thu, 17 May 2012 09:35:11 +0530
-Subject: [PATCH 293/337] net: Remove preemption disabling in netif_rx()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c641a89505c9f8cd0c04cb3db94c51e9d6f4ac39
+Subject: [PATCH 293/351] net: Remove preemption disabling in netif_rx()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=76a945030c2aa1b1a147dde8c637c5e204082240
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 at linutronix.de>
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
-index 665c7c0ca816..c7efe3bb42e8 100644
+index d9e0da1032fd..63fcf5930077 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3822,7 +3822,7 @@ static int netif_rx_internal(struct sk_buff *skb)
diff --git a/debian/patches/features/all/rt/0294-net-Another-local_irq_disable-kmalloc-headache.patch b/debian/patches/features/all/rt/0294-net-Another-local_irq_disable-kmalloc-headache.patch
index 70b0900..c6418c7 100644
--- a/debian/patches/features/all/rt/0294-net-Another-local_irq_disable-kmalloc-headache.patch
+++ b/debian/patches/features/all/rt/0294-net-Another-local_irq_disable-kmalloc-headache.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 26 Sep 2012 16:21:08 +0200
-Subject: [PATCH 294/337] net: Another local_irq_disable/kmalloc headache
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ccdb1cf01ebbb7f9122094c0c6ffcd31566fb606
+Subject: [PATCH 294/351] net: Another local_irq_disable/kmalloc headache
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b09e398e61647cd4eb17d40fda51df2eb8e0593b
Replace it by a local lock. Though that's pretty inefficient :(
@@ -11,7 +11,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index fe008f1bd930..2f20335051d9 100644
+index aec5605944d3..ba5d24bd9343 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -64,6 +64,7 @@
diff --git a/debian/patches/features/all/rt/0295-net-core-protect-users-of-napi_alloc_cache-against-r.patch b/debian/patches/features/all/rt/0295-net-core-protect-users-of-napi_alloc_cache-against-r.patch
index 9803b01..586ff1c 100644
--- a/debian/patches/features/all/rt/0295-net-core-protect-users-of-napi_alloc_cache-against-r.patch
+++ b/debian/patches/features/all/rt/0295-net-core-protect-users-of-napi_alloc_cache-against-r.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 15 Jan 2016 16:33:34 +0100
-Subject: [PATCH 295/337] net/core: protect users of napi_alloc_cache against
+Subject: [PATCH 295/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=da1da8c497f5da11aedb17ad80c51b716ce7f872
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c7ff1d45e4cae90938762c7ba67a28b9858eb8a4
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 at linutronix.de>
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index 2f20335051d9..9fa6bea3dd3f 100644
+index ba5d24bd9343..d4cb8bfdb83c 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -362,6 +362,7 @@ struct napi_alloc_cache {
diff --git a/debian/patches/features/all/rt/0296-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch b/debian/patches/features/all/rt/0296-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
index 2c79163..7180f1c 100644
--- a/debian/patches/features/all/rt/0296-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
+++ b/debian/patches/features/all/rt/0296-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 28 Oct 2012 11:18:08 +0100
-Subject: [PATCH 296/337] net: netfilter: Serialize xt_write_recseq sections on
+Subject: [PATCH 296/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=95c43b67ac7a15d75be176d10670d7a743cd0927
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4242ddc87ff26b3be11b15f9861ed107c53b69a
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/features/all/rt/0297-net-Add-a-mutex-around-devnet_rename_seq.patch b/debian/patches/features/all/rt/0297-net-Add-a-mutex-around-devnet_rename_seq.patch
index 803ca87..51e366e 100644
--- a/debian/patches/features/all/rt/0297-net-Add-a-mutex-around-devnet_rename_seq.patch
+++ b/debian/patches/features/all/rt/0297-net-Add-a-mutex-around-devnet_rename_seq.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 20 Mar 2013 18:06:20 +0100
-Subject: [PATCH 297/337] net: Add a mutex around devnet_rename_seq
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fcfa006ef24636bea6995ec4021b2ca118f7f182
+Subject: [PATCH 297/351] net: Add a mutex around devnet_rename_seq
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ea4d8baee01167754071f787eaf00ac1cd38efc
On RT write_seqcount_begin() disables preemption and device_rename()
allocates memory with GFP_KERNEL and grabs later the sysfs_mutex
@@ -21,7 +21,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 20 insertions(+), 14 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
-index c7efe3bb42e8..cfed44b8e175 100644
+index 63fcf5930077..3235360cd9a4 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -190,6 +190,7 @@ static unsigned int napi_gen_id = NR_CPUS;
diff --git a/debian/patches/features/all/rt/0298-crypto-Convert-crypto-notifier-chain-to-SRCU.patch b/debian/patches/features/all/rt/0298-crypto-Convert-crypto-notifier-chain-to-SRCU.patch
index 3c212d2..20b639a 100644
--- a/debian/patches/features/all/rt/0298-crypto-Convert-crypto-notifier-chain-to-SRCU.patch
+++ b/debian/patches/features/all/rt/0298-crypto-Convert-crypto-notifier-chain-to-SRCU.patch
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Fri, 5 Oct 2012 09:03:24 +0100
-Subject: [PATCH 298/337] crypto: Convert crypto notifier chain to SRCU
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e416d8133a9dd04f53da46dcbcb25353250c0ac1
+Subject: [PATCH 298/351] crypto: Convert crypto notifier chain to SRCU
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4636c57e58170846b7fd4f2972818f791f7e2134
The crypto notifier deadlocks on RT. Though this can be a real deadlock
on mainline as well due to fifo fair rwsems.
diff --git a/debian/patches/features/all/rt/0299-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch b/debian/patches/features/all/rt/0299-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
index fb3cc05..783761e 100644
--- a/debian/patches/features/all/rt/0299-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
+++ b/debian/patches/features/all/rt/0299-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
@@ -1,8 +1,8 @@
From: Yong Zhang <yong.zhang at windriver.com>
Date: Mon, 16 Apr 2012 15:01:56 +0800
-Subject: [PATCH 299/337] lockdep: selftest: Only do hardirq context test for
+Subject: [PATCH 299/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=3fd734170b4b1c14950b0e5ef97bde404f639a36
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=36a92dc20f553bd819a67f740c948c22f4f8b9a4
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/features/all/rt/0300-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch b/debian/patches/features/all/rt/0300-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
index 12bb829..550de30 100644
--- a/debian/patches/features/all/rt/0300-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
+++ b/debian/patches/features/all/rt/0300-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
@@ -1,8 +1,8 @@
From: Josh Cartwright <josh.cartwright at ni.com>
Date: Wed, 28 Jan 2015 13:08:45 -0600
-Subject: [PATCH 300/337] lockdep: selftest: fix warnings due to missing
+Subject: [PATCH 300/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=feb7bb585143173a5bba966bb045c484ec961143
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=571900ac9608b1e04fa6240b62d018b4c493540e
"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/features/all/rt/0301-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch b/debian/patches/features/all/rt/0301-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
index ffc1103..c97c3ee 100644
--- a/debian/patches/features/all/rt/0301-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
+++ b/debian/patches/features/all/rt/0301-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
@@ -1,8 +1,8 @@
From: Yong Zhang <yong.zhang at windriver.com>
Date: Wed, 11 Jul 2012 22:05:21 +0000
-Subject: [PATCH 301/337] perf: Make swevent hrtimer run in irq instead of
+Subject: [PATCH 301/351] perf: Make swevent hrtimer run in irq instead of
softirq
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51a7a7fdcbf2d022114de83ad16e16e7a32e58f9
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37a9181f8cf7890b3948ae37c8cf7cd1eb82e9ea
Otherwise we get a deadlock like below:
@@ -58,10 +58,10 @@ Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
1 file changed, 1 insertion(+)
diff --git a/kernel/events/core.c b/kernel/events/core.c
-index 36ff2d93f222..8b40c90077e7 100644
+index 13b9784427b0..7e8e200fb441 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
-@@ -8390,6 +8390,7 @@ static void perf_swevent_init_hrtimer(struct perf_event *event)
+@@ -8405,6 +8405,7 @@ static void perf_swevent_init_hrtimer(struct perf_event *event)
hrtimer_init(&hwc->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
hwc->hrtimer.function = perf_swevent_hrtimer;
diff --git a/debian/patches/features/all/rt/0302-kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch b/debian/patches/features/all/rt/0302-kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch
index b4b2ee6..76da859 100644
--- a/debian/patches/features/all/rt/0302-kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch
+++ b/debian/patches/features/all/rt/0302-kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 4 Feb 2016 16:38:10 +0100
-Subject: [PATCH 302/337] kernel/perf: mark perf_cpu_context's timer as irqsafe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd8b1aea226268a25d76141d683df8621d892e68
+Subject: [PATCH 302/351] kernel/perf: mark perf_cpu_context's timer as irqsafe
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=90f34d60d1bda3b0d7dbbf4180a4ab7fab9ba3e1
Otherwise we get a WARN_ON() backtrace and some events are reported as
"not counted".
@@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 1 insertion(+)
diff --git a/kernel/events/core.c b/kernel/events/core.c
-index 8b40c90077e7..554aebf7e88b 100644
+index 7e8e200fb441..f74fbfe5465c 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -1050,6 +1050,7 @@ static void __perf_mux_hrtimer_init(struct perf_cpu_context *cpuctx, int cpu)
diff --git a/debian/patches/features/all/rt/0303-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch b/debian/patches/features/all/rt/0303-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
index b694c58..daa5a49 100644
--- a/debian/patches/features/all/rt/0303-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
+++ b/debian/patches/features/all/rt/0303-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 28 Oct 2012 13:26:09 +0000
-Subject: [PATCH 303/337] rcu: Disable RCU_FAST_NO_HZ on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9c2b7c68e3d404bbea3149eb21c4527eff477378
+Subject: [PATCH 303/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=8895357589ca33b0df111d1e499037861216bb9e
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/features/all/rt/0304-rcu-Eliminate-softirq-processing-from-rcutree.patch b/debian/patches/features/all/rt/0304-rcu-Eliminate-softirq-processing-from-rcutree.patch
index 838c0a0..3952dbe 100644
--- a/debian/patches/features/all/rt/0304-rcu-Eliminate-softirq-processing-from-rcutree.patch
+++ b/debian/patches/features/all/rt/0304-rcu-Eliminate-softirq-processing-from-rcutree.patch
@@ -1,7 +1,7 @@
From: "Paul E. McKenney" <paulmck at linux.vnet.ibm.com>
Date: Mon, 4 Nov 2013 13:21:10 -0800
-Subject: [PATCH 304/337] rcu: Eliminate softirq processing from rcutree
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=12d0a06fc7fea9d8220dcaa405270233fa2db35d
+Subject: [PATCH 304/351] rcu: Eliminate softirq processing from rcutree
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9fee96270f06a19be19f642b8e4ce0a87fca4030
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/features/all/rt/0305-rcu-make-RCU_BOOST-default-on-RT.patch b/debian/patches/features/all/rt/0305-rcu-make-RCU_BOOST-default-on-RT.patch
index 7d44b07..8c6c543 100644
--- a/debian/patches/features/all/rt/0305-rcu-make-RCU_BOOST-default-on-RT.patch
+++ b/debian/patches/features/all/rt/0305-rcu-make-RCU_BOOST-default-on-RT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 21 Mar 2014 20:19:05 +0100
-Subject: [PATCH 305/337] rcu: make RCU_BOOST default on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e81d4775351b7b26eefc266a4cdf63c0070c2ea4
+Subject: [PATCH 305/351] rcu: make RCU_BOOST default on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7732cf7e3178229e93d2530f8ff4e30eeaf370a2
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/features/all/rt/0306-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch b/debian/patches/features/all/rt/0306-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
index 68f0d29..f69f84e 100644
--- a/debian/patches/features/all/rt/0306-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
+++ b/debian/patches/features/all/rt/0306-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
@@ -1,7 +1,7 @@
From: Julia Cartwright <julia at ni.com>
Date: Wed, 12 Oct 2016 11:21:14 -0500
-Subject: [PATCH 306/337] 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=6df90746fa3b221ba0204207558a7e350366124d
+Subject: [PATCH 306/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=436aebe7d675e3a234e2a961a92f8772a0126725
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/features/all/rt/0307-sched-Add-support-for-lazy-preemption.patch b/debian/patches/features/all/rt/0307-sched-Add-support-for-lazy-preemption.patch
index 6b0ea78..7a8ce18 100644
--- a/debian/patches/features/all/rt/0307-sched-Add-support-for-lazy-preemption.patch
+++ b/debian/patches/features/all/rt/0307-sched-Add-support-for-lazy-preemption.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 26 Oct 2012 18:50:54 +0100
-Subject: [PATCH 307/337] sched: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=143255ae1ddfd2809a10e9535757428141ebf132
+Subject: [PATCH 307/351] sched: Add support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c5d2d126e0f30f647697b91068e7f113ae47960
It has become an obsession to mitigate the determinism vs. throughput
loss of RT. Looking at the mainline semantics of preemption points
@@ -68,10 +68,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
12 files changed, 209 insertions(+), 29 deletions(-)
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index 5f733773f54e..1cfb1cb72354 100644
+index 0c7346289422..f97c54265904 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
-@@ -153,6 +153,20 @@ extern void preempt_count_sub(int val);
+@@ -158,6 +158,20 @@ extern void preempt_count_sub(int val);
#define preempt_count_inc() preempt_count_add(1)
#define preempt_count_dec() preempt_count_sub(1)
@@ -92,7 +92,7 @@ index 5f733773f54e..1cfb1cb72354 100644
#ifdef CONFIG_PREEMPT_COUNT
#define preempt_disable() \
-@@ -161,6 +175,12 @@ do { \
+@@ -166,6 +180,12 @@ do { \
barrier(); \
} while (0)
@@ -105,7 +105,7 @@ index 5f733773f54e..1cfb1cb72354 100644
#define sched_preempt_enable_no_resched() \
do { \
barrier(); \
-@@ -198,6 +218,13 @@ do { \
+@@ -203,6 +223,13 @@ do { \
__preempt_schedule(); \
} while (0)
@@ -119,7 +119,7 @@ index 5f733773f54e..1cfb1cb72354 100644
#else /* !CONFIG_PREEMPT */
#define preempt_enable() \
do { \
-@@ -264,7 +291,7 @@ do { \
+@@ -269,7 +296,7 @@ do { \
} while (0)
#define preempt_fold_need_resched() \
do { \
@@ -229,7 +229,7 @@ index f8a2982bdbde..11dbe26a8279 100644
prompt "Preemption Model"
default PREEMPT_NONE
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 2a4c083bf44f..8a91130d4f17 100644
+index 0cbc7654192a..f29c4f961104 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -522,6 +522,38 @@ void resched_curr(struct rq *rq)
@@ -271,7 +271,7 @@ index 2a4c083bf44f..8a91130d4f17 100644
void resched_cpu(int cpu)
{
struct rq *rq = cpu_rq(cpu);
-@@ -2544,6 +2576,9 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p)
+@@ -2543,6 +2575,9 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p)
p->on_cpu = 0;
#endif
init_task_preempt_count(p);
@@ -281,7 +281,7 @@ index 2a4c083bf44f..8a91130d4f17 100644
#ifdef CONFIG_SMP
plist_node_init(&p->pushable_tasks, MAX_PRIO);
RB_CLEAR_NODE(&p->pushable_dl_tasks);
-@@ -3375,6 +3410,7 @@ void migrate_disable(void)
+@@ -3374,6 +3409,7 @@ void migrate_disable(void)
}
preempt_disable();
@@ -289,7 +289,7 @@ index 2a4c083bf44f..8a91130d4f17 100644
pin_current_cpu();
p->migrate_disable = 1;
preempt_enable();
-@@ -3414,6 +3450,7 @@ void migrate_enable(void)
+@@ -3413,6 +3449,7 @@ void migrate_enable(void)
unpin_current_cpu();
preempt_enable();
@@ -297,7 +297,7 @@ index 2a4c083bf44f..8a91130d4f17 100644
}
EXPORT_SYMBOL(migrate_enable);
#endif
-@@ -3543,6 +3580,7 @@ static void __sched notrace __schedule(bool preempt)
+@@ -3542,6 +3579,7 @@ static void __sched notrace __schedule(bool preempt)
next = pick_next_task(rq, prev, cookie);
clear_tsk_need_resched(prev);
@@ -305,7 +305,7 @@ index 2a4c083bf44f..8a91130d4f17 100644
clear_preempt_need_resched();
rq->clock_skip_update = 0;
-@@ -3688,6 +3726,30 @@ static void __sched notrace preempt_schedule_common(void)
+@@ -3687,6 +3725,30 @@ static void __sched notrace preempt_schedule_common(void)
} while (need_resched());
}
@@ -336,7 +336,7 @@ index 2a4c083bf44f..8a91130d4f17 100644
#ifdef CONFIG_PREEMPT
/*
* this is the entry point to schedule() from in-kernel preemption
-@@ -3702,7 +3764,8 @@ asmlinkage __visible void __sched notrace preempt_schedule(void)
+@@ -3701,7 +3763,8 @@ asmlinkage __visible void __sched notrace preempt_schedule(void)
*/
if (likely(!preemptible()))
return;
@@ -346,7 +346,7 @@ index 2a4c083bf44f..8a91130d4f17 100644
preempt_schedule_common();
}
NOKPROBE_SYMBOL(preempt_schedule);
-@@ -3729,6 +3792,9 @@ asmlinkage __visible void __sched notrace preempt_schedule_notrace(void)
+@@ -3728,6 +3791,9 @@ asmlinkage __visible void __sched notrace preempt_schedule_notrace(void)
if (likely(!preemptible()))
return;
@@ -356,7 +356,7 @@ index 2a4c083bf44f..8a91130d4f17 100644
do {
/*
* Because the function tracer can trace preempt_count_sub()
-@@ -5536,7 +5602,9 @@ void init_idle(struct task_struct *idle, int cpu)
+@@ -5535,7 +5601,9 @@ void init_idle(struct task_struct *idle, int cpu)
/* Set the preempt count _outside_ the spinlocks! */
init_idle_preempt_count(idle, cpu);
@@ -458,10 +458,10 @@ index 11258a0feae7..6d28fcd08872 100644
/*
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
-index 662a9e43031c..16df04073b57 100644
+index 5dc95852c984..280c7d5a7657 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
-@@ -1336,6 +1336,15 @@ extern void init_sched_fair_class(void);
+@@ -1346,6 +1346,15 @@ extern void init_sched_fair_class(void);
extern void resched_curr(struct rq *rq);
extern void resched_cpu(int cpu);
diff --git a/debian/patches/features/all/rt/0308-ftrace-Fix-trace-header-alignment.patch b/debian/patches/features/all/rt/0308-ftrace-Fix-trace-header-alignment.patch
index 467cc90..01523ea 100644
--- a/debian/patches/features/all/rt/0308-ftrace-Fix-trace-header-alignment.patch
+++ b/debian/patches/features/all/rt/0308-ftrace-Fix-trace-header-alignment.patch
@@ -1,7 +1,7 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Sun, 16 Oct 2016 05:08:30 +0200
-Subject: [PATCH 308/337] ftrace: Fix trace header alignment
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=426e49ff62ae3ef00d9c40b413a95fca3426f8d1
+Subject: [PATCH 308/351] ftrace: Fix trace header alignment
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=198898d0b36d33c37ddeb095f6cd4e652a685a60
Line up helper arrows to the right column.
diff --git a/debian/patches/features/all/rt/0309-x86-Support-for-lazy-preemption.patch b/debian/patches/features/all/rt/0309-x86-Support-for-lazy-preemption.patch
index f339423..178b95a 100644
--- a/debian/patches/features/all/rt/0309-x86-Support-for-lazy-preemption.patch
+++ b/debian/patches/features/all/rt/0309-x86-Support-for-lazy-preemption.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 1 Nov 2012 11:03:47 +0100
-Subject: [PATCH 309/337] x86: Support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e6288b8306dd6af26fee8fbc81219daf514ec853
+Subject: [PATCH 309/351] x86: Support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1935a4dd2c0c07942bfd1baf53664c2495aa956f
Implement the x86 pieces for lazy preempt.
@@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
7 files changed, 79 insertions(+), 3 deletions(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index 14c824810efd..f8a995c90c01 100644
+index ab7c90867543..e96c2975af4f 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -17,6 +17,7 @@ config X86_64
diff --git a/debian/patches/features/all/rt/0310-arm-Add-support-for-lazy-preemption.patch b/debian/patches/features/all/rt/0310-arm-Add-support-for-lazy-preemption.patch
index dd9bf17..d6bf748 100644
--- a/debian/patches/features/all/rt/0310-arm-Add-support-for-lazy-preemption.patch
+++ b/debian/patches/features/all/rt/0310-arm-Add-support-for-lazy-preemption.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 31 Oct 2012 12:04:11 +0100
-Subject: [PATCH 310/337] arm: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e414bbae124500da942ed41613776f2b7647be3a
+Subject: [PATCH 310/351] arm: Add support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8ff2d525cbd016c6398530c8418aa689d75cf53
Implement the arm pieces for lazy preempt.
diff --git a/debian/patches/features/all/rt/0311-powerpc-Add-support-for-lazy-preemption.patch b/debian/patches/features/all/rt/0311-powerpc-Add-support-for-lazy-preemption.patch
index d8ddda4..42fc66c 100644
--- a/debian/patches/features/all/rt/0311-powerpc-Add-support-for-lazy-preemption.patch
+++ b/debian/patches/features/all/rt/0311-powerpc-Add-support-for-lazy-preemption.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 1 Nov 2012 10:14:11 +0100
-Subject: [PATCH 311/337] powerpc: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=85443034430dea1a00d1b6697e12641cb3c210f8
+Subject: [PATCH 311/351] powerpc: Add support for lazy preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8ce92e7ac88988f59f2a8f300ab2235805d16f21
Implement the powerpc pieces for lazy preempt.
@@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
5 files changed, 33 insertions(+), 11 deletions(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
-index 7b9f0a58ffb6..619485b777d2 100644
+index cdf9c16c1284..601e27701a4a 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -135,6 +135,7 @@ config PPC
diff --git a/debian/patches/features/all/rt/0312-arch-arm64-Add-lazy-preempt-support.patch b/debian/patches/features/all/rt/0312-arch-arm64-Add-lazy-preempt-support.patch
index ffbbd99..b499b26 100644
--- a/debian/patches/features/all/rt/0312-arch-arm64-Add-lazy-preempt-support.patch
+++ b/debian/patches/features/all/rt/0312-arch-arm64-Add-lazy-preempt-support.patch
@@ -1,7 +1,7 @@
From: Anders Roxell <anders.roxell at linaro.org>
Date: Thu, 14 May 2015 17:52:17 +0200
-Subject: [PATCH 312/337] arch/arm64: Add lazy preempt support
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9c33a92c15600cdd791b69292a44bbc1a07ae61c
+Subject: [PATCH 312/351] arch/arm64: Add lazy preempt support
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ec4b293ac451ca722e586b76f9d30ea7cdf09a1
arm64 is missing support for PREEMPT_RT. The main feature which is
lacking is support for lazy preemption. The arch-specific entry code,
diff --git a/debian/patches/features/all/rt/0313-sched-migrate-disable-handle-updated-task-mask-mg-di.patch b/debian/patches/features/all/rt/0313-sched-migrate-disable-handle-updated-task-mask-mg-di.patch
index 43afe37..f414066 100644
--- a/debian/patches/features/all/rt/0313-sched-migrate-disable-handle-updated-task-mask-mg-di.patch
+++ b/debian/patches/features/all/rt/0313-sched-migrate-disable-handle-updated-task-mask-mg-di.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 19 Jun 2017 09:55:47 +0200
-Subject: [PATCH 313/337] sched/migrate disable: handle updated task-mask
+Subject: [PATCH 313/351] sched/migrate disable: handle updated task-mask
mg-dis section
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0cc18eca766071aa16020d7b59713631fc83b2f3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=14a5e6b25964132c71db01033b3ffafaff21570b
If task's cpumask changes while in the task is in a migrate_disable()
section then we don't react on it after a migrate_enable(). It matters
@@ -34,10 +34,10 @@ index 9ff3bc25e63f..e775696b480a 100644
int migrate_disable_atomic;
# endif
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 8a91130d4f17..d0312ccba0d3 100644
+index f29c4f961104..5ebcf53bcf3d 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -1150,18 +1150,14 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma
+@@ -1149,18 +1149,14 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma
p->nr_cpus_allowed = cpumask_weight(new_mask);
}
@@ -58,7 +58,7 @@ index 8a91130d4f17..d0312ccba0d3 100644
queued = task_on_rq_queued(p);
running = task_current(rq, p);
-@@ -1184,6 +1180,20 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
+@@ -1183,6 +1179,20 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
set_curr_task(rq, p);
}
@@ -79,7 +79,7 @@ index 8a91130d4f17..d0312ccba0d3 100644
static DEFINE_PER_CPU(struct cpumask, sched_cpumasks);
static DEFINE_MUTEX(sched_down_mutex);
static cpumask_t sched_down_cpumask;
-@@ -3448,6 +3458,43 @@ void migrate_enable(void)
+@@ -3447,6 +3457,43 @@ void migrate_enable(void)
*/
p->migrate_disable = 0;
diff --git a/debian/patches/features/all/rt/0314-leds-trigger-disable-CPU-trigger-on-RT.patch b/debian/patches/features/all/rt/0314-leds-trigger-disable-CPU-trigger-on-RT.patch
index 2281686..6c12d1d 100644
--- a/debian/patches/features/all/rt/0314-leds-trigger-disable-CPU-trigger-on-RT.patch
+++ b/debian/patches/features/all/rt/0314-leds-trigger-disable-CPU-trigger-on-RT.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 23 Jan 2014 14:45:59 +0100
-Subject: [PATCH 314/337] leds: trigger: disable CPU trigger on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4736c6c2a5cb9ae696b4a82ed1e1ab7841dfd6e4
+Subject: [PATCH 314/351] leds: trigger: disable CPU trigger on -RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a8d759127f947af0c00900717240e2ba2264661b
as it triggers:
|CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141
diff --git a/debian/patches/features/all/rt/0315-mmci-Remove-bogus-local_irq_save.patch b/debian/patches/features/all/rt/0315-mmci-Remove-bogus-local_irq_save.patch
index 9055e74..67ed816 100644
--- a/debian/patches/features/all/rt/0315-mmci-Remove-bogus-local_irq_save.patch
+++ b/debian/patches/features/all/rt/0315-mmci-Remove-bogus-local_irq_save.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 9 Jan 2013 12:11:12 +0100
-Subject: [PATCH 315/337] mmci: Remove bogus local_irq_save()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=08e610474fc0d5150cce174d149461afdb296d38
+Subject: [PATCH 315/351] mmci: Remove bogus local_irq_save()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=02a70dc0f9118eee331b58cd05163ebd4c889e13
On !RT interrupt runs with interrupts disabled. On RT it's in a
thread, so no need to disable interrupts at all.
diff --git a/debian/patches/features/all/rt/0316-cpufreq-drop-K8-s-driver-from-beeing-selected.patch b/debian/patches/features/all/rt/0316-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
index 7ac929c..86d846c 100644
--- a/debian/patches/features/all/rt/0316-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
+++ b/debian/patches/features/all/rt/0316-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 9 Apr 2015 15:23:01 +0200
-Subject: [PATCH 316/337] cpufreq: drop K8's driver from beeing selected
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1e46902782652f1473fa92907f2efd5ef0c41262
+Subject: [PATCH 316/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=f9200334d1976edc4edd04b948aaa96c76f06308
Ralf posted a picture of a backtrace from
diff --git a/debian/patches/features/all/rt/0317-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch b/debian/patches/features/all/rt/0317-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
index 8251783..c8b139b 100644
--- a/debian/patches/features/all/rt/0317-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
+++ b/debian/patches/features/all/rt/0317-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Sun, 16 Oct 2016 05:11:54 +0200
-Subject: [PATCH 317/337] connector/cn_proc: Protect send_msg() with a local
+Subject: [PATCH 317/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=8815a11ffa595f5b39c713ed75545a983343b48b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e57e7544cf7b025afa86e6075bff43f585f2f868
|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/features/all/rt/0318-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch b/debian/patches/features/all/rt/0318-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
index 7cabf50..c1622e3 100644
--- a/debian/patches/features/all/rt/0318-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
+++ b/debian/patches/features/all/rt/0318-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Thu, 31 Mar 2016 04:08:28 +0200
-Subject: [PATCH 318/337] drivers/block/zram: Replace bit spinlocks with
+Subject: [PATCH 318/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=b667dd9e56ca40bf1d55032aeeb11484c2935871
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=507cbeeef86ab05ca72369d5bbda8e8b8d68e0d0
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/features/all/rt/0319-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch b/debian/patches/features/all/rt/0319-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
index 3b38e5e..d88292a 100644
--- a/debian/patches/features/all/rt/0319-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
+++ b/debian/patches/features/all/rt/0319-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Thu, 20 Oct 2016 11:15:22 +0200
-Subject: [PATCH 319/337] drivers/zram: Don't disable preemption in
+Subject: [PATCH 319/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=0d80fa696e6e94f272e238d727cca1084e7c275d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=62a4340558f78756267ca9182939f1423dec2fb0
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/features/all/rt/0320-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch b/debian/patches/features/all/rt/0320-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch
index cff816e..b8e4d83 100644
--- a/debian/patches/features/all/rt/0320-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch
+++ b/debian/patches/features/all/rt/0320-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 25 Apr 2013 18:12:52 +0200
-Subject: [PATCH 320/337] drm/i915: drop trace_i915_gem_ring_dispatch on rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e1ea9907fd42f657bc57125c5e16c09d77054a58
+Subject: [PATCH 320/351] drm/i915: drop trace_i915_gem_ring_dispatch on rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b2e58eefcb7fcdcaec8784d337b0f16bd8d09f4
This tracepoint is responsible for:
diff --git a/debian/patches/features/all/rt/0321-i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch b/debian/patches/features/all/rt/0321-i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch
index 32478e4..b60e4c5 100644
--- a/debian/patches/features/all/rt/0321-i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch
+++ b/debian/patches/features/all/rt/0321-i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch
@@ -1,8 +1,8 @@
From: Clark Williams <williams at redhat.com>
Date: Tue, 26 May 2015 10:43:43 -0500
-Subject: [PATCH 321/337] i915: bogus warning from i915 when running on
+Subject: [PATCH 321/351] i915: bogus warning from i915 when running on
PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98c75b75d44e32da85c70141e297502666d58bde
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3586546287ee8cb1dc3ce800801b4fd28c8568f6
The i915 driver has a 'WARN_ON(!in_interrupt())' in the display
handler, which whines constanly on the RT kernel (since the interrupt
diff --git a/debian/patches/features/all/rt/0322-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch b/debian/patches/features/all/rt/0322-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
index c11748b..c814670 100644
--- a/debian/patches/features/all/rt/0322-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
+++ b/debian/patches/features/all/rt/0322-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Sat, 27 Feb 2016 08:09:11 +0100
-Subject: [PATCH 322/337] drm,radeon,i915: Use preempt_disable/enable_rt()
+Subject: [PATCH 322/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=9efc3bb5c5f302b64f1e92836d30b1d8a8d21442
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=34471fd99c235a53994099d8c7bd31ab93563809
DRM folks identified the spots, so use them.
diff --git a/debian/patches/features/all/rt/0323-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch b/debian/patches/features/all/rt/0323-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
index 58dee93..8da478d 100644
--- a/debian/patches/features/all/rt/0323-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
+++ b/debian/patches/features/all/rt/0323-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Sat, 27 Feb 2016 09:01:42 +0100
-Subject: [PATCH 323/337] drm,i915: Use local_lock/unlock_irq() in
+Subject: [PATCH 323/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=cbf68de114b15328aefe29b2d5320b55b76a7391
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c4c7dae41db444bdcc8b5640fa34959ce624926c
[ 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/features/all/rt/0324-cgroups-use-simple-wait-in-css_release.patch b/debian/patches/features/all/rt/0324-cgroups-use-simple-wait-in-css_release.patch
index 2786c8f..1af8aae 100644
--- a/debian/patches/features/all/rt/0324-cgroups-use-simple-wait-in-css_release.patch
+++ b/debian/patches/features/all/rt/0324-cgroups-use-simple-wait-in-css_release.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 13 Feb 2015 15:52:24 +0100
-Subject: [PATCH 324/337] cgroups: use simple wait in css_release()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3f3dd9b073a86f6ef01f4bae72d267be85c8b6d1
+Subject: [PATCH 324/351] cgroups: use simple wait in css_release()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b33a2df01d133458ee4ec982365ae44684f8f615
To avoid:
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
diff --git a/debian/patches/features/all/rt/0325-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch b/debian/patches/features/all/rt/0325-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch
index 0b0c2a9..a857395 100644
--- a/debian/patches/features/all/rt/0325-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch
+++ b/debian/patches/features/all/rt/0325-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <umgwanakikbuti at gmail.com>
Date: Sat, 21 Jun 2014 10:09:48 +0200
-Subject: [PATCH 325/337] memcontrol: Prevent scheduling while atomic in cgroup
+Subject: [PATCH 325/351] memcontrol: Prevent scheduling while atomic in cgroup
code
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=577f97efb5e19ddfd29e8697c4eccd05faa27021
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8eb6172be3a753b8f055d02f201e77383dda3c7d
mm, memcg: make refill_stock() use get_cpu_light()
diff --git a/debian/patches/features/all/rt/0326-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch b/debian/patches/features/all/rt/0326-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
index 8c7e8e5..0519d2a 100644
--- a/debian/patches/features/all/rt/0326-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
+++ b/debian/patches/features/all/rt/0326-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
@@ -1,7 +1,7 @@
From: Mike Galbraith <efault at gmx.de>
Date: Sun, 8 Jan 2017 09:32:25 +0100
-Subject: [PATCH 326/337] cpuset: Convert callback_lock to raw_spinlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7dfdfe6e6f0f93d46ff74d831ab5da3cafa1e715
+Subject: [PATCH 326/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=fb16993886c091ebb046017f619792529bb517ce
The two commits below add up to a cpuset might_sleep() splat for RT:
diff --git a/debian/patches/features/all/rt/0327-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch b/debian/patches/features/all/rt/0327-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch
index 51e109c..dc9fc70 100644
--- a/debian/patches/features/all/rt/0327-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch
+++ b/debian/patches/features/all/rt/0327-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Wed, 26 Jun 2013 15:28:11 -0400
-Subject: [PATCH 327/337] rt,ntp: Move call to schedule_delayed_work() to
+Subject: [PATCH 327/351] rt,ntp: Move call to schedule_delayed_work() to
helper thread
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=721d694df10f69efb96da696b7283e41f4482383
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=00b2577fb82e975388956f5682262fa3f505b224
The ntp code for notify_cmos_timer() is called from a hard interrupt
context. schedule_delayed_work() under PREEMPT_RT_FULL calls spinlocks
diff --git a/debian/patches/features/all/rt/0328-md-disable-bcache.patch b/debian/patches/features/all/rt/0328-md-disable-bcache.patch
index 63a815d..8646dc5 100644
--- a/debian/patches/features/all/rt/0328-md-disable-bcache.patch
+++ b/debian/patches/features/all/rt/0328-md-disable-bcache.patch
@@ -1,10 +1,10 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 29 Aug 2013 11:48:57 +0200
-Subject: [PATCH 328/337] md: disable bcache
+Subject: [PATCH 328/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=50678491d16b03a77fbb2ba1c27a74879f7c9f7d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3476cfc22712f8a55bce8fdb6cfac13795fc4193
It uses anon semaphores
|drivers/md/bcache/request.c: In function ‘cached_dev_write_complete’:
diff --git a/debian/patches/features/all/rt/0329-workqueue-Prevent-deadlock-stall-on-RT.patch b/debian/patches/features/all/rt/0329-workqueue-Prevent-deadlock-stall-on-RT.patch
index 8dbb676..52db8f1 100644
--- a/debian/patches/features/all/rt/0329-workqueue-Prevent-deadlock-stall-on-RT.patch
+++ b/debian/patches/features/all/rt/0329-workqueue-Prevent-deadlock-stall-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 27 Jun 2014 16:24:52 +0200
-Subject: [PATCH 329/337] workqueue: Prevent deadlock/stall on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b914c737eb8e3802a6240500858e79bd37181c0
+Subject: [PATCH 329/351] workqueue: Prevent deadlock/stall on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=45d0394b436c76c5e592eb0b8e85e77d870ad413
Austin reported a XFS deadlock/stall on RT where scheduled work gets
never exececuted and tasks are waiting for each other for ever.
@@ -42,10 +42,10 @@ Cc: Steven Rostedt <rostedt at goodmis.org>
2 files changed, 52 insertions(+), 15 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index d0312ccba0d3..5dce33351ae6 100644
+index 5ebcf53bcf3d..ed1ebcc2ff3d 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3675,9 +3675,8 @@ void __noreturn do_task_dead(void)
+@@ -3674,9 +3674,8 @@ void __noreturn do_task_dead(void)
static inline void sched_submit_work(struct task_struct *tsk)
{
@@ -56,7 +56,7 @@ index d0312ccba0d3..5dce33351ae6 100644
/*
* If a worker went to sleep, notify and ask workqueue whether
* it wants to wake up a task to maintain concurrency.
-@@ -3685,6 +3684,10 @@ static inline void sched_submit_work(struct task_struct *tsk)
+@@ -3684,6 +3683,10 @@ static inline void sched_submit_work(struct task_struct *tsk)
if (tsk->flags & PF_WQ_WORKER)
wq_worker_sleeping(tsk);
diff --git a/debian/patches/features/all/rt/0330-Add-localversion-for-RT-release.patch b/debian/patches/features/all/rt/0330-Add-localversion-for-RT-release.patch
index 6eeec30..8510a47 100644
--- a/debian/patches/features/all/rt/0330-Add-localversion-for-RT-release.patch
+++ b/debian/patches/features/all/rt/0330-Add-localversion-for-RT-release.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 8 Jul 2011 20:25:16 +0200
-Subject: [PATCH 330/337] Add localversion for -RT release
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=75aabefca9ea944ff4077ab0075a53a3000490dd
+Subject: [PATCH 330/351] Add localversion for -RT release
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=711d4a1e6e0c43fb0ff7d87eb74e425d3360331c
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
diff --git a/debian/patches/features/all/rt/0331-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch b/debian/patches/features/all/rt/0331-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch
index fdb67c7..e4965e8 100644
--- a/debian/patches/features/all/rt/0331-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch
+++ b/debian/patches/features/all/rt/0331-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch
@@ -1,8 +1,8 @@
From: Mike Galbraith <efault at gmx.de>
Date: Wed, 23 Aug 2017 11:57:29 +0200
-Subject: [PATCH 331/337] drivers/zram: fix zcomp_stream_get()
+Subject: [PATCH 331/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=fb2d5847636dce546facf3f722cce8d2a3e716b9
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b1993403f14d13ada9ed46a903e4b22fbdc79c8
Use get_local_ptr() instead this_cpu_ptr() to avoid a warning regarding
smp_processor_id() in preemptible code.
diff --git a/debian/patches/features/all/rt/0332-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch b/debian/patches/features/all/rt/0332-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
index 9e0eea4..3838322 100644
--- a/debian/patches/features/all/rt/0332-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
+++ b/debian/patches/features/all/rt/0332-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 20 Oct 2017 11:29:53 +0200
-Subject: [PATCH 332/337] fs/dcache: disable preemption on i_dir_seq's write
+Subject: [PATCH 332/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=5338a587a9b6b2bbfbb6640990148c7bca43921c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=24f0a4011408dc71877405d8963009b53bbb212f
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
@@ -83,7 +83,7 @@ index 920aa0b1c6b0..3d6b5fd1bf06 100644
inode->dirtied_when = 0;
diff --git a/fs/libfs.c b/fs/libfs.c
-index 48826d4da189..3ea54d1fc431 100644
+index 9588780ad43e..9b37abd354c9 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -89,7 +89,7 @@ static struct dentry *next_positive(struct dentry *parent,
diff --git a/debian/patches/features/all/rt/0333-tpm_tis-fix-stall-after-iowrite-s.patch b/debian/patches/features/all/rt/0333-tpm_tis-fix-stall-after-iowrite-s.patch
index 7482ef1..a6848cc 100644
--- a/debian/patches/features/all/rt/0333-tpm_tis-fix-stall-after-iowrite-s.patch
+++ b/debian/patches/features/all/rt/0333-tpm_tis-fix-stall-after-iowrite-s.patch
@@ -1,7 +1,7 @@
From: Haris Okanovic <haris.okanovic at ni.com>
Date: Tue, 15 Aug 2017 15:13:08 -0500
-Subject: [PATCH 333/337] tpm_tis: fix stall after iowrite*()s
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aad4f33737a9f0517a73f9a08ffe205c684727e4
+Subject: [PATCH 333/351] tpm_tis: fix stall after iowrite*()s
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d2d77febce57f03e360002a856fe0dc79d68de8b
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/features/all/rt/0334-fs-convert-two-more-BH_Uptodate_Lock-related-bitspin.patch b/debian/patches/features/all/rt/0334-fs-convert-two-more-BH_Uptodate_Lock-related-bitspin.patch
index 1380d50..2634c1c 100644
--- a/debian/patches/features/all/rt/0334-fs-convert-two-more-BH_Uptodate_Lock-related-bitspin.patch
+++ b/debian/patches/features/all/rt/0334-fs-convert-two-more-BH_Uptodate_Lock-related-bitspin.patch
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 6 Nov 2017 18:45:30 +0100
-Subject: [PATCH 334/337] fs: convert two more BH_Uptodate_Lock related
+Subject: [PATCH 334/351] fs: convert two more BH_Uptodate_Lock related
bitspinlocks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1ec01e622641928d29df53a595a18bb46bfdb494
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ac709fc6486bc43e186c1ed4d3a110107df67be8
We convert all BH_Uptodate_Lock based bit-spinlocks to use
bh_uptodate_lock_irqsave() instead. Those two were introduced after the
diff --git a/debian/patches/features/all/rt/0335-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch b/debian/patches/features/all/rt/0335-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch
index 03e59d7..15d5fa5 100644
--- a/debian/patches/features/all/rt/0335-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch
+++ b/debian/patches/features/all/rt/0335-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch
@@ -1,8 +1,8 @@
From: Mikulas Patocka <mpatocka at redhat.com>
Date: Mon, 13 Nov 2017 12:56:53 -0500
-Subject: [PATCH 335/337] locking/rt-mutex: fix deadlock in device mapper /
+Subject: [PATCH 335/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=c8c0db22c7e4a2876dca7028dacfebaa79c5bc57
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=41515a02fd26d60a8b7297a5b86f06e406b97029
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/features/all/rt/0336-md-raid5-do-not-disable-interrupts.patch b/debian/patches/features/all/rt/0336-md-raid5-do-not-disable-interrupts.patch
index 8c89cb0..0769eec 100644
--- a/debian/patches/features/all/rt/0336-md-raid5-do-not-disable-interrupts.patch
+++ b/debian/patches/features/all/rt/0336-md-raid5-do-not-disable-interrupts.patch
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 17 Nov 2017 16:21:00 +0100
-Subject: [PATCH 336/337] md/raid5: do not disable interrupts
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8231d7b6018bbf12f3476a35080b648a9ae63680
+Subject: [PATCH 336/351] md/raid5: do not disable interrupts
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=141b9c572138632b2912374ea22592de87578491
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974
|in_atomic(): 0, irqs_disabled(): 1, pid: 2992, name: lvm
diff --git a/debian/patches/features/all/rt/0337-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch b/debian/patches/features/all/rt/0337-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch
new file mode 100644
index 0000000..51b6a20
--- /dev/null
+++ b/debian/patches/features/all/rt/0337-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch
@@ -0,0 +1,103 @@
+From: "Steven Rostedt (VMware)" <rostedt at goodmis.org>
+Date: Wed, 22 Nov 2017 07:31:19 -0500
+Subject: [PATCH 337/351] Revert "memcontrol: Prevent scheduling while atomic
+ in cgroup code"
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=73151b7028efd3386509eb3bd89a0403125600d9
+
+The commit "memcontrol: Prevent scheduling while atomic in cgroup code"
+fixed this issue:
+
+ refill_stock()
+ get_cpu_var()
+ drain_stock()
+ res_counter_uncharge()
+ res_counter_uncharge_until()
+ spin_lock() <== boom
+
+But commit 3e32cb2e0a12b ("mm: memcontrol: lockless page counters") replaced
+the calls to res_counter_uncharge() in drain_stock() to the lockless
+function page_counter_uncharge(). There is no more spin lock there and no
+more reason to have that local lock.
+
+Cc: stable-rt at vger.kernel.org
+Reported-by: Haiyang HY1 Tan <tanhy1 at lenovo.com>
+Signed-off-by: Steven Rostedt (VMware) <rostedt at goodmis.org>
+[bigeasy: That upstream commit appeared in v3.19 and the patch in
+ question in v3.18.7-rt2 and v3.18 seems still to be maintained. So I
+ guess that v3.18 would need the locallocks that we are about to remove
+ here. I am not sure if any earlier versions have the patch
+ backported.
+ The stable tag here is because Haiyang reported (and debugged) a crash
+ in 4.4-RT with this patch applied (which has get_cpu_light() instead
+ the locallocks it gained in v4.9-RT).
+ https://lkml.kernel.org/r/05AA4EC5C6EC1D48BE2CDCFF3AE0B8A637F78A15@CNMAILEX04.lenovo.com
+]
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ mm/memcontrol.c | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+diff --git a/mm/memcontrol.c b/mm/memcontrol.c
+index 12b94909ba7b..c04403033aec 100644
+--- a/mm/memcontrol.c
++++ b/mm/memcontrol.c
+@@ -1698,7 +1698,6 @@ struct memcg_stock_pcp {
+ #define FLUSHING_CACHED_CHARGE 0
+ };
+ static DEFINE_PER_CPU(struct memcg_stock_pcp, memcg_stock);
+-static DEFINE_LOCAL_IRQ_LOCK(memcg_stock_ll);
+ static DEFINE_MUTEX(percpu_charge_mutex);
+
+ /**
+@@ -1721,7 +1720,7 @@ static bool consume_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
+ if (nr_pages > CHARGE_BATCH)
+ return ret;
+
+- local_lock_irqsave(memcg_stock_ll, flags);
++ local_irq_save(flags);
+
+ stock = this_cpu_ptr(&memcg_stock);
+ if (memcg == stock->cached && stock->nr_pages >= nr_pages) {
+@@ -1729,7 +1728,7 @@ static bool consume_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
+ ret = true;
+ }
+
+- local_unlock_irqrestore(memcg_stock_ll, flags);
++ local_irq_restore(flags);
+
+ return ret;
+ }
+@@ -1756,13 +1755,13 @@ static void drain_local_stock(struct work_struct *dummy)
+ struct memcg_stock_pcp *stock;
+ unsigned long flags;
+
+- local_lock_irqsave(memcg_stock_ll, flags);
++ local_irq_save(flags);
+
+ stock = this_cpu_ptr(&memcg_stock);
+ drain_stock(stock);
+ clear_bit(FLUSHING_CACHED_CHARGE, &stock->flags);
+
+- local_unlock_irqrestore(memcg_stock_ll, flags);
++ local_irq_restore(flags);
+ }
+
+ /*
+@@ -1774,7 +1773,7 @@ static void refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
+ struct memcg_stock_pcp *stock;
+ unsigned long flags;
+
+- local_lock_irqsave(memcg_stock_ll, flags);
++ local_irq_save(flags);
+
+ stock = this_cpu_ptr(&memcg_stock);
+ if (stock->cached != memcg) { /* reset if necessary */
+@@ -1783,7 +1782,7 @@ static void refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
+ }
+ stock->nr_pages += nr_pages;
+
+- local_unlock_irqrestore(memcg_stock_ll, flags);
++ local_irq_restore(flags);
+ }
+
+ /*
diff --git a/debian/patches/features/all/rt/0338-Revert-fs-jbd2-pull-your-plug-when-waiting-for-space.patch b/debian/patches/features/all/rt/0338-Revert-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
new file mode 100644
index 0000000..9421756
--- /dev/null
+++ b/debian/patches/features/all/rt/0338-Revert-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
@@ -0,0 +1,30 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Thu, 23 Nov 2017 17:51:51 +0100
+Subject: [PATCH 338/351] Revert "fs: jbd2: pull your plug when waiting for
+ space"
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ad24d535a852a1b83f587910dab3190d243bc302
+
+This reverts commit "fs: jbd2: pull your plug when waiting for space".
+This was a duct-tape fix which shouldn't be needed since commit
+"locking/rt-mutex: fix deadlock in device mapper / block-IO".
+
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt at goodmis.org>
+---
+ fs/jbd2/checkpoint.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/fs/jbd2/checkpoint.c b/fs/jbd2/checkpoint.c
+index 6e18a06aaabe..684996c8a3a4 100644
+--- a/fs/jbd2/checkpoint.c
++++ b/fs/jbd2/checkpoint.c
+@@ -116,8 +116,6 @@ void __jbd2_log_wait_for_space(journal_t *journal)
+ nblocks = jbd2_space_needed(journal);
+ while (jbd2_log_space_left(journal) < nblocks) {
+ write_unlock(&journal->j_state_lock);
+- if (current->plug)
+- io_schedule();
+ mutex_lock(&journal->j_checkpoint_mutex);
+
+ /*
diff --git a/debian/patches/features/all/rt/0339-rtmutex-Fix-lock-stealing-logic.patch b/debian/patches/features/all/rt/0339-rtmutex-Fix-lock-stealing-logic.patch
new file mode 100644
index 0000000..5794bac
--- /dev/null
+++ b/debian/patches/features/all/rt/0339-rtmutex-Fix-lock-stealing-logic.patch
@@ -0,0 +1,162 @@
+From: Mike Galbraith <efault at gmx.de>
+Date: Fri, 23 Jun 2017 09:37:14 +0200
+Subject: [PATCH 339/351] rtmutex: Fix lock stealing logic
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=12662cc688be0b0b946d35c7a938a8c58ef27164
+
+1. When trying to acquire an rtmutex, we first try to grab it without
+queueing the waiter, and explicitly check for that initial attempt
+in the !waiter path of __try_to_take_rt_mutex(). Checking whether
+the lock taker is top waiter before allowing a steal attempt in that
+path is a thinko: the lock taker has not yet blocked.
+
+2. It seems wrong to change the definition of rt_mutex_waiter_less()
+to mean less or perhaps equal when we have an rt_mutex_waiter_equal().
+
+Remove the thinko, restore rt_mutex_waiter_less(), implement and use
+rt_mutex_steal() based upon rt_mutex_waiter_less/equal(), moving all
+qualification criteria into the function itself.
+
+Reviewed-by: Steven Rostedt (VMware) <rostedt at goodmis.org>
+Signed-off-by: Mike Galbraith <efault at gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ kernel/locking/rtmutex.c | 73 ++++++++++++++++++++++++------------------------
+ 1 file changed, 36 insertions(+), 37 deletions(-)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index b73cd7c87551..5dbf6789383b 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -235,25 +235,18 @@ static inline bool unlock_rt_mutex_safe(struct rt_mutex *lock,
+ }
+ #endif
+
+-#define STEAL_NORMAL 0
+-#define STEAL_LATERAL 1
+ /*
+ * Only use with rt_mutex_waiter_{less,equal}()
+ */
+-#define task_to_waiter(p) \
+- &(struct rt_mutex_waiter){ .prio = (p)->prio, .deadline = (p)->dl.deadline }
++#define task_to_waiter(p) &(struct rt_mutex_waiter) \
++ { .prio = (p)->prio, .deadline = (p)->dl.deadline, .task = (p) }
+
+ static inline int
+ rt_mutex_waiter_less(struct rt_mutex_waiter *left,
+- struct rt_mutex_waiter *right, int mode)
++ struct rt_mutex_waiter *right)
+ {
+- if (mode == STEAL_NORMAL) {
+- if (left->prio < right->prio)
+- return 1;
+- } else {
+- if (left->prio <= right->prio)
+- return 1;
+- }
++ if (left->prio < right->prio)
++ return 1;
+
+ /*
+ * If both waiters have dl_prio(), we check the deadlines of the
+@@ -286,6 +279,27 @@ rt_mutex_waiter_equal(struct rt_mutex_waiter *left,
+ return 1;
+ }
+
++#define STEAL_NORMAL 0
++#define STEAL_LATERAL 1
++
++static inline int
++rt_mutex_steal(struct rt_mutex *lock, struct rt_mutex_waiter *waiter, int mode)
++{
++ struct rt_mutex_waiter *top_waiter = rt_mutex_top_waiter(lock);
++
++ if (waiter == top_waiter || rt_mutex_waiter_less(waiter, top_waiter))
++ return 1;
++
++ /*
++ * Note that RT tasks are excluded from lateral-steals
++ * to prevent the introduction of an unbounded latency.
++ */
++ if (mode == STEAL_NORMAL || rt_task(waiter->task))
++ return 0;
++
++ return rt_mutex_waiter_equal(waiter, top_waiter);
++}
++
+ static void
+ rt_mutex_enqueue(struct rt_mutex *lock, struct rt_mutex_waiter *waiter)
+ {
+@@ -297,7 +311,7 @@ rt_mutex_enqueue(struct rt_mutex *lock, struct rt_mutex_waiter *waiter)
+ while (*link) {
+ parent = *link;
+ entry = rb_entry(parent, struct rt_mutex_waiter, tree_entry);
+- if (rt_mutex_waiter_less(waiter, entry, STEAL_NORMAL)) {
++ if (rt_mutex_waiter_less(waiter, entry)) {
+ link = &parent->rb_left;
+ } else {
+ link = &parent->rb_right;
+@@ -336,7 +350,7 @@ rt_mutex_enqueue_pi(struct task_struct *task, struct rt_mutex_waiter *waiter)
+ while (*link) {
+ parent = *link;
+ entry = rb_entry(parent, struct rt_mutex_waiter, pi_tree_entry);
+- if (rt_mutex_waiter_less(waiter, entry, STEAL_NORMAL)) {
++ if (rt_mutex_waiter_less(waiter, entry)) {
+ link = &parent->rb_left;
+ } else {
+ link = &parent->rb_right;
+@@ -847,6 +861,7 @@ static int rt_mutex_adjust_prio_chain(struct task_struct *task,
+ * @task: The task which wants to acquire the lock
+ * @waiter: The waiter that is queued to the lock's wait tree if the
+ * callsite called task_blocked_on_lock(), otherwise NULL
++ * @mode: Lock steal mode (STEAL_NORMAL, STEAL_LATERAL)
+ */
+ static int __try_to_take_rt_mutex(struct rt_mutex *lock,
+ struct task_struct *task,
+@@ -886,14 +901,11 @@ static int __try_to_take_rt_mutex(struct rt_mutex *lock,
+ */
+ if (waiter) {
+ /*
+- * If waiter is not the highest priority waiter of
+- * @lock, give up.
++ * If waiter is not the highest priority waiter of @lock,
++ * or its peer when lateral steal is allowed, give up.
+ */
+- if (waiter != rt_mutex_top_waiter(lock)) {
+- /* XXX rt_mutex_waiter_less() ? */
++ if (!rt_mutex_steal(lock, waiter, mode))
+ return 0;
+- }
+-
+ /*
+ * We can acquire the lock. Remove the waiter from the
+ * lock waiters tree.
+@@ -910,25 +922,12 @@ static int __try_to_take_rt_mutex(struct rt_mutex *lock,
+ * not need to be dequeued.
+ */
+ if (rt_mutex_has_waiters(lock)) {
+- struct task_struct *pown = rt_mutex_top_waiter(lock)->task;
+-
+- if (task != pown)
+- return 0;
+-
+- /*
+- * Note that RT tasks are excluded from lateral-steals
+- * to prevent the introduction of an unbounded latency.
+- */
+- if (rt_task(task))
+- mode = STEAL_NORMAL;
+ /*
+- * If @task->prio is greater than or equal to
+- * the top waiter priority (kernel view),
+- * @task lost.
++ * If @task->prio is greater than the top waiter
++ * priority (kernel view), or equal to it when a
++ * lateral steal is forbidden, @task lost.
+ */
+- if (!rt_mutex_waiter_less(task_to_waiter(task),
+- rt_mutex_top_waiter(lock),
+- mode))
++ if (!rt_mutex_steal(lock, task_to_waiter(task), mode))
+ return 0;
+ /*
+ * The current top waiter stays enqueued. We
diff --git a/debian/patches/features/all/rt/0340-cpu_pm-replace-raw_notifier-to-atomic_notifier.patch b/debian/patches/features/all/rt/0340-cpu_pm-replace-raw_notifier-to-atomic_notifier.patch
new file mode 100644
index 0000000..c6ef89f
--- /dev/null
+++ b/debian/patches/features/all/rt/0340-cpu_pm-replace-raw_notifier-to-atomic_notifier.patch
@@ -0,0 +1,175 @@
+From: Alex Shi <alex.shi at linaro.org>
+Date: Thu, 6 Jul 2017 16:47:46 +0800
+Subject: [PATCH 340/351] cpu_pm: replace raw_notifier to atomic_notifier
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=740d4bdfc19b445ebb43c20e0f0f8b56b5639bd1
+
+This patch replace a rwlock and raw notifier by atomic notifier which
+protected by spin_lock and rcu.
+
+The first to reason to have this replace is due to a 'scheduling while
+ atomic' bug of RT kernel on arm/arm64 platform. On arm/arm64, rwlock
+cpu_pm_notifier_lock in cpu_pm cause a potential schedule after irq
+disable in idle call chain:
+
+cpu_startup_entry
+ cpu_idle_loop
+ local_irq_disable()
+ cpuidle_idle_call
+ call_cpuidle
+ cpuidle_enter
+ cpuidle_enter_state
+ ->enter :arm_enter_idle_state
+ cpu_pm_enter/exit
+ CPU_PM_CPU_IDLE_ENTER
+ read_lock(&cpu_pm_notifier_lock); <-- sleep in idle
+ __rt_spin_lock();
+ schedule();
+
+The kernel panic is here:
+[ 4.609601] BUG: scheduling while atomic: swapper/1/0/0x00000002
+[ 4.609608] [<ffff0000086fae70>] arm_enter_idle_state+0x18/0x70
+[ 4.609614] Modules linked in:
+[ 4.609615] [<ffff0000086f9298>] cpuidle_enter_state+0xf0/0x218
+[ 4.609620] [<ffff0000086f93f8>] cpuidle_enter+0x18/0x20
+[ 4.609626] Preemption disabled at:
+[ 4.609627] [<ffff0000080fa234>] call_cpuidle+0x24/0x40
+[ 4.609635] [<ffff000008882fa4>] schedule_preempt_disabled+0x1c/0x28
+[ 4.609639] [<ffff0000080fa49c>] cpu_startup_entry+0x154/0x1f8
+[ 4.609645] [<ffff00000808e004>] secondary_start_kernel+0x15c/0x1a0
+
+Daniel Lezcano said this notification is needed on arm/arm64 platforms.
+Sebastian suggested using atomic_notifier instead of rwlock, which is not
+only removing the sleeping in idle, but also getting better latency
+improvement.
+
+This patch passed Fengguang's 0day testing.
+
+Signed-off-by: Alex Shi <alex.shi at linaro.org>
+Cc: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Cc: Thomas Gleixner <tglx at linutronix.de>
+Cc: Anders Roxell <anders.roxell at linaro.org>
+Cc: Rik van Riel <riel at redhat.com>
+Cc: Steven Rostedt <rostedt at goodmis.org>
+Cc: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
+Cc: Daniel Lezcano <daniel.lezcano at linaro.org>
+Cc: linux-rt-users <linux-rt-users at vger.kernel.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ kernel/cpu_pm.c | 43 ++++++-------------------------------------
+ 1 file changed, 6 insertions(+), 37 deletions(-)
+
+diff --git a/kernel/cpu_pm.c b/kernel/cpu_pm.c
+index 009cc9a17d95..10f4640f991e 100644
+--- a/kernel/cpu_pm.c
++++ b/kernel/cpu_pm.c
+@@ -22,14 +22,13 @@
+ #include <linux/spinlock.h>
+ #include <linux/syscore_ops.h>
+
+-static DEFINE_RWLOCK(cpu_pm_notifier_lock);
+-static RAW_NOTIFIER_HEAD(cpu_pm_notifier_chain);
++static ATOMIC_NOTIFIER_HEAD(cpu_pm_notifier_chain);
+
+ static int cpu_pm_notify(enum cpu_pm_event event, int nr_to_call, int *nr_calls)
+ {
+ int ret;
+
+- ret = __raw_notifier_call_chain(&cpu_pm_notifier_chain, event, NULL,
++ ret = __atomic_notifier_call_chain(&cpu_pm_notifier_chain, event, NULL,
+ nr_to_call, nr_calls);
+
+ return notifier_to_errno(ret);
+@@ -47,14 +46,7 @@ static int cpu_pm_notify(enum cpu_pm_event event, int nr_to_call, int *nr_calls)
+ */
+ int cpu_pm_register_notifier(struct notifier_block *nb)
+ {
+- unsigned long flags;
+- int ret;
+-
+- write_lock_irqsave(&cpu_pm_notifier_lock, flags);
+- ret = raw_notifier_chain_register(&cpu_pm_notifier_chain, nb);
+- write_unlock_irqrestore(&cpu_pm_notifier_lock, flags);
+-
+- return ret;
++ return atomic_notifier_chain_register(&cpu_pm_notifier_chain, nb);
+ }
+ EXPORT_SYMBOL_GPL(cpu_pm_register_notifier);
+
+@@ -69,14 +61,7 @@ EXPORT_SYMBOL_GPL(cpu_pm_register_notifier);
+ */
+ int cpu_pm_unregister_notifier(struct notifier_block *nb)
+ {
+- unsigned long flags;
+- int ret;
+-
+- write_lock_irqsave(&cpu_pm_notifier_lock, flags);
+- ret = raw_notifier_chain_unregister(&cpu_pm_notifier_chain, nb);
+- write_unlock_irqrestore(&cpu_pm_notifier_lock, flags);
+-
+- return ret;
++ return atomic_notifier_chain_unregister(&cpu_pm_notifier_chain, nb);
+ }
+ EXPORT_SYMBOL_GPL(cpu_pm_unregister_notifier);
+
+@@ -100,7 +85,6 @@ int cpu_pm_enter(void)
+ int nr_calls;
+ int ret = 0;
+
+- read_lock(&cpu_pm_notifier_lock);
+ ret = cpu_pm_notify(CPU_PM_ENTER, -1, &nr_calls);
+ if (ret)
+ /*
+@@ -108,7 +92,6 @@ int cpu_pm_enter(void)
+ * PM entry who are notified earlier to prepare for it.
+ */
+ cpu_pm_notify(CPU_PM_ENTER_FAILED, nr_calls - 1, NULL);
+- read_unlock(&cpu_pm_notifier_lock);
+
+ return ret;
+ }
+@@ -128,13 +111,7 @@ EXPORT_SYMBOL_GPL(cpu_pm_enter);
+ */
+ int cpu_pm_exit(void)
+ {
+- int ret;
+-
+- read_lock(&cpu_pm_notifier_lock);
+- ret = cpu_pm_notify(CPU_PM_EXIT, -1, NULL);
+- read_unlock(&cpu_pm_notifier_lock);
+-
+- return ret;
++ return cpu_pm_notify(CPU_PM_EXIT, -1, NULL);
+ }
+ EXPORT_SYMBOL_GPL(cpu_pm_exit);
+
+@@ -159,7 +136,6 @@ int cpu_cluster_pm_enter(void)
+ int nr_calls;
+ int ret = 0;
+
+- read_lock(&cpu_pm_notifier_lock);
+ ret = cpu_pm_notify(CPU_CLUSTER_PM_ENTER, -1, &nr_calls);
+ if (ret)
+ /*
+@@ -167,7 +143,6 @@ int cpu_cluster_pm_enter(void)
+ * PM entry who are notified earlier to prepare for it.
+ */
+ cpu_pm_notify(CPU_CLUSTER_PM_ENTER_FAILED, nr_calls - 1, NULL);
+- read_unlock(&cpu_pm_notifier_lock);
+
+ return ret;
+ }
+@@ -190,13 +165,7 @@ EXPORT_SYMBOL_GPL(cpu_cluster_pm_enter);
+ */
+ int cpu_cluster_pm_exit(void)
+ {
+- int ret;
+-
+- read_lock(&cpu_pm_notifier_lock);
+- ret = cpu_pm_notify(CPU_CLUSTER_PM_EXIT, -1, NULL);
+- read_unlock(&cpu_pm_notifier_lock);
+-
+- return ret;
++ return cpu_pm_notify(CPU_CLUSTER_PM_EXIT, -1, NULL);
+ }
+ EXPORT_SYMBOL_GPL(cpu_cluster_pm_exit);
+
diff --git a/debian/patches/features/all/rt/0341-PM-CPU-replace-raw_notifier-with-atomic_notifier-fix.patch b/debian/patches/features/all/rt/0341-PM-CPU-replace-raw_notifier-with-atomic_notifier-fix.patch
new file mode 100644
index 0000000..ef60a01
--- /dev/null
+++ b/debian/patches/features/all/rt/0341-PM-CPU-replace-raw_notifier-with-atomic_notifier-fix.patch
@@ -0,0 +1,34 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Thu, 17 Aug 2017 11:38:51 +0200
+Subject: [PATCH 341/351] PM / CPU: replace raw_notifier with atomic_notifier
+ (fixup)
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=68fb318c153c57bd80c317505c2c2e2edf9a8e6a
+
+The original patch changed betwen its posting and what finally went into
+Rafael's tree so here is the delta.
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ kernel/cpu_pm.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/kernel/cpu_pm.c b/kernel/cpu_pm.c
+index 10f4640f991e..67b02e138a47 100644
+--- a/kernel/cpu_pm.c
++++ b/kernel/cpu_pm.c
+@@ -28,8 +28,15 @@ static int cpu_pm_notify(enum cpu_pm_event event, int nr_to_call, int *nr_calls)
+ {
+ int ret;
+
++ /*
++ * __atomic_notifier_call_chain has a RCU read critical section, which
++ * could be disfunctional in cpu idle. Copy RCU_NONIDLE code to let
++ * RCU know this.
++ */
++ rcu_irq_enter_irqson();
+ ret = __atomic_notifier_call_chain(&cpu_pm_notifier_chain, event, NULL,
+ nr_to_call, nr_calls);
++ rcu_irq_exit_irqson();
+
+ return notifier_to_errno(ret);
+ }
diff --git a/debian/patches/features/all/rt/0342-kernel-hrtimer-migrate-deferred-timer-on-CPU-down.patch b/debian/patches/features/all/rt/0342-kernel-hrtimer-migrate-deferred-timer-on-CPU-down.patch
new file mode 100644
index 0000000..464927c
--- /dev/null
+++ b/debian/patches/features/all/rt/0342-kernel-hrtimer-migrate-deferred-timer-on-CPU-down.patch
@@ -0,0 +1,35 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Fri, 18 Aug 2017 10:09:09 +0200
+Subject: [PATCH 342/351] kernel/hrtimer: migrate deferred timer on CPU down
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eaeac8064f7f2f7ff47daa59818393fd628897ad
+
+hrtimers, which were deferred to the softirq context, and expire between
+softirq shutdown and hrtimer migration are dangling around. If the CPU
+goes back up the list head will be initialized and this corrupts the
+timer's list. It will remain unnoticed until a hrtimer_cancel().
+This moves those timers so they will expire.
+
+Cc: stable-rt at vger.kernel.org
+Reported-by: Mike Galbraith <efault at gmx.de>
+Tested-by: Mike Galbraith <efault at gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ kernel/time/hrtimer.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 0797bd6eadb4..39e4435b8451 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -1860,6 +1860,11 @@ static void migrate_hrtimer_list(struct hrtimer_clock_base *old_base,
+ */
+ enqueue_hrtimer(timer, new_base);
+ }
++#ifdef CONFIG_PREEMPT_RT_BASE
++ list_splice_tail(&old_base->expired, &new_base->expired);
++ if (!list_empty(&new_base->expired))
++ raise_softirq_irqoff(HRTIMER_SOFTIRQ);
++#endif
+ }
+
+ int hrtimers_dead_cpu(unsigned int scpu)
diff --git a/debian/patches/features/all/rt/0343-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch b/debian/patches/features/all/rt/0343-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch
new file mode 100644
index 0000000..eb8a083
--- /dev/null
+++ b/debian/patches/features/all/rt/0343-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch
@@ -0,0 +1,70 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Mon, 21 Aug 2017 15:09:13 +0200
+Subject: [PATCH 343/351] net: take the tcp_sk_lock lock with BH disabled
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=46dbe03ccfbabdcebca5110f09d79732c4afbafe
+
+Lockdep may complain about an unsafe locking scenario:
+| CPU0 CPU1
+| ---- ----
+| lock((tcp_sk_lock).lock);
+| lock(&per_cpu(local_softirq_locks[i], __cpu).lock);
+| lock((tcp_sk_lock).lock);
+| lock(&per_cpu(local_softirq_locks[i], __cpu).lock);
+
+in the call paths:
+ do_current_softirqs -> tcp_v4_send_ack()
+vs
+ tcp_v4_send_reset -> do_current_softirqs().
+
+This should not happen since local_softirq_locks is per CPU. Reversing
+the order makes lockdep happy.
+
+Reported-by: Jacek Konieczny <jajcus at jajcus.net>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ net/ipv4/tcp_ipv4.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
+index 3336e1534bc5..3b7298459c87 100644
+--- a/net/ipv4/tcp_ipv4.c
++++ b/net/ipv4/tcp_ipv4.c
+@@ -698,8 +698,8 @@ static void tcp_v4_send_reset(const struct sock *sk, struct sk_buff *skb)
+
+ arg.tos = ip_hdr(skb)->tos;
+
+- local_lock(tcp_sk_lock);
+ local_bh_disable();
++ local_lock(tcp_sk_lock);
+ ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk),
+ skb, &TCP_SKB_CB(skb)->header.h4.opt,
+ ip_hdr(skb)->saddr, ip_hdr(skb)->daddr,
+@@ -707,8 +707,8 @@ static void tcp_v4_send_reset(const struct sock *sk, struct sk_buff *skb)
+
+ __TCP_INC_STATS(net, TCP_MIB_OUTSEGS);
+ __TCP_INC_STATS(net, TCP_MIB_OUTRSTS);
+- local_bh_enable();
+ local_unlock(tcp_sk_lock);
++ local_bh_enable();
+
+ #ifdef CONFIG_TCP_MD5SIG
+ out:
+@@ -784,16 +784,16 @@ static void tcp_v4_send_ack(struct net *net,
+ if (oif)
+ arg.bound_dev_if = oif;
+ arg.tos = tos;
+- local_lock(tcp_sk_lock);
+ local_bh_disable();
++ local_lock(tcp_sk_lock);
+ ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk),
+ skb, &TCP_SKB_CB(skb)->header.h4.opt,
+ ip_hdr(skb)->saddr, ip_hdr(skb)->daddr,
+ &arg, arg.iov[0].iov_len);
+
+ __TCP_INC_STATS(net, TCP_MIB_OUTSEGS);
+- local_bh_enable();
+ local_unlock(tcp_sk_lock);
++ local_bh_enable();
+ }
+
+ static void tcp_v4_timewait_ack(struct sock *sk, struct sk_buff *skb)
diff --git a/debian/patches/features/all/rt/0344-kernel-hrtimer-don-t-wakeup-a-process-while-holding-.patch b/debian/patches/features/all/rt/0344-kernel-hrtimer-don-t-wakeup-a-process-while-holding-.patch
new file mode 100644
index 0000000..8c4d1cc
--- /dev/null
+++ b/debian/patches/features/all/rt/0344-kernel-hrtimer-don-t-wakeup-a-process-while-holding-.patch
@@ -0,0 +1,88 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Thu, 31 Aug 2017 18:19:06 +0200
+Subject: [PATCH 344/351] kernel/hrtimer: don't wakeup a process while holding
+ the hrtimer base lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7e5f72d0e04e6fe5d62b487a1af2c8cd624ab4c1
+
+We must not wake any process (and thus acquire the pi->lock) while
+holding the hrtimer's base lock. This does not happen usually because
+the hrtimer-callback is invoked in IRQ-context and so
+raise_softirq_irqoff() does not wakeup a process.
+However during CPU-hotplug it might get called from hrtimers_dead_cpu()
+which would wakeup the thread immediately.
+
+Reported-by: Mike Galbraith <efault at gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ kernel/time/hrtimer.c | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 39e4435b8451..8a20ef6919d9 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -1440,7 +1440,7 @@ static inline int hrtimer_rt_defer(struct hrtimer *timer) { return 0; }
+
+ static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer);
+
+-static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now)
++static int __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now)
+ {
+ struct hrtimer_clock_base *base = cpu_base->clock_base;
+ unsigned int active = cpu_base->active_bases;
+@@ -1490,8 +1490,7 @@ static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now)
+ raise = 1;
+ }
+ }
+- if (raise)
+- raise_softirq_irqoff(HRTIMER_SOFTIRQ);
++ return raise;
+ }
+
+ #ifdef CONFIG_HIGH_RES_TIMERS
+@@ -1505,6 +1504,7 @@ void hrtimer_interrupt(struct clock_event_device *dev)
+ struct hrtimer_cpu_base *cpu_base = this_cpu_ptr(&hrtimer_bases);
+ ktime_t expires_next, now, entry_time, delta;
+ int retries = 0;
++ int raise;
+
+ BUG_ON(!cpu_base->hres_active);
+ cpu_base->nr_events++;
+@@ -1523,7 +1523,7 @@ void hrtimer_interrupt(struct clock_event_device *dev)
+ */
+ cpu_base->expires_next.tv64 = KTIME_MAX;
+
+- __hrtimer_run_queues(cpu_base, now);
++ raise = __hrtimer_run_queues(cpu_base, now);
+
+ /* Reevaluate the clock bases for the next expiry */
+ expires_next = __hrtimer_get_next_event(cpu_base);
+@@ -1534,6 +1534,8 @@ void hrtimer_interrupt(struct clock_event_device *dev)
+ cpu_base->expires_next = expires_next;
+ cpu_base->in_hrtirq = 0;
+ raw_spin_unlock(&cpu_base->lock);
++ if (raise)
++ raise_softirq_irqoff(HRTIMER_SOFTIRQ);
+
+ /* Reprogramming necessary ? */
+ if (!tick_program_event(expires_next, 0)) {
+@@ -1613,6 +1615,7 @@ void hrtimer_run_queues(void)
+ {
+ struct hrtimer_cpu_base *cpu_base = this_cpu_ptr(&hrtimer_bases);
+ ktime_t now;
++ int raise;
+
+ if (__hrtimer_hres_active(cpu_base))
+ return;
+@@ -1631,8 +1634,10 @@ void hrtimer_run_queues(void)
+
+ raw_spin_lock(&cpu_base->lock);
+ now = hrtimer_update_base(cpu_base);
+- __hrtimer_run_queues(cpu_base, now);
++ raise = __hrtimer_run_queues(cpu_base, now);
+ raw_spin_unlock(&cpu_base->lock);
++ if (raise)
++ raise_softirq_irqoff(HRTIMER_SOFTIRQ);
+ }
+
+ /*
diff --git a/debian/patches/features/all/rt/0345-kernel-hrtimer-hotplug-don-t-wake-ktimersoftd-while-.patch b/debian/patches/features/all/rt/0345-kernel-hrtimer-hotplug-don-t-wake-ktimersoftd-while-.patch
new file mode 100644
index 0000000..b589ea5
--- /dev/null
+++ b/debian/patches/features/all/rt/0345-kernel-hrtimer-hotplug-don-t-wake-ktimersoftd-while-.patch
@@ -0,0 +1,71 @@
+From: Mike Galbraith <efault at gmx.de>
+Date: Sun, 3 Sep 2017 04:48:10 +0200
+Subject: [PATCH 345/351] kernel/hrtimer/hotplug: don't wake ktimersoftd while
+ holding the hrtimer base lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3b9b9115bc663cb42da1aa73174c2bcd49ba6fe
+
+kernel/hrtimer: don't wakeup a process while holding the hrtimer base lock
+missed a path, namely hrtimers_dead_cpu() -> migrate_hrtimer_list(). Defer
+raising softirq until after base lock has been released there as well.
+
+Signed-off-by: Mike Galbraith <efault at gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ kernel/time/hrtimer.c | 19 +++++++++++++------
+ 1 file changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
+index 8a20ef6919d9..369203af6406 100644
+--- a/kernel/time/hrtimer.c
++++ b/kernel/time/hrtimer.c
+@@ -1837,7 +1837,7 @@ int hrtimers_prepare_cpu(unsigned int cpu)
+
+ #ifdef CONFIG_HOTPLUG_CPU
+
+-static void migrate_hrtimer_list(struct hrtimer_clock_base *old_base,
++static int migrate_hrtimer_list(struct hrtimer_clock_base *old_base,
+ struct hrtimer_clock_base *new_base)
+ {
+ struct hrtimer *timer;
+@@ -1867,15 +1867,19 @@ static void migrate_hrtimer_list(struct hrtimer_clock_base *old_base,
+ }
+ #ifdef CONFIG_PREEMPT_RT_BASE
+ list_splice_tail(&old_base->expired, &new_base->expired);
+- if (!list_empty(&new_base->expired))
+- raise_softirq_irqoff(HRTIMER_SOFTIRQ);
++ /*
++ * Tell the caller to raise HRTIMER_SOFTIRQ. We can't safely
++ * acquire ktimersoftd->pi_lock while the base lock is held.
++ */
++ return !list_empty(&new_base->expired);
+ #endif
++ return 0;
+ }
+
+ int hrtimers_dead_cpu(unsigned int scpu)
+ {
+ struct hrtimer_cpu_base *old_base, *new_base;
+- int i;
++ int i, raise = 0;
+
+ BUG_ON(cpu_online(scpu));
+ tick_cancel_sched_timer(scpu);
+@@ -1891,13 +1895,16 @@ int hrtimers_dead_cpu(unsigned int scpu)
+ raw_spin_lock_nested(&old_base->lock, SINGLE_DEPTH_NESTING);
+
+ for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) {
+- migrate_hrtimer_list(&old_base->clock_base[i],
+- &new_base->clock_base[i]);
++ raise |= migrate_hrtimer_list(&old_base->clock_base[i],
++ &new_base->clock_base[i]);
+ }
+
+ raw_spin_unlock(&old_base->lock);
+ raw_spin_unlock(&new_base->lock);
+
++ if (raise)
++ raise_softirq_irqoff(HRTIMER_SOFTIRQ);
++
+ /* Check, if we got expired work to do */
+ __hrtimer_peek_ahead_timers();
+ local_irq_enable();
diff --git a/debian/patches/features/all/rt/0346-Bluetooth-avoid-recursive-locking-in-hci_send_to_cha.patch b/debian/patches/features/all/rt/0346-Bluetooth-avoid-recursive-locking-in-hci_send_to_cha.patch
new file mode 100644
index 0000000..fe949af
--- /dev/null
+++ b/debian/patches/features/all/rt/0346-Bluetooth-avoid-recursive-locking-in-hci_send_to_cha.patch
@@ -0,0 +1,73 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Thu, 21 Sep 2017 15:35:57 +0200
+Subject: [PATCH 346/351] Bluetooth: avoid recursive locking in
+ hci_send_to_channel()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=394ea479da613334f923cf77689dc2c8798bfd15
+
+Mart reported a deadlock in -RT in the call path:
+ hci_send_monitor_ctrl_event() -> hci_send_to_channel()
+
+because both functions acquire the same read lock hci_sk_list.lock. This
+is also a mainline issue because the qrwlock implementation is writer
+fair (the traditional rwlock implementation is reader biased).
+
+To avoid the deadlock there is now __hci_send_to_channel() which expects
+the readlock to be held.
+
+Cc: Marcel Holtmann <marcel at holtmann.org>
+Cc: Johan Hedberg <johan.hedberg at intel.com>
+Cc: stable-rt at vger.kernel.org
+Fixes: 38ceaa00d02d ("Bluetooth: Add support for sending MGMT commands and events to monitor")
+Reported-by: Mart van de Wege <mvdwege at gmail.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ net/bluetooth/hci_sock.c | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
+index c88a6007e643..5de85b55a821 100644
+--- a/net/bluetooth/hci_sock.c
++++ b/net/bluetooth/hci_sock.c
+@@ -251,15 +251,13 @@ void hci_send_to_sock(struct hci_dev *hdev, struct sk_buff *skb)
+ }
+
+ /* Send frame to sockets with specific channel */
+-void hci_send_to_channel(unsigned short channel, struct sk_buff *skb,
+- int flag, struct sock *skip_sk)
++static void __hci_send_to_channel(unsigned short channel, struct sk_buff *skb,
++ int flag, struct sock *skip_sk)
+ {
+ struct sock *sk;
+
+ BT_DBG("channel %u len %d", channel, skb->len);
+
+- read_lock(&hci_sk_list.lock);
+-
+ sk_for_each(sk, &hci_sk_list.head) {
+ struct sk_buff *nskb;
+
+@@ -285,6 +283,13 @@ void hci_send_to_channel(unsigned short channel, struct sk_buff *skb,
+ kfree_skb(nskb);
+ }
+
++}
++
++void hci_send_to_channel(unsigned short channel, struct sk_buff *skb,
++ int flag, struct sock *skip_sk)
++{
++ read_lock(&hci_sk_list.lock);
++ __hci_send_to_channel(channel, skb, flag, skip_sk);
+ read_unlock(&hci_sk_list.lock);
+ }
+
+@@ -388,8 +393,8 @@ void hci_send_monitor_ctrl_event(struct hci_dev *hdev, u16 event,
+ hdr->index = index;
+ hdr->len = cpu_to_le16(skb->len - HCI_MON_HDR_SIZE);
+
+- hci_send_to_channel(HCI_CHANNEL_MONITOR, skb,
+- HCI_SOCK_TRUSTED, NULL);
++ __hci_send_to_channel(HCI_CHANNEL_MONITOR, skb,
++ HCI_SOCK_TRUSTED, NULL);
+ kfree_skb(skb);
+ }
+
diff --git a/debian/patches/features/all/rt/0347-iommu-amd-Use-raw_cpu_ptr-instead-of-get_cpu_ptr-for.patch b/debian/patches/features/all/rt/0347-iommu-amd-Use-raw_cpu_ptr-instead-of-get_cpu_ptr-for.patch
new file mode 100644
index 0000000..d15b4dd
--- /dev/null
+++ b/debian/patches/features/all/rt/0347-iommu-amd-Use-raw_cpu_ptr-instead-of-get_cpu_ptr-for.patch
@@ -0,0 +1,46 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Tue, 5 Sep 2017 14:11:41 +0200
+Subject: [PATCH 347/351] iommu/amd: Use raw_cpu_ptr() instead of get_cpu_ptr()
+ for ->flush_queue
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5c78c5029a560bf213fd9a79c3753d8ca942007e
+
+get_cpu_ptr() disabled preemption and returns the ->flush_queue object
+of the current CPU. raw_cpu_ptr() does the same except that it not
+disable preemption which means the scheduler can move it to another CPU
+after it obtained the per-CPU object.
+In this case this is not bad because the data structure itself is
+protected with a spin_lock. This change shouldn't matter however on RT
+it does because the sleeping lock can't be accessed with disabled
+preemption.
+
+Cc: stable-rt at vger.kernel.org
+Cc: Joerg Roedel <joro at 8bytes.org>
+Cc: iommu at lists.linux-foundation.org
+Reported-by: Vinod Adhikary <vinadhy at gmail.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ drivers/iommu/amd_iommu.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
+index a88595b21111..ff5c2424eb9e 100644
+--- a/drivers/iommu/amd_iommu.c
++++ b/drivers/iommu/amd_iommu.c
+@@ -2283,7 +2283,7 @@ static void queue_add(struct dma_ops_domain *dma_dom,
+ pages = __roundup_pow_of_two(pages);
+ address >>= PAGE_SHIFT;
+
+- queue = get_cpu_ptr(&flush_queue);
++ queue = raw_cpu_ptr(&flush_queue);
+ spin_lock_irqsave(&queue->lock, flags);
+
+ if (queue->next == FLUSH_QUEUE_SIZE)
+@@ -2300,8 +2300,6 @@ static void queue_add(struct dma_ops_domain *dma_dom,
+
+ if (atomic_cmpxchg(&queue_timer_on, 0, 1) == 0)
+ mod_timer(&queue_timer, jiffies + msecs_to_jiffies(10));
+-
+- put_cpu_ptr(&flush_queue);
+ }
+
+
diff --git a/debian/patches/features/all/rt/0348-rt-locking-allow-recursive-local_trylock.patch b/debian/patches/features/all/rt/0348-rt-locking-allow-recursive-local_trylock.patch
new file mode 100644
index 0000000..477f452
--- /dev/null
+++ b/debian/patches/features/all/rt/0348-rt-locking-allow-recursive-local_trylock.patch
@@ -0,0 +1,41 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Thu, 21 Sep 2017 14:39:56 +0200
+Subject: [PATCH 348/351] rt/locking: allow recursive local_trylock()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c8232f40d938e7a1d8c202da9d1c32ae0c7b3799
+
+required for following networking patch which does recursive try-lock.
+While at it, add the !RT version of it because it did not yet exist.
+
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ include/linux/locallock.h | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/include/linux/locallock.h b/include/linux/locallock.h
+index 845c77f1a5ca..280f884a05a3 100644
+--- a/include/linux/locallock.h
++++ b/include/linux/locallock.h
+@@ -77,6 +77,9 @@ static inline int __local_trylock(struct local_irq_lock *lv)
+ lv->owner = current;
+ lv->nestcnt = 1;
+ return 1;
++ } else if (lv->owner == current) {
++ lv->nestcnt++;
++ return 1;
+ }
+ return 0;
+ }
+@@ -250,6 +253,12 @@ static inline int __local_unlock_irqrestore(struct local_irq_lock *lv,
+
+ static inline void local_irq_lock_init(int lvar) { }
+
++#define local_trylock(lvar) \
++ ({ \
++ preempt_disable(); \
++ 1; \
++ })
++
+ #define local_lock(lvar) preempt_disable()
+ #define local_unlock(lvar) preempt_enable()
+ #define local_lock_irq(lvar) local_irq_disable()
diff --git a/debian/patches/features/all/rt/0349-locking-rtmutex-don-t-drop-the-wait_lock-twice.patch b/debian/patches/features/all/rt/0349-locking-rtmutex-don-t-drop-the-wait_lock-twice.patch
new file mode 100644
index 0000000..7750669
--- /dev/null
+++ b/debian/patches/features/all/rt/0349-locking-rtmutex-don-t-drop-the-wait_lock-twice.patch
@@ -0,0 +1,32 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Thu, 7 Sep 2017 12:38:47 +0200
+Subject: [PATCH 349/351] locking/rtmutex: don't drop the wait_lock twice
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a17b3d864d451e221b388dce10e18f2d836e6e26
+
+Since the futex rework, __rt_mutex_start_proxy_lock() does no longer
+acquire the wait_lock so it must not drop it. Otherwise the lock is not
+only unlocked twice but also the preemption counter is underflown.
+
+It is okay to remove that line because this function does not disable
+interrupts nor does it acquire the ->wait_lock. The caller does this so it is
+wrong do it here (after the futex rework).
+
+Cc: stable-rt at vger.kernel.org #v4.9.18-rt14+
+Reported-by: Gusenleitner Klaus <gus at keba.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+---
+ kernel/locking/rtmutex.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index 5dbf6789383b..3a8b5d44aaf8 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -2312,7 +2312,6 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock,
+ raw_spin_lock(&task->pi_lock);
+ if (task->pi_blocked_on) {
+ raw_spin_unlock(&task->pi_lock);
+- raw_spin_unlock_irq(&lock->wait_lock);
+ return -EAGAIN;
+ }
+ task->pi_blocked_on = PI_REQUEUE_INPROGRESS;
diff --git a/debian/patches/features/all/rt/0350-net-use-trylock-in-icmp_sk.patch b/debian/patches/features/all/rt/0350-net-use-trylock-in-icmp_sk.patch
new file mode 100644
index 0000000..e56668e
--- /dev/null
+++ b/debian/patches/features/all/rt/0350-net-use-trylock-in-icmp_sk.patch
@@ -0,0 +1,32 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Thu, 21 Sep 2017 14:42:04 +0200
+Subject: [PATCH 350/351] net: use trylock in icmp_sk
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb87744dd4e5973af951f4cadc9b06883c8f8a0e
+
+The locking path can be recursive (same as for sk->sk_lock.slock) and
+therefore we need a trylock version for the locallock, too.
+
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt at goodmis.org>
+---
+ net/ipv4/icmp.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
+index e6864ff11352..330224ef4174 100644
+--- a/net/ipv4/icmp.c
++++ b/net/ipv4/icmp.c
+@@ -219,7 +219,11 @@ static inline struct sock *icmp_xmit_lock(struct net *net)
+
+ local_bh_disable();
+
+- local_lock(icmp_sk_lock);
++ if (!local_trylock(icmp_sk_lock)) {
++ local_bh_enable();
++ return NULL;
++ }
++
+ sk = icmp_sk(net);
+
+ if (unlikely(!spin_trylock(&sk->sk_lock.slock))) {
diff --git a/debian/patches/features/all/rt/0337-Linux-4.9.61-rt52-REBASE.patch b/debian/patches/features/all/rt/0351-Linux-4.9.68-rt60-REBASE.patch
similarity index 60%
rename from debian/patches/features/all/rt/0337-Linux-4.9.61-rt52-REBASE.patch
rename to debian/patches/features/all/rt/0351-Linux-4.9.68-rt60-REBASE.patch
index cae7d81..6bdb673 100644
--- a/debian/patches/features/all/rt/0337-Linux-4.9.61-rt52-REBASE.patch
+++ b/debian/patches/features/all/rt/0351-Linux-4.9.68-rt60-REBASE.patch
@@ -1,16 +1,16 @@
From: "Steven Rostedt (VMware)" <rostedt at goodmis.org>
-Date: Mon, 20 Nov 2017 22:03:22 -0500
-Subject: [PATCH 337/337] Linux 4.9.61-rt52 REBASE
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4e1998e087ce6be1ee0ed6f99d9bbba0bcd7e7ae
+Date: Thu, 30 Nov 2017 19:12:26 -0500
+Subject: [PATCH 351/351] Linux 4.9.68-rt60 REBASE
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1ae113e318f6532b9d16c6e2f5417f37ce5fc6fb
---
localversion-rt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/localversion-rt b/localversion-rt
-index 9a218ca23053..66a5ed8bf3d7 100644
+index 9a218ca23053..66fa05e70f29 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt23
-+-rt52
++-rt60
diff --git a/debian/patches/series-rt b/debian/patches/series-rt
index 93606b6..145db90 100644
--- a/debian/patches/series-rt
+++ b/debian/patches/series-rt
@@ -334,4 +334,18 @@ features/all/rt/0333-tpm_tis-fix-stall-after-iowrite-s.patch
features/all/rt/0334-fs-convert-two-more-BH_Uptodate_Lock-related-bitspin.patch
features/all/rt/0335-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch
features/all/rt/0336-md-raid5-do-not-disable-interrupts.patch
-features/all/rt/0337-Linux-4.9.61-rt52-REBASE.patch
+features/all/rt/0337-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch
+features/all/rt/0338-Revert-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
+features/all/rt/0339-rtmutex-Fix-lock-stealing-logic.patch
+features/all/rt/0340-cpu_pm-replace-raw_notifier-to-atomic_notifier.patch
+features/all/rt/0341-PM-CPU-replace-raw_notifier-with-atomic_notifier-fix.patch
+features/all/rt/0342-kernel-hrtimer-migrate-deferred-timer-on-CPU-down.patch
+features/all/rt/0343-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch
+features/all/rt/0344-kernel-hrtimer-don-t-wakeup-a-process-while-holding-.patch
+features/all/rt/0345-kernel-hrtimer-hotplug-don-t-wake-ktimersoftd-while-.patch
+features/all/rt/0346-Bluetooth-avoid-recursive-locking-in-hci_send_to_cha.patch
+features/all/rt/0347-iommu-amd-Use-raw_cpu_ptr-instead-of-get_cpu_ptr-for.patch
+features/all/rt/0348-rt-locking-allow-recursive-local_trylock.patch
+features/all/rt/0349-locking-rtmutex-don-t-drop-the-wait_lock-twice.patch
+features/all/rt/0350-net-use-trylock-in-icmp_sk.patch
+features/all/rt/0351-Linux-4.9.68-rt60-REBASE.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git
More information about the Kernel-svn-changes
mailing list