[linux] 04/04: [rt] Update to 4.9.61-rt52
debian-kernel at lists.debian.org
debian-kernel at lists.debian.org
Wed Nov 29 21:57:11 UTC 2017
This is an automated email from the git hooks/post-receive script.
benh pushed a commit to branch stretch
in repository linux.
commit 112ab8ad5980a839dd2a99c8336bef41b2d10a27
Author: Ben Hutchings <ben at decadent.org.uk>
Date: Wed Nov 29 20:36:41 2017 +0000
[rt] Update to 4.9.61-rt52
---
debian/changelog | 9 +
.../all/rt/0001-timer-make-the-base-lock-raw.patch | 6 +-
...dle-statically-initialized-PER_CPU-locks-.patch | 10 +-
...-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 | 12 +-
...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 | 6 +-
...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 | 4 +-
...47-sparc64-use-generic-rwsem-spinlocks-rt.patch | 4 +-
...-kernel-SRCU-provide-a-static-initializer.patch | 4 +-
...-block-Shorten-interrupt-disabled-regions.patch | 6 +-
.../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 | 8 +-
...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 | 8 +-
...Do-not-unmask-io_apic-when-interrupt-is-i.patch | 4 +-
... => 0066-latencyhist-disable-jump-labels.patch} | 4 +-
...ake_up_all_locked-in-pci_unblock_user_cfg.patch | 28 --
...h => 0067-tracing-Add-latency-histograms.patch} | 12 +-
...8-latency_hist-Update-sched_wakeup-probe.patch} | 4 +-
...y-hist-Consider-new-argument-when-probin.patch} | 4 +-
...uidle-version-for-preemptoff_hist-trace-.patch} | 4 +-
... => 0071-printk-Add-a-printk-kill-switch.patch} | 4 +-
...orce_early_printk-boot-param-to-help-wit.patch} | 4 +-
...rt-Provide-PREEMPT_RT_BASE-config-switch.patch} | 4 +-
...ble-config-options-which-are-not-RT-comp.patch} | 4 +-
...atch => 0075-kconfig-Add-PREEMPT_RT_FULL.patch} | 4 +-
...G_ON-WARN_ON-variants-dependend-on-RT-RT.patch} | 4 +-
...-amd-Use-WARN_ON_NORT-in-__attach_device.patch} | 6 +-
...t-local_irq_-variants-depending-on-RT-RT.patch} | 4 +-
...reempt-Provide-preempt_-_-no-rt-variants.patch} | 4 +-
... 0080-Intrduce-migrate_disable-cpu_light.patch} | 10 +-
...ound-migrate_disable-enable-in-different.patch} | 4 +-
...cks.patch => 0082-rt-Add-local-irq-locks.patch} | 4 +-
...atch => 0083-locallock-add-local_lock_on.patch} | 4 +-
...isable-interrupts-in-ide-code-for-preemp.patch} | 4 +-
...Do-not-disable-interrupts-for-PREEMPT-RT.patch} | 4 +-
...ellanox-IB-driver-patch-use-_nort-primit.patch} | 4 +-
...rt-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} | 4 +-
...mm-scatterlist-Do-not-disable-irqs-on-RT.patch} | 4 +-
...t-Do-not-protect-workingset_shadow_nodes.patch} | 4 +-
...signal-Make-__lock_task_sighand-RT-aware.patch} | 4 +-
...gnal-x86-Delay-calling-signals-in-atomic.patch} | 4 +-
...86-signal-delay-calling-signals-on-32bit.patch} | 4 +-
...ch => 0095-net-wireless-Use-WARN_ON_NORT.patch} | 4 +-
...fer_head-Replace-bh_uptodate_lock-for-rt.patch} | 6 +-
...Make-state-lock-and-journal-head-lock-rt.patch} | 6 +-
...8-list_bl-Make-list-head-locking-RT-safe.patch} | 4 +-
...0099-list_bl-fixup-bogus-lockdep-warning.patch} | 4 +-
...tch => 0100-genirq-Disable-irqpoll-on-rt.patch} | 4 +-
...0101-genirq-Force-interrupt-thread-on-RT.patch} | 4 +-
...02-drivers-net-vortex-fix-locking-issues.patch} | 4 +-
...-mm-page_alloc-rt-friendly-per-cpu-pages.patch} | 30 +-
...-page_alloc-Reduce-lock-sections-further.patch} | 12 +-
...=> 0105-mm-swap-Convert-to-percpu-locked.patch} | 8 +-
...06-mm-perform-lru_add_drain_all-remotely.patch} | 4 +-
...otect-per-cpu-variables-with-preempt-dis.patch} | 4 +-
...ze-split-page-table-locks-for-vector-pag.patch} | 4 +-
...> 0109-mm-bounce-Use-local_irq_save_nort.patch} | 4 +-
...T.patch => 0110-mm-Allow-only-slub-on-RT.patch} | 4 +-
...r-RT.patch => 0111-mm-Enable-SLUB-for-RT.patch} | 4 +-
... => 0112-slub-Enable-irqs-for-__GFP_WAIT.patch} | 4 +-
...ch => 0113-slub-Disable-SLUB_CPU_PARTIAL.patch} | 4 +-
...c-Use-local_lock_on-instead-of-plain-spi.patch} | 6 +-
...l-Don-t-call-schedule_work_on-in-preempt.patch} | 10 +-
...l-Replace-local_irq_disable-with-local-l.patch} | 16 +-
...l-mem_cgroup_migrate-replace-another-loc.patch} | 8 +-
...ev-don-t-disable-IRQs-in-wb_congested_pu.patch} | 4 +-
...malloc-copy-with-get_cpu_var-and-locking.patch} | 4 +-
...patch => 0120-radix-tree-use-local-locks.patch} | 4 +-
...et_random_bytes-for-RT_FULL-in-init_oops.patch} | 4 +-
... 0122-timers-Prepare-for-full-preemption.patch} | 8 +-
...elay-waking-softirqs-from-the-jiffy-tick.patch} | 6 +-
...=> 0124-hrtimers-Prepare-full-preemption.patch} | 14 +-
... => 0125-hrtimer-enfore-64byte-alignment.patch} | 4 +-
...p-hrtimer-callback-changes-for-preempt-r.patch} | 30 +-
...deadline-dl_task_timer-has-to-be-irqsafe.patch} | 4 +-
...patch => 0128-timer-fd-Prevent-live-lock.patch} | 4 +-
...broadcast-Make-broadcast-hrtimer-irqsafe.patch} | 4 +-
...timer-check-properly-for-a-running-timer.patch} | 4 +-
...six-timers-Thread-posix-cpu-timers-on-rt.patch} | 8 +-
...32-sched-Move-task_struct-cleanup-to-RCU.patch} | 6 +-
...-the-number-of-task-migrations-per-batch.patch} | 6 +-
...h => 0134-sched-Move-mmdrop-to-RCU-on-RT.patch} | 16 +-
...-move-stack-kprobe-clean-up-to-__put_tas.patch} | 10 +-
...ved_state-for-tasks-blocked-on-sleeping-.patch} | 10 +-
...t-task-state-corruption-by-spurious-lock.patch} | 8 +-
..._ALL.patch => 0138-sched-Remove-TASK_ALL.patch} | 4 +-
...-account-rcu_preempt_depth-on-RT-in-migh.patch} | 6 +-
...T-softirq-semantics-into-account-in-cond.patch} | 10 +-
...-the-proper-LOCK_OFFSET-for-cond_resched.patch} | 4 +-
...h => 0142-sched-Disable-TTWU_QUEUE-on-RT.patch} | 4 +-
...ched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch} | 4 +-
...eturn-success-when-only-changing-the-sav.patch} | 8 +-
...eue-Only-wake-up-idle-workers-if-not-blo.patch} | 8 +-
...e-convert-stop_machine_run-to-PREEMPT_RT.patch} | 4 +-
...h => 0147-stop_machine-Use-raw-spinlocks.patch} | 4 +-
...0148-hotplug-Lightweight-get-online-cpus.patch} | 4 +-
...49-hotplug-sync_unplug-No-n-in-task-name.patch} | 4 +-
...ead-hotplug_pcp-on-pin_current_cpu-retry.patch} | 4 +-
...grate-disabled-counter-to-tracing-output.patch} | 10 +-
...52-hotplug-Use-migrate-disable-on-unplug.patch} | 4 +-
...e.patch => 0153-lockdep-Make-it-RT-aware.patch} | 10 +-
...154-locking-Disable-spin-on-owner-for-RT.patch} | 4 +-
...ent-tasklets-from-going-into-infinite-sp.patch} | 4 +-
...k-preemption-after-reenabling-interrupts.patch} | 18 +-
...57-softirq-Disable-softirq-stacks-for-RT.patch} | 4 +-
...atch => 0158-softirq-Split-softirq-locks.patch} | 60 +--
... 0159-kernel-softirq-unlock-with-irqs-on.patch} | 4 +-
...te_disable-do-fastpath-in-atomic-irqs-of.patch} | 10 +-
...-disabling-of-softirq-processing-in-irq-.patch} | 4 +-
...rq-split-timer-softirqs-out-of-ksoftirqd.patch} | 4 +-
...softirq-wake-the-timer-softirq-if-needed.patch} | 4 +-
...ers-Don-t-wake-ktimersoftd-on-every-tick.patch} | 6 +-
...ers-Don-t-wake-ktimersoftd-on-every-tick.patch} | 6 +-
...ch => 0166-rtmutex-trylock-is-okay-on-RT.patch} | 4 +-
... 0167-gpu-don-t-check-for-the-lock-owner.patch} | 4 +-
...8-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch} | 4 +-
...le-the-various-new-futex-race-conditions.patch} | 4 +-
...bug-on-when-a-requeued-RT-task-times-out.patch} | 4 +-
...-lock-unlock-symetry-versus-pi_lock-and-.patch} | 4 +-
...c.h.patch => 0172-pid.h-include-atomic.h.patch} | 4 +-
...173-arm-include-definition-for-cpumask_t.patch} | 4 +-
...torture-Do-NOT-include-rwlock.h-directly.patch} | 6 +-
...> 0175-rtmutex-Add-rtmutex_lock_killable.patch} | 4 +-
... => 0176-rtmutex-Make-lock_killable-work.patch} | 4 +-
...177-spinlock-Split-the-lock-types-header.patch} | 4 +-
...patch => 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 +-
...x_disable-on-DEBUG-configs-and-the-GPL-s.patch} | 4 +-
...ing-use-an-exclusive-wait_q-for-sleepers.patch} | 8 +-
...ch => 0183-rtmutex-Add-RT-aware-ww-locks.patch} | 4 +-
...0184-rtmutex-Provide-rt_mutex_lock_state.patch} | 4 +-
... => 0185-rtmutex-Provide-locked-slowpath.patch} | 4 +-
...ex-rtmutex-Cure-RT-double-blocking-issue.patch} | 4 +-
...-rwsem-rt-Lift-single-reader-restriction.patch} | 4 +-
...-ptrace-fix-ptrace-vs-tasklist_lock-race.patch} | 12 +-
...test.patch => 0189-rcu-Frob-softirq-test.patch} | 4 +-
...> 0190-rcu-Merge-RCU-bh-into-RCU-preempt.patch} | 20 +-
...u-Make-ksoftirqd-do-RCU-quiescent-states.patch} | 6 +-
...bh_qs-Disable-irq-while-calling-rcu_pree.patch} | 6 +-
...ty-serial-omap-Make-the-locking-RT-aware.patch} | 4 +-
...serial-pl011-Make-the-locking-work-on-RT.patch} | 4 +-
...rt-Improve-the-serial-console-PASS_LIMIT.patch} | 4 +-
...-8250-don-t-take-the-trylock-during-oops.patch} | 8 +-
....h.patch => 0197-wait.h-include-atomic.h.patch} | 4 +-
...k-simple-Simple-work-queue-implemenation.patch} | 4 +-
...> 0199-completion-Use-simple-wait-queues.patch} | 16 +-
....patch => 0200-fs-aio-simple-simple-work.patch} | 4 +-
...t-invoke-the-affinity-callback-via-a-wor.patch} | 4 +-
...Move-schedule_work-call-to-helper-thread.patch} | 10 +-
...pu-rwsem-Remove-preempt_disable-variants.patch} | 4 +-
...atch => 0204-fs-namespace-preemption-fix.patch} | 4 +-
...ctivate_mm-by-preempt_-disable-enable-_r.patch} | 4 +-
...ck-Turn-off-warning-which-is-bogus-on-RT.patch} | 10 +-
...207-fs-ntfs-disable-interrupt-only-on-RT.patch} | 4 +-
...d2-pull-your-plug-when-waiting-for-space.patch} | 4 +-
...=> 0209-x86-Convert-mce-timer-to-hrtimer.patch} | 4 +-
...-x86-mce-use-swait-queue-for-mce-wakeups.patch} | 4 +-
...6-stackprotector-Avoid-random-pool-on-rt.patch} | 4 +-
...12-x86-Use-generic-rwsem_spinlocks-on-rt.patch} | 4 +-
...h => 0213-x86-UV-raw_spinlock-conversion.patch} | 4 +-
...-thermal-Defer-thermal-wakups-to-threads.patch} | 4 +-
...fs-epoll-Do-not-disable-preemption-on-RT.patch} | 6 +-
...nother-preempt-disable-region-which-suck.patch} | 4 +-
...ght.patch => 0217-block-mq-use-cpu_light.patch} | 4 +-
...8-block-mq-do-not-invoke-preempt_disable.patch} | 4 +-
...block-mq-don-t-complete-requests-via-IPI.patch} | 6 +-
...aid5-Make-raid5_percpu-handling-RT-aware.patch} | 14 +-
...ill.patch => 0221-rt-Introduce-cpu_chill.patch} | 8 +-
...-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch} | 18 +-
...ait.patch => 0223-block-blk-mq-Use-swait.patch} | 6 +-
...0224-block-Use-cpu_chill-for-retry-loops.patch} | 4 +-
...fs-dcache-Use-cpu_chill-in-trylock-loops.patch} | 4 +-
...6-net-Use-cpu_chill-instead-of-cpu_relax.patch} | 6 +-
...che-use-swait_queue-instead-of-waitqueue.patch} | 10 +-
...u.patch => 0228-workqueue-Use-normal-rcu.patch} | 60 +--
...e-local-irq-lock-instead-of-irq-disable-.patch} | 28 +-
...event-workqueue-versus-ata-piix-livelock.patch} | 8 +-
...-Distangle-worker-accounting-from-rqlock.patch} | 26 +-
...l-lock-instead-of-preempt-enable-disable.patch} | 4 +-
...patch => 0233-percpu_ida-Use-local-locks.patch} | 4 +-
...patch => 0234-debugobjects-Make-RT-aware.patch} | 4 +-
...mp-label-disable-if-stop_machine-is-used.patch} | 4 +-
...ch => 0236-seqlock-Prevent-rt-starvation.patch} | 4 +-
...ke-svc_xprt_do_enqueue-use-get_cpu_light.patch} | 4 +-
... => 0238-net-Use-skbufhead-with-raw-lock.patch} | 22 +-
...puhotplug-Drain-input_pkt_queue-lockless.patch} | 8 +-
...mit_recursion-to-per-task-variable-on-RT.patch} | 14 +-
...a-way-to-delegate-processing-a-softirq-t.patch} | 8 +-
...ys-take-qdisc-s-busylock-in-__dev_xmit_s.patch} | 8 +-
...net-Qdisc-use-a-seqlock-instead-seqcount.patch} | 6 +-
...-the-missing-serialization-in-ip_send_un.patch} | 4 +-
...ch => 0245-net-add-a-lock-around-icmp_sk.patch} | 4 +-
...api_schedule_irqoff-disable-interrupts-o.patch} | 12 +-
...ia-icmp.patch => 0247-net-sysrq-via-icmp.patch} | 4 +-
...work-push-most-work-into-softirq-context.patch} | 6 +-
...rqwork-Move-irq-safe-work-to-irq-context.patch} | 6 +-
...snd_pcm_stream_lock-irqs_disabled-splats.patch} | 4 +-
...aware.patch => 0251-printk-Make-rt-aware.patch} | 4 +-
...k-Don-t-try-to-print-from-IRQ-NMI-region.patch} | 4 +-
...3-printk-Drop-the-logbuf_lock-more-often.patch} | 4 +-
... => 0254-powerpc-Use-generic-rwsem-on-RT.patch} | 4 +-
...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 +-
...h => 0258-arm-unwind-use-a-raw_spin_lock.patch} | 4 +-
...rq-in-translation-section-permission-fau.patch} | 10 +-
...date-irq_set_irqchip_state-documentation.patch} | 4 +-
...4-downgrade-preempt_disable-d-region-to-.patch} | 4 +-
... => 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 +-
...ch => 0265-powerpc-Disable-highmem-on-RT.patch} | 4 +-
...patch => 0266-mips-Disable-highmem-on-RT.patch} | 4 +-
...tch => 0267-mm-rt-kmap_atomic-scheduling.patch} | 4 +-
...268-mm-rt-Fix-generic-kmap_atomic-for-RT.patch} | 4 +-
...x86-highmem-Add-a-already-used-pte-check.patch} | 4 +-
...h => 0270-arm-highmem-Flush-tlb-on-unmap.patch} | 4 +-
....patch => 0271-arm-Enable-highmem-for-rt.patch} | 4 +-
...=> 0272-ipc-sem-Rework-semaphore-wakeups.patch} | 4 +-
...=> 0273-x86-kvm-Require-const-tsc-for-RT.patch} | 8 +-
...apic-mark-LAPIC-timer-handler-as-irqsafe.patch} | 4 +-
...re.patch => 0275-scsi-fcoe-Make-RT-aware.patch} | 4 +-
...-dont-t-disable-interrupts-in-qc_issue-h.patch} | 4 +-
...6-crypto-Reduce-preempt-disabled-regions.patch} | 4 +-
...duce-preempt-disabled-regions-more-algos.patch} | 4 +-
...-rt-aware.patch => 0279-dm-Make-rt-aware.patch} | 4 +-
...ert-acpi_gbl_hardware-lock-back-to-a-raw.patch} | 4 +-
...k-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch} | 4 +-
....patch => 0282-random-Make-it-work-on-rt.patch} | 4 +-
...-random-avoid-preempt_disable-ed-section.patch} | 4 +-
...e-hotplug.lock-a-sleeping-spinlock-on-RT.patch} | 4 +-
...85-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch} | 6 +-
...-Document-why-PREEMPT_RT-uses-a-spinlock.patch} | 4 +-
...ix-cpu-down-problem-if-kthread-s-cpu-is-.patch} | 4 +-
...lug-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 +-
...king-Reenable-migration-accross-schedule.patch} | 4 +-
...-Use-local_irq_save_nort-in-qla2x00_poll.patch} | 4 +-
...-Remove-preemption-disabling-in-netif_rx.patch} | 10 +-
...other-local_irq_disable-kmalloc-headache.patch} | 4 +-
...tect-users-of-napi_alloc_cache-against-r.patch} | 4 +-
...r-Serialize-xt_write_recseq-sections-on-.patch} | 4 +-
...net-Add-a-mutex-around-devnet_rename_seq.patch} | 6 +-
...to-Convert-crypto-notifier-chain-to-SRCU.patch} | 4 +-
...test-Only-do-hardirq-context-test-for-ra.patch} | 4 +-
...test-fix-warnings-due-to-missing-PREEMPT.patch} | 4 +-
...event-hrtimer-run-in-irq-instead-of-soft.patch} | 8 +-
...mark-perf_cpu_context-s-timer-as-irqsafe.patch} | 6 +-
...=> 0303-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch} | 4 +-
...liminate-softirq-processing-from-rcutree.patch} | 12 +-
...=> 0305-rcu-make-RCU_BOOST-default-on-RT.patch} | 4 +-
...-rcu_normal_after_boot-by-default-for-RT.patch} | 4 +-
...07-sched-Add-support-for-lazy-preemption.patch} | 30 +-
...> 0308-ftrace-Fix-trace-header-alignment.patch} | 10 +-
... => 0309-x86-Support-for-lazy-preemption.patch} | 4 +-
...0310-arm-Add-support-for-lazy-preemption.patch} | 4 +-
...-powerpc-Add-support-for-lazy-preemption.patch} | 6 +-
...0312-arch-arm64-Add-lazy-preempt-support.patch} | 4 +-
...e-disable-handle-updated-task-mask-mg-di.patch} | 8 +-
...4-leds-trigger-disable-CPU-trigger-on-RT.patch} | 4 +-
...=> 0315-mmci-Remove-bogus-local_irq_save.patch} | 4 +-
...eq-drop-K8-s-driver-from-beeing-selected.patch} | 4 +-
..._proc-Protect-send_msg-with-a-local-lock.patch} | 4 +-
...k-zram-Replace-bit-spinlocks-with-rtmute.patch} | 4 +-
...-Don-t-disable-preemption-in-zcomp_strea.patch} | 4 +-
...-drop-trace_i915_gem_ring_dispatch-on-rt.patch} | 4 +-
...arning-from-i915-when-running-on-PREEMPT.patch} | 8 +-
...915-Use-preempt_disable-enable_rt-where-.patch} | 4 +-
...-local_lock-unlock_irq-in-intel_pipe_upd.patch} | 4 +-
...4-cgroups-use-simple-wait-in-css_release.patch} | 4 +-
...revent-scheduling-while-atomic-in-cgroup.patch} | 18 +-
...-Convert-callback_lock-to-raw_spinlock_t.patch} | 26 +-
...call-to-schedule_delayed_work-to-helper-.patch} | 4 +-
...e-bcache.patch => 0328-md-disable-bcache.patch} | 4 +-
...9-workqueue-Prevent-deadlock-stall-on-RT.patch} | 28 +-
... => 0330-Add-localversion-for-RT-release.patch} | 4 +-
...m-fix-zcomp_stream_get-smp_processor_id-u.patch | 41 ++
.../all/rt/0332-Linux-4.9.47-rt37-REBASE.patch | 17 -
...isable-preemption-on-i_dir_seq-s-write-si.patch | 129 +++++
.../0333-tpm_tis-fix-stall-after-iowrite-s.patch | 81 ++++
...two-more-BH_Uptodate_Lock-related-bitspin.patch | 66 +++
...mutex-fix-deadlock-in-device-mapper-block.patch | 78 +++
.../0336-md-raid5-do-not-disable-interrupts.patch | 58 +++
.../all/rt/0337-Linux-4.9.61-rt52-REBASE.patch | 16 +
debian/patches/series-rt | 539 +++++++++++----------
341 files changed, 1768 insertions(+), 1344 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 84e54ec..3ea9eb8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -717,6 +717,15 @@ linux (4.9.65-1) UNRELEASED; urgency=medium
* Revert "bpf: one perf event close won't free bpf program attached ..." to
avoid ABI change
* [rt] Add new signing subkey for Steven Rostedt
+ * [rt] Update to 4.9.61-rt52:
+ - Revert "pci: Use __wake_up_all_locked in pci_unblock_user_cfg_access()"
+ - drivers/zram: fix zcomp_stream_get() smp_processor_id() use in
+ preemptible code
+ - fs/dcache: disable preemption on i_dir_seq's write side
+ - tpm_tis: fix stall after iowrite*()s
+ - fs: convert two more BH_Uptodate_Lock related bitspinlocks
+ - locking/rt-mutex: fix deadlock in device mapper / block-IO
+ - md/raid5: do not disable interrupts
-- Ben Hutchings <ben at decadent.org.uk> Sun, 01 Oct 2017 16:14:43 +0100
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 2bc85bc..160644b 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/332] timer: make the base lock raw
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6bb5260e72adf83f9e01ba2e66bc45b54c25eddf
+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
The part where the base lock is held got more predictable / shorter after the
timer rework. One reason is the lack of re-cascading.
@@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
-index df445cde8a1e..666465939d59 100644
+index 7d670362891a..0e9cb65c533c 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -193,7 +193,7 @@ EXPORT_SYMBOL(jiffies_64);
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 e60aeed..2cba959 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/332] lockdep: Handle statically initialized PER_CPU locks
+Subject: [PATCH 002/337] lockdep: Handle statically initialized PER_CPU locks
proper
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=99c3fcedb5b505c3112a0c10d539a847197e9cde
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0f2859f53384ac558cc57e02ffceaeefc67da777
If a PER_CPU struct which contains a spin_lock is statically initialized
via:
@@ -69,7 +69,7 @@ index 56939d3f6e53..491b3f5a5f8a 100644
#if !defined(CONFIG_SMP) || !defined(CONFIG_HAVE_SETUP_PER_CPU_AREA)
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 4d7ffc0a0d00..8b95ab1bd429 100644
+index 6599c7f3071d..43f06eda837a 100644
--- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c
@@ -658,6 +658,7 @@ look_up_lock_class(struct lockdep_map *lock, unsigned int subclass)
@@ -139,7 +139,7 @@ index 4d7ffc0a0d00..8b95ab1bd429 100644
return NULL;
}
-@@ -3410,7 +3423,7 @@ static int match_held_lock(struct held_lock *hlock, struct lockdep_map *lock)
+@@ -3417,7 +3430,7 @@ static int match_held_lock(struct held_lock *hlock, struct lockdep_map *lock)
* Clearly if the lock hasn't been acquired _ever_, we're not
* holding it either, so report failure.
*/
@@ -148,7 +148,7 @@ index 4d7ffc0a0d00..8b95ab1bd429 100644
return 0;
/*
-@@ -4159,7 +4172,7 @@ void lockdep_reset_lock(struct lockdep_map *lock)
+@@ -4166,7 +4179,7 @@ void lockdep_reset_lock(struct lockdep_map *lock)
* If the class exists we look it up and zap it:
*/
class = look_up_lock_class(lock, j);
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 61d3370..01e5c71 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/332] lockdep: Fix compilation error for !CONFIG_MODULES
+Subject: [PATCH 003/337] 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=baf6fb0254c9e1e18ce06cabcfee1fdb54cda5b0
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d3a8997a41362ed009d149d1be5f8d1a7b6baef3
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 8d386c3..e7e223f 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/332] lockdep: Fix per-cpu static objects
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1d86c4f5f195bdfc39dab9d18d5edc58c399ddd7
+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
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 1fc7a31..f42d548 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/332] futex: Cleanup variable names for futex_top_waiter()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b56396d64780b170272107e8310cc8b6b061bcab
+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
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 78e3cd7..f76e0f6 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/332] 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=790ca46d2e3b54450f824dc2ef8b74084d5e8fad
+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
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 1cb7992..4cc7c19 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/332] futex: Remove rt_mutex_deadlock_account_*()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5157a9c0db39bd6c7101cbd9e99b91b63d1c197a
+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
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 5249acb..b0b9160 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/332] 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=d59a4a4090a07ef55cd0c90e3b342dec7a50f55d
+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
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 49aa489..e8f013c 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/332] futex: Change locking rules
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5ec34a39d28dd16e1ef6d096a4f9ae8bd0f32cb8
+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
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 1acb570..7f45d90 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/332] futex: Cleanup refcounting
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d851e381e11296257abd07c56713834dc080c78
+Subject: [PATCH 010/337] futex: Cleanup refcounting
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bf5f66e96794f917af360b0f7230c1a5131b6fcb
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 28e6718..dd370b2 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/332] futex: Rework inconsistent rt_mutex/futex_q state
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c4ff1b93deb2fb468dd1f747b48999328b79ca2b
+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
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 4a9882d..ba4424a 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/332] futex: Pull rt_mutex_futex_unlock() out from under
+Subject: [PATCH 012/337] 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=303e2cdeecef593b767c999dc9657ccba64427c9
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=af0a782aab0f7d89bed7636e9f42ff46f863cbec
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 c9938a1..47f0824 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/332] futex,rt_mutex: Introduce rt_mutex_init_waiter()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c24bf4ab150892784d6a779334824f9ac99dab00
+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
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 5ef2ab6..0f1efa0 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/332] futex,rt_mutex: Restructure
+Subject: [PATCH 014/337] 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=be6a81af2795201544de2249fe20963bad794201
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ecd0af90b7fe34297eaf3700d6a2f397363b802b
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 89ec21f..65ed824 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/332] futex: Rework futex_lock_pi() to use
+Subject: [PATCH 015/337] 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=4419417f126ac4ca32ad403f0c0505fbf857f74f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7e0a6276be286d44985d89760fc09f9ba0a084a8
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 6065ba0..24d6533 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/332] futex: Futex_unlock_pi() determinism
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c5acec11510eb8cf920f7bbbcaf27172ad508bf
+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
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 b32ee7e..b689426 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/332] 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=f1af8e10d5d1cc0fbe78d86033e2b3056478e782
+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
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 7a4e919..6ee8e93 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/332] rtmutex: Deboost before waking up the top waiter
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=86895741c6e4b35c81b0d515aac94c409ad4b29a
+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
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 3914b00..d6a22f7 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/332] sched/rtmutex/deadline: Fix a PI crash for deadline
+Subject: [PATCH 019/337] 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=7951afeef42768d17c89d065d74fa0c606f5e896
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9e78d3af61d9a8f6d19aac98224f81c4102fcadc
Upstream commit e96a7705e7d3fef96aec9b590c63b2f6f7d2ba22
@@ -98,10 +98,10 @@ index a30b172df6e1..60d0c4740b9f 100644
extern void rt_mutex_adjust_pi(struct task_struct *p);
static inline bool tsk_is_pi_blocked(struct task_struct *tsk)
diff --git a/kernel/fork.c b/kernel/fork.c
-index 50bf262cc427..d6260cdc0294 100644
+index 9321b1ad3335..a5c663116a70 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -1418,6 +1418,7 @@ static void rt_mutex_init_task(struct task_struct *p)
+@@ -1426,6 +1426,7 @@ static void rt_mutex_init_task(struct task_struct *p)
#ifdef CONFIG_RT_MUTEXES
p->pi_waiters = RB_ROOT;
p->pi_waiters_leftmost = NULL;
@@ -168,10 +168,10 @@ index 440469b69df9..3c4e5bff1d9a 100644
/*
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 2098954c690f..2db43f49f8cd 100644
+index 02e7ad860b52..c35bf6bc1009 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3669,6 +3669,8 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
+@@ -3670,6 +3670,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 5a90e35..a8eb206 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/332] sched/deadline/rtmutex: Dont miss the
+Subject: [PATCH 020/337] 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=c539edf1d3da80e7aeaa98556dc12515e189394f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=140ffc28b706ec8adc0ab5bce38b980ede2d5513
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 3c1950d..95889bd 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/332] rtmutex: Clean up
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d59328be42a556b1a554253d0e0d171a09445731
+Subject: [PATCH 021/337] rtmutex: Clean up
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=048ae71318908597acac3a06df942bfdf778d2e2
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 a5da65b..584d84c 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/332] sched/rtmutex: Refactor rt_mutex_setprio()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5327988a7e22cbea84ad4aa43e4cee5e1b9dd794
+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
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 2db43f49f8cd..77631ab98e3a 100644
+index c35bf6bc1009..2b084e067ec5 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3629,10 +3629,25 @@ EXPORT_SYMBOL(default_wake_function);
+@@ -3630,10 +3630,25 @@ EXPORT_SYMBOL(default_wake_function);
#ifdef CONFIG_RT_MUTEXES
@@ -300,7 +300,7 @@ index 2db43f49f8cd..77631ab98e3a 100644
*
* This function changes the 'effective' priority of a task. It does
* not touch ->normal_prio like __setscheduler().
-@@ -3640,16 +3655,40 @@ EXPORT_SYMBOL(default_wake_function);
+@@ -3641,16 +3656,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 2db43f49f8cd..77631ab98e3a 100644
/*
* Idle task boosting is a nono in general. There is one
-@@ -3669,9 +3708,7 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
+@@ -3670,9 +3709,7 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
goto out_unlock;
}
@@ -355,7 +355,7 @@ index 2db43f49f8cd..77631ab98e3a 100644
oldprio = p->prio;
if (oldprio == prio)
-@@ -3695,7 +3732,6 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
+@@ -3696,7 +3733,6 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
* running task
*/
if (dl_prio(prio)) {
@@ -363,7 +363,7 @@ index 2db43f49f8cd..77631ab98e3a 100644
if (!dl_prio(p->normal_prio) ||
(pi_task && dl_entity_preempt(&pi_task->dl, &p->dl))) {
p->dl.dl_boosted = 1;
-@@ -3732,6 +3768,11 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
+@@ -3733,6 +3769,11 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
balance_callback(rq);
preempt_enable();
}
@@ -375,7 +375,7 @@ index 2db43f49f8cd..77631ab98e3a 100644
#endif
void set_user_nice(struct task_struct *p, long nice)
-@@ -3976,10 +4017,9 @@ static void __setscheduler(struct rq *rq, struct task_struct *p,
+@@ -3977,10 +4018,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 2db43f49f8cd..77631ab98e3a 100644
if (dl_prio(p->prio))
p->sched_class = &dl_sched_class;
-@@ -4266,7 +4306,7 @@ static int __sched_setscheduler(struct task_struct *p,
+@@ -4267,7 +4307,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 aedf9c3..2c4b442 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/332] sched,tracing: Update trace_sched_pi_setprio()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c24ae021858c0590b582223dfcea2e12acaf03b0
+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
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 77631ab98e3a..85d7540fe468 100644
+index 2b084e067ec5..42f27d3e307f 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3708,7 +3708,7 @@ void rt_mutex_setprio(struct task_struct *p, struct task_struct *pi_task)
+@@ -3709,7 +3709,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 8f5c51b..ee034f5 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/332] rtmutex: Fix PI chain order integrity
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=14180abbf597db26e4f00d3cc5a115e400925b71
+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
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 a9f9c99..bc056d5 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/332] rtmutex: Fix more prio comparisons
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=66f547bf3593af35491303c60fc2307119674427
+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
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 4b0f8a3..3cadcf1 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/332] rtmutex: Plug preempt count leak in
+Subject: [PATCH 026/337] 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=e1f90089e6b9077413e227c7285588fce4edd8e5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c9c77745f4bb19fb8529387ffafbc4c64676d1c
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 e27410d..eb52775 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/332] futex: Avoid freeing an active timer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5046327db9d652ecc673475d9e1df3d56426e4ce
+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
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 61b7d99..f9347ba 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/332] futex: Fix small (and harmless looking)
+Subject: [PATCH 028/337] futex: Fix small (and harmless looking)
inconsistencies
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3550a2a373383759b9743a7bbb4cf0b718bf8a11
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fafa0fab38adf2b5386f31f53848c99eb056d3f4
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 cca5985..1d9cc46 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/332] futex: Clarify mark_wake_futex memory barrier usage
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9760c28f174cd477036fa99ce85e14c6082ffcf3
+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
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 de60feb..3ed7c34 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/332] MAINTAINERS: Add FUTEX SUBSYSTEM
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e0b5df085724d6b5a74f43c38cd72b807269e0af
+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
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 845616a..857a93b 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/332] 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=643edfc5db76de2becc5a7ac5fd3f117bec37b37
+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
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 20f0264..f1e0635 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/332] 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=163a1aaeb34220f24b9fc4e299dcfa2297ccfda0
+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
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 38166c1..5d6d8b7 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/332] ARM: smp: Move clear_tasks_mm_cpumask() call to
+Subject: [PATCH 033/337] 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=5bf3c2ff6825431f24fdaf571c0b436f46e496ca
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6edb8479b99b8a35bacb6203d1abc02dba3ed29b
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 d96e26f..eb99c21 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/332] rtmutex: Handle non enqueued waiters gracefully
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=db0f0f1503763abf30ab3f00daa9854116e733fe
+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
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 7678f7b..f50306d 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/332] fs/dcache: include wait.h
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1aa8d486c7065205f59fa4c7b7ce73f2262c1a03
+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
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 c75297a..b8600d8 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/332] rbtree: include rcu.h because we use it
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6d90e681209776e95f32607abfdb39c247b16f82
+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
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 060d583..e780d33 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/332] fs/dcache: init in_lookup_hashtable
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d74442e069521c2d6887c08462b4c872625451b
+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
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 cb0d76a..a141927 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/332] iommu/iova: don't disable preempt around
+Subject: [PATCH 038/337] 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=0550b939c845870cbeb828625e8140d469bebdf4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d08d5d682448e8fa67703cc671e31302725c3232
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 1daa884..8cb6ce6 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/332] iommu/vt-d: don't disable preemption while accessing
+Subject: [PATCH 039/337] 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=47c65b1d49657aed75a1819650d6c960b6f52d1e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa9c79b627431da14233c092b0898d6098081e92
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 75ae90b..36b45e1 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/332] x86/apic: get rid of "warning: 'acpi_ioapic_lock'
+Subject: [PATCH 040/337] 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=d130761cffed30ce550f7d0180b861de6b19ff62
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=acac772febf234c9cddd722716dd401c3eaf7349
kbuild test robot reported this against the -RT tree:
@@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 2 insertions(+)
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
-index d3e0d049a0c2..11e572561960 100644
+index b89bef95f63b..c3c1ad2fce5c 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -87,7 +87,9 @@ static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
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 7a60b20..ee2fc08 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/332] rxrpc: remove unused static variables
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a5ef62460313def4ed04cbbdf479905bb93c29a7
+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
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 5890e26..91133ee 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/332] rcu: update: make RCU_EXPEDITE_BOOT default
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d34e9ba78c899206b84bb1c272434918cb85f0c5
+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
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 5870e09..0443250 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/332] 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=8314802da7deb627cbe6d8d97dc568845fc2a7ea
+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
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 9dd26f0..5373502 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/332] pinctrl: qcom: Use raw spinlock variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5ea64550af4dcca5e951b8f556f383fafdcc8ce5
+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
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 c34772f..fa5db3a 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/332] x86/mm/cpa: avoid wbinvd() for PREEMPT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6d9127f2940f9240356fd3a1af7671ae56359b4
+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
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 b59022b..c49fdf8 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/332] NFSv4: replace seqcount_t with a seqlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9ef876a736a7ac353a96ee43005e82708f97e880
+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
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
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 0cd041c..06796bd 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/332] sparc64: use generic rwsem spinlocks rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=169620a1ab2f3b12620e0342d56a88c3239ed6eb
+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
Signed-off-by: Allen Pais <allen.pais at oracle.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
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 0f047ef..21af495 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/332] kernel/SRCU: provide a static initializer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1573b194120448cae9fb9b11007710281a4b9d80
+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
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 8afd57d..3b9603a 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/332] block: Shorten interrupt disabled regions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=782c161b4cd5f10646cf0f9ea02f58a9aa986e91
+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
Moving the blk_sched_flush_plug() call out of the interrupt/preempt
disabled region in the scheduler allows us to replace
@@ -47,7 +47,7 @@ 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 d1f2801ce836..5174ef3d7580 100644
+index 95379fc83805..a6bbeb48495b 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,
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 1107bdd..1eb4264 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/332] timekeeping: Split jiffies seqlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=10b749478503a1ed5ab9a55163192030c9eda962
+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
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 ddb3c23..0cb4e15 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/332] tracing: Account for preempt off in
+Subject: [PATCH 051/337] tracing: Account for preempt off in
preempt_schedule()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=85272b3622715d60d4751f6d66c40d923917098e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e4b525e75300bad6232c6a165a322ddd1d04d4c4
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 85d7540fe468..36698b5fb0c7 100644
+index 42f27d3e307f..4ffc51451f16 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3583,7 +3583,16 @@ asmlinkage __visible void __sched notrace preempt_schedule_notrace(void)
+@@ -3584,7 +3584,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 42654eb..b0ddd9e 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/332] signal: Revert ptrace preempt magic
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cd3f477bccf7d256a7d235ec5732ad2aec5e3daf
+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
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 27c97a6..59fa77a 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/332] arm: Convert arm boot_lock to raw
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=de56fd27a4b2977231efa5c16f94efec22b93f54
+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
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 54747d7..f1b7d81 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/332] arm: kprobe: replace patch_lock to raw lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=db49a2763843a1387db5a7bdcb8fc12aff2dd6ee
+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
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 0c2b368..d261673 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/332] posix-timers: Prevent broadcast signals
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0809dfd6028370e9e4432e40c981718dee378b6a
+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
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 75d6a55..ff26bef 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/332] 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=30e24b72dbc9a5d863955eebea77cfedda37c0c7
+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
To avoid allocation allow rt tasks to cache one sigqueue struct in
task struct.
@@ -53,10 +53,10 @@ index 3076f3089919..fb2ebcf3ca7c 100644
spin_unlock(&sighand->siglock);
diff --git a/kernel/fork.c b/kernel/fork.c
-index d6260cdc0294..eb3d7d75576d 100644
+index a5c663116a70..c508b761e494 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -1554,6 +1554,7 @@ static __latent_entropy struct task_struct *copy_process(
+@@ -1562,6 +1562,7 @@ static __latent_entropy struct task_struct *copy_process(
spin_lock_init(&p->alloc_lock);
init_sigpending(&p->pending);
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 b28b2b9..875cd3d 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/332] drivers: random: Reduce preempt disabled region
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c42abc8453f3c6deba74f3ad892feff99aee89bd
+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
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 eedcb8c..b6bc436 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/332] ARM: AT91: PIT: Remove irq handler when clock event
+Subject: [PATCH 058/337] 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=3039989fd94380d71a24022c31598c6779c4b65d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c9b8285c7b6f4ae00a15ab40a2c54a9f256669f
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 38fcd91..f0a7e6e 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/332] clockevents/drivers/timer-atmel-pit: fix double
+Subject: [PATCH 059/337] 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=5ff1290cf372b98df535708d414cd419c2309928
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fcf2b69102672796b45cdde92964f985d066721d
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 224c0c9..d5152cc 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/332] clocksource: TCLIB: Allow higher clock rates for
+Subject: [PATCH 060/337] 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=e2ff7328d5da069b1a87be4dfbddcb5a0f083ebf
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=83d2a7be9f43ab8b3bec02c9cbdc1ff6effb66d9
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 00d40de..5aed0fe 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/332] drivers/net: Use disable_irq_nosync() in 8139too
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=201b071e6f3628ac101efec47707ac253f1eed4f
+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
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 e94eef5..ccdf8bc 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/332] suspend: Prevent might sleep splats
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=42a06979ab172e96727b893ae32159ca51cc6778
+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
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 e36d075..50cf145 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/332] net-flip-lock-dep-thingy.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dc2de78b14ba0eb6f18005db140c00aea69bdff6
+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
=======================================================
[ 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 1989b3dd6d17..a32563e7e979 100644
+index 231c38d91855..d8e0aed19903 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -2492,12 +2492,11 @@ void lock_sock_nested(struct sock *sk, int subclass)
+@@ -2494,12 +2494,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 4e55672..13d9e67 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/332] net: sched: Use msleep() instead of yield()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0e2150f79aeca505b25d8eaca5f328de287cccaa
+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
On PREEMPT_RT enabled systems the interrupt handler run as threads at prio 50
(by default). If a high priority userspace process tries to shut down a busy
@@ -46,10 +46,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
-index 6cfb6e9038c2..e57aa7293f86 100644
+index 9016c8baf2aa..3a5fe6255c10 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
-@@ -925,7 +925,7 @@ void dev_deactivate_many(struct list_head *head)
+@@ -926,7 +926,7 @@ void dev_deactivate_many(struct list_head *head)
/* Wait for outstanding qdisc_run calls. */
list_for_each_entry(dev, head, close_list)
while (some_qdisc_is_busy(dev))
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 139ba32..6e98989 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/332] x86/ioapic: Do not unmask io_apic when interrupt is
+Subject: [PATCH 065/337] 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=59aef9b47ae1fd508de9568d1a3cc987eae61550
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=463f07c14af63348c56c645acd0dc07147ba30d4
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/0067-latencyhist-disable-jump-labels.patch b/debian/patches/features/all/rt/0066-latencyhist-disable-jump-labels.patch
similarity index 95%
rename from debian/patches/features/all/rt/0067-latencyhist-disable-jump-labels.patch
rename to debian/patches/features/all/rt/0066-latencyhist-disable-jump-labels.patch
index 08b5ee1..e08126d 100644
--- a/debian/patches/features/all/rt/0067-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 067/332] latencyhist: disable jump-labels
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c7c59e69ec0f83a9ea6a0b7d4b06375c550a369d
+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
Atleast on X86 we die a recursive death
diff --git a/debian/patches/features/all/rt/0066-pci-Use-__wake_up_all_locked-in-pci_unblock_user_cfg.patch b/debian/patches/features/all/rt/0066-pci-Use-__wake_up_all_locked-in-pci_unblock_user_cfg.patch
deleted file mode 100644
index f380774..0000000
--- a/debian/patches/features/all/rt/0066-pci-Use-__wake_up_all_locked-in-pci_unblock_user_cfg.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Thu, 1 Dec 2011 00:07:16 +0100
-Subject: [PATCH 066/332] pci: Use __wake_up_all_locked in
- pci_unblock_user_cfg_access()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6f7d5da188d44c8c9f4f5c41491f87be692ab715
-
-The waitqueue is protected by the pci_lock, so we can just avoid to
-lock the waitqueue lock itself. That prevents the
-might_sleep()/scheduling while atomic problem on RT
-
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
----
- drivers/pci/access.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/pci/access.c b/drivers/pci/access.c
-index d11cdbb8fba3..223bbb9acb03 100644
---- a/drivers/pci/access.c
-+++ b/drivers/pci/access.c
-@@ -672,7 +672,7 @@ void pci_cfg_access_unlock(struct pci_dev *dev)
- WARN_ON(!dev->block_cfg_access);
-
- dev->block_cfg_access = 0;
-- wake_up_all(&pci_cfg_wait);
-+ wake_up_all_locked(&pci_cfg_wait);
- raw_spin_unlock_irqrestore(&pci_lock, flags);
- }
- EXPORT_SYMBOL_GPL(pci_cfg_access_unlock);
diff --git a/debian/patches/features/all/rt/0068-tracing-Add-latency-histograms.patch b/debian/patches/features/all/rt/0067-tracing-Add-latency-histograms.patch
similarity index 99%
rename from debian/patches/features/all/rt/0068-tracing-Add-latency-histograms.patch
rename to debian/patches/features/all/rt/0067-tracing-Add-latency-histograms.patch
index 76efcda..eac98c4 100644
--- a/debian/patches/features/all/rt/0068-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 068/332] tracing: Add latency histograms
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51d2fd49f00080c9139395daedf9814e0a85c575
+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
This patch provides a recording mechanism to store data of potential
sources of system latencies. The recordings separately determine the
@@ -375,7 +375,7 @@ index 000000000000..d3f2fbd560b1
+
+#endif /* _LATENCY_HIST_H */
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index bb5ec425dfe0..cdb382ab2b1d 100644
+index eeb7f2f5698d..7bed9ce081fa 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -53,6 +53,7 @@
@@ -386,7 +386,7 @@ index bb5ec425dfe0..cdb382ab2b1d 100644
#include "tick-internal.h"
-@@ -991,7 +992,16 @@ void hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
+@@ -989,7 +990,16 @@ void hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED);
timer_stats_hrtimer_set_start_info(timer);
@@ -403,7 +403,7 @@ index bb5ec425dfe0..cdb382ab2b1d 100644
leftmost = enqueue_hrtimer(timer, new_base);
if (!leftmost)
goto unlock;
-@@ -1265,6 +1275,8 @@ static void __run_hrtimer(struct hrtimer_cpu_base *cpu_base,
+@@ -1275,6 +1285,8 @@ static void __run_hrtimer(struct hrtimer_cpu_base *cpu_base,
cpu_base->running = NULL;
}
@@ -412,7 +412,7 @@ index bb5ec425dfe0..cdb382ab2b1d 100644
static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now)
{
struct hrtimer_clock_base *base = cpu_base->clock_base;
-@@ -1284,6 +1296,15 @@ static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now)
+@@ -1294,6 +1306,15 @@ static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now)
timer = container_of(node, struct hrtimer, node);
diff --git a/debian/patches/features/all/rt/0069-latency_hist-Update-sched_wakeup-probe.patch b/debian/patches/features/all/rt/0068-latency_hist-Update-sched_wakeup-probe.patch
similarity index 93%
rename from debian/patches/features/all/rt/0069-latency_hist-Update-sched_wakeup-probe.patch
rename to debian/patches/features/all/rt/0068-latency_hist-Update-sched_wakeup-probe.patch
index b384ce3..f0bc16a 100644
--- a/debian/patches/features/all/rt/0069-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 069/332] latency_hist: Update sched_wakeup probe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e579badb8fa9ebf1362c610bef973cb0c6426f71
+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
"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/0070-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
similarity index 92%
rename from debian/patches/features/all/rt/0070-trace-latency-hist-Consider-new-argument-when-probin.patch
rename to debian/patches/features/all/rt/0069-trace-latency-hist-Consider-new-argument-when-probin.patch
index 5af9cbd..407332e 100644
--- a/debian/patches/features/all/rt/0070-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 070/332] trace/latency-hist: Consider new argument when
+Subject: [PATCH 069/337] 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=9159ae42188595a5ea0fe12ec39b1ab9e4307293
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dc4150f7ff5d40c0d1b68a3e16c2d890fbc4b94c
The sched_switch tracer has got a new argument. Fix the latency tracer
accordingly.
diff --git a/debian/patches/features/all/rt/0071-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
similarity index 96%
rename from debian/patches/features/all/rt/0071-trace-Use-rcuidle-version-for-preemptoff_hist-trace-.patch
rename to debian/patches/features/all/rt/0070-trace-Use-rcuidle-version-for-preemptoff_hist-trace-.patch
index 027f860..af607ee 100644
--- a/debian/patches/features/all/rt/0071-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 071/332] trace: Use rcuidle version for preemptoff_hist trace
+Subject: [PATCH 070/337] 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=1212783e7c04dffb0e1ee869c77b7d2f56490ec5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a2da22f07a2197f0be29e645e7ede952cd915a5e
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/0072-printk-Add-a-printk-kill-switch.patch b/debian/patches/features/all/rt/0071-printk-Add-a-printk-kill-switch.patch
similarity index 97%
rename from debian/patches/features/all/rt/0072-printk-Add-a-printk-kill-switch.patch
rename to debian/patches/features/all/rt/0071-printk-Add-a-printk-kill-switch.patch
index 38b1195..f7473d2 100644
--- a/debian/patches/features/all/rt/0072-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 072/332] printk: Add a printk kill switch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=744b774f50f43943933c3f0c7673d07f015339c4
+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
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/0073-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
similarity index 89%
rename from debian/patches/features/all/rt/0073-printk-Add-force_early_printk-boot-param-to-help-wit.patch
rename to debian/patches/features/all/rt/0072-printk-Add-force_early_printk-boot-param-to-help-wit.patch
index 6ca0e8f..afa4a32 100644
--- a/debian/patches/features/all/rt/0073-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 073/332] printk: Add "force_early_printk" boot param to help
+Subject: [PATCH 072/337] 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=6b619b1d8c87dcd794c924b93afb220dd72ce049
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1b888094cfcf047fe2cfd07f7267e18c33226fa7
Gives me an option to screw printk and actually see what the machine
says.
diff --git a/debian/patches/features/all/rt/0074-rt-Provide-PREEMPT_RT_BASE-config-switch.patch b/debian/patches/features/all/rt/0073-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
similarity index 92%
rename from debian/patches/features/all/rt/0074-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
rename to debian/patches/features/all/rt/0073-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
index c8ae906..fdfd23a 100644
--- a/debian/patches/features/all/rt/0074-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 074/332] rt: Provide PREEMPT_RT_BASE config switch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=633763a3997f79bf85fac1854c2a32c872914560
+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
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/0075-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
similarity index 89%
rename from debian/patches/features/all/rt/0075-kconfig-Disable-config-options-which-are-not-RT-comp.patch
rename to debian/patches/features/all/rt/0074-kconfig-Disable-config-options-which-are-not-RT-comp.patch
index 0a43f52..0a223c2 100644
--- a/debian/patches/features/all/rt/0075-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 075/332] kconfig: Disable config options which are not RT
+Subject: [PATCH 074/337] 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=3c2893a32ad2a35f883320e5f37904dbd69980c4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1bff56dd94ebbc1cbc934a4be22458c6a906f490
Disable stuff which is known to have issues on RT
diff --git a/debian/patches/features/all/rt/0076-kconfig-Add-PREEMPT_RT_FULL.patch b/debian/patches/features/all/rt/0075-kconfig-Add-PREEMPT_RT_FULL.patch
similarity index 94%
rename from debian/patches/features/all/rt/0076-kconfig-Add-PREEMPT_RT_FULL.patch
rename to debian/patches/features/all/rt/0075-kconfig-Add-PREEMPT_RT_FULL.patch
index 07b9dfa..be96188 100644
--- a/debian/patches/features/all/rt/0076-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 076/332] kconfig: Add PREEMPT_RT_FULL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1ab6d9e267cc81a2695560f4b363c388c8b8dd73
+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
Introduce the final symbol for PREEMPT_RT_FULL.
diff --git a/debian/patches/features/all/rt/0077-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
similarity index 90%
rename from debian/patches/features/all/rt/0077-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
rename to debian/patches/features/all/rt/0076-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
index 25d6145..7d11ae3 100644
--- a/debian/patches/features/all/rt/0077-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 077/332] 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=f38daa3bf5b2f85cc8bd852b9b24ff3ca4161612
+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
Introduce RT/NON-RT WARN/BUG statements to avoid ifdefs in the code.
diff --git a/debian/patches/features/all/rt/0078-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
similarity index 90%
rename from debian/patches/features/all/rt/0078-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch
rename to debian/patches/features/all/rt/0077-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch
index 35de504..a80b015 100644
--- a/debian/patches/features/all/rt/0078-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 078/332] 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=f7670baf7d141f4c9416c06bf0f6c8c1557471d3
+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
RT does not disable interrupts here, but the protection is still
correct. Fixup the WARN_ON so it won't yell on RT.
@@ -16,7 +16,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
-index c380b7e8f1c6..8604651dfb59 100644
+index 1a0b110f12c0..a88595b21111 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -1923,10 +1923,10 @@ static int __attach_device(struct iommu_dev_data *dev_data,
diff --git a/debian/patches/features/all/rt/0079-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
similarity index 94%
rename from debian/patches/features/all/rt/0079-rt-local_irq_-variants-depending-on-RT-RT.patch
rename to debian/patches/features/all/rt/0078-rt-local_irq_-variants-depending-on-RT-RT.patch
index ee629da..4a936c4 100644
--- a/debian/patches/features/all/rt/0079-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 079/332] rt: local_irq_* variants depending on RT/!RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=78c0b773e47eb70060f7fa504de181798f975537
+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
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/0080-preempt-Provide-preempt_-_-no-rt-variants.patch b/debian/patches/features/all/rt/0079-preempt-Provide-preempt_-_-no-rt-variants.patch
similarity index 92%
rename from debian/patches/features/all/rt/0080-preempt-Provide-preempt_-_-no-rt-variants.patch
rename to debian/patches/features/all/rt/0079-preempt-Provide-preempt_-_-no-rt-variants.patch
index a246a2c..9980461 100644
--- a/debian/patches/features/all/rt/0080-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 080/332] preempt: Provide preempt_*_(no)rt variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cdeb92ec78eb96f1dbaa62700dc866e207d42a93
+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
RT needs a few preempt_disable/enable points which are not necessary
otherwise. Implement variants to avoid #ifdeffery.
diff --git a/debian/patches/features/all/rt/0081-Intrduce-migrate_disable-cpu_light.patch b/debian/patches/features/all/rt/0080-Intrduce-migrate_disable-cpu_light.patch
similarity index 96%
rename from debian/patches/features/all/rt/0081-Intrduce-migrate_disable-cpu_light.patch
rename to debian/patches/features/all/rt/0080-Intrduce-migrate_disable-cpu_light.patch
index 2f82b5a..252f6d7 100644
--- a/debian/patches/features/all/rt/0081-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 081/332] Intrduce migrate_disable() + cpu_light()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e2a8770059be1ec00116d8c316b3fb343098baf2
+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
Introduce migrate_disable(). The task can't be pushed to another CPU but can
be preempted.
@@ -158,7 +158,7 @@ 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 36698b5fb0c7..bf8f5ad19ac5 100644
+index 4ffc51451f16..409b8b292ebc 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)
@@ -173,7 +173,7 @@ index 36698b5fb0c7..bf8f5ad19ac5 100644
queued = task_on_rq_queued(p);
running = task_current(rq, p);
-@@ -1179,7 +1184,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p,
+@@ -1180,7 +1185,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 36698b5fb0c7..bf8f5ad19ac5 100644
goto out;
dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask);
-@@ -3252,6 +3257,69 @@ static inline void schedule_debug(struct task_struct *prev)
+@@ -3253,6 +3258,69 @@ static inline void schedule_debug(struct task_struct *prev)
schedstat_inc(this_rq()->sched_count);
}
diff --git a/debian/patches/features/all/rt/0082-futex-workaround-migrate_disable-enable-in-different.patch b/debian/patches/features/all/rt/0081-futex-workaround-migrate_disable-enable-in-different.patch
similarity index 94%
rename from debian/patches/features/all/rt/0082-futex-workaround-migrate_disable-enable-in-different.patch
rename to debian/patches/features/all/rt/0081-futex-workaround-migrate_disable-enable-in-different.patch
index 92a825d..da4b59f 100644
--- a/debian/patches/features/all/rt/0082-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 082/332] futex: workaround migrate_disable/enable in different
+Subject: [PATCH 081/337] futex: workaround migrate_disable/enable in different
context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7d9f0c504d69ced03dd094c2855fae5b8838489c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=871e79e50f83884342bbfcf8b39d1365a8e6a7e4
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/0083-rt-Add-local-irq-locks.patch b/debian/patches/features/all/rt/0082-rt-Add-local-irq-locks.patch
similarity index 98%
rename from debian/patches/features/all/rt/0083-rt-Add-local-irq-locks.patch
rename to debian/patches/features/all/rt/0082-rt-Add-local-irq-locks.patch
index e97779d..3fa2c6c 100644
--- a/debian/patches/features/all/rt/0083-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 083/332] rt: Add local irq locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57982830f4e3df791a7cef27bae1afdc34e87592
+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
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/0084-locallock-add-local_lock_on.patch b/debian/patches/features/all/rt/0083-locallock-add-local_lock_on.patch
similarity index 91%
rename from debian/patches/features/all/rt/0084-locallock-add-local_lock_on.patch
rename to debian/patches/features/all/rt/0083-locallock-add-local_lock_on.patch
index a5b9a69..ad3309f 100644
--- a/debian/patches/features/all/rt/0084-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 084/332] locallock: add local_lock_on()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e7433476dbf7d7c9c758b6177296a65e3d3a49be
+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
Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
---
diff --git a/debian/patches/features/all/rt/0085-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
similarity index 94%
rename from debian/patches/features/all/rt/0085-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
rename to debian/patches/features/all/rt/0084-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
index 75a30da..f787c68 100644
--- a/debian/patches/features/all/rt/0085-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 085/332] ata: Do not disable interrupts in ide code for
+Subject: [PATCH 084/337] 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=5ef752b679ce794658ca680e26a996cf9224304e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=08eddc120c6d066deabeed3048c1398735a95e9a
Use the local_irq_*_nort variants.
diff --git a/debian/patches/features/all/rt/0086-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
similarity index 97%
rename from debian/patches/features/all/rt/0086-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
rename to debian/patches/features/all/rt/0085-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
index 6e3d789..b495de6 100644
--- a/debian/patches/features/all/rt/0086-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 086/332] ide: Do not disable interrupts for PREEMPT-RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=780125cc29b647742d37d60edfb41be8d4ac1025
+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
Use the local_irq_*_nort variants.
diff --git a/debian/patches/features/all/rt/0087-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
similarity index 92%
rename from debian/patches/features/all/rt/0087-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
rename to debian/patches/features/all/rt/0086-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
index 2a67507..021750f 100644
--- a/debian/patches/features/all/rt/0087-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 087/332] infiniband: Mellanox IB driver patch use _nort()
+Subject: [PATCH 086/337] infiniband: Mellanox IB driver patch use _nort()
primitives
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=354989769bd11026fd31687cccc70c4ad4431898
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1d175dd060ba1ff7ee021f83f5b440f0ac139524
Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT
Kernel.
diff --git a/debian/patches/features/all/rt/0088-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
similarity index 93%
rename from debian/patches/features/all/rt/0088-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
rename to debian/patches/features/all/rt/0087-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
index 027c18c..cb0c12f 100644
--- a/debian/patches/features/all/rt/0088-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 088/332] input: gameport: Do not disable interrupts on
+Subject: [PATCH 087/337] 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=1e0e4ca38aa1eac7a6bec5020a681369f224a301
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7fbdfa440bdb90a23299565a805e80b9aab26fb
Use the _nort() primitives.
diff --git a/debian/patches/features/all/rt/0089-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
similarity index 87%
rename from debian/patches/features/all/rt/0089-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
rename to debian/patches/features/all/rt/0088-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
index b29cff5..1520936 100644
--- a/debian/patches/features/all/rt/0089-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 089/332] core: Do not disable interrupts on RT in
+Subject: [PATCH 088/337] 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=053cb671ea31dfac65fd66cca23dc42ecc1e971b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa9b4d2d24aa7d5bf68cb01530ef90d6e0db0fa4
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/0090-usb-Use-_nort-in-giveback-function.patch b/debian/patches/features/all/rt/0089-usb-Use-_nort-in-giveback-function.patch
similarity index 95%
rename from debian/patches/features/all/rt/0090-usb-Use-_nort-in-giveback-function.patch
rename to debian/patches/features/all/rt/0089-usb-Use-_nort-in-giveback-function.patch
index 405c15b..b9420fe 100644
--- a/debian/patches/features/all/rt/0090-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 090/332] usb: Use _nort in giveback function
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e19fe22c64a11d9aa3b8aa8b9de9bc2b7bd727d5
+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
Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet
context") I see
diff --git a/debian/patches/features/all/rt/0091-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
similarity index 92%
rename from debian/patches/features/all/rt/0091-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
rename to debian/patches/features/all/rt/0090-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
index 2254423..37fcc03 100644
--- a/debian/patches/features/all/rt/0091-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 091/332] mm/scatterlist: Do not disable irqs on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=25ce65c0ea7e108974d2310589e5bf93fcfca448
+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
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/0092-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
similarity index 97%
rename from debian/patches/features/all/rt/0092-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch
rename to debian/patches/features/all/rt/0091-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch
index 8fe7301..b639179 100644
--- a/debian/patches/features/all/rt/0092-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 092/332] mm/workingset: Do not protect workingset_shadow_nodes
+Subject: [PATCH 091/337] 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=cf3c0b02507208734b1b01ce6dc50b7794c673fd
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f51fcc2e58905a6a37f21f24a1bc83781132f86f
workingset_shadow_nodes is protected by local_irq_disable(). Some users
use spin_lock_irq().
diff --git a/debian/patches/features/all/rt/0093-signal-Make-__lock_task_sighand-RT-aware.patch b/debian/patches/features/all/rt/0092-signal-Make-__lock_task_sighand-RT-aware.patch
similarity index 90%
rename from debian/patches/features/all/rt/0093-signal-Make-__lock_task_sighand-RT-aware.patch
rename to debian/patches/features/all/rt/0092-signal-Make-__lock_task_sighand-RT-aware.patch
index 72c0106..c82f14f 100644
--- a/debian/patches/features/all/rt/0093-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 093/332] signal: Make __lock_task_sighand() RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b46583bbac5c04d10a09f301c009b84ddd67d49f
+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
local_irq_save() + spin_lock(&sighand->siglock) does not work on
-RT. Use the nort variants.
diff --git a/debian/patches/features/all/rt/0094-signal-x86-Delay-calling-signals-in-atomic.patch b/debian/patches/features/all/rt/0093-signal-x86-Delay-calling-signals-in-atomic.patch
similarity index 97%
rename from debian/patches/features/all/rt/0094-signal-x86-Delay-calling-signals-in-atomic.patch
rename to debian/patches/features/all/rt/0093-signal-x86-Delay-calling-signals-in-atomic.patch
index d707781..be01f54 100644
--- a/debian/patches/features/all/rt/0094-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 094/332] signal/x86: Delay calling signals in atomic
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eaa5bdb451492fa3d5e51dcba594d3be0ae18e2e
+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
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/0095-x86-signal-delay-calling-signals-on-32bit.patch b/debian/patches/features/all/rt/0094-x86-signal-delay-calling-signals-on-32bit.patch
similarity index 92%
rename from debian/patches/features/all/rt/0095-x86-signal-delay-calling-signals-on-32bit.patch
rename to debian/patches/features/all/rt/0094-x86-signal-delay-calling-signals-on-32bit.patch
index d8a5415..18817ed 100644
--- a/debian/patches/features/all/rt/0095-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 095/332] x86/signal: delay calling signals on 32bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dc5025a4471fe311e49db24be56d00150e3aa914
+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
When running some ptrace single step tests on x86-32 machine, the below problem
is triggered:
diff --git a/debian/patches/features/all/rt/0096-net-wireless-Use-WARN_ON_NORT.patch b/debian/patches/features/all/rt/0095-net-wireless-Use-WARN_ON_NORT.patch
similarity index 87%
rename from debian/patches/features/all/rt/0096-net-wireless-Use-WARN_ON_NORT.patch
rename to debian/patches/features/all/rt/0095-net-wireless-Use-WARN_ON_NORT.patch
index 6e5ce7e..7e32b44 100644
--- a/debian/patches/features/all/rt/0096-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 096/332] net/wireless: Use WARN_ON_NORT()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=018de508d64eff3d2db3da1c0217b5e79abb5d72
+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
The softirq counter is meaningless on RT, so the check triggers a
false positive.
diff --git a/debian/patches/features/all/rt/0097-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
similarity index 96%
rename from debian/patches/features/all/rt/0097-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
rename to debian/patches/features/all/rt/0096-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
index 27a48ad..8167160 100644
--- a/debian/patches/features/all/rt/0097-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 097/332] buffer_head: Replace bh_uptodate_lock for -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=165fde4fe45c7a47e05bc03a1b06525e8c8fba48
+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
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 ebbacd14d450..ba18cfe6392d 100644
+index 447a915db25d..8fe1f6e59b87 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/0098-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
similarity index 94%
rename from debian/patches/features/all/rt/0098-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
rename to debian/patches/features/all/rt/0097-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
index affc092..d64000a 100644
--- a/debian/patches/features/all/rt/0098-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 098/332] fs: jbd/jbd2: Make state lock and journal head lock
+Subject: [PATCH 097/337] 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=394e55f0606e88a48facdc5795325a6fde67060b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b07a8880b8b4b4ae0d63f10caaf150cfd1131728
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 ba18cfe6392d..be5e87f6360a 100644
+index 8fe1f6e59b87..e187a3356345 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/0099-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
similarity index 96%
rename from debian/patches/features/all/rt/0099-list_bl-Make-list-head-locking-RT-safe.patch
rename to debian/patches/features/all/rt/0098-list_bl-Make-list-head-locking-RT-safe.patch
index 34d28b9..c45eba8 100644
--- a/debian/patches/features/all/rt/0099-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 099/332] list_bl: Make list head locking RT safe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=244d6b0eb8a4eda67ed5ae7d7f0f51d2c0e3dbe6
+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
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/0100-list_bl-fixup-bogus-lockdep-warning.patch b/debian/patches/features/all/rt/0099-list_bl-fixup-bogus-lockdep-warning.patch
similarity index 95%
rename from debian/patches/features/all/rt/0100-list_bl-fixup-bogus-lockdep-warning.patch
rename to debian/patches/features/all/rt/0099-list_bl-fixup-bogus-lockdep-warning.patch
index 504356e..e395f00 100644
--- a/debian/patches/features/all/rt/0100-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 100/332] list_bl: fixup bogus lockdep warning
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95f981b3fabc8b98061195fcf199563a2291883f
+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
At first glance, the use of 'static inline' seems appropriate for
INIT_HLIST_BL_HEAD().
diff --git a/debian/patches/features/all/rt/0101-genirq-Disable-irqpoll-on-rt.patch b/debian/patches/features/all/rt/0100-genirq-Disable-irqpoll-on-rt.patch
similarity index 91%
rename from debian/patches/features/all/rt/0101-genirq-Disable-irqpoll-on-rt.patch
rename to debian/patches/features/all/rt/0100-genirq-Disable-irqpoll-on-rt.patch
index 6e9332d..fc41526 100644
--- a/debian/patches/features/all/rt/0101-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 101/332] genirq: Disable irqpoll on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3bc91eced6e6eadf2eaffb66aeedf73489c45b41
+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
Creates long latencies for no value
diff --git a/debian/patches/features/all/rt/0102-genirq-Force-interrupt-thread-on-RT.patch b/debian/patches/features/all/rt/0101-genirq-Force-interrupt-thread-on-RT.patch
similarity index 92%
rename from debian/patches/features/all/rt/0102-genirq-Force-interrupt-thread-on-RT.patch
rename to debian/patches/features/all/rt/0101-genirq-Force-interrupt-thread-on-RT.patch
index 91bc898..55c2772 100644
--- a/debian/patches/features/all/rt/0102-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 102/332] genirq: Force interrupt thread on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=66a3367ea063efa2e1e5b2948d5eeee48410c573
+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
Force threaded_irqs and optimize the code (force_irqthreads) in regard
to this.
diff --git a/debian/patches/features/all/rt/0103-drivers-net-vortex-fix-locking-issues.patch b/debian/patches/features/all/rt/0102-drivers-net-vortex-fix-locking-issues.patch
similarity index 93%
rename from debian/patches/features/all/rt/0103-drivers-net-vortex-fix-locking-issues.patch
rename to debian/patches/features/all/rt/0102-drivers-net-vortex-fix-locking-issues.patch
index 3472868..98c642f 100644
--- a/debian/patches/features/all/rt/0103-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 103/332] drivers/net: vortex fix locking issues
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9a68517b86ba8c4205d001f481f6b50a5dd90c70
+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
Argh, cut and paste wasn't enough...
diff --git a/debian/patches/features/all/rt/0104-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
similarity index 84%
rename from debian/patches/features/all/rt/0104-mm-page_alloc-rt-friendly-per-cpu-pages.patch
rename to debian/patches/features/all/rt/0103-mm-page_alloc-rt-friendly-per-cpu-pages.patch
index bb8d938..abb6443 100644
--- a/debian/patches/features/all/rt/0104-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 104/332] mm: page_alloc: rt-friendly per-cpu pages
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=60851c15a70ccfdda4614a46908a52dbb51b16b7
+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
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 2abf8d5f0ad4..11593e07c487 100644
+index 7064aae8ded7..b08ace7d4d92 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -61,6 +61,7 @@
@@ -60,7 +60,7 @@ index 2abf8d5f0ad4..11593e07c487 100644
}
static void __init __free_pages_boot_core(struct page *page, unsigned int order)
-@@ -2263,14 +2276,14 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
+@@ -2275,14 +2288,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 2abf8d5f0ad4..11593e07c487 100644
}
#endif
-@@ -2287,7 +2300,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
+@@ -2299,7 +2312,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 2abf8d5f0ad4..11593e07c487 100644
pset = per_cpu_ptr(zone->pageset, cpu);
pcp = &pset->pcp;
-@@ -2295,7 +2308,7 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
+@@ -2307,7 +2320,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 2abf8d5f0ad4..11593e07c487 100644
}
/*
-@@ -2381,8 +2394,17 @@ void drain_all_pages(struct zone *zone)
+@@ -2393,8 +2406,17 @@ void drain_all_pages(struct zone *zone)
else
cpumask_clear_cpu(cpu, &cpus_with_pcps);
}
@@ -113,7 +113,7 @@ index 2abf8d5f0ad4..11593e07c487 100644
}
#ifdef CONFIG_HIBERNATION
-@@ -2442,7 +2464,7 @@ void free_hot_cold_page(struct page *page, bool cold)
+@@ -2454,7 +2476,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 2abf8d5f0ad4..11593e07c487 100644
__count_vm_event(PGFREE);
/*
-@@ -2473,7 +2495,7 @@ void free_hot_cold_page(struct page *page, bool cold)
+@@ -2485,7 +2507,7 @@ void free_hot_cold_page(struct page *page, bool cold)
}
out:
@@ -131,7 +131,7 @@ index 2abf8d5f0ad4..11593e07c487 100644
}
/*
-@@ -2615,7 +2637,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
+@@ -2627,7 +2649,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
struct per_cpu_pages *pcp;
struct list_head *list;
@@ -140,7 +140,7 @@ index 2abf8d5f0ad4..11593e07c487 100644
do {
pcp = &this_cpu_ptr(zone->pageset)->pcp;
list = &pcp->lists[migratetype];
-@@ -2642,7 +2664,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
+@@ -2654,7 +2676,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 2abf8d5f0ad4..11593e07c487 100644
do {
page = NULL;
-@@ -2654,22 +2676,24 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
+@@ -2666,22 +2688,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 2abf8d5f0ad4..11593e07c487 100644
return NULL;
}
-@@ -6573,6 +6597,7 @@ static int page_alloc_cpu_notify(struct notifier_block *self,
+@@ -6585,6 +6609,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 2abf8d5f0ad4..11593e07c487 100644
}
/*
-@@ -7401,7 +7426,7 @@ void zone_pcp_reset(struct zone *zone)
+@@ -7413,7 +7438,7 @@ void zone_pcp_reset(struct zone *zone)
struct per_cpu_pageset *pset;
/* avoid races with drain_pages() */
@@ -195,7 +195,7 @@ index 2abf8d5f0ad4..11593e07c487 100644
if (zone->pageset != &boot_pageset) {
for_each_online_cpu(cpu) {
pset = per_cpu_ptr(zone->pageset, cpu);
-@@ -7410,7 +7435,7 @@ void zone_pcp_reset(struct zone *zone)
+@@ -7422,7 +7447,7 @@ void zone_pcp_reset(struct zone *zone)
free_percpu(zone->pageset);
zone->pageset = &boot_pageset;
}
diff --git a/debian/patches/features/all/rt/0105-mm-page_alloc-Reduce-lock-sections-further.patch b/debian/patches/features/all/rt/0104-mm-page_alloc-Reduce-lock-sections-further.patch
similarity index 94%
rename from debian/patches/features/all/rt/0105-mm-page_alloc-Reduce-lock-sections-further.patch
rename to debian/patches/features/all/rt/0104-mm-page_alloc-Reduce-lock-sections-further.patch
index 8dea2c4..4d2067d 100644
--- a/debian/patches/features/all/rt/0105-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 105/332] mm: page_alloc: Reduce lock sections further
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d9a52f5ac26e4ac2c5c74155da03a63ea692dfd6
+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
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,7 +13,7 @@ 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 11593e07c487..0e094e322344 100644
+index b08ace7d4d92..a41ad6fe1cb2 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1096,7 +1096,7 @@ static bool bulkfree_pcp_prepare(struct page *page)
@@ -146,7 +146,7 @@ index 11593e07c487..0e094e322344 100644
}
static void __meminit __init_single_page(struct page *page, unsigned long pfn,
-@@ -2274,16 +2300,18 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order,
+@@ -2286,16 +2312,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 11593e07c487..0e094e322344 100644
}
#endif
-@@ -2299,16 +2327,21 @@ static void drain_pages_zone(unsigned int cpu, struct zone *zone)
+@@ -2311,16 +2339,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 11593e07c487..0e094e322344 100644
}
/*
-@@ -2490,8 +2523,13 @@ void free_hot_cold_page(struct page *page, bool cold)
+@@ -2502,8 +2535,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/0106-mm-swap-Convert-to-percpu-locked.patch b/debian/patches/features/all/rt/0105-mm-swap-Convert-to-percpu-locked.patch
similarity index 96%
rename from debian/patches/features/all/rt/0106-mm-swap-Convert-to-percpu-locked.patch
rename to debian/patches/features/all/rt/0105-mm-swap-Convert-to-percpu-locked.patch
index 19f45be..dc6fdc4 100644
--- a/debian/patches/features/all/rt/0106-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 106/332] mm/swap: Convert to percpu locked
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d6038ffc2e4e46f1f4b74e9ce3d1399fd1b5df42
+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
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 0e094e322344..b5fb2b66ee15 100644
+index a41ad6fe1cb2..3ebf9c2ae7de 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -6609,7 +6609,9 @@ static int page_alloc_cpu_notify(struct notifier_block *self,
+@@ -6621,7 +6621,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/0107-mm-perform-lru_add_drain_all-remotely.patch b/debian/patches/features/all/rt/0106-mm-perform-lru_add_drain_all-remotely.patch
similarity index 96%
rename from debian/patches/features/all/rt/0107-mm-perform-lru_add_drain_all-remotely.patch
rename to debian/patches/features/all/rt/0106-mm-perform-lru_add_drain_all-remotely.patch
index 65b6f93..699dadd 100644
--- a/debian/patches/features/all/rt/0107-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 107/332] mm: perform lru_add_drain_all() remotely
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a7dbb575ce9cfc3eb94d386b3160318f6d4952be
+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
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/0108-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
similarity index 97%
rename from debian/patches/features/all/rt/0108-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
rename to debian/patches/features/all/rt/0107-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
index b7ad72b..3649abd 100644
--- a/debian/patches/features/all/rt/0108-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 108/332] mm/vmstat: Protect per cpu variables with preempt
+Subject: [PATCH 107/337] 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=4310def0e1d771f32fb0dbb1595177b24117df6d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5cfac94c8e9d01ab287a7fc14dcf2beb51dfa9bb
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/0109-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
similarity index 94%
rename from debian/patches/features/all/rt/0109-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
rename to debian/patches/features/all/rt/0108-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
index 5f5516d..0359b6d 100644
--- a/debian/patches/features/all/rt/0109-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 109/332] ARM: Initialize split page table locks for vector
+Subject: [PATCH 108/337] 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=56b7a1de4f71ea9143e7d059bdbf18b1c2358c07
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=06a71e906cbc722b038e9d92251ef2f7663bd12f
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/0110-mm-bounce-Use-local_irq_save_nort.patch b/debian/patches/features/all/rt/0109-mm-bounce-Use-local_irq_save_nort.patch
similarity index 87%
rename from debian/patches/features/all/rt/0110-mm-bounce-Use-local_irq_save_nort.patch
rename to debian/patches/features/all/rt/0109-mm-bounce-Use-local_irq_save_nort.patch
index 4def9a4..3628c2c 100644
--- a/debian/patches/features/all/rt/0110-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 110/332] mm: bounce: Use local_irq_save_nort
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1950e455d0f98d4dd5e31c10ef14758672af3c81
+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
kmap_atomic() is preemptible on RT.
diff --git a/debian/patches/features/all/rt/0111-mm-Allow-only-slub-on-RT.patch b/debian/patches/features/all/rt/0110-mm-Allow-only-slub-on-RT.patch
similarity index 89%
rename from debian/patches/features/all/rt/0111-mm-Allow-only-slub-on-RT.patch
rename to debian/patches/features/all/rt/0110-mm-Allow-only-slub-on-RT.patch
index d81e2f0..4427558 100644
--- a/debian/patches/features/all/rt/0111-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 111/332] mm: Allow only slub on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7db11b6fd9922d09be3d83979966ad5db023af0c
+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
Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs.
diff --git a/debian/patches/features/all/rt/0112-mm-Enable-SLUB-for-RT.patch b/debian/patches/features/all/rt/0111-mm-Enable-SLUB-for-RT.patch
similarity index 99%
rename from debian/patches/features/all/rt/0112-mm-Enable-SLUB-for-RT.patch
rename to debian/patches/features/all/rt/0111-mm-Enable-SLUB-for-RT.patch
index 945f356..fde04bd 100644
--- a/debian/patches/features/all/rt/0112-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 112/332] mm: Enable SLUB for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=00f8e58c278b2f3d1edc0a0766e63c4c4742990f
+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
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/0113-slub-Enable-irqs-for-__GFP_WAIT.patch b/debian/patches/features/all/rt/0112-slub-Enable-irqs-for-__GFP_WAIT.patch
similarity index 91%
rename from debian/patches/features/all/rt/0113-slub-Enable-irqs-for-__GFP_WAIT.patch
rename to debian/patches/features/all/rt/0112-slub-Enable-irqs-for-__GFP_WAIT.patch
index 12c3ed2..21f79c6 100644
--- a/debian/patches/features/all/rt/0113-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 113/332] slub: Enable irqs for __GFP_WAIT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d0a9678a0730823a411a51d29b1d3ed6edff0dca
+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
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/0114-slub-Disable-SLUB_CPU_PARTIAL.patch b/debian/patches/features/all/rt/0113-slub-Disable-SLUB_CPU_PARTIAL.patch
similarity index 94%
rename from debian/patches/features/all/rt/0114-slub-Disable-SLUB_CPU_PARTIAL.patch
rename to debian/patches/features/all/rt/0113-slub-Disable-SLUB_CPU_PARTIAL.patch
index 81df845..27df4eb 100644
--- a/debian/patches/features/all/rt/0114-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 114/332] slub: Disable SLUB_CPU_PARTIAL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f16dcc8c57565b5d2cb8372cfabb431b08c432a7
+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
|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/0115-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
similarity index 86%
rename from debian/patches/features/all/rt/0115-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
rename to debian/patches/features/all/rt/0114-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
index 148f5e6..1cc7461 100644
--- a/debian/patches/features/all/rt/0115-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 115/332] mm: page_alloc: Use local_lock_on() instead of plain
+Subject: [PATCH 114/337] 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=2ba90481661fc23e9d811eaa2751b8af3bb6ddcb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=54d5ff56b9260269b683b36bb840ca13fb08b587
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 b5fb2b66ee15..a63aa41760af 100644
+index 3ebf9c2ae7de..6a187c2adcc9 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/0116-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
similarity index 90%
rename from debian/patches/features/all/rt/0116-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
rename to debian/patches/features/all/rt/0115-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
index af7173b..9b3eed4 100644
--- a/debian/patches/features/all/rt/0116-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 116/332] mm/memcontrol: Don't call schedule_work_on in
+Subject: [PATCH 115/337] 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=6258aa6465eca062351b30477f16d26a322c3fb0
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a92aac8e016427c6e148bf8e67130a0a21a66323
The following trace is triggered when running ltp oom test cases:
@@ -48,10 +48,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index 47559cc0cdcc..efb41a543ae0 100644
+index 2a800c4a39bd..ae85112b058c 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
-@@ -1792,7 +1792,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
+@@ -1795,7 +1795,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
return;
/* Notify other cpus that system-wide "drain" is running */
get_online_cpus();
@@ -60,7 +60,7 @@ index 47559cc0cdcc..efb41a543ae0 100644
for_each_online_cpu(cpu) {
struct memcg_stock_pcp *stock = &per_cpu(memcg_stock, cpu);
struct mem_cgroup *memcg;
-@@ -1809,7 +1809,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
+@@ -1812,7 +1812,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
schedule_work_on(cpu, &stock->work);
}
}
diff --git a/debian/patches/features/all/rt/0117-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
similarity index 86%
rename from debian/patches/features/all/rt/0117-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
rename to debian/patches/features/all/rt/0116-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
index 8fa77c7..a1253f4 100644
--- a/debian/patches/features/all/rt/0117-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 117/332] mm/memcontrol: Replace local_irq_disable with local
+Subject: [PATCH 116/337] 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=946483f2d509bfbe5c80d35e5d5acc31beef83b8
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=637ff36b749e429253059a9384dc429a7024ff90
There are a few local_irq_disable() which then take sleeping locks. This
patch converts them local locks.
@@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index efb41a543ae0..3daeee356665 100644
+index ae85112b058c..e5391afdfce3 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -67,6 +67,7 @@
@@ -33,7 +33,7 @@ index efb41a543ae0..3daeee356665 100644
/* Whether legacy memory+swap accounting is active */
static bool do_memsw_account(void)
{
-@@ -4555,12 +4558,12 @@ static int mem_cgroup_move_account(struct page *page,
+@@ -4558,12 +4561,12 @@ static int mem_cgroup_move_account(struct page *page,
ret = 0;
@@ -48,7 +48,7 @@ index efb41a543ae0..3daeee356665 100644
out_unlock:
unlock_page(page);
out:
-@@ -5435,10 +5438,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg,
+@@ -5438,10 +5441,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg,
commit_charge(page, memcg, lrucare);
@@ -61,7 +61,7 @@ index efb41a543ae0..3daeee356665 100644
if (do_memsw_account() && PageSwapCache(page)) {
swp_entry_t entry = { .val = page_private(page) };
-@@ -5494,14 +5497,14 @@ static void uncharge_batch(struct mem_cgroup *memcg, unsigned long pgpgout,
+@@ -5497,14 +5500,14 @@ static void uncharge_batch(struct mem_cgroup *memcg, unsigned long pgpgout,
memcg_oom_recover(memcg);
}
@@ -78,7 +78,7 @@ index efb41a543ae0..3daeee356665 100644
if (!mem_cgroup_is_root(memcg))
css_put_many(&memcg->css, nr_pages);
-@@ -5850,6 +5853,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
+@@ -5853,6 +5856,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
{
struct mem_cgroup *memcg, *swap_memcg;
unsigned short oldid;
@@ -86,7 +86,7 @@ index efb41a543ae0..3daeee356665 100644
VM_BUG_ON_PAGE(PageLRU(page), page);
VM_BUG_ON_PAGE(page_count(page), page);
-@@ -5890,12 +5894,16 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
+@@ -5893,12 +5897,16 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
* important here to have the interrupts disabled because it is the
* only synchronisation we have for udpating the per-CPU variables.
*/
diff --git a/debian/patches/features/all/rt/0118-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
similarity index 81%
rename from debian/patches/features/all/rt/0118-mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch
rename to debian/patches/features/all/rt/0117-mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch
index 30b8f3d..3568bcc 100644
--- a/debian/patches/features/all/rt/0118-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 118/332] mm/memcontrol: mem_cgroup_migrate() - replace another
+Subject: [PATCH 117/337] 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=cebd1d2e5f0bab4ee99d612bdf98f2c777f3038a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=11f55866beb66fc14d7cf2812cca6b795e8d4304
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.
@@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index 3daeee356665..58d032994c2d 100644
+index e5391afdfce3..c04403033aec 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
-@@ -5659,10 +5659,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage)
+@@ -5662,10 +5662,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage)
commit_charge(newpage, memcg, false);
diff --git a/debian/patches/features/all/rt/0119-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
similarity index 92%
rename from debian/patches/features/all/rt/0119-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch
rename to debian/patches/features/all/rt/0118-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch
index 35c70f9..6f82134 100644
--- a/debian/patches/features/all/rt/0119-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 119/332] mm: backing-dev: don't disable IRQs in
+Subject: [PATCH 118/337] 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=dbead7ad2607181ace41f15392bcefd2511037af
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=587e507caa802abd1641d17983edd6b0a32456d4
it triggers:
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:930
diff --git a/debian/patches/features/all/rt/0120-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
similarity index 97%
rename from debian/patches/features/all/rt/0120-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
rename to debian/patches/features/all/rt/0119-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
index ae64848..5a6b6c3 100644
--- a/debian/patches/features/all/rt/0120-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 120/332] 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=a1b0cbf24e603f6a89d0f5913cd90128f9011f7b
+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
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/0121-radix-tree-use-local-locks.patch b/debian/patches/features/all/rt/0120-radix-tree-use-local-locks.patch
similarity index 97%
rename from debian/patches/features/all/rt/0121-radix-tree-use-local-locks.patch
rename to debian/patches/features/all/rt/0120-radix-tree-use-local-locks.patch
index 8fd102d..bd52f43 100644
--- a/debian/patches/features/all/rt/0121-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 121/332] radix-tree: use local locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=db616771bcdc0402bbca61e5fa7942eb5c248982
+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
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/0122-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
similarity index 85%
rename from debian/patches/features/all/rt/0122-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
rename to debian/patches/features/all/rt/0121-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
index 8f8a315..aa082df 100644
--- a/debian/patches/features/all/rt/0122-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 122/332] panic: skip get_random_bytes for RT_FULL in
+Subject: [PATCH 121/337] 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=b3fc2a1e13be3efd24b55298083804a0c674422e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dabc6f4d0f0d58981fd1f638e36896b84a0554ea
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/0123-timers-Prepare-for-full-preemption.patch b/debian/patches/features/all/rt/0122-timers-Prepare-for-full-preemption.patch
similarity index 95%
rename from debian/patches/features/all/rt/0123-timers-Prepare-for-full-preemption.patch
rename to debian/patches/features/all/rt/0122-timers-Prepare-for-full-preemption.patch
index 33da560..ec1afe3 100644
--- a/debian/patches/features/all/rt/0123-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 123/332] timers: Prepare for full preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c14b6dc620fcdcb74e051d344a26529757dd3cb0
+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
When softirqs can be preempted we need to make sure that cancelling
the timer from the active thread can not deadlock vs. a running timer
@@ -29,7 +29,7 @@ index 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 bf8f5ad19ac5..0e41f3036a6f 100644
+index 409b8b292ebc..21c4ebbd6178 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -525,11 +525,14 @@ void resched_cpu(int cpu)
@@ -59,7 +59,7 @@ index bf8f5ad19ac5..0e41f3036a6f 100644
}
/*
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
-index 666465939d59..847804e76487 100644
+index 0e9cb65c533c..b1d2919903cf 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -195,6 +195,9 @@ EXPORT_SYMBOL(jiffies_64);
diff --git a/debian/patches/features/all/rt/0124-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
similarity index 94%
rename from debian/patches/features/all/rt/0124-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
rename to debian/patches/features/all/rt/0123-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
index 1c7ddd5..1f7f5fa 100644
--- a/debian/patches/features/all/rt/0124-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 124/332] timer: delay waking softirqs from the jiffy tick
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=740802913682e4de3f9f5e5f05929ab0c5523414
+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
People were complaining about broken balancing with the recent -rt
series.
@@ -57,7 +57,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
-index 847804e76487..06ccccfd4130 100644
+index b1d2919903cf..d8e1c2c5397c 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -1660,13 +1660,13 @@ void update_process_times(int user_tick)
diff --git a/debian/patches/features/all/rt/0125-hrtimers-Prepare-full-preemption.patch b/debian/patches/features/all/rt/0124-hrtimers-Prepare-full-preemption.patch
similarity index 93%
rename from debian/patches/features/all/rt/0125-hrtimers-Prepare-full-preemption.patch
rename to debian/patches/features/all/rt/0124-hrtimers-Prepare-full-preemption.patch
index fd7381b..cfdeb26 100644
--- a/debian/patches/features/all/rt/0125-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 125/332] hrtimers: Prepare full preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ca8e63e25177fe15106e8104dfb5b5275cab3b1b
+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
Make cancellation of a running callback in softirq context safe
against preemption.
@@ -53,10 +53,10 @@ index 3bddb7c8cc93..b71f4b720a03 100644
return timer->base->cpu_base->running == timer;
}
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index cdb382ab2b1d..552d23264a3d 100644
+index 7bed9ce081fa..c84f04b3c394 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
-@@ -856,6 +856,32 @@ u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
+@@ -854,6 +854,32 @@ u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
}
EXPORT_SYMBOL_GPL(hrtimer_forward);
@@ -89,7 +89,7 @@ index cdb382ab2b1d..552d23264a3d 100644
/*
* enqueue_hrtimer - internal function to (re)start a timer
*
-@@ -1073,7 +1099,7 @@ int hrtimer_cancel(struct hrtimer *timer)
+@@ -1071,7 +1097,7 @@ int hrtimer_cancel(struct hrtimer *timer)
if (ret >= 0)
return ret;
@@ -98,7 +98,7 @@ index cdb382ab2b1d..552d23264a3d 100644
}
}
EXPORT_SYMBOL_GPL(hrtimer_cancel);
-@@ -1464,6 +1490,8 @@ void hrtimer_run_queues(void)
+@@ -1474,6 +1500,8 @@ void hrtimer_run_queues(void)
now = hrtimer_update_base(cpu_base);
__hrtimer_run_queues(cpu_base, now);
raw_spin_unlock(&cpu_base->lock);
@@ -107,7 +107,7 @@ index cdb382ab2b1d..552d23264a3d 100644
}
/*
-@@ -1623,6 +1651,9 @@ int hrtimers_prepare_cpu(unsigned int cpu)
+@@ -1633,6 +1661,9 @@ int hrtimers_prepare_cpu(unsigned int cpu)
cpu_base->cpu = cpu;
hrtimer_init_hres(cpu_base);
diff --git a/debian/patches/features/all/rt/0126-hrtimer-enfore-64byte-alignment.patch b/debian/patches/features/all/rt/0125-hrtimer-enfore-64byte-alignment.patch
similarity index 88%
rename from debian/patches/features/all/rt/0126-hrtimer-enfore-64byte-alignment.patch
rename to debian/patches/features/all/rt/0125-hrtimer-enfore-64byte-alignment.patch
index c589b65..8f35f25 100644
--- a/debian/patches/features/all/rt/0126-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 126/332] hrtimer: enfore 64byte alignment
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aec02cb2b0ba787aa88c07afa4b8546409548467
+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
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/0127-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
similarity index 91%
rename from debian/patches/features/all/rt/0127-hrtimer-Fixup-hrtimer-callback-changes-for-preempt-r.patch
rename to debian/patches/features/all/rt/0126-hrtimer-Fixup-hrtimer-callback-changes-for-preempt-r.patch
index b122887..bb09a25 100644
--- a/debian/patches/features/all/rt/0127-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 127/332] hrtimer: Fixup hrtimer callback changes for
+Subject: [PATCH 126/337] hrtimer: Fixup hrtimer callback changes for
preempt-rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9f70110ada2a5e576c528db75702c888b9a3edf2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0db1110e1d4dabbfd79dd961085c31fb0d750b17
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 0e41f3036a6f..3107020a20d2 100644
+index 21c4ebbd6178..7e90cd2e5794 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -345,6 +345,7 @@ static void init_rq_hrtick(struct rq *rq)
@@ -92,10 +92,10 @@ index f139f22ce30d..f5a1132f9014 100644
}
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 552d23264a3d..3d3c7c7f93a6 100644
+index c84f04b3c394..0ac7cd65a163 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
-@@ -720,11 +720,8 @@ static inline int hrtimer_is_hres_enabled(void) { return 0; }
+@@ -718,11 +718,8 @@ static inline int hrtimer_is_hres_enabled(void) { return 0; }
static inline void hrtimer_switch_to_hres(void) { }
static inline void
hrtimer_force_reprogram(struct hrtimer_cpu_base *base, int skip_equal) { }
@@ -109,7 +109,7 @@ index 552d23264a3d..3d3c7c7f93a6 100644
static inline void hrtimer_init_hres(struct hrtimer_cpu_base *base) { }
static inline void retrigger_next_event(void *arg) { }
-@@ -873,7 +870,7 @@ void hrtimer_wait_for_timer(const struct hrtimer *timer)
+@@ -871,7 +868,7 @@ void hrtimer_wait_for_timer(const struct hrtimer *timer)
{
struct hrtimer_clock_base *base = timer->base;
@@ -118,7 +118,7 @@ index 552d23264a3d..3d3c7c7f93a6 100644
wait_event(base->cpu_base->wait,
!(hrtimer_callback_running(timer)));
}
-@@ -923,6 +920,11 @@ static void __remove_hrtimer(struct hrtimer *timer,
+@@ -921,6 +918,11 @@ static void __remove_hrtimer(struct hrtimer *timer,
if (!(state & HRTIMER_STATE_ENQUEUED))
return;
@@ -130,7 +130,7 @@ index 552d23264a3d..3d3c7c7f93a6 100644
if (!timerqueue_del(&base->active, &timer->node))
cpu_base->active_bases &= ~(1 << base->index);
-@@ -1163,6 +1165,7 @@ static void __hrtimer_init(struct hrtimer *timer, clockid_t clock_id,
+@@ -1173,6 +1175,7 @@ static void __hrtimer_init(struct hrtimer *timer, clockid_t clock_id,
base = hrtimer_clockid_to_base(clock_id);
timer->base = &cpu_base->clock_base[base];
@@ -138,7 +138,7 @@ index 552d23264a3d..3d3c7c7f93a6 100644
timerqueue_init(&timer->node);
#ifdef CONFIG_TIMER_STATS
-@@ -1203,6 +1206,7 @@ bool hrtimer_active(const struct hrtimer *timer)
+@@ -1213,6 +1216,7 @@ bool hrtimer_active(const struct hrtimer *timer)
seq = raw_read_seqcount_begin(&cpu_base->seq);
if (timer->state != HRTIMER_STATE_INACTIVE ||
@@ -146,7 +146,7 @@ index 552d23264a3d..3d3c7c7f93a6 100644
cpu_base->running == timer)
return true;
-@@ -1301,12 +1305,112 @@ static void __run_hrtimer(struct hrtimer_cpu_base *cpu_base,
+@@ -1311,12 +1315,112 @@ static void __run_hrtimer(struct hrtimer_cpu_base *cpu_base,
cpu_base->running = NULL;
}
@@ -259,7 +259,7 @@ index 552d23264a3d..3d3c7c7f93a6 100644
for (; active; base++, active >>= 1) {
struct timerqueue_node *node;
-@@ -1346,9 +1450,14 @@ static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now)
+@@ -1356,9 +1460,14 @@ static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now)
if (basenow.tv64 < hrtimer_get_softexpires_tv64(timer))
break;
@@ -275,7 +275,7 @@ index 552d23264a3d..3d3c7c7f93a6 100644
}
#ifdef CONFIG_HIGH_RES_TIMERS
-@@ -1490,8 +1599,6 @@ void hrtimer_run_queues(void)
+@@ -1500,8 +1609,6 @@ void hrtimer_run_queues(void)
now = hrtimer_update_base(cpu_base);
__hrtimer_run_queues(cpu_base, now);
raw_spin_unlock(&cpu_base->lock);
@@ -284,7 +284,7 @@ index 552d23264a3d..3d3c7c7f93a6 100644
}
/*
-@@ -1513,6 +1620,7 @@ static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer)
+@@ -1523,6 +1630,7 @@ static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer)
void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task)
{
sl->timer.function = hrtimer_wakeup;
@@ -292,7 +292,7 @@ index 552d23264a3d..3d3c7c7f93a6 100644
sl->task = task;
}
EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
-@@ -1647,6 +1755,7 @@ int hrtimers_prepare_cpu(unsigned int cpu)
+@@ -1657,6 +1765,7 @@ int hrtimers_prepare_cpu(unsigned int cpu)
for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) {
cpu_base->clock_base[i].cpu_base = cpu_base;
timerqueue_init_head(&cpu_base->clock_base[i].active);
@@ -300,7 +300,7 @@ index 552d23264a3d..3d3c7c7f93a6 100644
}
cpu_base->cpu = cpu;
-@@ -1723,9 +1832,26 @@ int hrtimers_dead_cpu(unsigned int scpu)
+@@ -1733,9 +1842,26 @@ int hrtimers_dead_cpu(unsigned int scpu)
#endif /* CONFIG_HOTPLUG_CPU */
diff --git a/debian/patches/features/all/rt/0128-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
similarity index 85%
rename from debian/patches/features/all/rt/0128-sched-deadline-dl_task_timer-has-to-be-irqsafe.patch
rename to debian/patches/features/all/rt/0127-sched-deadline-dl_task_timer-has-to-be-irqsafe.patch
index d2919cc..c803268 100644
--- a/debian/patches/features/all/rt/0128-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,7 @@
From: Juri Lelli <juri.lelli at gmail.com>
Date: Tue, 13 May 2014 15:30:20 +0200
-Subject: [PATCH 128/332] 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=1ac5803e529156b55fa7d0113961fb029c308831
+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
As for rt_period_timer, dl_task_timer has to be irqsafe.
diff --git a/debian/patches/features/all/rt/0129-timer-fd-Prevent-live-lock.patch b/debian/patches/features/all/rt/0128-timer-fd-Prevent-live-lock.patch
similarity index 89%
rename from debian/patches/features/all/rt/0129-timer-fd-Prevent-live-lock.patch
rename to debian/patches/features/all/rt/0128-timer-fd-Prevent-live-lock.patch
index 195bbee..669dd52 100644
--- a/debian/patches/features/all/rt/0129-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 129/332] timer-fd: Prevent live lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c7ce270558ebb3fc501dc0737b0dccbf7300f6d5
+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
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/0130-tick-broadcast-Make-broadcast-hrtimer-irqsafe.patch b/debian/patches/features/all/rt/0129-tick-broadcast-Make-broadcast-hrtimer-irqsafe.patch
similarity index 95%
rename from debian/patches/features/all/rt/0130-tick-broadcast-Make-broadcast-hrtimer-irqsafe.patch
rename to debian/patches/features/all/rt/0129-tick-broadcast-Make-broadcast-hrtimer-irqsafe.patch
index 03e657f..b180634 100644
--- a/debian/patches/features/all/rt/0130-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 130/332] tick/broadcast: Make broadcast hrtimer irqsafe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cd1f90d78b8bafe8e2b1992cd34c69c50bf2b2e1
+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
Otherwise we end up with the following:
diff --git a/debian/patches/features/all/rt/0131-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
similarity index 90%
rename from debian/patches/features/all/rt/0131-timer-hrtimer-check-properly-for-a-running-timer.patch
rename to debian/patches/features/all/rt/0130-timer-hrtimer-check-properly-for-a-running-timer.patch
index 65566a8..eda0d6f 100644
--- a/debian/patches/features/all/rt/0131-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 131/332] timer/hrtimer: check properly for a running timer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aabdf793ba2df54423fbbdb7ab24169f97c3bb81
+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
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/0132-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
similarity index 97%
rename from debian/patches/features/all/rt/0132-posix-timers-Thread-posix-cpu-timers-on-rt.patch
rename to debian/patches/features/all/rt/0131-posix-timers-Thread-posix-cpu-timers-on-rt.patch
index 09d36f8..e8e7c89 100644
--- a/debian/patches/features/all/rt/0132-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 132/332] posix-timers: Thread posix-cpu-timers on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3bd3a25de66e201b30d5e72dff53529c31418d7d
+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
posix-cpu-timer code takes non -rt safe locks in hard irq
context. Move it to a thread.
@@ -57,10 +57,10 @@ index 040ae135ecb0..b6be669490e4 100644
/* process credentials */
const struct cred __rcu *ptracer_cred; /* Tracer's credentials at attach */
diff --git a/kernel/fork.c b/kernel/fork.c
-index eb3d7d75576d..bc1d86d61a81 100644
+index c508b761e494..bc418dcfcda1 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -1428,6 +1428,9 @@ static void rt_mutex_init_task(struct task_struct *p)
+@@ -1436,6 +1436,9 @@ static void rt_mutex_init_task(struct task_struct *p)
*/
static void posix_cpu_timers_init(struct task_struct *tsk)
{
diff --git a/debian/patches/features/all/rt/0133-sched-Move-task_struct-cleanup-to-RCU.patch b/debian/patches/features/all/rt/0132-sched-Move-task_struct-cleanup-to-RCU.patch
similarity index 93%
rename from debian/patches/features/all/rt/0133-sched-Move-task_struct-cleanup-to-RCU.patch
rename to debian/patches/features/all/rt/0132-sched-Move-task_struct-cleanup-to-RCU.patch
index 1f81a33..c796af5 100644
--- a/debian/patches/features/all/rt/0133-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 133/332] sched: Move task_struct cleanup to RCU
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8f842926292d854f233cf5215b4473e6825bfacd
+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
__put_task_struct() does quite some expensive work. We don't want to
burden random tasks with that.
@@ -51,7 +51,7 @@ index b6be669490e4..a1363ac435ce 100644
struct task_struct *task_rcu_dereference(struct task_struct **ptask);
struct task_struct *try_get_task_struct(struct task_struct **ptask);
diff --git a/kernel/fork.c b/kernel/fork.c
-index bc1d86d61a81..49141d789d94 100644
+index bc418dcfcda1..a9f95368ca66 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -376,7 +376,9 @@ static inline void put_signal_struct(struct signal_struct *sig)
diff --git a/debian/patches/features/all/rt/0134-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
similarity index 84%
rename from debian/patches/features/all/rt/0134-sched-Limit-the-number-of-task-migrations-per-batch.patch
rename to debian/patches/features/all/rt/0133-sched-Limit-the-number-of-task-migrations-per-batch.patch
index 48ea5d5..5f40634 100644
--- a/debian/patches/features/all/rt/0134-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 134/332] 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=14c97806ad504e31b8740e8e4c844654060739e9
+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
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 3107020a20d2..468d5dda2397 100644
+index 7e90cd2e5794..e5499de0dfeb 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/0135-sched-Move-mmdrop-to-RCU-on-RT.patch b/debian/patches/features/all/rt/0134-sched-Move-mmdrop-to-RCU-on-RT.patch
similarity index 89%
rename from debian/patches/features/all/rt/0135-sched-Move-mmdrop-to-RCU-on-RT.patch
rename to debian/patches/features/all/rt/0134-sched-Move-mmdrop-to-RCU-on-RT.patch
index 0618eaa..6f26598 100644
--- a/debian/patches/features/all/rt/0135-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 135/332] sched: Move mmdrop to RCU on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=476debcd5712ffb13b5f7034bc22bba60c9cf312
+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
Takes sleeping locks and calls into the memory allocator, so nothing
we want to do in task switch and oder atomic contexts.
@@ -59,10 +59,10 @@ index a1363ac435ce..34c29a31f94b 100644
{
struct mm_struct *mm = container_of(work, struct mm_struct, async_put_work);
diff --git a/kernel/fork.c b/kernel/fork.c
-index 49141d789d94..94e267da449e 100644
+index a9f95368ca66..eac2a145ccb8 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -866,6 +866,19 @@ void __mmdrop(struct mm_struct *mm)
+@@ -874,6 +874,19 @@ void __mmdrop(struct mm_struct *mm)
}
EXPORT_SYMBOL_GPL(__mmdrop);
@@ -83,10 +83,10 @@ index 49141d789d94..94e267da449e 100644
{
VM_BUG_ON(atomic_read(&mm->mm_users));
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 468d5dda2397..ae1ce4eee339 100644
+index e5499de0dfeb..72efa74ab1c2 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2785,8 +2785,12 @@ static struct rq *finish_task_switch(struct task_struct *prev)
+@@ -2786,8 +2786,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 468d5dda2397..ae1ce4eee339 100644
if (unlikely(prev_state == TASK_DEAD)) {
if (prev->sched_class->task_dead)
prev->sched_class->task_dead(prev);
-@@ -5587,6 +5591,8 @@ void sched_setnuma(struct task_struct *p, int nid)
+@@ -5588,6 +5592,8 @@ void sched_setnuma(struct task_struct *p, int nid)
#endif /* CONFIG_NUMA_BALANCING */
#ifdef CONFIG_HOTPLUG_CPU
@@ -109,7 +109,7 @@ index 468d5dda2397..ae1ce4eee339 100644
/*
* Ensures that the idle task is using init_mm right before its cpu goes
* offline.
-@@ -5601,7 +5607,12 @@ void idle_task_exit(void)
+@@ -5602,7 +5608,12 @@ void idle_task_exit(void)
switch_mm(mm, &init_mm, current);
finish_arch_post_lock_switch();
}
diff --git a/debian/patches/features/all/rt/0136-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
similarity index 86%
rename from debian/patches/features/all/rt/0136-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
rename to debian/patches/features/all/rt/0135-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
index acac7c9..32d0437 100644
--- a/debian/patches/features/all/rt/0136-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 136/332] kernel/sched: move stack + kprobe clean up to
+Subject: [PATCH 135/337] 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=a1a7adfd170042924c12ac3e82045d060333d56f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=664930cec95254bbb4179a4f07ac7440c61a8008
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
@@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/kernel/fork.c b/kernel/fork.c
-index 94e267da449e..6bd05d522c04 100644
+index eac2a145ccb8..11fa53573d26 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -76,6 +76,7 @@
@@ -44,10 +44,10 @@ index 94e267da449e..6bd05d522c04 100644
task_numa_free(tsk);
security_task_free(tsk);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index ae1ce4eee339..1bb37ac31451 100644
+index 72efa74ab1c2..80328674b249 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2795,15 +2795,6 @@ static struct rq *finish_task_switch(struct task_struct *prev)
+@@ -2796,15 +2796,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/0137-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
similarity index 92%
rename from debian/patches/features/all/rt/0137-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
rename to debian/patches/features/all/rt/0136-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
index 7324267..503493d 100644
--- a/debian/patches/features/all/rt/0137-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 137/332] sched: Add saved_state for tasks blocked on sleeping
+Subject: [PATCH 136/337] 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=cd10b53d54d9f29a810560df3e4511c995ffff34
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8e163bc5607e99c6143e5265a5168342e9f6e697
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 1bb37ac31451..e86a4540a76b 100644
+index 80328674b249..ce8e5e9b7fd5 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2033,8 +2033,25 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
+@@ -2034,8 +2034,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 1bb37ac31451..e86a4540a76b 100644
trace_sched_waking(p);
-@@ -2181,6 +2198,18 @@ int wake_up_process(struct task_struct *p)
+@@ -2182,6 +2199,18 @@ int wake_up_process(struct task_struct *p)
}
EXPORT_SYMBOL(wake_up_process);
diff --git a/debian/patches/features/all/rt/0138-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
similarity index 92%
rename from debian/patches/features/all/rt/0138-sched-Prevent-task-state-corruption-by-spurious-lock.patch
rename to debian/patches/features/all/rt/0137-sched-Prevent-task-state-corruption-by-spurious-lock.patch
index 0b6b3d9..c125560 100644
--- a/debian/patches/features/all/rt/0138-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 138/332] sched: Prevent task state corruption by spurious lock
+Subject: [PATCH 137/337] 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=4abce8096d5a7cd0d181681eeaed026123d9fde5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8dff3ed5ba268df813f869b41081f77eed8da7a4
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 e86a4540a76b..ed5e5ae03fdb 100644
+index ce8e5e9b7fd5..33c4824e0abb 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2207,7 +2207,7 @@ EXPORT_SYMBOL(wake_up_process);
+@@ -2208,7 +2208,7 @@ EXPORT_SYMBOL(wake_up_process);
*/
int wake_up_lock_sleeper(struct task_struct *p)
{
diff --git a/debian/patches/features/all/rt/0139-sched-Remove-TASK_ALL.patch b/debian/patches/features/all/rt/0138-sched-Remove-TASK_ALL.patch
similarity index 89%
rename from debian/patches/features/all/rt/0139-sched-Remove-TASK_ALL.patch
rename to debian/patches/features/all/rt/0138-sched-Remove-TASK_ALL.patch
index 4221d60..cc3946a 100644
--- a/debian/patches/features/all/rt/0139-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 139/332] sched: Remove TASK_ALL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2e4d79fd6a43f777a76d51c892394e83979edf1b
+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
It's unused:
diff --git a/debian/patches/features/all/rt/0140-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
similarity index 90%
rename from debian/patches/features/all/rt/0140-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
rename to debian/patches/features/all/rt/0139-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
index 4407448..fcd75f0 100644
--- a/debian/patches/features/all/rt/0140-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 140/332] sched: Do not account rcu_preempt_depth on RT in
+Subject: [PATCH 139/337] 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=f9d50a8b7a3c6132d1f23fcbc6ac3cf0d2e0be2f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1a9e2b02f99b33e00adcb87bda1545bc5c82720e
RT changes the rcu_preempt_depth semantics, so we cannot check for it
in might_sleep().
@@ -39,7 +39,7 @@ index 01f71e1d2e94..00dc4a9474c0 100644
/* Internal to kernel */
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index ed5e5ae03fdb..bf586f3c78bf 100644
+index 33c4824e0abb..e2d0ab845b09 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -7859,7 +7859,7 @@ void __init sched_init(void)
diff --git a/debian/patches/features/all/rt/0141-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
similarity index 83%
rename from debian/patches/features/all/rt/0141-sched-Take-RT-softirq-semantics-into-account-in-cond.patch
rename to debian/patches/features/all/rt/0140-sched-Take-RT-softirq-semantics-into-account-in-cond.patch
index 9b02046..f447f14 100644
--- a/debian/patches/features/all/rt/0141-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 141/332] sched: Take RT softirq semantics into account in
+Subject: [PATCH 140/337] 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=f6547eeae9bad804d3b4f63722f964c59fb04211
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c68feb2dc054c13cc9f680b6b53347dbc58a62d2
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 bf586f3c78bf..72bc3d98dbc3 100644
+index e2d0ab845b09..de08805c512f 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -5092,6 +5092,7 @@ int __cond_resched_lock(spinlock_t *lock)
+@@ -5093,6 +5093,7 @@ int __cond_resched_lock(spinlock_t *lock)
}
EXPORT_SYMBOL(__cond_resched_lock);
@@ -48,7 +48,7 @@ index bf586f3c78bf..72bc3d98dbc3 100644
int __sched __cond_resched_softirq(void)
{
BUG_ON(!in_softirq());
-@@ -5105,6 +5106,7 @@ int __sched __cond_resched_softirq(void)
+@@ -5106,6 +5107,7 @@ int __sched __cond_resched_softirq(void)
return 0;
}
EXPORT_SYMBOL(__cond_resched_softirq);
diff --git a/debian/patches/features/all/rt/0142-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
similarity index 86%
rename from debian/patches/features/all/rt/0142-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
rename to debian/patches/features/all/rt/0141-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
index 614d0cb..ffacdc1 100644
--- a/debian/patches/features/all/rt/0142-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 142/332] 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=a8c8f68338615fce57f3766b7823f8e39d08ae6b
+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
RT does not increment preempt count when a 'sleeping' spinlock is
locked. Update PREEMPT_LOCK_OFFSET for that case.
diff --git a/debian/patches/features/all/rt/0143-sched-Disable-TTWU_QUEUE-on-RT.patch b/debian/patches/features/all/rt/0142-sched-Disable-TTWU_QUEUE-on-RT.patch
similarity index 88%
rename from debian/patches/features/all/rt/0143-sched-Disable-TTWU_QUEUE-on-RT.patch
rename to debian/patches/features/all/rt/0142-sched-Disable-TTWU_QUEUE-on-RT.patch
index aa3e0e1..f136b25 100644
--- a/debian/patches/features/all/rt/0143-sched-Disable-TTWU_QUEUE-on-RT.patch
+++ b/debian/patches/features/all/rt/0142-sched-Disable-TTWU_QUEUE-on-RT.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 13 Sep 2011 16:42:35 +0200
-Subject: [PATCH 143/332] sched: Disable TTWU_QUEUE on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9106793ed0bcecb75965a7df81362aab7e159540
+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
The queued remote wakeup mechanism can introduce rather large
latencies if the number of migrated tasks is high. Disable it for RT.
diff --git a/debian/patches/features/all/rt/0144-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
similarity index 88%
rename from debian/patches/features/all/rt/0144-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
rename to debian/patches/features/all/rt/0143-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
index 28b1fbb..08ba705 100644
--- a/debian/patches/features/all/rt/0144-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 144/332] sched: Disable CONFIG_RT_GROUP_SCHED on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=efa96c8ed19e78a594e501a3b6001a99464a3a9a
+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
Carsten reported problems when running:
diff --git a/debian/patches/features/all/rt/0145-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
similarity index 82%
rename from debian/patches/features/all/rt/0145-sched-ttwu-Return-success-when-only-changing-the-sav.patch
rename to debian/patches/features/all/rt/0144-sched-ttwu-Return-success-when-only-changing-the-sav.patch
index 7cc8122..86bea28 100644
--- a/debian/patches/features/all/rt/0145-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 145/332] sched: ttwu: Return success when only changing the
+Subject: [PATCH 144/337] 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=0f34ffd817fbf629a47658e33e1c4671ae200054
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ffb733b2a78b8eef26305da6981d83b22188c6b
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 72bc3d98dbc3..27bc156231c6 100644
+index de08805c512f..1fbb4b394e0f 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2040,8 +2040,10 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
+@@ -2041,8 +2041,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/0146-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
similarity index 86%
rename from debian/patches/features/all/rt/0146-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
rename to debian/patches/features/all/rt/0145-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
index cb91d42..6d06cdd 100644
--- a/debian/patches/features/all/rt/0146-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 146/332] sched/workqueue: Only wake up idle workers if not
+Subject: [PATCH 145/337] 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=e55056f5abd1c5a4d8ba93f5d3691151d705eb66
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f2fd82c31764f821e0269619366bf67556763f0
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 27bc156231c6..a3eded102c43 100644
+index 1fbb4b394e0f..d1e319e59cc2 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3477,8 +3477,10 @@ static void __sched notrace __schedule(bool preempt)
+@@ -3478,8 +3478,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/0147-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
similarity index 89%
rename from debian/patches/features/all/rt/0147-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
rename to debian/patches/features/all/rt/0146-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
index 9c9012d..037e2cd 100644
--- a/debian/patches/features/all/rt/0147-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 147/332] stop_machine: convert stop_machine_run() to
+Subject: [PATCH 146/337] 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=a0c80116682d4c9b033f95ced1f500561ee5e9d1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4ea73f3223404bca9867551c10a54e8cf9fc0280
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/0148-stop_machine-Use-raw-spinlocks.patch b/debian/patches/features/all/rt/0147-stop_machine-Use-raw-spinlocks.patch
similarity index 96%
rename from debian/patches/features/all/rt/0148-stop_machine-Use-raw-spinlocks.patch
rename to debian/patches/features/all/rt/0147-stop_machine-Use-raw-spinlocks.patch
index e33dbff..d2099b6 100644
--- a/debian/patches/features/all/rt/0148-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 148/332] stop_machine: Use raw spinlocks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cadcf7f3eeb0a3a6a453531bcca6b2e72a21e2b4
+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
Use raw-locks in stomp_machine() to allow locking in irq-off regions.
diff --git a/debian/patches/features/all/rt/0149-hotplug-Lightweight-get-online-cpus.patch b/debian/patches/features/all/rt/0148-hotplug-Lightweight-get-online-cpus.patch
similarity index 97%
rename from debian/patches/features/all/rt/0149-hotplug-Lightweight-get-online-cpus.patch
rename to debian/patches/features/all/rt/0148-hotplug-Lightweight-get-online-cpus.patch
index 6f1860b..7d80472 100644
--- a/debian/patches/features/all/rt/0149-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 149/332] hotplug: Lightweight get online cpus
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6bfd06db45b7933313ad9025aacf2cc0c0810912
+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
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/0150-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
similarity index 87%
rename from debian/patches/features/all/rt/0150-hotplug-sync_unplug-No-n-in-task-name.patch
rename to debian/patches/features/all/rt/0149-hotplug-sync_unplug-No-n-in-task-name.patch
index 4b5d3ae..97c41e7 100644
--- a/debian/patches/features/all/rt/0150-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 150/332] hotplug: sync_unplug: No "\n" in task name
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a1bbb62457433676d5186b63f13b325adcabf173
+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
Otherwise the output will look a little odd.
diff --git a/debian/patches/features/all/rt/0151-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
similarity index 90%
rename from debian/patches/features/all/rt/0151-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
rename to debian/patches/features/all/rt/0150-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
index d29e624..d604708 100644
--- a/debian/patches/features/all/rt/0151-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 151/332] hotplug: Reread hotplug_pcp on pin_current_cpu()
+Subject: [PATCH 150/337] 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=00e2bc546485a639d156a9bbc0a4db1e63f19915
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7f7e40e02e2ac2c73e2c2207542949261cf7bd1f
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/0152-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
similarity index 91%
rename from debian/patches/features/all/rt/0152-trace-Add-migrate-disabled-counter-to-tracing-output.patch
rename to debian/patches/features/all/rt/0151-trace-Add-migrate-disabled-counter-to-tracing-output.patch
index dd13f83..a7eabfa 100644
--- a/debian/patches/features/all/rt/0152-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 152/332] trace: Add migrate-disabled counter to tracing output
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=59058d50ff3c8c09e217d081110282cee2c6fd94
+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
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
4 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
-index be007610ceb0..28aa5381878e 100644
+index ba57266d9e80..4f8bb9c8eed8 100644
--- a/include/linux/trace_events.h
+++ b/include/linux/trace_events.h
@@ -56,6 +56,8 @@ struct trace_entry {
@@ -25,7 +25,7 @@ index be007610ceb0..28aa5381878e 100644
#define TRACE_EVENT_TYPE_MAX \
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index 7379f735a9f4..b2711ef6ed8e 100644
+index c1e50cc0d7b0..2b7caaae94a2 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -1909,6 +1909,8 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags,
@@ -37,7 +37,7 @@ index 7379f735a9f4..b2711ef6ed8e 100644
}
EXPORT_SYMBOL_GPL(tracing_generic_entry_update);
-@@ -2897,9 +2899,10 @@ static void print_lat_help_header(struct seq_file *m)
+@@ -2903,9 +2905,10 @@ static void print_lat_help_header(struct seq_file *m)
"# | / _----=> need-resched \n"
"# || / _---=> hardirq/softirq \n"
"# ||| / _--=> preempt-depth \n"
diff --git a/debian/patches/features/all/rt/0153-hotplug-Use-migrate-disable-on-unplug.patch b/debian/patches/features/all/rt/0152-hotplug-Use-migrate-disable-on-unplug.patch
similarity index 91%
rename from debian/patches/features/all/rt/0153-hotplug-Use-migrate-disable-on-unplug.patch
rename to debian/patches/features/all/rt/0152-hotplug-Use-migrate-disable-on-unplug.patch
index 9c34efe..b318724 100644
--- a/debian/patches/features/all/rt/0153-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 153/332] hotplug: Use migrate disable on unplug
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=432cf96903cd107b176df2cabca1a0ff109636f1
+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
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/0154-lockdep-Make-it-RT-aware.patch b/debian/patches/features/all/rt/0153-lockdep-Make-it-RT-aware.patch
similarity index 88%
rename from debian/patches/features/all/rt/0154-lockdep-Make-it-RT-aware.patch
rename to debian/patches/features/all/rt/0153-lockdep-Make-it-RT-aware.patch
index fc2c72d..336e33a 100644
--- a/debian/patches/features/all/rt/0154-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 154/332] lockdep: Make it RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57b7a4c901bee3338f9e6067e013b8618d061344
+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
teach lockdep that we don't really do softirqs on -RT.
@@ -42,10 +42,10 @@ index f8f27cc5546f..9b77034f7c5e 100644
#if defined(CONFIG_IRQSOFF_TRACER) || \
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 8b95ab1bd429..3d157b3128eb 100644
+index 43f06eda837a..79f8e00e802e 100644
--- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c
-@@ -3702,6 +3702,7 @@ static void check_flags(unsigned long flags)
+@@ -3709,6 +3709,7 @@ static void check_flags(unsigned long flags)
}
}
@@ -53,7 +53,7 @@ index 8b95ab1bd429..3d157b3128eb 100644
/*
* We dont accurately track softirq state in e.g.
* hardirq contexts (such as on 4KSTACKS), so only
-@@ -3716,6 +3717,7 @@ static void check_flags(unsigned long flags)
+@@ -3723,6 +3724,7 @@ static void check_flags(unsigned long flags)
DEBUG_LOCKS_WARN_ON(!current->softirqs_enabled);
}
}
diff --git a/debian/patches/features/all/rt/0155-locking-Disable-spin-on-owner-for-RT.patch b/debian/patches/features/all/rt/0154-locking-Disable-spin-on-owner-for-RT.patch
similarity index 89%
rename from debian/patches/features/all/rt/0155-locking-Disable-spin-on-owner-for-RT.patch
rename to debian/patches/features/all/rt/0154-locking-Disable-spin-on-owner-for-RT.patch
index 3aedcfd..85ac3a7 100644
--- a/debian/patches/features/all/rt/0155-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 155/332] locking: Disable spin on owner for RT
+Subject: [PATCH 154/337] 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=2710d0b7f8688334d1a6bbbac9ab9667a500d2d5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=883b5ee0624a111575905a12ff938ba934de0411
Drop spin on owner for mutex / rwsem. We are most likely not using it
but…
diff --git a/debian/patches/features/all/rt/0156-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
similarity index 98%
rename from debian/patches/features/all/rt/0156-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
rename to debian/patches/features/all/rt/0155-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
index 20d9c2b..5760f51 100644
--- a/debian/patches/features/all/rt/0156-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 156/332] tasklet: Prevent tasklets from going into infinite
+Subject: [PATCH 155/337] 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=50917811e490fb52408942a561a3f22d7102034c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c2c0e7469c57bf5056ad03a35ee83277f4289b2c
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/0157-softirq-Check-preemption-after-reenabling-interrupts.patch b/debian/patches/features/all/rt/0156-softirq-Check-preemption-after-reenabling-interrupts.patch
similarity index 90%
rename from debian/patches/features/all/rt/0157-softirq-Check-preemption-after-reenabling-interrupts.patch
rename to debian/patches/features/all/rt/0156-softirq-Check-preemption-after-reenabling-interrupts.patch
index 6b430d0..3c33125 100644
--- a/debian/patches/features/all/rt/0157-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 157/332] softirq: Check preemption after reenabling interrupts
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=91d77b1f4a0aa2bdc447053e255af8c340ccf37e
+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
raise_softirq_irqoff() disables interrupts and wakes the softirq
daemon, but after reenabling interrupts there is no preemption check,
@@ -116,7 +116,7 @@ index 1d6565e81030..b23a79761df7 100644
return 0;
}
diff --git a/net/core/dev.c b/net/core/dev.c
-index 1d0a7369d5a2..38ee7c420a27 100644
+index 7f2caad46a3d..179818729260 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2286,6 +2286,7 @@ static void __netif_reschedule(struct Qdisc *q)
@@ -127,7 +127,7 @@ index 1d0a7369d5a2..38ee7c420a27 100644
}
void __netif_schedule(struct Qdisc *q)
-@@ -2367,6 +2368,7 @@ void __dev_kfree_skb_irq(struct sk_buff *skb, enum skb_free_reason reason)
+@@ -2370,6 +2371,7 @@ void __dev_kfree_skb_irq(struct sk_buff *skb, enum skb_free_reason reason)
__this_cpu_write(softnet_data.completion_queue, skb);
raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_restore(flags);
@@ -135,7 +135,7 @@ index 1d0a7369d5a2..38ee7c420a27 100644
}
EXPORT_SYMBOL(__dev_kfree_skb_irq);
-@@ -3793,6 +3795,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu,
+@@ -3796,6 +3798,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu,
rps_unlock(sd);
local_irq_restore(flags);
@@ -143,7 +143,7 @@ index 1d0a7369d5a2..38ee7c420a27 100644
atomic_long_inc(&skb->dev->rx_dropped);
kfree_skb(skb);
-@@ -4849,6 +4852,7 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
+@@ -4852,6 +4855,7 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
sd->rps_ipi_list = NULL;
local_irq_enable();
@@ -151,7 +151,7 @@ index 1d0a7369d5a2..38ee7c420a27 100644
/* Send pending IPI's to kick RPS processing on remote cpus. */
while (remsd) {
-@@ -4862,6 +4866,7 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
+@@ -4865,6 +4869,7 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
} else
#endif
local_irq_enable();
@@ -159,7 +159,7 @@ index 1d0a7369d5a2..38ee7c420a27 100644
}
static bool sd_has_rps_ipi_waiting(struct softnet_data *sd)
-@@ -4939,6 +4944,7 @@ void __napi_schedule(struct napi_struct *n)
+@@ -4942,6 +4947,7 @@ void __napi_schedule(struct napi_struct *n)
local_irq_save(flags);
____napi_schedule(this_cpu_ptr(&softnet_data), n);
local_irq_restore(flags);
@@ -167,7 +167,7 @@ index 1d0a7369d5a2..38ee7c420a27 100644
}
EXPORT_SYMBOL(__napi_schedule);
-@@ -8040,6 +8046,7 @@ static int dev_cpu_callback(struct notifier_block *nfb,
+@@ -8044,6 +8050,7 @@ static int dev_cpu_callback(struct notifier_block *nfb,
raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_enable();
diff --git a/debian/patches/features/all/rt/0158-softirq-Disable-softirq-stacks-for-RT.patch b/debian/patches/features/all/rt/0157-softirq-Disable-softirq-stacks-for-RT.patch
similarity index 97%
rename from debian/patches/features/all/rt/0158-softirq-Disable-softirq-stacks-for-RT.patch
rename to debian/patches/features/all/rt/0157-softirq-Disable-softirq-stacks-for-RT.patch
index b42270e..08ab948 100644
--- a/debian/patches/features/all/rt/0158-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 158/332] softirq: Disable softirq stacks for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6b072c0b9ded3fc2cb46b0cad09aeaf35224ef4e
+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
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/0159-softirq-Split-softirq-locks.patch b/debian/patches/features/all/rt/0158-softirq-Split-softirq-locks.patch
similarity index 91%
rename from debian/patches/features/all/rt/0159-softirq-Split-softirq-locks.patch
rename to debian/patches/features/all/rt/0158-softirq-Split-softirq-locks.patch
index b657aff..3dbeeb0 100644
--- a/debian/patches/features/all/rt/0159-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 159/332] softirq: Split softirq locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=28f5cec9402335c56f330b22e76dd6f57dfe398b
+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
The 3.x RT series removed the split softirq implementation in favour
of pushing softirq processing into the context of the thread which
@@ -24,6 +24,8 @@ 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 +-
@@ -35,8 +37,6 @@ 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,8 +86,6 @@ index 8fdcb783197d..d07dbeec7bc1 100644
+#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
@@ -104,7 +102,7 @@ index c2bcbd41e0ad..127cfbd8f129 100644
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(void)
+@@ -480,6 +481,9 @@ static inline void do_softirq_own_stack(
__do_softirq();
}
#endif
@@ -114,7 +112,7 @@ index c2bcbd41e0ad..127cfbd8f129 100644
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(unsigned int nr);
+@@ -487,6 +491,7 @@ extern void __raise_softirq_irqoff(unsig
extern void raise_softirq_irqoff(unsigned int nr);
extern void raise_softirq(unsigned int nr);
@@ -122,7 +120,7 @@ index c2bcbd41e0ad..127cfbd8f129 100644
DECLARE_PER_CPU(struct task_struct *, ksoftirqd);
-@@ -644,6 +649,12 @@ void tasklet_hrtimer_cancel(struct tasklet_hrtimer *ttimer)
+@@ -644,6 +649,12 @@ void tasklet_hrtimer_cancel(struct taskl
tasklet_kill(&ttimer->tasklet);
}
@@ -135,8 +133,6 @@ index c2bcbd41e0ad..127cfbd8f129 100644
/*
* Autoprobing for irqs:
*
-diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index 2b761d0c89d6..5f733773f54e 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -50,7 +50,11 @@
@@ -169,16 +165,14 @@ index 2b761d0c89d6..5f733773f54e 100644
/*
* Are we doing bottom half or hardware interrupt processing?
-@@ -72,7 +82,6 @@
+@@ -79,7 +89,6 @@
#define in_irq() (hardirq_count())
#define in_softirq() (softirq_count())
#define in_interrupt() (irq_count())
-#define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET)
-
- /*
- * Are we in NMI context?
-diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 4ffeb8ce1795..9aa9fef1d48d 100644
+ #define in_nmi() (preempt_count() & NMI_MASK)
+ #define in_task() (!(preempt_count() & \
+ (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET)))
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1980,6 +1980,8 @@ struct task_struct {
@@ -190,7 +184,7 @@ index 4ffeb8ce1795..9aa9fef1d48d 100644
#endif
#ifdef CONFIG_DEBUG_ATOMIC_SLEEP
unsigned long task_state_change;
-@@ -2300,6 +2302,7 @@ extern void thread_group_cputime_adjusted(struct task_struct *p, cputime_t *ut,
+@@ -2300,6 +2302,7 @@ extern void thread_group_cputime_adjuste
/*
* Per process flags
*/
@@ -198,11 +192,9 @@ index 4ffeb8ce1795..9aa9fef1d48d 100644
#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 ae3996ae9bac..6470deef01c9 100644
--- a/init/main.c
+++ b/init/main.c
-@@ -507,6 +507,7 @@ asmlinkage __visible void __init start_kernel(void)
+@@ -506,6 +506,7 @@ asmlinkage __visible void __init start_k
setup_command_line(command_line);
setup_nr_cpu_ids();
setup_per_cpu_areas();
@@ -210,8 +202,6 @@ index ae3996ae9bac..6470deef01c9 100644
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 @@
@@ -222,7 +212,7 @@ index 8669000c2aa3..ec9b3611f886 100644
#include <linux/irq.h>
#define CREATE_TRACE_POINTS
-@@ -63,6 +64,98 @@ const char * const softirq_to_name[NR_SOFTIRQS] = {
+@@ -63,6 +64,98 @@ const char * const softirq_to_name[NR_SO
"TASKLET", "SCHED", "HRTIMER", "RCU"
};
@@ -397,7 +387,7 @@ index 8669000c2aa3..ec9b3611f886 100644
/*
* 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_entry __do_softirq(void)
+@@ -244,10 +399,8 @@ asmlinkage __visible void __softirq_entr
unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
unsigned long old_flags = current->flags;
int max_restart = MAX_SOFTIRQ_RESTART;
@@ -408,7 +398,7 @@ index 8669000c2aa3..ec9b3611f886 100644
/*
* Mask out PF_MEMALLOC s current task context is borrowed for the
-@@ -266,36 +419,7 @@ asmlinkage __visible void __softirq_entry __do_softirq(void)
+@@ -266,36 +419,7 @@ restart:
/* Reset the pending bitmask before enabling irqs */
set_softirq_pending(0);
@@ -446,11 +436,10 @@ index 8669000c2aa3..ec9b3611f886 100644
pending = local_softirq_pending();
if (pending) {
-@@ -331,6 +455,246 @@ asmlinkage __visible void do_softirq(void)
- local_irq_restore(flags);
+@@ -332,6 +456,246 @@ asmlinkage __visible void do_softirq(voi
}
-+/*
+ /*
+ * This function must run with irqs disabled!
+ */
+void raise_softirq_irqoff(unsigned int nr)
@@ -690,9 +679,10 @@ index 8669000c2aa3..ec9b3611f886 100644
+}
+
+#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.
@@ -800,7 +790,7 @@ index 8669000c2aa3..ec9b3611f886 100644
}
#ifdef CONFIG_HOTPLUG_CPU
-@@ -830,6 +1164,8 @@ static int takeover_tasklets(unsigned int cpu)
+@@ -830,6 +1164,8 @@ static int takeover_tasklets(unsigned in
static struct smp_hotplug_thread softirq_threads = {
.store = &ksoftirqd,
@@ -809,11 +799,9 @@ index 8669000c2aa3..ec9b3611f886 100644
.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, struct tick_sched *ts)
+@@ -882,14 +882,7 @@ static bool can_stop_idle_tick(int cpu,
return false;
if (unlikely(local_softirq_pending() && cpu_online(cpu))) {
@@ -829,11 +817,9 @@ index 14eaf34cbbc9..4367249e0dde 100644
return false;
}
-diff --git a/net/core/dev.c b/net/core/dev.c
-index 38ee7c420a27..1a663019f600 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3864,11 +3864,9 @@ int netif_rx_ni(struct sk_buff *skb)
+@@ -3867,11 +3867,9 @@ int netif_rx_ni(struct sk_buff *skb)
trace_netif_rx_ni_entry(skb);
diff --git a/debian/patches/features/all/rt/0160-kernel-softirq-unlock-with-irqs-on.patch b/debian/patches/features/all/rt/0159-kernel-softirq-unlock-with-irqs-on.patch
similarity index 87%
rename from debian/patches/features/all/rt/0160-kernel-softirq-unlock-with-irqs-on.patch
rename to debian/patches/features/all/rt/0159-kernel-softirq-unlock-with-irqs-on.patch
index f06cd71..64c57be 100644
--- a/debian/patches/features/all/rt/0160-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 160/332] kernel: softirq: unlock with irqs on
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e14c59d5ab355d4cad630a7555aa8928cb3f7833
+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
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/0161-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
similarity index 77%
rename from debian/patches/features/all/rt/0161-kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch
rename to debian/patches/features/all/rt/0160-kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch
index cd2c0f4..250052a 100644
--- a/debian/patches/features/all/rt/0161-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 161/332] kernel: migrate_disable() do fastpath in atomic &
+Subject: [PATCH 160/337] 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=4adf0cc0e4f77bcd1d19eeca8ad4c8d617348ba6
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=796979a2ed1d3cb4976b68865f536ad874b4ca39
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 a3eded102c43..0e90644168e0 100644
+index d1e319e59cc2..42c29b743057 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3299,7 +3299,7 @@ void migrate_disable(void)
+@@ -3300,7 +3300,7 @@ void migrate_disable(void)
{
struct task_struct *p = current;
@@ -25,7 +25,7 @@ index a3eded102c43..0e90644168e0 100644
#ifdef CONFIG_SCHED_DEBUG
p->migrate_disable_atomic++;
#endif
-@@ -3326,7 +3326,7 @@ void migrate_enable(void)
+@@ -3327,7 +3327,7 @@ void migrate_enable(void)
{
struct task_struct *p = current;
diff --git a/debian/patches/features/all/rt/0162-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
similarity index 97%
rename from debian/patches/features/all/rt/0162-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
rename to debian/patches/features/all/rt/0161-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
index 4d4e409..ac93e32 100644
--- a/debian/patches/features/all/rt/0162-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 162/332] genirq: Allow disabling of softirq processing in irq
+Subject: [PATCH 161/337] 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=26d174f9ee227eacacd4d0283fd411a96c3526b9
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c54f9fbb5d98a93fb9fb54b0383ef0a1c44c7895
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/0163-softirq-split-timer-softirqs-out-of-ksoftirqd.patch b/debian/patches/features/all/rt/0162-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
similarity index 98%
rename from debian/patches/features/all/rt/0163-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
rename to debian/patches/features/all/rt/0162-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
index fd79fc0..d43bec8 100644
--- a/debian/patches/features/all/rt/0163-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 163/332] softirq: split timer softirqs out of ksoftirqd
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e57a3dc4a6ccfea390994ce5f414afae77a1150e
+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
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/0164-softirq-wake-the-timer-softirq-if-needed.patch b/debian/patches/features/all/rt/0163-softirq-wake-the-timer-softirq-if-needed.patch
similarity index 94%
rename from debian/patches/features/all/rt/0164-softirq-wake-the-timer-softirq-if-needed.patch
rename to debian/patches/features/all/rt/0163-softirq-wake-the-timer-softirq-if-needed.patch
index ec9c05e..958b674 100644
--- a/debian/patches/features/all/rt/0164-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 164/332] softirq: wake the timer softirq if needed
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=613619dae352ccc813dfec8582ab556d66c04c2a
+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
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/0165-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
similarity index 97%
rename from debian/patches/features/all/rt/0165-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
rename to debian/patches/features/all/rt/0164-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
index 6a87519..3802471 100644
--- a/debian/patches/features/all/rt/0165-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 165/332] timers: Don't wake ktimersoftd on every tick
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=773562a9244051e326adb299278b2576e167be03
+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
We recently upgraded from 4.1 to 4.6 and noticed a minor latency
regression caused by an additional thread wakeup (ktimersoftd) in
@@ -34,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 67 insertions(+), 29 deletions(-)
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
-index 06ccccfd4130..f20bbcce2178 100644
+index d8e1c2c5397c..6482b81edbf1 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -207,6 +207,8 @@ struct timer_base {
diff --git a/debian/patches/features/all/rt/0166-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
similarity index 97%
rename from debian/patches/features/all/rt/0166-Revert-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
rename to debian/patches/features/all/rt/0165-Revert-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
index 1fcb986..8abc062 100644
--- a/debian/patches/features/all/rt/0166-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 166/332] 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=1773651d605951b3ef44422554ff6fc17b727699
+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
This reverts commit 032f93cae150a ("timers: Don't wake ktimersoftd on
every tick").
@@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 29 insertions(+), 67 deletions(-)
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
-index f20bbcce2178..06ccccfd4130 100644
+index 6482b81edbf1..d8e1c2c5397c 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -207,8 +207,6 @@ struct timer_base {
diff --git a/debian/patches/features/all/rt/0167-rtmutex-trylock-is-okay-on-RT.patch b/debian/patches/features/all/rt/0166-rtmutex-trylock-is-okay-on-RT.patch
similarity index 89%
rename from debian/patches/features/all/rt/0167-rtmutex-trylock-is-okay-on-RT.patch
rename to debian/patches/features/all/rt/0166-rtmutex-trylock-is-okay-on-RT.patch
index efbca2b..4b86a1e 100644
--- a/debian/patches/features/all/rt/0167-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 167/332] rtmutex: trylock is okay on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1302ccf7c6ae5323b617fb7ca147be9bd15c6fee
+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
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/0168-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
similarity index 93%
rename from debian/patches/features/all/rt/0168-gpu-don-t-check-for-the-lock-owner.patch
rename to debian/patches/features/all/rt/0167-gpu-don-t-check-for-the-lock-owner.patch
index 9ed3a2e..c2847d9 100644
--- a/debian/patches/features/all/rt/0168-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 168/332] gpu: don't check for the lock owner.
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=13b42f91483445f2df2121f36fff59905254f5e2
+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
Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
---
diff --git a/debian/patches/features/all/rt/0169-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
similarity index 97%
rename from debian/patches/features/all/rt/0169-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
rename to debian/patches/features/all/rt/0168-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
index d8992c2..45e0646 100644
--- a/debian/patches/features/all/rt/0169-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 169/332] fs/nfs: turn rmdir_sem into a semaphore
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0a051da3f07c6d51e697793fc74eb6ccfec83e7
+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
The RW semaphore had a reader side which used the _non_owner version
because it most likely took the reader lock in one thread and released it
diff --git a/debian/patches/features/all/rt/0170-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
similarity index 98%
rename from debian/patches/features/all/rt/0170-rtmutex-Handle-the-various-new-futex-race-conditions.patch
rename to debian/patches/features/all/rt/0169-rtmutex-Handle-the-various-new-futex-race-conditions.patch
index 2feaad8..be5e018 100644
--- a/debian/patches/features/all/rt/0170-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 170/332] rtmutex: Handle the various new futex race conditions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb4c7cfa24dfa7ae7d2805ca9718678fca9ef998
+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
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/0171-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
similarity index 97%
rename from debian/patches/features/all/rt/0171-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
rename to debian/patches/features/all/rt/0170-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
index 878423d..c9f5f34 100644
--- a/debian/patches/features/all/rt/0171-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 171/332] 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=856ad3cdaf4142a6ec6c1633c15dd40938e52336
+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
Requeue with timeout causes a bug with PREEMPT_RT_FULL.
diff --git a/debian/patches/features/all/rt/0172-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
similarity index 92%
rename from debian/patches/features/all/rt/0172-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
rename to debian/patches/features/all/rt/0171-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
index cbda04e..4724ff1 100644
--- a/debian/patches/features/all/rt/0172-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 172/332] futex: Ensure lock/unlock symetry versus pi_lock and
+Subject: [PATCH 171/337] 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=73575478df5d9eae1154fea61920d976069c137c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ab0f848ef569db0049595a7e1d92b9cd4808be00
In exit_pi_state_list() we have the following locking construct:
diff --git a/debian/patches/features/all/rt/0173-pid.h-include-atomic.h.patch b/debian/patches/features/all/rt/0172-pid.h-include-atomic.h.patch
similarity index 90%
rename from debian/patches/features/all/rt/0173-pid.h-include-atomic.h.patch
rename to debian/patches/features/all/rt/0172-pid.h-include-atomic.h.patch
index f5b1f99..6c998a6 100644
--- a/debian/patches/features/all/rt/0173-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 173/332] pid.h: include atomic.h
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cc6007855b2b543f9fa0b2a6b0547ef9130c77e4
+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
This patch fixes build error:
CC kernel/pid_namespace.o
diff --git a/debian/patches/features/all/rt/0174-arm-include-definition-for-cpumask_t.patch b/debian/patches/features/all/rt/0173-arm-include-definition-for-cpumask_t.patch
similarity index 86%
rename from debian/patches/features/all/rt/0174-arm-include-definition-for-cpumask_t.patch
rename to debian/patches/features/all/rt/0173-arm-include-definition-for-cpumask_t.patch
index b70563d..b6f492b 100644
--- a/debian/patches/features/all/rt/0174-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 174/332] arm: include definition for cpumask_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4699e9ff440da7ee32efff25e8472f4e93f275a4
+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
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/0175-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
similarity index 85%
rename from debian/patches/features/all/rt/0175-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
rename to debian/patches/features/all/rt/0174-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
index 19f58eb..288afc5 100644
--- a/debian/patches/features/all/rt/0175-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 175/332] locking: locktorture: Do NOT include rwlock.h
+Subject: [PATCH 174/337] locking: locktorture: Do NOT include rwlock.h
directly
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=49e9d9625aedf6196c32f5a2f89fe0535e3111a0
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=604b10c3bd920fe58d835323298be379838b384f
Including rwlock.h directly will cause kernel builds to fail
if CONFIG_PREEMPT_RT_FULL is defined. The correct header file
@@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 1 deletion(-)
diff --git a/kernel/locking/locktorture.c b/kernel/locking/locktorture.c
-index f8c5af52a131..788068773e61 100644
+index d3de04b12f8c..0f49abeae337 100644
--- a/kernel/locking/locktorture.c
+++ b/kernel/locking/locktorture.c
@@ -26,7 +26,6 @@
diff --git a/debian/patches/features/all/rt/0176-rtmutex-Add-rtmutex_lock_killable.patch b/debian/patches/features/all/rt/0175-rtmutex-Add-rtmutex_lock_killable.patch
similarity index 93%
rename from debian/patches/features/all/rt/0176-rtmutex-Add-rtmutex_lock_killable.patch
rename to debian/patches/features/all/rt/0175-rtmutex-Add-rtmutex_lock_killable.patch
index 2bf4c41..f89cf43 100644
--- a/debian/patches/features/all/rt/0176-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 176/332] rtmutex: Add rtmutex_lock_killable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb7d5ae405ab25bbe35dde9b678a017ad44ee640
+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
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/0177-rtmutex-Make-lock_killable-work.patch b/debian/patches/features/all/rt/0176-rtmutex-Make-lock_killable-work.patch
similarity index 91%
rename from debian/patches/features/all/rt/0177-rtmutex-Make-lock_killable-work.patch
rename to debian/patches/features/all/rt/0176-rtmutex-Make-lock_killable-work.patch
index 7e1ed97..4131cdd 100644
--- a/debian/patches/features/all/rt/0177-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 177/332] rtmutex: Make lock_killable work
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=535add2005361aaf32f0c006eac0a8925fb79ca3
+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
Locking an rt mutex killable does not work because signal handling is
restricted to TASK_INTERRUPTIBLE.
diff --git a/debian/patches/features/all/rt/0178-spinlock-Split-the-lock-types-header.patch b/debian/patches/features/all/rt/0177-spinlock-Split-the-lock-types-header.patch
similarity index 97%
rename from debian/patches/features/all/rt/0178-spinlock-Split-the-lock-types-header.patch
rename to debian/patches/features/all/rt/0177-spinlock-Split-the-lock-types-header.patch
index 5c7b2eb..140d2b7 100644
--- a/debian/patches/features/all/rt/0178-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 178/332] spinlock: Split the lock types header
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0765c1b3a6a4ae69c9161344bf033983c18143e9
+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
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/0179-rtmutex-Avoid-include-hell.patch b/debian/patches/features/all/rt/0178-rtmutex-Avoid-include-hell.patch
similarity index 87%
rename from debian/patches/features/all/rt/0179-rtmutex-Avoid-include-hell.patch
rename to debian/patches/features/all/rt/0178-rtmutex-Avoid-include-hell.patch
index 3b50719..b2177d7 100644
--- a/debian/patches/features/all/rt/0179-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 179/332] rtmutex: Avoid include hell
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f864bc4ab7e1c4ef4e807793d18887da1ba57152
+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
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/0180-rbtree-don-t-include-the-rcu-header.patch b/debian/patches/features/all/rt/0179-rbtree-don-t-include-the-rcu-header.patch
similarity index 98%
rename from debian/patches/features/all/rt/0180-rbtree-don-t-include-the-rcu-header.patch
rename to debian/patches/features/all/rt/0179-rbtree-don-t-include-the-rcu-header.patch
index 6605fd2..a8a55b0 100644
--- a/debian/patches/features/all/rt/0180-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 180/332] rbtree: don't include the rcu header
+Subject: [PATCH 179/337] 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=0e1f91f026761362bcce6039315a34c8166f20f1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c1b8208c55eccaa4d68683c13885b673c8eff443
The RCU header pulls in spinlock.h and fails due not yet defined types:
diff --git a/debian/patches/features/all/rt/0181-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
similarity index 99%
rename from debian/patches/features/all/rt/0181-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
rename to debian/patches/features/all/rt/0180-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
index 4f92feb..8b41862 100644
--- a/debian/patches/features/all/rt/0181-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 181/332] rt: Add the preempt-rt lock replacement APIs
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=921d099fb1966e762d5bc22b6931eea5453e7996
+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
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 0e90644168e0..fa9c0d0ed44c 100644
+index 42c29b743057..5adfa81cf487 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/0182-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
similarity index 91%
rename from debian/patches/features/all/rt/0182-rt-Drop-mutex_disable-on-DEBUG-configs-and-the-GPL-s.patch
rename to debian/patches/features/all/rt/0181-rt-Drop-mutex_disable-on-DEBUG-configs-and-the-GPL-s.patch
index e342317..a175b51 100644
--- a/debian/patches/features/all/rt/0182-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 182/332] rt: Drop mutex_disable() on !DEBUG configs and the
+Subject: [PATCH 181/337] 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=abd0cb0270c20288f29afbdbb76aeda7ed3a2aa1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8b2ec6b65014553eead45460ba78fef2b4d5d24
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/0183-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
similarity index 95%
rename from debian/patches/features/all/rt/0183-kernel-locking-use-an-exclusive-wait_q-for-sleepers.patch
rename to debian/patches/features/all/rt/0182-kernel-locking-use-an-exclusive-wait_q-for-sleepers.patch
index d0fa57d..d2f72d5 100644
--- a/debian/patches/features/all/rt/0183-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 183/332] kernel/locking: use an exclusive wait_q for sleepers
+Subject: [PATCH 182/337] 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=734036723dd48ad6013c01126d7d696091601de1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cc4aecb0f1612bd70442581811193a2a66eebc3d
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
@@ -78,7 +78,7 @@ index 0fc34f29f28c..7cc3ab932a7e 100644
#ifdef CONFIG_RT_MUTEXES
/* PI waiters blocked on a rt_mutex held by this task */
diff --git a/kernel/fork.c b/kernel/fork.c
-index 6bd05d522c04..d2759432a50c 100644
+index 11fa53573d26..276acd8acf0a 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -558,6 +558,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node)
@@ -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 fa9c0d0ed44c..e9fecb7b5cfa 100644
+index 5adfa81cf487..1f81517d9133 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/0184-rtmutex-Add-RT-aware-ww-locks.patch b/debian/patches/features/all/rt/0183-rtmutex-Add-RT-aware-ww-locks.patch
similarity index 99%
rename from debian/patches/features/all/rt/0184-rtmutex-Add-RT-aware-ww-locks.patch
rename to debian/patches/features/all/rt/0183-rtmutex-Add-RT-aware-ww-locks.patch
index 3be67d3..dc39528 100644
--- a/debian/patches/features/all/rt/0184-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 184/332] rtmutex: Add RT aware ww locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=428880d9c09df4952ec7cfd4c293a71ee2d07ca0
+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
lockdep says:
| --------------------------------------------------------------------------
diff --git a/debian/patches/features/all/rt/0185-rtmutex-Provide-rt_mutex_lock_state.patch b/debian/patches/features/all/rt/0184-rtmutex-Provide-rt_mutex_lock_state.patch
similarity index 96%
rename from debian/patches/features/all/rt/0185-rtmutex-Provide-rt_mutex_lock_state.patch
rename to debian/patches/features/all/rt/0184-rtmutex-Provide-rt_mutex_lock_state.patch
index 2719c87..530aee9 100644
--- a/debian/patches/features/all/rt/0185-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 185/332] rtmutex: Provide rt_mutex_lock_state()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ee41b29a56dad3e4354705875e69c8acd4e4354
+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
Allow rtmutex to be locked with arbitrary states. Preparatory patch for the
rt rwsem rework.
diff --git a/debian/patches/features/all/rt/0186-rtmutex-Provide-locked-slowpath.patch b/debian/patches/features/all/rt/0185-rtmutex-Provide-locked-slowpath.patch
similarity index 97%
rename from debian/patches/features/all/rt/0186-rtmutex-Provide-locked-slowpath.patch
rename to debian/patches/features/all/rt/0185-rtmutex-Provide-locked-slowpath.patch
index 7876bde..92c2d7f 100644
--- a/debian/patches/features/all/rt/0186-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 186/332] rtmutex: Provide locked slowpath
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c7527201f5b6f4c514f5324d680f7ffd62b75ee9
+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
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/0187-futex-rtmutex-Cure-RT-double-blocking-issue.patch b/debian/patches/features/all/rt/0186-futex-rtmutex-Cure-RT-double-blocking-issue.patch
similarity index 94%
rename from debian/patches/features/all/rt/0187-futex-rtmutex-Cure-RT-double-blocking-issue.patch
rename to debian/patches/features/all/rt/0186-futex-rtmutex-Cure-RT-double-blocking-issue.patch
index d2e8b19..95faa0a 100644
--- a/debian/patches/features/all/rt/0187-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 187/332] futex/rtmutex: Cure RT double blocking issue
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b93a91ba38c116e1a3c8a5a60a134c431b2f3107
+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
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/0188-rwsem-rt-Lift-single-reader-restriction.patch b/debian/patches/features/all/rt/0187-rwsem-rt-Lift-single-reader-restriction.patch
similarity index 99%
rename from debian/patches/features/all/rt/0188-rwsem-rt-Lift-single-reader-restriction.patch
rename to debian/patches/features/all/rt/0187-rwsem-rt-Lift-single-reader-restriction.patch
index 950fe05..e860e17 100644
--- a/debian/patches/features/all/rt/0188-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 188/332] rwsem/rt: Lift single reader restriction
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f9c7af115e698da5718925a929d8f22a57e58e07
+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
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/0189-ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/debian/patches/features/all/rt/0188-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
similarity index 93%
rename from debian/patches/features/all/rt/0189-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
rename to debian/patches/features/all/rt/0188-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
index 92893f0..75a47b6 100644
--- a/debian/patches/features/all/rt/0189-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 189/332] ptrace: fix ptrace vs tasklist_lock race
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=050c1b58d34ed1448911cffe5c1afa98762f40be
+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
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 e9fecb7b5cfa..45aa5d4f1485 100644
+index 1f81517d9133..0f42bc89d391 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -1396,6 +1396,18 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p)
+@@ -1397,6 +1397,18 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p)
return ret;
}
@@ -139,7 +139,7 @@ index e9fecb7b5cfa..45aa5d4f1485 100644
/*
* wait_task_inactive - wait for a thread to unschedule.
*
-@@ -1440,7 +1452,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
+@@ -1441,7 +1453,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 e9fecb7b5cfa..45aa5d4f1485 100644
return 0;
cpu_relax();
}
-@@ -1455,7 +1467,8 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
+@@ -1456,7 +1468,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/0190-rcu-Frob-softirq-test.patch b/debian/patches/features/all/rt/0189-rcu-Frob-softirq-test.patch
similarity index 98%
rename from debian/patches/features/all/rt/0190-rcu-Frob-softirq-test.patch
rename to debian/patches/features/all/rt/0189-rcu-Frob-softirq-test.patch
index 8bd7d7f..ffb9003 100644
--- a/debian/patches/features/all/rt/0190-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 190/332] rcu: Frob softirq test
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37c3a9fc3d0ea70daf7589f8574bacf6c1a7ccd8
+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
With RT_FULL we get the below wreckage:
diff --git a/debian/patches/features/all/rt/0191-rcu-Merge-RCU-bh-into-RCU-preempt.patch b/debian/patches/features/all/rt/0190-rcu-Merge-RCU-bh-into-RCU-preempt.patch
similarity index 95%
rename from debian/patches/features/all/rt/0191-rcu-Merge-RCU-bh-into-RCU-preempt.patch
rename to debian/patches/features/all/rt/0190-rcu-Merge-RCU-bh-into-RCU-preempt.patch
index 246ad41..b1a1eaf 100644
--- a/debian/patches/features/all/rt/0191-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 191/332] rcu: Merge RCU-bh into RCU-preempt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=915b977d15546c2d9f29c4817b92214ded003593
+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
The Linux kernel has long RCU-bh read-side critical sections that
intolerably increase scheduling latency under mainline's RCU-bh rules,
@@ -200,7 +200,7 @@ index bf08fee53dc7..eeb8ce4ad7b6 100644
* Don't even think about trying any of these in real life!!!
* The names includes "busted", and they really means it!
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
-index 10f62c6f48e7..2cb41686a4b8 100644
+index d1a02877a42c..2653613b6dc3 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -260,6 +260,7 @@ void rcu_sched_qs(void)
@@ -283,7 +283,7 @@ index 10f62c6f48e7..2cb41686a4b8 100644
case RCU_SCHED_FLAVOR:
rsp = &rcu_sched_state;
break;
-@@ -3195,6 +3211,7 @@ void call_rcu_sched(struct rcu_head *head, rcu_callback_t func)
+@@ -3205,6 +3221,7 @@ void call_rcu_sched(struct rcu_head *head, rcu_callback_t func)
}
EXPORT_SYMBOL_GPL(call_rcu_sched);
@@ -291,7 +291,7 @@ index 10f62c6f48e7..2cb41686a4b8 100644
/*
* Queue an RCU callback for invocation after a quicker grace period.
*/
-@@ -3203,6 +3220,7 @@ void call_rcu_bh(struct rcu_head *head, rcu_callback_t func)
+@@ -3213,6 +3230,7 @@ void call_rcu_bh(struct rcu_head *head, rcu_callback_t func)
__call_rcu(head, func, &rcu_bh_state, -1, 0);
}
EXPORT_SYMBOL_GPL(call_rcu_bh);
@@ -299,7 +299,7 @@ index 10f62c6f48e7..2cb41686a4b8 100644
/*
* Queue an RCU callback for lazy invocation after a grace period.
-@@ -3294,6 +3312,7 @@ void synchronize_sched(void)
+@@ -3304,6 +3322,7 @@ void synchronize_sched(void)
}
EXPORT_SYMBOL_GPL(synchronize_sched);
@@ -307,7 +307,7 @@ index 10f62c6f48e7..2cb41686a4b8 100644
/**
* synchronize_rcu_bh - wait until an rcu_bh grace period has elapsed.
*
-@@ -3320,6 +3339,7 @@ void synchronize_rcu_bh(void)
+@@ -3330,6 +3349,7 @@ void synchronize_rcu_bh(void)
wait_rcu_gp(call_rcu_bh);
}
EXPORT_SYMBOL_GPL(synchronize_rcu_bh);
@@ -315,7 +315,7 @@ index 10f62c6f48e7..2cb41686a4b8 100644
/**
* get_state_synchronize_rcu - Snapshot current RCU state
-@@ -3698,6 +3718,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
+@@ -3708,6 +3728,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
mutex_unlock(&rsp->barrier_mutex);
}
@@ -323,7 +323,7 @@ index 10f62c6f48e7..2cb41686a4b8 100644
/**
* rcu_barrier_bh - Wait until all in-flight call_rcu_bh() callbacks complete.
*/
-@@ -3706,6 +3727,7 @@ void rcu_barrier_bh(void)
+@@ -3716,6 +3737,7 @@ void rcu_barrier_bh(void)
_rcu_barrier(&rcu_bh_state);
}
EXPORT_SYMBOL_GPL(rcu_barrier_bh);
@@ -331,7 +331,7 @@ index 10f62c6f48e7..2cb41686a4b8 100644
/**
* rcu_barrier_sched - Wait for in-flight call_rcu_sched() callbacks.
-@@ -4227,7 +4249,9 @@ void __init rcu_init(void)
+@@ -4237,7 +4259,9 @@ void __init rcu_init(void)
rcu_bootup_announce();
rcu_init_geometry();
diff --git a/debian/patches/features/all/rt/0192-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch b/debian/patches/features/all/rt/0191-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
similarity index 95%
rename from debian/patches/features/all/rt/0192-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
rename to debian/patches/features/all/rt/0191-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
index d44b69d..b0135ea 100644
--- a/debian/patches/features/all/rt/0192-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 192/332] rcu: Make ksoftirqd do RCU quiescent states
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3d558d8ee4bc48c4805e23d1eca22a0e3158f4ef
+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
Implementing RCU-bh in terms of RCU-preempt makes the system vulnerable
to network-based denial-of-service attacks. This patch therefore
@@ -45,7 +45,7 @@ index c19c71196f71..30cc001d0d5a 100644
void rcu_report_dead(unsigned int cpu);
void rcu_cpu_starting(unsigned int cpu);
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
-index 2cb41686a4b8..984ecb7a83e0 100644
+index 2653613b6dc3..b33efec45353 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -260,7 +260,14 @@ void rcu_sched_qs(void)
diff --git a/debian/patches/features/all/rt/0193-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
similarity index 89%
rename from debian/patches/features/all/rt/0193-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch
rename to debian/patches/features/all/rt/0192-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch
index d8f695f..68b940f 100644
--- a/debian/patches/features/all/rt/0193-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 193/332] rcutree/rcu_bh_qs: Disable irq while calling
+Subject: [PATCH 192/337] 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=cd489c7c2acca7adafcc38b79e6837061b90d077
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d70ca14fad24820b5548528b1f65c91032f2244f
Any callers to the function rcu_preempt_qs() must disable irqs in
order to protect the assignment to ->rcu_read_unlock_special. In
@@ -34,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 5 insertions(+)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
-index 984ecb7a83e0..7e423f05056f 100644
+index b33efec45353..dc5638f86744 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -265,7 +265,12 @@ static void rcu_preempt_qs(void);
diff --git a/debian/patches/features/all/rt/0194-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
similarity index 91%
rename from debian/patches/features/all/rt/0194-tty-serial-omap-Make-the-locking-RT-aware.patch
rename to debian/patches/features/all/rt/0193-tty-serial-omap-Make-the-locking-RT-aware.patch
index 702dd44..822df60 100644
--- a/debian/patches/features/all/rt/0194-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 194/332] tty/serial/omap: Make the locking RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=261e3612d7c52bade0e80f375bb77b694710ef36
+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
The lock is a sleeping lock and local_irq_save() is not the
optimsation we are looking for. Redo it to make it work on -RT and
diff --git a/debian/patches/features/all/rt/0195-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
similarity index 92%
rename from debian/patches/features/all/rt/0195-tty-serial-pl011-Make-the-locking-work-on-RT.patch
rename to debian/patches/features/all/rt/0194-tty-serial-pl011-Make-the-locking-work-on-RT.patch
index 2ff8e1a..872bd1c 100644
--- a/debian/patches/features/all/rt/0195-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 195/332] 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=c2b92d74e6e160ebdbb77768e88ae70982609af1
+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
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/0196-rt-Improve-the-serial-console-PASS_LIMIT.patch b/debian/patches/features/all/rt/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch
similarity index 91%
rename from debian/patches/features/all/rt/0196-rt-Improve-the-serial-console-PASS_LIMIT.patch
rename to debian/patches/features/all/rt/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch
index 87ef3a4..ab82ef9 100644
--- a/debian/patches/features/all/rt/0196-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 196/332] rt: Improve the serial console PASS_LIMIT
+Subject: [PATCH 195/337] 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=a6296fa72040073a00d958d25f2d3f97ee27f0a6
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d34927c29470dad5cdee172fafb2c6101d56c91
Beyond the warning:
diff --git a/debian/patches/features/all/rt/0197-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
similarity index 80%
rename from debian/patches/features/all/rt/0197-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
rename to debian/patches/features/all/rt/0196-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
index a3015f2..d74a70c 100644
--- a/debian/patches/features/all/rt/0197-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 197/332] 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=a4f1ceda69ee0639af4d28187b3d755c7724710b
+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
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 f24d3030b98c..679d08bc6d25 100644
+index 1ef31e3ee4a1..105bbc01b4e9 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
-@@ -3144,10 +3144,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
+@@ -3140,10 +3140,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/0198-wait.h-include-atomic.h.patch b/debian/patches/features/all/rt/0197-wait.h-include-atomic.h.patch
similarity index 92%
rename from debian/patches/features/all/rt/0198-wait.h-include-atomic.h.patch
rename to debian/patches/features/all/rt/0197-wait.h-include-atomic.h.patch
index f080978..6daca2c 100644
--- a/debian/patches/features/all/rt/0198-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 198/332] wait.h: include atomic.h
+Subject: [PATCH 197/337] 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=60d6490aa422aa70f70ed8a2e74ed7941483953c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b62ec12490d6ef73d3335599e55ed1a392e26112
| CC init/main.o
|In file included from include/linux/mmzone.h:9:0,
diff --git a/debian/patches/features/all/rt/0199-work-simple-Simple-work-queue-implemenation.patch b/debian/patches/features/all/rt/0198-work-simple-Simple-work-queue-implemenation.patch
similarity index 97%
rename from debian/patches/features/all/rt/0199-work-simple-Simple-work-queue-implemenation.patch
rename to debian/patches/features/all/rt/0198-work-simple-Simple-work-queue-implemenation.patch
index e9937a4..35d31fe 100644
--- a/debian/patches/features/all/rt/0199-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 199/332] work-simple: Simple work queue implemenation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=26247500ebabfcfea1f2ed60b0138b3a369eb07d
+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
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/0200-completion-Use-simple-wait-queues.patch b/debian/patches/features/all/rt/0199-completion-Use-simple-wait-queues.patch
similarity index 96%
rename from debian/patches/features/all/rt/0200-completion-Use-simple-wait-queues.patch
rename to debian/patches/features/all/rt/0199-completion-Use-simple-wait-queues.patch
index fd7a865..d18ff06 100644
--- a/debian/patches/features/all/rt/0200-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 200/332] completion: Use simple wait queues
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=084a9f8570f41b28d514a55b73e526923342fd8e
+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
Completions have no long lasting callbacks and therefor do not need
the complex waitqueue variant. Use simple waitqueues which reduces the
@@ -50,10 +50,10 @@ index f9c99803a43d..e7adb023b921 100644
kfree(ffs);
}
diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c
-index f959c42ecace..65cced5e01da 100644
+index f69dbd4bcd18..3b7638322f9f 100644
--- a/drivers/usb/gadget/legacy/inode.c
+++ b/drivers/usb/gadget/legacy/inode.c
-@@ -346,7 +346,7 @@ ep_io (struct ep_data *epdata, void *buf, unsigned len)
+@@ -347,7 +347,7 @@ ep_io (struct ep_data *epdata, void *buf, unsigned len)
spin_unlock_irq (&epdata->dev->lock);
if (likely (value == 0)) {
@@ -62,7 +62,7 @@ index f959c42ecace..65cced5e01da 100644
if (value != 0) {
spin_lock_irq (&epdata->dev->lock);
if (likely (epdata->ep != NULL)) {
-@@ -355,7 +355,7 @@ ep_io (struct ep_data *epdata, void *buf, unsigned len)
+@@ -356,7 +356,7 @@ ep_io (struct ep_data *epdata, void *buf, unsigned len)
usb_ep_dequeue (epdata->ep, epdata->req);
spin_unlock_irq (&epdata->dev->lock);
@@ -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 45aa5d4f1485..c4dc9671d777 100644
+index 0f42bc89d391..fe7a7a8353cc 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3335,7 +3335,10 @@ void migrate_disable(void)
+@@ -3336,7 +3336,10 @@ void migrate_disable(void)
}
#ifdef CONFIG_SCHED_DEBUG
@@ -321,7 +321,7 @@ index 45aa5d4f1485..c4dc9671d777 100644
#endif
if (p->migrate_disable) {
-@@ -3362,7 +3365,10 @@ void migrate_enable(void)
+@@ -3363,7 +3366,10 @@ void migrate_enable(void)
}
#ifdef CONFIG_SCHED_DEBUG
diff --git a/debian/patches/features/all/rt/0201-fs-aio-simple-simple-work.patch b/debian/patches/features/all/rt/0200-fs-aio-simple-simple-work.patch
similarity index 96%
rename from debian/patches/features/all/rt/0201-fs-aio-simple-simple-work.patch
rename to debian/patches/features/all/rt/0200-fs-aio-simple-simple-work.patch
index 0e8dc3a..992f7b7 100644
--- a/debian/patches/features/all/rt/0201-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 201/332] fs/aio: simple simple work
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f3891fddc3118b9d9c2ec9e17c726a2820ab738f
+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
|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/0202-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
similarity index 97%
rename from debian/patches/features/all/rt/0202-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch
rename to debian/patches/features/all/rt/0201-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch
index 7ed718b..a1bab94 100644
--- a/debian/patches/features/all/rt/0202-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 202/332] genirq: Do not invoke the affinity callback via a
+Subject: [PATCH 201/337] 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=73a0f888cb2e1e940adcbc4a5448f978bdcfd39c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c8f2280b172185fcaa3ec345a2a6394ca78df2e2
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/0203-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
similarity index 91%
rename from debian/patches/features/all/rt/0203-hrtimer-Move-schedule_work-call-to-helper-thread.patch
rename to debian/patches/features/all/rt/0202-hrtimer-Move-schedule_work-call-to-helper-thread.patch
index 3553a00..5e4e0ec 100644
--- a/debian/patches/features/all/rt/0203-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 203/332] hrtimer: Move schedule_work call to helper thread
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e0c544411846e84dd5acbdd47afa4f9d7041a221
+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
When run ltp leapsec_timer test, the following call trace is caught:
@@ -51,10 +51,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 24 insertions(+)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 3d3c7c7f93a6..8d406733108a 100644
+index 0ac7cd65a163..4bd08d62151d 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
-@@ -696,6 +696,29 @@ static void hrtimer_switch_to_hres(void)
+@@ -694,6 +694,29 @@ static void hrtimer_switch_to_hres(void)
retrigger_next_event(NULL);
}
@@ -84,7 +84,7 @@ index 3d3c7c7f93a6..8d406733108a 100644
static void clock_was_set_work(struct work_struct *work)
{
clock_was_set();
-@@ -711,6 +734,7 @@ void clock_was_set_delayed(void)
+@@ -709,6 +732,7 @@ void clock_was_set_delayed(void)
{
schedule_work(&hrtimer_work);
}
diff --git a/debian/patches/features/all/rt/0204-locking-percpu-rwsem-Remove-preempt_disable-variants.patch b/debian/patches/features/all/rt/0203-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
similarity index 98%
rename from debian/patches/features/all/rt/0204-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
rename to debian/patches/features/all/rt/0203-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
index da092e1..5d38bd2 100644
--- a/debian/patches/features/all/rt/0204-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 204/332] locking/percpu-rwsem: Remove preempt_disable variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0b18e96707d53b05f2d7884db953f603bdb6fdd6
+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
Effective revert commit:
diff --git a/debian/patches/features/all/rt/0205-fs-namespace-preemption-fix.patch b/debian/patches/features/all/rt/0204-fs-namespace-preemption-fix.patch
similarity index 90%
rename from debian/patches/features/all/rt/0205-fs-namespace-preemption-fix.patch
rename to debian/patches/features/all/rt/0204-fs-namespace-preemption-fix.patch
index ed502aa..0adbd48 100644
--- a/debian/patches/features/all/rt/0205-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 205/332] fs: namespace preemption fix
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=52cf51c039829aadecab2392f3cc51877b734aa6
+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
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/0206-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
similarity index 96%
rename from debian/patches/features/all/rt/0206-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
rename to debian/patches/features/all/rt/0205-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
index a578f13..d1278b1 100644
--- a/debian/patches/features/all/rt/0206-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 206/332] mm: Protect activate_mm() by
+Subject: [PATCH 205/337] 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=854686b765ea2a530b0e9d965afa87ee7ec88bf5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=784496562a468d9aefdd3859b7ff656cea5922ab
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/0207-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
similarity index 70%
rename from debian/patches/features/all/rt/0207-block-Turn-off-warning-which-is-bogus-on-RT.patch
rename to debian/patches/features/all/rt/0206-block-Turn-off-warning-which-is-bogus-on-RT.patch
index ed7ba77..541f376 100644
--- a/debian/patches/features/all/rt/0207-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 207/332] 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=7504c7a2e0d7d82968bedb8c7d0d42c7ebf80550
+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
On -RT the context is always with IRQs enabled. Ignore this warning on -RT.
@@ -11,15 +11,15 @@ 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 5174ef3d7580..320f60bd8e5d 100644
+index a6bbeb48495b..8477b6e281df 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -233,7 +233,7 @@ EXPORT_SYMBOL(blk_start_queue_async);
**/
void blk_start_queue(struct request_queue *q)
{
-- WARN_ON(!irqs_disabled());
-+ WARN_ON_NONRT(!irqs_disabled());
+- WARN_ON(!in_interrupt() && !irqs_disabled());
++ WARN_ON_NONRT(!in_interrupt() && !irqs_disabled());
queue_flag_clear(QUEUE_FLAG_STOPPED, q);
__blk_run_queue(q);
diff --git a/debian/patches/features/all/rt/0208-fs-ntfs-disable-interrupt-only-on-RT.patch b/debian/patches/features/all/rt/0207-fs-ntfs-disable-interrupt-only-on-RT.patch
similarity index 95%
rename from debian/patches/features/all/rt/0208-fs-ntfs-disable-interrupt-only-on-RT.patch
rename to debian/patches/features/all/rt/0207-fs-ntfs-disable-interrupt-only-on-RT.patch
index 30c7880..cb0091c 100644
--- a/debian/patches/features/all/rt/0208-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 208/332] fs: ntfs: disable interrupt only on !RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8789cff19bb69ebf50b1e98c407739a856629648
+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
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/0209-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
similarity index 90%
rename from debian/patches/features/all/rt/0209-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
rename to debian/patches/features/all/rt/0208-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
index a02929f..071ff52 100644
--- a/debian/patches/features/all/rt/0209-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 209/332] 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=b2b313a474dfd35f5b5b0e033f2650e43aade78f
+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
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/0210-x86-Convert-mce-timer-to-hrtimer.patch b/debian/patches/features/all/rt/0209-x86-Convert-mce-timer-to-hrtimer.patch
similarity index 97%
rename from debian/patches/features/all/rt/0210-x86-Convert-mce-timer-to-hrtimer.patch
rename to debian/patches/features/all/rt/0209-x86-Convert-mce-timer-to-hrtimer.patch
index 73738a8..0187166 100644
--- a/debian/patches/features/all/rt/0210-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 210/332] x86: Convert mce timer to hrtimer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aff42d573b24cc8a108827fe0626db247660d633
+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
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/0211-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
similarity index 97%
rename from debian/patches/features/all/rt/0211-x86-mce-use-swait-queue-for-mce-wakeups.patch
rename to debian/patches/features/all/rt/0210-x86-mce-use-swait-queue-for-mce-wakeups.patch
index 0ee1ec8..2c9a775 100644
--- a/debian/patches/features/all/rt/0211-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 211/332] x86/mce: use swait queue for mce wakeups
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4228f9e9ed4f9d94728a45a838d17e46108fa767
+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
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/0212-x86-stackprotector-Avoid-random-pool-on-rt.patch b/debian/patches/features/all/rt/0211-x86-stackprotector-Avoid-random-pool-on-rt.patch
similarity index 93%
rename from debian/patches/features/all/rt/0212-x86-stackprotector-Avoid-random-pool-on-rt.patch
rename to debian/patches/features/all/rt/0211-x86-stackprotector-Avoid-random-pool-on-rt.patch
index 334ede0..b231917 100644
--- a/debian/patches/features/all/rt/0212-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 212/332] x86: stackprotector: Avoid random pool on rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0265f5eab9814257930f841768f824a09cc67076
+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
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/0213-x86-Use-generic-rwsem_spinlocks-on-rt.patch b/debian/patches/features/all/rt/0212-x86-Use-generic-rwsem_spinlocks-on-rt.patch
similarity index 86%
rename from debian/patches/features/all/rt/0213-x86-Use-generic-rwsem_spinlocks-on-rt.patch
rename to debian/patches/features/all/rt/0212-x86-Use-generic-rwsem_spinlocks-on-rt.patch
index 8558e66..9005afa 100644
--- a/debian/patches/features/all/rt/0213-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 213/332] x86: Use generic rwsem_spinlocks on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d47c1877c4967961a9ef4cc3aceb16a1e1b1a16e
+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
Simplifies the separation of anon_rw_semaphores and rw_semaphores for
-rt.
diff --git a/debian/patches/features/all/rt/0214-x86-UV-raw_spinlock-conversion.patch b/debian/patches/features/all/rt/0213-x86-UV-raw_spinlock-conversion.patch
similarity index 98%
rename from debian/patches/features/all/rt/0214-x86-UV-raw_spinlock-conversion.patch
rename to debian/patches/features/all/rt/0213-x86-UV-raw_spinlock-conversion.patch
index 84058b8..b89e3ea 100644
--- a/debian/patches/features/all/rt/0214-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 214/332] x86: UV: raw_spinlock conversion
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=068b277285a64610d37b448e8f908b8f8a36f84c
+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
Shrug. Lots of hobbyists have a beast in their basement, right?
diff --git a/debian/patches/features/all/rt/0215-thermal-Defer-thermal-wakups-to-threads.patch b/debian/patches/features/all/rt/0214-thermal-Defer-thermal-wakups-to-threads.patch
similarity index 97%
rename from debian/patches/features/all/rt/0215-thermal-Defer-thermal-wakups-to-threads.patch
rename to debian/patches/features/all/rt/0214-thermal-Defer-thermal-wakups-to-threads.patch
index db7d09f..5cacb42 100644
--- a/debian/patches/features/all/rt/0215-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 215/332] thermal: Defer thermal wakups to threads
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6772d596049fa4702d84826a5ab94bde370914c5
+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
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/0216-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
similarity index 85%
rename from debian/patches/features/all/rt/0216-fs-epoll-Do-not-disable-preemption-on-RT.patch
rename to debian/patches/features/all/rt/0215-fs-epoll-Do-not-disable-preemption-on-RT.patch
index f618ff5..762331f 100644
--- a/debian/patches/features/all/rt/0216-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 216/332] fs/epoll: Do not disable preemption on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ec0c01b42424aa138f5ec3ad576e449880aa7ec0
+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
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
@@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
-index 10db91218933..42af0a06f657 100644
+index 3cbc30413add..41a94f552aab 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -510,12 +510,12 @@ static int ep_poll_wakeup_proc(void *priv, void *cookie, int call_nests)
diff --git a/debian/patches/features/all/rt/0217-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
similarity index 93%
rename from debian/patches/features/all/rt/0217-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
rename to debian/patches/features/all/rt/0216-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
index 4fe79c0..5f05768 100644
--- a/debian/patches/features/all/rt/0217-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 217/332] mm/vmalloc: Another preempt disable region which
+Subject: [PATCH 216/337] mm/vmalloc: Another preempt disable region which
sucks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e7a13b263f0e79d07ae6e20138ea0dc79a94839b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cfe7f3ceedcdb0dc260dc8c831901d4f02d71cdc
Avoid the preempt disable version of get_cpu_var(). The inner-lock should
provide enough serialisation.
diff --git a/debian/patches/features/all/rt/0218-block-mq-use-cpu_light.patch b/debian/patches/features/all/rt/0217-block-mq-use-cpu_light.patch
similarity index 89%
rename from debian/patches/features/all/rt/0218-block-mq-use-cpu_light.patch
rename to debian/patches/features/all/rt/0217-block-mq-use-cpu_light.patch
index fd0ca6c..b71b37b 100644
--- a/debian/patches/features/all/rt/0218-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 218/332] block: mq: use cpu_light()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b21e6b4ebb3d6de04f84365fc3f79d010f16a95
+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
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/0219-block-mq-do-not-invoke-preempt_disable.patch b/debian/patches/features/all/rt/0218-block-mq-do-not-invoke-preempt_disable.patch
similarity index 92%
rename from debian/patches/features/all/rt/0219-block-mq-do-not-invoke-preempt_disable.patch
rename to debian/patches/features/all/rt/0218-block-mq-do-not-invoke-preempt_disable.patch
index b6e3f76..7a9d720 100644
--- a/debian/patches/features/all/rt/0219-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 219/332] block/mq: do not invoke preempt_disable()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5874a585c7450e9967ea47299265c974cdf32967
+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
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/0220-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
similarity index 95%
rename from debian/patches/features/all/rt/0220-block-mq-don-t-complete-requests-via-IPI.patch
rename to debian/patches/features/all/rt/0219-block-mq-don-t-complete-requests-via-IPI.patch
index aa8cc05..d863150 100644
--- a/debian/patches/features/all/rt/0220-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 220/332] block/mq: don't complete requests via IPI
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b1196d444d5c74c29b3b899c1139b765fa83ff92
+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
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 320f60bd8e5d..4334a5f8ae79 100644
+index 8477b6e281df..f3537ddd3c0b 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/0221-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
similarity index 83%
rename from debian/patches/features/all/rt/0221-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
rename to debian/patches/features/all/rt/0220-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
index ba03504..171ed10 100644
--- a/debian/patches/features/all/rt/0221-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 221/332] md: raid5: Make raid5_percpu handling RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5a0992e34205d4d04ebe71534c0021a5892afab8
+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
__raid_run_ops() disables preemption with get_cpu() around the access
to the raid5_percpu variables. That causes scheduling while atomic
@@ -19,10 +19,10 @@ Tested-by: Udo van den Heuvel <udovdh at xs4all.nl>
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index 383f19c6bf24..82235409176c 100644
+index 7aea0221530c..4d8cfce1de86 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
-@@ -1928,8 +1928,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
+@@ -1934,8 +1934,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
struct raid5_percpu *percpu;
unsigned long cpu;
@@ -33,7 +33,7 @@ index 383f19c6bf24..82235409176c 100644
if (test_bit(STRIPE_OP_BIOFILL, &ops_request)) {
ops_run_biofill(sh);
overlap_clear++;
-@@ -1985,7 +1986,8 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
+@@ -1991,7 +1992,8 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
if (test_and_clear_bit(R5_Overlap, &dev->flags))
wake_up(&sh->raid_conf->wait_for_overlap);
}
@@ -43,7 +43,7 @@ index 383f19c6bf24..82235409176c 100644
}
static struct stripe_head *alloc_stripe(struct kmem_cache *sc, gfp_t gfp,
-@@ -6398,6 +6400,7 @@ static int raid456_cpu_up_prepare(unsigned int cpu, struct hlist_node *node)
+@@ -6407,6 +6409,7 @@ static int raid456_cpu_up_prepare(unsigned int cpu, struct hlist_node *node)
__func__, cpu);
return -ENOMEM;
}
@@ -51,7 +51,7 @@ index 383f19c6bf24..82235409176c 100644
return 0;
}
-@@ -6408,7 +6411,6 @@ static int raid5_alloc_percpu(struct r5conf *conf)
+@@ -6417,7 +6420,6 @@ static int raid5_alloc_percpu(struct r5conf *conf)
conf->percpu = alloc_percpu(struct raid5_percpu);
if (!conf->percpu)
return -ENOMEM;
diff --git a/debian/patches/features/all/rt/0222-rt-Introduce-cpu_chill.patch b/debian/patches/features/all/rt/0221-rt-Introduce-cpu_chill.patch
similarity index 96%
rename from debian/patches/features/all/rt/0222-rt-Introduce-cpu_chill.patch
rename to debian/patches/features/all/rt/0221-rt-Introduce-cpu_chill.patch
index 6e04d8f..c47260d 100644
--- a/debian/patches/features/all/rt/0222-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 222/332] rt: Introduce cpu_chill()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dce81c7e29bbb820bfd2dbbfbca636f5ce78c0ab
+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
Retry loops on RT might loop forever when the modifying side was
preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill()
@@ -102,10 +102,10 @@ index a6ecb34cf547..37caab306336 100644
+
#endif /* defined(_LINUX_DELAY_H) */
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 8d406733108a..bd54f1c56dc0 100644
+index 4bd08d62151d..73b62329b722 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
-@@ -1768,6 +1768,25 @@ SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
+@@ -1778,6 +1778,25 @@ SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
return hrtimer_nanosleep(&tu, rmtp, HRTIMER_MODE_REL, CLOCK_MONOTONIC);
}
diff --git a/debian/patches/features/all/rt/0223-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch b/debian/patches/features/all/rt/0222-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch
similarity index 87%
rename from debian/patches/features/all/rt/0223-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch
rename to debian/patches/features/all/rt/0222-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch
index 3cdadf3..98ded7a 100644
--- a/debian/patches/features/all/rt/0223-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 223/332] cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa1d6f73a65438668bc4eeb0b20568c8aae406e1
+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
We hit another bug that was caused by switching cpu_chill() from
msleep() to hrtimer_nanosleep().
@@ -33,10 +33,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index bd54f1c56dc0..8338b14ed3a3 100644
+index 73b62329b722..0797bd6eadb4 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
-@@ -1649,12 +1649,13 @@ void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task)
+@@ -1659,12 +1659,13 @@ void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task)
}
EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
@@ -52,7 +52,7 @@ index bd54f1c56dc0..8338b14ed3a3 100644
hrtimer_start_expires(&t->timer, mode);
if (likely(t->task))
-@@ -1696,7 +1697,8 @@ long __sched hrtimer_nanosleep_restart(struct restart_block *restart)
+@@ -1706,7 +1707,8 @@ long __sched hrtimer_nanosleep_restart(struct restart_block *restart)
HRTIMER_MODE_ABS);
hrtimer_set_expires_tv64(&t.timer, restart->nanosleep.expires);
@@ -62,7 +62,7 @@ index bd54f1c56dc0..8338b14ed3a3 100644
goto out;
rmtp = restart->nanosleep.rmtp;
-@@ -1713,8 +1715,10 @@ long __sched hrtimer_nanosleep_restart(struct restart_block *restart)
+@@ -1723,8 +1725,10 @@ long __sched hrtimer_nanosleep_restart(struct restart_block *restart)
return ret;
}
@@ -75,7 +75,7 @@ index bd54f1c56dc0..8338b14ed3a3 100644
{
struct restart_block *restart;
struct hrtimer_sleeper t;
-@@ -1727,7 +1731,7 @@ long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
+@@ -1737,7 +1741,7 @@ long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
hrtimer_init_on_stack(&t.timer, clockid, mode);
hrtimer_set_expires_range_ns(&t.timer, timespec_to_ktime(*rqtp), slack);
@@ -84,7 +84,7 @@ index bd54f1c56dc0..8338b14ed3a3 100644
goto out;
/* Absolute timers do not update the rmtp value and restart: */
-@@ -1754,6 +1758,12 @@ long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
+@@ -1764,6 +1768,12 @@ long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
return ret;
}
@@ -97,7 +97,7 @@ index bd54f1c56dc0..8338b14ed3a3 100644
SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
struct timespec __user *, rmtp)
{
-@@ -1780,7 +1790,8 @@ void cpu_chill(void)
+@@ -1790,7 +1800,8 @@ void cpu_chill(void)
unsigned int freeze_flag = current->flags & PF_NOFREEZE;
current->flags |= PF_NOFREEZE;
diff --git a/debian/patches/features/all/rt/0224-block-blk-mq-Use-swait.patch b/debian/patches/features/all/rt/0223-block-blk-mq-Use-swait.patch
similarity index 96%
rename from debian/patches/features/all/rt/0224-block-blk-mq-Use-swait.patch
rename to debian/patches/features/all/rt/0223-block-blk-mq-Use-swait.patch
index 1af3c61..e8068a9 100644
--- a/debian/patches/features/all/rt/0224-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 224/332] block: blk-mq: Use swait
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=402151f37e9b4e6bdab8ead2a8cef7e66eb768e8
+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
| 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,7 +45,7 @@ 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 4334a5f8ae79..6f945bb0fa1a 100644
+index f3537ddd3c0b..e531da0c9232 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)
diff --git a/debian/patches/features/all/rt/0225-block-Use-cpu_chill-for-retry-loops.patch b/debian/patches/features/all/rt/0224-block-Use-cpu_chill-for-retry-loops.patch
similarity index 90%
rename from debian/patches/features/all/rt/0225-block-Use-cpu_chill-for-retry-loops.patch
rename to debian/patches/features/all/rt/0224-block-Use-cpu_chill-for-retry-loops.patch
index b354eaa..946742c 100644
--- a/debian/patches/features/all/rt/0225-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 225/332] block: Use cpu_chill() for retry loops
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7b4d32275edc10fcbf092816a9af37e25a561594
+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
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/0226-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
similarity index 96%
rename from debian/patches/features/all/rt/0226-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
rename to debian/patches/features/all/rt/0225-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
index ab77b7a..79e1dbc 100644
--- a/debian/patches/features/all/rt/0226-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 226/332] fs: dcache: Use cpu_chill() in trylock loops
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e533f5b85eaa53386683386be0b2dfce3ee8d227
+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
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/0227-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
similarity index 91%
rename from debian/patches/features/all/rt/0227-net-Use-cpu_chill-instead-of-cpu_relax.patch
rename to debian/patches/features/all/rt/0226-net-Use-cpu_chill-instead-of-cpu_relax.patch
index 17ed834..f854bb7 100644
--- a/debian/patches/features/all/rt/0227-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 227/332] net: Use cpu_chill() instead of cpu_relax()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ff531476a7770f23b349c0db0418365514bb7c42
+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
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 ae7bfd26cd91..c223bdea0222 100644
+index b17f9097c6fe..dd181bdadfb8 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/0228-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
similarity index 96%
rename from debian/patches/features/all/rt/0228-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
rename to debian/patches/features/all/rt/0227-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
index 93f82e3..2e2afcc 100644
--- a/debian/patches/features/all/rt/0228-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 228/332] fs/dcache: use swait_queue instead of waitqueue
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dda774431277ba5b3c286b4f0969ee540f6c6e55
+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
__d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock()
which disables preemption. As a workaround convert it to swait.
@@ -84,7 +84,7 @@ index 112ef2773fe3..37948da28742 100644
hlist_bl_unlock(b);
INIT_HLIST_NODE(&dentry->d_u.d_alias);
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
-index 642c57b8de7b..8494b9308333 100644
+index 4bbad745415a..5f91ca248ab0 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -1191,7 +1191,7 @@ static int fuse_direntplus_link(struct file *file,
@@ -97,7 +97,7 @@ index 642c57b8de7b..8494b9308333 100644
if (!o->nodeid) {
/*
diff --git a/fs/namei.c b/fs/namei.c
-index 66209f720146..cc5320e29fc1 100644
+index e7d125c23aa6..072a2f724437 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1626,7 +1626,7 @@ static struct dentry *lookup_slow(const struct qstr *name,
@@ -109,7 +109,7 @@ index 66209f720146..cc5320e29fc1 100644
inode_lock_shared(inode);
/* Don't go there if it's already dead */
-@@ -3083,7 +3083,7 @@ static int lookup_open(struct nameidata *nd, struct path *path,
+@@ -3089,7 +3089,7 @@ static int lookup_open(struct nameidata *nd, struct path *path,
struct dentry *dentry;
int error, create_error = 0;
umode_t mode = op->mode;
diff --git a/debian/patches/features/all/rt/0229-workqueue-Use-normal-rcu.patch b/debian/patches/features/all/rt/0228-workqueue-Use-normal-rcu.patch
similarity index 85%
rename from debian/patches/features/all/rt/0229-workqueue-Use-normal-rcu.patch
rename to debian/patches/features/all/rt/0228-workqueue-Use-normal-rcu.patch
index f04dda92..b894192 100644
--- a/debian/patches/features/all/rt/0229-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 229/332] workqueue: Use normal rcu
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f655ed905044ee38ac8dc6bfb895d9cc14a156cb
+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
There is no need for sched_rcu. The undocumented reason why sched_rcu
is used is to avoid a few explicit rcu_read_lock()/unlock() pairs by
@@ -14,10 +14,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 52 insertions(+), 43 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 776dda02e751..718c0cbdd8e5 100644
+index 296dcca77f33..e6b8a8d6b5c3 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
-@@ -125,7 +125,7 @@ enum {
+@@ -126,7 +126,7 @@ enum {
*
* PL: wq_pool_mutex protected.
*
@@ -26,7 +26,7 @@ index 776dda02e751..718c0cbdd8e5 100644
*
* PW: wq_pool_mutex and wq->mutex protected for writes. Either for reads.
*
-@@ -134,7 +134,7 @@ enum {
+@@ -135,7 +135,7 @@ enum {
*
* WQ: wq->mutex protected.
*
@@ -53,7 +53,7 @@ index 776dda02e751..718c0cbdd8e5 100644
* determined without grabbing wq->mutex.
*/
struct work_struct unbound_release_work;
-@@ -355,20 +355,20 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
+@@ -356,20 +356,20 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
#include <trace/events/workqueue.h>
#define assert_rcu_or_pool_mutex() \
@@ -80,7 +80,7 @@ index 776dda02e751..718c0cbdd8e5 100644
#define for_each_cpu_worker_pool(pool, cpu) \
for ((pool) = &per_cpu(cpu_worker_pools, cpu)[0]; \
-@@ -380,7 +380,7 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
+@@ -381,7 +381,7 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
* @pool: iteration cursor
* @pi: integer used for iteration
*
@@ -89,7 +89,7 @@ index 776dda02e751..718c0cbdd8e5 100644
* locked. If the pool needs to be used beyond the locking in effect, the
* caller is responsible for guaranteeing that the pool stays online.
*
-@@ -412,7 +412,7 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
+@@ -413,7 +413,7 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
* @pwq: iteration cursor
* @wq: the target workqueue
*
@@ -98,7 +98,7 @@ index 776dda02e751..718c0cbdd8e5 100644
* If the pwq needs to be used beyond the locking in effect, the caller is
* responsible for guaranteeing that the pwq stays online.
*
-@@ -548,7 +548,7 @@ static int worker_pool_assign_id(struct worker_pool *pool)
+@@ -549,7 +549,7 @@ static int worker_pool_assign_id(struct worker_pool *pool)
* @wq: the target workqueue
* @node: the node ID
*
@@ -107,7 +107,7 @@ index 776dda02e751..718c0cbdd8e5 100644
* read locked.
* If the pwq needs to be used beyond the locking in effect, the caller is
* responsible for guaranteeing that the pwq stays online.
-@@ -692,8 +692,8 @@ static struct pool_workqueue *get_work_pwq(struct work_struct *work)
+@@ -693,8 +693,8 @@ static struct pool_workqueue *get_work_pwq(struct work_struct *work)
* @work: the work item of interest
*
* Pools are created and destroyed under wq_pool_mutex, and allows read
@@ -118,7 +118,7 @@ index 776dda02e751..718c0cbdd8e5 100644
*
* All fields of the returned pool are accessible as long as the above
* mentioned locking is in effect. If the returned pool needs to be used
-@@ -1098,7 +1098,7 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
+@@ -1099,7 +1099,7 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
{
if (pwq) {
/*
@@ -127,7 +127,7 @@ index 776dda02e751..718c0cbdd8e5 100644
* following lock operations are safe.
*/
spin_lock_irq(&pwq->pool->lock);
-@@ -1226,6 +1226,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1227,6 +1227,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work)))
return 0;
@@ -135,7 +135,7 @@ index 776dda02e751..718c0cbdd8e5 100644
/*
* The queueing is in progress, or it is already queued. Try to
* steal it from ->worklist without clearing WORK_STRUCT_PENDING.
-@@ -1264,10 +1265,12 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1265,10 +1266,12 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
set_work_pool_and_keep_pending(work, pool->id);
spin_unlock(&pool->lock);
@@ -148,7 +148,7 @@ index 776dda02e751..718c0cbdd8e5 100644
local_irq_restore(*flags);
if (work_is_canceling(work))
return -ENOENT;
-@@ -1381,6 +1384,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1382,6 +1385,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
if (unlikely(wq->flags & __WQ_DRAINING) &&
WARN_ON_ONCE(!is_chained_work(wq)))
return;
@@ -156,7 +156,7 @@ index 776dda02e751..718c0cbdd8e5 100644
retry:
if (req_cpu == WORK_CPU_UNBOUND)
cpu = wq_select_unbound_cpu(raw_smp_processor_id());
-@@ -1437,10 +1441,8 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1438,10 +1442,8 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
/* pwq determined, queue */
trace_workqueue_queue_work(req_cpu, pwq, work);
@@ -169,7 +169,7 @@ index 776dda02e751..718c0cbdd8e5 100644
pwq->nr_in_flight[pwq->work_color]++;
work_flags = work_color_to_flags(pwq->work_color);
-@@ -1458,7 +1460,9 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1459,7 +1461,9 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
insert_work(pwq, work, worklist, work_flags);
@@ -179,7 +179,7 @@ index 776dda02e751..718c0cbdd8e5 100644
}
/**
-@@ -2785,14 +2789,14 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr)
+@@ -2779,14 +2783,14 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr)
might_sleep();
@@ -197,7 +197,7 @@ index 776dda02e751..718c0cbdd8e5 100644
/* see the comment in try_to_grab_pending() with the same code */
pwq = get_work_pwq(work);
if (pwq) {
-@@ -2821,10 +2825,11 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr)
+@@ -2815,10 +2819,11 @@ static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr)
else
lock_map_acquire_read(&pwq->wq->lockdep_map);
lock_map_release(&pwq->wq->lockdep_map);
@@ -210,7 +210,7 @@ index 776dda02e751..718c0cbdd8e5 100644
return false;
}
-@@ -3245,7 +3250,7 @@ static void rcu_free_pool(struct rcu_head *rcu)
+@@ -3238,7 +3243,7 @@ static void rcu_free_pool(struct rcu_head *rcu)
* put_unbound_pool - put a worker_pool
* @pool: worker_pool to put
*
@@ -219,7 +219,7 @@ index 776dda02e751..718c0cbdd8e5 100644
* safe manner. get_unbound_pool() calls this function on its failure path
* and this function should be able to release pools which went through,
* successfully or not, init_worker_pool().
-@@ -3299,8 +3304,8 @@ static void put_unbound_pool(struct worker_pool *pool)
+@@ -3292,8 +3297,8 @@ static void put_unbound_pool(struct worker_pool *pool)
del_timer_sync(&pool->idle_timer);
del_timer_sync(&pool->mayday_timer);
@@ -230,7 +230,7 @@ index 776dda02e751..718c0cbdd8e5 100644
}
/**
-@@ -3407,14 +3412,14 @@ static void pwq_unbound_release_workfn(struct work_struct *work)
+@@ -3400,14 +3405,14 @@ static void pwq_unbound_release_workfn(struct work_struct *work)
put_unbound_pool(pool);
mutex_unlock(&wq_pool_mutex);
@@ -247,7 +247,7 @@ index 776dda02e751..718c0cbdd8e5 100644
}
/**
-@@ -4078,7 +4083,7 @@ void destroy_workqueue(struct workqueue_struct *wq)
+@@ -4071,7 +4076,7 @@ void destroy_workqueue(struct workqueue_struct *wq)
* The base ref is never dropped on per-cpu pwqs. Directly
* schedule RCU free.
*/
@@ -256,7 +256,7 @@ index 776dda02e751..718c0cbdd8e5 100644
} else {
/*
* We're the sole accessor of @wq at this point. Directly
-@@ -4172,7 +4177,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
+@@ -4165,7 +4170,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
struct pool_workqueue *pwq;
bool ret;
@@ -266,7 +266,7 @@ index 776dda02e751..718c0cbdd8e5 100644
if (cpu == WORK_CPU_UNBOUND)
cpu = smp_processor_id();
-@@ -4183,7 +4189,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
+@@ -4176,7 +4182,8 @@ bool workqueue_congested(int cpu, struct workqueue_struct *wq)
pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu));
ret = !list_empty(&pwq->delayed_works);
@@ -276,7 +276,7 @@ index 776dda02e751..718c0cbdd8e5 100644
return ret;
}
-@@ -4209,15 +4216,15 @@ unsigned int work_busy(struct work_struct *work)
+@@ -4202,15 +4209,15 @@ unsigned int work_busy(struct work_struct *work)
if (work_pending(work))
ret |= WORK_BUSY_PENDING;
@@ -296,7 +296,7 @@ index 776dda02e751..718c0cbdd8e5 100644
return ret;
}
-@@ -4406,7 +4413,7 @@ void show_workqueue_state(void)
+@@ -4399,7 +4406,7 @@ void show_workqueue_state(void)
unsigned long flags;
int pi;
@@ -305,7 +305,7 @@ index 776dda02e751..718c0cbdd8e5 100644
pr_info("Showing busy workqueues and worker pools:\n");
-@@ -4459,7 +4466,7 @@ void show_workqueue_state(void)
+@@ -4452,7 +4459,7 @@ void show_workqueue_state(void)
spin_unlock_irqrestore(&pool->lock, flags);
}
@@ -314,7 +314,7 @@ index 776dda02e751..718c0cbdd8e5 100644
}
/*
-@@ -4797,16 +4804,16 @@ bool freeze_workqueues_busy(void)
+@@ -4790,16 +4797,16 @@ bool freeze_workqueues_busy(void)
* nr_active is monotonically decreasing. It's safe
* to peek without lock.
*/
@@ -334,7 +334,7 @@ index 776dda02e751..718c0cbdd8e5 100644
}
out_unlock:
mutex_unlock(&wq_pool_mutex);
-@@ -4996,7 +5003,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
+@@ -4989,7 +4996,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
const char *delim = "";
int node, written = 0;
@@ -344,7 +344,7 @@ index 776dda02e751..718c0cbdd8e5 100644
for_each_node(node) {
written += scnprintf(buf + written, PAGE_SIZE - written,
"%s%d:%d", delim, node,
-@@ -5004,7 +5012,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
+@@ -4997,7 +5005,8 @@ static ssize_t wq_pool_ids_show(struct device *dev,
delim = " ";
}
written += scnprintf(buf + written, PAGE_SIZE - written, "\n");
diff --git a/debian/patches/features/all/rt/0230-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
similarity index 82%
rename from debian/patches/features/all/rt/0230-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
rename to debian/patches/features/all/rt/0229-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
index 4127ba8..42e09c3 100644
--- a/debian/patches/features/all/rt/0230-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 230/332] workqueue: Use local irq lock instead of irq disable
+Subject: [PATCH 229/337] 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=0c7561c7ba9f3c0b91530a594acd88646cf2e11b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=84d2d95aedc05ad942092a2662021dc95434acbc
Use a local_irq_lock as a replacement for irq off regions. We keep the
semantic of irq-off in regard to the pool->lock and remain preemptible.
@@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 19 insertions(+), 14 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 718c0cbdd8e5..0143449bca42 100644
+index e6b8a8d6b5c3..ced32b9827ac 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -48,6 +48,7 @@
@@ -24,7 +24,7 @@ index 718c0cbdd8e5..0143449bca42 100644
#include "workqueue_internal.h"
-@@ -348,6 +349,8 @@ EXPORT_SYMBOL_GPL(system_power_efficient_wq);
+@@ -349,6 +350,8 @@ EXPORT_SYMBOL_GPL(system_power_efficient_wq);
struct workqueue_struct *system_freezable_power_efficient_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_freezable_power_efficient_wq);
@@ -33,7 +33,7 @@ index 718c0cbdd8e5..0143449bca42 100644
static int worker_thread(void *__worker);
static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
-@@ -1101,9 +1104,11 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
+@@ -1102,9 +1105,11 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)
* As both pwqs and pools are RCU protected, the
* following lock operations are safe.
*/
@@ -47,7 +47,7 @@ index 718c0cbdd8e5..0143449bca42 100644
}
}
-@@ -1207,7 +1212,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1208,7 +1213,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
struct worker_pool *pool;
struct pool_workqueue *pwq;
@@ -56,7 +56,7 @@ index 718c0cbdd8e5..0143449bca42 100644
/* try to steal the timer if it exists */
if (is_dwork) {
-@@ -1271,7 +1276,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1272,7 +1277,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
spin_unlock(&pool->lock);
fail:
rcu_read_unlock();
@@ -65,7 +65,7 @@ index 718c0cbdd8e5..0143449bca42 100644
if (work_is_canceling(work))
return -ENOENT;
cpu_relax();
-@@ -1376,7 +1381,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
+@@ -1377,7 +1382,7 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
* queued or lose PENDING. Grabbing PENDING and queueing should
* happen with IRQ disabled.
*/
@@ -74,7 +74,7 @@ index 718c0cbdd8e5..0143449bca42 100644
debug_work_activate(work);
-@@ -1482,14 +1487,14 @@ bool queue_work_on(int cpu, struct workqueue_struct *wq,
+@@ -1483,14 +1488,14 @@ bool queue_work_on(int cpu, struct workqueue_struct *wq,
bool ret = false;
unsigned long flags;
@@ -91,7 +91,7 @@ index 718c0cbdd8e5..0143449bca42 100644
return ret;
}
EXPORT_SYMBOL(queue_work_on);
-@@ -1556,14 +1561,14 @@ bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
+@@ -1557,14 +1562,14 @@ bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
unsigned long flags;
/* read the comment in __queue_work() */
@@ -108,7 +108,7 @@ index 718c0cbdd8e5..0143449bca42 100644
return ret;
}
EXPORT_SYMBOL(queue_delayed_work_on);
-@@ -1598,7 +1603,7 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq,
+@@ -1599,7 +1604,7 @@ bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq,
if (likely(ret >= 0)) {
__queue_delayed_work(cpu, wq, dwork, delay);
@@ -117,7 +117,7 @@ index 718c0cbdd8e5..0143449bca42 100644
}
/* -ENOENT from try_to_grab_pending() becomes %true */
-@@ -2916,7 +2921,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
+@@ -2910,7 +2915,7 @@ static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
/* tell other tasks trying to grab @work to back off */
mark_work_canceling(work);
@@ -126,7 +126,7 @@ index 718c0cbdd8e5..0143449bca42 100644
flush_work(work);
clear_work_data(work);
-@@ -2971,10 +2976,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
+@@ -2965,10 +2970,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync);
*/
bool flush_delayed_work(struct delayed_work *dwork)
{
@@ -139,7 +139,7 @@ index 718c0cbdd8e5..0143449bca42 100644
return flush_work(&dwork->work);
}
EXPORT_SYMBOL(flush_delayed_work);
-@@ -2992,7 +2997,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
+@@ -2986,7 +2991,7 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
return false;
set_work_pool_and_clear_pending(work, get_work_pool_id(work));
diff --git a/debian/patches/features/all/rt/0231-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch b/debian/patches/features/all/rt/0230-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
similarity index 96%
rename from debian/patches/features/all/rt/0231-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
rename to debian/patches/features/all/rt/0230-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
index 442dd88..ad3b930 100644
--- a/debian/patches/features/all/rt/0231-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 231/332] workqueue: Prevent workqueue versus ata-piix livelock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4df541da374d22047457a34860ea176b53fceda2
+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
An Intel i7 system regularly detected rcu_preempt stalls after the kernel
was upgraded from 3.6-rt to 3.8-rt. When the stall happened, disk I/O was no
@@ -113,7 +113,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 0143449bca42..5237ef8d2134 100644
+index ced32b9827ac..707f56db71c8 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -49,6 +49,7 @@
@@ -124,7 +124,7 @@ index 0143449bca42..5237ef8d2134 100644
#include "workqueue_internal.h"
-@@ -1279,7 +1280,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
+@@ -1280,7 +1281,7 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
local_unlock_irqrestore(pendingb_lock, *flags);
if (work_is_canceling(work))
return -ENOENT;
diff --git a/debian/patches/features/all/rt/0232-sched-Distangle-worker-accounting-from-rqlock.patch b/debian/patches/features/all/rt/0231-sched-Distangle-worker-accounting-from-rqlock.patch
similarity index 91%
rename from debian/patches/features/all/rt/0232-sched-Distangle-worker-accounting-from-rqlock.patch
rename to debian/patches/features/all/rt/0231-sched-Distangle-worker-accounting-from-rqlock.patch
index 8917564..2b55271 100644
--- a/debian/patches/features/all/rt/0232-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 232/332] sched: Distangle worker accounting from rqlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3452d2a5c81e2a1c36e8dae3e4e066f06fa51c8
+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
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 c4dc9671d777..54b8a2344de1 100644
+index fe7a7a8353cc..f787ad3e9d90 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -1723,10 +1723,6 @@ static inline void ttwu_activate(struct rq *rq, struct task_struct *p, int en_fl
+@@ -1724,10 +1724,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 c4dc9671d777..54b8a2344de1 100644
}
/*
-@@ -2163,53 +2159,6 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
+@@ -2164,53 +2160,6 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
return success;
}
@@ -98,7 +98,7 @@ index c4dc9671d777..54b8a2344de1 100644
/**
* wake_up_process - Wake up a specific process
* @p: The process to be woken up.
-@@ -3506,21 +3455,6 @@ static void __sched notrace __schedule(bool preempt)
+@@ -3507,21 +3456,6 @@ static void __sched notrace __schedule(bool preempt)
} else {
deactivate_task(rq, prev, DEQUEUE_SLEEP);
prev->on_rq = 0;
@@ -120,7 +120,7 @@ index c4dc9671d777..54b8a2344de1 100644
}
switch_count = &prev->nvcsw;
}
-@@ -3579,6 +3513,14 @@ static inline void sched_submit_work(struct task_struct *tsk)
+@@ -3580,6 +3514,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 c4dc9671d777..54b8a2344de1 100644
/*
* If we are going to sleep and we have plugged IO queued,
* make sure to submit it to avoid deadlocks.
-@@ -3587,6 +3529,12 @@ static inline void sched_submit_work(struct task_struct *tsk)
+@@ -3588,6 +3530,12 @@ static inline void sched_submit_work(struct task_struct *tsk)
blk_schedule_flush_plug(tsk);
}
@@ -148,7 +148,7 @@ index c4dc9671d777..54b8a2344de1 100644
asmlinkage __visible void __sched schedule(void)
{
struct task_struct *tsk = current;
-@@ -3597,6 +3545,7 @@ asmlinkage __visible void __sched schedule(void)
+@@ -3598,6 +3546,7 @@ asmlinkage __visible void __sched schedule(void)
__schedule(false);
sched_preempt_enable_no_resched();
} while (need_resched());
@@ -157,10 +157,10 @@ index c4dc9671d777..54b8a2344de1 100644
EXPORT_SYMBOL(schedule);
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 5237ef8d2134..7649d8181b21 100644
+index 707f56db71c8..4bb9113bd1f9 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
-@@ -841,43 +841,32 @@ static void wake_up_worker(struct worker_pool *pool)
+@@ -842,43 +842,32 @@ static void wake_up_worker(struct worker_pool *pool)
}
/**
@@ -215,7 +215,7 @@ index 5237ef8d2134..7649d8181b21 100644
struct worker_pool *pool;
/*
-@@ -886,13 +875,15 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task)
+@@ -887,13 +876,15 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task)
* checking NOT_RUNNING.
*/
if (worker->flags & WORKER_NOT_RUNNING)
@@ -235,7 +235,7 @@ index 5237ef8d2134..7649d8181b21 100644
/*
* The counterpart of the following dec_and_test, implied mb,
-@@ -906,9 +897,12 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task)
+@@ -907,9 +898,12 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task)
* lock is safe.
*/
if (atomic_dec_and_test(&pool->nr_running) &&
diff --git a/debian/patches/features/all/rt/0233-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
similarity index 96%
rename from debian/patches/features/all/rt/0233-idr-Use-local-lock-instead-of-preempt-enable-disable.patch
rename to debian/patches/features/all/rt/0232-idr-Use-local-lock-instead-of-preempt-enable-disable.patch
index e178a2a..ebf8250 100644
--- a/debian/patches/features/all/rt/0233-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 233/332] 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=7a200cfe5cffe71dbe1ef1bba42631c7895ba326
+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
We need to protect the per cpu variable and prevent migration.
diff --git a/debian/patches/features/all/rt/0234-percpu_ida-Use-local-locks.patch b/debian/patches/features/all/rt/0233-percpu_ida-Use-local-locks.patch
similarity index 96%
rename from debian/patches/features/all/rt/0234-percpu_ida-Use-local-locks.patch
rename to debian/patches/features/all/rt/0233-percpu_ida-Use-local-locks.patch
index fbcc015..bf5f5e3 100644
--- a/debian/patches/features/all/rt/0234-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 234/332] percpu_ida: Use local locks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7d1cd8b69e9e6a125de1b3a109f02956e1ce7905
+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
the local_irq_save() + spin_lock() does not work that well on -RT
diff --git a/debian/patches/features/all/rt/0235-debugobjects-Make-RT-aware.patch b/debian/patches/features/all/rt/0234-debugobjects-Make-RT-aware.patch
similarity index 87%
rename from debian/patches/features/all/rt/0235-debugobjects-Make-RT-aware.patch
rename to debian/patches/features/all/rt/0234-debugobjects-Make-RT-aware.patch
index aab35c2..93e318f 100644
--- a/debian/patches/features/all/rt/0235-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 235/332] debugobjects: Make RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7fab1d0822f2b2e424ef312d6952150a0dd152f2
+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
Avoid filling the pool / allocating memory with irqs off().
diff --git a/debian/patches/features/all/rt/0236-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
similarity index 91%
rename from debian/patches/features/all/rt/0236-jump-label-disable-if-stop_machine-is-used.patch
rename to debian/patches/features/all/rt/0235-jump-label-disable-if-stop_machine-is-used.patch
index a49edcf..38f9721 100644
--- a/debian/patches/features/all/rt/0236-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 236/332] jump-label: disable if stop_machine() is used
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=42c7b25f213e3d2c641f021965f6c3d0b4dbcd6b
+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
Some architectures are using stop_machine() while switching the opcode which
leads to latency spikes.
diff --git a/debian/patches/features/all/rt/0237-seqlock-Prevent-rt-starvation.patch b/debian/patches/features/all/rt/0236-seqlock-Prevent-rt-starvation.patch
similarity index 97%
rename from debian/patches/features/all/rt/0237-seqlock-Prevent-rt-starvation.patch
rename to debian/patches/features/all/rt/0236-seqlock-Prevent-rt-starvation.patch
index 761c8d0..2dcf8ed 100644
--- a/debian/patches/features/all/rt/0237-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 237/332] seqlock: Prevent rt starvation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ee41b58931ffd94b1723fda15aa2ae58e43e35ab
+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
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/0238-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
similarity index 94%
rename from debian/patches/features/all/rt/0238-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
rename to debian/patches/features/all/rt/0237-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
index cd0baa7..c5f9a6b 100644
--- a/debian/patches/features/all/rt/0238-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 238/332] sunrpc: Make svc_xprt_do_enqueue() use
+Subject: [PATCH 237/337] 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=50d20de679f098dcf71cb3c54765982562cf61fd
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a3b9f8002eb757f68c39b4d93528e36df7a6df92
|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/0239-net-Use-skbufhead-with-raw-lock.patch b/debian/patches/features/all/rt/0238-net-Use-skbufhead-with-raw-lock.patch
similarity index 87%
rename from debian/patches/features/all/rt/0239-net-Use-skbufhead-with-raw-lock.patch
rename to debian/patches/features/all/rt/0238-net-Use-skbufhead-with-raw-lock.patch
index c5dd156..9884cc5 100644
--- a/debian/patches/features/all/rt/0239-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 239/332] net: Use skbufhead with raw lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b0019c39695693374c1c7f604c0caf34a409bad6
+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
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 780e7171f548..2bb937ca567f 100644
+index 23db1ae37464..17e39e7e17ad 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2856,6 +2856,7 @@ struct softnet_data {
@@ -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 1a663019f600..aa19e874f011 100644
+index 20860f0a0d29..c56ec08be8ac 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)
@@ -72,7 +72,7 @@ index 1a663019f600..aa19e874f011 100644
#endif
}
-@@ -4345,7 +4345,7 @@ static void flush_backlog(struct work_struct *work)
+@@ -4348,7 +4348,7 @@ static void flush_backlog(struct work_struct *work)
skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) {
if (skb->dev->reg_state == NETREG_UNREGISTERING) {
__skb_unlink(skb, &sd->input_pkt_queue);
@@ -81,7 +81,7 @@ index 1a663019f600..aa19e874f011 100644
input_queue_head_incr(sd);
}
}
-@@ -4355,11 +4355,14 @@ static void flush_backlog(struct work_struct *work)
+@@ -4358,11 +4358,14 @@ static void flush_backlog(struct work_struct *work)
skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
if (skb->dev->reg_state == NETREG_UNREGISTERING) {
__skb_unlink(skb, &sd->process_queue);
@@ -97,7 +97,7 @@ index 1a663019f600..aa19e874f011 100644
}
static void flush_all_backlogs(void)
-@@ -4894,7 +4897,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
+@@ -4897,7 +4900,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
while (again) {
struct sk_buff *skb;
@@ -107,7 +107,7 @@ index 1a663019f600..aa19e874f011 100644
rcu_read_lock();
__netif_receive_skb(skb);
rcu_read_unlock();
-@@ -4902,9 +4907,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
+@@ -4905,9 +4910,9 @@ static int process_backlog(struct napi_struct *napi, int quota)
if (++work >= quota)
return work;
@@ -118,7 +118,7 @@ index 1a663019f600..aa19e874f011 100644
rps_lock(sd);
if (skb_queue_empty(&sd->input_pkt_queue)) {
/*
-@@ -5246,13 +5251,21 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
+@@ -5249,13 +5254,21 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
struct softnet_data *sd = this_cpu_ptr(&softnet_data);
unsigned long time_limit = jiffies + 2;
int budget = netdev_budget;
@@ -140,7 +140,7 @@ index 1a663019f600..aa19e874f011 100644
for (;;) {
struct napi_struct *n;
-@@ -8055,6 +8068,9 @@ static int dev_cpu_callback(struct notifier_block *nfb,
+@@ -8059,6 +8072,9 @@ static int dev_cpu_callback(struct notifier_block *nfb,
netif_rx_ni(skb);
input_queue_head_incr(oldsd);
}
@@ -150,7 +150,7 @@ index 1a663019f600..aa19e874f011 100644
return NOTIFY_OK;
}
-@@ -8359,8 +8375,9 @@ static int __init net_dev_init(void)
+@@ -8363,8 +8379,9 @@ static int __init net_dev_init(void)
INIT_WORK(flush, flush_backlog);
diff --git a/debian/patches/features/all/rt/0240-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
similarity index 90%
rename from debian/patches/features/all/rt/0240-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch
rename to debian/patches/features/all/rt/0239-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch
index 780a3e2..ae4b9bc 100644
--- a/debian/patches/features/all/rt/0240-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 240/332] net/core/cpuhotplug: Drain input_pkt_queue lockless
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=950a1a904a082ab845c4898fb566dc40e8a3eea9
+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
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,10 +35,10 @@ 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 aa19e874f011..37c56cdcbace 100644
+index c56ec08be8ac..1e8b69e8c007 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -8064,7 +8064,7 @@ static int dev_cpu_callback(struct notifier_block *nfb,
+@@ -8068,7 +8068,7 @@ static int dev_cpu_callback(struct notifier_block *nfb,
netif_rx_ni(skb);
input_queue_head_incr(oldsd);
}
diff --git a/debian/patches/features/all/rt/0241-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
similarity index 91%
rename from debian/patches/features/all/rt/0241-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
rename to debian/patches/features/all/rt/0240-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
index 081d7eb..e993d9b 100644
--- a/debian/patches/features/all/rt/0241-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 241/332] 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=4107410805c270fc63e75050d6ac4546f77e7dff
+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
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 2bb937ca567f..c550f7db1fd2 100644
+index 17e39e7e17ad..cc281a9c74f9 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2464,14 +2464,53 @@ void netdev_freemem(struct net_device *dev);
@@ -96,10 +96,10 @@ index a1331f77fad3..bdf040606769 100644
int pagefault_disabled;
#ifdef CONFIG_MMU
diff --git a/net/core/dev.c b/net/core/dev.c
-index 37c56cdcbace..47c08c1f5d37 100644
+index 1e8b69e8c007..0026df88af51 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3173,8 +3173,10 @@ static void skb_update_prio(struct sk_buff *skb)
+@@ -3176,8 +3176,10 @@ static void skb_update_prio(struct sk_buff *skb)
#define skb_update_prio(skb)
#endif
@@ -110,7 +110,7 @@ index 37c56cdcbace..47c08c1f5d37 100644
/**
* dev_loopback_xmit - loop back @skb
-@@ -3408,8 +3410,7 @@ static int __dev_queue_xmit(struct sk_buff *skb, void *accel_priv)
+@@ -3411,8 +3413,7 @@ static int __dev_queue_xmit(struct sk_buff *skb, void *accel_priv)
int cpu = smp_processor_id(); /* ok because BHs are off */
if (txq->xmit_lock_owner != cpu) {
@@ -120,7 +120,7 @@ index 37c56cdcbace..47c08c1f5d37 100644
goto recursion_alert;
skb = validate_xmit_skb(skb, dev);
-@@ -3419,9 +3420,9 @@ static int __dev_queue_xmit(struct sk_buff *skb, void *accel_priv)
+@@ -3422,9 +3423,9 @@ static int __dev_queue_xmit(struct sk_buff *skb, void *accel_priv)
HARD_TX_LOCK(dev, txq, cpu);
if (!netif_xmit_stopped(txq)) {
diff --git a/debian/patches/features/all/rt/0242-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
similarity index 92%
rename from debian/patches/features/all/rt/0242-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
rename to debian/patches/features/all/rt/0241-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
index a14e2ca..e5cfd1a 100644
--- a/debian/patches/features/all/rt/0242-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 242/332] net: provide a way to delegate processing a softirq
+Subject: [PATCH 241/337] 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=d0512cd28f573db1f999b6a55292ed794b626a3c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c15755931164f9ff36bbb9793f2161c494ea451
If the NET_RX uses up all of his budget it moves the following NAPI
invocations into the `ksoftirqd`. On -RT it does not do so. Instead it
@@ -71,10 +71,10 @@ index af2fd81cb9a5..819bd7cf5ad0 100644
* This function must run with irqs disabled!
*/
diff --git a/net/core/dev.c b/net/core/dev.c
-index 47c08c1f5d37..f45443d5ab1a 100644
+index 0026df88af51..6bd54aa226a9 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -5297,7 +5297,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
+@@ -5300,7 +5300,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h)
list_splice_tail(&repoll, &list);
list_splice(&list, &sd->poll_list);
if (!list_empty(&sd->poll_list))
diff --git a/debian/patches/features/all/rt/0243-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
similarity index 84%
rename from debian/patches/features/all/rt/0243-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
rename to debian/patches/features/all/rt/0242-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
index 23806ce..0ef1f2d 100644
--- a/debian/patches/features/all/rt/0243-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 243/332] net: dev: always take qdisc's busylock in
+Subject: [PATCH 242/337] 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=adc6a48723194f2dfb377aeeb7b646f1e7e300de
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb3ef0d2787a11cc7f93e6c6c54643b6804d38e6
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,10 +21,10 @@ 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 f45443d5ab1a..445ad0e62550 100644
+index 6bd54aa226a9..fe2afb8d4807 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3110,7 +3110,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q,
+@@ -3113,7 +3113,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q,
* This permits qdisc->running owner to get the lock more
* often and dequeue packets faster.
*/
diff --git a/debian/patches/features/all/rt/0244-net-Qdisc-use-a-seqlock-instead-seqcount.patch b/debian/patches/features/all/rt/0243-net-Qdisc-use-a-seqlock-instead-seqcount.patch
similarity index 98%
rename from debian/patches/features/all/rt/0244-net-Qdisc-use-a-seqlock-instead-seqcount.patch
rename to debian/patches/features/all/rt/0243-net-Qdisc-use-a-seqlock-instead-seqcount.patch
index 94c302d..e2fcbf9 100644
--- a/debian/patches/features/all/rt/0244-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 244/332] net/Qdisc: use a seqlock instead seqcount
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ee74462142989005792f9dc217272ca37783a718
+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
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
@@ -256,7 +256,7 @@ index 195a3b2d9afc..7bf29e3fd71c 100644
err = -EOPNOTSUPP;
if (sch->flags & TCQ_F_MQROOT)
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
-index e57aa7293f86..20727e1347de 100644
+index 3a5fe6255c10..d925f0e63679 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -425,7 +425,11 @@ struct Qdisc noop_qdisc = {
diff --git a/debian/patches/features/all/rt/0245-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
similarity index 96%
rename from debian/patches/features/all/rt/0245-net-add-back-the-missing-serialization-in-ip_send_un.patch
rename to debian/patches/features/all/rt/0244-net-add-back-the-missing-serialization-in-ip_send_un.patch
index a336a24..108a785 100644
--- a/debian/patches/features/all/rt/0245-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 245/332] net: add back the missing serialization in
+Subject: [PATCH 244/337] 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=bee69d43914ea773b6b39dacd1ea062e40006760
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1b3ae3f5bbce2a464fbfe10f7365c3caddc333e2
Some time ago Sami Pietikäinen reported a crash on -RT in
ip_send_unicast_reply() which was later fixed by Nicholas Mc Guire
diff --git a/debian/patches/features/all/rt/0246-net-add-a-lock-around-icmp_sk.patch b/debian/patches/features/all/rt/0245-net-add-a-lock-around-icmp_sk.patch
similarity index 94%
rename from debian/patches/features/all/rt/0246-net-add-a-lock-around-icmp_sk.patch
rename to debian/patches/features/all/rt/0245-net-add-a-lock-around-icmp_sk.patch
index d152be0..4c2ad95 100644
--- a/debian/patches/features/all/rt/0246-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 246/332] net: add a lock around icmp_sk()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f298c3fb33718247b3d74541125b6b612ceb2bdf
+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
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/0247-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
similarity index 88%
rename from debian/patches/features/all/rt/0247-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
rename to debian/patches/features/all/rt/0246-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
index 9c970a9..30cc9db 100644
--- a/debian/patches/features/all/rt/0247-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 247/332] net: Have __napi_schedule_irqoff() disable interrupts
+Subject: [PATCH 246/337] 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=454837b43aad89564f86f93bab7be2ab1d6e0214
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57363272528096c2cfbcedc43453e35ca0829e2d
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 c550f7db1fd2..249cab661ad0 100644
+index cc281a9c74f9..67af02914bf8 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,10 +52,10 @@ index c550f7db1fd2..249cab661ad0 100644
static inline bool napi_disable_pending(struct napi_struct *n)
{
diff --git a/net/core/dev.c b/net/core/dev.c
-index 445ad0e62550..ea1af7131ef4 100644
+index fe2afb8d4807..665c7c0ca816 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4956,6 +4956,7 @@ void __napi_schedule(struct napi_struct *n)
+@@ -4959,6 +4959,7 @@ void __napi_schedule(struct napi_struct *n)
}
EXPORT_SYMBOL(__napi_schedule);
@@ -63,7 +63,7 @@ index 445ad0e62550..ea1af7131ef4 100644
/**
* __napi_schedule_irqoff - schedule for receive
* @n: entry to schedule
-@@ -4967,6 +4968,7 @@ void __napi_schedule_irqoff(struct napi_struct *n)
+@@ -4970,6 +4971,7 @@ void __napi_schedule_irqoff(struct napi_struct *n)
____napi_schedule(this_cpu_ptr(&softnet_data), n);
}
EXPORT_SYMBOL(__napi_schedule_irqoff);
diff --git a/debian/patches/features/all/rt/0248-net-sysrq-via-icmp.patch b/debian/patches/features/all/rt/0247-net-sysrq-via-icmp.patch
similarity index 97%
rename from debian/patches/features/all/rt/0248-net-sysrq-via-icmp.patch
rename to debian/patches/features/all/rt/0247-net-sysrq-via-icmp.patch
index a0e549a..8a4467e 100644
--- a/debian/patches/features/all/rt/0248-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 248/332] net: sysrq via icmp
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d1cee5d368393ed5facba42d58c6da0d148faf08
+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
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/0249-irqwork-push-most-work-into-softirq-context.patch b/debian/patches/features/all/rt/0248-irqwork-push-most-work-into-softirq-context.patch
similarity index 97%
rename from debian/patches/features/all/rt/0249-irqwork-push-most-work-into-softirq-context.patch
rename to debian/patches/features/all/rt/0248-irqwork-push-most-work-into-softirq-context.patch
index 5e5b9fd..aabd2c9 100644
--- a/debian/patches/features/all/rt/0249-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 249/332] irqwork: push most work into softirq context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5b5159d455f086a63d04e190d076691b896150e4
+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
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.
@@ -171,7 +171,7 @@ index 4367249e0dde..66d85482a96e 100644
/*
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
-index 06ccccfd4130..ff99d246bfee 100644
+index d8e1c2c5397c..fad6d60bf4e0 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -1663,7 +1663,7 @@ void update_process_times(int user_tick)
diff --git a/debian/patches/features/all/rt/0250-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
similarity index 94%
rename from debian/patches/features/all/rt/0250-irqwork-Move-irq-safe-work-to-irq-context.patch
rename to debian/patches/features/all/rt/0249-irqwork-Move-irq-safe-work-to-irq-context.patch
index 79527e7..575e833 100644
--- a/debian/patches/features/all/rt/0250-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 250/332] irqwork: Move irq safe work to irq context
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=03dfa3ebb991deb982457e5f625517a572efca28
+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
On architectures where arch_irq_work_has_interrupt() returns false, we
end up running the irq safe work from the softirq context. That
@@ -59,7 +59,7 @@ index 0ddaf1e66d8c..2899ba0d23d1 100644
/*
* Synchronize against the irq_work @entry, ensures the entry is not
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
-index ff99d246bfee..a4e44fc39b25 100644
+index fad6d60bf4e0..31703677505f 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -1663,7 +1663,7 @@ void update_process_times(int user_tick)
diff --git a/debian/patches/features/all/rt/0251-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
similarity index 95%
rename from debian/patches/features/all/rt/0251-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch
rename to debian/patches/features/all/rt/0250-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch
index 0b0ef13..0f64dc6 100644
--- a/debian/patches/features/all/rt/0251-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 251/332] snd/pcm: fix snd_pcm_stream_lock*() irqs_disabled()
+Subject: [PATCH 250/337] 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=7e2a0cc7827843b59e2761c3d65630b6cb0d4570
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=00e635e09198f7730ff58e658509f0f44c42625b
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/0252-printk-Make-rt-aware.patch b/debian/patches/features/all/rt/0251-printk-Make-rt-aware.patch
similarity index 96%
rename from debian/patches/features/all/rt/0252-printk-Make-rt-aware.patch
rename to debian/patches/features/all/rt/0251-printk-Make-rt-aware.patch
index bcea012..458682a 100644
--- a/debian/patches/features/all/rt/0252-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 252/332] printk: Make rt aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4903a12c104e4e5d65958980893a42ae33609ed2
+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
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/0253-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
similarity index 91%
rename from debian/patches/features/all/rt/0253-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
rename to debian/patches/features/all/rt/0252-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
index 437b5a9..7ec5ae1 100644
--- a/debian/patches/features/all/rt/0253-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 253/332] 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=d833f56e65c994db375f86a8b167136f91b94dc4
+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
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/0254-printk-Drop-the-logbuf_lock-more-often.patch b/debian/patches/features/all/rt/0253-printk-Drop-the-logbuf_lock-more-often.patch
similarity index 94%
rename from debian/patches/features/all/rt/0254-printk-Drop-the-logbuf_lock-more-often.patch
rename to debian/patches/features/all/rt/0253-printk-Drop-the-logbuf_lock-more-often.patch
index a67e2aa..80efc00 100644
--- a/debian/patches/features/all/rt/0254-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 254/332] printk: Drop the logbuf_lock more often
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e37baa3b704b524cc34c8344d340f7680ecbf7cb
+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
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/0255-powerpc-Use-generic-rwsem-on-RT.patch b/debian/patches/features/all/rt/0254-powerpc-Use-generic-rwsem-on-RT.patch
similarity index 85%
rename from debian/patches/features/all/rt/0255-powerpc-Use-generic-rwsem-on-RT.patch
rename to debian/patches/features/all/rt/0254-powerpc-Use-generic-rwsem-on-RT.patch
index 4f9ca0f..1bb3b64 100644
--- a/debian/patches/features/all/rt/0255-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 255/332] powerpc: Use generic rwsem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d4ffef36c7d5a99b5ccc7d73c0a2f1e12134ceaa
+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
Use generic code which uses rtmutex
diff --git a/debian/patches/features/all/rt/0256-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
similarity index 93%
rename from debian/patches/features/all/rt/0256-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
rename to debian/patches/features/all/rt/0255-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
index 66a83b5..c320252 100644
--- a/debian/patches/features/all/rt/0256-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 256/332] powerpc/kvm: Disable in-kernel MPIC emulation for
+Subject: [PATCH 255/337] 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=4b177b6d0c531a9c1aa36c978590a93fcc32a700
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e5f6b094b2fceb728db3b9a9adfaafb8800634f8
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/0257-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
similarity index 92%
rename from debian/patches/features/all/rt/0257-powerpc-ps3-device-init.c-adapt-to-completions-using.patch
rename to debian/patches/features/all/rt/0256-powerpc-ps3-device-init.c-adapt-to-completions-using.patch
index 6998977..692c8fd 100644
--- a/debian/patches/features/all/rt/0257-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 257/332] powerpc: ps3/device-init.c - adapt to completions
+Subject: [PATCH 256/337] 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=a8997e85ceedd5859ee310bab3f7a22784927d45
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7bdedda4fb86d3dd06a31c83577aec9fec55eb3b
To fix:
diff --git a/debian/patches/features/all/rt/0258-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
similarity index 90%
rename from debian/patches/features/all/rt/0258-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
rename to debian/patches/features/all/rt/0257-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
index 5b0cbe5..682b360 100644
--- a/debian/patches/features/all/rt/0258-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 258/332] 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=a423bbc77bea86f2162a023da8359faa61aa59d9
+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
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/0259-arm-unwind-use-a-raw_spin_lock.patch b/debian/patches/features/all/rt/0258-arm-unwind-use-a-raw_spin_lock.patch
similarity index 95%
rename from debian/patches/features/all/rt/0259-arm-unwind-use-a-raw_spin_lock.patch
rename to debian/patches/features/all/rt/0258-arm-unwind-use-a-raw_spin_lock.patch
index 7bd83d7..dde946a 100644
--- a/debian/patches/features/all/rt/0259-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 259/332] arm/unwind: use a raw_spin_lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ac538a8f1241c8b95d7c07b9b144c2000826fb3
+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
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/0260-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
similarity index 91%
rename from debian/patches/features/all/rt/0260-ARM-enable-irq-in-translation-section-permission-fau.patch
rename to debian/patches/features/all/rt/0259-ARM-enable-irq-in-translation-section-permission-fau.patch
index 1edca6a..7635601 100644
--- a/debian/patches/features/all/rt/0260-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 260/332] ARM: enable irq in translation/section permission
+Subject: [PATCH 259/337] 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=72938417e84226a7c5b59985d4cdb1b75639e14e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=26bfcca82eb620926f361612c9bd0779c58c3201
Probably happens on all ARM, with
CONFIG_PREEMPT_RT_FULL
@@ -67,10 +67,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 6 insertions(+)
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
-index 0122ad1a6027..926b1be48043 100644
+index f7861dc83182..ce47dfe25fb0 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
-@@ -430,6 +430,9 @@ do_translation_fault(unsigned long addr, unsigned int fsr,
+@@ -433,6 +433,9 @@ do_translation_fault(unsigned long addr, unsigned int fsr,
if (addr < TASK_SIZE)
return do_page_fault(addr, fsr, regs);
@@ -80,7 +80,7 @@ index 0122ad1a6027..926b1be48043 100644
if (user_mode(regs))
goto bad_area;
-@@ -497,6 +500,9 @@ do_translation_fault(unsigned long addr, unsigned int fsr,
+@@ -500,6 +503,9 @@ do_translation_fault(unsigned long addr, unsigned int fsr,
static int
do_sect_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
{
diff --git a/debian/patches/features/all/rt/0261-genirq-update-irq_set_irqchip_state-documentation.patch b/debian/patches/features/all/rt/0260-genirq-update-irq_set_irqchip_state-documentation.patch
similarity index 89%
rename from debian/patches/features/all/rt/0261-genirq-update-irq_set_irqchip_state-documentation.patch
rename to debian/patches/features/all/rt/0260-genirq-update-irq_set_irqchip_state-documentation.patch
index 19a2e8d..ad7adb8 100644
--- a/debian/patches/features/all/rt/0261-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 261/332] genirq: update irq_set_irqchip_state documentation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1cf9f63c31b2106d1795c4f8d1395d37b6a68f8
+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
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/0262-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
similarity index 93%
rename from debian/patches/features/all/rt/0262-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
rename to debian/patches/features/all/rt/0261-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
index eb3542a..4daee0d 100644
--- a/debian/patches/features/all/rt/0262-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 262/332] KVM: arm/arm64: downgrade preempt_disable()d region
+Subject: [PATCH 261/337] 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=29dd48260f2c2c84d36c005bf16bcbb6fb603f50
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4b992145bb93541fb997c9082ee948ffad34afdf
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/0263-arm64-xen-Make-XEN-depend-on-RT.patch b/debian/patches/features/all/rt/0262-arm64-xen-Make-XEN-depend-on-RT.patch
similarity index 85%
rename from debian/patches/features/all/rt/0263-arm64-xen-Make-XEN-depend-on-RT.patch
rename to debian/patches/features/all/rt/0262-arm64-xen-Make-XEN-depend-on-RT.patch
index 0bb6ec1..250b7fe 100644
--- a/debian/patches/features/all/rt/0263-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 263/332] arm64/xen: Make XEN depend on !RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7883cab3ab909af626ca66d89ec8f22459552daa
+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
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/0264-kgdb-serial-Short-term-workaround.patch b/debian/patches/features/all/rt/0263-kgdb-serial-Short-term-workaround.patch
similarity index 94%
rename from debian/patches/features/all/rt/0264-kgdb-serial-Short-term-workaround.patch
rename to debian/patches/features/all/rt/0263-kgdb-serial-Short-term-workaround.patch
index 882086c..6c4f2e5 100644
--- a/debian/patches/features/all/rt/0264-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 264/332] kgdb/serial: Short term workaround
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5e5d8e37ef2b0f45d8ceeb16324a7693c238ba1c
+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
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 679d08bc6d25..0b242c66f0bb 100644
+index 105bbc01b4e9..ff9f4e50563c 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 679d08bc6d25..0b242c66f0bb 100644
#include <linux/uaccess.h>
#include <linux/pm_runtime.h>
#include <linux/timer.h>
-@@ -3146,6 +3147,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,
+@@ -3142,6 +3143,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/0265-sysfs-Add-sys-kernel-realtime-entry.patch b/debian/patches/features/all/rt/0264-sysfs-Add-sys-kernel-realtime-entry.patch
similarity index 91%
rename from debian/patches/features/all/rt/0265-sysfs-Add-sys-kernel-realtime-entry.patch
rename to debian/patches/features/all/rt/0264-sysfs-Add-sys-kernel-realtime-entry.patch
index 7c5980e..9c4bb44 100644
--- a/debian/patches/features/all/rt/0265-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 265/332] sysfs: Add /sys/kernel/realtime entry
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=74952612044bbc459884c83bcfe6526908c2ef11
+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
Add a /sys/kernel entry to indicate that the kernel is a
realtime kernel.
diff --git a/debian/patches/features/all/rt/0266-powerpc-Disable-highmem-on-RT.patch b/debian/patches/features/all/rt/0265-powerpc-Disable-highmem-on-RT.patch
similarity index 85%
rename from debian/patches/features/all/rt/0266-powerpc-Disable-highmem-on-RT.patch
rename to debian/patches/features/all/rt/0265-powerpc-Disable-highmem-on-RT.patch
index 86fe584..656436b 100644
--- a/debian/patches/features/all/rt/0266-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 266/332] powerpc: Disable highmem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bdeab8ed38c8e990839380fd983e14e2c5ed979b
+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
The current highmem handling on -RT is not compatible and needs fixups.
diff --git a/debian/patches/features/all/rt/0267-mips-Disable-highmem-on-RT.patch b/debian/patches/features/all/rt/0266-mips-Disable-highmem-on-RT.patch
similarity index 87%
rename from debian/patches/features/all/rt/0267-mips-Disable-highmem-on-RT.patch
rename to debian/patches/features/all/rt/0266-mips-Disable-highmem-on-RT.patch
index 06450a6..3657aee 100644
--- a/debian/patches/features/all/rt/0267-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 267/332] mips: Disable highmem on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aaeb940c4f8ebc26f88f44cccfe8d2bf1369fe3d
+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
The current highmem handling on -RT is not compatible and needs fixups.
diff --git a/debian/patches/features/all/rt/0268-mm-rt-kmap_atomic-scheduling.patch b/debian/patches/features/all/rt/0267-mm-rt-kmap_atomic-scheduling.patch
similarity index 98%
rename from debian/patches/features/all/rt/0268-mm-rt-kmap_atomic-scheduling.patch
rename to debian/patches/features/all/rt/0267-mm-rt-kmap_atomic-scheduling.patch
index 86d1990..5a2e16a 100644
--- a/debian/patches/features/all/rt/0268-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 268/332] mm, rt: kmap_atomic scheduling
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b4e5431cdf64faab87b212396d125c798f89800
+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
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/0269-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
similarity index 91%
rename from debian/patches/features/all/rt/0269-mm-rt-Fix-generic-kmap_atomic-for-RT.patch
rename to debian/patches/features/all/rt/0268-mm-rt-Fix-generic-kmap_atomic-for-RT.patch
index 3080e28..d954adf 100644
--- a/debian/patches/features/all/rt/0269-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 269/332] mm: rt: Fix generic kmap_atomic for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=346fdb5d4a4392193492cdfd0a244c1633d02f45
+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
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/0270-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
similarity index 86%
rename from debian/patches/features/all/rt/0270-x86-highmem-Add-a-already-used-pte-check.patch
rename to debian/patches/features/all/rt/0269-x86-highmem-Add-a-already-used-pte-check.patch
index 196f693..d6e6f98 100644
--- a/debian/patches/features/all/rt/0270-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 270/332] x86/highmem: Add a "already used pte" check
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ec1175799294235538ae73fd4fbbe57731a8771
+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
This is a copy from kmap_atomic_prot().
diff --git a/debian/patches/features/all/rt/0271-arm-highmem-Flush-tlb-on-unmap.patch b/debian/patches/features/all/rt/0270-arm-highmem-Flush-tlb-on-unmap.patch
similarity index 89%
rename from debian/patches/features/all/rt/0271-arm-highmem-Flush-tlb-on-unmap.patch
rename to debian/patches/features/all/rt/0270-arm-highmem-Flush-tlb-on-unmap.patch
index b1a8117..f37ff2d 100644
--- a/debian/patches/features/all/rt/0271-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 271/332] arm/highmem: Flush tlb on unmap
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=69db6e3d1cc5ede50b1a32f10da7b152fccc18c3
+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
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/0272-arm-Enable-highmem-for-rt.patch b/debian/patches/features/all/rt/0271-arm-Enable-highmem-for-rt.patch
similarity index 97%
rename from debian/patches/features/all/rt/0272-arm-Enable-highmem-for-rt.patch
rename to debian/patches/features/all/rt/0271-arm-Enable-highmem-for-rt.patch
index 9fe906b..6b006f6 100644
--- a/debian/patches/features/all/rt/0272-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 272/332] arm: Enable highmem for rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8f8b1db52dec44ff1125e0869ad42233a8481da4
+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
fixup highmem for ARM.
diff --git a/debian/patches/features/all/rt/0273-ipc-sem-Rework-semaphore-wakeups.patch b/debian/patches/features/all/rt/0272-ipc-sem-Rework-semaphore-wakeups.patch
similarity index 94%
rename from debian/patches/features/all/rt/0273-ipc-sem-Rework-semaphore-wakeups.patch
rename to debian/patches/features/all/rt/0272-ipc-sem-Rework-semaphore-wakeups.patch
index a92d78f..425b8dd 100644
--- a/debian/patches/features/all/rt/0273-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 273/332] ipc/sem: Rework semaphore wakeups
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=152dc75cdcf407bb84bf17109e250f980f0d57cd
+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
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/0274-x86-kvm-Require-const-tsc-for-RT.patch b/debian/patches/features/all/rt/0273-x86-kvm-Require-const-tsc-for-RT.patch
similarity index 79%
rename from debian/patches/features/all/rt/0274-x86-kvm-Require-const-tsc-for-RT.patch
rename to debian/patches/features/all/rt/0273-x86-kvm-Require-const-tsc-for-RT.patch
index 25d765a..619a0e3 100644
--- a/debian/patches/features/all/rt/0274-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 274/332] x86: kvm Require const tsc for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bdc7f290738d463f4bdc5a24225062e06b39cc06
+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
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 3dbcb09c19cf..9e2c2b00215b 100644
+index 595f8149c0d9..31b15149f412 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
-@@ -5969,6 +5969,13 @@ int kvm_arch_init(void *opaque)
+@@ -5961,6 +5961,13 @@ int kvm_arch_init(void *opaque)
goto out;
}
diff --git a/debian/patches/features/all/rt/0275-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
similarity index 88%
rename from debian/patches/features/all/rt/0275-KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch
rename to debian/patches/features/all/rt/0274-KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch
index d6065dd..d584538 100644
--- a/debian/patches/features/all/rt/0275-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 275/332] KVM: lapic: mark LAPIC timer handler as irqsafe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dc07ed637dfe2f511c10530ca595b194645b10b1
+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
Since lapic timer handler only wakes up a simple waitqueue,
it can be executed from hardirq context.
diff --git a/debian/patches/features/all/rt/0276-scsi-fcoe-Make-RT-aware.patch b/debian/patches/features/all/rt/0275-scsi-fcoe-Make-RT-aware.patch
similarity index 96%
rename from debian/patches/features/all/rt/0276-scsi-fcoe-Make-RT-aware.patch
rename to debian/patches/features/all/rt/0275-scsi-fcoe-Make-RT-aware.patch
index a10a4cd..b60132d 100644
--- a/debian/patches/features/all/rt/0276-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 276/332] scsi/fcoe: Make RT aware.
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3f07329fab938ae8d1c8e27a299d904bf738aa9c
+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
Do not disable preemption while taking sleeping locks. All user look safe
for migrate_diable() only.
diff --git a/debian/patches/features/all/rt/0277-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
similarity index 96%
rename from debian/patches/features/all/rt/0277-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch
rename to debian/patches/features/all/rt/0276-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch
index 6a2d963..6dec2d4 100644
--- a/debian/patches/features/all/rt/0277-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 277/332] sas-ata/isci: dont't disable interrupts in qc_issue
+Subject: [PATCH 276/337] 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=9ad6ade42054bdd36d89c472dbc1ceff514cdef8
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1ee14e096f83a5d75bac2e22431251b9eae74b91
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/0278-x86-crypto-Reduce-preempt-disabled-regions.patch b/debian/patches/features/all/rt/0277-x86-crypto-Reduce-preempt-disabled-regions.patch
similarity index 96%
rename from debian/patches/features/all/rt/0278-x86-crypto-Reduce-preempt-disabled-regions.patch
rename to debian/patches/features/all/rt/0277-x86-crypto-Reduce-preempt-disabled-regions.patch
index 2a1f422..af4be6a 100644
--- a/debian/patches/features/all/rt/0278-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 278/332] x86: crypto: Reduce preempt disabled regions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d8e462ab9b4e3a348eccf7e1159a62e271475c7
+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
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/0279-crypto-Reduce-preempt-disabled-regions-more-algos.patch b/debian/patches/features/all/rt/0278-crypto-Reduce-preempt-disabled-regions-more-algos.patch
similarity index 98%
rename from debian/patches/features/all/rt/0279-crypto-Reduce-preempt-disabled-regions-more-algos.patch
rename to debian/patches/features/all/rt/0278-crypto-Reduce-preempt-disabled-regions-more-algos.patch
index 7175890..82c50a0 100644
--- a/debian/patches/features/all/rt/0279-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 279/332] crypto: Reduce preempt disabled regions, more algos
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=06261f430b7b1e76ec926c520fca364a9fc2f637
+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
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/0280-dm-Make-rt-aware.patch b/debian/patches/features/all/rt/0279-dm-Make-rt-aware.patch
similarity index 89%
rename from debian/patches/features/all/rt/0280-dm-Make-rt-aware.patch
rename to debian/patches/features/all/rt/0279-dm-Make-rt-aware.patch
index d9cae38..8e0d399 100644
--- a/debian/patches/features/all/rt/0280-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 280/332] dm: Make rt aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4fa92113e6b5ffc575c7e7383d3644a01c895e4e
+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
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/0281-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
similarity index 98%
rename from debian/patches/features/all/rt/0281-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch
rename to debian/patches/features/all/rt/0280-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch
index 0fc8b64..1283738 100644
--- a/debian/patches/features/all/rt/0281-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 281/332] acpi/rt: Convert acpi_gbl_hardware lock back to a
+Subject: [PATCH 280/337] 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=f64d30cec87fcb87f5d1a40afe76918d2dffc390
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=906e785c51c58a2abab54e98dd2d313f15fc371f
We hit the following bug with 3.6-rt:
diff --git a/debian/patches/features/all/rt/0282-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch b/debian/patches/features/all/rt/0281-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
similarity index 95%
rename from debian/patches/features/all/rt/0282-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
rename to debian/patches/features/all/rt/0281-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
index 2b6bbd2..57f6ff3 100644
--- a/debian/patches/features/all/rt/0282-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 282/332] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0066e5eecfcbddddbe820c91fdf224bc25c9a854
+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
There are "valid" GFP_ATOMIC allocations such as
diff --git a/debian/patches/features/all/rt/0283-random-Make-it-work-on-rt.patch b/debian/patches/features/all/rt/0282-random-Make-it-work-on-rt.patch
similarity index 97%
rename from debian/patches/features/all/rt/0283-random-Make-it-work-on-rt.patch
rename to debian/patches/features/all/rt/0282-random-Make-it-work-on-rt.patch
index 8f16021..38347c9 100644
--- a/debian/patches/features/all/rt/0283-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 283/332] random: Make it work on rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40364e9ec9cce9e9786651c7cdfd1782671b6498
+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
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/0284-random-avoid-preempt_disable-ed-section.patch b/debian/patches/features/all/rt/0283-random-avoid-preempt_disable-ed-section.patch
similarity index 95%
rename from debian/patches/features/all/rt/0284-random-avoid-preempt_disable-ed-section.patch
rename to debian/patches/features/all/rt/0283-random-avoid-preempt_disable-ed-section.patch
index e24d697..5725f90 100644
--- a/debian/patches/features/all/rt/0284-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 284/332] random: avoid preempt_disable()ed section
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f352a0e6040e8f9dd4a736bdffd2a09862739810
+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
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/0285-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
similarity index 96%
rename from debian/patches/features/all/rt/0285-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
rename to debian/patches/features/all/rt/0284-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
index af882bc..8764c27 100644
--- a/debian/patches/features/all/rt/0285-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 285/332] 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=db2465c5af0b071f8225d1674fc2b7ce43262454
+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
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/0286-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
similarity index 98%
rename from debian/patches/features/all/rt/0286-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
rename to debian/patches/features/all/rt/0285-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
index a2271b3..cb0a44b 100644
--- a/debian/patches/features/all/rt/0286-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 286/332] cpu/rt: Rework cpu down for PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cc197087372a4ef19c98b71c6710910706534d19
+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
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,7 +441,7 @@ 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 54b8a2344de1..08c9047375e1 100644
+index f787ad3e9d90..2a4c083bf44f 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)
diff --git a/debian/patches/features/all/rt/0287-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
similarity index 94%
rename from debian/patches/features/all/rt/0287-cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch
rename to debian/patches/features/all/rt/0286-cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch
index eb6377f..9337f44 100644
--- a/debian/patches/features/all/rt/0287-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 287/332] 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=30e50edd8755282828ea2f5cbc0dd29255958d64
+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
The patch:
diff --git a/debian/patches/features/all/rt/0288-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
similarity index 95%
rename from debian/patches/features/all/rt/0288-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch
rename to debian/patches/features/all/rt/0287-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch
index 6b6c823..83897d0 100644
--- a/debian/patches/features/all/rt/0288-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 288/332] kernel/cpu: fix cpu down problem if kthread's cpu is
+Subject: [PATCH 287/337] 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=ae71a96857e31286988c22871d6627a5a8945538
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e78f3617a5d90d3de215bee94f814f023bab1073
If kthread is pinned to CPUx and CPUx is going down then we get into
trouble:
diff --git a/debian/patches/features/all/rt/0289-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
similarity index 94%
rename from debian/patches/features/all/rt/0289-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch
rename to debian/patches/features/all/rt/0288-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch
index 1405003..361c3ac 100644
--- a/debian/patches/features/all/rt/0289-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 289/332] kernel/hotplug: restore original cpu mask oncpu/down
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9442bc17a0bfd91d249b9ecd489a321fe42d50b2
+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
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/0290-cpu_down-move-migrate_enable-back.patch b/debian/patches/features/all/rt/0289-cpu_down-move-migrate_enable-back.patch
similarity index 92%
rename from debian/patches/features/all/rt/0290-cpu_down-move-migrate_enable-back.patch
rename to debian/patches/features/all/rt/0289-cpu_down-move-migrate_enable-back.patch
index aa8dbd1..fc0fff0 100644
--- a/debian/patches/features/all/rt/0290-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 290/332] cpu_down: move migrate_enable() back
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c13e7a97354dba4881ac72675dafa0c6aa28116
+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
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/0291-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
similarity index 94%
rename from debian/patches/features/all/rt/0291-hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch
rename to debian/patches/features/all/rt/0290-hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch
index 27bb48b..b354899 100644
--- a/debian/patches/features/all/rt/0291-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 291/332] hotplug: Use set_cpus_allowed_ptr() in
+Subject: [PATCH 290/337] 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=985f3c04f4e7655a2fceaec323db5f767108a0bf
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=05aee80c941450cf52eb10c942534228025c4ba7
do_set_cpus_allowed() is not safe vs ->sched_class change.
diff --git a/debian/patches/features/all/rt/0292-rt-locking-Reenable-migration-accross-schedule.patch b/debian/patches/features/all/rt/0291-rt-locking-Reenable-migration-accross-schedule.patch
similarity index 96%
rename from debian/patches/features/all/rt/0292-rt-locking-Reenable-migration-accross-schedule.patch
rename to debian/patches/features/all/rt/0291-rt-locking-Reenable-migration-accross-schedule.patch
index 3a9fed2..c48a80b 100644
--- a/debian/patches/features/all/rt/0292-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 292/332] rt/locking: Reenable migration accross schedule
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=61aa6a3bc9460eb0e588667ee1b9da7be1cb14de
+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
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/0293-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
similarity index 93%
rename from debian/patches/features/all/rt/0293-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
rename to debian/patches/features/all/rt/0292-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
index d3300d1..d4e248d 100644
--- a/debian/patches/features/all/rt/0293-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 293/332] scsi: qla2xxx: Use local_irq_save_nort() in
+Subject: [PATCH 292/337] 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=ca3c0096b6c5c1b374bbe21efd60a9788cc89851
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f16761892a04fd932342fe73ade25bffbd835f27
RT triggers the following:
diff --git a/debian/patches/features/all/rt/0294-net-Remove-preemption-disabling-in-netif_rx.patch b/debian/patches/features/all/rt/0293-net-Remove-preemption-disabling-in-netif_rx.patch
similarity index 87%
rename from debian/patches/features/all/rt/0294-net-Remove-preemption-disabling-in-netif_rx.patch
rename to debian/patches/features/all/rt/0293-net-Remove-preemption-disabling-in-netif_rx.patch
index 60e0ae4..7f5236a 100644
--- a/debian/patches/features/all/rt/0294-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 294/332] net: Remove preemption disabling in netif_rx()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=294b9476b4164b4cb38c46539195d8fe2d7c228f
+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
1)enqueue_to_backlog() (called from netif_rx) should be
bind to a particluar CPU. This can be achieved by
@@ -35,10 +35,10 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
-index ea1af7131ef4..83fdaccfdfca 100644
+index 665c7c0ca816..c7efe3bb42e8 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3819,7 +3819,7 @@ static int netif_rx_internal(struct sk_buff *skb)
+@@ -3822,7 +3822,7 @@ static int netif_rx_internal(struct sk_buff *skb)
struct rps_dev_flow voidflow, *rflow = &voidflow;
int cpu;
@@ -47,7 +47,7 @@ index ea1af7131ef4..83fdaccfdfca 100644
rcu_read_lock();
cpu = get_rps_cpu(skb->dev, skb, &rflow);
-@@ -3829,13 +3829,13 @@ static int netif_rx_internal(struct sk_buff *skb)
+@@ -3832,13 +3832,13 @@ static int netif_rx_internal(struct sk_buff *skb)
ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail);
rcu_read_unlock();
diff --git a/debian/patches/features/all/rt/0295-net-Another-local_irq_disable-kmalloc-headache.patch b/debian/patches/features/all/rt/0294-net-Another-local_irq_disable-kmalloc-headache.patch
similarity index 93%
rename from debian/patches/features/all/rt/0295-net-Another-local_irq_disable-kmalloc-headache.patch
rename to debian/patches/features/all/rt/0294-net-Another-local_irq_disable-kmalloc-headache.patch
index 6e5ba5f..70b0900 100644
--- a/debian/patches/features/all/rt/0295-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 295/332] net: Another local_irq_disable/kmalloc headache
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5e3d97fd2275c13a4e73c68ac5048091f9aa3d0
+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
Replace it by a local lock. Though that's pretty inefficient :(
diff --git a/debian/patches/features/all/rt/0296-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
similarity index 96%
rename from debian/patches/features/all/rt/0296-net-core-protect-users-of-napi_alloc_cache-against-r.patch
rename to debian/patches/features/all/rt/0295-net-core-protect-users-of-napi_alloc_cache-against-r.patch
index c8adc0f..9803b01 100644
--- a/debian/patches/features/all/rt/0296-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 296/332] net/core: protect users of napi_alloc_cache against
+Subject: [PATCH 295/337] 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=2bb682e5a3de393e64cff1e2bdf61098a147c64a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=da1da8c497f5da11aedb17ad80c51b716ce7f872
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
diff --git a/debian/patches/features/all/rt/0297-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
similarity index 95%
rename from debian/patches/features/all/rt/0297-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
rename to debian/patches/features/all/rt/0296-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
index 638b598..2c79163 100644
--- a/debian/patches/features/all/rt/0297-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 297/332] net: netfilter: Serialize xt_write_recseq sections on
+Subject: [PATCH 296/337] 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=ab2b0527b84ef452e6c04ce8808c9328c5be4a0f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95c43b67ac7a15d75be176d10670d7a743cd0927
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/0298-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
similarity index 95%
rename from debian/patches/features/all/rt/0298-net-Add-a-mutex-around-devnet_rename_seq.patch
rename to debian/patches/features/all/rt/0297-net-Add-a-mutex-around-devnet_rename_seq.patch
index 49255c0..803ca87 100644
--- a/debian/patches/features/all/rt/0298-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 298/332] net: Add a mutex around devnet_rename_seq
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1169e11ef929ce19c5b9529ae1f4fb87b73ad090
+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
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 83fdaccfdfca..4421ba0c253a 100644
+index c7efe3bb42e8..cfed44b8e175 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/0299-crypto-Convert-crypto-notifier-chain-to-SRCU.patch b/debian/patches/features/all/rt/0298-crypto-Convert-crypto-notifier-chain-to-SRCU.patch
similarity index 98%
rename from debian/patches/features/all/rt/0299-crypto-Convert-crypto-notifier-chain-to-SRCU.patch
rename to debian/patches/features/all/rt/0298-crypto-Convert-crypto-notifier-chain-to-SRCU.patch
index b60fe25..3c212d2 100644
--- a/debian/patches/features/all/rt/0299-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 299/332] crypto: Convert crypto notifier chain to SRCU
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f704ee5ef7e9db5ae25be3ec0b0f7f0c8e4c758
+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
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/0300-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
similarity index 95%
rename from debian/patches/features/all/rt/0300-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
rename to debian/patches/features/all/rt/0299-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
index a7b548f..fb3cc05 100644
--- a/debian/patches/features/all/rt/0300-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 300/332] lockdep: selftest: Only do hardirq context test for
+Subject: [PATCH 299/337] 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=5e59342c16cc6d0e7566047e06b699c36c99fcb4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3fd734170b4b1c14950b0e5ef97bde404f639a36
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/0301-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
similarity index 97%
rename from debian/patches/features/all/rt/0301-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
rename to debian/patches/features/all/rt/0300-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
index 0185c6f..12bb829 100644
--- a/debian/patches/features/all/rt/0301-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 301/332] lockdep: selftest: fix warnings due to missing
+Subject: [PATCH 300/337] 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=26fa3e85ce03f01b82ca2517d9e6dae1746bd579
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=feb7bb585143173a5bba966bb045c484ec961143
"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/0302-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
similarity index 93%
rename from debian/patches/features/all/rt/0302-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
rename to debian/patches/features/all/rt/0301-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
index 790d198..ffc1103 100644
--- a/debian/patches/features/all/rt/0302-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 302/332] perf: Make swevent hrtimer run in irq instead of
+Subject: [PATCH 301/337] 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=ec2c97b4eccd0c09ecbf55a7d1e49f93ef984db1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51a7a7fdcbf2d022114de83ad16e16e7a32e58f9
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 c774773ac3a4..5bccc706b710 100644
+index 36ff2d93f222..8b40c90077e7 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
-@@ -8389,6 +8389,7 @@ static void perf_swevent_init_hrtimer(struct perf_event *event)
+@@ -8390,6 +8390,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/0303-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
similarity index 84%
rename from debian/patches/features/all/rt/0303-kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch
rename to debian/patches/features/all/rt/0302-kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch
index 685d713..b4b2ee6 100644
--- a/debian/patches/features/all/rt/0303-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 303/332] 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=615f5777e5e0beffd879920618ba9ec837363da7
+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
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 5bccc706b710..c87f78e25de5 100644
+index 8b40c90077e7..554aebf7e88b 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/0304-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
similarity index 87%
rename from debian/patches/features/all/rt/0304-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
rename to debian/patches/features/all/rt/0303-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
index f06df8e..b694c58 100644
--- a/debian/patches/features/all/rt/0304-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 304/332] rcu: Disable RCU_FAST_NO_HZ on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0aff4b595c98c2d5a0f86dd5f9520b992d81060
+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
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/0305-rcu-Eliminate-softirq-processing-from-rcutree.patch b/debian/patches/features/all/rt/0304-rcu-Eliminate-softirq-processing-from-rcutree.patch
similarity index 97%
rename from debian/patches/features/all/rt/0305-rcu-Eliminate-softirq-processing-from-rcutree.patch
rename to debian/patches/features/all/rt/0304-rcu-Eliminate-softirq-processing-from-rcutree.patch
index 5435cee..838c0a0 100644
--- a/debian/patches/features/all/rt/0305-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 305/332] rcu: Eliminate softirq processing from rcutree
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c4c1c7ad61eb7686c20792cc5b449ef8998b7a80
+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
Running RCU out of softirq is a problem for some workloads that would
like to manage RCU core processing independently of other softirq work,
@@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
3 files changed, 123 insertions(+), 147 deletions(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
-index 7e423f05056f..dbee19478f09 100644
+index dc5638f86744..a7b11a29e03a 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -55,6 +55,11 @@
@@ -38,7 +38,7 @@ index 7e423f05056f..dbee19478f09 100644
#include "tree.h"
#include "rcu.h"
-@@ -3044,18 +3049,17 @@ __rcu_process_callbacks(struct rcu_state *rsp)
+@@ -3054,18 +3059,17 @@ __rcu_process_callbacks(struct rcu_state *rsp)
/*
* Do RCU core processing for the current CPU.
*/
@@ -59,7 +59,7 @@ index 7e423f05056f..dbee19478f09 100644
/*
* Schedule RCU callback invocation. If the specified type of RCU
* does not support RCU priority boosting, just do a direct call,
-@@ -3067,18 +3071,105 @@ static void invoke_rcu_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
+@@ -3077,18 +3081,105 @@ static void invoke_rcu_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
{
if (unlikely(!READ_ONCE(rcu_scheduler_fully_active)))
return;
@@ -172,7 +172,7 @@ index 7e423f05056f..dbee19478f09 100644
/*
* Handle any core-RCU processing required by a call_rcu() invocation.
-@@ -4268,7 +4359,6 @@ void __init rcu_init(void)
+@@ -4278,7 +4369,6 @@ void __init rcu_init(void)
if (dump_tree)
rcu_dump_rcu_node_tree(&rcu_sched_state);
__rcu_init_preempt();
diff --git a/debian/patches/features/all/rt/0306-rcu-make-RCU_BOOST-default-on-RT.patch b/debian/patches/features/all/rt/0305-rcu-make-RCU_BOOST-default-on-RT.patch
similarity index 91%
rename from debian/patches/features/all/rt/0306-rcu-make-RCU_BOOST-default-on-RT.patch
rename to debian/patches/features/all/rt/0305-rcu-make-RCU_BOOST-default-on-RT.patch
index 747ffee..7d44b07 100644
--- a/debian/patches/features/all/rt/0306-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 306/332] rcu: make RCU_BOOST default on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=238a49b3ed2e0426537abf530df86966e4b8589b
+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
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/0307-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
similarity index 90%
rename from debian/patches/features/all/rt/0307-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
rename to debian/patches/features/all/rt/0306-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
index b541e19..68f0d29 100644
--- a/debian/patches/features/all/rt/0307-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 307/332] 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=1bc4742f74045cf0be2add39fbe27d570c21ef54
+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
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/0308-sched-Add-support-for-lazy-preemption.patch b/debian/patches/features/all/rt/0307-sched-Add-support-for-lazy-preemption.patch
similarity index 95%
rename from debian/patches/features/all/rt/0308-sched-Add-support-for-lazy-preemption.patch
rename to debian/patches/features/all/rt/0307-sched-Add-support-for-lazy-preemption.patch
index 9f3a3ed..6b0ea78 100644
--- a/debian/patches/features/all/rt/0308-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 308/332] sched: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1fd34015331a60b14b265badbe91ac160a1299b5
+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
It has become an obsession to mitigate the determinism vs. throughput
loss of RT. Looking at the mainline semantics of preemption points
@@ -200,7 +200,7 @@ index 2873baf5372a..eb1a108f17ca 100644
#ifndef CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES
static inline int arch_within_stack_frames(const void * const stack,
diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
-index 28aa5381878e..15154b13a53b 100644
+index 4f8bb9c8eed8..5c36934ec2bc 100644
--- a/include/linux/trace_events.h
+++ b/include/linux/trace_events.h
@@ -58,6 +58,7 @@ struct trace_entry {
@@ -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 08c9047375e1..053876b85076 100644
+index 2a4c083bf44f..8a91130d4f17 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 08c9047375e1..053876b85076 100644
void resched_cpu(int cpu)
{
struct rq *rq = cpu_rq(cpu);
-@@ -2543,6 +2575,9 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p)
+@@ -2544,6 +2576,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 08c9047375e1..053876b85076 100644
#ifdef CONFIG_SMP
plist_node_init(&p->pushable_tasks, MAX_PRIO);
RB_CLEAR_NODE(&p->pushable_dl_tasks);
-@@ -3374,6 +3409,7 @@ void migrate_disable(void)
+@@ -3375,6 +3410,7 @@ void migrate_disable(void)
}
preempt_disable();
@@ -289,7 +289,7 @@ index 08c9047375e1..053876b85076 100644
pin_current_cpu();
p->migrate_disable = 1;
preempt_enable();
-@@ -3413,6 +3449,7 @@ void migrate_enable(void)
+@@ -3414,6 +3450,7 @@ void migrate_enable(void)
unpin_current_cpu();
preempt_enable();
@@ -297,7 +297,7 @@ index 08c9047375e1..053876b85076 100644
}
EXPORT_SYMBOL(migrate_enable);
#endif
-@@ -3542,6 +3579,7 @@ static void __sched notrace __schedule(bool preempt)
+@@ -3543,6 +3580,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 08c9047375e1..053876b85076 100644
clear_preempt_need_resched();
rq->clock_skip_update = 0;
-@@ -3687,6 +3725,30 @@ static void __sched notrace preempt_schedule_common(void)
+@@ -3688,6 +3726,30 @@ static void __sched notrace preempt_schedule_common(void)
} while (need_resched());
}
@@ -336,7 +336,7 @@ index 08c9047375e1..053876b85076 100644
#ifdef CONFIG_PREEMPT
/*
* this is the entry point to schedule() from in-kernel preemption
-@@ -3701,7 +3763,8 @@ asmlinkage __visible void __sched notrace preempt_schedule(void)
+@@ -3702,7 +3764,8 @@ asmlinkage __visible void __sched notrace preempt_schedule(void)
*/
if (likely(!preemptible()))
return;
@@ -346,7 +346,7 @@ index 08c9047375e1..053876b85076 100644
preempt_schedule_common();
}
NOKPROBE_SYMBOL(preempt_schedule);
-@@ -3728,6 +3791,9 @@ asmlinkage __visible void __sched notrace preempt_schedule_notrace(void)
+@@ -3729,6 +3792,9 @@ asmlinkage __visible void __sched notrace preempt_schedule_notrace(void)
if (likely(!preemptible()))
return;
@@ -356,7 +356,7 @@ index 08c9047375e1..053876b85076 100644
do {
/*
* Because the function tracer can trace preempt_count_sub()
-@@ -5535,7 +5601,9 @@ void init_idle(struct task_struct *idle, int cpu)
+@@ -5536,7 +5602,9 @@ void init_idle(struct task_struct *idle, int cpu)
/* Set the preempt count _outside_ the spinlocks! */
init_idle_preempt_count(idle, cpu);
@@ -478,7 +478,7 @@ index 662a9e43031c..16df04073b57 100644
extern void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime);
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index b2711ef6ed8e..a6d7b662f67d 100644
+index 2b7caaae94a2..b9cf63aba3f9 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -1897,6 +1897,7 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags,
@@ -499,7 +499,7 @@ index b2711ef6ed8e..a6d7b662f67d 100644
(test_preempt_need_resched() ? TRACE_FLAG_PREEMPT_RESCHED : 0);
entry->migrate_disable = (tsk) ? __migrate_disabled(tsk) & 0xFF : 0;
-@@ -2894,15 +2896,17 @@ get_total_entries(struct trace_buffer *buf,
+@@ -2900,15 +2902,17 @@ get_total_entries(struct trace_buffer *buf,
static void print_lat_help_header(struct seq_file *m)
{
@@ -526,7 +526,7 @@ index b2711ef6ed8e..a6d7b662f67d 100644
}
static void print_event_info(struct trace_buffer *buf, struct seq_file *m)
-@@ -2928,11 +2932,14 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file
+@@ -2934,11 +2938,14 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file
print_event_info(buf, m);
seq_puts(m, "# _-----=> irqs-off\n"
"# / _----=> need-resched\n"
diff --git a/debian/patches/features/all/rt/0309-ftrace-Fix-trace-header-alignment.patch b/debian/patches/features/all/rt/0308-ftrace-Fix-trace-header-alignment.patch
similarity index 91%
rename from debian/patches/features/all/rt/0309-ftrace-Fix-trace-header-alignment.patch
rename to debian/patches/features/all/rt/0308-ftrace-Fix-trace-header-alignment.patch
index 6ca98b5..467cc90 100644
--- a/debian/patches/features/all/rt/0309-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 309/332] ftrace: Fix trace header alignment
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b1a47da584cf53963834ac07a6cf73c6e53497aa
+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
Line up helper arrows to the right column.
@@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index a6d7b662f67d..efaba0dac5da 100644
+index b9cf63aba3f9..035e61604455 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
-@@ -2896,17 +2896,17 @@ get_total_entries(struct trace_buffer *buf,
+@@ -2902,17 +2902,17 @@ get_total_entries(struct trace_buffer *buf,
static void print_lat_help_header(struct seq_file *m)
{
@@ -46,7 +46,7 @@ index a6d7b662f67d..efaba0dac5da 100644
}
static void print_event_info(struct trace_buffer *buf, struct seq_file *m)
-@@ -2935,11 +2935,11 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file
+@@ -2941,11 +2941,11 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file
"# |/ _-----=> need-resched_lazy\n"
"# || / _---=> hardirq/softirq\n"
"# ||| / _--=> preempt-depth\n"
diff --git a/debian/patches/features/all/rt/0310-x86-Support-for-lazy-preemption.patch b/debian/patches/features/all/rt/0309-x86-Support-for-lazy-preemption.patch
similarity index 98%
rename from debian/patches/features/all/rt/0310-x86-Support-for-lazy-preemption.patch
rename to debian/patches/features/all/rt/0309-x86-Support-for-lazy-preemption.patch
index bf958f0..f339423 100644
--- a/debian/patches/features/all/rt/0310-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 310/332] x86: Support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=59d4e7cec3064d97cdc11074516abca0ac9491b6
+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
Implement the x86 pieces for lazy preempt.
diff --git a/debian/patches/features/all/rt/0311-arm-Add-support-for-lazy-preemption.patch b/debian/patches/features/all/rt/0310-arm-Add-support-for-lazy-preemption.patch
similarity index 98%
rename from debian/patches/features/all/rt/0311-arm-Add-support-for-lazy-preemption.patch
rename to debian/patches/features/all/rt/0310-arm-Add-support-for-lazy-preemption.patch
index 865f567..dd9bf17 100644
--- a/debian/patches/features/all/rt/0311-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 311/332] arm: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=08d22e203a57436afcdc9b437cea15118fab1f42
+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
Implement the arm pieces for lazy preempt.
diff --git a/debian/patches/features/all/rt/0312-powerpc-Add-support-for-lazy-preemption.patch b/debian/patches/features/all/rt/0311-powerpc-Add-support-for-lazy-preemption.patch
similarity index 97%
rename from debian/patches/features/all/rt/0312-powerpc-Add-support-for-lazy-preemption.patch
rename to debian/patches/features/all/rt/0311-powerpc-Add-support-for-lazy-preemption.patch
index fb074c8..d8ddda4 100644
--- a/debian/patches/features/all/rt/0312-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 312/332] powerpc: Add support for lazy preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bf63e400fedaae6bf4334b2c510155b75f9fb63c
+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
Implement the powerpc pieces for lazy preempt.
@@ -141,7 +141,7 @@ index 3841d749a430..6dbaeff192b9 100644
andi. r0,r9,_TIF_USER_WORK_MASK
beq restore_user
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
-index 767ef6d68c9e..2cb4d5552319 100644
+index caa659671599..891080c4a41e 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -656,7 +656,7 @@ _GLOBAL(ret_from_except_lite)
diff --git a/debian/patches/features/all/rt/0313-arch-arm64-Add-lazy-preempt-support.patch b/debian/patches/features/all/rt/0312-arch-arm64-Add-lazy-preempt-support.patch
similarity index 97%
rename from debian/patches/features/all/rt/0313-arch-arm64-Add-lazy-preempt-support.patch
rename to debian/patches/features/all/rt/0312-arch-arm64-Add-lazy-preempt-support.patch
index 75e71e6..ffbbd99 100644
--- a/debian/patches/features/all/rt/0313-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 313/332] arch/arm64: Add lazy preempt support
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f80ebf3d6d6d7558678ecf1dc35d6e57618579f7
+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
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/0314-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
similarity index 94%
rename from debian/patches/features/all/rt/0314-sched-migrate-disable-handle-updated-task-mask-mg-di.patch
rename to debian/patches/features/all/rt/0313-sched-migrate-disable-handle-updated-task-mask-mg-di.patch
index c8e2bb6..43afe37 100644
--- a/debian/patches/features/all/rt/0314-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 314/332] sched/migrate disable: handle updated task-mask
+Subject: [PATCH 313/337] 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=9b573d7609dbb7cd332735c77896509455a105f0
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0cc18eca766071aa16020d7b59713631fc83b2f3
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,7 +34,7 @@ index 9ff3bc25e63f..e775696b480a 100644
int migrate_disable_atomic;
# endif
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 053876b85076..2a9a715d38ca 100644
+index 8a91130d4f17..d0312ccba0d3 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
@@ -79,7 +79,7 @@ index 053876b85076..2a9a715d38ca 100644
static DEFINE_PER_CPU(struct cpumask, sched_cpumasks);
static DEFINE_MUTEX(sched_down_mutex);
static cpumask_t sched_down_cpumask;
-@@ -3447,6 +3457,43 @@ void migrate_enable(void)
+@@ -3448,6 +3458,43 @@ void migrate_enable(void)
*/
p->migrate_disable = 0;
diff --git a/debian/patches/features/all/rt/0315-leds-trigger-disable-CPU-trigger-on-RT.patch b/debian/patches/features/all/rt/0314-leds-trigger-disable-CPU-trigger-on-RT.patch
similarity index 93%
rename from debian/patches/features/all/rt/0315-leds-trigger-disable-CPU-trigger-on-RT.patch
rename to debian/patches/features/all/rt/0314-leds-trigger-disable-CPU-trigger-on-RT.patch
index cbf9665..2281686 100644
--- a/debian/patches/features/all/rt/0315-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 315/332] leds: trigger: disable CPU trigger on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=07cdbd16de8013978d6256e3e327466eed956ea0
+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
as it triggers:
|CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141
diff --git a/debian/patches/features/all/rt/0316-mmci-Remove-bogus-local_irq_save.patch b/debian/patches/features/all/rt/0315-mmci-Remove-bogus-local_irq_save.patch
similarity index 91%
rename from debian/patches/features/all/rt/0316-mmci-Remove-bogus-local_irq_save.patch
rename to debian/patches/features/all/rt/0315-mmci-Remove-bogus-local_irq_save.patch
index 6879ac3..9055e74 100644
--- a/debian/patches/features/all/rt/0316-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 316/332] mmci: Remove bogus local_irq_save()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=afccc25a2e764aa793c5e86f3424208f84c95e2e
+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
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/0317-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
similarity index 91%
rename from debian/patches/features/all/rt/0317-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
rename to debian/patches/features/all/rt/0316-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
index c88bf28..7ac929c 100644
--- a/debian/patches/features/all/rt/0317-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 317/332] cpufreq: drop K8's driver from beeing selected
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f94a8c31e077c97d2c994e2d5817f8f70148f6ec
+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
Ralf posted a picture of a backtrace from
diff --git a/debian/patches/features/all/rt/0318-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
similarity index 95%
rename from debian/patches/features/all/rt/0318-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
rename to debian/patches/features/all/rt/0317-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
index e05ff99..8251783 100644
--- a/debian/patches/features/all/rt/0318-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 318/332] connector/cn_proc: Protect send_msg() with a local
+Subject: [PATCH 317/337] 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=b96facd14e2546c5d9512cfa05dfe0df98c34637
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8815a11ffa595f5b39c713ed75545a983343b48b
|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/0319-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
similarity index 97%
rename from debian/patches/features/all/rt/0319-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
rename to debian/patches/features/all/rt/0318-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
index 9312222..7cabf50 100644
--- a/debian/patches/features/all/rt/0319-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 319/332] drivers/block/zram: Replace bit spinlocks with
+Subject: [PATCH 318/337] 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=84facf9b19fb27c399ea670c5e129812c76dce5b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b667dd9e56ca40bf1d55032aeeb11484c2935871
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/0320-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
similarity index 96%
rename from debian/patches/features/all/rt/0320-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
rename to debian/patches/features/all/rt/0319-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
index aac1d1d..3b38e5e 100644
--- a/debian/patches/features/all/rt/0320-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 320/332] drivers/zram: Don't disable preemption in
+Subject: [PATCH 319/337] 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=04eb7f1deeabf46369100daa09068340e21631c4
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d80fa696e6e94f272e238d727cca1084e7c275d
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/0321-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
similarity index 94%
rename from debian/patches/features/all/rt/0321-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch
rename to debian/patches/features/all/rt/0320-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch
index 2af2b08..cff816e 100644
--- a/debian/patches/features/all/rt/0321-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 321/332] 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=cffdd5cd15257f13f5ed45c010324b72479b93b7
+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
This tracepoint is responsible for:
diff --git a/debian/patches/features/all/rt/0322-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
similarity index 82%
rename from debian/patches/features/all/rt/0322-i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch
rename to debian/patches/features/all/rt/0321-i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch
index d014664..32478e4 100644
--- a/debian/patches/features/all/rt/0322-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 322/332] i915: bogus warning from i915 when running on
+Subject: [PATCH 321/337] 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=0f8c964e22143301d0ecb677fb4663f28c6b6b0c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98c75b75d44e32da85c70141e297502666d58bde
The i915 driver has a 'WARN_ON(!in_interrupt())' in the display
handler, which whines constanly on the RT kernel (since the interrupt
@@ -19,10 +19,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index f8efd20e4a90..5abe6e027888 100644
+index ce32303b3013..c0a53bf2e952 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -12134,7 +12134,7 @@ void intel_check_page_flip(struct drm_i915_private *dev_priv, int pipe)
+@@ -12138,7 +12138,7 @@ void intel_check_page_flip(struct drm_i915_private *dev_priv, int pipe)
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
struct intel_flip_work *work;
diff --git a/debian/patches/features/all/rt/0323-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
similarity index 94%
rename from debian/patches/features/all/rt/0323-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
rename to debian/patches/features/all/rt/0322-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
index 7dd027c..c11748b 100644
--- a/debian/patches/features/all/rt/0323-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 323/332] drm,radeon,i915: Use preempt_disable/enable_rt()
+Subject: [PATCH 322/337] 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=ddf96f5101dade0400f1077372c8977b83195749
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9efc3bb5c5f302b64f1e92836d30b1d8a8d21442
DRM folks identified the spots, so use them.
diff --git a/debian/patches/features/all/rt/0324-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
similarity index 97%
rename from debian/patches/features/all/rt/0324-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
rename to debian/patches/features/all/rt/0323-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
index 354a4c6..58dee93 100644
--- a/debian/patches/features/all/rt/0324-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 324/332] drm,i915: Use local_lock/unlock_irq() in
+Subject: [PATCH 323/337] 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=80ddf4652b61ffa1512c4e5f344e6535701286a3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cbf68de114b15328aefe29b2d5320b55b76a7391
[ 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/0325-cgroups-use-simple-wait-in-css_release.patch b/debian/patches/features/all/rt/0324-cgroups-use-simple-wait-in-css_release.patch
similarity index 96%
rename from debian/patches/features/all/rt/0325-cgroups-use-simple-wait-in-css_release.patch
rename to debian/patches/features/all/rt/0324-cgroups-use-simple-wait-in-css_release.patch
index eae7c25..2786c8f 100644
--- a/debian/patches/features/all/rt/0325-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 325/332] cgroups: use simple wait in css_release()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=71e12d05dbe7eff545c41fb01a780f9672a368fe
+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
To avoid:
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
diff --git a/debian/patches/features/all/rt/0326-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch b/debian/patches/features/all/rt/0325-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch
similarity index 84%
rename from debian/patches/features/all/rt/0326-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch
rename to debian/patches/features/all/rt/0325-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch
index 0affb2e..0b0c2a9 100644
--- a/debian/patches/features/all/rt/0326-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 326/332] memcontrol: Prevent scheduling while atomic in cgroup
+Subject: [PATCH 325/337] memcontrol: Prevent scheduling while atomic in cgroup
code
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d3f5a30b551332480ed1fb3641ce3f9cf42efd88
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=577f97efb5e19ddfd29e8697c4eccd05faa27021
mm, memcg: make refill_stock() use get_cpu_light()
@@ -43,10 +43,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index 58d032994c2d..1f2ebc924916 100644
+index c04403033aec..12b94909ba7b 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
-@@ -1695,6 +1695,7 @@ struct memcg_stock_pcp {
+@@ -1698,6 +1698,7 @@ struct memcg_stock_pcp {
#define FLUSHING_CACHED_CHARGE 0
};
static DEFINE_PER_CPU(struct memcg_stock_pcp, memcg_stock);
@@ -54,7 +54,7 @@ index 58d032994c2d..1f2ebc924916 100644
static DEFINE_MUTEX(percpu_charge_mutex);
/**
-@@ -1717,7 +1718,7 @@ static bool consume_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
+@@ -1720,7 +1721,7 @@ static bool consume_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
if (nr_pages > CHARGE_BATCH)
return ret;
@@ -63,7 +63,7 @@ index 58d032994c2d..1f2ebc924916 100644
stock = this_cpu_ptr(&memcg_stock);
if (memcg == stock->cached && stock->nr_pages >= nr_pages) {
-@@ -1725,7 +1726,7 @@ static bool consume_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
+@@ -1728,7 +1729,7 @@ static bool consume_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
ret = true;
}
@@ -72,7 +72,7 @@ index 58d032994c2d..1f2ebc924916 100644
return ret;
}
-@@ -1752,13 +1753,13 @@ static void drain_local_stock(struct work_struct *dummy)
+@@ -1755,13 +1756,13 @@ static void drain_local_stock(struct work_struct *dummy)
struct memcg_stock_pcp *stock;
unsigned long flags;
@@ -88,7 +88,7 @@ index 58d032994c2d..1f2ebc924916 100644
}
/*
-@@ -1770,7 +1771,7 @@ static void refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
+@@ -1773,7 +1774,7 @@ static void refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
struct memcg_stock_pcp *stock;
unsigned long flags;
@@ -97,7 +97,7 @@ index 58d032994c2d..1f2ebc924916 100644
stock = this_cpu_ptr(&memcg_stock);
if (stock->cached != memcg) { /* reset if necessary */
-@@ -1779,7 +1780,7 @@ static void refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
+@@ -1782,7 +1783,7 @@ static void refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
}
stock->nr_pages += nr_pages;
diff --git a/debian/patches/features/all/rt/0327-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
similarity index 91%
rename from debian/patches/features/all/rt/0327-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
rename to debian/patches/features/all/rt/0326-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
index 6c3412e..8c7e8e5 100644
--- a/debian/patches/features/all/rt/0327-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 327/332] cpuset: Convert callback_lock to raw_spinlock_t
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e60512952aceb7031e02da0e0f2d740e4f4c8ec2
+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
The two commits below add up to a cpuset might_sleep() splat for RT:
@@ -50,7 +50,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
-index 247afb108343..331ab910e5f6 100644
+index 511b1dd8ff09..1dd63833ecdc 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -285,7 +285,7 @@ static struct cpuset top_cpuset = {
@@ -140,7 +140,7 @@ index 247afb108343..331ab910e5f6 100644
return ret;
}
-@@ -1990,12 +1990,12 @@ static int cpuset_css_online(struct cgroup_subsys_state *css)
+@@ -1991,12 +1991,12 @@ static int cpuset_css_online(struct cgroup_subsys_state *css)
cpuset_inc();
@@ -155,7 +155,7 @@ index 247afb108343..331ab910e5f6 100644
if (!test_bit(CGRP_CPUSET_CLONE_CHILDREN, &css->cgroup->flags))
goto out_unlock;
-@@ -2022,12 +2022,12 @@ static int cpuset_css_online(struct cgroup_subsys_state *css)
+@@ -2023,12 +2023,12 @@ static int cpuset_css_online(struct cgroup_subsys_state *css)
}
rcu_read_unlock();
@@ -170,7 +170,7 @@ index 247afb108343..331ab910e5f6 100644
out_unlock:
mutex_unlock(&cpuset_mutex);
return 0;
-@@ -2066,7 +2066,7 @@ static void cpuset_css_free(struct cgroup_subsys_state *css)
+@@ -2067,7 +2067,7 @@ static void cpuset_css_free(struct cgroup_subsys_state *css)
static void cpuset_bind(struct cgroup_subsys_state *root_css)
{
mutex_lock(&cpuset_mutex);
@@ -179,7 +179,7 @@ index 247afb108343..331ab910e5f6 100644
if (cgroup_subsys_on_dfl(cpuset_cgrp_subsys)) {
cpumask_copy(top_cpuset.cpus_allowed, cpu_possible_mask);
-@@ -2077,7 +2077,7 @@ static void cpuset_bind(struct cgroup_subsys_state *root_css)
+@@ -2078,7 +2078,7 @@ static void cpuset_bind(struct cgroup_subsys_state *root_css)
top_cpuset.mems_allowed = top_cpuset.effective_mems;
}
@@ -188,7 +188,7 @@ index 247afb108343..331ab910e5f6 100644
mutex_unlock(&cpuset_mutex);
}
-@@ -2178,12 +2178,12 @@ hotplug_update_tasks_legacy(struct cpuset *cs,
+@@ -2179,12 +2179,12 @@ hotplug_update_tasks_legacy(struct cpuset *cs,
{
bool is_empty;
@@ -203,7 +203,7 @@ index 247afb108343..331ab910e5f6 100644
/*
* Don't call update_tasks_cpumask() if the cpuset becomes empty,
-@@ -2220,10 +2220,10 @@ hotplug_update_tasks(struct cpuset *cs,
+@@ -2221,10 +2221,10 @@ hotplug_update_tasks(struct cpuset *cs,
if (nodes_empty(*new_mems))
*new_mems = parent_cs(cs)->effective_mems;
@@ -216,7 +216,7 @@ index 247afb108343..331ab910e5f6 100644
if (cpus_updated)
update_tasks_cpumask(cs);
-@@ -2309,21 +2309,21 @@ static void cpuset_hotplug_workfn(struct work_struct *work)
+@@ -2317,21 +2317,21 @@ static void cpuset_hotplug_workfn(struct work_struct *work)
/* synchronize cpus_allowed to cpu_active_mask */
if (cpus_updated) {
@@ -242,7 +242,7 @@ index 247afb108343..331ab910e5f6 100644
update_tasks_nodemask(&top_cpuset);
}
-@@ -2421,11 +2421,11 @@ void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask)
+@@ -2436,11 +2436,11 @@ void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask)
{
unsigned long flags;
@@ -256,7 +256,7 @@ index 247afb108343..331ab910e5f6 100644
}
void cpuset_cpus_allowed_fallback(struct task_struct *tsk)
-@@ -2473,11 +2473,11 @@ nodemask_t cpuset_mems_allowed(struct task_struct *tsk)
+@@ -2488,11 +2488,11 @@ nodemask_t cpuset_mems_allowed(struct task_struct *tsk)
nodemask_t mask;
unsigned long flags;
@@ -270,7 +270,7 @@ index 247afb108343..331ab910e5f6 100644
return mask;
}
-@@ -2569,14 +2569,14 @@ bool __cpuset_node_allowed(int node, gfp_t gfp_mask)
+@@ -2584,14 +2584,14 @@ bool __cpuset_node_allowed(int node, gfp_t gfp_mask)
return true;
/* Not hardwall and node outside mems_allowed: scan up cpusets */
diff --git a/debian/patches/features/all/rt/0328-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
similarity index 94%
rename from debian/patches/features/all/rt/0328-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch
rename to debian/patches/features/all/rt/0327-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch
index 74b9f5b..51e109c 100644
--- a/debian/patches/features/all/rt/0328-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 328/332] rt,ntp: Move call to schedule_delayed_work() to
+Subject: [PATCH 327/337] 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=0e9098c00810753a481a626600bab0d904cc83e5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=721d694df10f69efb96da696b7283e41f4482383
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/0329-md-disable-bcache.patch b/debian/patches/features/all/rt/0328-md-disable-bcache.patch
similarity index 92%
rename from debian/patches/features/all/rt/0329-md-disable-bcache.patch
rename to debian/patches/features/all/rt/0328-md-disable-bcache.patch
index 7f0accf..63a815d 100644
--- a/debian/patches/features/all/rt/0329-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 329/332] md: disable bcache
+Subject: [PATCH 328/337] 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=8a4fa1e30ea45c38a87e857d0b976014ba6c155c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=50678491d16b03a77fbb2ba1c27a74879f7c9f7d
It uses anon semaphores
|drivers/md/bcache/request.c: In function ‘cached_dev_write_complete’:
diff --git a/debian/patches/features/all/rt/0330-workqueue-Prevent-deadlock-stall-on-RT.patch b/debian/patches/features/all/rt/0329-workqueue-Prevent-deadlock-stall-on-RT.patch
similarity index 88%
rename from debian/patches/features/all/rt/0330-workqueue-Prevent-deadlock-stall-on-RT.patch
rename to debian/patches/features/all/rt/0329-workqueue-Prevent-deadlock-stall-on-RT.patch
index 76ded2c..8dbb676 100644
--- a/debian/patches/features/all/rt/0330-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 330/332] workqueue: Prevent deadlock/stall on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=818b007c3708572fa30c3db794d8eef19da58455
+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
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 2a9a715d38ca..0486c2a8a8d5 100644
+index d0312ccba0d3..5dce33351ae6 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3674,9 +3674,8 @@ void __noreturn do_task_dead(void)
+@@ -3675,9 +3675,8 @@ void __noreturn do_task_dead(void)
static inline void sched_submit_work(struct task_struct *tsk)
{
@@ -56,7 +56,7 @@ index 2a9a715d38ca..0486c2a8a8d5 100644
/*
* If a worker went to sleep, notify and ask workqueue whether
* it wants to wake up a task to maintain concurrency.
-@@ -3684,6 +3683,10 @@ static inline void sched_submit_work(struct task_struct *tsk)
+@@ -3685,6 +3684,10 @@ static inline void sched_submit_work(struct task_struct *tsk)
if (tsk->flags & PF_WQ_WORKER)
wq_worker_sleeping(tsk);
@@ -68,10 +68,10 @@ index 2a9a715d38ca..0486c2a8a8d5 100644
* If we are going to sleep and we have plugged IO queued,
* make sure to submit it to avoid deadlocks.
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 7649d8181b21..f8da6bd7702b 100644
+index 4bb9113bd1f9..beee8ad4b9ea 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
-@@ -123,6 +123,11 @@ enum {
+@@ -124,6 +124,11 @@ enum {
* cpu or grabbing pool->lock is enough for read access. If
* POOL_DISASSOCIATED is set, it's identical to L.
*
@@ -83,7 +83,7 @@ index 7649d8181b21..f8da6bd7702b 100644
* A: pool->attach_mutex protected.
*
* PL: wq_pool_mutex protected.
-@@ -428,6 +433,31 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
+@@ -429,6 +434,31 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
if (({ assert_rcu_or_wq_mutex(wq); false; })) { } \
else
@@ -115,7 +115,7 @@ index 7649d8181b21..f8da6bd7702b 100644
#ifdef CONFIG_DEBUG_OBJECTS_WORK
static struct debug_obj_descr work_debug_descr;
-@@ -834,10 +864,16 @@ static struct worker *first_idle_worker(struct worker_pool *pool)
+@@ -835,10 +865,16 @@ static struct worker *first_idle_worker(struct worker_pool *pool)
*/
static void wake_up_worker(struct worker_pool *pool)
{
@@ -133,7 +133,7 @@ index 7649d8181b21..f8da6bd7702b 100644
}
/**
-@@ -866,7 +902,7 @@ void wq_worker_running(struct task_struct *task)
+@@ -867,7 +903,7 @@ void wq_worker_running(struct task_struct *task)
*/
void wq_worker_sleeping(struct task_struct *task)
{
@@ -142,7 +142,7 @@ index 7649d8181b21..f8da6bd7702b 100644
struct worker_pool *pool;
/*
-@@ -883,26 +919,18 @@ void wq_worker_sleeping(struct task_struct *task)
+@@ -884,26 +920,18 @@ void wq_worker_sleeping(struct task_struct *task)
return;
worker->sleeping = 1;
@@ -172,7 +172,7 @@ index 7649d8181b21..f8da6bd7702b 100644
}
/**
-@@ -1631,7 +1659,9 @@ static void worker_enter_idle(struct worker *worker)
+@@ -1632,7 +1660,9 @@ static void worker_enter_idle(struct worker *worker)
worker->last_active = jiffies;
/* idle_list is LIFO */
@@ -182,7 +182,7 @@ index 7649d8181b21..f8da6bd7702b 100644
if (too_many_workers(pool) && !timer_pending(&pool->idle_timer))
mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT);
-@@ -1664,7 +1694,9 @@ static void worker_leave_idle(struct worker *worker)
+@@ -1665,7 +1695,9 @@ static void worker_leave_idle(struct worker *worker)
return;
worker_clr_flags(worker, WORKER_IDLE);
pool->nr_idle--;
@@ -192,7 +192,7 @@ index 7649d8181b21..f8da6bd7702b 100644
}
static struct worker *alloc_worker(int node)
-@@ -1830,7 +1862,9 @@ static void destroy_worker(struct worker *worker)
+@@ -1831,7 +1863,9 @@ static void destroy_worker(struct worker *worker)
pool->nr_workers--;
pool->nr_idle--;
diff --git a/debian/patches/features/all/rt/0331-Add-localversion-for-RT-release.patch b/debian/patches/features/all/rt/0330-Add-localversion-for-RT-release.patch
similarity index 78%
rename from debian/patches/features/all/rt/0331-Add-localversion-for-RT-release.patch
rename to debian/patches/features/all/rt/0330-Add-localversion-for-RT-release.patch
index 623e30a..6eeec30 100644
--- a/debian/patches/features/all/rt/0331-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 331/332] Add localversion for -RT release
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e48784a7c79999c2e4d7f41442a06891213f7a0a
+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
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
new file mode 100644
index 0000000..fdb67c7
--- /dev/null
+++ b/debian/patches/features/all/rt/0331-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch
@@ -0,0 +1,41 @@
+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()
+ smp_processor_id() use in preemptible code
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb2d5847636dce546facf3f722cce8d2a3e716b9
+
+Use get_local_ptr() instead this_cpu_ptr() to avoid a warning regarding
+smp_processor_id() in preemptible code.
+raw_cpu_ptr() would be fine, too because the per-CPU data structure is
+protected with a spin lock so it does not matter much if we take the
+other one.
+
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Mike Galbraith <efault at gmx.de>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt at goodmis.org>
+---
+ drivers/block/zram/zcomp.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/block/zram/zcomp.c b/drivers/block/zram/zcomp.c
+index fa8329ad79fd..8c93ee150ee8 100644
+--- a/drivers/block/zram/zcomp.c
++++ b/drivers/block/zram/zcomp.c
+@@ -120,7 +120,7 @@ struct zcomp_strm *zcomp_stream_get(struct zcomp *comp)
+ {
+ struct zcomp_strm *zstrm;
+
+- zstrm = *this_cpu_ptr(comp->stream);
++ zstrm = *get_local_ptr(comp->stream);
+ spin_lock(&zstrm->zcomp_lock);
+ return zstrm;
+ }
+@@ -131,6 +131,7 @@ void zcomp_stream_put(struct zcomp *comp)
+
+ zstrm = *this_cpu_ptr(comp->stream);
+ spin_unlock(&zstrm->zcomp_lock);
++ put_local_ptr(zstrm);
+ }
+
+ int zcomp_compress(struct zcomp_strm *zstrm,
diff --git a/debian/patches/features/all/rt/0332-Linux-4.9.47-rt37-REBASE.patch b/debian/patches/features/all/rt/0332-Linux-4.9.47-rt37-REBASE.patch
deleted file mode 100644
index c1bcb46..0000000
--- a/debian/patches/features/all/rt/0332-Linux-4.9.47-rt37-REBASE.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-From: Steven Rostedt <rostedt at goodmis.org>
-Date: Wed, 5 Jul 2017 13:15:02 -0400
-Subject: [PATCH 332/332] Linux 4.9.47-rt37 REBASE
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c18af5ed4d9406bc158ab1f76773d89727870422
-
-Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
----
- localversion-rt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/localversion-rt b/localversion-rt
-index 9a218ca23053..a3b2408c1da6 100644
---- a/localversion-rt
-+++ b/localversion-rt
-@@ -1 +1 @@
---rt23
-+-rt37
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
new file mode 100644
index 0000000..9e0eea4
--- /dev/null
+++ b/debian/patches/features/all/rt/0332-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
@@ -0,0 +1,129 @@
+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
+ side
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5338a587a9b6b2bbfbb6640990148c7bca43921c
+
+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
+held. The problem is that during the write process on RT the preemption
+is still enabled and if this process is interrupted by a reader with RT
+priority then we lock up.
+To avoid that lock up I am disabling the preemption during the update.
+The rename of i_dir_seq is here to ensure to catch new write sides in
+future.
+
+Cc: stable-rt at vger.kernel.org
+Reported-by: Oleg.Karfich at wago.com
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt at goodmis.org>
+---
+ fs/dcache.c | 12 +++++++-----
+ fs/inode.c | 2 +-
+ fs/libfs.c | 6 ++++--
+ include/linux/fs.h | 2 +-
+ 4 files changed, 13 insertions(+), 9 deletions(-)
+
+diff --git a/fs/dcache.c b/fs/dcache.c
+index 37948da28742..f0719b2f1be5 100644
+--- a/fs/dcache.c
++++ b/fs/dcache.c
+@@ -2409,9 +2409,10 @@ EXPORT_SYMBOL(d_rehash);
+ static inline unsigned start_dir_add(struct inode *dir)
+ {
+
++ preempt_disable_rt();
+ for (;;) {
+- unsigned n = dir->i_dir_seq;
+- if (!(n & 1) && cmpxchg(&dir->i_dir_seq, n, n + 1) == n)
++ unsigned n = dir->__i_dir_seq;
++ if (!(n & 1) && cmpxchg(&dir->__i_dir_seq, n, n + 1) == n)
+ return n;
+ cpu_relax();
+ }
+@@ -2419,7 +2420,8 @@ static inline unsigned start_dir_add(struct inode *dir)
+
+ static inline void end_dir_add(struct inode *dir, unsigned n)
+ {
+- smp_store_release(&dir->i_dir_seq, n + 2);
++ smp_store_release(&dir->__i_dir_seq, n + 2);
++ preempt_enable_rt();
+ }
+
+ static void d_wait_lookup(struct dentry *dentry)
+@@ -2455,7 +2457,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent,
+
+ retry:
+ rcu_read_lock();
+- seq = smp_load_acquire(&parent->d_inode->i_dir_seq) & ~1;
++ seq = smp_load_acquire(&parent->d_inode->__i_dir_seq) & ~1;
+ r_seq = read_seqbegin(&rename_lock);
+ dentry = __d_lookup_rcu(parent, name, &d_seq);
+ if (unlikely(dentry)) {
+@@ -2477,7 +2479,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent,
+ goto retry;
+ }
+ hlist_bl_lock(b);
+- if (unlikely(parent->d_inode->i_dir_seq != seq)) {
++ if (unlikely(parent->d_inode->__i_dir_seq != seq)) {
+ hlist_bl_unlock(b);
+ rcu_read_unlock();
+ goto retry;
+diff --git a/fs/inode.c b/fs/inode.c
+index 920aa0b1c6b0..3d6b5fd1bf06 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -153,7 +153,7 @@ int inode_init_always(struct super_block *sb, struct inode *inode)
+ inode->i_bdev = NULL;
+ inode->i_cdev = NULL;
+ inode->i_link = NULL;
+- inode->i_dir_seq = 0;
++ inode->__i_dir_seq = 0;
+ inode->i_rdev = 0;
+ inode->dirtied_when = 0;
+
+diff --git a/fs/libfs.c b/fs/libfs.c
+index 48826d4da189..3ea54d1fc431 100644
+--- a/fs/libfs.c
++++ b/fs/libfs.c
+@@ -89,7 +89,7 @@ static struct dentry *next_positive(struct dentry *parent,
+ struct list_head *from,
+ int count)
+ {
+- unsigned *seq = &parent->d_inode->i_dir_seq, n;
++ unsigned *seq = &parent->d_inode->__i_dir_seq, n;
+ struct dentry *res;
+ struct list_head *p;
+ bool skipped;
+@@ -122,8 +122,9 @@ static struct dentry *next_positive(struct dentry *parent,
+ static void move_cursor(struct dentry *cursor, struct list_head *after)
+ {
+ struct dentry *parent = cursor->d_parent;
+- unsigned n, *seq = &parent->d_inode->i_dir_seq;
++ unsigned n, *seq = &parent->d_inode->__i_dir_seq;
+ spin_lock(&parent->d_lock);
++ preempt_disable_rt();
+ for (;;) {
+ n = *seq;
+ if (!(n & 1) && cmpxchg(seq, n, n + 1) == n)
+@@ -136,6 +137,7 @@ static void move_cursor(struct dentry *cursor, struct list_head *after)
+ else
+ list_add_tail(&cursor->d_child, &parent->d_subdirs);
+ smp_store_release(seq, n + 2);
++ preempt_enable_rt();
+ spin_unlock(&parent->d_lock);
+ }
+
+diff --git a/include/linux/fs.h b/include/linux/fs.h
+index d705ae084edd..ab1946f4a729 100644
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -688,7 +688,7 @@ struct inode {
+ struct block_device *i_bdev;
+ struct cdev *i_cdev;
+ char *i_link;
+- unsigned i_dir_seq;
++ unsigned __i_dir_seq;
+ };
+
+ __u32 i_generation;
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
new file mode 100644
index 0000000..7482ef1
--- /dev/null
+++ b/debian/patches/features/all/rt/0333-tpm_tis-fix-stall-after-iowrite-s.patch
@@ -0,0 +1,81 @@
+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
+
+ioread8() operations to TPM MMIO addresses can stall the cpu when
+immediately following a sequence of iowrite*()'s to the same region.
+
+For example, cyclitest measures ~400us latency spikes when a non-RT
+usermode application communicates with an SPI-based TPM chip (Intel Atom
+E3940 system, PREEMPT_RT_FULL kernel). The spikes are caused by a
+stalling ioread8() operation following a sequence of 30+ iowrite8()s to
+the same address. I believe this happens because the write sequence is
+buffered (in cpu or somewhere along the bus), and gets flushed on the
+first LOAD instruction (ioread*()) that follows.
+
+The enclosed change appears to fix this issue: read the TPM chip's
+access register (status code) after every iowrite*() operation to
+amortize the cost of flushing data to chip across multiple instructions.
+
+Signed-off-by: Haris Okanovic <haris.okanovic at ni.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt at goodmis.org>
+---
+ drivers/char/tpm/tpm_tis.c | 29 +++++++++++++++++++++++++++--
+ 1 file changed, 27 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
+index 8022bea27fed..247330efd310 100644
+--- a/drivers/char/tpm/tpm_tis.c
++++ b/drivers/char/tpm/tpm_tis.c
+@@ -50,6 +50,31 @@ static inline struct tpm_tis_tcg_phy *to_tpm_tis_tcg_phy(struct tpm_tis_data *da
+ return container_of(data, struct tpm_tis_tcg_phy, priv);
+ }
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++/*
++ * Flushes previous write operations to chip so that a subsequent
++ * ioread*()s won't stall a cpu.
++ */
++static inline void tpm_tis_flush(void __iomem *iobase)
++{
++ ioread8(iobase + TPM_ACCESS(0));
++}
++#else
++#define tpm_tis_flush(iobase) do { } while (0)
++#endif
++
++static inline void tpm_tis_iowrite8(u8 b, void __iomem *iobase, u32 addr)
++{
++ iowrite8(b, iobase + addr);
++ tpm_tis_flush(iobase);
++}
++
++static inline void tpm_tis_iowrite32(u32 b, void __iomem *iobase, u32 addr)
++{
++ iowrite32(b, iobase + addr);
++ tpm_tis_flush(iobase);
++}
++
+ static bool interrupts = true;
+ module_param(interrupts, bool, 0444);
+ MODULE_PARM_DESC(interrupts, "Enable interrupts");
+@@ -103,7 +128,7 @@ static int tpm_tcg_write_bytes(struct tpm_tis_data *data, u32 addr, u16 len,
+ struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data);
+
+ while (len--)
+- iowrite8(*value++, phy->iobase + addr);
++ tpm_tis_iowrite8(*value++, phy->iobase, addr);
+ return 0;
+ }
+
+@@ -127,7 +152,7 @@ static int tpm_tcg_write32(struct tpm_tis_data *data, u32 addr, u32 value)
+ {
+ struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data);
+
+- iowrite32(value, phy->iobase + addr);
++ tpm_tis_iowrite32(value, phy->iobase, addr);
+ return 0;
+ }
+
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
new file mode 100644
index 0000000..1380d50
--- /dev/null
+++ b/debian/patches/features/all/rt/0334-fs-convert-two-more-BH_Uptodate_Lock-related-bitspin.patch
@@ -0,0 +1,66 @@
+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
+ bitspinlocks
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1ec01e622641928d29df53a595a18bb46bfdb494
+
+We convert all BH_Uptodate_Lock based bit-spinlocks to use
+bh_uptodate_lock_irqsave() instead. Those two were introduced after the
+initial change in -RT and were not noticed before.
+
+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/ext4/page-io.c | 6 ++----
+ fs/xfs/xfs_aops.c | 6 ++----
+ 2 files changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
+index 0094923e5ebf..37fa06ef5417 100644
+--- a/fs/ext4/page-io.c
++++ b/fs/ext4/page-io.c
+@@ -95,8 +95,7 @@ static void ext4_finish_bio(struct bio *bio)
+ * We check all buffers in the page under BH_Uptodate_Lock
+ * to avoid races with other end io clearing async_write flags
+ */
+- local_irq_save(flags);
+- bit_spin_lock(BH_Uptodate_Lock, &head->b_state);
++ flags = bh_uptodate_lock_irqsave(head);
+ do {
+ if (bh_offset(bh) < bio_start ||
+ bh_offset(bh) + bh->b_size > bio_end) {
+@@ -108,8 +107,7 @@ static void ext4_finish_bio(struct bio *bio)
+ if (bio->bi_error)
+ buffer_io_error(bh);
+ } while ((bh = bh->b_this_page) != head);
+- bit_spin_unlock(BH_Uptodate_Lock, &head->b_state);
+- local_irq_restore(flags);
++ bh_uptodate_unlock_irqrestore(head, flags);
+ if (!under_io) {
+ #ifdef CONFIG_EXT4_FS_ENCRYPTION
+ if (data_page)
+diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
+index d31cd1ebd8e9..5ea3f933a52a 100644
+--- a/fs/xfs/xfs_aops.c
++++ b/fs/xfs/xfs_aops.c
+@@ -112,8 +112,7 @@ xfs_finish_page_writeback(
+ ASSERT(bvec->bv_offset + bvec->bv_len <= PAGE_SIZE);
+ ASSERT((bvec->bv_len & (i_blocksize(inode) - 1)) == 0);
+
+- local_irq_save(flags);
+- bit_spin_lock(BH_Uptodate_Lock, &head->b_state);
++ flags = bh_uptodate_lock_irqsave(head);
+ do {
+ if (off >= bvec->bv_offset &&
+ off < bvec->bv_offset + bvec->bv_len) {
+@@ -136,8 +135,7 @@ xfs_finish_page_writeback(
+ }
+ off += bh->b_size;
+ } while ((bh = bh->b_this_page) != head);
+- bit_spin_unlock(BH_Uptodate_Lock, &head->b_state);
+- local_irq_restore(flags);
++ bh_uptodate_unlock_irqrestore(head, flags);
+
+ if (!busy)
+ end_page_writeback(bvec->bv_page);
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
new file mode 100644
index 0000000..03e59d7
--- /dev/null
+++ b/debian/patches/features/all/rt/0335-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch
@@ -0,0 +1,78 @@
+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 /
+ block-IO
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c8c0db22c7e4a2876dca7028dacfebaa79c5bc57
+
+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
+avoid unbounded recursion).
+
+However, this queuing of bios can cause deadlocks, in order to avoid them,
+device mapper registers a function flush_current_bio_list. This function
+is called when device mapper driver blocks. It redirects bios queued on
+current->bio_list to helper workqueues, so that these bios can proceed
+even if the driver is blocked.
+
+The problem with CONFIG_PREEMPT_RT_FULL is that when the device mapper
+driver blocks, it won't call flush_current_bio_list (because
+tsk_is_pi_blocked returns true in sched_submit_work), so deadlocks in
+block device stack can happen.
+
+Note that we can't call blk_schedule_flush_plug if tsk_is_pi_blocked
+returns true - that would cause
+BUG_ON(rt_mutex_real_waiter(task->pi_blocked_on)) in
+task_blocks_on_rt_mutex when flush_current_bio_list attempts to take a
+spinlock.
+
+So the proper fix is to call blk_schedule_flush_plug in rt_mutex_fastlock,
+when fast acquire failed and when the task is about to block.
+
+CC: stable-rt at vger.kernel.org
+[bigeasy: The deadlock is not device-mapper specific, it can also occur
+ in plain EXT4]
+Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Signed-off-by: Steven Rostedt (VMware) <rostedt at goodmis.org>
+---
+ kernel/locking/rtmutex.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
+index 78a6c4a223c1..b73cd7c87551 100644
+--- a/kernel/locking/rtmutex.c
++++ b/kernel/locking/rtmutex.c
+@@ -22,6 +22,7 @@
+ #include <linux/sched/deadline.h>
+ #include <linux/timer.h>
+ #include <linux/ww_mutex.h>
++#include <linux/blkdev.h>
+
+ #include "rtmutex_common.h"
+
+@@ -1968,6 +1969,15 @@ rt_mutex_fastlock(struct rt_mutex *lock, int state,
+ if (likely(rt_mutex_cmpxchg_acquire(lock, NULL, current)))
+ return 0;
+
++ /*
++ * If rt_mutex blocks, the function sched_submit_work will not call
++ * blk_schedule_flush_plug (because tsk_is_pi_blocked would be true).
++ * We must call blk_schedule_flush_plug here, if we don't call it,
++ * a deadlock in device mapper may happen.
++ */
++ if (unlikely(blk_needs_flush_plug(current)))
++ blk_schedule_flush_plug(current);
++
+ return slowfn(lock, state, NULL, RT_MUTEX_MIN_CHAINWALK, ww_ctx);
+ }
+
+@@ -1985,6 +1995,9 @@ rt_mutex_timed_fastlock(struct rt_mutex *lock, int state,
+ likely(rt_mutex_cmpxchg_acquire(lock, NULL, current)))
+ return 0;
+
++ if (unlikely(blk_needs_flush_plug(current)))
++ blk_schedule_flush_plug(current);
++
+ return slowfn(lock, state, timeout, chwalk, ww_ctx);
+ }
+
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
new file mode 100644
index 0000000..8c89cb0
--- /dev/null
+++ b/debian/patches/features/all/rt/0336-md-raid5-do-not-disable-interrupts.patch
@@ -0,0 +1,58 @@
+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
+
+|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974
+|in_atomic(): 0, irqs_disabled(): 1, pid: 2992, name: lvm
+|CPU: 2 PID: 2992 Comm: lvm Not tainted 4.13.10-rt3+ #54
+|Call Trace:
+| dump_stack+0x4f/0x65
+| ___might_sleep+0xfc/0x150
+| atomic_dec_and_spin_lock+0x3c/0x80
+| raid5_release_stripe+0x73/0x110
+| grow_one_stripe+0xce/0xf0
+| setup_conf+0x841/0xaa0
+| raid5_run+0x7e7/0xa40
+| md_run+0x515/0xaf0
+| raid_ctr+0x147d/0x25e0
+| dm_table_add_target+0x155/0x320
+| table_load+0x103/0x320
+| ctl_ioctl+0x1d9/0x510
+| dm_ctl_ioctl+0x9/0x10
+| do_vfs_ioctl+0x8e/0x670
+| SyS_ioctl+0x3c/0x70
+| entry_SYSCALL_64_fastpath+0x17/0x98
+
+The interrupts were disabled because ->device_lock is taken with
+interrupts disabled.
+
+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>
+---
+ drivers/md/raid5.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
+index 4d8cfce1de86..4dde911925dc 100644
+--- a/drivers/md/raid5.c
++++ b/drivers/md/raid5.c
+@@ -429,7 +429,7 @@ void raid5_release_stripe(struct stripe_head *sh)
+ md_wakeup_thread(conf->mddev->thread);
+ return;
+ slow_path:
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ /* we are ok here if STRIPE_ON_RELEASE_LIST is set or not */
+ if (atomic_dec_and_lock(&sh->count, &conf->device_lock)) {
+ INIT_LIST_HEAD(&list);
+@@ -438,7 +438,7 @@ void raid5_release_stripe(struct stripe_head *sh)
+ spin_unlock(&conf->device_lock);
+ release_inactive_stripe_list(conf, &list, hash);
+ }
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+ }
+
+ static inline void remove_hash(struct stripe_head *sh)
diff --git a/debian/patches/features/all/rt/0337-Linux-4.9.61-rt52-REBASE.patch b/debian/patches/features/all/rt/0337-Linux-4.9.61-rt52-REBASE.patch
new file mode 100644
index 0000000..cae7d81
--- /dev/null
+++ b/debian/patches/features/all/rt/0337-Linux-4.9.61-rt52-REBASE.patch
@@ -0,0 +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
+
+---
+ localversion-rt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/localversion-rt b/localversion-rt
+index 9a218ca23053..66a5ed8bf3d7 100644
+--- a/localversion-rt
++++ b/localversion-rt
+@@ -1 +1 @@
+--rt23
++-rt52
diff --git a/debian/patches/series-rt b/debian/patches/series-rt
index 646f7c3..93606b6 100644
--- a/debian/patches/series-rt
+++ b/debian/patches/series-rt
@@ -63,270 +63,275 @@ features/all/rt/0062-suspend-Prevent-might-sleep-splats.patch
features/all/rt/0063-net-flip-lock-dep-thingy.patch.patch
features/all/rt/0064-net-sched-Use-msleep-instead-of-yield.patch
features/all/rt/0065-x86-ioapic-Do-not-unmask-io_apic-when-interrupt-is-i.patch
-features/all/rt/0066-pci-Use-__wake_up_all_locked-in-pci_unblock_user_cfg.patch
-features/all/rt/0067-latencyhist-disable-jump-labels.patch
-features/all/rt/0068-tracing-Add-latency-histograms.patch
-features/all/rt/0069-latency_hist-Update-sched_wakeup-probe.patch
-features/all/rt/0070-trace-latency-hist-Consider-new-argument-when-probin.patch
-features/all/rt/0071-trace-Use-rcuidle-version-for-preemptoff_hist-trace-.patch
-features/all/rt/0072-printk-Add-a-printk-kill-switch.patch
-features/all/rt/0073-printk-Add-force_early_printk-boot-param-to-help-wit.patch
-features/all/rt/0074-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
-features/all/rt/0075-kconfig-Disable-config-options-which-are-not-RT-comp.patch
-features/all/rt/0076-kconfig-Add-PREEMPT_RT_FULL.patch
-features/all/rt/0077-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
-features/all/rt/0078-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch
-features/all/rt/0079-rt-local_irq_-variants-depending-on-RT-RT.patch
-features/all/rt/0080-preempt-Provide-preempt_-_-no-rt-variants.patch
-features/all/rt/0081-Intrduce-migrate_disable-cpu_light.patch
-features/all/rt/0082-futex-workaround-migrate_disable-enable-in-different.patch
-features/all/rt/0083-rt-Add-local-irq-locks.patch
-features/all/rt/0084-locallock-add-local_lock_on.patch
-features/all/rt/0085-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
-features/all/rt/0086-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
-features/all/rt/0087-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
-features/all/rt/0088-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
-features/all/rt/0089-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
-features/all/rt/0090-usb-Use-_nort-in-giveback-function.patch
-features/all/rt/0091-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
-features/all/rt/0092-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch
-features/all/rt/0093-signal-Make-__lock_task_sighand-RT-aware.patch
-features/all/rt/0094-signal-x86-Delay-calling-signals-in-atomic.patch
-features/all/rt/0095-x86-signal-delay-calling-signals-on-32bit.patch
-features/all/rt/0096-net-wireless-Use-WARN_ON_NORT.patch
-features/all/rt/0097-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
-features/all/rt/0098-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
-features/all/rt/0099-list_bl-Make-list-head-locking-RT-safe.patch
-features/all/rt/0100-list_bl-fixup-bogus-lockdep-warning.patch
-features/all/rt/0101-genirq-Disable-irqpoll-on-rt.patch
-features/all/rt/0102-genirq-Force-interrupt-thread-on-RT.patch
-features/all/rt/0103-drivers-net-vortex-fix-locking-issues.patch
-features/all/rt/0104-mm-page_alloc-rt-friendly-per-cpu-pages.patch
-features/all/rt/0105-mm-page_alloc-Reduce-lock-sections-further.patch
-features/all/rt/0106-mm-swap-Convert-to-percpu-locked.patch
-features/all/rt/0107-mm-perform-lru_add_drain_all-remotely.patch
-features/all/rt/0108-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
-features/all/rt/0109-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
-features/all/rt/0110-mm-bounce-Use-local_irq_save_nort.patch
-features/all/rt/0111-mm-Allow-only-slub-on-RT.patch
-features/all/rt/0112-mm-Enable-SLUB-for-RT.patch
-features/all/rt/0113-slub-Enable-irqs-for-__GFP_WAIT.patch
-features/all/rt/0114-slub-Disable-SLUB_CPU_PARTIAL.patch
-features/all/rt/0115-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
-features/all/rt/0116-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
-features/all/rt/0117-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
-features/all/rt/0118-mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch
-features/all/rt/0119-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch
-features/all/rt/0120-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
-features/all/rt/0121-radix-tree-use-local-locks.patch
-features/all/rt/0122-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
-features/all/rt/0123-timers-Prepare-for-full-preemption.patch
-features/all/rt/0124-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
-features/all/rt/0125-hrtimers-Prepare-full-preemption.patch
-features/all/rt/0126-hrtimer-enfore-64byte-alignment.patch
-features/all/rt/0127-hrtimer-Fixup-hrtimer-callback-changes-for-preempt-r.patch
-features/all/rt/0128-sched-deadline-dl_task_timer-has-to-be-irqsafe.patch
-features/all/rt/0129-timer-fd-Prevent-live-lock.patch
-features/all/rt/0130-tick-broadcast-Make-broadcast-hrtimer-irqsafe.patch
-features/all/rt/0131-timer-hrtimer-check-properly-for-a-running-timer.patch
-features/all/rt/0132-posix-timers-Thread-posix-cpu-timers-on-rt.patch
-features/all/rt/0133-sched-Move-task_struct-cleanup-to-RCU.patch
-features/all/rt/0134-sched-Limit-the-number-of-task-migrations-per-batch.patch
-features/all/rt/0135-sched-Move-mmdrop-to-RCU-on-RT.patch
-features/all/rt/0136-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
-features/all/rt/0137-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
-features/all/rt/0138-sched-Prevent-task-state-corruption-by-spurious-lock.patch
-features/all/rt/0139-sched-Remove-TASK_ALL.patch
-features/all/rt/0140-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
-features/all/rt/0141-sched-Take-RT-softirq-semantics-into-account-in-cond.patch
-features/all/rt/0142-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
-features/all/rt/0143-sched-Disable-TTWU_QUEUE-on-RT.patch
-features/all/rt/0144-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
-features/all/rt/0145-sched-ttwu-Return-success-when-only-changing-the-sav.patch
-features/all/rt/0146-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
-features/all/rt/0147-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
-features/all/rt/0148-stop_machine-Use-raw-spinlocks.patch
-features/all/rt/0149-hotplug-Lightweight-get-online-cpus.patch
-features/all/rt/0150-hotplug-sync_unplug-No-n-in-task-name.patch
-features/all/rt/0151-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
-features/all/rt/0152-trace-Add-migrate-disabled-counter-to-tracing-output.patch
-features/all/rt/0153-hotplug-Use-migrate-disable-on-unplug.patch
-features/all/rt/0154-lockdep-Make-it-RT-aware.patch
-features/all/rt/0155-locking-Disable-spin-on-owner-for-RT.patch
-features/all/rt/0156-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
-features/all/rt/0157-softirq-Check-preemption-after-reenabling-interrupts.patch
-features/all/rt/0158-softirq-Disable-softirq-stacks-for-RT.patch
-features/all/rt/0159-softirq-Split-softirq-locks.patch
-features/all/rt/0160-kernel-softirq-unlock-with-irqs-on.patch
-features/all/rt/0161-kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch
-features/all/rt/0162-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
-features/all/rt/0163-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
-features/all/rt/0164-softirq-wake-the-timer-softirq-if-needed.patch
-features/all/rt/0165-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
-features/all/rt/0166-Revert-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
-features/all/rt/0167-rtmutex-trylock-is-okay-on-RT.patch
-features/all/rt/0168-gpu-don-t-check-for-the-lock-owner.patch
-features/all/rt/0169-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
-features/all/rt/0170-rtmutex-Handle-the-various-new-futex-race-conditions.patch
-features/all/rt/0171-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
-features/all/rt/0172-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
-features/all/rt/0173-pid.h-include-atomic.h.patch
-features/all/rt/0174-arm-include-definition-for-cpumask_t.patch
-features/all/rt/0175-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
-features/all/rt/0176-rtmutex-Add-rtmutex_lock_killable.patch
-features/all/rt/0177-rtmutex-Make-lock_killable-work.patch
-features/all/rt/0178-spinlock-Split-the-lock-types-header.patch
-features/all/rt/0179-rtmutex-Avoid-include-hell.patch
-features/all/rt/0180-rbtree-don-t-include-the-rcu-header.patch
-features/all/rt/0181-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
-features/all/rt/0182-rt-Drop-mutex_disable-on-DEBUG-configs-and-the-GPL-s.patch
-features/all/rt/0183-kernel-locking-use-an-exclusive-wait_q-for-sleepers.patch
-features/all/rt/0184-rtmutex-Add-RT-aware-ww-locks.patch
-features/all/rt/0185-rtmutex-Provide-rt_mutex_lock_state.patch
-features/all/rt/0186-rtmutex-Provide-locked-slowpath.patch
-features/all/rt/0187-futex-rtmutex-Cure-RT-double-blocking-issue.patch
-features/all/rt/0188-rwsem-rt-Lift-single-reader-restriction.patch
-features/all/rt/0189-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
-features/all/rt/0190-rcu-Frob-softirq-test.patch
-features/all/rt/0191-rcu-Merge-RCU-bh-into-RCU-preempt.patch
-features/all/rt/0192-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
-features/all/rt/0193-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch
-features/all/rt/0194-tty-serial-omap-Make-the-locking-RT-aware.patch
-features/all/rt/0195-tty-serial-pl011-Make-the-locking-work-on-RT.patch
-features/all/rt/0196-rt-Improve-the-serial-console-PASS_LIMIT.patch
-features/all/rt/0197-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
-features/all/rt/0198-wait.h-include-atomic.h.patch
-features/all/rt/0199-work-simple-Simple-work-queue-implemenation.patch
-features/all/rt/0200-completion-Use-simple-wait-queues.patch
-features/all/rt/0201-fs-aio-simple-simple-work.patch
-features/all/rt/0202-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch
-features/all/rt/0203-hrtimer-Move-schedule_work-call-to-helper-thread.patch
-features/all/rt/0204-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
-features/all/rt/0205-fs-namespace-preemption-fix.patch
-features/all/rt/0206-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
-features/all/rt/0207-block-Turn-off-warning-which-is-bogus-on-RT.patch
-features/all/rt/0208-fs-ntfs-disable-interrupt-only-on-RT.patch
-features/all/rt/0209-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
-features/all/rt/0210-x86-Convert-mce-timer-to-hrtimer.patch
-features/all/rt/0211-x86-mce-use-swait-queue-for-mce-wakeups.patch
-features/all/rt/0212-x86-stackprotector-Avoid-random-pool-on-rt.patch
-features/all/rt/0213-x86-Use-generic-rwsem_spinlocks-on-rt.patch
-features/all/rt/0214-x86-UV-raw_spinlock-conversion.patch
-features/all/rt/0215-thermal-Defer-thermal-wakups-to-threads.patch
-features/all/rt/0216-fs-epoll-Do-not-disable-preemption-on-RT.patch
-features/all/rt/0217-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
-features/all/rt/0218-block-mq-use-cpu_light.patch
-features/all/rt/0219-block-mq-do-not-invoke-preempt_disable.patch
-features/all/rt/0220-block-mq-don-t-complete-requests-via-IPI.patch
-features/all/rt/0221-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
-features/all/rt/0222-rt-Introduce-cpu_chill.patch
-features/all/rt/0223-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch
-features/all/rt/0224-block-blk-mq-Use-swait.patch
-features/all/rt/0225-block-Use-cpu_chill-for-retry-loops.patch
-features/all/rt/0226-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
-features/all/rt/0227-net-Use-cpu_chill-instead-of-cpu_relax.patch
-features/all/rt/0228-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
-features/all/rt/0229-workqueue-Use-normal-rcu.patch
-features/all/rt/0230-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
-features/all/rt/0231-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
-features/all/rt/0232-sched-Distangle-worker-accounting-from-rqlock.patch
-features/all/rt/0233-idr-Use-local-lock-instead-of-preempt-enable-disable.patch
-features/all/rt/0234-percpu_ida-Use-local-locks.patch
-features/all/rt/0235-debugobjects-Make-RT-aware.patch
-features/all/rt/0236-jump-label-disable-if-stop_machine-is-used.patch
-features/all/rt/0237-seqlock-Prevent-rt-starvation.patch
-features/all/rt/0238-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
-features/all/rt/0239-net-Use-skbufhead-with-raw-lock.patch
-features/all/rt/0240-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch
-features/all/rt/0241-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
-features/all/rt/0242-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
-features/all/rt/0243-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
-features/all/rt/0244-net-Qdisc-use-a-seqlock-instead-seqcount.patch
-features/all/rt/0245-net-add-back-the-missing-serialization-in-ip_send_un.patch
-features/all/rt/0246-net-add-a-lock-around-icmp_sk.patch
-features/all/rt/0247-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
-features/all/rt/0248-net-sysrq-via-icmp.patch
-features/all/rt/0249-irqwork-push-most-work-into-softirq-context.patch
-features/all/rt/0250-irqwork-Move-irq-safe-work-to-irq-context.patch
-features/all/rt/0251-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch
-features/all/rt/0252-printk-Make-rt-aware.patch
-features/all/rt/0253-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
-features/all/rt/0254-printk-Drop-the-logbuf_lock-more-often.patch
-features/all/rt/0255-powerpc-Use-generic-rwsem-on-RT.patch
-features/all/rt/0256-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
-features/all/rt/0257-powerpc-ps3-device-init.c-adapt-to-completions-using.patch
-features/all/rt/0258-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
-features/all/rt/0259-arm-unwind-use-a-raw_spin_lock.patch
-features/all/rt/0260-ARM-enable-irq-in-translation-section-permission-fau.patch
-features/all/rt/0261-genirq-update-irq_set_irqchip_state-documentation.patch
-features/all/rt/0262-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
-features/all/rt/0263-arm64-xen-Make-XEN-depend-on-RT.patch
-features/all/rt/0264-kgdb-serial-Short-term-workaround.patch
-features/all/rt/0265-sysfs-Add-sys-kernel-realtime-entry.patch
-features/all/rt/0266-powerpc-Disable-highmem-on-RT.patch
-features/all/rt/0267-mips-Disable-highmem-on-RT.patch
-features/all/rt/0268-mm-rt-kmap_atomic-scheduling.patch
-features/all/rt/0269-mm-rt-Fix-generic-kmap_atomic-for-RT.patch
-features/all/rt/0270-x86-highmem-Add-a-already-used-pte-check.patch
-features/all/rt/0271-arm-highmem-Flush-tlb-on-unmap.patch
-features/all/rt/0272-arm-Enable-highmem-for-rt.patch
-features/all/rt/0273-ipc-sem-Rework-semaphore-wakeups.patch
-features/all/rt/0274-x86-kvm-Require-const-tsc-for-RT.patch
-features/all/rt/0275-KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch
-features/all/rt/0276-scsi-fcoe-Make-RT-aware.patch
-features/all/rt/0277-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch
-features/all/rt/0278-x86-crypto-Reduce-preempt-disabled-regions.patch
-features/all/rt/0279-crypto-Reduce-preempt-disabled-regions-more-algos.patch
-features/all/rt/0280-dm-Make-rt-aware.patch
-features/all/rt/0281-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch
-features/all/rt/0282-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
-features/all/rt/0283-random-Make-it-work-on-rt.patch
-features/all/rt/0284-random-avoid-preempt_disable-ed-section.patch
-features/all/rt/0285-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
-features/all/rt/0286-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
-features/all/rt/0287-cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch
-features/all/rt/0288-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch
-features/all/rt/0289-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch
-features/all/rt/0290-cpu_down-move-migrate_enable-back.patch
-features/all/rt/0291-hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch
-features/all/rt/0292-rt-locking-Reenable-migration-accross-schedule.patch
-features/all/rt/0293-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
-features/all/rt/0294-net-Remove-preemption-disabling-in-netif_rx.patch
-features/all/rt/0295-net-Another-local_irq_disable-kmalloc-headache.patch
-features/all/rt/0296-net-core-protect-users-of-napi_alloc_cache-against-r.patch
-features/all/rt/0297-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
-features/all/rt/0298-net-Add-a-mutex-around-devnet_rename_seq.patch
-features/all/rt/0299-crypto-Convert-crypto-notifier-chain-to-SRCU.patch
-features/all/rt/0300-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
-features/all/rt/0301-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
-features/all/rt/0302-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
-features/all/rt/0303-kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch
-features/all/rt/0304-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
-features/all/rt/0305-rcu-Eliminate-softirq-processing-from-rcutree.patch
-features/all/rt/0306-rcu-make-RCU_BOOST-default-on-RT.patch
-features/all/rt/0307-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
-features/all/rt/0308-sched-Add-support-for-lazy-preemption.patch
-features/all/rt/0309-ftrace-Fix-trace-header-alignment.patch
-features/all/rt/0310-x86-Support-for-lazy-preemption.patch
-features/all/rt/0311-arm-Add-support-for-lazy-preemption.patch
-features/all/rt/0312-powerpc-Add-support-for-lazy-preemption.patch
-features/all/rt/0313-arch-arm64-Add-lazy-preempt-support.patch
-features/all/rt/0314-sched-migrate-disable-handle-updated-task-mask-mg-di.patch
-features/all/rt/0315-leds-trigger-disable-CPU-trigger-on-RT.patch
-features/all/rt/0316-mmci-Remove-bogus-local_irq_save.patch
-features/all/rt/0317-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
-features/all/rt/0318-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
-features/all/rt/0319-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
-features/all/rt/0320-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
-features/all/rt/0321-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch
-features/all/rt/0322-i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch
-features/all/rt/0323-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
-features/all/rt/0324-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
-features/all/rt/0325-cgroups-use-simple-wait-in-css_release.patch
-features/all/rt/0326-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch
-features/all/rt/0327-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
-features/all/rt/0328-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch
-features/all/rt/0329-md-disable-bcache.patch
-features/all/rt/0330-workqueue-Prevent-deadlock-stall-on-RT.patch
-features/all/rt/0331-Add-localversion-for-RT-release.patch
-features/all/rt/0332-Linux-4.9.47-rt37-REBASE.patch
+features/all/rt/0066-latencyhist-disable-jump-labels.patch
+features/all/rt/0067-tracing-Add-latency-histograms.patch
+features/all/rt/0068-latency_hist-Update-sched_wakeup-probe.patch
+features/all/rt/0069-trace-latency-hist-Consider-new-argument-when-probin.patch
+features/all/rt/0070-trace-Use-rcuidle-version-for-preemptoff_hist-trace-.patch
+features/all/rt/0071-printk-Add-a-printk-kill-switch.patch
+features/all/rt/0072-printk-Add-force_early_printk-boot-param-to-help-wit.patch
+features/all/rt/0073-rt-Provide-PREEMPT_RT_BASE-config-switch.patch
+features/all/rt/0074-kconfig-Disable-config-options-which-are-not-RT-comp.patch
+features/all/rt/0075-kconfig-Add-PREEMPT_RT_FULL.patch
+features/all/rt/0076-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
+features/all/rt/0077-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch
+features/all/rt/0078-rt-local_irq_-variants-depending-on-RT-RT.patch
+features/all/rt/0079-preempt-Provide-preempt_-_-no-rt-variants.patch
+features/all/rt/0080-Intrduce-migrate_disable-cpu_light.patch
+features/all/rt/0081-futex-workaround-migrate_disable-enable-in-different.patch
+features/all/rt/0082-rt-Add-local-irq-locks.patch
+features/all/rt/0083-locallock-add-local_lock_on.patch
+features/all/rt/0084-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
+features/all/rt/0085-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
+features/all/rt/0086-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
+features/all/rt/0087-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
+features/all/rt/0088-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
+features/all/rt/0089-usb-Use-_nort-in-giveback-function.patch
+features/all/rt/0090-mm-scatterlist-Do-not-disable-irqs-on-RT.patch
+features/all/rt/0091-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch
+features/all/rt/0092-signal-Make-__lock_task_sighand-RT-aware.patch
+features/all/rt/0093-signal-x86-Delay-calling-signals-in-atomic.patch
+features/all/rt/0094-x86-signal-delay-calling-signals-on-32bit.patch
+features/all/rt/0095-net-wireless-Use-WARN_ON_NORT.patch
+features/all/rt/0096-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
+features/all/rt/0097-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
+features/all/rt/0098-list_bl-Make-list-head-locking-RT-safe.patch
+features/all/rt/0099-list_bl-fixup-bogus-lockdep-warning.patch
+features/all/rt/0100-genirq-Disable-irqpoll-on-rt.patch
+features/all/rt/0101-genirq-Force-interrupt-thread-on-RT.patch
+features/all/rt/0102-drivers-net-vortex-fix-locking-issues.patch
+features/all/rt/0103-mm-page_alloc-rt-friendly-per-cpu-pages.patch
+features/all/rt/0104-mm-page_alloc-Reduce-lock-sections-further.patch
+features/all/rt/0105-mm-swap-Convert-to-percpu-locked.patch
+features/all/rt/0106-mm-perform-lru_add_drain_all-remotely.patch
+features/all/rt/0107-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch
+features/all/rt/0108-ARM-Initialize-split-page-table-locks-for-vector-pag.patch
+features/all/rt/0109-mm-bounce-Use-local_irq_save_nort.patch
+features/all/rt/0110-mm-Allow-only-slub-on-RT.patch
+features/all/rt/0111-mm-Enable-SLUB-for-RT.patch
+features/all/rt/0112-slub-Enable-irqs-for-__GFP_WAIT.patch
+features/all/rt/0113-slub-Disable-SLUB_CPU_PARTIAL.patch
+features/all/rt/0114-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
+features/all/rt/0115-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
+features/all/rt/0116-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch
+features/all/rt/0117-mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch
+features/all/rt/0118-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch
+features/all/rt/0119-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch
+features/all/rt/0120-radix-tree-use-local-locks.patch
+features/all/rt/0121-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch
+features/all/rt/0122-timers-Prepare-for-full-preemption.patch
+features/all/rt/0123-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
+features/all/rt/0124-hrtimers-Prepare-full-preemption.patch
+features/all/rt/0125-hrtimer-enfore-64byte-alignment.patch
+features/all/rt/0126-hrtimer-Fixup-hrtimer-callback-changes-for-preempt-r.patch
+features/all/rt/0127-sched-deadline-dl_task_timer-has-to-be-irqsafe.patch
+features/all/rt/0128-timer-fd-Prevent-live-lock.patch
+features/all/rt/0129-tick-broadcast-Make-broadcast-hrtimer-irqsafe.patch
+features/all/rt/0130-timer-hrtimer-check-properly-for-a-running-timer.patch
+features/all/rt/0131-posix-timers-Thread-posix-cpu-timers-on-rt.patch
+features/all/rt/0132-sched-Move-task_struct-cleanup-to-RCU.patch
+features/all/rt/0133-sched-Limit-the-number-of-task-migrations-per-batch.patch
+features/all/rt/0134-sched-Move-mmdrop-to-RCU-on-RT.patch
+features/all/rt/0135-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch
+features/all/rt/0136-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch
+features/all/rt/0137-sched-Prevent-task-state-corruption-by-spurious-lock.patch
+features/all/rt/0138-sched-Remove-TASK_ALL.patch
+features/all/rt/0139-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch
+features/all/rt/0140-sched-Take-RT-softirq-semantics-into-account-in-cond.patch
+features/all/rt/0141-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch
+features/all/rt/0142-sched-Disable-TTWU_QUEUE-on-RT.patch
+features/all/rt/0143-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
+features/all/rt/0144-sched-ttwu-Return-success-when-only-changing-the-sav.patch
+features/all/rt/0145-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
+features/all/rt/0146-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
+features/all/rt/0147-stop_machine-Use-raw-spinlocks.patch
+features/all/rt/0148-hotplug-Lightweight-get-online-cpus.patch
+features/all/rt/0149-hotplug-sync_unplug-No-n-in-task-name.patch
+features/all/rt/0150-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
+features/all/rt/0151-trace-Add-migrate-disabled-counter-to-tracing-output.patch
+features/all/rt/0152-hotplug-Use-migrate-disable-on-unplug.patch
+features/all/rt/0153-lockdep-Make-it-RT-aware.patch
+features/all/rt/0154-locking-Disable-spin-on-owner-for-RT.patch
+features/all/rt/0155-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
+features/all/rt/0156-softirq-Check-preemption-after-reenabling-interrupts.patch
+features/all/rt/0157-softirq-Disable-softirq-stacks-for-RT.patch
+features/all/rt/0158-softirq-Split-softirq-locks.patch
+features/all/rt/0159-kernel-softirq-unlock-with-irqs-on.patch
+features/all/rt/0160-kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch
+features/all/rt/0161-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
+features/all/rt/0162-softirq-split-timer-softirqs-out-of-ksoftirqd.patch
+features/all/rt/0163-softirq-wake-the-timer-softirq-if-needed.patch
+features/all/rt/0164-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
+features/all/rt/0165-Revert-timers-Don-t-wake-ktimersoftd-on-every-tick.patch
+features/all/rt/0166-rtmutex-trylock-is-okay-on-RT.patch
+features/all/rt/0167-gpu-don-t-check-for-the-lock-owner.patch
+features/all/rt/0168-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch
+features/all/rt/0169-rtmutex-Handle-the-various-new-futex-race-conditions.patch
+features/all/rt/0170-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
+features/all/rt/0171-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch
+features/all/rt/0172-pid.h-include-atomic.h.patch
+features/all/rt/0173-arm-include-definition-for-cpumask_t.patch
+features/all/rt/0174-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch
+features/all/rt/0175-rtmutex-Add-rtmutex_lock_killable.patch
+features/all/rt/0176-rtmutex-Make-lock_killable-work.patch
+features/all/rt/0177-spinlock-Split-the-lock-types-header.patch
+features/all/rt/0178-rtmutex-Avoid-include-hell.patch
+features/all/rt/0179-rbtree-don-t-include-the-rcu-header.patch
+features/all/rt/0180-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
+features/all/rt/0181-rt-Drop-mutex_disable-on-DEBUG-configs-and-the-GPL-s.patch
+features/all/rt/0182-kernel-locking-use-an-exclusive-wait_q-for-sleepers.patch
+features/all/rt/0183-rtmutex-Add-RT-aware-ww-locks.patch
+features/all/rt/0184-rtmutex-Provide-rt_mutex_lock_state.patch
+features/all/rt/0185-rtmutex-Provide-locked-slowpath.patch
+features/all/rt/0186-futex-rtmutex-Cure-RT-double-blocking-issue.patch
+features/all/rt/0187-rwsem-rt-Lift-single-reader-restriction.patch
+features/all/rt/0188-ptrace-fix-ptrace-vs-tasklist_lock-race.patch
+features/all/rt/0189-rcu-Frob-softirq-test.patch
+features/all/rt/0190-rcu-Merge-RCU-bh-into-RCU-preempt.patch
+features/all/rt/0191-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
+features/all/rt/0192-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch
+features/all/rt/0193-tty-serial-omap-Make-the-locking-RT-aware.patch
+features/all/rt/0194-tty-serial-pl011-Make-the-locking-work-on-RT.patch
+features/all/rt/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch
+features/all/rt/0196-tty-serial-8250-don-t-take-the-trylock-during-oops.patch
+features/all/rt/0197-wait.h-include-atomic.h.patch
+features/all/rt/0198-work-simple-Simple-work-queue-implemenation.patch
+features/all/rt/0199-completion-Use-simple-wait-queues.patch
+features/all/rt/0200-fs-aio-simple-simple-work.patch
+features/all/rt/0201-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch
+features/all/rt/0202-hrtimer-Move-schedule_work-call-to-helper-thread.patch
+features/all/rt/0203-locking-percpu-rwsem-Remove-preempt_disable-variants.patch
+features/all/rt/0204-fs-namespace-preemption-fix.patch
+features/all/rt/0205-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch
+features/all/rt/0206-block-Turn-off-warning-which-is-bogus-on-RT.patch
+features/all/rt/0207-fs-ntfs-disable-interrupt-only-on-RT.patch
+features/all/rt/0208-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
+features/all/rt/0209-x86-Convert-mce-timer-to-hrtimer.patch
+features/all/rt/0210-x86-mce-use-swait-queue-for-mce-wakeups.patch
+features/all/rt/0211-x86-stackprotector-Avoid-random-pool-on-rt.patch
+features/all/rt/0212-x86-Use-generic-rwsem_spinlocks-on-rt.patch
+features/all/rt/0213-x86-UV-raw_spinlock-conversion.patch
+features/all/rt/0214-thermal-Defer-thermal-wakups-to-threads.patch
+features/all/rt/0215-fs-epoll-Do-not-disable-preemption-on-RT.patch
+features/all/rt/0216-mm-vmalloc-Another-preempt-disable-region-which-suck.patch
+features/all/rt/0217-block-mq-use-cpu_light.patch
+features/all/rt/0218-block-mq-do-not-invoke-preempt_disable.patch
+features/all/rt/0219-block-mq-don-t-complete-requests-via-IPI.patch
+features/all/rt/0220-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
+features/all/rt/0221-rt-Introduce-cpu_chill.patch
+features/all/rt/0222-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch
+features/all/rt/0223-block-blk-mq-Use-swait.patch
+features/all/rt/0224-block-Use-cpu_chill-for-retry-loops.patch
+features/all/rt/0225-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
+features/all/rt/0226-net-Use-cpu_chill-instead-of-cpu_relax.patch
+features/all/rt/0227-fs-dcache-use-swait_queue-instead-of-waitqueue.patch
+features/all/rt/0228-workqueue-Use-normal-rcu.patch
+features/all/rt/0229-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch
+features/all/rt/0230-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch
+features/all/rt/0231-sched-Distangle-worker-accounting-from-rqlock.patch
+features/all/rt/0232-idr-Use-local-lock-instead-of-preempt-enable-disable.patch
+features/all/rt/0233-percpu_ida-Use-local-locks.patch
+features/all/rt/0234-debugobjects-Make-RT-aware.patch
+features/all/rt/0235-jump-label-disable-if-stop_machine-is-used.patch
+features/all/rt/0236-seqlock-Prevent-rt-starvation.patch
+features/all/rt/0237-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch
+features/all/rt/0238-net-Use-skbufhead-with-raw-lock.patch
+features/all/rt/0239-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch
+features/all/rt/0240-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
+features/all/rt/0241-net-provide-a-way-to-delegate-processing-a-softirq-t.patch
+features/all/rt/0242-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch
+features/all/rt/0243-net-Qdisc-use-a-seqlock-instead-seqcount.patch
+features/all/rt/0244-net-add-back-the-missing-serialization-in-ip_send_un.patch
+features/all/rt/0245-net-add-a-lock-around-icmp_sk.patch
+features/all/rt/0246-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch
+features/all/rt/0247-net-sysrq-via-icmp.patch
+features/all/rt/0248-irqwork-push-most-work-into-softirq-context.patch
+features/all/rt/0249-irqwork-Move-irq-safe-work-to-irq-context.patch
+features/all/rt/0250-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch
+features/all/rt/0251-printk-Make-rt-aware.patch
+features/all/rt/0252-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch
+features/all/rt/0253-printk-Drop-the-logbuf_lock-more-often.patch
+features/all/rt/0254-powerpc-Use-generic-rwsem-on-RT.patch
+features/all/rt/0255-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch
+features/all/rt/0256-powerpc-ps3-device-init.c-adapt-to-completions-using.patch
+features/all/rt/0257-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
+features/all/rt/0258-arm-unwind-use-a-raw_spin_lock.patch
+features/all/rt/0259-ARM-enable-irq-in-translation-section-permission-fau.patch
+features/all/rt/0260-genirq-update-irq_set_irqchip_state-documentation.patch
+features/all/rt/0261-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch
+features/all/rt/0262-arm64-xen-Make-XEN-depend-on-RT.patch
+features/all/rt/0263-kgdb-serial-Short-term-workaround.patch
+features/all/rt/0264-sysfs-Add-sys-kernel-realtime-entry.patch
+features/all/rt/0265-powerpc-Disable-highmem-on-RT.patch
+features/all/rt/0266-mips-Disable-highmem-on-RT.patch
+features/all/rt/0267-mm-rt-kmap_atomic-scheduling.patch
+features/all/rt/0268-mm-rt-Fix-generic-kmap_atomic-for-RT.patch
+features/all/rt/0269-x86-highmem-Add-a-already-used-pte-check.patch
+features/all/rt/0270-arm-highmem-Flush-tlb-on-unmap.patch
+features/all/rt/0271-arm-Enable-highmem-for-rt.patch
+features/all/rt/0272-ipc-sem-Rework-semaphore-wakeups.patch
+features/all/rt/0273-x86-kvm-Require-const-tsc-for-RT.patch
+features/all/rt/0274-KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch
+features/all/rt/0275-scsi-fcoe-Make-RT-aware.patch
+features/all/rt/0276-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch
+features/all/rt/0277-x86-crypto-Reduce-preempt-disabled-regions.patch
+features/all/rt/0278-crypto-Reduce-preempt-disabled-regions-more-algos.patch
+features/all/rt/0279-dm-Make-rt-aware.patch
+features/all/rt/0280-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch
+features/all/rt/0281-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
+features/all/rt/0282-random-Make-it-work-on-rt.patch
+features/all/rt/0283-random-avoid-preempt_disable-ed-section.patch
+features/all/rt/0284-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
+features/all/rt/0285-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
+features/all/rt/0286-cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch
+features/all/rt/0287-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch
+features/all/rt/0288-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch
+features/all/rt/0289-cpu_down-move-migrate_enable-back.patch
+features/all/rt/0290-hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch
+features/all/rt/0291-rt-locking-Reenable-migration-accross-schedule.patch
+features/all/rt/0292-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
+features/all/rt/0293-net-Remove-preemption-disabling-in-netif_rx.patch
+features/all/rt/0294-net-Another-local_irq_disable-kmalloc-headache.patch
+features/all/rt/0295-net-core-protect-users-of-napi_alloc_cache-against-r.patch
+features/all/rt/0296-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
+features/all/rt/0297-net-Add-a-mutex-around-devnet_rename_seq.patch
+features/all/rt/0298-crypto-Convert-crypto-notifier-chain-to-SRCU.patch
+features/all/rt/0299-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch
+features/all/rt/0300-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch
+features/all/rt/0301-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
+features/all/rt/0302-kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch
+features/all/rt/0303-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
+features/all/rt/0304-rcu-Eliminate-softirq-processing-from-rcutree.patch
+features/all/rt/0305-rcu-make-RCU_BOOST-default-on-RT.patch
+features/all/rt/0306-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch
+features/all/rt/0307-sched-Add-support-for-lazy-preemption.patch
+features/all/rt/0308-ftrace-Fix-trace-header-alignment.patch
+features/all/rt/0309-x86-Support-for-lazy-preemption.patch
+features/all/rt/0310-arm-Add-support-for-lazy-preemption.patch
+features/all/rt/0311-powerpc-Add-support-for-lazy-preemption.patch
+features/all/rt/0312-arch-arm64-Add-lazy-preempt-support.patch
+features/all/rt/0313-sched-migrate-disable-handle-updated-task-mask-mg-di.patch
+features/all/rt/0314-leds-trigger-disable-CPU-trigger-on-RT.patch
+features/all/rt/0315-mmci-Remove-bogus-local_irq_save.patch
+features/all/rt/0316-cpufreq-drop-K8-s-driver-from-beeing-selected.patch
+features/all/rt/0317-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch
+features/all/rt/0318-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch
+features/all/rt/0319-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch
+features/all/rt/0320-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch
+features/all/rt/0321-i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch
+features/all/rt/0322-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch
+features/all/rt/0323-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch
+features/all/rt/0324-cgroups-use-simple-wait-in-css_release.patch
+features/all/rt/0325-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch
+features/all/rt/0326-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
+features/all/rt/0327-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch
+features/all/rt/0328-md-disable-bcache.patch
+features/all/rt/0329-workqueue-Prevent-deadlock-stall-on-RT.patch
+features/all/rt/0330-Add-localversion-for-RT-release.patch
+features/all/rt/0331-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch
+features/all/rt/0332-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch
+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
--
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