[kernel] r21661 - in dists/squeeze-backports/linux: . debian debian/config debian/patches debian/patches/bugfix/all debian/patches/bugfix/mips debian/patches/bugfix/s390 debian/patches/bugfix/x86 debian/patches/debian debian/patches/features/all debian/patches/features/all/drm debian/patches/features/all/msi-sysfs debian/patches/features/all/rt
Ben Hutchings
benh at moszumanska.debian.org
Thu Jul 31 03:19:58 UTC 2014
Author: benh
Date: Thu Jul 31 03:19:57 2014
New Revision: 21661
Log:
Merge changes from wheezy-security up to 3.2.60-1+deb7u3
Added:
dists/squeeze-backports/linux/debian/patches/bugfix/all/0001-ptrace-x86-force-IRET-path-after-a-ptrace_stop.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/0001-ptrace-x86-force-IRET-path-after-a-ptrace_stop.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Don-t-access-controls-outside-of-protec.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Don-t-access-controls-outside-of-protec.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Fix-replacing-user-controls.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Fix-replacing-user-controls.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Handle-numid-overflow.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Handle-numid-overflow.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Make-sure-that-id-index-does-not-overfl.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Make-sure-that-id-index-does-not-overfl.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Protect-user-controls-against-concurren.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Protect-user-controls-against-concurren.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/mm-add-pte_present-check-on-existing-hugetlb_entry-c.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/mm-add-pte_present-check-on-existing-hugetlb_entry-c.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/net-l2tp-don-t-fall-back-on-UDP-get-set-sockopt.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/net-l2tp-don-t-fall-back-on-UDP-get-set-sockopt.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/revert-net-ip-ipv6-handle-gso-skbs-in-forwarding-pat.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/revert-net-ip-ipv6-handle-gso-skbs-in-forwarding-pat.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/revert-net-ipv4-ip_forward-fix-inverted-local_df-tes.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/revert-net-ipv4-ip_forward-fix-inverted-local_df-tes.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/sctp-fix-sk_ack_backlog-wrap-around-problem.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/sctp-fix-sk_ack_backlog-wrap-around-problem.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/target-explicitly-clear-ramdisk_mcp-backend-pages.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/target-explicitly-clear-ramdisk_mcp-backend-pages.patch
dists/squeeze-backports/linux/debian/patches/bugfix/mips/MIPS-Cleanup-flags-in-syscall-flags-handlers.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/mips/MIPS-Cleanup-flags-in-syscall-flags-handlers.patch
dists/squeeze-backports/linux/debian/patches/bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch
dists/squeeze-backports/linux/debian/patches/bugfix/s390/s390-ptrace-fix-PSW-mask-check.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/s390/s390-ptrace-fix-PSW-mask-check.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/x86_32-entry-Do-syscall-exit-work-on-badsys-CVE-2014.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/bugfix/x86/x86_32-entry-Do-syscall-exit-work-on-badsys-CVE-2014.patch
dists/squeeze-backports/linux/debian/patches/debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch
dists/squeeze-backports/linux/debian/patches/debian/dmi-avoid-abi-change-in-3.2.59.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/debian/dmi-avoid-abi-change-in-3.2.59.patch
dists/squeeze-backports/linux/debian/patches/debian/libata-avoid-abi-change-in-3.2.59.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/debian/libata-avoid-abi-change-in-3.2.59.patch
dists/squeeze-backports/linux/debian/patches/features/all/msi-sysfs/
- copied from r21624, dists/wheezy-security/linux/debian/patches/features/all/msi-sysfs/
dists/squeeze-backports/linux/debian/patches/features/all/rt/0341-net-gianfar-do-not-disable-interrupts.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/0341-net-gianfar-do-not-disable-interrupts.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0342-rcu-make-RCU_BOOST-default-on-RT.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/0342-rcu-make-RCU_BOOST-default-on-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0343-Linux-3.2.60-rt87-REBASE.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/0343-Linux-3.2.60-rt87-REBASE.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/fix-latency-histogram-after-hrtimer-set-expiry-time-before-switch_hrtimer_base.patch
- copied unchanged from r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/fix-latency-histogram-after-hrtimer-set-expiry-time-before-switch_hrtimer_base.patch
Deleted:
dists/squeeze-backports/linux/debian/patches/bugfix/all/drm-nouveau-fix-init-with-agpgart-uninorth.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/drm-radeon-add-connector-table-for-Mac-G4-Silver.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/drm-radeon-add-connector-table-for-SAM440ep-embedded.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/drm-radeon-dce32-use-fractional-fb-dividers-for-high.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/drm-radeon-fix-amd-afusion-gpu-setup-aka-sumo-v2.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/filter-prevent-nla-extensions-to-peek-beyond-the-end.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/floppy-don-t-write-kernel-only-members-to-FDRAWCMD-i.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/floppy-ignore-kernel-only-members-in-FDRAWCMD-ioctl-.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/futex-Add-another-early-deadlock-detection-check.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/futex-Always-cleanup-owner-tid-in-unlock_pi.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/futex-Make-lookup-pi_state-more-robust.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/futex-Prevent-attaching-to-kernel-threads.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/futex-Validate-atomic-acquisition-in-futex_lock_pi_atomic.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/futex-prevent-requeue-pi-on-same-futex.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/i915-ensure-that-VGA-plane-is-disabled.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/ipv6-don-t-set-dst_nocount-for-remotely-added-routes.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/mm-try_to_unmap_cluster-should-lock_page-before-mloc.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/n_tty-Fix-n_tty_write-crash-when-echoing-in-raw-mode.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/net-ipv4-current-group_info-should-be-put-after-usin.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/rds-prevent-dereference-of-a-null-device-in-rds_iw_laddr_check.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/revert-isci-fix-reset-timeout-handling.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/rtl8192ce-fix-null-dereference-in-watchdog.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/vhost-fix-total-length-when-packets-are-too-short.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/vhost-validate-vhost_get_vq_desc-return-value.patch
dists/squeeze-backports/linux/debian/patches/bugfix/all/vlan-set-correct-source-mac-address-with-tx-vlan-offload-enabled.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-Close-race-between-processing-unpin-task-an.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-Only-increment-the-user-pin-count-after-suc.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-emachines-e725.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-emachines-g725.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-packard-bell-ncl20.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-add-quirk_invert_brightness-for-ncr-machine.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-dump-UTS_RELEASE-into-the-error_state.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-panel-invert-brightness-acer-aspire-5734z.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-panel-invert-brightness-via-parameter.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-panel-invert-brightness-via-quirk.patch
dists/squeeze-backports/linux/debian/patches/bugfix/x86/powernow-k6-disable-cache-when-changing-frequency.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0341-Linux-3.2.55-rt81-REBASE.patch
Modified:
dists/squeeze-backports/linux/ (props changed)
dists/squeeze-backports/linux/debian/changelog
dists/squeeze-backports/linux/debian/config/defines
dists/squeeze-backports/linux/debian/patches/features/all/Input-add-Synaptics-USB-device-driver.patch
dists/squeeze-backports/linux/debian/patches/features/all/drm/drm-3.4.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0002-x86-Call-idle-notifier-after-irq_enter.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0003-slab-lockdep-Annotate-all-slab-caches.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0004-x86-kprobes-Remove-remove-bogus-preempt_enable.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0006-block-Shorten-interrupt-disabled-regions.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0008-mips-enable-interrupts-in-signal.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0009-arm-enable-interrupts-in-signal-code.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0010-powerpc-85xx-Mark-cascade-irq-IRQF_NO_THREAD.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0011-powerpc-wsp-Mark-opb-cascade-handler-IRQF_NO_THREAD.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0012-powerpc-Mark-IPI-interrupts-IRQF_NO_THREAD.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0013-powerpc-Allow-irq-threading.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0014-sched-Keep-period-timer-ticking-when-throttling-acti.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0015-sched-Do-not-throttle-due-to-PI-boosting.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0016-time-Remove-bogus-comments.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0017-x86-vdso-Remove-bogus-locking-in-update_vsyscall_tz.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0018-x86-vdso-Use-seqcount-instead-of-seqlock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0019-ia64-vsyscall-Use-seqcount-instead-of-seqlock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0020-seqlock-Remove-unused-functions.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0021-seqlock-Use-seqcount.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0022-vfs-fs_struct-Move-code-out-of-seqcount-write-sectio.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0023-timekeeping-Split-xtime_lock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0024-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0025-mm-memcg-shorten-preempt-disabled-section-around-eve.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0026-tracing-Account-for-preempt-off-in-preempt_schedule.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0027-signal-revert-ptrace-preempt-magic.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0028-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0029-arm-Allow-forced-irq-threading.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0030-preempt-rt-Convert-arm-boot_lock-to-raw.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0031-sched-Create-schedule_preempt_disabled.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0032-sched-Use-schedule_preempt_disabled.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0033-signals-Do-not-wakeup-self.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0034-posix-timers-Prevent-broadcast-signals.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0036-signal-x86-Delay-calling-signals-in-atomic.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0037-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0038-drivers-random-Reduce-preempt-disabled-region.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0039-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0040-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0041-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0042-drivers-net-Use-disable_irq_nosync-in-8139too.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0043-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0044-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0045-preempt-mark-legitimated-no-resched-sites.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0046-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0047-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0048-mm-pagefault_disabled.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0049-mm-raw_pagefault_disable.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0050-filemap-fix-up.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0051-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0052-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0053-suspend-Prevent-might-sleep-splats.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0054-OF-Fixup-resursive-locking-code-paths.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0055-of-convert-devtree-lock.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0056-list-add-list-last-entry.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0057-mm-page-alloc-use-list-last-entry.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0058-mm-slab-move-debug-out.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0059-rwsem-inlcude-fix.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0060-sysctl-include-fix.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0061-net-flip-lock-dep-thingy.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0062-softirq-thread-do-softirq.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0063-softirq-split-out-code.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0064-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0065-x86-32-fix-signal-crap.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0066-x86-Do-not-disable-preemption-in-int3-on-32bit.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0067-rcu-Reduce-lock-section.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0068-locking-various-init-fixes.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0069-wait-Provide-__wake_up_all_locked.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0070-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0071-latency-hist.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0072-hwlatdetect.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0073-localversion.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0074-early-printk-consolidate.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0075-printk-kill.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0076-printk-force_early_printk-boot-param-to-help-with-de.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0077-rt-preempt-base-config.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0078-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0079-rt-local_irq_-variants-depending-on-RT-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0080-preempt-Provide-preempt_-_-no-rt-variants.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0081-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0082-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0083-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0084-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0085-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0086-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0087-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0088-usb-Use-local_irq_-_nort-variants.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0089-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0090-mm-scatterlist-dont-disable-irqs-on-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0091-signal-fix-up-rcu-wreckage.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0092-net-wireless-warn-nort.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0093-mm-Replace-cgroup_page-bit-spinlock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0094-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0095-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0096-genirq-Disable-DEBUG_SHIRQ-for-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0098-genirq-disable-irqpoll-on-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0099-genirq-force-threading.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0100-drivers-net-fix-livelock-issues.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0101-drivers-net-vortex-fix-locking-issues.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0102-drivers-net-gianfar-Make-RT-aware.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0103-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0104-local-var.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0105-rt-local-irq-lock.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0106-cpu-rt-variants.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0107-mm-slab-wrap-functions.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0108-slab-Fix-__do_drain-to-use-the-right-array-cache.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0109-mm-More-lock-breaks-in-slab.c.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0110-mm-page_alloc-rt-friendly-per-cpu-pages.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0111-mm-page_alloc-reduce-lock-sections-further.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0112-mm-page-alloc-fix.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0113-mm-convert-swap-to-percpu-locked.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0114-mm-vmstat-fix-the-irq-lock-asymetry.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0115-mm-make-vmstat-rt-aware.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0116-mm-shrink-the-page-frame-to-rt-size.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0117-ARM-Initialize-ptl-lock-for-vector-page.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0118-mm-Allow-only-slab-on-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0119-radix-tree-rt-aware.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0120-panic-disable-random-on-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0121-ipc-Make-the-ipc-code-rt-aware.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0122-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0123-relay-fix-timer-madness.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0124-net-ipv4-route-use-locks-on-up-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0125-workqueue-avoid-the-lock-in-cpu-dying.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0126-timers-prepare-for-full-preemption.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0127-timers-preempt-rt-support.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0128-timers-fix-timer-hotplug-on-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0129-timers-mov-printk_tick-to-soft-interrupt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0130-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0131-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0132-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0133-hrtimers-prepare-full-preemption.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0134-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0135-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0136-hrtimer-fix-reprogram-madness.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0137-timer-fd-Prevent-live-lock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0138-posix-timers-thread-posix-cpu-timers-on-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0139-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0140-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0141-sched-delay-put-task.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0142-sched-limit-nr-migrate.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0143-sched-mmdrop-delayed.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0144-sched-rt-mutex-wakeup.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0145-sched-prevent-idle-boost.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0146-sched-might-sleep-do-not-account-rcu-depth.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0147-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0148-sched-cond-resched.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0149-cond-resched-softirq-fix.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0150-sched-no-work-when-pi-blocked.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0151-cond-resched-lock-rt-tweak.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0152-sched-disable-ttwu-queue.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0153-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0154-sched-ttwu-Return-success-when-only-changing-the-sav.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0155-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0156-stomp-machine-mark-stomper-thread.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0157-stomp-machine-raw-lock.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0158-hotplug-Lightweight-get-online-cpus.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0159-hotplug-sync_unplug-No.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0160-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0161-sched-migrate-disable.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0162-hotplug-use-migrate-disable.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0163-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0164-ftrace-migrate-disable-tracing.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0165-tracing-Show-padding-as-unsigned-short.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0166-migrate-disable-rt-variant.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0167-sched-Optimize-migrate_disable.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0168-sched-Generic-migrate_disable.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0169-sched-rt-Fix-migrate_enable-thinko.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0170-sched-teach-migrate_disable-about-atomic-contexts.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0171-sched-Postpone-actual-migration-disalbe-to-schedule.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0172-sched-Do-not-compare-cpu-masks-in-scheduler.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0173-sched-Have-migrate_disable-ignore-bounded-threads.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0174-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0175-ftrace-crap.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0176-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0177-net-netif_rx_ni-migrate-disable.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0178-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0179-lockdep-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0180-mutex-no-spin-on-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0181-softirq-local-lock.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0182-softirq-Export-in_serving_softirq.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0183-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0184-softirq-Fix-unplug-deadlock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0185-softirq-disable-softirq-stacks-for-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0186-softirq-make-fifo.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0187-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0188-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0189-local-vars-migrate-disable.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0190-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0191-rtmutex-lock-killable.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0192-rtmutex-futex-prepare-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0193-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0194-rt-mutex-add-sleeping-spinlocks-support.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0195-spinlock-types-separate-raw.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0196-rtmutex-avoid-include-hell.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0197-rt-add-rt-spinlocks.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0198-rt-add-rt-to-mutex-headers.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0199-rwsem-add-rt-variant.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0200-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0201-rwlocks-Fix-section-mismatch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0202-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0203-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0204-rcu-Frob-softirq-test.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0205-rcu-Merge-RCU-bh-into-RCU-preempt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0206-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0207-rcu-more-fallout.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0208-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0209-rt-rcutree-Move-misplaced-prototype.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0210-lglocks-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0211-serial-8250-Clean-up-the-locking-for-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0212-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0213-drivers-tty-fix-omap-lock-crap.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0214-rt-Improve-the-serial-console-PASS_LIMIT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0215-fs-namespace-preemption-fix.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0216-mm-protect-activate-switch-mm.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0217-fs-block-rt-support.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0218-fs-ntfs-disable-interrupt-only-on-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0219-x86-Convert-mce-timer-to-hrtimer.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0220-x86-stackprotector-Avoid-random-pool-on-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0221-x86-Use-generic-rwsem_spinlocks-on-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0222-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0223-workqueue-use-get-cpu-light.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0224-epoll.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0225-mm-vmalloc.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0226-debugobjects-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0227-jump-label-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0228-skbufhead-raw-lock.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0229-x86-no-perf-irq-work-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0230-console-make-rt-friendly.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0231-printk-Disable-migration-instead-of-preemption.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0232-power-use-generic-rwsem-on-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0233-power-disable-highmem-on-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0234-arm-disable-highmem-on-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0235-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0236-mips-disable-highmem-on-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0237-net-Avoid-livelock-in-net_tx_action-on-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0238-ping-sysrq.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0239-kgdb-serial-Short-term-workaround.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0240-add-sys-kernel-realtime-entry.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0241-mm-rt-kmap_atomic-scheduling.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0242-ipc-sem-Rework-semaphore-wakeups.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0243-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0244-x86-kvm-require-const-tsc-for-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0245-scsi-fcoe-rt-aware.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0246-x86-crypto-Reduce-preempt-disabled-regions.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0247-dm-Make-rt-aware.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0248-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0249-seqlock-Prevent-rt-starvation.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0250-timer-Fix-hotplug-for-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0251-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0252-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0253-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0254-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0255-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0256-softirq-Check-preemption-after-reenabling-interrupts.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0257-rt-Introduce-cpu_chill.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0258-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0259-net-Use-cpu_chill-instead-of-cpu_relax.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0260-kconfig-disable-a-few-options-rt.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0261-kconfig-preempt-rt-full.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0262-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0263-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0264-net-RT-REmove-preemption-disabling-in-netif_rx.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0265-mips-remove-smp-reserve-lock.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0266-Latency-histogramms-Cope-with-backwards-running-loca.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0267-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0268-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0269-Latency-histograms-Detect-another-yet-overlooked-sha.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0270-slab-Prevent-local-lock-deadlock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0271-fs-jbd-pull-your-plug-when-waiting-for-space.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0272-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0273-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0274-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0275-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0276-fix-printk-flush-of-messages.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0277-fix-printk-flush-of-messages.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0278-random-Make-it-work-on-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0279-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0280-mm-slab-Fix-potential-deadlock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0281-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0282-rt-rwsem-rwlock-lockdep-annotations.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0283-sched-Better-debug-output-for-might-sleep.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0284-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0285-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0286-hrtimer-Raise-softirq-if-hrtimer-irq-stalled.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0287-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0288-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0289-sched-Adjust-sched_reset_on_fork-when-nothing-else-c.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0290-sched-Queue-RT-tasks-to-head-when-prio-drops.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0291-sched-Consider-pi-boosting-in-setscheduler.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0292-drivers-tty-pl011-irq-disable-madness.patch.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0293-mmci-Remove-bogus-local_irq_save.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0294-sched-Init-idle-on_rq-in-init_idle.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0295-sched-Check-for-idle-task-in-might_sleep.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0296-mm-swap-Initialize-local-locks-early.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0297-x86-32-Use-kmap-switch-for-non-highmem-as-well.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0298-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0299-serial-Imx-Fix-recursive-locking-bug.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0300-wait-simple-Simple-waitqueue-implementation.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0301-rcutiny-Use-simple-waitqueue.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0302-rcutiny-Fix-typo-of-using-swake_up-instead-of-swait_.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0303-x86-mce-Defer-mce-wakeups-to-threads-for-PREEMPT_RT.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0304-swap-Use-unique-local-lock-name-for-swap_lock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0305-sched-Add-is_idle_task-to-handle-invalidated-uses-of.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0306-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0307-x86-mce-fix-mce-timer-interval.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0308-genirq-Set-irq-thread-to-RT-priority-on-creation.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0309-list_bl.h-make-list-head-locking-RT-safe.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0310-list_bl.h-fix-it-for-for-SMP-DEBUG_SPINLOCK.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0311-timers-prepare-for-full-preemption-improve.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0312-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0313-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0314-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0315-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0316-hwlat-detector-Update-hwlat_detector-to-add-outer-lo.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0317-hwlat-detect-trace-Export-trace_clock_local-for-hwla.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0318-hwlat-detector-Use-trace_clock_local-if-available.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0319-hwlat-detector-Use-thread-instead-of-stop-machine.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0320-genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0321-genirq-Set-the-irq-thread-policy-without-checking-CA.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0322-hwlat-detector-Don-t-ignore-threshold-module-paramet.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0323-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0324-drm-remove-preempt_disable-from-drm_calc_vbltimestam.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0325-cpu_down-move-migrate_enable-back.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0326-swait-Add-a-few-more-users.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0327-lockdep-Correctly-annotate-hardirq-context-in-irq_ex.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0328-rtmutex-use-a-trylock-for-waiter-lock-in-trylock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0329-smp-introduce-a-generic-on_each_cpu_mask-function.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0330-smp-add-func-to-IPI-cpus-based-on-parameter-func.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0331-fs-only-send-IPI-to-invalidate-LRU-BH-when-needed.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0332-rcutree-rcu_bh_qs-disable-irq-while-calling-rcu_pree.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0333-Revert-x86-Disable-IST-stacks-for-debug-int-3-stack-.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0334-rt-Make-cpu_chill-use-hrtimer-instead-of-msleep.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0335-kernel-hrtimer-be-non-freezeable-in-cpu_chill.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0336-arm-unwind-use-a-raw_spin_lock.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0337-Revert-swait-Add-a-few-more-users.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0338-net-sched-dev_deactivate_many-use-msleep-1-instead-o.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0339-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
dists/squeeze-backports/linux/debian/patches/features/all/rt/0340-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch
dists/squeeze-backports/linux/debian/patches/series
dists/squeeze-backports/linux/debian/patches/series-rt
Modified: dists/squeeze-backports/linux/debian/changelog
==============================================================================
--- dists/squeeze-backports/linux/debian/changelog Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/changelog Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,4 +1,4 @@
-linux (3.2.57-3+deb7u2~bpo60+1) squeeze-backports; urgency=high
+linux (3.2.60-1+deb7u3~bpo60+1) squeeze-backports; urgency=medium
* Rebuild for squeeze:
- Use gcc-4.4 for all architectures
@@ -11,7 +11,182 @@
- Make build target depend on build-arch only, so we don't redundantly
build documentation on each architecture
- -- Ben Hutchings <ben at decadent.org.uk> Thu, 05 Jun 2014 14:02:38 +0100
+ -- Ben Hutchings <ben at decadent.org.uk> Thu, 31 Jul 2014 04:07:00 +0100
+
+linux (3.2.60-1+deb7u3) wheezy-security; urgency=medium
+
+ * net/l2tp: don't fall back on UDP [get|set]sockopt (CVE-2014-4943)
+ * sctp: Fix sk_ack_backlog wrap-around problem (CVE-2014-4667)
+ * [s390,s390x] ptrace: fix PSW mask check (CVE-2014-3534) (Closes: #728705)
+
+ -- Ben Hutchings <ben at decadent.org.uk> Wed, 23 Jul 2014 13:12:02 +0100
+
+linux (3.2.60-1+deb7u2) wheezy-security; urgency=medium
+
+ * Revert "net: ipv4: ip_forward: fix inverted local_df test"
+ (regression in 3.2.60) (Closes: #754173)
+ * Revert "net: ip, ipv6: handle gso skbs in forwarding path"
+ (regression in 3.2.57)
+
+ -- Ben Hutchings <ben at decadent.org.uk> Sun, 20 Jul 2014 23:54:34 +0100
+
+linux (3.2.60-1+deb7u1) wheezy-security; urgency=high
+
+ * Non-maintainer upload by the Security Team.
+ * CVE-2014-4699: ptrace,x86: force IRET path after a ptrace_stop()
+
+ -- Salvatore Bonaccorso <carnil at debian.org> Fri, 04 Jul 2014 23:21:05 +0200
+
+linux (3.2.60-1) wheezy; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.58
+ - net: sctp: fix skb leakage in COOKIE ECHO path of chunk->auth_chunk
+ - bridge: multicast: add sanity check for query source addresses
+ - net: unix: non blocking recvmsg() should not return -EINTR
+ (regression in 2.6.38)
+ - net: socket: error on a negative msg_namelen (regression in 3.2.53-1)
+ - ipv6: ip6_append_data_mtu do not handle the mtu of the second fragment
+ properly (regression in 3.2.50)
+ - xen-netback: remove pointless clause from if statement
+ - ipv6: some ipv6 statistic counters failed to disable bh
+ - netlink: don't compare the nul-termination in nla_strcmp
+ - [sparc] PCI: Fix incorrect address calculation of PCI Bridge windows on
+ Simba-bridges
+ - [sparc] Revert "sparc64: Fix __copy_{to,from}_user_inatomic defines."
+ - [sparc] sparc64: don't treat 64-bit syscall return codes as 32-bit
+ - [arm] mm: introduce present, faulting entries for PAGE_NONE
+ - Btrfs: skip submitting barrier for missing device
+ - jffs2: remove from wait queue after schedule()
+ - jffs2: Fix segmentation fault found in stress test
+ - jffs2: Fix crash due to truncation of csize
+ - iwlwifi: dvm: take mutex when sending SYNC BT config command
+ - ext4: fix partial cluster handling for bigalloc file systems
+ - IB/ipath: Fix potential buffer overrun in sending diag packet routine
+ - IB/nes: Return an error on ib_copy_from_udata() failure instead of NULL
+ - mfd: Include all drivers in subsystem menu
+ - audit: convert PPIDs to the inital PID namespace.
+ - Btrfs: fix deadlock with nested trans handles
+ - nfsd4: buffer-length check for SUPPATTR_EXCLCREAT
+ - nfsd4: session needs room for following op to error out
+ - dm thin: fix dangling bio in process_deferred_bios error path
+ - nfsd4: fix setclientid encode size
+ - [mips] Hibernate: Flush TLB entries in swsusp_arch_resume()
+ - IB/mthca: Return an error on ib_copy_to_udata() failure
+ - IB/ehca: Returns an error on ib_copy_to_udata() failure
+ - reiserfs: fix race in readdir
+ - ocfs2: dlm: fix lock migration crash
+ - ocfs2: do not put bh when buffer_uptodate failed
+ - iscsi-target: Fix ERL=2 ASYNC_EVENT connection pointer bug
+ - wait: fix reparent_leader() vs EXIT_DEAD->EXIT_ZOMBIE race
+ - [amd64] modify_ldt: Ban 16-bit segments on 64-bit kernels
+ - target/tcm_fc: Fix use-after-free of ft_tpg
+ - [x86] drivers: hv: additional switch to use mb() instead of smp_mb()
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.59
+ - ext4: FIBMAP ioctl causes BUG_ON due to handle EXT_MAX_BLOCKS
+ - ext4: note the error in ext4_end_bio()
+ - ext4: use i_size_read in ext4_unaligned_aio()
+ - locks: allow __break_lease to sleep even when break_time is 0
+ - libata/ahci: accommodate tag ordered controllers
+ - mm: make fixup_user_fault() check the vma access rights too
+ - Btrfs: Don't allocate inode that is already in use
+ - Btrfs: fix inode caching vs tree log
+ - USB: io_ti: fix firmware download on big-endian machines
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.60
+ - netfilter: Can't fail and free after table replacement
+ - net: core: don't account for udp header size when computing seglen
+ (regression in 3.2.57)
+ - rtnetlink: Only supply IFLA_VF_PORTS information when RTEXT_FILTER_VF
+ is set
+ - sctp: reset flowi4_oif parameter on route lookup (regression in 3.0)
+ - Revert "macvlan : fix checksums error when we are in bridge mode"
+ (regression in 2.6.39)
+ - tcp_cubic: fix the range of delayed_ack
+ - net: ipv4: ip_forward: fix inverted local_df test (regression in 3.2.57)
+ - ipv4: fib_semantics: increment fib_info_cnt after fib_info allocation
+ - act_mirred: do not drop packets when fails to mirror it
+ - ipv4: initialise the itag variable in __mkroute_input
+ - net-gro: reset skb->truesize in napi_reuse_skb()
+ - [x86] thinkpad-acpi: fix issuing duplicated key events for brightness
+ up/down
+ - KVM: async_pf: mm->mm_users can not pin apf->mm
+ - hrtimer: Prevent remote enqueue of leftmost timers
+ - timer: Prevent overflow in apply_slack
+ - media-device: fix infoleak in ioctl media_enum_entities()
+ - usb: storage: shuttle_usbat: fix discs being detected twice
+ - USB: Nokia 305 should be treated as unusual dev
+ - USB: Nokia 5300 should be treated as unusual dev
+ - NFSd: Move default initialisers from create_client() to alloc_client()
+ - NFSd: call rpc_destroy_wait_queue() from free_client()
+ - posix_acl: handle NULL ACL in posix_acl_equiv_mode
+ - mm/page-writeback: Negative (setpoint-dirty) in bdi_position_ratio()
+ (see #695182)
+ - mm/page-writeback.c: fix divide by zero in pos_ratio_polynom
+ - NFSD: Call ->set_acl with a NULL ACL structure if no entries
+ - hrtimer: Set expiry time before switch_hrtimer_base()
+ - V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel from
+ user-space
+ - [x86] mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow()
+ - i2c: s3c2410: resume race fix
+ - [amd64] modify_ldt: Make support for 16-bit segments a runtime option
+ - libceph: fix corruption when using page_count 0 page in rbd
+ - perf: Limit perf_event_attr::sample_period to 63 bits
+ - perf: Prevent false warning in perf_swevent_add
+ - nfsd4: remove lockowner when removing lock stateid
+ - nfsd4: warn on finding lockowner without stateid's
+ - [armel] dma: mv_xor: Flush descriptors before activating a channel
+ - hwpoison, hugetlb: lock_page/unlock_page does not match for handling a
+ free hugepage
+
+ [ Ben Hutchings ]
+ * drm, agp: Update to 3.4.92:
+ - i915: Skip intel_crt_init for Dell XPS 8700
+ - drm/vmwgfx: correct fb_fix_screeninfo.line_length
+ - drm/radeon: call drm_edid_to_eld when we update the edid
+ - drm/radeon: fix ATPX detection on non-VGA GPUs
+ - drm/nouveau/acpi: allow non-optimus setups to load vbios from acpi
+ - drm/i915/sdvo: clean up connectors on intel_sdvo_init() failures
+ - drm: fix documentation for drm_crtc_set_mode()
+ - drm/radeon: fix typo in evergreen_mc_resume()
+ - drm/i915: add missing \n to UTS_RELEASE in the error_state
+ - DRM/i915: Add QUIRK_INVERT_BRIGHTNESS for NCR machines.
+ - drm/radeon: use frac fb div on RS780/RS880
+ - drm/radeon: cleanup properly if mmio mapping fails
+ - drm/i915: Workaround incoherence between fences and LLC across multiple
+ CPUs
+ - drm/i915: ensure single initialization and cleanup of backlight device
+ - drm/radeon: Another card with wrong primary dac adj
+ - drm/i915: try not to lose backlight CBLV precision
+ - drm/radeon: fix panel scaling with eDP and LVDS bridges
+ - drm/ttm: Fix memory type compatibility check
+ - drm/radeon: fix hdmi mode enable on RS600/RS690/RS740
+ - drm/radeon: always program the MC on startup
+ * [rt] Update to 3.2.60-rt87:
+ - net: gianfar: do not disable interrupt
+ - rcu: make RCU_BOOST default on RT
+ * [mips] seccomp: Check system calls whenever seccomp is enabled,
+ even if audit and trace are disabled (Closes: #751417) (CVE-2014-4157)
+ * netfilter: ipv4: defrag: set local_df flag on defragmented skb
+ (fixes regression in 3.2.57 and another in 3.2.60)
+ * PCI/sysfs: add per pci device msi[x] irq listing (Closes: #748595)
+ - PCI/MSI: Export MSI mode using attributes, not kobjects
+ - Fix various memory leaks in this feature
+ * [rt] Fix latency histogram after "hrtimer: Set expiry time before
+ switch_hrtimer_base()" in 3.2.60
+ * auditsc: audit_krule mask accesses need bounds checking (CVE-2014-3917)
+ * mm: add !pte_present() check on existing hugetlb_entry callbacks
+ (CVE-2014-3940)
+ * [x86] x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508)
+ * ALSA: control: Protect user controls against concurrent access
+ (CVE-2014-4652)
+ * ALSA: control: Don't access controls outside of protected regions
+ (CVE-2014-4653)
+ * ALSA: control: Fix replacing user controls (CVE-2014-4654, CVE-2014-4655)
+ * ALSA: control: Make sure that id->index does not overflow;
+ Handle numid overflow (CVE-2014-4656)
+ * target: Explicitly clear ramdisk_mcp backend pages (CVE-2014-4027)
+
+ -- Ben Hutchings <ben at decadent.org.uk> Sun, 29 Jun 2014 02:09:50 +0100
linux (3.2.57-3+deb7u2) wheezy-security; urgency=high
Modified: dists/squeeze-backports/linux/debian/config/defines
==============================================================================
--- dists/squeeze-backports/linux/debian/config/defines Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/config/defines Thu Jul 31 03:19:57 2014 (r21661)
@@ -58,6 +58,11 @@
sysctl_tcp_dma_copybreak
# Should not be used from OOT
module:fs/exofs/libore
+# Private to the matroxfb modules (why are they even separate modules?!)
+ DAC1064_global_*
+ g450_mnp2f
+ matrox_*
+ matroxfb_*
[base]
arches:
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/0001-ptrace-x86-force-IRET-path-after-a-ptrace_stop.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/0001-ptrace-x86-force-IRET-path-after-a-ptrace_stop.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/0001-ptrace-x86-force-IRET-path-after-a-ptrace_stop.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/0001-ptrace-x86-force-IRET-path-after-a-ptrace_stop.patch)
@@ -0,0 +1,77 @@
+From b9cd18de4db3c9ffa7e17b0dc0ca99ed5aa4d43a Mon Sep 17 00:00:00 2001
+From: Tejun Heo <tj at kernel.org>
+Date: Thu, 3 Jul 2014 15:43:15 -0400
+Subject: [PATCH] ptrace,x86: force IRET path after a ptrace_stop()
+
+The 'sysret' fastpath does not correctly restore even all regular
+registers, much less any segment registers or reflags values. That is
+very much part of why it's faster than 'iret'.
+
+Normally that isn't a problem, because the normal ptrace() interface
+catches the process using the signal handler infrastructure, which
+always returns with an iret.
+
+However, some paths can get caught using ptrace_event() instead of the
+signal path, and for those we need to make sure that we aren't going to
+return to user space using 'sysret'. Otherwise the modifications that
+may have been done to the register set by the tracer wouldn't
+necessarily take effect.
+
+Fix it by forcing IRET path by setting TIF_NOTIFY_RESUME from
+arch_ptrace_stop_needed() which is invoked from ptrace_stop().
+
+Signed-off-by: Tejun Heo <tj at kernel.org>
+Reported-by: Andy Lutomirski <luto at amacapital.net>
+Acked-by: Oleg Nesterov <oleg at redhat.com>
+Suggested-by: Linus Torvalds <torvalds at linux-foundation.org>
+Cc: stable at vger.kernel.org
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+ arch/x86/include/asm/ptrace.h | 16 ++++++++++++++++
+ include/linux/ptrace.h | 3 +++
+ 2 files changed, 19 insertions(+)
+
+diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
+index 14fd6fd..6205f0c 100644
+--- a/arch/x86/include/asm/ptrace.h
++++ b/arch/x86/include/asm/ptrace.h
+@@ -231,6 +231,22 @@ static inline unsigned long regs_get_kernel_stack_nth(struct pt_regs *regs,
+
+ #define ARCH_HAS_USER_SINGLE_STEP_INFO
+
++/*
++ * When hitting ptrace_stop(), we cannot return using SYSRET because
++ * that does not restore the full CPU state, only a minimal set. The
++ * ptracer can change arbitrary register values, which is usually okay
++ * because the usual ptrace stops run off the signal delivery path which
++ * forces IRET; however, ptrace_event() stops happen in arbitrary places
++ * in the kernel and don't force IRET path.
++ *
++ * So force IRET path after a ptrace stop.
++ */
++#define arch_ptrace_stop_needed(code, info) \
++({ \
++ set_thread_flag(TIF_NOTIFY_RESUME); \
++ false; \
++})
++
+ struct user_desc;
+ extern int do_get_thread_area(struct task_struct *p, int idx,
+ struct user_desc __user *info);
+diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
+index 077904c..cc79eff 100644
+--- a/include/linux/ptrace.h
++++ b/include/linux/ptrace.h
+@@ -334,6 +334,9 @@ static inline void user_single_step_siginfo(struct task_struct *tsk,
+ * calling arch_ptrace_stop() when it would be superfluous. For example,
+ * if the thread has not been back to user mode since the last stop, the
+ * thread state might indicate that nothing needs to be done.
++ *
++ * This is guaranteed to be invoked once before a task stops for ptrace and
++ * may include arch-specific operations necessary prior to a ptrace stop.
+ */
+ #define arch_ptrace_stop_needed(code, info) (0)
+ #endif
+--
+1.7.10.4
+
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Don-t-access-controls-outside-of-protec.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Don-t-access-controls-outside-of-protec.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Don-t-access-controls-outside-of-protec.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Don-t-access-controls-outside-of-protec.patch)
@@ -0,0 +1,80 @@
+From: Lars-Peter Clausen <lars at metafoo.de>
+Date: Wed, 18 Jun 2014 13:32:33 +0200
+Subject: ALSA: control: Don't access controls outside of protected regions
+Origin: https://git.kernel.org/linus/fd9f26e4eca5d08a27d12c0933fceef76ed9663d
+
+A control that is visible on the card->controls list can be freed at any time.
+This means we must not access any of its memory while not holding the
+controls_rw_lock. Otherwise we risk a use after free access.
+
+Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
+Acked-by: Jaroslav Kysela <perex at perex.cz>
+Cc: <stable at vger.kernel.org>
+Signed-off-by: Takashi Iwai <tiwai at suse.de>
+---
+ sound/core/control.c | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+--- a/sound/core/control.c
++++ b/sound/core/control.c
+@@ -329,6 +329,7 @@ int snd_ctl_add(struct snd_card *card, s
+ {
+ struct snd_ctl_elem_id id;
+ unsigned int idx;
++ unsigned int count;
+ int err = -EINVAL;
+
+ if (! kcontrol)
+@@ -357,8 +358,9 @@ int snd_ctl_add(struct snd_card *card, s
+ card->controls_count += kcontrol->count;
+ kcontrol->id.numid = card->last_numid + 1;
+ card->last_numid += kcontrol->count;
++ count = kcontrol->count;
+ up_write(&card->controls_rwsem);
+- for (idx = 0; idx < kcontrol->count; idx++, id.index++, id.numid++)
++ for (idx = 0; idx < count; idx++, id.index++, id.numid++)
+ snd_ctl_notify(card, SNDRV_CTL_EVENT_MASK_ADD, &id);
+ return 0;
+
+@@ -387,6 +389,7 @@ int snd_ctl_replace(struct snd_card *car
+ bool add_on_replace)
+ {
+ struct snd_ctl_elem_id id;
++ unsigned int count;
+ unsigned int idx;
+ struct snd_kcontrol *old;
+ int ret;
+@@ -422,8 +425,9 @@ add:
+ card->controls_count += kcontrol->count;
+ kcontrol->id.numid = card->last_numid + 1;
+ card->last_numid += kcontrol->count;
++ count = kcontrol->count;
+ up_write(&card->controls_rwsem);
+- for (idx = 0; idx < kcontrol->count; idx++, id.index++, id.numid++)
++ for (idx = 0; idx < count; idx++, id.index++, id.numid++)
+ snd_ctl_notify(card, SNDRV_CTL_EVENT_MASK_ADD, &id);
+ return 0;
+
+@@ -894,9 +898,9 @@ static int snd_ctl_elem_write(struct snd
+ result = kctl->put(kctl, control);
+ }
+ if (result > 0) {
++ struct snd_ctl_elem_id id = control->id;
+ up_read(&card->controls_rwsem);
+- snd_ctl_notify(card, SNDRV_CTL_EVENT_MASK_VALUE,
+- &control->id);
++ snd_ctl_notify(card, SNDRV_CTL_EVENT_MASK_VALUE, &id);
+ return 0;
+ }
+ }
+@@ -1337,8 +1341,9 @@ static int snd_ctl_tlv_ioctl(struct snd_
+ }
+ err = kctl->tlv.c(kctl, op_flag, tlv.length, _tlv->tlv);
+ if (err > 0) {
++ struct snd_ctl_elem_id id = kctl->id;
+ up_read(&card->controls_rwsem);
+- snd_ctl_notify(card, SNDRV_CTL_EVENT_MASK_TLV, &kctl->id);
++ snd_ctl_notify(card, SNDRV_CTL_EVENT_MASK_TLV, &id);
+ return 0;
+ }
+ } else {
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Fix-replacing-user-controls.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Fix-replacing-user-controls.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Fix-replacing-user-controls.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Fix-replacing-user-controls.patch)
@@ -0,0 +1,83 @@
+From: Lars-Peter Clausen <lars at metafoo.de>
+Date: Wed, 18 Jun 2014 13:32:32 +0200
+Subject: ALSA: control: Fix replacing user controls
+Origin: https://git.kernel.org/linus/82262a46627bebb0febcc26664746c25cef08563
+
+There are two issues with the current implementation for replacing user
+controls. The first is that the code does not check if the control is actually a
+user control and neither does it check if the control is owned by the process
+that tries to remove it. That allows userspace applications to remove arbitrary
+controls, which can cause a user after free if a for example a driver does not
+expect a control to be removed from under its feed.
+
+The second issue is that on one hand when a control is replaced the
+user_ctl_count limit is not checked and on the other hand the user_ctl_count is
+increased (even though the number of user controls does not change). This allows
+userspace, once the user_ctl_count limit as been reached, to repeatedly replace
+a control until user_ctl_count overflows. Once that happens new controls can be
+added effectively bypassing the user_ctl_count limit.
+
+Both issues can be fixed by instead of open-coding the removal of the control
+that is to be replaced to use snd_ctl_remove_user_ctl(). This function does
+proper permission checks as well as decrements user_ctl_count after the control
+has been removed.
+
+Note that by using snd_ctl_remove_user_ctl() the check which returns -EBUSY at
+beginning of the function if the control already exists is removed. This is not
+a problem though since the check is quite useless, because the lock that is
+protecting the control list is released between the check and before adding the
+new control to the list, which means that it is possible that a different
+control with the same settings is added to the list after the check. Luckily
+there is another check that is done while holding the lock in snd_ctl_add(), so
+we'll rely on that to make sure that the same control is not added twice.
+
+Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
+Acked-by: Jaroslav Kysela <perex at perex.cz>
+Cc: <stable at vger.kernel.org>
+Signed-off-by: Takashi Iwai <tiwai at suse.de>
+---
+ sound/core/control.c | 25 +++++++++----------------
+ 1 file changed, 9 insertions(+), 16 deletions(-)
+
+--- a/sound/core/control.c
++++ b/sound/core/control.c
+@@ -1155,8 +1155,6 @@ static int snd_ctl_elem_add(struct snd_c
+ struct user_element *ue;
+ int idx, err;
+
+- if (!replace && card->user_ctl_count >= MAX_USER_CONTROLS)
+- return -ENOMEM;
+ if (info->count < 1)
+ return -EINVAL;
+ access = info->access == 0 ? SNDRV_CTL_ELEM_ACCESS_READWRITE :
+@@ -1165,21 +1163,16 @@ static int snd_ctl_elem_add(struct snd_c
+ SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE));
+ info->id.numid = 0;
+ memset(&kctl, 0, sizeof(kctl));
+- down_write(&card->controls_rwsem);
+- _kctl = snd_ctl_find_id(card, &info->id);
+- err = 0;
+- if (_kctl) {
+- if (replace)
+- err = snd_ctl_remove(card, _kctl);
+- else
+- err = -EBUSY;
+- } else {
+- if (replace)
+- err = -ENOENT;
++
++ if (replace) {
++ err = snd_ctl_remove_user_ctl(file, &info->id);
++ if (err)
++ return err;
+ }
+- up_write(&card->controls_rwsem);
+- if (err < 0)
+- return err;
++
++ if (card->user_ctl_count >= MAX_USER_CONTROLS)
++ return -ENOMEM;
++
+ memcpy(&kctl.id, &info->id, sizeof(info->id));
+ kctl.count = info->owner ? info->owner : 1;
+ access |= SNDRV_CTL_ELEM_ACCESS_USER;
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Handle-numid-overflow.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Handle-numid-overflow.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Handle-numid-overflow.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Handle-numid-overflow.patch)
@@ -0,0 +1,37 @@
+From: Lars-Peter Clausen <lars at metafoo.de>
+Date: Wed, 18 Jun 2014 13:32:34 +0200
+Subject: ALSA: control: Handle numid overflow
+Origin: https://git.kernel.org/linus/ac902c112d90a89e59916f751c2745f4dbdbb4bd
+
+Each control gets automatically assigned its numids when the control is created.
+The allocation is done by incrementing the numid by the amount of allocated
+numids per allocation. This means that excessive creation and destruction of
+controls (e.g. via SNDRV_CTL_IOCTL_ELEM_ADD/REMOVE) can cause the id to
+eventually overflow. Currently when this happens for the control that caused the
+overflow kctl->id.numid + kctl->count will also over flow causing it to be
+smaller than kctl->id.numid. Most of the code assumes that this is something
+that can not happen, so we need to make sure that it won't happen
+
+Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
+Acked-by: Jaroslav Kysela <perex at perex.cz>
+Cc: <stable at vger.kernel.org>
+Signed-off-by: Takashi Iwai <tiwai at suse.de>
+---
+ sound/core/control.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/sound/core/control.c b/sound/core/control.c
+index 5c49f97..8d6e4ba 100644
+--- a/sound/core/control.c
++++ b/sound/core/control.c
+@@ -288,6 +288,10 @@ static bool snd_ctl_remove_numid_conflict(struct snd_card *card,
+ {
+ struct snd_kcontrol *kctl;
+
++ /* Make sure that the ids assigned to the control do not wrap around */
++ if (card->last_numid >= UINT_MAX - count)
++ card->last_numid = 0;
++
+ list_for_each_entry(kctl, &card->controls, list) {
+ if (kctl->id.numid < card->last_numid + 1 + count &&
+ kctl->id.numid + kctl->count > card->last_numid + 1) {
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Make-sure-that-id-index-does-not-overfl.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Make-sure-that-id-index-does-not-overfl.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Make-sure-that-id-index-does-not-overfl.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Make-sure-that-id-index-does-not-overfl.patch)
@@ -0,0 +1,32 @@
+From: Lars-Peter Clausen <lars at metafoo.de>
+Date: Wed, 18 Jun 2014 13:32:35 +0200
+Subject: ALSA: control: Make sure that id->index does not overflow
+Origin: https://git.kernel.org/linus/883a1d49f0d77d30012f114b2e19fc141beb3e8e
+
+The ALSA control code expects that the range of assigned indices to a control is
+continuous and does not overflow. Currently there are no checks to enforce this.
+If a control with a overflowing index range is created that control becomes
+effectively inaccessible and unremovable since snd_ctl_find_id() will not be
+able to find it. This patch adds a check that makes sure that controls with a
+overflowing index range can not be created.
+
+Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
+Acked-by: Jaroslav Kysela <perex at perex.cz>
+Cc: <stable at vger.kernel.org>
+Signed-off-by: Takashi Iwai <tiwai at suse.de>
+---
+ sound/core/control.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/sound/core/control.c
++++ b/sound/core/control.c
+@@ -337,6 +337,9 @@ int snd_ctl_add(struct snd_card *card, s
+ if (snd_BUG_ON(!card || !kcontrol->info))
+ goto error;
+ id = kcontrol->id;
++ if (id.index > UINT_MAX - kcontrol->count)
++ goto error;
++
+ down_write(&card->controls_rwsem);
+ if (snd_ctl_find_id(card, &id)) {
+ up_write(&card->controls_rwsem);
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Protect-user-controls-against-concurren.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Protect-user-controls-against-concurren.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/ALSA-control-Protect-user-controls-against-concurren.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/ALSA-control-Protect-user-controls-against-concurren.patch)
@@ -0,0 +1,124 @@
+From: Lars-Peter Clausen <lars at metafoo.de>
+Date: Wed, 18 Jun 2014 13:32:31 +0200
+Subject: ALSA: control: Protect user controls against concurrent access
+Origin: https://git.kernel.org/linus/07f4d9d74a04aa7c72c5dae0ef97565f28f17b92
+
+The user-control put and get handlers as well as the tlv do not protect against
+concurrent access from multiple threads. Since the state of the control is not
+updated atomically it is possible that either two write operations or a write
+and a read operation race against each other. Both can lead to arbitrary memory
+disclosure. This patch introduces a new lock that protects user-controls from
+concurrent access. Since applications typically access controls sequentially
+than in parallel a single lock per card should be fine.
+
+Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
+Acked-by: Jaroslav Kysela <perex at perex.cz>
+Cc: <stable at vger.kernel.org>
+Signed-off-by: Takashi Iwai <tiwai at suse.de>
+---
+ include/sound/core.h | 2 ++
+ sound/core/control.c | 31 +++++++++++++++++++++++++------
+ sound/core/init.c | 1 +
+ 3 files changed, 28 insertions(+), 6 deletions(-)
+
+--- a/include/sound/core.h
++++ b/include/sound/core.h
+@@ -120,6 +120,8 @@ struct snd_card {
+ int user_ctl_count; /* count of all user controls */
+ struct list_head controls; /* all controls for this card */
+ struct list_head ctl_files; /* active control files */
++ struct mutex user_ctl_lock; /* protects user controls against
++ concurrent access */
+
+ struct snd_info_entry *proc_root; /* root for soundcard specific files */
+ struct snd_info_entry *proc_id; /* the card id */
+--- a/sound/core/control.c
++++ b/sound/core/control.c
+@@ -988,6 +988,7 @@ static int snd_ctl_elem_unlock(struct sn
+
+ struct user_element {
+ struct snd_ctl_elem_info info;
++ struct snd_card *card;
+ void *elem_data; /* element data */
+ unsigned long elem_data_size; /* size of element data in bytes */
+ void *tlv_data; /* TLV data */
+@@ -1031,7 +1032,9 @@ static int snd_ctl_elem_user_get(struct
+ {
+ struct user_element *ue = kcontrol->private_data;
+
++ mutex_lock(&ue->card->user_ctl_lock);
+ memcpy(&ucontrol->value, ue->elem_data, ue->elem_data_size);
++ mutex_unlock(&ue->card->user_ctl_lock);
+ return 0;
+ }
+
+@@ -1040,10 +1043,12 @@ static int snd_ctl_elem_user_put(struct
+ {
+ int change;
+ struct user_element *ue = kcontrol->private_data;
+-
++
++ mutex_lock(&ue->card->user_ctl_lock);
+ change = memcmp(&ucontrol->value, ue->elem_data, ue->elem_data_size) != 0;
+ if (change)
+ memcpy(ue->elem_data, &ucontrol->value, ue->elem_data_size);
++ mutex_unlock(&ue->card->user_ctl_lock);
+ return change;
+ }
+
+@@ -1063,19 +1068,32 @@ static int snd_ctl_elem_user_tlv(struct
+ new_data = memdup_user(tlv, size);
+ if (IS_ERR(new_data))
+ return PTR_ERR(new_data);
++ mutex_lock(&ue->card->user_ctl_lock);
+ change = ue->tlv_data_size != size;
+ if (!change)
+ change = memcmp(ue->tlv_data, new_data, size);
+ kfree(ue->tlv_data);
+ ue->tlv_data = new_data;
+ ue->tlv_data_size = size;
++ mutex_unlock(&ue->card->user_ctl_lock);
+ } else {
+- if (! ue->tlv_data_size || ! ue->tlv_data)
+- return -ENXIO;
+- if (size < ue->tlv_data_size)
+- return -ENOSPC;
++ int ret = 0;
++
++ mutex_lock(&ue->card->user_ctl_lock);
++ if (!ue->tlv_data_size || !ue->tlv_data) {
++ ret = -ENXIO;
++ goto err_unlock;
++ }
++ if (size < ue->tlv_data_size) {
++ ret = -ENOSPC;
++ goto err_unlock;
++ }
+ if (copy_to_user(tlv, ue->tlv_data, ue->tlv_data_size))
+- return -EFAULT;
++ ret = -EFAULT;
++err_unlock:
++ mutex_unlock(&ue->card->user_ctl_lock);
++ if (ret)
++ return ret;
+ }
+ return change;
+ }
+@@ -1207,6 +1225,7 @@ static int snd_ctl_elem_add(struct snd_c
+ ue = kzalloc(sizeof(struct user_element) + private_size, GFP_KERNEL);
+ if (ue == NULL)
+ return -ENOMEM;
++ ue->card = card;
+ ue->info = *info;
+ ue->info.access = 0;
+ ue->elem_data = (char *)ue + sizeof(*ue);
+--- a/sound/core/init.c
++++ b/sound/core/init.c
+@@ -207,6 +207,7 @@ int snd_card_create(int idx, const char
+ INIT_LIST_HEAD(&card->devices);
+ init_rwsem(&card->controls_rwsem);
+ rwlock_init(&card->ctl_files_rwlock);
++ mutex_init(&card->user_ctl_lock);
+ INIT_LIST_HEAD(&card->controls);
+ INIT_LIST_HEAD(&card->ctl_files);
+ spin_lock_init(&card->files_lock);
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch)
@@ -0,0 +1,78 @@
+From: Andy Lutomirski <luto at amacapital.net>
+Date: Wed, 28 May 2014 23:09:58 -0400
+Subject: auditsc: audit_krule mask accesses need bounds checking
+Origin: https://git.kernel.org/linus/a3c54931199565930d6d84f4c3456f6440aefd41
+
+Fixes an easy DoS and possible information disclosure.
+
+This does nothing about the broken state of x32 auditing.
+
+eparis: If the admin has enabled auditd and has specifically loaded
+audit rules. This bug has been around since before git. Wow...
+
+Cc: stable at vger.kernel.org
+Signed-off-by: Andy Lutomirski <luto at amacapital.net>
+Signed-off-by: Eric Paris <eparis at redhat.com>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+[bwh: Backported to 3.2: audit_filter_inode_name() is not a separate
+ function but part of audit_filter_inodes()]
+---
+ kernel/auditsc.c | 27 ++++++++++++++++++---------
+ 1 file changed, 18 insertions(+), 9 deletions(-)
+
+--- a/kernel/auditsc.c
++++ b/kernel/auditsc.c
+@@ -688,6 +688,22 @@ static enum audit_state audit_filter_tas
+ return AUDIT_BUILD_CONTEXT;
+ }
+
++static int audit_in_mask(const struct audit_krule *rule, unsigned long val)
++{
++ int word, bit;
++
++ if (val > 0xffffffff)
++ return false;
++
++ word = AUDIT_WORD(val);
++ if (word >= AUDIT_BITMASK_SIZE)
++ return false;
++
++ bit = AUDIT_BIT(val);
++
++ return rule->mask[word] & bit;
++}
++
+ /* At syscall entry and exit time, this filter is called if the
+ * audit_state is not low enough that auditing cannot take place, but is
+ * also not high enough that we already know we have to write an audit
+@@ -705,11 +721,8 @@ static enum audit_state audit_filter_sys
+
+ rcu_read_lock();
+ if (!list_empty(list)) {
+- int word = AUDIT_WORD(ctx->major);
+- int bit = AUDIT_BIT(ctx->major);
+-
+ list_for_each_entry_rcu(e, list, list) {
+- if ((e->rule.mask[word] & bit) == bit &&
++ if (audit_in_mask(&e->rule, ctx->major) &&
+ audit_filter_rules(tsk, &e->rule, ctx, NULL,
+ &state, false)) {
+ rcu_read_unlock();
+@@ -738,8 +751,6 @@ void audit_filter_inodes(struct task_str
+
+ rcu_read_lock();
+ for (i = 0; i < ctx->name_count; i++) {
+- int word = AUDIT_WORD(ctx->major);
+- int bit = AUDIT_BIT(ctx->major);
+ struct audit_names *n = &ctx->names[i];
+ int h = audit_hash_ino((u32)n->ino);
+ struct list_head *list = &audit_inode_hash[h];
+@@ -748,7 +759,7 @@ void audit_filter_inodes(struct task_str
+ continue;
+
+ list_for_each_entry_rcu(e, list, list) {
+- if ((e->rule.mask[word] & bit) == bit &&
++ if (audit_in_mask(&e->rule, ctx->major) &&
+ audit_filter_rules(tsk, &e->rule, ctx, n,
+ &state, false)) {
+ rcu_read_unlock();
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/mm-add-pte_present-check-on-existing-hugetlb_entry-c.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/mm-add-pte_present-check-on-existing-hugetlb_entry-c.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/mm-add-pte_present-check-on-existing-hugetlb_entry-c.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/mm-add-pte_present-check-on-existing-hugetlb_entry-c.patch)
@@ -0,0 +1,44 @@
+From: Naoya Horiguchi <n-horiguchi at ah.jp.nec.com>
+Date: Fri, 6 Jun 2014 10:00:01 -0400
+Subject: mm: add !pte_present() check on existing hugetlb_entry callbacks
+Origin: https://git.kernel.org/linus/d4c54919ed86302094c0ca7d48a8cbd4ee753e92
+
+The age table walker doesn't check non-present hugetlb entry in common
+path, so hugetlb_entry() callbacks must check it. The reason for this
+behavior is that some callers want to handle it in its own way.
+
+[ I think that reason is bogus, btw - it should just do what the regular
+ code does, which is to call the "pte_hole()" function for such hugetlb
+ entries - Linus]
+
+However, some callers don't check it now, which causes unpredictable
+result, for example when we have a race between migrating hugepage and
+reading /proc/pid/numa_maps. This patch fixes it by adding !pte_present
+checks on buggy callbacks.
+
+This bug exists for years and got visible by introducing hugepage
+migration.
+
+ChangeLog v2:
+- fix if condition (check !pte_present() instead of pte_present())
+
+Reported-by: Sasha Levin <sasha.levin at oracle.com>
+Signed-off-by: Naoya Horiguchi <n-horiguchi at ah.jp.nec.com>
+Cc: Rik van Riel <riel at redhat.com>
+Cc: <stable at vger.kernel.org> [3.12+]
+Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+[ Backported to 3.15. Signed-off-by: Josh Boyer <jwboyer at fedoraproject.org> ]
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+[bwh: Backported to 3.2: mm/mempolicy.c doesn't have a hugetlb_entry callback]
+---
+--- a/fs/proc/task_mmu.c
++++ b/fs/proc/task_mmu.c
+@@ -988,7 +988,7 @@ static int gather_hugetbl_stats(pte_t *p
+ struct numa_maps *md;
+ struct page *page;
+
+- if (pte_none(*pte))
++ if (!pte_present(*pte))
+ return 0;
+
+ page = pte_page(*pte);
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/net-l2tp-don-t-fall-back-on-UDP-get-set-sockopt.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/net-l2tp-don-t-fall-back-on-UDP-get-set-sockopt.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/net-l2tp-don-t-fall-back-on-UDP-get-set-sockopt.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/net-l2tp-don-t-fall-back-on-UDP-get-set-sockopt.patch)
@@ -0,0 +1,49 @@
+From: Sasha Levin <sasha.levin at oracle.com>
+Date: Mon, 14 Jul 2014 17:02:31 -0700
+Subject: net/l2tp: don't fall back on UDP [get|set]sockopt
+Origin: https://git.kernel.org/linus/3cf521f7dc87c031617fd47e4b7aa2593c2f3daf
+
+The l2tp [get|set]sockopt() code has fallen back to the UDP functions
+for socket option levels != SOL_PPPOL2TP since day one, but that has
+never actually worked, since the l2tp socket isn't an inet socket.
+
+As David Miller points out:
+
+ "If we wanted this to work, it'd have to look up the tunnel and then
+ use tunnel->sk, but I wonder how useful that would be"
+
+Since this can never have worked so nobody could possibly have depended
+on that functionality, just remove the broken code and return -EINVAL.
+
+Reported-by: Sasha Levin <sasha.levin at oracle.com>
+Acked-by: James Chapman <jchapman at katalix.com>
+Acked-by: David Miller <davem at davemloft.net>
+Cc: Phil Turnbull <phil.turnbull at oracle.com>
+Cc: Vegard Nossum <vegard.nossum at oracle.com>
+Cc: Willy Tarreau <w at 1wt.eu>
+Cc: stable at vger.kernel.org
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+ net/l2tp/l2tp_ppp.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/net/l2tp/l2tp_ppp.c
++++ b/net/l2tp/l2tp_ppp.c
+@@ -1351,7 +1351,7 @@ static int pppol2tp_setsockopt(struct so
+ int err;
+
+ if (level != SOL_PPPOL2TP)
+- return udp_prot.setsockopt(sk, level, optname, optval, optlen);
++ return -EINVAL;
+
+ if (optlen < sizeof(int))
+ return -EINVAL;
+@@ -1477,7 +1477,7 @@ static int pppol2tp_getsockopt(struct so
+ struct pppol2tp_session *ps;
+
+ if (level != SOL_PPPOL2TP)
+- return udp_prot.getsockopt(sk, level, optname, optval, optlen);
++ return -EINVAL;
+
+ if (get_user(len, (int __user *) optlen))
+ return -EFAULT;
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch)
@@ -0,0 +1,53 @@
+From: Florian Westphal <fw at strlen.de>
+Date: Fri, 2 May 2014 15:32:16 +0200
+Subject: netfilter: ipv4: defrag: set local_df flag on defragmented skb
+Origin: https://git.kernel.org/linus/895162b1101b3ea5db08ca6822ae9672717efec0
+
+else we may fail to forward skb even if original fragments do fit
+outgoing link mtu:
+
+1. remote sends 2k packets in two 1000 byte frags, DF set
+2. we want to forward but only see '2k > mtu and DF set'
+3. we then send icmp error saying that outgoing link is 1500
+
+But original sender never sent a packet that would not fit
+the outgoing link.
+
+Setting local_df makes outgoing path test size vs.
+IPCB(skb)->frag_max_size, so we will still send the correct
+error in case the largest original size did not fit
+outgoing link mtu.
+
+Reported-by: Maxime Bizon <mbizon at freebox.fr>
+Suggested-by: Maxime Bizon <mbizon at freebox.fr>
+Fixes: 5f2d04f1f9 (ipv4: fix path MTU discovery with connection tracking)
+Signed-off-by: Florian Westphal <fw at strlen.de>
+Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
+---
+ net/ipv4/netfilter/nf_defrag_ipv4.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/net/ipv4/netfilter/nf_defrag_ipv4.c b/net/ipv4/netfilter/nf_defrag_ipv4.c
+index 12e13bd..f40f321 100644
+--- a/net/ipv4/netfilter/nf_defrag_ipv4.c
++++ b/net/ipv4/netfilter/nf_defrag_ipv4.c
+@@ -22,7 +22,6 @@
+ #endif
+ #include <net/netfilter/nf_conntrack_zones.h>
+
+-/* Returns new sk_buff, or NULL */
+ static int nf_ct_ipv4_gather_frags(struct sk_buff *skb, u_int32_t user)
+ {
+ int err;
+@@ -33,8 +32,10 @@ static int nf_ct_ipv4_gather_frags(struct sk_buff *skb, u_int32_t user)
+ err = ip_defrag(skb, user);
+ local_bh_enable();
+
+- if (!err)
++ if (!err) {
+ ip_send_check(ip_hdr(skb));
++ skb->local_df = 1;
++ }
+
+ return err;
+ }
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/revert-net-ip-ipv6-handle-gso-skbs-in-forwarding-pat.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/revert-net-ip-ipv6-handle-gso-skbs-in-forwarding-pat.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/revert-net-ip-ipv6-handle-gso-skbs-in-forwarding-pat.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/revert-net-ip-ipv6-handle-gso-skbs-in-forwarding-pat.patch)
@@ -0,0 +1,164 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Sat, 12 Jul 2014 21:00:54 +0100
+Subject: Revert "net: ip, ipv6: handle gso skbs in forwarding path"
+
+This reverts commit caa5344994778a2b4725b2d75c74430f76925e4a, which
+was commit fe6cc55f3a9a053482a76f5a6b2257cee51b4663 upstream. In 3.2,
+the transport header length is not calculated in the forwarding path,
+so skb_gso_network_seglen() returns an incorrect result. We also have
+problems due to the local_df flag not being set correctly.
+
+There isn't a Debian bug report for this, but it needed a further
+fix ("net: ipv4: ip_forward: fix inverted local_df test") which in
+turn caused more obvious regressions (#754173).
+---
+ include/linux/skbuff.h | 17 -------------
+ net/ipv4/ip_forward.c | 68 ++------------------------------------------------
+ net/ipv6/ip6_output.c | 13 +---------
+ 3 files changed, 3 insertions(+), 95 deletions(-)
+
+--- a/include/linux/skbuff.h
++++ b/include/linux/skbuff.h
+@@ -2588,22 +2588,5 @@ static inline bool skb_is_recycleable(co
+
+ return true;
+ }
+-
+-/**
+- * skb_gso_network_seglen - Return length of individual segments of a gso packet
+- *
+- * @skb: GSO skb
+- *
+- * skb_gso_network_seglen is used to determine the real size of the
+- * individual segments, including Layer3 (IP, IPv6) and L4 headers (TCP/UDP).
+- *
+- * The MAC/L2 header is not accounted for.
+- */
+-static inline unsigned int skb_gso_network_seglen(const struct sk_buff *skb)
+-{
+- unsigned int hdr_len = skb_transport_header(skb) -
+- skb_network_header(skb);
+- return hdr_len + skb_gso_transport_seglen(skb);
+-}
+ #endif /* __KERNEL__ */
+ #endif /* _LINUX_SKBUFF_H */
+--- a/net/ipv4/ip_forward.c
++++ b/net/ipv4/ip_forward.c
+@@ -39,68 +39,6 @@
+ #include <net/route.h>
+ #include <net/xfrm.h>
+
+-static bool ip_may_fragment(const struct sk_buff *skb)
+-{
+- return unlikely((ip_hdr(skb)->frag_off & htons(IP_DF)) == 0) ||
+- !skb->local_df;
+-}
+-
+-static bool ip_exceeds_mtu(const struct sk_buff *skb, unsigned int mtu)
+-{
+- if (skb->len <= mtu || skb->local_df)
+- return false;
+-
+- if (skb_is_gso(skb) && skb_gso_network_seglen(skb) <= mtu)
+- return false;
+-
+- return true;
+-}
+-
+-static bool ip_gso_exceeds_dst_mtu(const struct sk_buff *skb)
+-{
+- unsigned int mtu;
+-
+- if (skb->local_df || !skb_is_gso(skb))
+- return false;
+-
+- mtu = dst_mtu(skb_dst(skb));
+-
+- /* if seglen > mtu, do software segmentation for IP fragmentation on
+- * output. DF bit cannot be set since ip_forward would have sent
+- * icmp error.
+- */
+- return skb_gso_network_seglen(skb) > mtu;
+-}
+-
+-/* called if GSO skb needs to be fragmented on forward */
+-static int ip_forward_finish_gso(struct sk_buff *skb)
+-{
+- struct sk_buff *segs;
+- int ret = 0;
+-
+- segs = skb_gso_segment(skb, 0);
+- if (IS_ERR(segs)) {
+- kfree_skb(skb);
+- return -ENOMEM;
+- }
+-
+- consume_skb(skb);
+-
+- do {
+- struct sk_buff *nskb = segs->next;
+- int err;
+-
+- segs->next = NULL;
+- err = dst_output(segs);
+-
+- if (err && ret == 0)
+- ret = err;
+- segs = nskb;
+- } while (segs);
+-
+- return ret;
+-}
+-
+ static int ip_forward_finish(struct sk_buff *skb)
+ {
+ struct ip_options * opt = &(IPCB(skb)->opt);
+@@ -110,9 +48,6 @@ static int ip_forward_finish(struct sk_b
+ if (unlikely(opt->optlen))
+ ip_forward_options(skb);
+
+- if (ip_gso_exceeds_dst_mtu(skb))
+- return ip_forward_finish_gso(skb);
+-
+ return dst_output(skb);
+ }
+
+@@ -152,7 +87,8 @@ int ip_forward(struct sk_buff *skb)
+ if (opt->is_strictroute && opt->nexthop != rt->rt_gateway)
+ goto sr_failed;
+
+- if (!ip_may_fragment(skb) && ip_exceeds_mtu(skb, dst_mtu(&rt->dst))) {
++ if (unlikely(skb->len > dst_mtu(&rt->dst) && !skb_is_gso(skb) &&
++ (ip_hdr(skb)->frag_off & htons(IP_DF))) && !skb->local_df) {
+ IP_INC_STATS(dev_net(rt->dst.dev), IPSTATS_MIB_FRAGFAILS);
+ icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED,
+ htonl(dst_mtu(&rt->dst)));
+--- a/net/ipv6/ip6_output.c
++++ b/net/ipv6/ip6_output.c
+@@ -381,17 +381,6 @@ static inline int ip6_forward_finish(str
+ return dst_output(skb);
+ }
+
+-static bool ip6_pkt_too_big(const struct sk_buff *skb, unsigned int mtu)
+-{
+- if (skb->len <= mtu || skb->local_df)
+- return false;
+-
+- if (skb_is_gso(skb) && skb_gso_network_seglen(skb) <= mtu)
+- return false;
+-
+- return true;
+-}
+-
+ int ip6_forward(struct sk_buff *skb)
+ {
+ struct dst_entry *dst = skb_dst(skb);
+@@ -515,7 +504,7 @@ int ip6_forward(struct sk_buff *skb)
+ if (mtu < IPV6_MIN_MTU)
+ mtu = IPV6_MIN_MTU;
+
+- if (ip6_pkt_too_big(skb, mtu)) {
++ if (skb->len > mtu && !skb_is_gso(skb)) {
+ /* Again, force OUTPUT device used as source address */
+ skb->dev = dst->dev;
+ icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/revert-net-ipv4-ip_forward-fix-inverted-local_df-tes.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/revert-net-ipv4-ip_forward-fix-inverted-local_df-tes.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/revert-net-ipv4-ip_forward-fix-inverted-local_df-tes.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/revert-net-ipv4-ip_forward-fix-inverted-local_df-tes.patch)
@@ -0,0 +1,38 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Fri, 11 Jul 2014 20:01:52 +0100
+Subject: Revert "net: ipv4: ip_forward: fix inverted local_df test"
+Bug-Debian: https://bugs.debian.org/754173
+Bug-Debian: https://bugs.debian.org/754197
+Bug-Debian: https://bugs.debian.org/754294
+Bug: https://bugzilla.kernel.org/show_bug.cgi?id=79891
+
+This reverts commit 59d9f389df3cdf72833d5ee17c3fe959b6bdc792, which
+was commit ca6c5d4ad216d5942ae544bbf02503041bd802aa upstream. It is a
+valid fix, but depends on sk_buff::local_df being set in all the right
+cases, which it wasn't in 3.2. We need to defer it unless and until
+the other fixes are also backported to 3.2.y.
+
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+---
+ net/ipv4/ip_forward.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/net/ipv4/ip_forward.c b/net/ipv4/ip_forward.c
+index 7593f3a..e0d9f02 100644
+--- a/net/ipv4/ip_forward.c
++++ b/net/ipv4/ip_forward.c
+@@ -42,12 +42,12 @@
+ static bool ip_may_fragment(const struct sk_buff *skb)
+ {
+ return unlikely((ip_hdr(skb)->frag_off & htons(IP_DF)) == 0) ||
+- skb->local_df;
++ !skb->local_df;
+ }
+
+ static bool ip_exceeds_mtu(const struct sk_buff *skb, unsigned int mtu)
+ {
+- if (skb->len <= mtu)
++ if (skb->len <= mtu || skb->local_df)
+ return false;
+
+ if (skb_is_gso(skb) && skb_gso_network_seglen(skb) <= mtu)
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/sctp-fix-sk_ack_backlog-wrap-around-problem.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/sctp-fix-sk_ack_backlog-wrap-around-problem.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/sctp-fix-sk_ack_backlog-wrap-around-problem.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/sctp-fix-sk_ack_backlog-wrap-around-problem.patch)
@@ -0,0 +1,40 @@
+From: Xufeng Zhang <xufeng.zhang at windriver.com>
+Date: Thu, 12 Jun 2014 10:53:36 +0800
+Subject: sctp: Fix sk_ack_backlog wrap-around problem
+Origin: https://git.kernel.org/linus/d3217b15a19a4779c39b212358a5c71d725822ee
+
+Consider the scenario:
+For a TCP-style socket, while processing the COOKIE_ECHO chunk in
+sctp_sf_do_5_1D_ce(), after it has passed a series of sanity check,
+a new association would be created in sctp_unpack_cookie(), but afterwards,
+some processing maybe failed, and sctp_association_free() will be called to
+free the previously allocated association, in sctp_association_free(),
+sk_ack_backlog value is decremented for this socket, since the initial
+value for sk_ack_backlog is 0, after the decrement, it will be 65535,
+a wrap-around problem happens, and if we want to establish new associations
+afterward in the same socket, ABORT would be triggered since sctp deem the
+accept queue as full.
+Fix this issue by only decrementing sk_ack_backlog for associations in
+the endpoint's list.
+
+Fix-suggested-by: Neil Horman <nhorman at tuxdriver.com>
+Signed-off-by: Xufeng Zhang <xufeng.zhang at windriver.com>
+Acked-by: Daniel Borkmann <dborkman at redhat.com>
+Acked-by: Vlad Yasevich <vyasevich at gmail.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+---
+ net/sctp/associola.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/net/sctp/associola.c
++++ b/net/sctp/associola.c
+@@ -389,7 +389,7 @@ void sctp_association_free(struct sctp_a
+ /* Only real associations count against the endpoint, so
+ * don't bother for if this is a temporary association.
+ */
+- if (!asoc->temp) {
++ if (!list_empty(&asoc->asocs)) {
+ list_del(&asoc->asocs);
+
+ /* Decrement the backlog value for a TCP-style listening
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/target-explicitly-clear-ramdisk_mcp-backend-pages.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/target-explicitly-clear-ramdisk_mcp-backend-pages.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/target-explicitly-clear-ramdisk_mcp-backend-pages.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/all/target-explicitly-clear-ramdisk_mcp-backend-pages.patch)
@@ -0,0 +1,37 @@
+From: Nicholas Bellinger <nab at linux-iscsi.org>
+Date: Sat, 28 Jun 2014 10:46:22 -0700
+Subject: target: Explicitly clear ramdisk_mcp backend pages
+
+[Note that a different patch to address the same issue went in during
+v3.15-rc1 (commit 4442dc8a), but includes a bunch of other changes that
+don't strictly apply to fixing the bug]
+
+This patch changes rd_allocate_sgl_table() to explicitly clear
+ramdisk_mcp backend memory pages by passing __GFP_ZERO into
+alloc_pages().
+
+This addresses a potential security issue where reading from a
+ramdisk_mcp could return sensitive information, and follows what
+>= v3.15 does to explicitly clear ramdisk_mcp memory at backend
+device initialization time.
+
+Reported-by: Jorge Daniel Sequeira Matias <jdsm at tecnico.ulisboa.pt>
+Cc: Jorge Daniel Sequeira Matias <jdsm at tecnico.ulisboa.pt>
+Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+
+---
+ drivers/target/target_core_rd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/target/target_core_rd.c
++++ b/drivers/target/target_core_rd.c
+@@ -179,7 +179,7 @@ static int rd_build_device_space(struct
+ - 1;
+
+ for (j = 0; j < sg_per_table; j++) {
+- pg = alloc_pages(GFP_KERNEL, 0);
++ pg = alloc_pages(GFP_KERNEL | __GFP_ZERO, 0);
+ if (!pg) {
+ pr_err("Unable to allocate scatterlist"
+ " pages for struct rd_dev_sg_table\n");
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/mips/MIPS-Cleanup-flags-in-syscall-flags-handlers.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/mips/MIPS-Cleanup-flags-in-syscall-flags-handlers.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/mips/MIPS-Cleanup-flags-in-syscall-flags-handlers.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/mips/MIPS-Cleanup-flags-in-syscall-flags-handlers.patch)
@@ -0,0 +1,71 @@
+From: Ralf Baechle <ralf at linux-mips.org>
+Date: Wed, 29 May 2013 01:02:18 +0200
+Subject: MIPS: Cleanup flags in syscall flags handlers.
+Origin: https://git.kernel.org/linus/e7f3b48af7be9f8007a224663a5b91340626fed5
+
+This will simplify further modifications.
+
+Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
+---
+ arch/mips/include/asm/thread_info.h | 2 ++
+ arch/mips/kernel/scall32-o32.S | 2 +-
+ arch/mips/kernel/scall64-64.S | 2 +-
+ arch/mips/kernel/scall64-n32.S | 2 +-
+ arch/mips/kernel/scall64-o32.S | 2 +-
+ 5 files changed, 6 insertions(+), 4 deletions(-)
+
+--- a/arch/mips/include/asm/thread_info.h
++++ b/arch/mips/include/asm/thread_info.h
+@@ -149,6 +149,8 @@ register struct thread_info *__current_t
+ #define _TIF_FPUBOUND (1<<TIF_FPUBOUND)
+ #define _TIF_LOAD_WATCH (1<<TIF_LOAD_WATCH)
+
++#define _TIF_WORK_SYSCALL_ENTRY (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT)
++
+ /* work to do in syscall_trace_leave() */
+ #define _TIF_WORK_SYSCALL_EXIT (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT)
+
+--- a/arch/mips/kernel/scall32-o32.S
++++ b/arch/mips/kernel/scall32-o32.S
+@@ -52,7 +52,7 @@ NESTED(handle_sys, PT_SIZE, sp)
+
+ stack_done:
+ lw t0, TI_FLAGS($28) # syscall tracing enabled?
+- li t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
++ li t1, _TIF_WORK_SYSCALL_ENTRY
+ and t0, t1
+ bnez t0, syscall_trace_entry # -> yes
+
+--- a/arch/mips/kernel/scall64-64.S
++++ b/arch/mips/kernel/scall64-64.S
+@@ -54,7 +54,7 @@ NESTED(handle_sys64, PT_SIZE, sp)
+
+ sd a3, PT_R26(sp) # save a3 for syscall restarting
+
+- li t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
++ li t1, _TIF_WORK_SYSCALL_ENTRY
+ LONG_L t0, TI_FLAGS($28) # syscall tracing enabled?
+ and t0, t1, t0
+ bnez t0, syscall_trace_entry
+--- a/arch/mips/kernel/scall64-n32.S
++++ b/arch/mips/kernel/scall64-n32.S
+@@ -53,7 +53,7 @@ NESTED(handle_sysn32, PT_SIZE, sp)
+
+ sd a3, PT_R26(sp) # save a3 for syscall restarting
+
+- li t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
++ li t1, _TIF_WORK_SYSCALL_ENTRY
+ LONG_L t0, TI_FLAGS($28) # syscall tracing enabled?
+ and t0, t1, t0
+ bnez t0, n32_syscall_trace_entry
+--- a/arch/mips/kernel/scall64-o32.S
++++ b/arch/mips/kernel/scall64-o32.S
+@@ -81,7 +81,7 @@ NESTED(handle_sys, PT_SIZE, sp)
+ PTR 4b, bad_stack
+ .previous
+
+- li t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
++ li t1, _TIF_WORK_SYSCALL_ENTRY
+ LONG_L t0, TI_FLAGS($28) # syscall tracing enabled?
+ and t0, t1, t0
+ bnez t0, trace_a_syscall
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch)
@@ -0,0 +1,29 @@
+From: Markos Chandras <markos.chandras at imgtec.com>
+Date: Wed, 22 Jan 2014 14:40:00 +0000
+Subject: MIPS: asm: thread_info: Add _TIF_SECCOMP flag
+Origin: https://git.kernel.org/linus/137f7df8cead00688524c82360930845396b8a21
+
+Add _TIF_SECCOMP flag to _TIF_WORK_SYSCALL_ENTRY to indicate
+that the system call needs to be checked against a seccomp filter.
+
+Signed-off-by: Markos Chandras <markos.chandras at imgtec.com>
+Reviewed-by: Paul Burton <paul.burton at imgtec.com>
+Reviewed-by: James Hogan <james.hogan at imgtec.com>
+Cc: linux-mips at linux-mips.org
+Patchwork: https://patchwork.linux-mips.org/patch/6405/
+Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
+[bwh: Backported to 3.2: various other flags are not included in
+ _TIF_WORK_SYSCALL_ENTRY]
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+---
+--- a/arch/mips/include/asm/thread_info.h
++++ b/arch/mips/include/asm/thread_info.h
+@@ -149,7 +149,7 @@ register struct thread_info *__current_t
+ #define _TIF_FPUBOUND (1<<TIF_FPUBOUND)
+ #define _TIF_LOAD_WATCH (1<<TIF_LOAD_WATCH)
+
+-#define _TIF_WORK_SYSCALL_ENTRY (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT)
++#define _TIF_WORK_SYSCALL_ENTRY (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SECCOMP)
+
+ /* work to do in syscall_trace_leave() */
+ #define _TIF_WORK_SYSCALL_EXIT (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT)
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/s390/s390-ptrace-fix-PSW-mask-check.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/s390/s390-ptrace-fix-PSW-mask-check.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/s390/s390-ptrace-fix-PSW-mask-check.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/s390/s390-ptrace-fix-PSW-mask-check.patch)
@@ -0,0 +1,40 @@
+From: Martin Schwidefsky <schwidefsky at de.ibm.com>
+Date: Mon, 23 Jun 2014 14:43:06 +0200
+Subject: s390/ptrace: fix PSW mask check
+
+The PSW mask check of the PTRACE_POKEUSR_AREA command is incorrect.
+For the default user_mode=home address space layout the psw_user_bits
+variable has the home space address-space-control bits set. But the
+PSW_MASK_USER contains PSW_MASK_ASC, the ptrace validity check for the
+PSW mask will therefore always fail.
+
+Fixes CVE-2014-3534
+
+Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
+---
+
+--- a/arch/s390/kernel/ptrace.c
++++ b/arch/s390/kernel/ptrace.c
+@@ -292,7 +292,9 @@ static int __poke_user(struct task_struc
+ * psw and gprs are stored on the stack
+ */
+ if (addr == (addr_t) &dummy->regs.psw.mask &&
+- ((data & ~PSW_MASK_USER) != psw_user_bits ||
++ (((data^psw_user_bits) & ~PSW_MASK_USER) ||
++ (((data^psw_user_bits) & PSW_MASK_ASC) &&
++ ((data|psw_user_bits) & PSW_MASK_ASC) == PSW_MASK_ASC) ||
+ ((data & PSW_MASK_EA) && !(data & PSW_MASK_BA))))
+ /* Invalid psw mask. */
+ return -EINVAL;
+@@ -595,7 +597,10 @@ static int __poke_user_compat(struct tas
+ */
+ if (addr == (addr_t) &dummy32->regs.psw.mask) {
+ /* Build a 64 bit psw mask from 31 bit mask. */
+- if ((tmp & ~PSW32_MASK_USER) != psw32_user_bits)
++ if (((tmp^psw32_user_bits) & ~PSW32_MASK_USER) ||
++ (((tmp^psw32_user_bits) & PSW32_MASK_ASC) &&
++ ((tmp|psw32_user_bits) & PSW32_MASK_ASC)
++ == PSW32_MASK_ASC))
+ /* Invalid psw mask. */
+ return -EINVAL;
+ regs->psw.mask = (regs->psw.mask & ~PSW_MASK_USER) |
Copied: dists/squeeze-backports/linux/debian/patches/bugfix/x86/x86_32-entry-Do-syscall-exit-work-on-badsys-CVE-2014.patch (from r21624, dists/wheezy-security/linux/debian/patches/bugfix/x86/x86_32-entry-Do-syscall-exit-work-on-badsys-CVE-2014.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/x86/x86_32-entry-Do-syscall-exit-work-on-badsys-CVE-2014.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/bugfix/x86/x86_32-entry-Do-syscall-exit-work-on-badsys-CVE-2014.patch)
@@ -0,0 +1,57 @@
+From: Andy Lutomirski <luto at amacapital.net>
+Date: Mon, 23 Jun 2014 14:22:15 -0700
+Subject: x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+Origin: https://git.kernel.org/linus/554086d85e71f30abe46fc014fea31929a7c6a8a
+
+The bad syscall nr paths are their own incomprehensible route
+through the entry control flow. Rearrange them to work just like
+syscalls that return -ENOSYS.
+
+This fixes an OOPS in the audit code when fast-path auditing is
+enabled and sysenter gets a bad syscall nr (CVE-2014-4508).
+
+This has probably been broken since Linux 2.6.27:
+af0575bba0 i386 syscall audit fast-path
+
+Cc: stable at vger.kernel.org
+Cc: Roland McGrath <roland at redhat.com>
+Reported-by: Toralf Förster <toralf.foerster at gmx.de>
+Signed-off-by: Andy Lutomirski <luto at amacapital.net>
+Link: http://lkml.kernel.org/r/e09c499eade6fc321266dd6b54da7beb28d6991c.1403558229.git.luto@amacapital.net
+Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
+[bwh: Backported to 3.2: adjust context]
+---
+ arch/x86/kernel/entry_32.S | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+--- a/arch/x86/kernel/entry_32.S
++++ b/arch/x86/kernel/entry_32.S
+@@ -427,9 +427,10 @@ sysenter_past_esp:
+ jnz sysenter_audit
+ sysenter_do_call:
+ cmpl $(nr_syscalls), %eax
+- jae syscall_badsys
++ jae sysenter_badsys
+ call *sys_call_table(,%eax,4)
+ movl %eax,PT_EAX(%esp)
++sysenter_after_call:
+ LOCKDEP_SYS_EXIT
+ DISABLE_INTERRUPTS(CLBR_ANY)
+ TRACE_IRQS_OFF
+@@ -681,7 +682,12 @@ END(syscall_fault)
+
+ syscall_badsys:
+ movl $-ENOSYS,PT_EAX(%esp)
+- jmp resume_userspace
++ jmp syscall_exit
++END(syscall_badsys)
++
++sysenter_badsys:
++ movl $-ENOSYS,PT_EAX(%esp)
++ jmp sysenter_after_call
+ END(syscall_badsys)
+ CFI_ENDPROC
+ /*
Copied: dists/squeeze-backports/linux/debian/patches/debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch (from r21624, dists/wheezy-security/linux/debian/patches/debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch)
@@ -0,0 +1,31 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Sun, 29 Jun 2014 02:05:57 +0100
+Subject: ALSA: Avoid ABI change for CVE-2014-4652 fix
+Forwarded: not-needed
+
+Move the new member snd_card::user_ctl_lock to the end of the structure
+and hide it from genksyms. struct snd_card is always allocated by
+snd_card_create() in sound/core/init.c and user_ctl_lock is used in
+sound/core/control.c, and these are part of the same module so they
+are sure to be consistent.
+
+--- a/include/sound/core.h
++++ b/include/sound/core.h
+@@ -120,8 +120,6 @@ struct snd_card {
+ int user_ctl_count; /* count of all user controls */
+ struct list_head controls; /* all controls for this card */
+ struct list_head ctl_files; /* active control files */
+- struct mutex user_ctl_lock; /* protects user controls against
+- concurrent access */
+
+ struct snd_info_entry *proc_root; /* root for soundcard specific files */
+ struct snd_info_entry *proc_id; /* the card id */
+@@ -149,6 +147,8 @@ struct snd_card {
+ #endif
+ #ifndef __GENKSYMS__
+ atomic_t refcount; /* refcount for disconnection */
++ struct mutex user_ctl_lock; /* protects user controls against
++ concurrent access */
+ #endif
+ };
+
Copied: dists/squeeze-backports/linux/debian/patches/debian/dmi-avoid-abi-change-in-3.2.59.patch (from r21624, dists/wheezy-security/linux/debian/patches/debian/dmi-avoid-abi-change-in-3.2.59.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/debian/dmi-avoid-abi-change-in-3.2.59.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/debian/dmi-avoid-abi-change-in-3.2.59.patch)
@@ -0,0 +1,105 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 09 Jun 2014 23:13:21 +0100
+Subject: dmi: Avoid ABI change in 3.2.59
+Forwarded: not-needed
+
+struct dmi_strmatch was changed to reassign an unused bit of 'slot'
+as 'exact_match'. This is binary backward-compatible in the sense
+that old modules continue to work with the new kernel, but new
+modules that set this flag will cause an array overrun in an old
+kernel because 'slot' is not bounds-checked.
+
+Hide the structure change from genksyms, but rename the exported
+functions using this structure so that new modules will depend on
+them and cannot be loaded against an old kernel.
+
+--- a/drivers/firmware/dmi_scan.c
++++ b/drivers/firmware/dmi_scan.c
+@@ -558,6 +558,10 @@ static bool dmi_is_end_of_table(const st
+ return dmi->matches[0].slot == DMI_NONE;
+ }
+
++/* bwh: See comment in <linux/dmi.h> */
++#undef dmi_check_system
++#undef dmi_first_match
++
+ /**
+ * dmi_check_system - check system DMI data
+ * @list: array of dmi_system_id structures to match against
+@@ -573,6 +577,12 @@ static bool dmi_is_end_of_table(const st
+ */
+ int dmi_check_system(const struct dmi_system_id *list)
+ {
++ return dmi_check_system_2(list);
++}
++EXPORT_SYMBOL(dmi_check_system);
++
++int dmi_check_system_2(const struct dmi_system_id *list)
++{
+ int count = 0;
+ const struct dmi_system_id *d;
+
+@@ -585,7 +595,7 @@ int dmi_check_system(const struct dmi_sy
+
+ return count;
+ }
+-EXPORT_SYMBOL(dmi_check_system);
++EXPORT_SYMBOL(dmi_check_system_2);
+
+ /**
+ * dmi_first_match - find dmi_system_id structure matching system DMI data
+@@ -601,6 +611,12 @@ EXPORT_SYMBOL(dmi_check_system);
+ */
+ const struct dmi_system_id *dmi_first_match(const struct dmi_system_id *list)
+ {
++ return dmi_first_match_2(list);
++}
++EXPORT_SYMBOL(dmi_first_match);
++
++const struct dmi_system_id *dmi_first_match_2(const struct dmi_system_id *list)
++{
+ const struct dmi_system_id *d;
+
+ for (d = list; !dmi_is_end_of_table(d); d++)
+@@ -609,7 +625,7 @@ const struct dmi_system_id *dmi_first_ma
+
+ return NULL;
+ }
+-EXPORT_SYMBOL(dmi_first_match);
++EXPORT_SYMBOL(dmi_first_match_2);
+
+ /**
+ * dmi_get_system_info - return DMI data value
+--- a/include/linux/dmi.h
++++ b/include/linux/dmi.h
+@@ -93,6 +93,14 @@ struct dmi_dev_onboard {
+ int devfn;
+ };
+
++/*
++ * bwh: These functions are renamed so that modules won't load on an
++ * older kernel version where setting the 'exact_match' flag would
++ * result in an array overrun.
++ */
++#define dmi_check_system dmi_check_system_2
++#define dmi_first_match dmi_first_match_2
++
+ extern int dmi_check_system(const struct dmi_system_id *list);
+ const struct dmi_system_id *dmi_first_match(const struct dmi_system_id *list);
+ extern const char * dmi_get_system_info(int field);
+--- a/include/linux/mod_devicetable.h
++++ b/include/linux/mod_devicetable.h
+@@ -461,8 +461,13 @@ enum dmi_field {
+ };
+
+ struct dmi_strmatch {
++#ifndef __GENKSYMS__
++ /* Layout supported by dmi_check_system_2() and dmi_first_match_2() */
+ unsigned char slot:7;
+ unsigned char exact_match:1;
++#else
++ unsigned char slot;
++#endif
+ char substr[79];
+ };
+
Copied: dists/squeeze-backports/linux/debian/patches/debian/libata-avoid-abi-change-in-3.2.59.patch (from r21624, dists/wheezy-security/linux/debian/patches/debian/libata-avoid-abi-change-in-3.2.59.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/debian/libata-avoid-abi-change-in-3.2.59.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/debian/libata-avoid-abi-change-in-3.2.59.patch)
@@ -0,0 +1,32 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Tue, 13 May 2014 18:39:19 +0100
+Subject: libata: Avoid ABI change in 3.2.59
+Forwarded: not-needed
+
+Commit 8a4aeec8d2d6 ("libata/ahci: accommodate tag ordered
+controllers") added the ata_port::last_tag field. As this structure
+is always allocated in libata (by ata_port_alloc()) and the field is
+only used by libata, we can move it to the end and hide it from
+genksyms.
+
+--- a/include/linux/libata.h
++++ b/include/linux/libata.h
+@@ -764,7 +764,6 @@ struct ata_port {
+ unsigned long qc_allocated;
+ unsigned int qc_active;
+ int nr_active_links; /* #links with active qcs */
+- unsigned int last_tag; /* track next tag hw expects */
+
+ struct ata_link link; /* host default link */
+ struct ata_link *slave_link; /* see ata_slave_link_init() */
+@@ -806,6 +805,10 @@ struct ata_port {
+ #endif
+ /* owned by EH */
+ u8 sector_buf[ATA_SECT_SIZE] ____cacheline_aligned;
++
++#ifndef __GENKSYMS__
++ unsigned int last_tag; /* track next tag hw expects */
++#endif
+ };
+
+ /* The following initializer overrides a method to NULL whether one of
Modified: dists/squeeze-backports/linux/debian/patches/features/all/Input-add-Synaptics-USB-device-driver.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/Input-add-Synaptics-USB-device-driver.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/Input-add-Synaptics-USB-device-driver.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -26,11 +26,9 @@
5 files changed, 607 insertions(+)
create mode 100644 drivers/input/mouse/synaptics_usb.c
-diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index 848a56c..b639855 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
-@@ -1892,6 +1892,16 @@ static const struct hid_device_id hid_ignore_list[] = {
+@@ -1991,6 +1991,16 @@ static const struct hid_device_id hid_ig
{ HID_USB_DEVICE(USB_VENDOR_ID_PANJIT, 0x0004) },
{ HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_IEEE802154_DONGLE) },
{ HID_USB_DEVICE(USB_VENDOR_ID_POWERCOM, USB_DEVICE_ID_POWERCOM_UPS) },
@@ -47,13 +45,11 @@
{ HID_USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_LABPRO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_GOTEMP) },
{ HID_USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_SKIP) },
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 06ce996..3b68343 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
-@@ -633,6 +633,17 @@
- #define USB_DEVICE_ID_SYMBOL_SCANNER_1 0x0800
- #define USB_DEVICE_ID_SYMBOL_SCANNER_2 0x1300
+@@ -685,6 +685,17 @@
+ #define USB_DEVICE_ID_SYNAPTICS_QUAD_HD 0x1ac3
+ #define USB_DEVICE_ID_SYNAPTICS_TP_V103 0x5710
+#define USB_VENDOR_ID_SYNAPTICS 0x06cb
+#define USB_DEVICE_ID_SYNAPTICS_TP 0x0001
@@ -69,8 +65,6 @@
#define USB_VENDOR_ID_THRUSTMASTER 0x044f
#define USB_VENDOR_ID_TOPSEED 0x0766
-diff --git a/drivers/input/mouse/Kconfig b/drivers/input/mouse/Kconfig
-index 9c1e6ee..9b8db82 100644
--- a/drivers/input/mouse/Kconfig
+++ b/drivers/input/mouse/Kconfig
@@ -322,4 +322,21 @@ config MOUSE_SYNAPTICS_I2C
@@ -95,11 +89,9 @@
+ module will be called synaptics_usb.
+
endif
-diff --git a/drivers/input/mouse/Makefile b/drivers/input/mouse/Makefile
-index 570c84a4..4718eff 100644
--- a/drivers/input/mouse/Makefile
+++ b/drivers/input/mouse/Makefile
-@@ -18,6 +18,7 @@ obj-$(CONFIG_MOUSE_PXA930_TRKBALL) += pxa930_trkball.o
+@@ -18,6 +18,7 @@ obj-$(CONFIG_MOUSE_PXA930_TRKBALL) += px
obj-$(CONFIG_MOUSE_RISCPC) += rpcmouse.o
obj-$(CONFIG_MOUSE_SERIAL) += sermouse.o
obj-$(CONFIG_MOUSE_SYNAPTICS_I2C) += synaptics_i2c.o
@@ -107,9 +99,6 @@
obj-$(CONFIG_MOUSE_VSXXXAA) += vsxxxaa.o
psmouse-objs := psmouse-base.o synaptics.o
-diff --git a/drivers/input/mouse/synaptics_usb.c b/drivers/input/mouse/synaptics_usb.c
-new file mode 100644
-index 0000000..e559a94
--- /dev/null
+++ b/drivers/input/mouse/synaptics_usb.c
@@ -0,0 +1,568 @@
Modified: dists/squeeze-backports/linux/debian/patches/features/all/drm/drm-3.4.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/drm/drm-3.4.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/drm/drm-3.4.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1997,7 +1997,7 @@
+}
+EXPORT_SYMBOL(drm_fb_get_bpp_depth);
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
-index 11788f7..8111889 100644
+index 11788f7..b3abf70 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -34,8 +34,10 @@
@@ -2076,17 +2076,6 @@
mode->vrefresh = drm_mode_vrefresh(mode);
drm_mode_set_crtcinfo(mode, CRTC_INTERLACE_HALVE_V);
-@@ -321,8 +328,8 @@ drm_crtc_prepare_encoders(struct drm_device *dev)
- * drm_crtc_set_mode - set a mode
- * @crtc: CRTC to program
- * @mode: mode to use
-- * @x: horizontal offset into the surface
-- * @y: vertical offset into the surface
-+ * @x: width of mode
-+ * @y: height of mode
- *
- * LOCKING:
- * Caller must hold mode config lock.
@@ -351,6 +358,8 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
return true;
@@ -42978,18 +42967,10 @@
dvo_ch7xxx.o \
dvo_ch7017.o \
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
-index 9b4e5c6..34791fb 100644
+index 9b4e5c6..39f8111 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
-@@ -30,7 +30,6 @@
- #include <linux/debugfs.h>
- #include <linux/slab.h>
- #include <linux/export.h>
--#include <generated/utsrelease.h>
- #include "drmP.h"
- #include "drm.h"
- #include "intel_drv.h"
-@@ -84,6 +83,7 @@ static int i915_capabilities(struct seq_file *m, void *data)
+@@ -84,6 +84,7 @@ static int i915_capabilities(struct seq_file *m, void *data)
B(supports_tv);
B(has_bsd_ring);
B(has_blt_ring);
@@ -42997,7 +42978,7 @@
#undef B
return 0;
-@@ -122,11 +122,11 @@ static const char *cache_level_str(int type)
+@@ -122,11 +123,11 @@ static const char *cache_level_str(int type)
static void
describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
{
@@ -43011,25 +42992,7 @@
obj->base.read_domains,
obj->base.write_domain,
obj->last_rendering_seqno,
-@@ -340,7 +340,7 @@ static int i915_gem_pageflip_info(struct seq_file *m, void *data)
- seq_printf(m, "No flip due on pipe %c (plane %c)\n",
- pipe, plane);
- } else {
-- if (atomic_read(&work->pending) < INTEL_FLIP_COMPLETE) {
-+ if (!work->pending) {
- seq_printf(m, "Flip queued on pipe %c (plane %c)\n",
- pipe, plane);
- } else {
-@@ -351,7 +351,7 @@ static int i915_gem_pageflip_info(struct seq_file *m, void *data)
- seq_printf(m, "Stall check enabled, ");
- else
- seq_printf(m, "Stall check waiting for page flip ioctl, ");
-- seq_printf(m, "%d prepares\n", atomic_read(&work->pending));
-+ seq_printf(m, "%d prepares\n", work->pending);
-
- if (work->old_fb_obj) {
- struct drm_i915_gem_object *obj = work->old_fb_obj;
-@@ -564,45 +564,6 @@ static int i915_hws_info(struct seq_file *m, void *data)
+@@ -564,45 +565,6 @@ static int i915_hws_info(struct seq_file *m, void *data)
return 0;
}
@@ -43075,7 +43038,7 @@
static int i915_ringbuffer_data(struct seq_file *m, void *data)
{
struct drm_info_node *node = (struct drm_info_node *) m->private;
-@@ -654,7 +615,7 @@ static int i915_ringbuffer_info(struct seq_file *m, void *data)
+@@ -654,7 +616,7 @@ static int i915_ringbuffer_info(struct seq_file *m, void *data)
seq_printf(m, " Size : %08x\n", ring->size);
seq_printf(m, " Active : %08x\n", intel_ring_get_active_head(ring));
seq_printf(m, " NOPID : %08x\n", I915_READ_NOPID(ring));
@@ -43084,7 +43047,7 @@
seq_printf(m, " Sync 0 : %08x\n", I915_READ_SYNC_0(ring));
seq_printf(m, " Sync 1 : %08x\n", I915_READ_SYNC_1(ring));
}
-@@ -669,9 +630,9 @@ static int i915_ringbuffer_info(struct seq_file *m, void *data)
+@@ -669,9 +631,9 @@ static int i915_ringbuffer_info(struct seq_file *m, void *data)
static const char *ring_str(int ring)
{
switch (ring) {
@@ -43097,7 +43060,7 @@
default: return "";
}
}
-@@ -714,7 +675,7 @@ static void print_error_buffers(struct seq_file *m,
+@@ -714,7 +676,7 @@ static void print_error_buffers(struct seq_file *m,
seq_printf(m, "%s [%d]:\n", name, count);
while (count--) {
@@ -43106,7 +43069,7 @@
err->gtt_offset,
err->size,
err->read_domains,
-@@ -724,6 +685,7 @@ static void print_error_buffers(struct seq_file *m,
+@@ -724,6 +686,7 @@ static void print_error_buffers(struct seq_file *m,
tiling_flag(err->tiling),
dirty_flag(err->dirty),
purgeable_flag(err->purgeable),
@@ -43114,7 +43077,7 @@
ring_str(err->ring),
cache_level_str(err->cache_level));
-@@ -737,6 +699,38 @@ static void print_error_buffers(struct seq_file *m,
+@@ -737,6 +700,38 @@ static void print_error_buffers(struct seq_file *m,
}
}
@@ -43153,7 +43116,7 @@
static int i915_error_state(struct seq_file *m, void *unused)
{
struct drm_info_node *node = (struct drm_info_node *) m->private;
-@@ -744,7 +738,7 @@ static int i915_error_state(struct seq_file *m, void *unused)
+@@ -744,7 +739,7 @@ static int i915_error_state(struct seq_file *m, void *unused)
drm_i915_private_t *dev_priv = dev->dev_private;
struct drm_i915_error_state *error;
unsigned long flags;
@@ -43162,11 +43125,7 @@
spin_lock_irqsave(&dev_priv->error_lock, flags);
if (!dev_priv->first_error) {
-@@ -756,39 +750,23 @@ static int i915_error_state(struct seq_file *m, void *unused)
-
- seq_printf(m, "Time: %ld s %ld us\n", error->time.tv_sec,
- error->time.tv_usec);
-- seq_printf(m, "Kernel: " UTS_RELEASE "\n");
+@@ -760,35 +755,20 @@ static int i915_error_state(struct seq_file *m, void *unused)
seq_printf(m, "PCI ID: 0x%04x\n", dev->pci_device);
seq_printf(m, "EIR: 0x%08x\n", error->eir);
seq_printf(m, "PGTBL_ER: 0x%08x\n", error->pgtbl_er);
@@ -43212,7 +43171,7 @@
if (error->active_bo)
print_error_buffers(m, "Active",
-@@ -800,10 +778,10 @@ static int i915_error_state(struct seq_file *m, void *unused)
+@@ -800,10 +780,10 @@ static int i915_error_state(struct seq_file *m, void *unused)
error->pinned_bo,
error->pinned_bo_count);
@@ -43226,7 +43185,7 @@
seq_printf(m, "%s --- gtt_offset = 0x%08x\n",
dev_priv->ring[i].name,
obj->gtt_offset);
-@@ -815,11 +793,20 @@ static int i915_error_state(struct seq_file *m, void *unused)
+@@ -815,11 +795,20 @@ static int i915_error_state(struct seq_file *m, void *unused)
}
}
}
@@ -43251,7 +43210,7 @@
seq_printf(m, "%s --- ringbuffer = 0x%08x\n",
dev_priv->ring[i].name,
obj->gtt_offset);
-@@ -1003,7 +990,7 @@ static int i915_inttoext_table(struct seq_file *m, void *unused)
+@@ -1003,7 +992,7 @@ static int i915_inttoext_table(struct seq_file *m, void *unused)
return 0;
}
@@ -43260,7 +43219,7 @@
{
struct drm_info_node *node = (struct drm_info_node *) m->private;
struct drm_device *dev = node->minor->dev;
-@@ -1070,6 +1057,95 @@ static int i915_drpc_info(struct seq_file *m, void *unused)
+@@ -1070,6 +1059,95 @@ static int i915_drpc_info(struct seq_file *m, void *unused)
return 0;
}
@@ -43356,7 +43315,7 @@
static int i915_fbc_status(struct seq_file *m, void *unused)
{
struct drm_info_node *node = (struct drm_info_node *) m->private;
-@@ -1148,6 +1224,9 @@ static int i915_emon_status(struct seq_file *m, void *unused)
+@@ -1148,6 +1226,9 @@ static int i915_emon_status(struct seq_file *m, void *unused)
unsigned long temp, chipset, gfx;
int ret;
@@ -43366,7 +43325,7 @@
ret = mutex_lock_interruptible(&dev->struct_mutex);
if (ret)
return ret;
-@@ -1327,11 +1406,102 @@ static int i915_gen6_forcewake_count_info(struct seq_file *m, void *data)
+@@ -1327,11 +1408,102 @@ static int i915_gen6_forcewake_count_info(struct seq_file *m, void *data)
return 0;
}
@@ -43473,7 +43432,7 @@
return 0;
}
-@@ -1385,20 +1555,12 @@ i915_wedged_write(struct file *filp,
+@@ -1385,20 +1557,12 @@ i915_wedged_write(struct file *filp,
static const struct file_operations i915_wedged_fops = {
.owner = THIS_MODULE,
@@ -43495,7 +43454,7 @@
static ssize_t
i915_max_freq_read(struct file *filp,
char __user *ubuf,
-@@ -1455,20 +1617,12 @@ i915_max_freq_write(struct file *filp,
+@@ -1455,20 +1619,12 @@ i915_max_freq_write(struct file *filp,
static const struct file_operations i915_max_freq_fops = {
.owner = THIS_MODULE,
@@ -43517,7 +43476,7 @@
static ssize_t
i915_cache_sharing_read(struct file *filp,
char __user *ubuf,
-@@ -1534,7 +1688,7 @@ i915_cache_sharing_write(struct file *filp,
+@@ -1534,7 +1690,7 @@ i915_cache_sharing_write(struct file *filp,
static const struct file_operations i915_cache_sharing_fops = {
.owner = THIS_MODULE,
@@ -43526,7 +43485,7 @@
.read = i915_cache_sharing_read,
.write = i915_cache_sharing_write,
.llseek = default_llseek,
-@@ -1566,28 +1720,13 @@ drm_add_fake_info_node(struct drm_minor *minor,
+@@ -1566,28 +1722,13 @@ drm_add_fake_info_node(struct drm_minor *minor,
return 0;
}
@@ -43556,7 +43515,7 @@
return 0;
ret = mutex_lock_interruptible(&dev->struct_mutex);
-@@ -1604,7 +1743,7 @@ int i915_forcewake_release(struct inode *inode, struct file *file)
+@@ -1604,7 +1745,7 @@ int i915_forcewake_release(struct inode *inode, struct file *file)
struct drm_device *dev = inode->i_private;
struct drm_i915_private *dev_priv = dev->dev_private;
@@ -43565,7 +43524,7 @@
return 0;
/*
-@@ -1642,34 +1781,22 @@ static int i915_forcewake_create(struct dentry *root, struct drm_minor *minor)
+@@ -1642,34 +1783,22 @@ static int i915_forcewake_create(struct dentry *root, struct drm_minor *minor)
return drm_add_fake_info_node(minor, ent, &i915_forcewake_fops);
}
@@ -43607,7 +43566,7 @@
}
static struct drm_info_list i915_debugfs_list[] = {
-@@ -1695,7 +1822,6 @@ static struct drm_info_list i915_debugfs_list[] = {
+@@ -1695,7 +1824,6 @@ static struct drm_info_list i915_debugfs_list[] = {
{"i915_bsd_ringbuffer_info", i915_ringbuffer_info, 0, (void *)VCS},
{"i915_blt_ringbuffer_data", i915_ringbuffer_data, 0, (void *)BCS},
{"i915_blt_ringbuffer_info", i915_ringbuffer_info, 0, (void *)BCS},
@@ -43615,7 +43574,7 @@
{"i915_error_state", i915_error_state, 0},
{"i915_rstdby_delays", i915_rstdby_delays, 0},
{"i915_cur_delayinfo", i915_cur_delayinfo, 0},
-@@ -1711,6 +1837,8 @@ static struct drm_info_list i915_debugfs_list[] = {
+@@ -1711,6 +1839,8 @@ static struct drm_info_list i915_debugfs_list[] = {
{"i915_gem_framebuffer", i915_gem_framebuffer_info, 0},
{"i915_context_status", i915_context_status, 0},
{"i915_gen6_forcewake_count", i915_gen6_forcewake_count_info, 0},
@@ -43624,7 +43583,7 @@
};
#define I915_DEBUGFS_ENTRIES ARRAY_SIZE(i915_debugfs_list)
-@@ -1718,17 +1846,25 @@ int i915_debugfs_init(struct drm_minor *minor)
+@@ -1718,17 +1848,25 @@ int i915_debugfs_init(struct drm_minor *minor)
{
int ret;
@@ -44162,7 +44121,7 @@
__i915_write(8, b)
__i915_write(16, w)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
-index 61274bf..232119a 100644
+index 61274bf..a8f00d0 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -35,6 +35,7 @@
@@ -44280,14 +44239,7 @@
};
enum no_fbc_reason {
-@@ -274,12 +296,21 @@ enum intel_pch {
-
- #define QUIRK_PIPEA_FORCE (1<<0)
- #define QUIRK_LVDS_SSC_DISABLE (1<<1)
--#define QUIRK_INVERT_BRIGHTNESS (1<<2)
--#define QUIRK_NO_PCH_PWM_ENABLE (1<<3)
-+#define QUIRK_NO_PCH_PWM_ENABLE (1<<2)
-
+@@ -280,6 +302,16 @@ enum intel_pch {
struct intel_fbdev;
struct intel_fbc_work;
@@ -44304,7 +44256,7 @@
typedef struct drm_i915_private {
struct drm_device *dev;
-@@ -297,11 +328,11 @@ typedef struct drm_i915_private {
+@@ -297,11 +329,11 @@ typedef struct drm_i915_private {
/** gt_lock is also taken in irq contexts. */
struct spinlock gt_lock;
@@ -44321,7 +44273,7 @@
struct pci_dev *bridge_dev;
struct intel_ring_buffer ring[I915_NUM_RINGS];
-@@ -336,7 +367,6 @@ typedef struct drm_i915_private {
+@@ -336,7 +368,6 @@ typedef struct drm_i915_private {
int tex_lru_log_granularity;
int allow_batchbuffer;
@@ -44329,7 +44281,7 @@
unsigned int sr01, adpa, ppcr, dvob, dvoc, lvds;
int vblank_pipe;
int num_pipe;
-@@ -361,6 +391,7 @@ typedef struct drm_i915_private {
+@@ -361,6 +392,7 @@ typedef struct drm_i915_private {
/* overlay */
struct intel_overlay *overlay;
@@ -44337,7 +44289,7 @@
/* LVDS info */
int backlight_level; /* restore backlight to this value */
-@@ -586,6 +617,9 @@ typedef struct drm_i915_private {
+@@ -586,6 +618,9 @@ typedef struct drm_i915_private {
struct io_mapping *gtt_mapping;
int gtt_mtrr;
@@ -44347,7 +44299,7 @@
struct shrinker inactive_shrinker;
/**
-@@ -751,6 +785,13 @@ typedef struct drm_i915_private {
+@@ -751,6 +786,13 @@ typedef struct drm_i915_private {
struct drm_property *force_audio_property;
} drm_i915_private_t;
@@ -44361,7 +44313,7 @@
enum i915_cache_level {
I915_CACHE_NONE,
I915_CACHE_LLC,
-@@ -843,6 +884,8 @@ struct drm_i915_gem_object {
+@@ -843,6 +885,8 @@ struct drm_i915_gem_object {
unsigned int cache_level:2;
@@ -44370,7 +44322,7 @@
struct page **pages;
/**
-@@ -920,6 +963,9 @@ struct drm_i915_gem_request {
+@@ -920,6 +964,9 @@ struct drm_i915_gem_request {
/** GEM sequence number associated with this request. */
uint32_t seqno;
@@ -44380,7 +44332,7 @@
/** Time at which this request was emitted, in jiffies. */
unsigned long emitted_jiffies;
-@@ -976,8 +1022,11 @@ struct drm_i915_file_private {
+@@ -976,8 +1023,11 @@ struct drm_i915_file_private {
#define HAS_BSD(dev) (INTEL_INFO(dev)->has_bsd_ring)
#define HAS_BLT(dev) (INTEL_INFO(dev)->has_blt_ring)
@@ -44392,7 +44344,7 @@
#define HAS_OVERLAY(dev) (INTEL_INFO(dev)->has_overlay)
#define OVERLAY_NEEDS_PHYSICAL(dev) (INTEL_INFO(dev)->overlay_needs_physical)
-@@ -1010,6 +1059,27 @@ struct drm_i915_file_private {
+@@ -1010,6 +1060,27 @@ struct drm_i915_file_private {
#include "i915_trace.h"
@@ -44420,7 +44372,7 @@
extern struct drm_ioctl_desc i915_ioctls[];
extern int i915_max_ioctl;
extern unsigned int i915_fbpercrtc __always_unused;
-@@ -1022,6 +1092,7 @@ extern int i915_vbt_sdvo_panel_type __read_mostly;
+@@ -1022,6 +1093,7 @@ extern int i915_vbt_sdvo_panel_type __read_mostly;
extern int i915_enable_rc6 __read_mostly;
extern int i915_enable_fbc __read_mostly;
extern bool i915_enable_hangcheck __read_mostly;
@@ -44428,7 +44380,7 @@
extern int i915_suspend(struct drm_device *dev, pm_message_t state);
extern int i915_resume(struct drm_device *dev);
-@@ -1083,18 +1154,6 @@ extern void i915_destroy_error_state(struct drm_device *dev);
+@@ -1083,18 +1155,6 @@ extern void i915_destroy_error_state(struct drm_device *dev);
#endif
@@ -44447,7 +44399,7 @@
/* i915_gem.c */
int i915_gem_init_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
-@@ -1180,26 +1239,49 @@ int __must_check i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
+@@ -1180,26 +1240,49 @@ int __must_check i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
struct intel_ring_buffer *pipelined);
int __must_check i915_gem_object_put_fence(struct drm_i915_gem_object *obj);
@@ -44500,7 +44452,7 @@
int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
int __must_check
i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj,
-@@ -1226,6 +1308,14 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
+@@ -1226,6 +1309,14 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
enum i915_cache_level cache_level);
/* i915_gem_gtt.c */
@@ -44515,15 +44467,7 @@
void i915_gem_restore_gtt_mappings(struct drm_device *dev);
int __must_check i915_gem_gtt_bind_object(struct drm_i915_gem_object *obj);
void i915_gem_gtt_rebind_object(struct drm_i915_gem_object *obj,
-@@ -1307,7 +1397,6 @@ static inline void intel_unregister_dsm_handler(void) { return; }
- #endif /* CONFIG_ACPI */
-
- /* modesetting */
--extern void i915_redisable_vga(struct drm_device *dev);
- extern void intel_modeset_init(struct drm_device *dev);
- extern void intel_modeset_gem_init(struct drm_device *dev);
- extern void intel_modeset_cleanup(struct drm_device *dev);
-@@ -1365,14 +1454,7 @@ extern void intel_display_print_error_state(struct seq_file *m,
+@@ -1365,14 +1456,7 @@ extern void intel_display_print_error_state(struct seq_file *m,
*/
void gen6_gt_force_wake_get(struct drm_i915_private *dev_priv);
void gen6_gt_force_wake_put(struct drm_i915_private *dev_priv);
@@ -44540,7 +44484,7 @@
#define __i915_read(x, y) \
u##x i915_read##x(struct drm_i915_private *dev_priv, u32 reg);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
-index 2865b44..eb33945 100644
+index 2865b44..2ac4ded 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -58,6 +58,7 @@ static void i915_gem_free_object_tail(struct drm_i915_gem_object *obj);
@@ -45250,19 +45194,7 @@
continue;
if (first == NULL)
-@@ -2520,11 +2468,6 @@ i915_find_fence_reg(struct drm_device *dev,
- return avail;
- }
-
--static void i915_gem_write_fence__ipi(void *data)
--{
-- wbinvd();
--}
--
- /**
- * i915_gem_object_get_fence - set up a fence reg for an object
- * @obj: object to map through a fence reg
-@@ -2580,7 +2523,8 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
+@@ -2580,7 +2528,8 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
if (!ring_passed_seqno(obj->last_fenced_ring,
reg->setup_seqno)) {
ret = i915_wait_request(obj->last_fenced_ring,
@@ -45272,7 +45204,7 @@
if (ret)
return ret;
}
-@@ -2599,7 +2543,7 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
+@@ -2599,7 +2548,7 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
reg = i915_find_fence_reg(dev, pipelined);
if (reg == NULL)
@@ -45281,25 +45213,7 @@
ret = i915_gem_object_flush_fence(obj, pipelined);
if (ret)
-@@ -2645,17 +2589,6 @@ update:
- switch (INTEL_INFO(dev)->gen) {
- case 7:
- case 6:
-- /* In order to fully serialize access to the fenced region and
-- * the update to the fence register we need to take extreme
-- * measures on SNB+. In theory, the write to the fence register
-- * flushes all memory transactions before, and coupled with the
-- * mb() placed around the register write we serialise all memory
-- * operations with respect to the changes in the tiler. Yet, on
-- * SNB+ we need to take a step further and emit an explicit wbinvd()
-- * on each processor in order to manually flush all memory
-- * transactions before updating the fence register.
-- */
-- on_each_cpu(i915_gem_write_fence__ipi, NULL, 1);
- ret = sandybridge_write_fence_reg(obj, pipelined);
- break;
- case 5:
-@@ -2710,6 +2643,7 @@ i915_gem_clear_fence_reg(struct drm_device *dev,
+@@ -2710,6 +2659,7 @@ i915_gem_clear_fence_reg(struct drm_device *dev,
list_del_init(®->lru_list);
reg->obj = NULL;
reg->setup_seqno = 0;
@@ -45307,7 +45221,7 @@
}
/**
-@@ -2996,6 +2930,8 @@ i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write)
+@@ -2996,6 +2946,8 @@ i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write)
int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
enum i915_cache_level cache_level)
{
@@ -45316,7 +45230,7 @@
int ret;
if (obj->cache_level == cache_level)
-@@ -3024,6 +2960,9 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
+@@ -3024,6 +2976,9 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
}
i915_gem_gtt_rebind_object(obj, cache_level);
@@ -45326,7 +45240,7 @@
}
if (cache_level == I915_CACHE_NONE) {
-@@ -3362,8 +3301,8 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file)
+@@ -3362,8 +3317,8 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file)
if (ret == 0 && atomic_read(&dev_priv->mm.wedged))
ret = -EIO;
@@ -45337,26 +45251,7 @@
atomic_read(&dev_priv->mm.wedged), 3000)) {
ret = -EBUSY;
}
-@@ -3472,15 +3411,14 @@ i915_gem_pin_ioctl(struct drm_device *dev, void *data,
- goto out;
- }
-
-- if (obj->user_pin_count == 0) {
-+ obj->user_pin_count++;
-+ obj->pin_filp = file;
-+ if (obj->user_pin_count == 1) {
- ret = i915_gem_object_pin(obj, args->alignment, true);
- if (ret)
- goto out;
- }
-
-- obj->user_pin_count++;
-- obj->pin_filp = file;
--
- /* XXX - flush the CPU caches for pinned objects
- * as the X server doesn't manage domains yet
- */
-@@ -3674,8 +3612,8 @@ struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
+@@ -3674,8 +3629,8 @@ struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
obj->base.write_domain = I915_GEM_DOMAIN_CPU;
obj->base.read_domains = I915_GEM_DOMAIN_CPU;
@@ -45367,7 +45262,7 @@
* cache) for about a 10% performance improvement
* compared to uncached. Graphics requests other than
* display scanout are coherent with the CPU in
-@@ -3765,7 +3703,7 @@ i915_gem_idle(struct drm_device *dev)
+@@ -3765,7 +3720,7 @@ i915_gem_idle(struct drm_device *dev)
return 0;
}
@@ -45376,7 +45271,7 @@
if (ret) {
mutex_unlock(&dev->struct_mutex);
return ret;
-@@ -3800,12 +3738,91 @@ i915_gem_idle(struct drm_device *dev)
+@@ -3800,12 +3755,91 @@ i915_gem_idle(struct drm_device *dev)
return 0;
}
@@ -45469,7 +45364,7 @@
ret = intel_init_render_ring_buffer(dev);
if (ret)
return ret;
-@@ -3824,6 +3841,8 @@ i915_gem_init_ringbuffer(struct drm_device *dev)
+@@ -3824,6 +3858,8 @@ i915_gem_init_ringbuffer(struct drm_device *dev)
dev_priv->next_seqno = 1;
@@ -45478,7 +45373,7 @@
return 0;
cleanup_bsd_ring:
-@@ -3861,7 +3880,7 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
+@@ -3861,7 +3897,7 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
mutex_lock(&dev->struct_mutex);
dev_priv->mm.suspended = 0;
@@ -45487,7 +45382,7 @@
if (ret != 0) {
mutex_unlock(&dev->struct_mutex);
return ret;
-@@ -4256,7 +4275,7 @@ rescan:
+@@ -4256,7 +4292,7 @@ rescan:
* This has a dramatic impact to reduce the number of
* OOM-killer events whilst running the GPU aggressively.
*/
@@ -46357,7 +46252,7 @@
/* On Ironlake whatever DRAM config, GPU always do
* same swizzling setup.
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
-index 93e74fb..8bca2d2 100644
+index 93e74fb..fc6f32a 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -716,7 +716,6 @@ i915_error_object_create(struct drm_i915_private *dev_priv,
@@ -46609,18 +46504,7 @@
if (error)
i915_error_state_free(dev, error);
-@@ -1187,9 +1251,7 @@ static void i915_pageflip_stall_check(struct drm_device *dev, int pipe)
- spin_lock_irqsave(&dev->event_lock, flags);
- work = intel_crtc->unpin_work;
-
-- if (work == NULL ||
-- atomic_read(&work->pending) >= INTEL_FLIP_COMPLETE ||
-- !work->enable_stall_check) {
-+ if (work == NULL || work->pending || !work->enable_stall_check) {
- /* Either the pending flip IRQ arrived, or we're too early. Don't check */
- spin_unlock_irqrestore(&dev->event_lock, flags);
- return;
-@@ -1203,7 +1265,7 @@ static void i915_pageflip_stall_check(struct drm_device *dev, int pipe)
+@@ -1203,7 +1267,7 @@ static void i915_pageflip_stall_check(struct drm_device *dev, int pipe)
} else {
int dspaddr = DSPADDR(intel_crtc->plane);
stall_detected = I915_READ(dspaddr) == (obj->gtt_offset +
@@ -46629,7 +46513,7 @@
crtc->x * crtc->fb->bits_per_pixel/8);
}
-@@ -1647,13 +1709,6 @@ static bool kick_ring(struct intel_ring_buffer *ring)
+@@ -1647,13 +1711,6 @@ static bool kick_ring(struct intel_ring_buffer *ring)
I915_WRITE_CTL(ring, tmp);
return true;
}
@@ -46643,7 +46527,7 @@
return false;
}
-@@ -1703,6 +1758,7 @@ void i915_hangcheck_elapsed(unsigned long data)
+@@ -1703,6 +1760,7 @@ void i915_hangcheck_elapsed(unsigned long data)
dev_priv->last_instdone1 == instdone1) {
if (dev_priv->hangcheck_count++ > 1) {
DRM_ERROR("Hangcheck timer elapsed... GPU hung\n");
@@ -46651,7 +46535,7 @@
if (!IS_GEN2(dev)) {
/* Is the chip hanging on a WAIT_FOR_EVENT?
-@@ -1710,7 +1766,6 @@ void i915_hangcheck_elapsed(unsigned long data)
+@@ -1710,7 +1768,6 @@ void i915_hangcheck_elapsed(unsigned long data)
* and break the hang. This should work on
* all but the second generation chipsets.
*/
@@ -46659,7 +46543,7 @@
if (kick_ring(&dev_priv->ring[RCS]))
goto repeat;
-@@ -1723,7 +1778,6 @@ void i915_hangcheck_elapsed(unsigned long data)
+@@ -1723,7 +1780,6 @@ void i915_hangcheck_elapsed(unsigned long data)
goto repeat;
}
@@ -46667,7 +46551,7 @@
return;
}
} else {
-@@ -1756,17 +1810,6 @@ static void ironlake_irq_preinstall(struct drm_device *dev)
+@@ -1756,17 +1812,6 @@ static void ironlake_irq_preinstall(struct drm_device *dev)
INIT_WORK(&dev_priv->rps_work, gen6_pm_rps_work);
I915_WRITE(HWSTAM, 0xeffe);
@@ -47652,7 +47536,7 @@
void intel_setup_bios(struct drm_device *dev);
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
-index fee0ad0..342ffb7 100644
+index fee0ad0..a83f7ac 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -24,6 +24,7 @@
@@ -47769,7 +47653,7 @@
&dev_priv->gmbus[GMBUS_PORT_DPB].adapter);
}
-@@ -540,6 +564,24 @@ static const struct drm_encoder_funcs intel_crt_enc_funcs = {
+@@ -540,6 +564,32 @@ static const struct drm_encoder_funcs intel_crt_enc_funcs = {
.destroy = intel_encoder_destroy,
};
@@ -47788,13 +47672,21 @@
+ DMI_MATCH(DMI_PRODUCT_NAME, "ZGB"),
+ },
+ },
++ {
++ .callback = intel_no_crt_dmi_callback,
++ .ident = "DELL XPS 8700",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "XPS 8700"),
++ },
++ },
+ { }
+};
+
void intel_crt_init(struct drm_device *dev)
{
struct drm_connector *connector;
-@@ -547,6 +589,10 @@ void intel_crt_init(struct drm_device *dev)
+@@ -547,6 +597,10 @@ void intel_crt_init(struct drm_device *dev)
struct intel_connector *intel_connector;
struct drm_i915_private *dev_priv = dev->dev_private;
@@ -47805,7 +47697,7 @@
crt = kzalloc(sizeof(struct intel_crt), GFP_KERNEL);
if (!crt)
return;
-@@ -571,7 +617,10 @@ void intel_crt_init(struct drm_device *dev)
+@@ -571,7 +625,10 @@ void intel_crt_init(struct drm_device *dev)
1 << INTEL_ANALOG_CLONE_BIT |
1 << INTEL_SDVO_LVDS_CLONE_BIT);
crt->base.crtc_mask = (1 << 0) | (1 << 1);
@@ -47818,18 +47710,10 @@
drm_encoder_helper_add(&crt->base.base, &intel_crt_helper_funcs);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 2ea8a96..5647ce4 100644
+index 27999d9..c975c99 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -25,7 +25,6 @@
- */
-
- #include <linux/cpufreq.h>
--#include <linux/dmi.h>
- #include <linux/module.h>
- #include <linux/input.h>
- #include <linux/i2c.h>
-@@ -76,7 +75,7 @@ struct intel_limit {
+@@ -76,7 +76,7 @@ struct intel_limit {
intel_range_t dot, vco, n, m, m1, m2, p, p1;
intel_p2_t p2;
bool (* find_pll)(const intel_limit_t *, struct drm_crtc *,
@@ -47838,7 +47722,7 @@
};
/* FDI */
-@@ -84,17 +83,21 @@ struct intel_limit {
+@@ -84,17 +84,21 @@ struct intel_limit {
static bool
intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
@@ -47864,7 +47748,7 @@
static inline u32 /* units of 100MHz */
intel_fdi_link_freq(struct drm_device *dev)
-@@ -535,7 +538,8 @@ static bool intel_PLL_is_valid(struct drm_device *dev,
+@@ -535,7 +539,8 @@ static bool intel_PLL_is_valid(struct drm_device *dev,
static bool
intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
@@ -47874,7 +47758,7 @@
{
struct drm_device *dev = crtc->dev;
-@@ -581,6 +585,9 @@ intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
+@@ -581,6 +586,9 @@ intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
if (!intel_PLL_is_valid(dev, limit,
&clock))
continue;
@@ -47884,7 +47768,7 @@
this_err = abs(clock.dot - target);
if (this_err < err) {
-@@ -597,7 +604,8 @@ intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
+@@ -597,7 +605,8 @@ intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
static bool
intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
@@ -47894,7 +47778,7 @@
{
struct drm_device *dev = crtc->dev;
struct drm_i915_private *dev_priv = dev->dev_private;
-@@ -644,6 +652,9 @@ intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
+@@ -644,6 +653,9 @@ intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
if (!intel_PLL_is_valid(dev, limit,
&clock))
continue;
@@ -47904,7 +47788,7 @@
this_err = abs(clock.dot - target);
if (this_err < err_most) {
-@@ -661,7 +672,8 @@ intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
+@@ -661,7 +673,8 @@ intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
static bool
intel_find_pll_ironlake_dp(const intel_limit_t *limit, struct drm_crtc *crtc,
@@ -47914,7 +47798,7 @@
{
struct drm_device *dev = crtc->dev;
intel_clock_t clock;
-@@ -687,7 +699,8 @@ intel_find_pll_ironlake_dp(const intel_limit_t *limit, struct drm_crtc *crtc,
+@@ -687,7 +700,8 @@ intel_find_pll_ironlake_dp(const intel_limit_t *limit, struct drm_crtc *crtc,
/* DisplayPort has only two frequencies, 162MHz and 270MHz */
static bool
intel_find_pll_g4x_dp(const intel_limit_t *limit, struct drm_crtc *crtc,
@@ -47924,7 +47808,7 @@
{
intel_clock_t clock;
if (target < 200000) {
-@@ -934,13 +947,17 @@ static void assert_panel_unlocked(struct drm_i915_private *dev_priv,
+@@ -934,13 +948,17 @@ static void assert_panel_unlocked(struct drm_i915_private *dev_priv,
pipe_name(pipe));
}
@@ -47944,7 +47828,7 @@
reg = PIPECONF(pipe);
val = I915_READ(reg);
cur_state = !!(val & PIPECONF_ENABLE);
-@@ -948,22 +965,25 @@ static void assert_pipe(struct drm_i915_private *dev_priv,
+@@ -948,22 +966,25 @@ static void assert_pipe(struct drm_i915_private *dev_priv,
"pipe %c assertion failure (expected %s, current %s)\n",
pipe_name(pipe), state_string(state), state_string(cur_state));
}
@@ -47977,7 +47861,7 @@
static void assert_planes_disabled(struct drm_i915_private *dev_priv,
enum pipe pipe)
{
-@@ -972,8 +992,14 @@ static void assert_planes_disabled(struct drm_i915_private *dev_priv,
+@@ -972,8 +993,14 @@ static void assert_planes_disabled(struct drm_i915_private *dev_priv,
int cur_pipe;
/* Planes are fixed to pipes on ILK+ */
@@ -47993,7 +47877,7 @@
/* Need to check both planes against the pipe */
for (i = 0; i < 2; i++) {
-@@ -1225,7 +1251,8 @@ static void intel_disable_pch_pll(struct drm_i915_private *dev_priv,
+@@ -1225,7 +1252,8 @@ static void intel_disable_pch_pll(struct drm_i915_private *dev_priv,
enum pipe pipe)
{
int reg;
@@ -48003,7 +47887,7 @@
if (pipe > 1)
return;
-@@ -1236,6 +1263,15 @@ static void intel_disable_pch_pll(struct drm_i915_private *dev_priv,
+@@ -1236,6 +1264,15 @@ static void intel_disable_pch_pll(struct drm_i915_private *dev_priv,
/* Make sure transcoder isn't still depending on us */
assert_transcoder_disabled(dev_priv, pipe);
@@ -48019,7 +47903,7 @@
reg = PCH_DPLL(pipe);
val = I915_READ(reg);
val &= ~DPLL_VCO_ENABLE;
-@@ -1248,7 +1284,8 @@ static void intel_enable_transcoder(struct drm_i915_private *dev_priv,
+@@ -1248,7 +1285,8 @@ static void intel_enable_transcoder(struct drm_i915_private *dev_priv,
enum pipe pipe)
{
int reg;
@@ -48029,7 +47913,7 @@
/* PCH only available on ILK+ */
BUG_ON(dev_priv->info->gen < 5);
-@@ -1262,6 +1299,7 @@ static void intel_enable_transcoder(struct drm_i915_private *dev_priv,
+@@ -1262,6 +1300,7 @@ static void intel_enable_transcoder(struct drm_i915_private *dev_priv,
reg = TRANSCONF(pipe);
val = I915_READ(reg);
@@ -48037,7 +47921,7 @@
if (HAS_PCH_IBX(dev_priv->dev)) {
/*
-@@ -1269,8 +1307,19 @@ static void intel_enable_transcoder(struct drm_i915_private *dev_priv,
+@@ -1269,8 +1308,19 @@ static void intel_enable_transcoder(struct drm_i915_private *dev_priv,
* that in pipeconf reg.
*/
val &= ~PIPE_BPC_MASK;
@@ -48058,7 +47942,7 @@
I915_WRITE(reg, val | TRANS_ENABLE);
if (wait_for(I915_READ(reg) & TRANS_STATE_ENABLE, 100))
DRM_ERROR("failed to enable transcoder %d\n", pipe);
-@@ -1530,8 +1579,8 @@ static void i8xx_enable_fbc(struct drm_crtc *crtc, unsigned long interval)
+@@ -1530,8 +1580,8 @@ static void i8xx_enable_fbc(struct drm_crtc *crtc, unsigned long interval)
u32 fbc_ctl, fbc_ctl2;
cfb_pitch = dev_priv->cfb_size / FBC_LL_SIZE;
@@ -48069,7 +47953,7 @@
/* FBC_CTL wants 64B units */
cfb_pitch = (cfb_pitch / 64) - 1;
-@@ -2023,6 +2072,8 @@ intel_pin_and_fence_fb_obj(struct drm_device *dev,
+@@ -2023,6 +2073,8 @@ intel_pin_and_fence_fb_obj(struct drm_device *dev,
ret = i915_gem_object_get_fence(obj, pipelined);
if (ret)
goto err_unpin;
@@ -48078,7 +47962,7 @@
}
dev_priv->mm.interruptible = true;
-@@ -2035,6 +2086,12 @@ err_interruptible:
+@@ -2035,6 +2087,12 @@ err_interruptible:
return ret;
}
@@ -48091,7 +47975,7 @@
static int i9xx_update_plane(struct drm_crtc *crtc, struct drm_framebuffer *fb,
int x, int y)
{
-@@ -2092,11 +2149,11 @@ static int i9xx_update_plane(struct drm_crtc *crtc, struct drm_framebuffer *fb,
+@@ -2092,11 +2150,11 @@ static int i9xx_update_plane(struct drm_crtc *crtc, struct drm_framebuffer *fb,
I915_WRITE(reg, dspcntr);
Start = obj->gtt_offset;
@@ -48106,7 +47990,7 @@
if (INTEL_INFO(dev)->gen >= 4) {
I915_WRITE(DSPSURF(plane), Start);
I915_WRITE(DSPTILEOFF(plane), (y << 16) | x);
-@@ -2173,11 +2230,11 @@ static int ironlake_update_plane(struct drm_crtc *crtc,
+@@ -2173,11 +2231,11 @@ static int ironlake_update_plane(struct drm_crtc *crtc,
I915_WRITE(reg, dspcntr);
Start = obj->gtt_offset;
@@ -48121,7 +48005,7 @@
I915_WRITE(DSPSURF(plane), Start);
I915_WRITE(DSPTILEOFF(plane), (y << 16) | x);
I915_WRITE(DSPADDR(plane), Offset);
-@@ -2276,7 +2333,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
+@@ -2276,7 +2334,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
ret = intel_pipe_set_base_atomic(crtc, crtc->fb, x, y,
LEAVE_ATOMIC_MODE_SET);
if (ret) {
@@ -48130,7 +48014,7 @@
mutex_unlock(&dev->struct_mutex);
DRM_ERROR("failed to update base address\n");
return ret;
-@@ -2284,7 +2341,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
+@@ -2284,7 +2342,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
if (old_fb) {
intel_wait_for_vblank(dev, intel_crtc->pipe);
@@ -48139,7 +48023,7 @@
}
mutex_unlock(&dev->struct_mutex);
-@@ -2428,9 +2485,11 @@ static void ironlake_fdi_link_train(struct drm_crtc *crtc)
+@@ -2428,9 +2486,11 @@ static void ironlake_fdi_link_train(struct drm_crtc *crtc)
udelay(150);
/* Ironlake workaround, enable clock pointer after FDI enable*/
@@ -48154,7 +48038,7 @@
reg = FDI_RX_IIR(pipe);
for (tries = 0; tries < 5; tries++) {
-@@ -2943,6 +3002,7 @@ static void ironlake_pch_enable(struct drm_crtc *crtc)
+@@ -2943,6 +3003,7 @@ static void ironlake_pch_enable(struct drm_crtc *crtc)
I915_WRITE(TRANS_VTOTAL(pipe), I915_READ(VTOTAL(pipe)));
I915_WRITE(TRANS_VBLANK(pipe), I915_READ(VBLANK(pipe)));
I915_WRITE(TRANS_VSYNC(pipe), I915_READ(VSYNC(pipe)));
@@ -48162,7 +48046,7 @@
intel_fdi_normal_train(crtc);
-@@ -3340,10 +3400,12 @@ static void intel_crtc_disable(struct drm_crtc *crtc)
+@@ -3340,10 +3401,12 @@ static void intel_crtc_disable(struct drm_crtc *crtc)
struct drm_device *dev = crtc->dev;
crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF);
@@ -48176,7 +48060,7 @@
mutex_unlock(&dev->struct_mutex);
}
}
-@@ -3417,10 +3479,10 @@ static bool intel_crtc_mode_fixup(struct drm_crtc *crtc,
+@@ -3417,10 +3480,10 @@ static bool intel_crtc_mode_fixup(struct drm_crtc *crtc,
return false;
}
@@ -48191,7 +48075,7 @@
drm_mode_set_crtcinfo(adjusted_mode, 0);
return true;
-@@ -4536,10 +4598,11 @@ static void ironlake_update_wm(struct drm_device *dev)
+@@ -4536,10 +4599,11 @@ static void ironlake_update_wm(struct drm_device *dev)
*/
}
@@ -48204,7 +48088,7 @@
int fbc_wm, plane_wm, cursor_wm;
unsigned int enabled;
-@@ -4548,8 +4611,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
+@@ -4548,8 +4612,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
&sandybridge_display_wm_info, latency,
&sandybridge_cursor_wm_info, latency,
&plane_wm, &cursor_wm)) {
@@ -48217,7 +48101,7 @@
DRM_DEBUG_KMS("FIFO watermarks For pipe A -"
" plane %d, " "cursor: %d\n",
plane_wm, cursor_wm);
-@@ -4560,8 +4625,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
+@@ -4560,8 +4626,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
&sandybridge_display_wm_info, latency,
&sandybridge_cursor_wm_info, latency,
&plane_wm, &cursor_wm)) {
@@ -48230,7 +48114,7 @@
DRM_DEBUG_KMS("FIFO watermarks For pipe B -"
" plane %d, cursor: %d\n",
plane_wm, cursor_wm);
-@@ -4574,8 +4641,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
+@@ -4574,8 +4642,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
&sandybridge_display_wm_info, latency,
&sandybridge_cursor_wm_info, latency,
&plane_wm, &cursor_wm)) {
@@ -48243,7 +48127,7 @@
DRM_DEBUG_KMS("FIFO watermarks For pipe C -"
" plane %d, cursor: %d\n",
plane_wm, cursor_wm);
-@@ -4596,7 +4665,8 @@ static void sandybridge_update_wm(struct drm_device *dev)
+@@ -4596,7 +4666,8 @@ static void sandybridge_update_wm(struct drm_device *dev)
I915_WRITE(WM2_LP_ILK, 0);
I915_WRITE(WM1_LP_ILK, 0);
@@ -48253,7 +48137,7 @@
return;
enabled = ffs(enabled) - 1;
-@@ -4646,6 +4716,161 @@ static void sandybridge_update_wm(struct drm_device *dev)
+@@ -4646,6 +4717,161 @@ static void sandybridge_update_wm(struct drm_device *dev)
cursor_wm);
}
@@ -48415,7 +48299,7 @@
/**
* intel_update_watermarks - update FIFO watermark values based on current modes
*
-@@ -4686,6 +4911,16 @@ static void intel_update_watermarks(struct drm_device *dev)
+@@ -4686,6 +4912,16 @@ static void intel_update_watermarks(struct drm_device *dev)
dev_priv->display.update_wm(dev);
}
@@ -48432,7 +48316,7 @@
static inline bool intel_panel_use_ssc(struct drm_i915_private *dev_priv)
{
if (i915_panel_use_ssc >= 0)
-@@ -4833,6 +5068,82 @@ static bool intel_choose_pipe_bpp_dither(struct drm_crtc *crtc,
+@@ -4833,6 +5069,82 @@ static bool intel_choose_pipe_bpp_dither(struct drm_crtc *crtc,
return display_bpc != bpc;
}
@@ -48515,7 +48399,7 @@
static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode,
-@@ -4846,7 +5157,7 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -4846,7 +5158,7 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
int plane = intel_crtc->plane;
int refclk, num_connectors = 0;
intel_clock_t clock, reduced_clock;
@@ -48524,7 +48408,7 @@
bool ok, has_reduced_clock = false, is_sdvo = false, is_dvo = false;
bool is_crt = false, is_lvds = false, is_tv = false, is_dp = false;
struct drm_mode_config *mode_config = &dev->mode_config;
-@@ -4887,15 +5198,7 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -4887,15 +5199,7 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
num_connectors++;
}
@@ -48541,7 +48425,7 @@
/*
* Returns a set of divisors for the desired target clock with the given
-@@ -4903,7 +5206,8 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -4903,7 +5207,8 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
* reflck * (5 * (m1 + 2) + (m2 + 2)) / (n + 2) / p1 / p2.
*/
limit = intel_limit(crtc, refclk);
@@ -48551,7 +48435,7 @@
if (!ok) {
DRM_ERROR("Couldn't find PLL settings for mode!\n");
return -EINVAL;
-@@ -4913,53 +5217,24 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -4913,53 +5218,24 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
intel_crtc_update_cursor(crtc, true);
if (is_lvds && dev_priv->lvds_downclock_avail) {
@@ -48617,7 +48501,7 @@
dpll = DPLL_VGA_MODE_DIS;
-@@ -5033,8 +5308,6 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5033,8 +5309,6 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
/* Set up the display plane register */
dspcntr = DISPPLANE_GAMMA_ENABLE;
@@ -48626,7 +48510,7 @@
if (pipe == 0)
dspcntr &= ~DISPPLANE_SEL_PIPE_MASK;
else
-@@ -5069,7 +5342,6 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5069,7 +5343,6 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
DRM_DEBUG_KMS("Mode for pipe %c:\n", pipe == 0 ? 'A' : 'B');
drm_mode_debug_printmodeline(mode);
@@ -48634,7 +48518,7 @@
I915_WRITE(DPLL(pipe), dpll & ~DPLL_VCO_ENABLE);
POSTING_READ(DPLL(pipe));
-@@ -5156,33 +5428,32 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5156,33 +5429,32 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
I915_WRITE(DPLL(pipe), dpll);
}
@@ -48683,7 +48567,7 @@
I915_WRITE(HTOTAL(pipe),
(adjusted_mode->crtc_hdisplay - 1) |
-@@ -5299,7 +5570,8 @@ void ironlake_init_pch_refclk(struct drm_device *dev)
+@@ -5299,7 +5571,8 @@ void ironlake_init_pch_refclk(struct drm_device *dev)
if (intel_panel_use_ssc(dev_priv) && can_ssc) {
DRM_DEBUG_KMS("Using SSC on panel\n");
temp |= DREF_SSC1_ENABLE;
@@ -48693,7 +48577,7 @@
/* Get SSC going before enabling the outputs */
I915_WRITE(PCH_DREF_CONTROL, temp);
-@@ -5448,7 +5720,8 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5448,7 +5721,8 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
* reflck * (5 * (m1 + 2) + (m2 + 2)) / (n + 2) / p1 / p2.
*/
limit = intel_limit(crtc, refclk);
@@ -48703,7 +48587,7 @@
if (!ok) {
DRM_ERROR("Couldn't find PLL settings for mode!\n");
return -EINVAL;
-@@ -5458,21 +5731,17 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5458,21 +5732,17 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
intel_crtc_update_cursor(crtc, true);
if (is_lvds && dev_priv->lvds_downclock_avail) {
@@ -48732,7 +48616,7 @@
}
/* SDVO TV has fixed PLL values depend on its clock range,
this mirrors vbios setting. */
-@@ -5767,17 +6036,19 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5767,17 +6037,19 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
}
}
@@ -48759,7 +48643,7 @@
I915_WRITE(HTOTAL(pipe),
(adjusted_mode->crtc_hdisplay - 1) |
-@@ -5820,12 +6091,6 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5820,12 +6092,6 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
intel_wait_for_vblank(dev, pipe);
@@ -48772,7 +48656,7 @@
I915_WRITE(DSPCNTR(plane), dspcntr);
POSTING_READ(DSPCNTR(plane));
-@@ -5852,14 +6117,45 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5852,14 +6118,45 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
ret = dev_priv->display.crtc_mode_set(crtc, mode, adjusted_mode,
x, y, old_fb);
@@ -48820,7 +48704,7 @@
static void g4x_write_eld(struct drm_connector *connector,
struct drm_crtc *crtc)
{
-@@ -5876,6 +6172,12 @@ static void g4x_write_eld(struct drm_connector *connector,
+@@ -5876,6 +6173,12 @@ static void g4x_write_eld(struct drm_connector *connector,
else
eldv = G4X_ELDV_DEVCTG;
@@ -48833,7 +48717,7 @@
i = I915_READ(G4X_AUD_CNTL_ST);
i &= ~(eldv | G4X_ELD_ADDR);
len = (i >> 9) & 0x1f; /* ELD buffer size */
-@@ -5903,22 +6205,26 @@ static void ironlake_write_eld(struct drm_connector *connector,
+@@ -5903,22 +6206,26 @@ static void ironlake_write_eld(struct drm_connector *connector,
uint32_t i;
int len;
int hdmiw_hdmiedid;
@@ -48866,7 +48750,7 @@
DRM_DEBUG_DRIVER("ELD on pipe %c\n", pipe_name(i));
-@@ -5927,14 +6233,27 @@ static void ironlake_write_eld(struct drm_connector *connector,
+@@ -5927,14 +6234,27 @@ static void ironlake_write_eld(struct drm_connector *connector,
if (!i) {
DRM_DEBUG_DRIVER("Audio directed to unknown port\n");
/* operate blindly on all ports */
@@ -48898,7 +48782,7 @@
i = I915_READ(aud_cntrl_st2);
i &= ~eldv;
I915_WRITE(aud_cntrl_st2, i);
-@@ -5942,13 +6261,8 @@ static void ironlake_write_eld(struct drm_connector *connector,
+@@ -5942,13 +6262,8 @@ static void ironlake_write_eld(struct drm_connector *connector,
if (!eld[0])
return;
@@ -48913,7 +48797,7 @@
I915_WRITE(aud_cntl_st, i);
len = min_t(uint8_t, eld[2], 21); /* 84 bytes of hw ELD buffer */
-@@ -6332,7 +6646,7 @@ static struct drm_display_mode load_detect_mode = {
+@@ -6332,7 +6647,7 @@ static struct drm_display_mode load_detect_mode = {
static struct drm_framebuffer *
intel_framebuffer_create(struct drm_device *dev,
@@ -48922,7 +48806,7 @@
struct drm_i915_gem_object *obj)
{
struct intel_framebuffer *intel_fb;
-@@ -6374,7 +6688,7 @@ intel_framebuffer_create_for_mode(struct drm_device *dev,
+@@ -6374,7 +6689,7 @@ intel_framebuffer_create_for_mode(struct drm_device *dev,
int depth, int bpp)
{
struct drm_i915_gem_object *obj;
@@ -48931,7 +48815,7 @@
obj = i915_gem_alloc_object(dev,
intel_framebuffer_size_for_mode(mode, bpp));
-@@ -6383,9 +6697,9 @@ intel_framebuffer_create_for_mode(struct drm_device *dev,
+@@ -6383,9 +6698,9 @@ intel_framebuffer_create_for_mode(struct drm_device *dev,
mode_cmd.width = mode->hdisplay;
mode_cmd.height = mode->vdisplay;
@@ -48944,7 +48828,7 @@
return intel_framebuffer_create(dev, &mode_cmd, obj);
}
-@@ -6406,11 +6720,11 @@ mode_fits_in_fbdev(struct drm_device *dev,
+@@ -6406,11 +6721,11 @@ mode_fits_in_fbdev(struct drm_device *dev,
return NULL;
fb = &dev_priv->fbdev->ifb.base;
@@ -48959,7 +48843,7 @@
return NULL;
return fb;
-@@ -6742,9 +7056,7 @@ static void intel_increase_pllclock(struct drm_crtc *crtc)
+@@ -6742,9 +7057,7 @@ static void intel_increase_pllclock(struct drm_crtc *crtc)
if (!HAS_PIPE_CXSR(dev) && (dpll & DISPLAY_RATE_SELECT_FPA1)) {
DRM_DEBUG_DRIVER("upclocking LVDS\n");
@@ -48970,7 +48854,7 @@
dpll &= ~DISPLAY_RATE_SELECT_FPA1;
I915_WRITE(dpll_reg, dpll);
-@@ -6753,9 +7065,6 @@ static void intel_increase_pllclock(struct drm_crtc *crtc)
+@@ -6753,9 +7066,6 @@ static void intel_increase_pllclock(struct drm_crtc *crtc)
dpll = I915_READ(dpll_reg);
if (dpll & DISPLAY_RATE_SELECT_FPA1)
DRM_DEBUG_DRIVER("failed to upclock LVDS!\n");
@@ -48980,7 +48864,7 @@
}
/* Schedule downclock */
-@@ -6768,9 +7077,6 @@ static void intel_decrease_pllclock(struct drm_crtc *crtc)
+@@ -6768,9 +7078,6 @@ static void intel_decrease_pllclock(struct drm_crtc *crtc)
struct drm_device *dev = crtc->dev;
drm_i915_private_t *dev_priv = dev->dev_private;
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -48990,7 +48874,7 @@
if (HAS_PCH_SPLIT(dev))
return;
-@@ -6783,23 +7089,22 @@ static void intel_decrease_pllclock(struct drm_crtc *crtc)
+@@ -6783,23 +7090,22 @@ static void intel_decrease_pllclock(struct drm_crtc *crtc)
* the manual case.
*/
if (!HAS_PIPE_CXSR(dev) && intel_crtc->lowfreq_avail) {
@@ -49020,7 +48904,7 @@
}
/**
-@@ -6912,7 +7217,7 @@ static void intel_unpin_work_fn(struct work_struct *__work)
+@@ -6912,7 +7218,7 @@ static void intel_unpin_work_fn(struct work_struct *__work)
container_of(__work, struct intel_unpin_work, work);
mutex_lock(&work->dev->struct_mutex);
@@ -49029,59 +48913,7 @@
drm_gem_object_unreference(&work->pending_flip_obj->base);
drm_gem_object_unreference(&work->old_fb_obj->base);
-@@ -6940,18 +7245,11 @@ static void do_intel_finish_page_flip(struct drm_device *dev,
-
- spin_lock_irqsave(&dev->event_lock, flags);
- work = intel_crtc->unpin_work;
--
-- /* Ensure we don't miss a work->pending update ... */
-- smp_rmb();
--
-- if (work == NULL || atomic_read(&work->pending) < INTEL_FLIP_COMPLETE) {
-+ if (work == NULL || !work->pending) {
- spin_unlock_irqrestore(&dev->event_lock, flags);
- return;
- }
-
-- /* and that the unpin work is consistent wrt ->pending. */
-- smp_rmb();
--
- intel_crtc->unpin_work = NULL;
-
- if (work->event) {
-@@ -7023,25 +7321,16 @@ void intel_prepare_page_flip(struct drm_device *dev, int plane)
- to_intel_crtc(dev_priv->plane_to_crtc_mapping[plane]);
- unsigned long flags;
-
-- /* NB: An MMIO update of the plane base pointer will also
-- * generate a page-flip completion irq, i.e. every modeset
-- * is also accompanied by a spurious intel_prepare_page_flip().
-- */
- spin_lock_irqsave(&dev->event_lock, flags);
-- if (intel_crtc->unpin_work)
-- atomic_inc_not_zero(&intel_crtc->unpin_work->pending);
-+ if (intel_crtc->unpin_work) {
-+ if ((++intel_crtc->unpin_work->pending) > 1)
-+ DRM_ERROR("Prepared flip multiple times\n");
-+ } else {
-+ DRM_DEBUG_DRIVER("preparing flip with no unpin work?\n");
-+ }
- spin_unlock_irqrestore(&dev->event_lock, flags);
- }
-
--inline static void intel_mark_page_flip_active(struct intel_crtc *intel_crtc)
--{
-- /* Ensure that the work item is consistent when activating it ... */
-- smp_wmb();
-- atomic_set(&intel_crtc->unpin_work->pending, INTEL_FLIP_PENDING);
-- /* and that it is marked active as soon as the irq could fire. */
-- smp_wmb();
--}
--
- static int intel_gen2_queue_flip(struct drm_device *dev,
- struct drm_crtc *crtc,
- struct drm_framebuffer *fb,
-@@ -7058,7 +7347,7 @@ static int intel_gen2_queue_flip(struct drm_device *dev,
+@@ -7058,7 +7364,7 @@ static int intel_gen2_queue_flip(struct drm_device *dev,
goto err;
/* Offset into the new buffer for cases of shared fbs between CRTCs */
@@ -49090,7 +48922,7 @@
ret = BEGIN_LP_RING(6);
if (ret)
-@@ -7075,16 +7364,14 @@ static int intel_gen2_queue_flip(struct drm_device *dev,
+@@ -7075,16 +7381,16 @@ static int intel_gen2_queue_flip(struct drm_device *dev,
OUT_RING(MI_NOOP);
OUT_RING(MI_DISPLAY_FLIP |
MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
@@ -49098,9 +48930,9 @@
+ OUT_RING(fb->pitches[0]);
OUT_RING(obj->gtt_offset + offset);
- OUT_RING(MI_NOOP);
--
-- intel_mark_page_flip_active(intel_crtc);
+ OUT_RING(0); /* aux display base address, unused */
+
+ intel_mark_page_flip_active(intel_crtc);
ADVANCE_LP_RING();
return 0;
@@ -49110,7 +48942,7 @@
err:
return ret;
}
-@@ -7105,7 +7392,7 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
+@@ -7105,7 +7411,7 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
goto err;
/* Offset into the new buffer for cases of shared fbs between CRTCs */
@@ -49119,7 +48951,7 @@
ret = BEGIN_LP_RING(6);
if (ret)
-@@ -7119,16 +7406,15 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
+@@ -7119,7 +7425,7 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
OUT_RING(MI_NOOP);
OUT_RING(MI_DISPLAY_FLIP_I915 |
MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
@@ -49128,8 +48960,7 @@
OUT_RING(obj->gtt_offset + offset);
OUT_RING(MI_NOOP);
-- intel_mark_page_flip_active(intel_crtc);
- ADVANCE_LP_RING();
+@@ -7128,7 +7434,7 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
return 0;
err_unpin:
@@ -49138,7 +48969,7 @@
err:
return ret;
}
-@@ -7157,7 +7443,7 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
+@@ -7157,7 +7463,7 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
*/
OUT_RING(MI_DISPLAY_FLIP |
MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
@@ -49147,13 +48978,7 @@
OUT_RING(obj->gtt_offset | obj->tiling_mode);
/* XXX Enabling the panel-fitter across page-flip is so far
-@@ -7167,13 +7453,11 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
- pf = 0;
- pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff;
- OUT_RING(pf | pipesrc);
--
-- intel_mark_page_flip_active(intel_crtc);
- ADVANCE_LP_RING();
+@@ -7173,7 +7479,7 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
return 0;
err_unpin:
@@ -49162,7 +48987,7 @@
err:
return ret;
}
-@@ -7198,19 +7482,23 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
+@@ -7198,10 +7504,16 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
OUT_RING(MI_DISPLAY_FLIP |
MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
@@ -49180,9 +49005,8 @@
+ pf = 0;
pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff;
OUT_RING(pf | pipesrc);
--
-- intel_mark_page_flip_active(intel_crtc);
- ADVANCE_LP_RING();
+
+@@ -7210,7 +7522,7 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
return 0;
err_unpin:
@@ -49191,7 +49015,7 @@
err:
return ret;
}
-@@ -7252,35 +7540,19 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
+@@ -7252,26 +7564,12 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
goto err_unpin;
}
@@ -49218,9 +49042,8 @@
+ intel_ring_emit(ring, (fb->pitches[0] | obj->tiling_mode));
intel_ring_emit(ring, (obj->gtt_offset));
intel_ring_emit(ring, (MI_NOOP));
--
-- intel_mark_page_flip_active(intel_crtc);
- intel_ring_advance(ring);
+
+@@ -7280,7 +7578,7 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
return 0;
err_unpin:
@@ -49229,7 +49052,7 @@
err:
return ret;
}
-@@ -7575,10 +7847,9 @@ static void intel_setup_outputs(struct drm_device *dev)
+@@ -7575,10 +7873,9 @@ static void intel_setup_outputs(struct drm_device *dev)
struct drm_i915_private *dev_priv = dev->dev_private;
struct intel_encoder *encoder;
bool dpd_is_edp = false;
@@ -49242,7 +49065,7 @@
if (!has_lvds && !HAS_PCH_SPLIT(dev)) {
/* disable the panel fitter on everything but LVDS */
I915_WRITE(PFIT_CONTROL, 0);
-@@ -7707,7 +7978,7 @@ static const struct drm_framebuffer_funcs intel_fb_funcs = {
+@@ -7707,7 +8004,7 @@ static const struct drm_framebuffer_funcs intel_fb_funcs = {
int intel_framebuffer_init(struct drm_device *dev,
struct intel_framebuffer *intel_fb,
@@ -49251,7 +49074,7 @@
struct drm_i915_gem_object *obj)
{
int ret;
-@@ -7715,21 +7986,27 @@ int intel_framebuffer_init(struct drm_device *dev,
+@@ -7715,21 +8012,27 @@ int intel_framebuffer_init(struct drm_device *dev,
if (obj->tiling_mode == I915_TILING_Y)
return -EINVAL;
@@ -49289,7 +49112,7 @@
return -EINVAL;
}
-@@ -7747,11 +8024,12 @@ int intel_framebuffer_init(struct drm_device *dev,
+@@ -7747,11 +8050,12 @@ int intel_framebuffer_init(struct drm_device *dev,
static struct drm_framebuffer *
intel_user_framebuffer_create(struct drm_device *dev,
struct drm_file *filp,
@@ -49304,7 +49127,7 @@
if (&obj->base == NULL)
return ERR_PTR(-ENOENT);
-@@ -8020,7 +8298,7 @@ void intel_init_emon(struct drm_device *dev)
+@@ -8020,7 +8324,7 @@ void intel_init_emon(struct drm_device *dev)
dev_priv->corr = (lcfuse & LCFUSE_HIV_MASK);
}
@@ -49313,7 +49136,7 @@
{
/*
* Respect the kernel parameter if it is set
-@@ -8038,11 +8316,11 @@ static bool intel_enable_rc6(struct drm_device *dev)
+@@ -8038,11 +8342,11 @@ static bool intel_enable_rc6(struct drm_device *dev)
* Disable rc6 on Sandybridge
*/
if (INTEL_INFO(dev)->gen == 6) {
@@ -49329,7 +49152,7 @@
}
void gen6_enable_rps(struct drm_i915_private *dev_priv)
-@@ -8050,7 +8328,9 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
+@@ -8050,7 +8354,9 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
u32 rp_state_cap = I915_READ(GEN6_RP_STATE_CAP);
u32 gt_perf_status = I915_READ(GEN6_GT_PERF_STATUS);
u32 pcu_mbox, rc6_mask = 0;
@@ -49339,7 +49162,7 @@
int i;
/* Here begins a magic sequence of register writes to enable
-@@ -8061,6 +8341,13 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
+@@ -8061,6 +8367,13 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
*/
I915_WRITE(GEN6_RC_STATE, 0);
mutex_lock(&dev_priv->dev->struct_mutex);
@@ -49353,7 +49176,7 @@
gen6_gt_force_wake_get(dev_priv);
/* disable the counters and set deterministic thresholds */
-@@ -8081,9 +8368,20 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
+@@ -8081,9 +8394,20 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
I915_WRITE(GEN6_RC6p_THRESHOLD, 150000);
I915_WRITE(GEN6_RC6pp_THRESHOLD, 64000); /* unused */
@@ -49377,7 +49200,7 @@
I915_WRITE(GEN6_RC_CONTROL,
rc6_mask |
-@@ -8311,6 +8609,10 @@ static void gen6_init_clock_gating(struct drm_device *dev)
+@@ -8311,6 +8635,10 @@ static void gen6_init_clock_gating(struct drm_device *dev)
I915_WRITE(WM2_LP_ILK, 0);
I915_WRITE(WM1_LP_ILK, 0);
@@ -49388,7 +49211,7 @@
/* According to the BSpec vol1g, bit 12 (RCPBUNIT) clock
* gating disable must be set. Failure to set it results in
* flickering pixels due to Z write ordering failures after
-@@ -8389,6 +8691,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
+@@ -8389,6 +8717,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
@@ -49399,7 +49222,7 @@
/* Apply the WaDisableRHWOOptimizationForRenderHang workaround. */
I915_WRITE(GEN7_COMMON_SLICE_CHICKEN1,
GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC);
-@@ -8699,9 +9005,15 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8699,9 +9031,15 @@ static void intel_init_display(struct drm_device *dev)
if (IS_IVYBRIDGE(dev)) {
u32 ecobus;
@@ -49416,7 +49239,7 @@
__gen6_gt_force_wake_mt_put(dev_priv);
mutex_unlock(&dev->struct_mutex);
-@@ -8733,6 +9045,7 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8733,6 +9071,7 @@ static void intel_init_display(struct drm_device *dev)
} else if (IS_GEN6(dev)) {
if (SNB_READ_WM0_LATENCY()) {
dev_priv->display.update_wm = sandybridge_update_wm;
@@ -49424,7 +49247,7 @@
} else {
DRM_DEBUG_KMS("Failed to read display plane latency. "
"Disable CxSR\n");
-@@ -8746,6 +9059,7 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8746,6 +9085,7 @@ static void intel_init_display(struct drm_device *dev)
dev_priv->display.fdi_link_train = ivb_manual_fdi_link_train;
if (SNB_READ_WM0_LATENCY()) {
dev_priv->display.update_wm = sandybridge_update_wm;
@@ -49432,112 +49255,63 @@
} else {
DRM_DEBUG_KMS("Failed to read display plane latency. "
"Disable CxSR\n");
-@@ -8851,16 +9165,6 @@ static void quirk_ssc_force_disable(struct drm_device *dev)
+@@ -8851,24 +9191,24 @@ static void quirk_ssc_force_disable(struct drm_device *dev)
}
/*
- * A machine (e.g. Acer Aspire 5734Z) may need to invert the panel backlight
- * brightness value
-- */
++ * Some machines (Dell XPS13) suffer broken backlight controls if
++ * BLM_PCH_PWM_ENABLE is set.
+ */
-static void quirk_invert_brightness(struct drm_device *dev)
--{
-- struct drm_i915_private *dev_priv = dev->dev_private;
++static void quirk_no_pcm_pwm_enable(struct drm_device *dev)
+ {
+ struct drm_i915_private *dev_priv = dev->dev_private;
- dev_priv->quirks |= QUIRK_INVERT_BRIGHTNESS;
--}
--
--/*
- * Some machines (Dell XPS13) suffer broken backlight controls if
- * BLM_PCH_PWM_ENABLE is set.
++ dev_priv->quirks |= QUIRK_NO_PCH_PWM_ENABLE;
++ DRM_INFO("applying no-PCH_PWM_ENABLE quirk\n");
+ }
+
+ /*
+- * Some machines (Dell XPS13) suffer broken backlight controls if
+- * BLM_PCH_PWM_ENABLE is set.
++ * A machine (e.g. Acer Aspire 5734Z) may need to invert the panel backlight
++ * brightness value
*/
-@@ -8878,37 +9182,7 @@ struct intel_quirk {
- void (*hook)(struct drm_device *dev);
+-static void quirk_no_pcm_pwm_enable(struct drm_device *dev)
++static void quirk_invert_brightness(struct drm_device *dev)
+ {
+ struct drm_i915_private *dev_priv = dev->dev_private;
+- dev_priv->quirks |= QUIRK_NO_PCH_PWM_ENABLE;
+- DRM_INFO("applying no-PCH_PWM_ENABLE quirk\n");
++ dev_priv->quirks |= QUIRK_INVERT_BRIGHTNESS;
+ }
+
+ struct intel_quirk {
+@@ -8907,8 +9247,6 @@ static const struct intel_dmi_quirk intel_dmi_quirks[] = {
};
--/* For systems that don't have a meaningful PCI subdevice/subvendor ID */
--struct intel_dmi_quirk {
-- void (*hook)(struct drm_device *dev);
-- const struct dmi_system_id (*dmi_id_list)[];
--};
--
--static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
--{
-- DRM_INFO("Backlight polarity reversed on %s\n", id->ident);
-- return 1;
--}
--
--static const struct intel_dmi_quirk intel_dmi_quirks[] = {
-- {
-- .dmi_id_list = &(const struct dmi_system_id[]) {
-- {
-- .callback = intel_dmi_reverse_brightness,
-- .ident = "NCR Corporation",
-- .matches = {DMI_MATCH(DMI_SYS_VENDOR, "NCR Corporation"),
-- DMI_MATCH(DMI_PRODUCT_NAME, ""),
-- },
-- },
-- { } /* terminating entry */
-- },
-- .hook = quirk_invert_brightness,
-- },
--};
--
struct intel_quirk intel_quirks[] = {
- /* HP Compaq 2730p needs pipe A force quirk (LP: #291555) */
- { 0x2a42, 0x103c, 0x30eb, quirk_pipea_force },
/* HP Mini needs pipe A force quirk (LP: #322104) */
{ 0x27ae, 0x103c, 0x361a, quirk_pipea_force },
-@@ -8934,18 +9208,6 @@ struct intel_quirk intel_quirks[] = {
- /* Sony Vaio Y cannot use SSC on LVDS */
- { 0x0046, 0x104d, 0x9076, quirk_ssc_force_disable },
+@@ -8946,12 +9284,6 @@ struct intel_quirk intel_quirks[] = {
+ /* Acer/Packard Bell NCL20 */
+ { 0x2a42, 0x1025, 0x034b, quirk_invert_brightness },
-- /* Acer Aspire 5734Z must invert backlight brightness */
-- { 0x2a42, 0x1025, 0x0459, quirk_invert_brightness },
+- /* Acer Aspire 4736Z */
+- { 0x2a42, 0x1025, 0x0260, quirk_invert_brightness },
-
-- /* Acer/eMachines G725 */
-- { 0x2a42, 0x1025, 0x0210, quirk_invert_brightness },
--
-- /* Acer/eMachines e725 */
-- { 0x2a42, 0x1025, 0x0212, quirk_invert_brightness },
--
-- /* Acer/Packard Bell NCL20 */
-- { 0x2a42, 0x1025, 0x034b, quirk_invert_brightness },
+- /* Acer Aspire 5336 */
+- { 0x2a42, 0x1025, 0x048a, quirk_invert_brightness },
-
/* Dell XPS13 HD Sandy Bridge */
{ 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable },
/* Dell XPS13 HD and XPS13 FHD Ivy Bridge */
-@@ -8967,10 +9229,6 @@ static void intel_init_quirks(struct drm_device *dev)
- q->subsystem_device == PCI_ANY_ID))
- q->hook(dev);
- }
-- for (i = 0; i < ARRAY_SIZE(intel_dmi_quirks); i++) {
-- if (dmi_check_system(*intel_dmi_quirks[i].dmi_id_list) != 0)
-- intel_dmi_quirks[i].hook(dev);
-- }
- }
-
- /* Disable the VGA plane that we never use */
-@@ -8996,33 +9254,19 @@ static void i915_disable_vga(struct drm_device *dev)
- POSTING_READ(vga_reg);
- }
-
--void i915_redisable_vga(struct drm_device *dev)
--{
-- struct drm_i915_private *dev_priv = dev->dev_private;
-- u32 vga_reg;
--
-- if (HAS_PCH_SPLIT(dev))
-- vga_reg = CPU_VGACNTRL;
-- else
-- vga_reg = VGACNTRL;
--
-- if (I915_READ(vga_reg) != VGA_DISP_DISABLE) {
-- DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n");
-- I915_WRITE(vga_reg, VGA_DISP_DISABLE);
-- POSTING_READ(vga_reg);
-- }
--}
--
+@@ -9022,13 +9354,16 @@ void i915_redisable_vga(struct drm_device *dev)
void intel_modeset_init(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
@@ -49555,7 +49329,7 @@
dev->mode_config.funcs = (void *)&intel_mode_funcs;
intel_init_quirks(dev);
-@@ -9046,6 +9290,9 @@ void intel_modeset_init(struct drm_device *dev)
+@@ -9052,6 +9387,9 @@ void intel_modeset_init(struct drm_device *dev)
for (i = 0; i < dev_priv->num_pipe; i++) {
intel_crtc_init(dev, i);
@@ -49565,17 +49339,7 @@
}
/* Just disable it once at startup */
-@@ -9127,9 +9374,6 @@ void intel_modeset_cleanup(struct drm_device *dev)
- del_timer_sync(&dev_priv->idle_timer);
- cancel_work_sync(&dev_priv->idle_work);
-
-- /* destroy backlight, if any, before the connectors */
-- intel_panel_destroy_backlight(dev);
--
- drm_mode_config_cleanup(dev);
- }
-
-@@ -9155,15 +9399,14 @@ void intel_connector_attach_encoder(struct intel_connector *connector,
+@@ -9161,15 +9499,14 @@ void intel_connector_attach_encoder(struct intel_connector *connector,
int intel_modeset_vga_set_state(struct drm_device *dev, bool state)
{
struct drm_i915_private *dev_priv = dev->dev_private;
@@ -49594,7 +49358,7 @@
}
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
-index ca75076..eee6cd3 100644
+index ca75076..9a3ecd6 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -49,7 +49,7 @@ struct intel_dp {
@@ -49715,20 +49479,8 @@
if (has_audio == intel_dp->has_audio)
return 0;
-@@ -2292,6 +2289,11 @@ done:
- static void
- intel_dp_destroy(struct drm_connector *connector)
- {
-+ struct drm_device *dev = connector->dev;
-+
-+ if (intel_dpd_is_edp(dev))
-+ intel_panel_destroy_backlight(dev);
-+
- drm_sysfs_connector_remove(connector);
- drm_connector_cleanup(connector);
- kfree(connector);
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
-index 5212284..cd623e8 100644
+index 5212284..018dfbd 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -26,6 +26,7 @@
@@ -49806,19 +49558,7 @@
#define DIP_HEADER_SIZE 5
-@@ -257,10 +277,7 @@ struct intel_unpin_work {
- struct drm_i915_gem_object *old_fb_obj;
- struct drm_i915_gem_object *pending_flip_obj;
- struct drm_pending_vblank_event *event;
-- atomic_t pending;
--#define INTEL_FLIP_INACTIVE 0
--#define INTEL_FLIP_PENDING 1
--#define INTEL_FLIP_COMPLETE 2
-+ int pending;
- bool enable_stall_check;
- };
-
-@@ -271,6 +288,8 @@ struct intel_fbc_work {
+@@ -271,6 +291,8 @@ struct intel_fbc_work {
int interval;
};
@@ -49827,7 +49567,7 @@
int intel_ddc_get_modes(struct drm_connector *c, struct i2c_adapter *adapter);
extern bool intel_ddc_probe(struct intel_encoder *intel_encoder, int ddc_bus);
-@@ -293,6 +312,7 @@ intel_dp_set_m_n(struct drm_crtc *crtc, struct drm_display_mode *mode,
+@@ -293,6 +315,7 @@ intel_dp_set_m_n(struct drm_crtc *crtc, struct drm_display_mode *mode,
extern bool intel_dpd_is_edp(struct drm_device *dev);
extern void intel_edp_link_config(struct intel_encoder *, int *, int *);
extern bool intel_encoder_is_pch_edp(struct drm_encoder *encoder);
@@ -49835,7 +49575,7 @@
/* intel_panel.c */
extern void intel_fixed_panel_mode(struct drm_display_mode *fixed_mode,
-@@ -360,10 +380,11 @@ extern void intel_init_emon(struct drm_device *dev);
+@@ -360,10 +383,11 @@ extern void intel_init_emon(struct drm_device *dev);
extern int intel_pin_and_fence_fb_obj(struct drm_device *dev,
struct drm_i915_gem_object *obj,
struct intel_ring_buffer *pipelined);
@@ -49848,7 +49588,7 @@
struct drm_i915_gem_object *obj);
extern int intel_fbdev_init(struct drm_device *dev);
extern void intel_fbdev_fini(struct drm_device *dev);
-@@ -383,9 +404,25 @@ extern int intel_overlay_attrs(struct drm_device *dev, void *data,
+@@ -383,9 +407,25 @@ extern int intel_overlay_attrs(struct drm_device *dev, void *data,
extern void intel_fb_output_poll_changed(struct drm_device *dev);
extern void intel_fb_restore_mode(struct drm_device *dev);
@@ -50430,7 +50170,7 @@
}
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
-index 74d312f..dc7c5f6 100644
+index 74d312f..b695ab4 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -187,6 +187,8 @@ centre_horizontally(struct drm_display_mode *mode,
@@ -50460,24 +50200,7 @@
switch (intel_lvds->fitting_mode) {
case DRM_MODE_SCALE_CENTER:
/*
-@@ -529,7 +535,6 @@ static int intel_lid_notify(struct notifier_block *nb, unsigned long val,
-
- mutex_lock(&dev->mode_config.mutex);
- drm_helper_resume_force_mode(dev);
-- i915_redisable_vga(dev);
- mutex_unlock(&dev->mode_config.mutex);
-
- return NOTIFY_OK;
-@@ -547,6 +552,8 @@ static void intel_lvds_destroy(struct drm_connector *connector)
- struct drm_device *dev = connector->dev;
- struct drm_i915_private *dev_priv = dev->dev_private;
-
-+ intel_panel_destroy_backlight(dev);
-+
- if (dev_priv->lid_notifier.notifier_call)
- acpi_lid_notifier_unregister(&dev_priv->lid_notifier);
- drm_sysfs_connector_remove(connector);
-@@ -893,6 +900,18 @@ static bool lvds_is_present_in_vbt(struct drm_device *dev,
+@@ -893,6 +899,18 @@ static bool lvds_is_present_in_vbt(struct drm_device *dev,
return false;
}
@@ -50496,7 +50219,7 @@
/**
* intel_lvds_init - setup LVDS connectors on this device
* @dev: drm device
-@@ -914,6 +933,9 @@ bool intel_lvds_init(struct drm_device *dev)
+@@ -914,6 +932,9 @@ bool intel_lvds_init(struct drm_device *dev)
int pipe;
u8 pin;
@@ -50648,19 +50371,6 @@
dev_priv->broadcast_rgb_property = prop;
}
-diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
-index 356a252..cffb007 100644
---- a/drivers/gpu/drm/i915/intel_opregion.c
-+++ b/drivers/gpu/drm/i915/intel_opregion.c
-@@ -161,7 +161,7 @@ static u32 asle_set_backlight(struct drm_device *dev, u32 bclp)
-
- max = intel_panel_get_max_backlight(dev);
- intel_panel_set_backlight(dev, bclp * max / 255);
-- asle->cblv = DIV_ROUND_UP(bclp * 100, 255) | ASLE_CBLV_VALID;
-+ asle->cblv = (bclp*0x64)/0xff | ASLE_CBLV_VALID;
-
- return 0;
- }
diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c
index 478b51f..5ba5e66 100644
--- a/drivers/gpu/drm/i915/intel_overlay.c
@@ -50719,18 +50429,10 @@
else
return -EINVAL;
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
-index 04cb34a..48177ec 100644
+index 04cb34a..0bae2bb 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
-@@ -28,7 +28,6 @@
- * Chris Wilson <chris at chris-wilson.co.uk>
- */
-
--#include <linux/moduleparam.h>
- #include "intel_drv.h"
-
- #define PCI_LBPC 0xf4 /* legacy/combination backlight modes */
-@@ -48,8 +47,6 @@ intel_fixed_panel_mode(struct drm_display_mode *fixed_mode,
+@@ -48,8 +48,6 @@ intel_fixed_panel_mode(struct drm_display_mode *fixed_mode,
adjusted_mode->vtotal = fixed_mode->vtotal;
adjusted_mode->clock = fixed_mode->clock;
@@ -50739,7 +50441,7 @@
}
/* adjusted_mode has been preset to be the panel's fixed mode */
-@@ -142,8 +139,8 @@ static u32 i915_read_blc_pwm_ctl(struct drm_i915_private *dev_priv)
+@@ -142,8 +140,8 @@ static u32 i915_read_blc_pwm_ctl(struct drm_i915_private *dev_priv)
dev_priv->saveBLC_PWM_CTL2 = val;
} else if (val == 0) {
I915_WRITE(BLC_PWM_PCH_CTL2,
@@ -50750,72 +50452,6 @@
}
} else {
val = I915_READ(BLC_PWM_CTL);
-@@ -192,27 +189,6 @@ u32 intel_panel_get_max_backlight(struct drm_device *dev)
- return max;
- }
-
--static int i915_panel_invert_brightness;
--MODULE_PARM_DESC(invert_brightness, "Invert backlight brightness "
-- "(-1 force normal, 0 machine defaults, 1 force inversion), please "
-- "report PCI device ID, subsystem vendor and subsystem device ID "
-- "to dri-devel at lists.freedesktop.org, if your machine needs it. "
-- "It will then be included in an upcoming module version.");
--module_param_named(invert_brightness, i915_panel_invert_brightness, int, 0600);
--static u32 intel_panel_compute_brightness(struct drm_device *dev, u32 val)
--{
-- struct drm_i915_private *dev_priv = dev->dev_private;
--
-- if (i915_panel_invert_brightness < 0)
-- return val;
--
-- if (i915_panel_invert_brightness > 0 ||
-- dev_priv->quirks & QUIRK_INVERT_BRIGHTNESS)
-- return intel_panel_get_max_backlight(dev) - val;
--
-- return val;
--}
--
- u32 intel_panel_get_backlight(struct drm_device *dev)
- {
- struct drm_i915_private *dev_priv = dev->dev_private;
-@@ -233,7 +209,6 @@ u32 intel_panel_get_backlight(struct drm_device *dev)
- }
- }
-
-- val = intel_panel_compute_brightness(dev, val);
- DRM_DEBUG_DRIVER("get backlight PWM = %d\n", val);
- return val;
- }
-@@ -251,7 +226,6 @@ static void intel_panel_actually_set_backlight(struct drm_device *dev, u32 level
- u32 tmp;
-
- DRM_DEBUG_DRIVER("set backlight PWM = %d\n", level);
-- level = intel_panel_compute_brightness(dev, level);
-
- if (HAS_PCH_SPLIT(dev))
- return intel_pch_panel_set_backlight(dev, level);
-@@ -361,9 +335,6 @@ int intel_panel_setup_backlight(struct drm_device *dev)
-
- intel_panel_init_backlight(dev);
-
-- if (WARN_ON(dev_priv->backlight))
-- return -ENODEV;
--
- if (dev_priv->int_lvds_connector)
- connector = dev_priv->int_lvds_connector;
- else if (dev_priv->int_edp_connector)
-@@ -391,10 +362,8 @@ int intel_panel_setup_backlight(struct drm_device *dev)
- void intel_panel_destroy_backlight(struct drm_device *dev)
- {
- struct drm_i915_private *dev_priv = dev->dev_private;
-- if (dev_priv->backlight) {
-+ if (dev_priv->backlight)
- backlight_device_unregister(dev_priv->backlight);
-- dev_priv->backlight = NULL;
-- }
- }
- #else
- int intel_panel_setup_backlight(struct drm_device *dev)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 8ee068e..99a9df8 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -51288,7 +50924,7 @@
{
if (ring->trace_irq_seqno == 0 && ring->irq_get(ring))
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
-index 00ec0dd..c0ba260 100644
+index 00ec0dd..8d55a33 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -148,7 +148,7 @@ struct intel_sdvo_connector {
@@ -51341,26 +50977,7 @@
connector->base.base.doublescan_allowed = 0;
connector->base.base.display_info.subpixel_order = SubPixelHorizontalRGB;
-@@ -2266,18 +2265,6 @@ intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo, uint16_t flags)
- return true;
- }
-
--static void intel_sdvo_output_cleanup(struct intel_sdvo *intel_sdvo)
--{
-- struct drm_device *dev = intel_sdvo->base.base.dev;
-- struct drm_connector *connector, *tmp;
--
-- list_for_each_entry_safe(connector, tmp,
-- &dev->mode_config.connector_list, head) {
-- if (intel_attached_encoder(connector) == &intel_sdvo->base)
-- intel_sdvo_destroy(connector);
-- }
--}
--
- static bool intel_sdvo_tv_create_property(struct intel_sdvo *intel_sdvo,
- struct intel_sdvo_connector *intel_sdvo_connector,
- int type)
-@@ -2332,10 +2319,8 @@ static bool intel_sdvo_tv_create_property(struct intel_sdvo *intel_sdvo,
+@@ -2332,10 +2331,8 @@ static bool intel_sdvo_tv_create_property(struct intel_sdvo *intel_sdvo,
intel_sdvo_connector->max_##name = data_value[0]; \
intel_sdvo_connector->cur_##name = response; \
intel_sdvo_connector->name = \
@@ -51372,7 +50989,7 @@
drm_connector_attach_property(connector, \
intel_sdvo_connector->name, \
intel_sdvo_connector->cur_##name); \
-@@ -2369,25 +2354,19 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
+@@ -2369,25 +2366,19 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
intel_sdvo_connector->left_margin = data_value[0] - response;
intel_sdvo_connector->right_margin = intel_sdvo_connector->left_margin;
intel_sdvo_connector->left =
@@ -51400,7 +51017,7 @@
drm_connector_attach_property(connector,
intel_sdvo_connector->right,
intel_sdvo_connector->right_margin);
-@@ -2411,25 +2390,21 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
+@@ -2411,25 +2402,21 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
intel_sdvo_connector->top_margin = data_value[0] - response;
intel_sdvo_connector->bottom_margin = intel_sdvo_connector->top_margin;
intel_sdvo_connector->top =
@@ -51430,7 +51047,7 @@
drm_connector_attach_property(connector,
intel_sdvo_connector->bottom,
intel_sdvo_connector->bottom_margin);
-@@ -2458,12 +2433,10 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
+@@ -2458,12 +2445,10 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
intel_sdvo_connector->max_dot_crawl = 1;
intel_sdvo_connector->cur_dot_crawl = response & 0x1;
intel_sdvo_connector->dot_crawl =
@@ -51444,41 +51061,6 @@
drm_connector_attach_property(connector,
intel_sdvo_connector->dot_crawl,
intel_sdvo_connector->cur_dot_crawl);
-@@ -2610,8 +2583,7 @@ bool intel_sdvo_init(struct drm_device *dev, int sdvo_reg)
- intel_sdvo->caps.output_flags) != true) {
- DRM_DEBUG_KMS("SDVO output failed to setup on SDVO%c\n",
- IS_SDVOB(sdvo_reg) ? 'B' : 'C');
-- /* Output_setup can leave behind connectors! */
-- goto err_output;
-+ goto err;
- }
-
- /* Only enable the hotplug irq if we need it, to work around noisy
-@@ -2624,12 +2596,12 @@ bool intel_sdvo_init(struct drm_device *dev, int sdvo_reg)
-
- /* Set the input timing to the screen. Assume always input 0. */
- if (!intel_sdvo_set_target_input(intel_sdvo))
-- goto err_output;
-+ goto err;
-
- if (!intel_sdvo_get_input_pixel_clock_range(intel_sdvo,
- &intel_sdvo->pixel_clock_min,
- &intel_sdvo->pixel_clock_max))
-- goto err_output;
-+ goto err;
-
- DRM_DEBUG_KMS("%s device VID/DID: %02X:%02X.%02X, "
- "clock range %dMHz - %dMHz, "
-@@ -2649,9 +2621,6 @@ bool intel_sdvo_init(struct drm_device *dev, int sdvo_reg)
- (SDVO_OUTPUT_TMDS1 | SDVO_OUTPUT_RGB1) ? 'Y' : 'N');
- return true;
-
--err_output:
-- intel_sdvo_output_cleanup(intel_sdvo);
--
- err:
- drm_encoder_cleanup(&intel_encoder->base);
- i2c_del_adapter(&intel_sdvo->ddc);
diff --git a/drivers/gpu/drm/i915/intel_sdvo_regs.h b/drivers/gpu/drm/i915/intel_sdvo_regs.h
index 4193c54..770bdd6 100644
--- a/drivers/gpu/drm/i915/intel_sdvo_regs.h
@@ -52163,7 +51745,7 @@
+}
+
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
-index 12041fa..c82b1d4 100644
+index b221f2b..c82b1d4 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -674,7 +674,7 @@ static const struct tv_mode tv_modes[] = {
@@ -52288,6 +51870,23 @@
if (intel_tv->base.base.crtc && intel_tv->base.base.crtc->enabled) {
type = intel_tv_detect_type(intel_tv, connector);
+@@ -1599,14 +1525,9 @@ static int tv_is_present_in_vbt(struct drm_device *dev)
+ /*
+ * If the device type is not TV, continue.
+ */
+- switch (p_child->device_type) {
+- case DEVICE_TYPE_INT_TV:
+- case DEVICE_TYPE_TV:
+- case DEVICE_TYPE_TV_SVIDEO_COMPOSITE:
+- break;
+- default:
++ if (p_child->device_type != DEVICE_TYPE_INT_TV &&
++ p_child->device_type != DEVICE_TYPE_TV)
+ continue;
+- }
+ /* Only when the addin_offset is non-zero, it is regarded
+ * as present.
+ */
diff --git a/drivers/gpu/drm/mga/mga_dma.c b/drivers/gpu/drm/mga/mga_dma.c
index 5ccb65de..507aa3d 100644
--- a/drivers/gpu/drm/mga/mga_dma.c
@@ -52393,7 +51992,7 @@
nv04_dac.o nv04_dfp.o nv04_tv.o nv17_tv.o nv17_tv_modes.o \
nv04_crtc.o nv04_display.o nv04_cursor.o \
diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
-index 3df56c7..284bd25 100644
+index 5ee8cca..4339694 100644
--- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
+++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
@@ -18,12 +18,6 @@
@@ -54216,7 +53815,7 @@
+
#endif
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
-index 2bb29c9..12ce044 100644
+index 2bb29c9..2c3d5c8 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -28,6 +28,7 @@
@@ -54344,15 +53943,6 @@
} else {
nouveau_vm_unmap(vma);
}
-@@ -940,7 +946,7 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
- if (dev_priv->gart_info.type == NOUVEAU_GART_AGP) {
- mem->bus.offset = mem->start << PAGE_SHIFT;
- mem->bus.base = dev_priv->gart_info.aper_base;
-- mem->bus.is_iomem = !dev->agp->cant_use_aperture;
-+ mem->bus.is_iomem = true;
- }
- #endif
- break;
@@ -1044,8 +1050,94 @@ nouveau_bo_fence(struct nouveau_bo *nvbo, struct nouveau_fence *fence)
nouveau_fence_unref(&old_fence);
}
@@ -72284,7 +71874,7 @@
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
-index cd98c06..ebbfbd2 100644
+index cd98c06..dc612ef 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -231,6 +231,22 @@ static void atombios_blank_crtc(struct drm_crtc *crtc, int state)
@@ -72425,21 +72015,16 @@
/* reset the pll flags */
pll->flags = 0;
-@@ -542,12 +571,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
+@@ -542,7 +571,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
if (rdev->family < CHIP_RV770)
pll->flags |= RADEON_PLL_PREFER_MINM_OVER_MAXP;
/* use frac fb div on APUs */
- if (ASIC_IS_DCE41(rdev))
-- pll->flags |= RADEON_PLL_USE_FRAC_FB_DIV;
-- /* use frac fb div on RS780/RS880 */
-- if ((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
-- pll->flags |= RADEON_PLL_USE_FRAC_FB_DIV;
-- if (ASIC_IS_DCE32(rdev) && mode->clock > 165000)
+ if (ASIC_IS_DCE41(rdev) || ASIC_IS_DCE61(rdev))
pll->flags |= RADEON_PLL_USE_FRAC_FB_DIV;
- } else {
- pll->flags |= RADEON_PLL_LEGACY;
-@@ -562,9 +586,10 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
+ /* use frac fb div on RS780/RS880 */
+ if ((rdev->family == CHIP_RS780) || (rdev->family == CHIP_RS880))
+@@ -562,9 +591,10 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
if (encoder->crtc == crtc) {
radeon_encoder = to_radeon_encoder(encoder);
connector = radeon_get_connector_for_encoder(encoder);
@@ -72452,7 +72037,7 @@
if ((radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT | ATOM_DEVICE_DFP_SUPPORT)) ||
(radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE)) {
if (connector) {
-@@ -660,7 +685,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
+@@ -660,7 +690,7 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
if (dig->coherent_mode)
args.v3.sInput.ucDispPllConfig |=
DISPPLL_CONFIG_COHERENT_MODE;
@@ -72461,7 +72046,7 @@
args.v3.sInput.ucDispPllConfig |=
DISPPLL_CONFIG_DUAL_LINK;
}
-@@ -710,11 +735,9 @@ union set_pixel_clock {
+@@ -710,11 +740,9 @@ union set_pixel_clock {
/* on DCE5, make sure the voltage is high enough to support the
* required disp clk.
*/
@@ -72474,7 +72059,7 @@
u8 frev, crev;
int index;
union set_pixel_clock args;
-@@ -742,7 +765,12 @@ static void atombios_crtc_set_dcpll(struct drm_crtc *crtc,
+@@ -742,7 +770,12 @@ static void atombios_crtc_set_dcpll(struct drm_crtc *crtc,
* SetPixelClock provides the dividers
*/
args.v6.ulDispEngClkFreq = cpu_to_le32(dispclk);
@@ -72488,7 +72073,7 @@
break;
default:
DRM_ERROR("Unknown table version %d %d\n", frev, crev);
-@@ -935,7 +963,9 @@ static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode
+@@ -935,7 +968,9 @@ static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode
struct radeon_connector_atom_dig *dig_connector =
radeon_connector->con_priv;
int dp_clock;
@@ -72499,7 +72084,7 @@
switch (encoder_mode) {
case ATOM_ENCODER_MODE_DP_MST:
-@@ -956,13 +986,10 @@ static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode
+@@ -956,13 +991,10 @@ static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode
ss_enabled =
radeon_atombios_get_ppll_ss_info(rdev, &ss,
ATOM_DP_SS_ID1);
@@ -72514,7 +72099,7 @@
}
break;
case ATOM_ENCODER_MODE_LVDS:
-@@ -1007,7 +1034,7 @@ static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode
+@@ -1007,7 +1039,7 @@ static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode
radeon_compute_pll_legacy(pll, adjusted_clock, &pll_clock, &fb_div, &frac_fb_div,
&ref_div, &post_div);
@@ -72523,7 +72108,7 @@
atombios_crtc_program_pll(crtc, radeon_crtc->crtc_id, radeon_crtc->pll_id,
encoder_mode, radeon_encoder->encoder_id, mode->clock,
-@@ -1030,7 +1057,7 @@ static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode
+@@ -1030,7 +1062,7 @@ static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode
ss.step = step_size;
}
@@ -72532,7 +72117,7 @@
}
}
-@@ -1047,6 +1074,7 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
+@@ -1047,6 +1079,7 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
struct radeon_bo *rbo;
uint64_t fb_location;
uint32_t fb_format, fb_pitch_pixels, tiling_flags;
@@ -72540,7 +72125,7 @@
u32 fb_swap = EVERGREEN_GRPH_ENDIAN_SWAP(EVERGREEN_GRPH_ENDIAN_NONE);
u32 tmp, viewport_w, viewport_h;
int r;
-@@ -1137,20 +1165,13 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
+@@ -1137,20 +1170,13 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
break;
}
@@ -72567,7 +72152,7 @@
} else if (tiling_flags & RADEON_TILING_MICRO)
fb_format |= EVERGREEN_GRPH_ARRAY_MODE(EVERGREEN_GRPH_ARRAY_1D_TILED_THIN1);
-@@ -1195,7 +1216,7 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
+@@ -1195,7 +1221,7 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
WREG32(EVERGREEN_GRPH_X_END + radeon_crtc->crtc_offset, target_fb->width);
WREG32(EVERGREEN_GRPH_Y_END + radeon_crtc->crtc_offset, target_fb->height);
@@ -72576,7 +72161,7 @@
WREG32(EVERGREEN_GRPH_PITCH + radeon_crtc->crtc_offset, fb_pitch_pixels);
WREG32(EVERGREEN_GRPH_ENABLE + radeon_crtc->crtc_offset, 1);
-@@ -1364,7 +1385,7 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc,
+@@ -1364,7 +1390,7 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc,
WREG32(AVIVO_D1GRPH_X_END + radeon_crtc->crtc_offset, target_fb->width);
WREG32(AVIVO_D1GRPH_Y_END + radeon_crtc->crtc_offset, target_fb->height);
@@ -72585,7 +72170,7 @@
WREG32(AVIVO_D1GRPH_PITCH + radeon_crtc->crtc_offset, fb_pitch_pixels);
WREG32(AVIVO_D1GRPH_ENABLE + radeon_crtc->crtc_offset, 1);
-@@ -1466,7 +1487,36 @@ static int radeon_atom_pick_pll(struct drm_crtc *crtc)
+@@ -1466,7 +1492,36 @@ static int radeon_atom_pick_pll(struct drm_crtc *crtc)
struct drm_crtc *test_crtc;
uint32_t pll_in_use = 0;
@@ -72623,7 +72208,7 @@
list_for_each_entry(test_encoder, &dev->mode_config.encoder_list, head) {
if (test_encoder->crtc && (test_encoder->crtc == crtc)) {
/* in DP mode, the DP ref clock can come from PPLL, DCPLL, or ext clock,
-@@ -1481,6 +1531,8 @@ static int radeon_atom_pick_pll(struct drm_crtc *crtc)
+@@ -1481,6 +1536,8 @@ static int radeon_atom_pick_pll(struct drm_crtc *crtc)
if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(test_encoder))) {
if (rdev->clock.dp_extclk)
return ATOM_PPLL_INVALID;
@@ -72632,7 +72217,7 @@
else if (ASIC_IS_DCE5(rdev))
return ATOM_DCPLL;
}
-@@ -1507,6 +1559,26 @@ static int radeon_atom_pick_pll(struct drm_crtc *crtc)
+@@ -1507,6 +1564,26 @@ static int radeon_atom_pick_pll(struct drm_crtc *crtc)
}
@@ -72659,7 +72244,7 @@
int atombios_crtc_mode_set(struct drm_crtc *crtc,
struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode,
-@@ -1528,19 +1600,6 @@ int atombios_crtc_mode_set(struct drm_crtc *crtc,
+@@ -1528,19 +1605,6 @@ int atombios_crtc_mode_set(struct drm_crtc *crtc,
}
}
@@ -72679,7 +72264,7 @@
atombios_crtc_set_pll(crtc, adjusted_mode);
if (ASIC_IS_DCE4(rdev))
-@@ -1574,18 +1633,28 @@ static bool atombios_crtc_mode_fixup(struct drm_crtc *crtc,
+@@ -1574,18 +1638,28 @@ static bool atombios_crtc_mode_fixup(struct drm_crtc *crtc,
static void atombios_crtc_prepare(struct drm_crtc *crtc)
{
struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
@@ -72708,7 +72293,7 @@
}
static void atombios_crtc_disable(struct drm_crtc *crtc)
-@@ -1597,6 +1666,8 @@ static void atombios_crtc_disable(struct drm_crtc *crtc)
+@@ -1597,6 +1671,8 @@ static void atombios_crtc_disable(struct drm_crtc *crtc)
int i;
atombios_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);
@@ -72717,7 +72302,7 @@
for (i = 0; i < rdev->num_crtc; i++) {
if (rdev->mode_info.crtcs[i] &&
-@@ -1617,6 +1688,12 @@ static void atombios_crtc_disable(struct drm_crtc *crtc)
+@@ -1617,6 +1693,12 @@ static void atombios_crtc_disable(struct drm_crtc *crtc)
atombios_crtc_program_pll(crtc, radeon_crtc->crtc_id, radeon_crtc->pll_id,
0, 0, ATOM_DISABLE, 0, 0, 0, 0, 0, false, &ss);
break;
@@ -73458,7 +73043,7 @@
#include <linux/kernel.h>
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
-index 5efba47..ad72295 100644
+index 5efba47..df62c39 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -50,6 +50,39 @@ static const u32 crtc_offsets[6] =
@@ -73619,15 +73204,13 @@
/* unblackout the MC */
tmp = RREG32(MC_SHARED_BLACKOUT_CNTL);
tmp &= ~BLACKOUT_MODE_MASK;
-@@ -1195,10 +1292,20 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s
- WREG32(BIF_FB_EN, FB_READ_EN | FB_WRITE_EN);
+@@ -1196,9 +1293,19 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s
for (i = 0; i < rdev->num_crtc; i++) {
-- if (save->crtc_enabled[i]) {
+ if (save->crtc_enabled[i]) {
- tmp = RREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i]);
- tmp &= ~EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE;
- WREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i], tmp);
-+ if (save->crtc_enabled) {
+ if (ASIC_IS_DCE6(rdev)) {
+ tmp = RREG32(EVERGREEN_CRTC_BLANK_CONTROL + crtc_offsets[i]);
+ tmp |= EVERGREEN_CRTC_BLANK_DATA_EN;
@@ -73838,24 +73421,6 @@
return r;
}
return 0;
-@@ -1759,7 +1874,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
- case CHIP_SUMO:
- rdev->config.evergreen.num_ses = 1;
- rdev->config.evergreen.max_pipes = 4;
-- rdev->config.evergreen.max_tile_pipes = 4;
-+ rdev->config.evergreen.max_tile_pipes = 2;
- if (rdev->pdev->device == 0x9648)
- rdev->config.evergreen.max_simds = 3;
- else if ((rdev->pdev->device == 0x9647) ||
-@@ -1848,7 +1963,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
- break;
- case CHIP_CAICOS:
- rdev->config.evergreen.num_ses = 1;
-- rdev->config.evergreen.max_pipes = 2;
-+ rdev->config.evergreen.max_pipes = 4;
- rdev->config.evergreen.max_tile_pipes = 2;
- rdev->config.evergreen.max_simds = 2;
- rdev->config.evergreen.max_backends = 1 * rdev->config.evergreen.num_ses;
@@ -1897,7 +2012,9 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
@@ -74043,7 +73608,7 @@
break;
case 233: /* GUI IDLE */
DRM_DEBUG("IH: GUI idle\n");
-@@ -3048,13 +3213,12 @@ restart_ih:
+@@ -3048,6 +3213,7 @@ restart_ih:
static int evergreen_startup(struct radeon_device *rdev)
{
@@ -74051,22 +73616,7 @@
int r;
/* enable pcie gen2 link */
- evergreen_pcie_gen2_enable(rdev);
-
-- evergreen_mc_program(rdev);
--
- if (ASIC_IS_DCE5(rdev)) {
- if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw || !rdev->mc_fw) {
- r = ni_init_microcode(rdev);
-@@ -3082,6 +3246,7 @@ static int evergreen_startup(struct radeon_device *rdev)
- if (r)
- return r;
-
-+ evergreen_mc_program(rdev);
- if (rdev->flags & RADEON_IS_AGP) {
- evergreen_agp_enable(rdev);
- } else {
-@@ -3094,7 +3259,7 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3094,7 +3260,7 @@ static int evergreen_startup(struct radeon_device *rdev)
r = evergreen_blit_init(rdev);
if (r) {
r600_blit_fini(rdev);
@@ -74075,7 +73625,7 @@
dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r);
}
-@@ -3103,6 +3268,12 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3103,6 +3269,12 @@ static int evergreen_startup(struct radeon_device *rdev)
if (r)
return r;
@@ -74088,7 +73638,7 @@
/* Enable IRQ */
if (!rdev->irq.installed) {
r = radeon_irq_kms_init(rdev);
-@@ -3118,7 +3289,9 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3118,7 +3290,9 @@ static int evergreen_startup(struct radeon_device *rdev)
}
evergreen_irq_set(rdev);
@@ -74099,7 +73649,7 @@
if (r)
return r;
r = evergreen_cp_load_microcode(rdev);
-@@ -3128,6 +3301,23 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3128,6 +3302,23 @@ static int evergreen_startup(struct radeon_device *rdev)
if (r)
return r;
@@ -74123,7 +73673,7 @@
return 0;
}
-@@ -3147,15 +3337,11 @@ int evergreen_resume(struct radeon_device *rdev)
+@@ -3147,15 +3338,11 @@ int evergreen_resume(struct radeon_device *rdev)
/* post card */
atom_asic_init(rdev->mode_info.atom_context);
@@ -74141,7 +73691,7 @@
return r;
}
-@@ -3165,13 +3351,17 @@ int evergreen_resume(struct radeon_device *rdev)
+@@ -3165,13 +3352,17 @@ int evergreen_resume(struct radeon_device *rdev)
int evergreen_suspend(struct radeon_device *rdev)
{
@@ -74161,7 +73711,7 @@
return 0;
}
-@@ -3242,8 +3432,8 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3242,8 +3433,8 @@ int evergreen_init(struct radeon_device *rdev)
if (r)
return r;
@@ -74172,7 +73722,7 @@
rdev->ih.ring_obj = NULL;
r600_ih_ring_init(rdev, 64 * 1024);
-@@ -3252,29 +3442,24 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3252,29 +3443,24 @@ int evergreen_init(struct radeon_device *rdev)
if (r)
return r;
@@ -74209,7 +73759,7 @@
/* Don't start up if the MC ucode is missing on BTC parts.
* The default clocks and voltages before the MC ucode
-@@ -3292,15 +3477,17 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3292,15 +3478,17 @@ int evergreen_init(struct radeon_device *rdev)
void evergreen_fini(struct radeon_device *rdev)
{
@@ -77266,7 +76816,7 @@
#define CAYMAN_DB_DEPTH_INFO 0x2803C
#define CAYMAN_PA_SC_AA_CONFIG 0x28BE0
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
-index 77e6fb1..f481da3 100644
+index 77e6fb1..461262e 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -42,6 +42,8 @@ extern void evergreen_irq_suspend(struct radeon_device *rdev);
@@ -77902,7 +77452,7 @@
dev_info(rdev->dev, " GRBM_STATUS=0x%08X\n",
RREG32(GRBM_STATUS));
dev_info(rdev->dev, " GRBM_STATUS_SE0=0x%08X\n",
-@@ -1348,30 +1546,41 @@ int cayman_asic_reset(struct radeon_device *rdev)
+@@ -1348,6 +1546,7 @@ int cayman_asic_reset(struct radeon_device *rdev)
static int cayman_startup(struct radeon_device *rdev)
{
@@ -77910,9 +77460,12 @@
int r;
/* enable pcie gen2 link */
- evergreen_pcie_gen2_enable(rdev);
+@@ -1355,18 +1554,29 @@ static int cayman_startup(struct radeon_device *rdev)
+
+ evergreen_mc_program(rdev);
-- evergreen_mc_program(rdev);
+- if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw || !rdev->mc_fw) {
+- r = ni_init_microcode(rdev);
+ if (rdev->flags & RADEON_IS_IGP) {
+ if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
+ r = ni_init_microcode(rdev);
@@ -77929,9 +77482,7 @@
+ return r;
+ }
+ }
-
-- if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw || !rdev->mc_fw) {
-- r = ni_init_microcode(rdev);
++
+ r = ni_mc_load_microcode(rdev);
if (r) {
- DRM_ERROR("Failed to load firmware!\n");
@@ -77947,13 +77498,7 @@
r = r600_vram_scratch_init(rdev);
if (r)
- return r;
-
-+ evergreen_mc_program(rdev);
- r = cayman_pcie_gart_enable(rdev);
- if (r)
- return r;
-@@ -1380,15 +1589,42 @@ static int cayman_startup(struct radeon_device *rdev)
+@@ -1380,15 +1590,42 @@ static int cayman_startup(struct radeon_device *rdev)
r = evergreen_blit_init(rdev);
if (r) {
r600_blit_fini(rdev);
@@ -77997,7 +77542,7 @@
/* Enable IRQ */
if (!rdev->irq.installed) {
r = radeon_irq_kms_init(rdev);
-@@ -1404,7 +1640,9 @@ static int cayman_startup(struct radeon_device *rdev)
+@@ -1404,7 +1641,9 @@ static int cayman_startup(struct radeon_device *rdev)
}
evergreen_irq_set(rdev);
@@ -78008,7 +77553,7 @@
if (r)
return r;
r = cayman_cp_load_microcode(rdev);
-@@ -1414,6 +1652,21 @@ static int cayman_startup(struct radeon_device *rdev)
+@@ -1414,6 +1653,21 @@ static int cayman_startup(struct radeon_device *rdev)
if (r)
return r;
@@ -78030,7 +77575,7 @@
return 0;
}
-@@ -1428,32 +1681,27 @@ int cayman_resume(struct radeon_device *rdev)
+@@ -1428,32 +1682,27 @@ int cayman_resume(struct radeon_device *rdev)
/* post card */
atom_asic_init(rdev->mode_info.atom_context);
@@ -78069,7 +77614,7 @@
return 0;
}
-@@ -1465,6 +1713,7 @@ int cayman_suspend(struct radeon_device *rdev)
+@@ -1465,6 +1714,7 @@ int cayman_suspend(struct radeon_device *rdev)
*/
int cayman_init(struct radeon_device *rdev)
{
@@ -78077,7 +77622,7 @@
int r;
/* This don't do much */
-@@ -1513,8 +1762,8 @@ int cayman_init(struct radeon_device *rdev)
+@@ -1513,8 +1763,8 @@ int cayman_init(struct radeon_device *rdev)
if (r)
return r;
@@ -78088,7 +77633,7 @@
rdev->ih.ring_obj = NULL;
r600_ih_ring_init(rdev, 64 * 1024);
-@@ -1523,35 +1772,40 @@ int cayman_init(struct radeon_device *rdev)
+@@ -1523,35 +1773,40 @@ int cayman_init(struct radeon_device *rdev)
if (r)
return r;
@@ -78142,7 +77687,7 @@
DRM_ERROR("radeon: MC ucode required for NI+.\n");
return -EINVAL;
}
-@@ -1564,12 +1818,16 @@ void cayman_fini(struct radeon_device *rdev)
+@@ -1564,12 +1819,16 @@ void cayman_fini(struct radeon_device *rdev)
r600_blit_fini(rdev);
cayman_cp_fini(rdev);
r600_irq_fini(rdev);
@@ -78160,7 +77705,7 @@
radeon_fence_driver_fini(rdev);
radeon_bo_fini(rdev);
radeon_atombios_fini(rdev);
-@@ -1577,3 +1835,89 @@ void cayman_fini(struct radeon_device *rdev)
+@@ -1577,3 +1836,89 @@ void cayman_fini(struct radeon_device *rdev)
rdev->bios = NULL;
}
@@ -79713,7 +79258,7 @@
if (r) {
/* Somethings want wront with the accel init stop accel */
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
-index f7e3cc0..49b6229 100644
+index f7e3cc0..1555cd6 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -49,6 +49,7 @@
@@ -80052,7 +79597,7 @@
int r600_copy_blit(struct radeon_device *rdev,
uint64_t src_offset,
uint64_t dst_offset,
-@@ -2412,13 +2425,12 @@ void r600_clear_surface_reg(struct radeon_device *rdev, int reg)
+@@ -2412,6 +2425,7 @@ void r600_clear_surface_reg(struct radeon_device *rdev, int reg)
int r600_startup(struct radeon_device *rdev)
{
@@ -80060,22 +79605,7 @@
int r;
/* enable pcie gen2 link */
- r600_pcie_gen2_enable(rdev);
-
-- r600_mc_program(rdev);
--
- if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
- r = r600_init_microcode(rdev);
- if (r) {
-@@ -2431,6 +2443,7 @@ int r600_startup(struct radeon_device *rdev)
- if (r)
- return r;
-
-+ r600_mc_program(rdev);
- if (rdev->flags & RADEON_IS_AGP) {
- r600_agp_enable(rdev);
- } else {
-@@ -2442,7 +2455,7 @@ int r600_startup(struct radeon_device *rdev)
+@@ -2442,7 +2456,7 @@ int r600_startup(struct radeon_device *rdev)
r = r600_blit_init(rdev);
if (r) {
r600_blit_fini(rdev);
@@ -80084,7 +79614,7 @@
dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r);
}
-@@ -2451,6 +2464,12 @@ int r600_startup(struct radeon_device *rdev)
+@@ -2451,6 +2465,12 @@ int r600_startup(struct radeon_device *rdev)
if (r)
return r;
@@ -80097,7 +79627,7 @@
/* Enable IRQ */
if (!rdev->irq.installed) {
r = radeon_irq_kms_init(rdev);
-@@ -2466,7 +2485,10 @@ int r600_startup(struct radeon_device *rdev)
+@@ -2466,7 +2486,10 @@ int r600_startup(struct radeon_device *rdev)
}
r600_irq_set(rdev);
@@ -80109,7 +79639,7 @@
if (r)
return r;
r = r600_cp_load_microcode(rdev);
-@@ -2476,6 +2498,17 @@ int r600_startup(struct radeon_device *rdev)
+@@ -2476,6 +2499,17 @@ int r600_startup(struct radeon_device *rdev)
if (r)
return r;
@@ -80127,7 +79657,7 @@
return 0;
}
-@@ -2504,15 +2537,11 @@ int r600_resume(struct radeon_device *rdev)
+@@ -2504,15 +2538,11 @@ int r600_resume(struct radeon_device *rdev)
/* post card */
atom_asic_init(rdev->mode_info.atom_context);
@@ -80145,7 +79675,7 @@
return r;
}
-@@ -2528,13 +2557,14 @@ int r600_resume(struct radeon_device *rdev)
+@@ -2528,13 +2558,14 @@ int r600_resume(struct radeon_device *rdev)
int r600_suspend(struct radeon_device *rdev)
{
r600_audio_fini(rdev);
@@ -80162,7 +79692,7 @@
return 0;
}
-@@ -2601,8 +2631,8 @@ int r600_init(struct radeon_device *rdev)
+@@ -2601,8 +2632,8 @@ int r600_init(struct radeon_device *rdev)
if (r)
return r;
@@ -80173,7 +79703,7 @@
rdev->ih.ring_obj = NULL;
r600_ih_ring_init(rdev, 64 * 1024);
-@@ -2611,30 +2641,24 @@ int r600_init(struct radeon_device *rdev)
+@@ -2611,30 +2642,24 @@ int r600_init(struct radeon_device *rdev)
if (r)
return r;
@@ -80211,7 +79741,7 @@
r = r600_audio_init(rdev);
if (r)
-@@ -2649,12 +2673,13 @@ void r600_fini(struct radeon_device *rdev)
+@@ -2649,12 +2674,13 @@ void r600_fini(struct radeon_device *rdev)
r600_cp_fini(rdev);
r600_irq_fini(rdev);
radeon_wb_fini(rdev);
@@ -80226,7 +79756,7 @@
radeon_fence_driver_fini(rdev);
radeon_bo_fini(rdev);
radeon_atombios_fini(rdev);
-@@ -2668,24 +2693,27 @@ void r600_fini(struct radeon_device *rdev)
+@@ -2668,24 +2694,27 @@ void r600_fini(struct radeon_device *rdev)
*/
void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
{
@@ -80259,7 +79789,7 @@
r = radeon_scratch_get(rdev, &scratch);
if (r) {
-@@ -2693,7 +2721,7 @@ int r600_ib_test(struct radeon_device *rdev)
+@@ -2693,7 +2722,7 @@ int r600_ib_test(struct radeon_device *rdev)
return r;
}
WREG32(scratch, 0xCAFEDEAD);
@@ -80268,7 +79798,7 @@
if (r) {
DRM_ERROR("radeon: failed to get ib (%d).\n", r);
return r;
-@@ -2701,20 +2729,7 @@ int r600_ib_test(struct radeon_device *rdev)
+@@ -2701,20 +2730,7 @@ int r600_ib_test(struct radeon_device *rdev)
ib->ptr[0] = PACKET3(PACKET3_SET_CONFIG_REG, 1);
ib->ptr[1] = ((scratch - PACKET3_SET_CONFIG_REG_OFFSET) >> 2);
ib->ptr[2] = 0xDEADBEEF;
@@ -80290,7 +79820,7 @@
r = radeon_ib_schedule(rdev, ib);
if (r) {
radeon_scratch_free(rdev, scratch);
-@@ -2734,7 +2749,7 @@ int r600_ib_test(struct radeon_device *rdev)
+@@ -2734,7 +2750,7 @@ int r600_ib_test(struct radeon_device *rdev)
DRM_UDELAY(1);
}
if (i < rdev->usec_timeout) {
@@ -80299,7 +79829,7 @@
} else {
DRM_ERROR("radeon: ib test failed (scratch(0x%04X)=0x%08X)\n",
scratch, tmp);
-@@ -2768,7 +2783,7 @@ void r600_ih_ring_init(struct radeon_device *rdev, unsigned ring_size)
+@@ -2768,7 +2784,7 @@ void r600_ih_ring_init(struct radeon_device *rdev, unsigned ring_size)
rdev->ih.rptr = 0;
}
@@ -80308,7 +79838,7 @@
{
int r;
-@@ -2804,7 +2819,7 @@ static int r600_ih_ring_alloc(struct radeon_device *rdev)
+@@ -2804,7 +2820,7 @@ static int r600_ih_ring_alloc(struct radeon_device *rdev)
return 0;
}
@@ -80317,7 +79847,7 @@
{
int r;
if (rdev->ih.ring_obj) {
-@@ -2828,7 +2843,7 @@ void r600_rlc_stop(struct radeon_device *rdev)
+@@ -2828,7 +2844,7 @@ void r600_rlc_stop(struct radeon_device *rdev)
/* r7xx asics need to soft reset RLC before halting */
WREG32(SRBM_SOFT_RESET, SOFT_RESET_RLC);
RREG32(SRBM_SOFT_RESET);
@@ -80326,7 +79856,7 @@
WREG32(SRBM_SOFT_RESET, 0);
RREG32(SRBM_SOFT_RESET);
}
-@@ -2851,10 +2866,17 @@ static int r600_rlc_init(struct radeon_device *rdev)
+@@ -2851,10 +2867,17 @@ static int r600_rlc_init(struct radeon_device *rdev)
r600_rlc_stop(rdev);
@@ -80347,7 +79877,7 @@
if (rdev->family <= CHIP_CAICOS) {
WREG32(RLC_HB_WPTR_LSB_ADDR, 0);
WREG32(RLC_HB_WPTR_MSB_ADDR, 0);
-@@ -2863,7 +2885,12 @@ static int r600_rlc_init(struct radeon_device *rdev)
+@@ -2863,7 +2886,12 @@ static int r600_rlc_init(struct radeon_device *rdev)
WREG32(RLC_UCODE_CNTL, 0);
fw_data = (const __be32 *)rdev->rlc_fw->data;
@@ -80361,7 +79891,7 @@
for (i = 0; i < CAYMAN_RLC_UCODE_SIZE; i++) {
WREG32(RLC_UCODE_ADDR, i);
WREG32(RLC_UCODE_DATA, be32_to_cpup(fw_data++));
-@@ -3081,7 +3108,7 @@ int r600_irq_set(struct radeon_device *rdev)
+@@ -3081,7 +3109,7 @@ int r600_irq_set(struct radeon_device *rdev)
hpd3 = RREG32(DC_HOT_PLUG_DETECT3_INT_CONTROL) & ~DC_HPDx_INT_EN;
}
@@ -80370,7 +79900,7 @@
DRM_DEBUG("r600_irq_set: sw int\n");
cp_int_cntl |= RB_INT_ENABLE;
cp_int_cntl |= TIME_STAMP_INT_ENABLE;
-@@ -3465,11 +3492,11 @@ restart_ih:
+@@ -3465,11 +3493,11 @@ restart_ih:
case 177: /* CP_INT in IB1 */
case 178: /* CP_INT in IB2 */
DRM_DEBUG("IH: CP int: 0x%08x\n", src_data);
@@ -80384,7 +79914,7 @@
break;
case 233: /* GUI IDLE */
DRM_DEBUG("IH: GUI idle\n");
-@@ -3502,30 +3529,6 @@ restart_ih:
+@@ -3502,30 +3530,6 @@ restart_ih:
*/
#if defined(CONFIG_DEBUG_FS)
@@ -80415,7 +79945,7 @@
static int r600_debugfs_mc_info(struct seq_file *m, void *data)
{
struct drm_info_node *node = (struct drm_info_node *) m->private;
-@@ -3539,7 +3542,6 @@ static int r600_debugfs_mc_info(struct seq_file *m, void *data)
+@@ -3539,7 +3543,6 @@ static int r600_debugfs_mc_info(struct seq_file *m, void *data)
static struct drm_info_list r600_mc_info_list[] = {
{"r600_mc_info", r600_debugfs_mc_info, 0, NULL},
@@ -82277,7 +81807,7 @@
break;
default:
diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
-index 57a825d..0b59206 100644
+index 57a825d..61ffe3c 100644
--- a/drivers/gpu/drm/radeon/r600_hdmi.c
+++ b/drivers/gpu/drm/radeon/r600_hdmi.c
@@ -320,7 +320,7 @@ void r600_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mode *mod
@@ -82345,7 +81875,7 @@
- } else if (ASIC_IS_DCE2(rdev) && !ASIC_IS_DCE3(rdev)) {
+ } else if (ASIC_IS_DCE3(rdev)) {
+ /* TODO */
-+ } else if (rdev->family >= CHIP_R600) {
++ } else if (ASIC_IS_DCE2(rdev)) {
switch (radeon_encoder->encoder_id) {
case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1:
- WREG32_P(AVIVO_TMDSA_CNTL, 0x4, ~0x4);
@@ -82391,8 +81921,7 @@
+ WREG32_P(radeon_encoder->hdmi_config_offset + 0xc, 0, ~0x1);
+ } else if (ASIC_IS_DCE32(rdev)) {
WREG32_P(radeon_encoder->hdmi_config_offset + 0x4, 0, ~0x1);
-- } else if (ASIC_IS_DCE2(rdev) && !ASIC_IS_DCE3(rdev)) {
-+ } else if (rdev->family >= CHIP_R600 && !ASIC_IS_DCE3(rdev)) {
+ } else if (ASIC_IS_DCE2(rdev) && !ASIC_IS_DCE3(rdev)) {
switch (radeon_encoder->encoder_id) {
case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1:
- WREG32_P(AVIVO_TMDSA_CNTL, 0, ~0x4);
@@ -86128,6 +85657,24 @@
if (rdev->family >= CHIP_R600)
bios_2_scratch = RREG32(R600_BIOS_2_SCRATCH);
else
+diff --git a/drivers/gpu/drm/radeon/radeon_atpx_handler.c b/drivers/gpu/drm/radeon/radeon_atpx_handler.c
+index 2a2cf0b..428bce6 100644
+--- a/drivers/gpu/drm/radeon/radeon_atpx_handler.c
++++ b/drivers/gpu/drm/radeon/radeon_atpx_handler.c
+@@ -202,6 +202,13 @@ static bool radeon_atpx_detect(void)
+ has_atpx |= (radeon_atpx_pci_probe_handle(pdev) == true);
+ }
+
++ /* some newer PX laptops mark the dGPU as a non-VGA display device */
++ while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_OTHER << 8, pdev)) != NULL) {
++ vga_count++;
++
++ has_atpx |= (radeon_atpx_pci_probe_handle(pdev) == true);
++ }
++
+ if (has_atpx && vga_count == 2) {
+ acpi_get_name(radeon_atpx_priv.atpx_handle, ACPI_FULL_PATHNAME, &buffer);
+ printk(KERN_INFO "VGA switcheroo: detected switching method %s handle\n",
diff --git a/drivers/gpu/drm/radeon/radeon_benchmark.c b/drivers/gpu/drm/radeon/radeon_benchmark.c
index 441de38..89a0eec 100644
--- a/drivers/gpu/drm/radeon/radeon_benchmark.c
@@ -86226,6 +85773,31 @@
radeon_benchmark_move(rdev, common_modes[i],
RADEON_GEM_DOMAIN_VRAM,
RADEON_GEM_DOMAIN_VRAM);
+diff --git a/drivers/gpu/drm/radeon/radeon_bios.c b/drivers/gpu/drm/radeon/radeon_bios.c
+index ccf324b..d306cc8 100644
+--- a/drivers/gpu/drm/radeon/radeon_bios.c
++++ b/drivers/gpu/drm/radeon/radeon_bios.c
+@@ -173,20 +173,6 @@ static bool radeon_atrm_get_bios(struct radeon_device *rdev)
+ }
+ }
+
+- if (!found) {
+- while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_OTHER << 8, pdev)) != NULL) {
+- dhandle = DEVICE_ACPI_HANDLE(&pdev->dev);
+- if (!dhandle)
+- continue;
+-
+- status = acpi_get_handle(dhandle, "ATRM", &atrm_handle);
+- if (!ACPI_FAILURE(status)) {
+- found = true;
+- break;
+- }
+- }
+- }
+-
+ if (!found)
+ return false;
+
diff --git a/drivers/gpu/drm/radeon/radeon_blit_common.h b/drivers/gpu/drm/radeon/radeon_blit_common.h
new file mode 100644
index 0000000..4ecbe72
@@ -86394,165 +85966,10 @@
tmp = RREG32_PLL(RADEON_VCLK_ECP_CNTL);
tmp &= ~(RADEON_PIXCLK_ALWAYS_ONb |
diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c
-index 8115557..07d0bcd 100644
+index 8115557..cf5dd63 100644
--- a/drivers/gpu/drm/radeon/radeon_combios.c
+++ b/drivers/gpu/drm/radeon/radeon_combios.c
-@@ -898,14 +898,10 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct
- }
-
- /* quirks */
-- /* Radeon 7000 (RV100) */
-- if (((dev->pdev->device == 0x5159) &&
-- (dev->pdev->subsystem_vendor == 0x174B) &&
-- (dev->pdev->subsystem_device == 0x7c28)) ||
- /* Radeon 9100 (R200) */
-- ((dev->pdev->device == 0x514D) &&
-+ if ((dev->pdev->device == 0x514D) &&
- (dev->pdev->subsystem_vendor == 0x174B) &&
-- (dev->pdev->subsystem_device == 0x7149))) {
-+ (dev->pdev->subsystem_device == 0x7149)) {
- /* vbios value is bad, use the default */
- found = 0;
- }
-@@ -1488,9 +1484,6 @@ bool radeon_get_legacy_connector_info_from_table(struct drm_device *dev)
- of_machine_is_compatible("PowerBook6,7")) {
- /* ibook */
- rdev->mode_info.connector_table = CT_IBOOK;
-- } else if (of_machine_is_compatible("PowerMac3,5")) {
-- /* PowerMac G4 Silver radeon 7500 */
-- rdev->mode_info.connector_table = CT_MAC_G4_SILVER;
- } else if (of_machine_is_compatible("PowerMac4,4")) {
- /* emac */
- rdev->mode_info.connector_table = CT_EMAC;
-@@ -1516,11 +1509,6 @@ bool radeon_get_legacy_connector_info_from_table(struct drm_device *dev)
- (rdev->pdev->subsystem_device == 0x4150)) {
- /* Mac G5 tower 9600 */
- rdev->mode_info.connector_table = CT_MAC_G5_9600;
-- } else if ((rdev->pdev->device == 0x4c66) &&
-- (rdev->pdev->subsystem_vendor == 0x1002) &&
-- (rdev->pdev->subsystem_device == 0x4c66)) {
-- /* SAM440ep RV250 embedded board */
-- rdev->mode_info.connector_table = CT_SAM440EP;
- } else
- #endif /* CONFIG_PPC_PMAC */
- #ifdef CONFIG_PPC64
-@@ -2094,115 +2082,6 @@ bool radeon_get_legacy_connector_info_from_table(struct drm_device *dev)
- CONNECTOR_OBJECT_ID_SVIDEO,
- &hpd);
- break;
-- case CT_SAM440EP:
-- DRM_INFO("Connector Table: %d (SAM440ep embedded board)\n",
-- rdev->mode_info.connector_table);
-- /* LVDS */
-- ddc_i2c = combios_setup_i2c_bus(rdev, DDC_NONE_DETECTED, 0, 0);
-- hpd.hpd = RADEON_HPD_NONE;
-- radeon_add_legacy_encoder(dev,
-- radeon_get_encoder_enum(dev,
-- ATOM_DEVICE_LCD1_SUPPORT,
-- 0),
-- ATOM_DEVICE_LCD1_SUPPORT);
-- radeon_add_legacy_connector(dev, 0, ATOM_DEVICE_LCD1_SUPPORT,
-- DRM_MODE_CONNECTOR_LVDS, &ddc_i2c,
-- CONNECTOR_OBJECT_ID_LVDS,
-- &hpd);
-- /* DVI-I - secondary dac, int tmds */
-- ddc_i2c = combios_setup_i2c_bus(rdev, DDC_DVI, 0, 0);
-- hpd.hpd = RADEON_HPD_1; /* ??? */
-- radeon_add_legacy_encoder(dev,
-- radeon_get_encoder_enum(dev,
-- ATOM_DEVICE_DFP1_SUPPORT,
-- 0),
-- ATOM_DEVICE_DFP1_SUPPORT);
-- radeon_add_legacy_encoder(dev,
-- radeon_get_encoder_enum(dev,
-- ATOM_DEVICE_CRT2_SUPPORT,
-- 2),
-- ATOM_DEVICE_CRT2_SUPPORT);
-- radeon_add_legacy_connector(dev, 1,
-- ATOM_DEVICE_DFP1_SUPPORT |
-- ATOM_DEVICE_CRT2_SUPPORT,
-- DRM_MODE_CONNECTOR_DVII, &ddc_i2c,
-- CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I,
-- &hpd);
-- /* VGA - primary dac */
-- ddc_i2c = combios_setup_i2c_bus(rdev, DDC_VGA, 0, 0);
-- hpd.hpd = RADEON_HPD_NONE;
-- radeon_add_legacy_encoder(dev,
-- radeon_get_encoder_enum(dev,
-- ATOM_DEVICE_CRT1_SUPPORT,
-- 1),
-- ATOM_DEVICE_CRT1_SUPPORT);
-- radeon_add_legacy_connector(dev, 2,
-- ATOM_DEVICE_CRT1_SUPPORT,
-- DRM_MODE_CONNECTOR_VGA, &ddc_i2c,
-- CONNECTOR_OBJECT_ID_VGA,
-- &hpd);
-- /* TV - TV DAC */
-- ddc_i2c.valid = false;
-- hpd.hpd = RADEON_HPD_NONE;
-- radeon_add_legacy_encoder(dev,
-- radeon_get_encoder_enum(dev,
-- ATOM_DEVICE_TV1_SUPPORT,
-- 2),
-- ATOM_DEVICE_TV1_SUPPORT);
-- radeon_add_legacy_connector(dev, 3, ATOM_DEVICE_TV1_SUPPORT,
-- DRM_MODE_CONNECTOR_SVIDEO,
-- &ddc_i2c,
-- CONNECTOR_OBJECT_ID_SVIDEO,
-- &hpd);
-- break;
-- case CT_MAC_G4_SILVER:
-- DRM_INFO("Connector Table: %d (mac g4 silver)\n",
-- rdev->mode_info.connector_table);
-- /* DVI-I - tv dac, int tmds */
-- ddc_i2c = combios_setup_i2c_bus(rdev, DDC_DVI, 0, 0);
-- hpd.hpd = RADEON_HPD_1; /* ??? */
-- radeon_add_legacy_encoder(dev,
-- radeon_get_encoder_enum(dev,
-- ATOM_DEVICE_DFP1_SUPPORT,
-- 0),
-- ATOM_DEVICE_DFP1_SUPPORT);
-- radeon_add_legacy_encoder(dev,
-- radeon_get_encoder_enum(dev,
-- ATOM_DEVICE_CRT2_SUPPORT,
-- 2),
-- ATOM_DEVICE_CRT2_SUPPORT);
-- radeon_add_legacy_connector(dev, 0,
-- ATOM_DEVICE_DFP1_SUPPORT |
-- ATOM_DEVICE_CRT2_SUPPORT,
-- DRM_MODE_CONNECTOR_DVII, &ddc_i2c,
-- CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I,
-- &hpd);
-- /* VGA - primary dac */
-- ddc_i2c = combios_setup_i2c_bus(rdev, DDC_VGA, 0, 0);
-- hpd.hpd = RADEON_HPD_NONE;
-- radeon_add_legacy_encoder(dev,
-- radeon_get_encoder_enum(dev,
-- ATOM_DEVICE_CRT1_SUPPORT,
-- 1),
-- ATOM_DEVICE_CRT1_SUPPORT);
-- radeon_add_legacy_connector(dev, 1, ATOM_DEVICE_CRT1_SUPPORT,
-- DRM_MODE_CONNECTOR_VGA, &ddc_i2c,
-- CONNECTOR_OBJECT_ID_VGA,
-- &hpd);
-- /* TV - TV DAC */
-- ddc_i2c.valid = false;
-- hpd.hpd = RADEON_HPD_NONE;
-- radeon_add_legacy_encoder(dev,
-- radeon_get_encoder_enum(dev,
-- ATOM_DEVICE_TV1_SUPPORT,
-- 2),
-- ATOM_DEVICE_TV1_SUPPORT);
-- radeon_add_legacy_connector(dev, 2, ATOM_DEVICE_TV1_SUPPORT,
-- DRM_MODE_CONNECTOR_SVIDEO,
-- &ddc_i2c,
-- CONNECTOR_OBJECT_ID_SVIDEO,
-- &hpd);
-- break;
- default:
- DRM_INFO("Connector table: %d (invalid)\n",
- rdev->mode_info.connector_table);
-@@ -2922,7 +2801,7 @@ bool radeon_combios_external_tmds_setup(struct drm_encoder *encoder)
+@@ -2922,7 +2922,7 @@ bool radeon_combios_external_tmds_setup(struct drm_encoder *encoder)
case 4:
val = RBIOS16(index);
index += 2;
@@ -86561,7 +85978,7 @@
break;
case 6:
slave_addr = id & 0xff;
-@@ -3121,7 +3000,7 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
+@@ -3121,7 +3121,7 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
udelay(150);
break;
case 2:
@@ -86570,7 +85987,7 @@
break;
case 3:
while (tmp--) {
-@@ -3152,13 +3031,13 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
+@@ -3152,13 +3152,13 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
/*mclk_cntl |= 0x00001111;*//* ??? */
WREG32_PLL(RADEON_MCLK_CNTL,
mclk_cntl);
@@ -86587,7 +86004,7 @@
break;
default:
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
-index b101843..ab63bcd 100644
+index b101843..1334dbd 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -846,6 +846,27 @@ static int radeon_dvi_get_modes(struct drm_connector *connector)
@@ -86686,82 +86103,6 @@
if (radeon_connector->edid) {
kfree(radeon_connector->edid);
radeon_connector->edid = NULL;
-@@ -1387,24 +1423,6 @@ struct drm_connector_funcs radeon_dp_connector_funcs = {
- .force = radeon_dvi_force,
- };
-
--static const struct drm_connector_funcs radeon_edp_connector_funcs = {
-- .dpms = drm_helper_connector_dpms,
-- .detect = radeon_dp_detect,
-- .fill_modes = drm_helper_probe_single_connector_modes,
-- .set_property = radeon_lvds_set_property,
-- .destroy = radeon_dp_connector_destroy,
-- .force = radeon_dvi_force,
--};
--
--static const struct drm_connector_funcs radeon_lvds_bridge_connector_funcs = {
-- .dpms = drm_helper_connector_dpms,
-- .detect = radeon_dp_detect,
-- .fill_modes = drm_helper_probe_single_connector_modes,
-- .set_property = radeon_lvds_set_property,
-- .destroy = radeon_dp_connector_destroy,
-- .force = radeon_dvi_force,
--};
--
- void
- radeon_add_atom_connector(struct drm_device *dev,
- uint32_t connector_id,
-@@ -1496,6 +1514,8 @@ radeon_add_atom_connector(struct drm_device *dev,
- goto failed;
- radeon_dig_connector->igp_lane_info = igp_lane_info;
- radeon_connector->con_priv = radeon_dig_connector;
-+ drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type);
-+ drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs);
- if (i2c_bus->valid) {
- /* add DP i2c bus */
- if (connector_type == DRM_MODE_CONNECTOR_eDP)
-@@ -1512,10 +1532,6 @@ radeon_add_atom_connector(struct drm_device *dev,
- case DRM_MODE_CONNECTOR_VGA:
- case DRM_MODE_CONNECTOR_DVIA:
- default:
-- drm_connector_init(dev, &radeon_connector->base,
-- &radeon_dp_connector_funcs, connector_type);
-- drm_connector_helper_add(&radeon_connector->base,
-- &radeon_dp_connector_helper_funcs);
- connector->interlace_allowed = true;
- connector->doublescan_allowed = true;
- radeon_connector->dac_load_detect = true;
-@@ -1528,10 +1544,6 @@ radeon_add_atom_connector(struct drm_device *dev,
- case DRM_MODE_CONNECTOR_HDMIA:
- case DRM_MODE_CONNECTOR_HDMIB:
- case DRM_MODE_CONNECTOR_DisplayPort:
-- drm_connector_init(dev, &radeon_connector->base,
-- &radeon_dp_connector_funcs, connector_type);
-- drm_connector_helper_add(&radeon_connector->base,
-- &radeon_dp_connector_helper_funcs);
- drm_connector_attach_property(&radeon_connector->base,
- rdev->mode_info.underscan_property,
- UNDERSCAN_OFF);
-@@ -1556,10 +1568,6 @@ radeon_add_atom_connector(struct drm_device *dev,
- break;
- case DRM_MODE_CONNECTOR_LVDS:
- case DRM_MODE_CONNECTOR_eDP:
-- drm_connector_init(dev, &radeon_connector->base,
-- &radeon_lvds_bridge_connector_funcs, connector_type);
-- drm_connector_helper_add(&radeon_connector->base,
-- &radeon_dp_connector_helper_funcs);
- drm_connector_attach_property(&radeon_connector->base,
- dev->mode_config.scaling_mode_property,
- DRM_MODE_SCALE_FULLSCREEN);
-@@ -1723,7 +1731,7 @@ radeon_add_atom_connector(struct drm_device *dev,
- goto failed;
- radeon_dig_connector->igp_lane_info = igp_lane_info;
- radeon_connector->con_priv = radeon_dig_connector;
-- drm_connector_init(dev, &radeon_connector->base, &radeon_edp_connector_funcs, connector_type);
-+ drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type);
- drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs);
- if (i2c_bus->valid) {
- /* add DP i2c bus */
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
index 72ae826..0ebb7d4 100644
--- a/drivers/gpu/drm/radeon/radeon_cp.c
@@ -87486,7 +86827,7 @@
}
#endif
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
-index 63e7143..00d9cac 100644
+index 3291ab8..60404f4 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -303,8 +303,17 @@ void radeon_crtc_handle_flip(struct radeon_device *rdev, int crtc_id)
@@ -87546,7 +86887,7 @@
};
static const char *connector_names[15] = {
-@@ -1083,29 +1095,36 @@ static const struct drm_framebuffer_funcs radeon_fb_funcs = {
+@@ -1084,29 +1096,36 @@ static const struct drm_framebuffer_funcs radeon_fb_funcs = {
.create_handle = radeon_user_framebuffer_create_handle,
};
@@ -87589,7 +86930,7 @@
return ERR_PTR(-ENOENT);
}
-@@ -1115,7 +1134,12 @@ radeon_user_framebuffer_create(struct drm_device *dev,
+@@ -1116,7 +1135,12 @@ radeon_user_framebuffer_create(struct drm_device *dev,
return ERR_PTR(-ENOMEM);
}
@@ -87603,7 +86944,7 @@
return &radeon_fb->base;
}
-@@ -1131,11 +1155,6 @@ static const struct drm_mode_config_funcs radeon_mode_funcs = {
+@@ -1132,11 +1156,6 @@ static const struct drm_mode_config_funcs radeon_mode_funcs = {
.output_poll_changed = radeon_output_poll_changed
};
@@ -87615,7 +86956,7 @@
static struct drm_prop_enum_list radeon_tmds_pll_enum_list[] =
{ { 0, "driver" },
{ 1, "bios" },
-@@ -1160,86 +1179,53 @@ static struct drm_prop_enum_list radeon_underscan_enum_list[] =
+@@ -1161,86 +1180,53 @@ static struct drm_prop_enum_list radeon_underscan_enum_list[] =
static int radeon_modeset_create_props(struct radeon_device *rdev)
{
@@ -87718,7 +87059,7 @@
return 0;
}
-@@ -1285,6 +1271,9 @@ int radeon_modeset_init(struct radeon_device *rdev)
+@@ -1286,6 +1272,9 @@ int radeon_modeset_init(struct radeon_device *rdev)
rdev->ddev->mode_config.max_height = 4096;
}
@@ -87728,7 +87069,7 @@
rdev->ddev->mode_config.fb_base = rdev->mc.aper_base;
ret = radeon_modeset_create_props(rdev);
-@@ -1312,9 +1301,11 @@ int radeon_modeset_init(struct radeon_device *rdev)
+@@ -1313,9 +1302,11 @@ int radeon_modeset_init(struct radeon_device *rdev)
return ret;
}
@@ -89491,23 +88832,10 @@
}
spin_unlock_irqrestore(&rdev->irq.sw_lock, irqflags);
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
-index 4bb9e27..3c2628b 100644
+index 4bb9e27..9b46238 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
-@@ -39,12 +39,8 @@ int radeon_driver_unload_kms(struct drm_device *dev)
-
- if (rdev == NULL)
- return 0;
-- if (rdev->rmmio == NULL)
-- goto done_free;
- radeon_modeset_fini(rdev);
- radeon_device_fini(rdev);
--
--done_free:
- kfree(rdev);
- dev->dev_private = NULL;
- return 0;
-@@ -61,6 +57,8 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
+@@ -61,6 +61,8 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
}
dev->dev_private = (void *)rdev;
@@ -89516,7 +88844,7 @@
/* update BUS flag */
if (drm_pci_device_is_agp(dev)) {
flags |= RADEON_IS_AGP;
-@@ -173,7 +171,9 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
+@@ -173,7 +175,9 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
value = rdev->accel_working;
break;
case RADEON_INFO_TILING_CONFIG:
@@ -89527,7 +88855,7 @@
value = rdev->config.cayman.tile_config;
else if (rdev->family >= CHIP_CEDAR)
value = rdev->config.evergreen.tile_config;
-@@ -212,7 +212,10 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
+@@ -212,7 +216,10 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
value = rdev->clock.spll.reference_freq * 10;
break;
case RADEON_INFO_NUM_BACKENDS:
@@ -89539,7 +88867,7 @@
value = rdev->config.cayman.max_backends_per_se *
rdev->config.cayman.max_shader_engines;
else if (rdev->family >= CHIP_CEDAR)
-@@ -226,7 +229,9 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
+@@ -226,7 +233,9 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
}
break;
case RADEON_INFO_NUM_TILE_PIPES:
@@ -89550,7 +88878,7 @@
value = rdev->config.cayman.max_tile_pipes;
else if (rdev->family >= CHIP_CEDAR)
value = rdev->config.evergreen.max_tile_pipes;
-@@ -242,7 +247,9 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
+@@ -242,7 +251,9 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
value = 1;
break;
case RADEON_INFO_BACKEND_MAP:
@@ -89561,7 +88889,7 @@
value = rdev->config.cayman.backend_map;
else if (rdev->family >= CHIP_CEDAR)
value = rdev->config.evergreen.backend_map;
-@@ -254,6 +261,33 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
+@@ -254,6 +265,33 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
return -EINVAL;
}
break;
@@ -89595,7 +88923,7 @@
default:
DRM_DEBUG_KMS("Invalid request %d\n", info->request);
return -EINVAL;
-@@ -274,7 +308,6 @@ int radeon_driver_firstopen_kms(struct drm_device *dev)
+@@ -274,7 +312,6 @@ int radeon_driver_firstopen_kms(struct drm_device *dev)
return 0;
}
@@ -89603,7 +88931,7 @@
void radeon_driver_lastclose_kms(struct drm_device *dev)
{
vga_switcheroo_process_delayed_switch();
-@@ -282,12 +315,45 @@ void radeon_driver_lastclose_kms(struct drm_device *dev)
+@@ -282,12 +319,45 @@ void radeon_driver_lastclose_kms(struct drm_device *dev)
int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
{
@@ -89649,7 +88977,7 @@
}
void radeon_driver_preclose_kms(struct drm_device *dev,
-@@ -455,5 +521,6 @@ struct drm_ioctl_desc radeon_ioctls_kms[] = {
+@@ -455,5 +525,6 @@ struct drm_ioctl_desc radeon_ioctls_kms[] = {
DRM_IOCTL_DEF_DRV(RADEON_GEM_SET_TILING, radeon_gem_set_tiling_ioctl, DRM_AUTH|DRM_UNLOCKED),
DRM_IOCTL_DEF_DRV(RADEON_GEM_GET_TILING, radeon_gem_get_tiling_ioctl, DRM_AUTH|DRM_UNLOCKED),
DRM_IOCTL_DEF_DRV(RADEON_GEM_BUSY, radeon_gem_busy_ioctl, DRM_AUTH|DRM_UNLOCKED),
@@ -89762,19 +89090,10 @@
if (ASIC_IS_R300(rdev)) {
if (RREG32(RADEON_DAC_CNTL2) & RADEON_DAC2_CMP_OUT_B)
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
-index bb42df4..dabfefd 100644
+index bb42df4..65da706 100644
--- a/drivers/gpu/drm/radeon/radeon_mode.h
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
-@@ -210,8 +210,6 @@ enum radeon_connector_table {
- CT_RN50_POWER,
- CT_MAC_X800,
- CT_MAC_G5_9600,
-- CT_SAM440EP,
-- CT_MAC_G4_SILVER
- };
-
- enum radeon_dvo_chip {
-@@ -268,6 +266,7 @@ struct radeon_crtc {
+@@ -268,6 +268,7 @@ struct radeon_crtc {
u16 lut_r[256], lut_g[256], lut_b[256];
bool enabled;
bool can_tile;
@@ -89782,7 +89101,7 @@
uint32_t crtc_offset;
struct drm_gem_object *cursor_bo;
uint64_t cursor_addr;
-@@ -469,6 +468,10 @@ radeon_atombios_get_tv_info(struct radeon_device *rdev);
+@@ -469,6 +470,10 @@ radeon_atombios_get_tv_info(struct radeon_device *rdev);
extern struct drm_connector *
radeon_get_connector_for_encoder(struct drm_encoder *encoder);
@@ -89793,7 +89112,7 @@
extern u16 radeon_encoder_get_dp_bridge_encoder_id(struct drm_encoder *encoder);
extern u16 radeon_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *connector);
-@@ -489,6 +492,7 @@ extern int radeon_dp_get_panel_mode(struct drm_encoder *encoder,
+@@ -489,6 +494,7 @@ extern int radeon_dp_get_panel_mode(struct drm_encoder *encoder,
struct drm_connector *connector);
extern void atombios_dig_encoder_setup(struct drm_encoder *encoder, int action, int panel_mode);
extern void radeon_atom_encoder_init(struct radeon_device *rdev);
@@ -89801,7 +89120,7 @@
extern void atombios_dig_transmitter_setup(struct drm_encoder *encoder,
int action, uint8_t lane_num,
uint8_t lane_set);
-@@ -646,9 +650,9 @@ extern void radeon_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
+@@ -646,9 +652,9 @@ extern void radeon_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
u16 blue, int regno);
extern void radeon_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green,
u16 *blue, int regno);
@@ -89814,7 +89133,7 @@
int radeonfb_remove(struct drm_device *dev, struct drm_framebuffer *fb);
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
-index f3ae607..df6a4db 100644
+index 3e35bbe..df6a4db 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -46,6 +46,20 @@ static void radeon_bo_clear_surface_reg(struct radeon_bo *bo);
@@ -89963,7 +89282,53 @@
}
int radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
-@@ -572,3 +650,16 @@ int radeon_bo_reserve(struct radeon_bo *bo, bool no_wait)
+@@ -513,30 +591,22 @@ int radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
+ rbo = container_of(bo, struct radeon_bo, tbo);
+ radeon_bo_check_tiling(rbo, 0, 0);
+ rdev = rbo->rdev;
+- if (bo->mem.mem_type != TTM_PL_VRAM)
+- return 0;
+-
+- size = bo->mem.num_pages << PAGE_SHIFT;
+- offset = bo->mem.start << PAGE_SHIFT;
+- if ((offset + size) <= rdev->mc.visible_vram_size)
+- return 0;
+-
+- /* hurrah the memory is not visible ! */
+- radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_VRAM);
+- rbo->placement.lpfn = rdev->mc.visible_vram_size >> PAGE_SHIFT;
+- r = ttm_bo_validate(bo, &rbo->placement, false, true, false);
+- if (unlikely(r == -ENOMEM)) {
+- radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_GTT);
+- return ttm_bo_validate(bo, &rbo->placement, false, true, false);
+- } else if (unlikely(r != 0)) {
+- return r;
++ if (bo->mem.mem_type == TTM_PL_VRAM) {
++ size = bo->mem.num_pages << PAGE_SHIFT;
++ offset = bo->mem.start << PAGE_SHIFT;
++ if ((offset + size) > rdev->mc.visible_vram_size) {
++ /* hurrah the memory is not visible ! */
++ radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_VRAM);
++ rbo->placement.lpfn = rdev->mc.visible_vram_size >> PAGE_SHIFT;
++ r = ttm_bo_validate(bo, &rbo->placement, false, true, false);
++ if (unlikely(r != 0))
++ return r;
++ offset = bo->mem.start << PAGE_SHIFT;
++ /* this should not happen */
++ if ((offset + size) > rdev->mc.visible_vram_size)
++ return -EINVAL;
++ }
+ }
+-
+- offset = bo->mem.start << PAGE_SHIFT;
+- /* this should never happen */
+- if ((offset + size) > rdev->mc.visible_vram_size)
+- return -EINVAL;
+-
+ return 0;
+ }
+
+@@ -580,3 +650,16 @@ int radeon_bo_reserve(struct radeon_bo *bo, bool no_wait)
}
return 0;
}
@@ -92753,7 +92118,7 @@
if (r) {
/* Somethings want wront with the accel init stop accel */
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
-index 3e72074..4a3937f 100644
+index 3e72074..1ec1255 100644
--- a/drivers/gpu/drm/radeon/rv770.c
+++ b/drivers/gpu/drm/radeon/rv770.c
@@ -359,7 +359,7 @@ static int rv770_cp_load_microcode(struct radeon_device *rdev)
@@ -92783,7 +92148,7 @@
}
mc->vram_end = mc->vram_start + mc->mc_vram_size - 1;
dev_info(rdev->dev, "VRAM: %lluM 0x%08llX - 0x%08llX (%lluM used)\n",
-@@ -1052,13 +1052,12 @@ int rv770_mc_init(struct radeon_device *rdev)
+@@ -1052,6 +1052,7 @@ int rv770_mc_init(struct radeon_device *rdev)
static int rv770_startup(struct radeon_device *rdev)
{
@@ -92791,22 +92156,7 @@
int r;
/* enable pcie gen2 link */
- rv770_pcie_gen2_enable(rdev);
-
-- rv770_mc_program(rdev);
--
- if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
- r = r600_init_microcode(rdev);
- if (r) {
-@@ -1071,6 +1070,7 @@ static int rv770_startup(struct radeon_device *rdev)
- if (r)
- return r;
-
-+ rv770_mc_program(rdev);
- if (rdev->flags & RADEON_IS_AGP) {
- rv770_agp_enable(rdev);
- } else {
-@@ -1083,7 +1083,7 @@ static int rv770_startup(struct radeon_device *rdev)
+@@ -1083,7 +1084,7 @@ static int rv770_startup(struct radeon_device *rdev)
r = r600_blit_init(rdev);
if (r) {
r600_blit_fini(rdev);
@@ -92815,7 +92165,7 @@
dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r);
}
-@@ -1092,6 +1092,12 @@ static int rv770_startup(struct radeon_device *rdev)
+@@ -1092,6 +1093,12 @@ static int rv770_startup(struct radeon_device *rdev)
if (r)
return r;
@@ -92828,7 +92178,7 @@
/* Enable IRQ */
if (!rdev->irq.installed) {
r = radeon_irq_kms_init(rdev);
-@@ -1107,7 +1113,9 @@ static int rv770_startup(struct radeon_device *rdev)
+@@ -1107,7 +1114,9 @@ static int rv770_startup(struct radeon_device *rdev)
}
r600_irq_set(rdev);
@@ -92839,7 +92189,7 @@
if (r)
return r;
r = rv770_cp_load_microcode(rdev);
-@@ -1117,6 +1125,17 @@ static int rv770_startup(struct radeon_device *rdev)
+@@ -1117,6 +1126,17 @@ static int rv770_startup(struct radeon_device *rdev)
if (r)
return r;
@@ -92857,7 +92207,7 @@
return 0;
}
-@@ -1131,15 +1150,11 @@ int rv770_resume(struct radeon_device *rdev)
+@@ -1131,15 +1151,11 @@ int rv770_resume(struct radeon_device *rdev)
/* post card */
atom_asic_init(rdev->mode_info.atom_context);
@@ -92875,7 +92225,7 @@
return r;
}
-@@ -1156,13 +1171,14 @@ int rv770_resume(struct radeon_device *rdev)
+@@ -1156,13 +1172,14 @@ int rv770_resume(struct radeon_device *rdev)
int rv770_suspend(struct radeon_device *rdev)
{
r600_audio_fini(rdev);
@@ -92892,7 +92242,7 @@
return 0;
}
-@@ -1227,8 +1243,8 @@ int rv770_init(struct radeon_device *rdev)
+@@ -1227,8 +1244,8 @@ int rv770_init(struct radeon_device *rdev)
if (r)
return r;
@@ -92903,7 +92253,7 @@
rdev->ih.ring_obj = NULL;
r600_ih_ring_init(rdev, 64 * 1024);
-@@ -1237,30 +1253,24 @@ int rv770_init(struct radeon_device *rdev)
+@@ -1237,30 +1254,24 @@ int rv770_init(struct radeon_device *rdev)
if (r)
return r;
@@ -92941,7 +92291,7 @@
r = r600_audio_init(rdev);
if (r) {
-@@ -1277,11 +1287,12 @@ void rv770_fini(struct radeon_device *rdev)
+@@ -1277,11 +1288,12 @@ void rv770_fini(struct radeon_device *rdev)
r700_cp_fini(rdev);
r600_irq_fini(rdev);
radeon_wb_fini(rdev);
@@ -92957,10 +92307,10 @@
radeon_bo_fini(rdev);
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
new file mode 100644
-index 0000000..c22b5e7
+index 0000000..e710073
--- /dev/null
+++ b/drivers/gpu/drm/radeon/si.c
-@@ -0,0 +1,4153 @@
+@@ -0,0 +1,4154 @@
+/*
+ * Copyright 2011 Advanced Micro Devices, Inc.
+ *
@@ -96797,6 +96147,8 @@
+ struct radeon_ring *ring;
+ int r;
+
++ si_mc_program(rdev);
++
+ if (!rdev->me_fw || !rdev->pfp_fw || !rdev->ce_fw ||
+ !rdev->rlc_fw || !rdev->mc_fw) {
+ r = si_init_microcode(rdev);
@@ -96816,7 +96168,6 @@
+ if (r)
+ return r;
+
-+ si_mc_program(rdev);
+ r = si_pcie_gart_enable(rdev);
+ if (r)
+ return r;
@@ -99098,7 +98449,7 @@
#endif
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
-index 22a89cd..ceb70dd 100644
+index 22a89cd..a67e61be 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -28,6 +28,8 @@
@@ -99312,76 +98663,7 @@
mem_type,
placement->busy_placement[i],
&cur_flags))
-@@ -1101,32 +1091,24 @@ out_unlock:
- return ret;
- }
-
--static bool ttm_bo_mem_compat(struct ttm_placement *placement,
-- struct ttm_mem_reg *mem,
-- uint32_t *new_flags)
-+static int ttm_bo_mem_compat(struct ttm_placement *placement,
-+ struct ttm_mem_reg *mem)
- {
- int i;
-
- if (mem->mm_node && placement->lpfn != 0 &&
- (mem->start < placement->fpfn ||
- mem->start + mem->num_pages > placement->lpfn))
-- return false;
-+ return -1;
-
- for (i = 0; i < placement->num_placement; i++) {
-- *new_flags = placement->placement[i];
-- if ((*new_flags & mem->placement & TTM_PL_MASK_CACHING) &&
-- (*new_flags & mem->placement & TTM_PL_MASK_MEM))
-- return true;
-- }
--
-- for (i = 0; i < placement->num_busy_placement; i++) {
-- *new_flags = placement->busy_placement[i];
-- if ((*new_flags & mem->placement & TTM_PL_MASK_CACHING) &&
-- (*new_flags & mem->placement & TTM_PL_MASK_MEM))
-- return true;
-+ if ((placement->placement[i] & mem->placement &
-+ TTM_PL_MASK_CACHING) &&
-+ (placement->placement[i] & mem->placement &
-+ TTM_PL_MASK_MEM))
-+ return i;
- }
--
-- return false;
-+ return -1;
- }
-
- int ttm_bo_validate(struct ttm_buffer_object *bo,
-@@ -1135,7 +1117,6 @@ int ttm_bo_validate(struct ttm_buffer_object *bo,
- bool no_wait_gpu)
- {
- int ret;
-- uint32_t new_flags;
-
- BUG_ON(!atomic_read(&bo->reserved));
- /* Check that range is valid */
-@@ -1146,7 +1127,8 @@ int ttm_bo_validate(struct ttm_buffer_object *bo,
- /*
- * Check whether we need to move buffer.
- */
-- if (!ttm_bo_mem_compat(placement, &bo->mem, &new_flags)) {
-+ ret = ttm_bo_mem_compat(placement, &bo->mem);
-+ if (ret < 0) {
- ret = ttm_bo_move_buffer(bo, placement, interruptible, no_wait_reserve, no_wait_gpu);
- if (ret)
- return ret;
-@@ -1155,7 +1137,7 @@ int ttm_bo_validate(struct ttm_buffer_object *bo,
- * Use the access and other non-mapping-related flag bits from
- * the compatible memory placement flags to the active flags
- */
-- ttm_flag_masked(&bo->mem.placement, new_flags,
-+ ttm_flag_masked(&bo->mem.placement, placement->placement[ret],
- ~TTM_PL_MASK_MEMTYPE);
- }
- /*
-@@ -1193,15 +1175,27 @@ int ttm_bo_init(struct ttm_bo_device *bdev,
+@@ -1193,15 +1183,27 @@ int ttm_bo_init(struct ttm_bo_device *bdev,
{
int ret = 0;
unsigned long num_pages;
@@ -99410,7 +98692,7 @@
return -EINVAL;
}
bo->destroy = destroy;
-@@ -1263,14 +1257,34 @@ out_err:
+@@ -1263,14 +1265,34 @@ out_err:
}
EXPORT_SYMBOL(ttm_bo_init);
@@ -99450,7 +98732,7 @@
int ttm_bo_create(struct ttm_bo_device *bdev,
unsigned long size,
-@@ -1283,22 +1297,14 @@ int ttm_bo_create(struct ttm_bo_device *bdev,
+@@ -1283,22 +1305,14 @@ int ttm_bo_create(struct ttm_bo_device *bdev,
struct ttm_buffer_object **p_bo)
{
struct ttm_buffer_object *bo;
@@ -99476,7 +98758,7 @@
ret = ttm_bo_init(bdev, bo, size, type, placement, page_alignment,
buffer_start, interruptible,
persistent_swap_storage, acc_size, NULL);
-@@ -1328,8 +1334,7 @@ static int ttm_bo_force_list_clean(struct ttm_bo_device *bdev,
+@@ -1328,8 +1342,7 @@ static int ttm_bo_force_list_clean(struct ttm_bo_device *bdev,
if (allow_errors) {
return ret;
} else {
@@ -99486,7 +98768,7 @@
}
}
spin_lock(&glob->lru_lock);
-@@ -1344,14 +1349,14 @@ int ttm_bo_clean_mm(struct ttm_bo_device *bdev, unsigned mem_type)
+@@ -1344,14 +1357,14 @@ int ttm_bo_clean_mm(struct ttm_bo_device *bdev, unsigned mem_type)
int ret = -EINVAL;
if (mem_type >= TTM_NUM_MEM_TYPES) {
@@ -99504,7 +98786,7 @@
return ret;
}
-@@ -1374,16 +1379,12 @@ int ttm_bo_evict_mm(struct ttm_bo_device *bdev, unsigned mem_type)
+@@ -1374,16 +1387,12 @@ int ttm_bo_evict_mm(struct ttm_bo_device *bdev, unsigned mem_type)
struct ttm_mem_type_manager *man = &bdev->man[mem_type];
if (mem_type == 0 || mem_type >= TTM_NUM_MEM_TYPES) {
@@ -99523,7 +98805,7 @@
return 0;
}
-@@ -1468,18 +1469,10 @@ int ttm_bo_global_init(struct drm_global_reference *ref)
+@@ -1468,18 +1477,10 @@ int ttm_bo_global_init(struct drm_global_reference *ref)
ttm_mem_init_shrink(&glob->shrink, ttm_bo_swapout);
ret = ttm_mem_register_shrink(glob->mem_glob, &glob->shrink);
if (unlikely(ret != 0)) {
@@ -99543,7 +98825,7 @@
atomic_set(&glob->bo_count, 0);
ret = kobject_init_and_add(
-@@ -1509,9 +1502,8 @@ int ttm_bo_device_release(struct ttm_bo_device *bdev)
+@@ -1509,9 +1510,8 @@ int ttm_bo_device_release(struct ttm_bo_device *bdev)
man->use_type = false;
if ((i != TTM_PL_SYSTEM) && ttm_bo_clean_mm(bdev, i)) {
ret = -EBUSY;
@@ -104965,10 +104247,47 @@
extern void
vmw_execbuf_release_pinned_bo(struct vmw_private *dev_priv,
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
-index 40932fb..4acced4 100644
+index 84ba033..4acced4 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
-@@ -1109,10 +1109,11 @@ int vmw_execbuf_process(struct drm_file *file_priv,
+@@ -558,36 +558,14 @@ static int vmw_cmd_dma(struct vmw_private *dev_priv,
+ } *cmd;
+ int ret;
+ struct vmw_resource *res;
+- SVGA3dCmdSurfaceDMASuffix *suffix;
+- uint32_t bo_size;
+
+ cmd = container_of(header, struct vmw_dma_cmd, header);
+- suffix = (SVGA3dCmdSurfaceDMASuffix *)((unsigned long) &cmd->dma +
+- header->size - sizeof(*suffix));
+-
+- /* Make sure device and verifier stays in sync. */
+- if (unlikely(suffix->suffixSize != sizeof(*suffix))) {
+- DRM_ERROR("Invalid DMA suffix size.\n");
+- return -EINVAL;
+- }
+-
+ ret = vmw_translate_guest_ptr(dev_priv, sw_context,
+ &cmd->dma.guest.ptr,
+ &vmw_bo);
+ if (unlikely(ret != 0))
+ return ret;
+
+- /* Make sure DMA doesn't cross BO boundaries. */
+- bo_size = vmw_bo->base.num_pages * PAGE_SIZE;
+- if (unlikely(cmd->dma.guest.ptr.offset > bo_size)) {
+- DRM_ERROR("Invalid DMA offset.\n");
+- return -EINVAL;
+- }
+-
+- bo_size -= cmd->dma.guest.ptr.offset;
+- if (unlikely(suffix->maximumOffset > bo_size))
+- suffix->maximumOffset = bo_size;
+-
+ bo = &vmw_bo->base;
+ ret = vmw_user_surface_lookup_handle(dev_priv, sw_context->tfile,
+ cmd->dma.host.sid, &srf);
+@@ -1131,10 +1109,11 @@ int vmw_execbuf_process(struct drm_file *file_priv,
void *kernel_commands,
uint32_t command_size,
uint64_t throttle_us,
@@ -104982,7 +104301,7 @@
uint32_t handle;
void *cmd;
int ret;
-@@ -1208,8 +1209,13 @@ int vmw_execbuf_process(struct drm_file *file_priv,
+@@ -1230,8 +1209,13 @@ int vmw_execbuf_process(struct drm_file *file_priv,
vmw_execbuf_copy_fence_user(dev_priv, vmw_fpriv(file_priv), ret,
user_fence_rep, fence, handle);
@@ -104997,7 +104316,7 @@
mutex_unlock(&dev_priv->cmdbuf_mutex);
return 0;
-@@ -1362,7 +1368,8 @@ int vmw_execbuf_ioctl(struct drm_device *dev, void *data,
+@@ -1384,7 +1368,8 @@ int vmw_execbuf_ioctl(struct drm_device *dev, void *data,
ret = vmw_execbuf_process(file_priv, dev_priv,
(void __user *)(unsigned long)arg->commands,
NULL, arg->command_size, arg->throttle_us,
@@ -105008,10 +104327,10 @@
if (unlikely(ret != 0))
goto out_unlock;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
-index 34e51a1..3c447bf 100644
+index 907c26f..6651cb3 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
-@@ -414,10 +414,6 @@ int vmw_fb_init(struct vmw_private *vmw_priv)
+@@ -417,10 +417,6 @@ int vmw_fb_init(struct vmw_private *vmw_priv)
unsigned fb_bpp, fb_depth, fb_offset, fb_pitch, fb_size;
int ret;
@@ -105022,7 +104341,7 @@
fb_bpp = 32;
fb_depth = 24;
-@@ -425,8 +421,8 @@ int vmw_fb_init(struct vmw_private *vmw_priv)
+@@ -428,8 +424,8 @@ int vmw_fb_init(struct vmw_private *vmw_priv)
fb_width = min(vmw_priv->fb_max_width, (unsigned)2048);
fb_height = min(vmw_priv->fb_max_height, (unsigned)2048);
@@ -105033,7 +104352,7 @@
fb_pitch = fb_width * fb_bpp / 8;
fb_size = fb_pitch * fb_height;
-@@ -515,19 +511,7 @@ int vmw_fb_init(struct vmw_private *vmw_priv)
+@@ -518,19 +514,7 @@ int vmw_fb_init(struct vmw_private *vmw_priv)
info->var.xres = initial_width;
info->var.yres = initial_height;
@@ -106908,7 +106227,7 @@
+
+#endif /* DRM_FOURCC_H */
diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h
-index 8f4ae68..9242310 100644
+index 8f4ae68..cbf2d9a 100644
--- a/include/drm/drm_mode.h
+++ b/include/drm/drm_mode.h
@@ -27,6 +27,8 @@
@@ -106974,16 +106293,7 @@
#define DRM_MODE_ENCODER_VIRTUAL 5
struct drm_mode_get_encoder {
-@@ -184,8 +223,6 @@ struct drm_mode_get_connector {
- __u32 connection;
- __u32 mm_width, mm_height; /**< HxW in millimeters */
- __u32 subpixel;
--
-- __u32 pad;
- };
-
- #define DRM_MODE_PROP_PENDING (1<<0)
-@@ -233,6 +270,33 @@ struct drm_mode_fb_cmd {
+@@ -233,6 +272,33 @@ struct drm_mode_fb_cmd {
__u32 handle;
};
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <srostedt at redhat.com>
Date: Wed, 6 Jun 2012 17:07:34 -0400
-Subject: [PATCH 001/341] Revert "workqueue: skip nr_running sanity check in
+Subject: [PATCH 001/343] Revert "workqueue: skip nr_running sanity check in
worker_enter_idle() if trustee is active"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=502af643a401325600faf1bc38a5ec5948c1edb3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=431df37eb08c874caa6d110a817b57720a1bbd1c
This reverts commit 5d79c6f64a904afc92a329f80abe693e3ae105fe.
@@ -14,7 +14,7 @@
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 0bc9ff0..2973d75 100644
+index 563820c..252c274 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -1235,13 +1235,8 @@ static void worker_enter_idle(struct worker *worker)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0002-x86-Call-idle-notifier-after-irq_enter.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0002-x86-Call-idle-notifier-after-irq_enter.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0002-x86-Call-idle-notifier-after-irq_enter.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Frederic Weisbecker <fweisbec at gmail.com>
Date: Mon, 26 Sep 2011 12:19:11 +0200
-Subject: [PATCH 002/341] x86: Call idle notifier after irq_enter()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7a432a7d2ab8464926e621852bb5af9eba5339c4
+Subject: [PATCH 002/343] x86: Call idle notifier after irq_enter()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=388a3f64ce1f1c2457e7deca9196b536f87b6efb
Interrupts notify the idle exit state before calling irq_enter(). But
the notifier code calls rcu_read_lock() and this is not allowed while
@@ -124,7 +124,7 @@
mce_threshold_vector();
irq_exit();
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
-index fb2eb32..4ad26de 100644
+index 687637b..6724ff1 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -177,8 +177,8 @@ unsigned int __irq_entry do_IRQ(struct pt_regs *regs)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0003-slab-lockdep-Annotate-all-slab-caches.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0003-slab-lockdep-Annotate-all-slab-caches.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0003-slab-lockdep-Annotate-all-slab-caches.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Mon, 28 Nov 2011 19:51:51 +0100
-Subject: [PATCH 003/341] slab, lockdep: Annotate all slab caches
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1996f16f212a23691395d5105eae77169b692d30
+Subject: [PATCH 003/343] slab, lockdep: Annotate all slab caches
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bf1b9dbb1878170e6ceee86a0f1e0def0916fda4
Currently we only annotate the kmalloc caches, annotate all of them.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0004-x86-kprobes-Remove-remove-bogus-preempt_enable.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0004-x86-kprobes-Remove-remove-bogus-preempt_enable.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0004-x86-kprobes-Remove-remove-bogus-preempt_enable.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 17 Mar 2011 11:02:15 +0100
-Subject: [PATCH 004/341] x86: kprobes: Remove remove bogus preempt_enable
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=54b7e797fe7610d12db9bd6e7a2093a3f93f25b6
+Subject: [PATCH 004/343] x86: kprobes: Remove remove bogus preempt_enable
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e507f8b2451e814d55e3f25270de67b927926ed7
The CONFIG_PREEMPT=n section of setup_singlestep() contains:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 30 Sep 2011 20:03:37 +0200
-Subject: [PATCH 005/341] x86: hpet: Disable MSI on Lenovo W510
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0148709d9b21a104416fb276539011d5e6333848
+Subject: [PATCH 005/343] x86: hpet: Disable MSI on Lenovo W510
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=35cc593a872223223e1c144a358dc482b17c48b9
MSI based per cpu timers lose interrupts when intel_idle() is enabled
- independent of the c-state. With idle=poll the problem cannot be
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0006-block-Shorten-interrupt-disabled-regions.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0006-block-Shorten-interrupt-disabled-regions.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0006-block-Shorten-interrupt-disabled-regions.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 22 Jun 2011 19:47:02 +0200
-Subject: [PATCH 006/341] block: Shorten interrupt disabled regions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c024c64c1c4bfe119e716525f2bff05aa44f5c37
+Subject: [PATCH 006/343] block: Shorten interrupt disabled regions
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=908b571ace56bb3ad94eb1a9f77d254562e6f89f
Moving the blk_sched_flush_plug() call out of the interrupt/preempt
disabled region in the scheduler allows us to replace
@@ -48,7 +48,7 @@
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
-index a219c89..0ceca7b 100644
+index ec494ff..527f5d5 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -300,7 +300,11 @@ void __blk_run_queue(struct request_queue *q)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 22 Jun 2011 19:47:03 +0200
-Subject: [PATCH 007/341] sched: Distangle worker accounting from rq-%3Elock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c1cdf4a469014be0339e74a30989d363651f0f1
+Subject: [PATCH 007/343] sched: Distangle worker accounting from rq-%3Elock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5a5bace0381a892c473d60c41ddce1a243df52a2
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
@@ -143,7 +143,7 @@
EXPORT_SYMBOL(schedule);
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 2973d75..db73cf3 100644
+index 252c274..15063bc 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -138,6 +138,7 @@ struct worker {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0008-mips-enable-interrupts-in-signal.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0008-mips-enable-interrupts-in-signal.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0008-mips-enable-interrupts-in-signal.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 18 Jul 2011 21:32:10 +0200
-Subject: [PATCH 008/341] mips-enable-interrupts-in-signal.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a2a2b4edfe18b63cd18f34be8cec8ca4e762bf96
+Subject: [PATCH 008/343] mips-enable-interrupts-in-signal.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=47b471b56226eee3a764ab338716f4736d5d6db8
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0009-arm-enable-interrupts-in-signal-code.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0009-arm-enable-interrupts-in-signal-code.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0009-arm-enable-interrupts-in-signal-code.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 16 Jul 2011 16:27:13 +0200
-Subject: [PATCH 009/341] arm-enable-interrupts-in-signal-code.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=58b6d1b9056cf675d2effe9176757fce34d68dfd
+Subject: [PATCH 009/343] arm-enable-interrupts-in-signal-code.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5d02059fa837aaeb48254ba5d5ddad2fe5085de5
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0010-powerpc-85xx-Mark-cascade-irq-IRQF_NO_THREAD.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0010-powerpc-85xx-Mark-cascade-irq-IRQF_NO_THREAD.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0010-powerpc-85xx-Mark-cascade-irq-IRQF_NO_THREAD.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 16 Jul 2011 12:09:54 +0200
-Subject: [PATCH 010/341] powerpc: 85xx: Mark cascade irq IRQF_NO_THREAD
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4e1da80c2f5c96d30c182f43fe88a02050079b6b
+Subject: [PATCH 010/343] powerpc: 85xx: Mark cascade irq IRQF_NO_THREAD
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7657f7fbde3fffd03f040dfff912155fe6ff22ca
Cascade interrupt must run in hard interrupt context.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0011-powerpc-wsp-Mark-opb-cascade-handler-IRQF_NO_THREAD.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0011-powerpc-wsp-Mark-opb-cascade-handler-IRQF_NO_THREAD.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0011-powerpc-wsp-Mark-opb-cascade-handler-IRQF_NO_THREAD.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 5 Oct 2011 14:11:24 +0200
-Subject: [PATCH 011/341] powerpc: wsp: Mark opb cascade handler IRQF_NO_THREAD
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=819a6cf2d178785bc88ba9922b8ec8e4f56587e6
+Subject: [PATCH 011/343] powerpc: wsp: Mark opb cascade handler IRQF_NO_THREAD
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=28b1c374804efe0a5bf6f268e49e7dc06d643563
Cascade handlers must run in hard interrupt context.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0012-powerpc-Mark-IPI-interrupts-IRQF_NO_THREAD.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0012-powerpc-Mark-IPI-interrupts-IRQF_NO_THREAD.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0012-powerpc-Mark-IPI-interrupts-IRQF_NO_THREAD.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 5 Oct 2011 14:00:26 +0200
-Subject: [PATCH 012/341] powerpc: Mark IPI interrupts IRQF_NO_THREAD
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1e8848ed54324ee81b2b86246bf4b550ff644d56
+Subject: [PATCH 012/343] powerpc: Mark IPI interrupts IRQF_NO_THREAD
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=576f8883c67c4edfbba4b9ab9ef3e5b62a1ddcf5
IPI handlers cannot be threaded. Remove the obsolete IRQF_DISABLED
flag (see commit e58aa3d2) while at it.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0013-powerpc-Allow-irq-threading.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0013-powerpc-Allow-irq-threading.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0013-powerpc-Allow-irq-threading.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,13 +1,12 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 16 Jul 2011 13:16:24 +0200
-Subject: [PATCH 013/341] powerpc: Allow irq threading
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1f21eb04e2274f252da0f2661cbf45d559e77fc9
+Subject: [PATCH 013/343] powerpc: Allow irq threading
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=76a203f3f0e293170dd494de41c0616c47e425f1
All interrupts which must be non threaded are marked
IRQF_NO_THREAD. So it's safe to allow force threaded handlers.
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-[bwh: Adjust to apply after 'net: Drop NET dependency from HAVE_BPF_JIT']
---
arch/powerpc/Kconfig | 1 +
1 file changed, 1 insertion(+)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0014-sched-Keep-period-timer-ticking-when-throttling-acti.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0014-sched-Keep-period-timer-ticking-when-throttling-acti.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0014-sched-Keep-period-timer-ticking-when-throttling-acti.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Tue, 18 Oct 2011 22:03:48 +0200
-Subject: [PATCH 014/341] sched: Keep period timer ticking when throttling
+Subject: [PATCH 014/343] sched: Keep period timer ticking when throttling
active
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0766dc785815a0b73f089aca8a9f0cb64b3b7ec8
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=23d863aa27bb73896ff0e79c9959518145f91e19
When a runqueue is throttled we cannot disable the period timer
because that timer is the only way to undo the throttling.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0015-sched-Do-not-throttle-due-to-PI-boosting.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0015-sched-Do-not-throttle-due-to-PI-boosting.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0015-sched-Do-not-throttle-due-to-PI-boosting.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Tue, 18 Oct 2011 22:03:48 +0200
-Subject: [PATCH 015/341] sched: Do not throttle due to PI boosting
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2a5d7ba8804a8a8d5323d12540f049ee90fc6a08
+Subject: [PATCH 015/343] sched: Do not throttle due to PI boosting
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6291b1f1e217143feccb8b4c4dc9b6bbce558fc1
When a runqueue has rt_runtime_us = 0 then the only way it can
accumulate rt_time is via PI boosting. Though that causes the runqueue
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0016-time-Remove-bogus-comments.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0016-time-Remove-bogus-comments.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0016-time-Remove-bogus-comments.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 28 Feb 2012 19:06:50 +0100
-Subject: [PATCH 016/341] time: Remove bogus comments
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9b46fbffa8168f9ad63f042767b7ee775b6bad00
+Subject: [PATCH 016/343] time: Remove bogus comments
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a2ba971e79d0e6388a1b9946dea35f2580b60b4
There is no global irq lock which makes a syscall magically SMP
safe. Remove the outdated comment concerning do_settimeofday() as
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0017-x86-vdso-Remove-bogus-locking-in-update_vsyscall_tz.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0017-x86-vdso-Remove-bogus-locking-in-update_vsyscall_tz.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0017-x86-vdso-Remove-bogus-locking-in-update_vsyscall_tz.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 28 Feb 2012 19:10:46 +0100
-Subject: [PATCH 017/341] x86: vdso: Remove bogus locking in
+Subject: [PATCH 017/343] x86: vdso: Remove bogus locking in
update_vsyscall_tz()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57268c4ec82dccea285782ed38fa851e72468782
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=acd33e2802b0ccb84a39ae7501059513464d1091
Changing the sequence count in update_vsyscall_tz() is completely
pointless.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0018-x86-vdso-Use-seqcount-instead-of-seqlock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0018-x86-vdso-Use-seqcount-instead-of-seqlock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0018-x86-vdso-Use-seqcount-instead-of-seqlock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 28 Feb 2012 18:24:07 +0100
-Subject: [PATCH 018/341] x86: vdso: Use seqcount instead of seqlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=31fa78869ab3d3c2a2995033621d38a321869301
+Subject: [PATCH 018/343] x86: vdso: Use seqcount instead of seqlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b43b4cad93d5f773fc152f6e46f4b608228d3320
The update of the vdso data happens under xtime_lock, so adding a
nested lock is pointless. Just use a seqcount to sync the readers.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0019-ia64-vsyscall-Use-seqcount-instead-of-seqlock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0019-ia64-vsyscall-Use-seqcount-instead-of-seqlock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0019-ia64-vsyscall-Use-seqcount-instead-of-seqlock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 28 Feb 2012 18:33:08 +0100
-Subject: [PATCH 019/341] ia64: vsyscall: Use seqcount instead of seqlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=421a07d5e85c2db9ee3696961762805fc46fc040
+Subject: [PATCH 019/343] ia64: vsyscall: Use seqcount instead of seqlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=640d8aeedb4a06f3961fe9379b6568aa2ebcced4
The update of the vdso data happens under xtime_lock, so adding a
nested lock is pointless. Just use a seqcount to sync the readers.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0020-seqlock-Remove-unused-functions.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0020-seqlock-Remove-unused-functions.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0020-seqlock-Remove-unused-functions.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 16 Jul 2011 18:38:22 +0200
-Subject: [PATCH 020/341] seqlock: Remove unused functions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c72c7f4e0b697c468e69a6e6f987cd3d6337b431
+Subject: [PATCH 020/343] seqlock: Remove unused functions
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1b3e460b1ebb93fcea9149c235cbeb85e058fc2d
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0021-seqlock-Use-seqcount.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0021-seqlock-Use-seqcount.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0021-seqlock-Use-seqcount.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 16 Jul 2011 18:40:26 +0200
-Subject: [PATCH 021/341] seqlock: Use seqcount
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=74a92b8712d7f05074ca4bb6518d9d0ea2c76327
+Subject: [PATCH 021/343] seqlock: Use seqcount
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=90de1fbb126eb369590680ca7022b99b1a749da5
No point in having different implementations for the same thing.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0022-vfs-fs_struct-Move-code-out-of-seqcount-write-sectio.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0022-vfs-fs_struct-Move-code-out-of-seqcount-write-sectio.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0022-vfs-fs_struct-Move-code-out-of-seqcount-write-sectio.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Al Viro <viro at ZenIV.linux.org.uk>
Date: Thu, 15 Mar 2012 18:39:40 +0000
-Subject: [PATCH 022/341] vfs: fs_struct: Move code out of seqcount write
+Subject: [PATCH 022/343] vfs: fs_struct: Move code out of seqcount write
sections
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b5bdeca140f33c4e3aee343c1a3d7cad3effadaa
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f2db46c6b577596ffe8e48cfb6047a4ab89d2190
RT cannot disable preemption in the seqcount write sections due to
functions called which take "sleeping" spinlocks.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0023-timekeeping-Split-xtime_lock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0023-timekeeping-Split-xtime_lock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0023-timekeeping-Split-xtime_lock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 1 Mar 2012 15:14:06 +0100
-Subject: [PATCH 023/341] timekeeping: Split xtime_lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=78cd6848ba856b200f0c9a487736e46555cf226b
+Subject: [PATCH 023/343] timekeeping: Split xtime_lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=267bc2da8118ec6f6db31d0ad39da145644cf662
xtime_lock is going to be split apart in mainline, so we can shorten
the seqcount protected regions and avoid updating seqcount in some
@@ -18,6 +18,8 @@
kernel/time/timekeeping.c | 90 ++++++++++++++++++++++++++-------------------
6 files changed, 89 insertions(+), 57 deletions(-)
+diff --git a/kernel/time/jiffies.c b/kernel/time/jiffies.c
+index 955560e..c84f1ce 100644
--- a/kernel/time/jiffies.c
+++ b/kernel/time/jiffies.c
@@ -80,9 +80,9 @@ u64 get_jiffies_64(void)
@@ -32,6 +34,8 @@
return ret;
}
EXPORT_SYMBOL(get_jiffies_64);
+diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
+index f1eb182..09079b7 100644
--- a/kernel/time/ntp.c
+++ b/kernel/time/ntp.c
@@ -362,6 +362,9 @@ int second_overflow(unsigned long secs)
@@ -73,7 +77,7 @@
txc->time.tv_sec = ts.tv_sec;
txc->time.tv_usec = ts.tv_nsec;
-@@ -863,7 +870,8 @@ void hardpps(const struct timespec *phas
+@@ -863,7 +870,8 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts)
pts_norm = pps_normalize_ts(*phase_ts);
@@ -83,7 +87,7 @@
/* clear the error bits, they will be set again if needed */
time_status &= ~(STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR);
-@@ -876,7 +884,8 @@ void hardpps(const struct timespec *phas
+@@ -876,7 +884,8 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts)
* just start the frequency interval */
if (unlikely(pps_fbase.tv_sec == 0)) {
pps_fbase = *raw_ts;
@@ -93,7 +97,7 @@
return;
}
-@@ -891,7 +900,8 @@ void hardpps(const struct timespec *phas
+@@ -891,7 +900,8 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts)
time_status |= STA_PPSJITTER;
/* restart the frequency calibration interval */
pps_fbase = *raw_ts;
@@ -103,7 +107,7 @@
pr_err("hardpps: PPSJITTER: bad pulse\n");
return;
}
-@@ -908,7 +918,8 @@ void hardpps(const struct timespec *phas
+@@ -908,7 +918,8 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts)
hardpps_update_phase(pts_norm.nsec);
@@ -113,6 +117,8 @@
}
EXPORT_SYMBOL(hardpps);
+diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c
+index ead79bc..538d45a 100644
--- a/kernel/time/tick-common.c
+++ b/kernel/time/tick-common.c
@@ -63,13 +63,15 @@ int tick_is_oneshot_available(void)
@@ -133,7 +139,7 @@
}
update_process_times(user_mode(get_irq_regs()));
-@@ -130,9 +132,9 @@ void tick_setup_periodic(struct clock_ev
+@@ -130,9 +132,9 @@ void tick_setup_periodic(struct clock_event_device *dev, int broadcast)
ktime_t next;
do {
@@ -145,18 +151,22 @@
clockevents_set_mode(dev, CLOCK_EVT_MODE_ONESHOT);
+diff --git a/kernel/time/tick-internal.h b/kernel/time/tick-internal.h
+index 4e265b9..c91100d 100644
--- a/kernel/time/tick-internal.h
+++ b/kernel/time/tick-internal.h
-@@ -141,4 +141,5 @@ static inline int tick_device_is_functio
+@@ -141,4 +141,5 @@ static inline int tick_device_is_functional(struct clock_event_device *dev)
#endif
extern void do_timer(unsigned long ticks);
-extern seqlock_t xtime_lock;
+extern raw_spinlock_t xtime_lock;
+extern seqcount_t xtime_seq;
+diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
+index e9a45f1..9fb9c29 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
-@@ -56,7 +56,8 @@ static void tick_do_update_jiffies64(kti
+@@ -56,7 +56,8 @@ static void tick_do_update_jiffies64(ktime_t now)
return;
/* Reevalute with xtime_lock held */
@@ -166,7 +176,7 @@
delta = ktime_sub(now, last_jiffies_update);
if (delta.tv64 >= tick_period.tv64) {
-@@ -79,7 +80,8 @@ static void tick_do_update_jiffies64(kti
+@@ -79,7 +80,8 @@ static void tick_do_update_jiffies64(ktime_t now)
/* Keep the tick_next_period variable up to date */
tick_next_period = ktime_add(last_jiffies_update, tick_period);
}
@@ -176,7 +186,7 @@
}
/*
-@@ -89,12 +91,14 @@ static ktime_t tick_init_jiffy_update(vo
+@@ -89,12 +91,14 @@ static ktime_t tick_init_jiffy_update(void)
{
ktime_t period;
@@ -193,7 +203,7 @@
return period;
}
-@@ -345,11 +349,11 @@ void tick_nohz_stop_sched_tick(int inidl
+@@ -345,11 +349,11 @@ void tick_nohz_stop_sched_tick(int inidle)
ts->idle_calls++;
/* Read jiffies and the time when jiffies were updated last */
do {
@@ -207,9 +217,11 @@
if (rcu_needs_cpu(cpu) || printk_needs_cpu(cpu) ||
arch_needs_cpu(cpu)) {
+diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
+index 068c092..d00be1d 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
-@@ -139,8 +139,8 @@ static inline s64 timekeeping_get_ns_raw
+@@ -139,8 +139,8 @@ static inline s64 timekeeping_get_ns_raw(void)
* This read-write spinlock protects us from races in SMP while
* playing with xtime.
*/
@@ -272,7 +284,7 @@
set_normalized_timespec(ts, ts->tv_sec + tomono.tv_sec,
ts->tv_nsec + tomono.tv_nsec + nsecs);
-@@ -333,7 +333,7 @@ void getnstime_raw_and_real(struct times
+@@ -333,7 +333,7 @@ void getnstime_raw_and_real(struct timespec *ts_raw, struct timespec *ts_real)
do {
u32 arch_offset;
@@ -281,7 +293,7 @@
*ts_raw = raw_time;
*ts_real = xtime;
-@@ -346,7 +346,7 @@ void getnstime_raw_and_real(struct times
+@@ -346,7 +346,7 @@ void getnstime_raw_and_real(struct timespec *ts_raw, struct timespec *ts_real)
nsecs_raw += arch_offset;
nsecs_real += arch_offset;
@@ -290,7 +302,7 @@
timespec_add_ns(ts_raw, nsecs_raw);
timespec_add_ns(ts_real, nsecs_real);
-@@ -385,7 +385,8 @@ int do_settimeofday(const struct timespe
+@@ -385,7 +385,8 @@ int do_settimeofday(const struct timespec *tv)
if (!timespec_valid_strict(tv))
return -EINVAL;
@@ -300,7 +312,7 @@
timekeeping_forward_now();
-@@ -397,7 +398,8 @@ int do_settimeofday(const struct timespe
+@@ -397,7 +398,8 @@ int do_settimeofday(const struct timespec *tv)
timekeeping_update(true);
@@ -310,7 +322,7 @@
/* signal hrtimers about time change */
clock_was_set();
-@@ -423,7 +425,8 @@ int timekeeping_inject_offset(struct tim
+@@ -423,7 +425,8 @@ int timekeeping_inject_offset(struct timespec *ts)
if ((unsigned long)ts->tv_nsec >= NSEC_PER_SEC)
return -EINVAL;
@@ -320,7 +332,7 @@
timekeeping_forward_now();
-@@ -439,7 +442,8 @@ int timekeeping_inject_offset(struct tim
+@@ -439,7 +442,8 @@ int timekeeping_inject_offset(struct timespec *ts)
error: /* even if we error out, we forwarded the time, so call update */
timekeeping_update(true);
@@ -330,7 +342,7 @@
/* signal hrtimers about time change */
clock_was_set();
-@@ -511,11 +515,11 @@ void getrawmonotonic(struct timespec *ts
+@@ -511,11 +515,11 @@ void getrawmonotonic(struct timespec *ts)
s64 nsecs;
do {
@@ -378,7 +390,7 @@
}
/* time in seconds when suspend began */
-@@ -681,14 +687,16 @@ void timekeeping_inject_sleeptime(struct
+@@ -681,14 +687,16 @@ void timekeeping_inject_sleeptime(struct timespec *delta)
if (!(ts.tv_sec == 0 && ts.tv_nsec == 0))
return;
@@ -437,7 +449,7 @@
clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL);
clocksource_suspend();
-@@ -1152,13 +1164,13 @@ void get_monotonic_boottime(struct times
+@@ -1152,13 +1164,13 @@ void get_monotonic_boottime(struct timespec *ts)
WARN_ON(timekeeping_suspended);
do {
@@ -453,7 +465,7 @@
set_normalized_timespec(ts, ts->tv_sec + tomono.tv_sec + sleep.tv_sec,
(s64)ts->tv_nsec + tomono.tv_nsec + sleep.tv_nsec + nsecs);
-@@ -1209,10 +1221,10 @@ struct timespec current_kernel_time(void
+@@ -1209,10 +1221,10 @@ struct timespec current_kernel_time(void)
unsigned long seq;
do {
@@ -466,7 +478,7 @@
return now;
}
-@@ -1224,11 +1236,11 @@ struct timespec get_monotonic_coarse(voi
+@@ -1224,11 +1236,11 @@ struct timespec get_monotonic_coarse(void)
unsigned long seq;
do {
@@ -480,7 +492,7 @@
set_normalized_timespec(&now, now.tv_sec + mono.tv_sec,
now.tv_nsec + mono.tv_nsec);
-@@ -1260,11 +1272,11 @@ void get_xtime_and_monotonic_and_sleep_o
+@@ -1260,11 +1272,11 @@ void get_xtime_and_monotonic_and_sleep_offset(struct timespec *xtim,
unsigned long seq;
do {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0024-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0024-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0024-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Mike Galbraith <efault at gmx.de>
Date: Wed, 7 Dec 2011 12:48:42 +0100
-Subject: [PATCH 024/341] intel_idle: Convert i7300_idle_lock to raw spinlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f3954dead9e05cde0e3cb163780e79ea941428c3
+Subject: [PATCH 024/343] intel_idle: Convert i7300_idle_lock to raw spinlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9bb62fc6338d328a3fada3214c7ff2c3640222f9
24 core Intel box's first exposure to 3.0.12-rt30-rc3 didn't go well.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0025-mm-memcg-shorten-preempt-disabled-section-around-eve.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0025-mm-memcg-shorten-preempt-disabled-section-around-eve.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0025-mm-memcg-shorten-preempt-disabled-section-around-eve.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Johannes Weiner <hannes at cmpxchg.org>
Date: Thu, 17 Nov 2011 07:49:25 +0100
-Subject: [PATCH 025/341] mm: memcg: shorten preempt-disabled section around
+Subject: [PATCH 025/343] mm: memcg: shorten preempt-disabled section around
event checks
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a782dd5eb039b1afd3903718ebdce3a3530007bb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=544dad13db49d88eced97dd1d34e545918824cc5
Only the ratelimit checks themselves have to run with preemption
disabled, the resulting actions - checking for usage thresholds,
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0026-tracing-Account-for-preempt-off-in-preempt_schedule.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0026-tracing-Account-for-preempt-off-in-preempt_schedule.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0026-tracing-Account-for-preempt-off-in-preempt_schedule.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Thu, 29 Sep 2011 12:24:30 -0500
-Subject: [PATCH 026/341] tracing: Account for preempt off in
+Subject: [PATCH 026/343] tracing: Account for preempt off in
preempt_schedule()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4b607a1b797d39f3b8ed64c92356852c8cf22644
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fc8385f4bf631c139079c1f85d3f65dcfcfccda9
The preempt_schedule() uses the preempt_disable_notrace() version
because it can cause infinite recursion by the function tracer as
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0027-signal-revert-ptrace-preempt-magic.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0027-signal-revert-ptrace-preempt-magic.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0027-signal-revert-ptrace-preempt-magic.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 21 Sep 2011 19:57:12 +0200
-Subject: [PATCH 027/341] signal-revert-ptrace-preempt-magic.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c2213c80abb076b1448d881b5caa54ce425d9527
+Subject: [PATCH 027/343] signal-revert-ptrace-preempt-magic.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=503789974bf34720572e733082e67b0dc36d58d6
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0028-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0028-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0028-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 16 Mar 2011 14:45:31 +0100
-Subject: [PATCH 028/341] arm: Mark pmu interupt IRQF_NO_THREAD
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=44af494680115eb9433d4d03aed94d0594fed7a6
+Subject: [PATCH 028/343] arm: Mark pmu interupt IRQF_NO_THREAD
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d743c5574e988ea2815e0298d4af9a123b6f0c92
PMU interrupt must not be threaded. Remove IRQF_DISABLED while at it
as we run all handlers with interrupts disabled anyway.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0029-arm-Allow-forced-irq-threading.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0029-arm-Allow-forced-irq-threading.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0029-arm-Allow-forced-irq-threading.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,13 +1,12 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 16 Jul 2011 13:15:20 +0200
-Subject: [PATCH 029/341] arm: Allow forced irq threading
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89ea5577fecedabf30a901e47ee3beb8ea8aa1fe
+Subject: [PATCH 029/343] arm: Allow forced irq threading
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e96bc1ef5c4d97ab6b8f57ce52dbcf577504d965
All timer interrupts and the perf interrupt are marked NO_THREAD, so
its safe to allow forced interrupt threading.
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-[bwh: Adjust context to apply after ARM BPF_JIT backport]
---
arch/arm/Kconfig | 1 +
1 file changed, 1 insertion(+)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0030-preempt-rt-Convert-arm-boot_lock-to-raw.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0030-preempt-rt-Convert-arm-boot_lock-to-raw.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0030-preempt-rt-Convert-arm-boot_lock-to-raw.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Frank Rowand <frank.rowand at am.sony.com>
Date: Mon, 19 Sep 2011 14:51:14 -0700
-Subject: [PATCH 030/341] preempt-rt: Convert arm boot_lock to raw
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89ac7b7ceedc355fad0094f3b5f6b56f162e0e4a
+Subject: [PATCH 030/343] preempt-rt: Convert arm boot_lock to raw
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=777d3d11a4a6851575b926975dce4e346703ad38
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.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0031-sched-Create-schedule_preempt_disabled.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0031-sched-Create-schedule_preempt_disabled.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0031-sched-Create-schedule_preempt_disabled.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 21 Mar 2011 12:09:35 +0100
-Subject: [PATCH 031/341] sched: Create schedule_preempt_disabled()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f94537276c7d54a8cac3cc31079902d42891a21d
+Subject: [PATCH 031/343] sched: Create schedule_preempt_disabled()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b958469e455c894c3afcd9ebc05dbc492a550b2
Get rid of the ever repeating:
@@ -16,7 +16,7 @@
2 files changed, 13 insertions(+)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index c17fdfb..aee30e9 100644
+index cb34ff4..7e2c148 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -360,6 +360,7 @@ extern signed long schedule_timeout_interruptible(signed long timeout);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0032-sched-Use-schedule_preempt_disabled.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0032-sched-Use-schedule_preempt_disabled.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0032-sched-Use-schedule_preempt_disabled.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 21 Mar 2011 12:33:18 +0100
-Subject: [PATCH 032/341] sched: Use schedule_preempt_disabled()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f373e25c92345130f975b78a635a537dd65254c8
+Subject: [PATCH 032/343] sched: Use schedule_preempt_disabled()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2bd041b79d7a22272d96e9c40ab5cd8a7eaf6c22
Coccinelle based conversion.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0033-signals-Do-not-wakeup-self.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0033-signals-Do-not-wakeup-self.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0033-signals-Do-not-wakeup-self.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 08:44:44 -0500
-Subject: [PATCH 033/341] signals: Do not wakeup self
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=295499e7cf19a5ff916c972e6f1b9b384a7ce327
+Subject: [PATCH 033/343] signals: Do not wakeup self
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=46de8d7d1e9cf4d364dafe08b914a981fa9cc4b3
Signals which are delivered by current to current can do without
waking up current :)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0034-posix-timers-Prevent-broadcast-signals.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0034-posix-timers-Prevent-broadcast-signals.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0034-posix-timers-Prevent-broadcast-signals.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 08:29:20 -0500
-Subject: [PATCH 034/341] posix-timers: Prevent broadcast signals
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3a38dcdcd96d1f413408c5b2a09fc986db17f3c7
+Subject: [PATCH 034/343] posix-timers: Prevent broadcast signals
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57b656c312e60e08b9fa00bc0701267f81112fba
Posix timers should not send broadcast signals and kernel only
signals. Prevent it.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 08:44:56 -0500
-Subject: [PATCH 035/341] 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=a92d50f51599f4ad5075d32ba55cebbfe390f2b7
+Subject: [PATCH 035/343] 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=de429646cc4bc3648d619bb0f3f4d7f96a1c69f9
To avoid allocation allow rt tasks to cache one sigqueue struct in
task struct.
@@ -16,7 +16,7 @@
5 files changed, 83 insertions(+), 5 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index aee30e9..525cdd5 100644
+index 7e2c148..4c6d896 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1396,6 +1396,7 @@ struct task_struct {
@@ -40,7 +40,7 @@
/* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */
static inline int valid_signal(unsigned long sig)
diff --git a/kernel/exit.c b/kernel/exit.c
-index 234e152..ab9b6fa 100644
+index fde15f9..4176f80 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -141,7 +141,7 @@ static void __exit_signal(struct task_struct *tsk)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0036-signal-x86-Delay-calling-signals-in-atomic.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0036-signal-x86-Delay-calling-signals-in-atomic.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0036-signal-x86-Delay-calling-signals-in-atomic.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Oleg Nesterov <oleg at redhat.com>
Date: Tue, 10 Apr 2012 14:33:53 -0400
-Subject: [PATCH 036/341] signal/x86: Delay calling signals in atomic
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d90f5420aead5d2459fadb657cb4f175d706176d
+Subject: [PATCH 036/343] signal/x86: Delay calling signals in atomic
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=769afa624dffbd62a7df77c2940ffbdd9607ec54
On x86_64 we must disable preemption before we enable interrupts
for stack faults, int3 and debugging, because the current task is using
@@ -81,7 +81,7 @@
if (thread_info_flags & _TIF_SIGPENDING)
do_signal(regs);
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 525cdd5..fc063e1 100644
+index 4c6d896..1f0d85f 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1401,6 +1401,10 @@ struct task_struct {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0037-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0037-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0037-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:30 -0500
-Subject: [PATCH 037/341] generic: Use raw local irq variant for generic
+Subject: [PATCH 037/343] generic: Use raw local irq variant for generic
cmpxchg
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a41c058b808768cb79901811790565d60325555
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8a1320835be6454a9fe94ef38caf8f42a84de1bd
No point in tracing those.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0038-drivers-random-Reduce-preempt-disabled-region.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0038-drivers-random-Reduce-preempt-disabled-region.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0038-drivers-random-Reduce-preempt-disabled-region.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:30 -0500
-Subject: [PATCH 038/341] drivers: random: Reduce preempt disabled region
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=caf1ec9547373dfb6465bb8d17b154a35c0f16f5
+Subject: [PATCH 038/343] drivers: random: Reduce preempt disabled region
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0e87fa34a886bfd2a29925ea44845dc3ea8b8341
No need to keep preemption disabled across the whole function.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0039-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0039-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0039-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Benedikt Spranger <b.spranger at linutronix.de>
Date: Sat, 6 Mar 2010 17:47:10 +0100
-Subject: [PATCH 039/341] ARM: AT91: PIT: Remove irq handler when clock event
+Subject: [PATCH 039/343] ARM: AT91: PIT: Remove irq handler when clock event
is unused
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=18344407325332a747e3dbcf62dba9aabad0509a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=55795f5e157dd9aadf2ccd37f079f454cf8ba809
Setup and remove the interrupt handler in clock event mode selection.
This avoids calling the (shared) interrupt handler when the device is
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0040-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0040-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0040-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Benedikt Spranger <b.spranger at linutronix.de>
Date: Mon, 8 Mar 2010 18:57:04 +0100
-Subject: [PATCH 040/341] clocksource: TCLIB: Allow higher clock rates for
+Subject: [PATCH 040/343] clocksource: TCLIB: Allow higher clock rates for
clock events
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7c9936ef12c709f129c91a10c5ad1baa2b3d60b2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1d21e1c6bd27496a7aee7d589150c80e7d454f85
As default the TCLIB uses the 32KiHz base clock rate for clock events.
Add a compile time selection to allow higher clock resulution.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0041-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0041-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0041-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:18 -0500
-Subject: [PATCH 041/341] drivers/net: tulip_remove_one needs to call
+Subject: [PATCH 041/343] drivers/net: tulip_remove_one needs to call
pci_disable_device()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=496b44a96a184ac6422068b33ee34b52de553c32
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c9c47bcf9a966f110ad08c245c9489a9f8cddca
Otherwise the device is not completely shut down.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0042-drivers-net-Use-disable_irq_nosync-in-8139too.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0042-drivers-net-Use-disable_irq_nosync-in-8139too.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0042-drivers-net-Use-disable_irq_nosync-in-8139too.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:24 -0500
-Subject: [PATCH 042/341] drivers/net: Use disable_irq_nosync() in 8139too
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=13ac0132d28992135ac64f9b536c65eeaa29a4f7
+Subject: [PATCH 042/343] drivers/net: Use disable_irq_nosync() in 8139too
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cabf90c75e44bf47a026491ea3a1cc50a226ae32
Use disable_irq_nosync() instead of disable_irq() as this might be
called in atomic context with netpoll.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0043-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0043-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0043-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Darren Hart <dvhltc at us.ibm.com>
Date: Tue, 18 May 2010 14:33:07 -0700
-Subject: [PATCH 043/341] drivers: net: ehea: Make rx irq handler non-threaded
+Subject: [PATCH 043/343] drivers: net: ehea: Make rx irq handler non-threaded
(IRQF_NO_THREAD)
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f237b00970e24f00129418b03999ccc6cd943bae
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b3ba2d826a4fe87cc0ec9f52f3fdfb6b92a37dba
The underlying hardware is edge triggered but presented by XICS as level
triggered. The edge triggered interrupts are not reissued after masking. This
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0044-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0044-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0044-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 17 Nov 2009 12:02:43 +0100
-Subject: [PATCH 044/341] drivers: net: at91_ether: Make mdio protection -rt
+Subject: [PATCH 044/343] drivers: net: at91_ether: Make mdio protection -rt
safe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c3066358b8b6787d597f78c79d00733fd624d3e6
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ca5b3456734e5f7e235587b086120e22948c59c7
Neither the phy interrupt nor the timer callback which updates the
link status in absense of a phy interrupt are taking lp->lock which
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0045-preempt-mark-legitimated-no-resched-sites.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0045-preempt-mark-legitimated-no-resched-sites.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0045-preempt-mark-legitimated-no-resched-sites.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 21 Mar 2011 13:32:17 +0100
-Subject: [PATCH 045/341] preempt-mark-legitimated-no-resched-sites.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=75dec8362ba03ff24cffbe033dbae7953ce67753
+Subject: [PATCH 045/343] preempt-mark-legitimated-no-resched-sites.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5365af07f8b7ce0d1cc62a7cf1bd18b3d715b7f5
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0046-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0046-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0046-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:37 -0500
-Subject: [PATCH 046/341] mm: Prepare decoupling the page fault disabling logic
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ea712356e2bbe8bba6afdfde857d498320f6d3c
+Subject: [PATCH 046/343] mm: Prepare decoupling the page fault disabling logic
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b781949e7d121a19bd8d43c50329e4159df9a148
Add a pagefault_disabled variable to task_struct to allow decoupling
the pagefault-disabled logic from the preempt count.
@@ -16,7 +16,7 @@
4 files changed, 34 insertions(+), 30 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index fc063e1..1ebcb37 100644
+index 1f0d85f..4282d4d 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1444,6 +1444,7 @@ struct task_struct {
@@ -85,10 +85,10 @@
p->lockdep_depth = 0; /* no locks held yet */
p->curr_chain_key = 0;
diff --git a/mm/memory.c b/mm/memory.c
-index d5f913b..23d6d8d 100644
+index 483e665..f116401 100644
--- a/mm/memory.c
+++ b/mm/memory.c
-@@ -3499,6 +3499,35 @@ unlock:
+@@ -3504,6 +3504,35 @@ unlock:
return 0;
}
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0047-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0047-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0047-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 17 Mar 2011 11:32:28 +0100
-Subject: [PATCH 047/341] mm: Fixup all fault handlers to check
+Subject: [PATCH 047/343] mm: Fixup all fault handlers to check
current->pagefault_disable
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=395054da9a3e1cdf2e0054cab375a65850cb7d19
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cac187761251415e6ece08ad069cff4ccb5ee04d
Necessary for decoupling pagefault disable from preempt count.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0048-mm-pagefault_disabled.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0048-mm-pagefault_disabled.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0048-mm-pagefault_disabled.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Thu, 11 Aug 2011 15:31:31 +0200
-Subject: [PATCH 048/341] mm: pagefault_disabled()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2b78ac248d27166d18817232ac76a5df95d03d6e
+Subject: [PATCH 048/343] mm: pagefault_disabled()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=55f845fef40ff6de86fb770edec9a7b87c452118
Wrap the test for pagefault_disabled() into a helper, this allows us
to remove the need for current->pagefault_disabled on !-rt kernels.
@@ -336,7 +336,7 @@
return;
}
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 1ebcb37..b0324b9 100644
+index 4282d4d..fba0ba9 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -91,6 +91,7 @@ struct sched_param {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0049-mm-raw_pagefault_disable.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0049-mm-raw_pagefault_disable.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0049-mm-raw_pagefault_disable.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Fri, 5 Aug 2011 17:16:58 +0200
-Subject: [PATCH 049/341] mm: raw_pagefault_disable
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=465880c52cece4b95ba9210de353226b1e748596
+Subject: [PATCH 049/343] mm: raw_pagefault_disable
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a4bc3db3a42e5613a6eb065f2c2d6f4165694c67
Adding migrate_disable() to pagefault_disable() to preserve the
per-cpu thing for kmap_atomic might not have been the best of choices.
@@ -130,10 +130,10 @@
ret; \
})
diff --git a/mm/memory.c b/mm/memory.c
-index 23d6d8d..8fb5438 100644
+index f116401..ddaa7d2 100644
--- a/mm/memory.c
+++ b/mm/memory.c
-@@ -3499,6 +3499,7 @@ unlock:
+@@ -3504,6 +3504,7 @@ unlock:
return 0;
}
@@ -141,7 +141,7 @@
void pagefault_disable(void)
{
inc_preempt_count();
-@@ -3527,6 +3528,7 @@ void pagefault_enable(void)
+@@ -3532,6 +3533,7 @@ void pagefault_enable(void)
preempt_check_resched();
}
EXPORT_SYMBOL_GPL(pagefault_enable);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0050-filemap-fix-up.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0050-filemap-fix-up.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0050-filemap-fix-up.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 17 Jun 2011 18:56:24 +0200
-Subject: [PATCH 050/341] filemap-fix-up.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=be4b13e31944531281ef11ca60eca7ecc0f02bb7
+Subject: [PATCH 050/343] filemap-fix-up.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bdd219989438c9eb0688145db8bfd9d913123851
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
Wrecked-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0051-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0051-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0051-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 25 Jul 2009 22:06:27 +0200
-Subject: [PATCH 051/341] mm: Remove preempt count from pagefault
+Subject: [PATCH 051/343] mm: Remove preempt count from pagefault
disable/enable
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ce9cccace1be1dec87216610c144192a7c7a8c0
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a473ee294d340d52d5fd8f54dffe648c607308a8
Now that all users are cleaned up, we can remove the preemption count.
@@ -12,10 +12,10 @@
1 file changed, 7 deletions(-)
diff --git a/mm/memory.c b/mm/memory.c
-index 8fb5438..9d4647f 100644
+index ddaa7d2..5e10b9a 100644
--- a/mm/memory.c
+++ b/mm/memory.c
-@@ -3502,7 +3502,6 @@ unlock:
+@@ -3507,7 +3507,6 @@ unlock:
#ifdef CONFIG_PREEMPT_RT_FULL
void pagefault_disable(void)
{
@@ -23,7 +23,7 @@
current->pagefault_disabled++;
/*
* make sure to have issued the store before a pagefault
-@@ -3520,12 +3519,6 @@ void pagefault_enable(void)
+@@ -3525,12 +3524,6 @@ void pagefault_enable(void)
*/
barrier();
current->pagefault_disabled--;
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0052-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0052-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0052-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:25 -0500
-Subject: [PATCH 052/341] x86: highmem: Replace BUG_ON by WARN_ON
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c873d451ed36e7a2022a86842efef0dd3a0bbf40
+Subject: [PATCH 052/343] x86: highmem: Replace BUG_ON by WARN_ON
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=df3bd217feb7946ce46bd8b700235b595cd21d29
The machine might survive that problem and be at least in a state
which allows us to get more information about the problem.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0053-suspend-Prevent-might-sleep-splats.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0053-suspend-Prevent-might-sleep-splats.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0053-suspend-Prevent-might-sleep-splats.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 15 Jul 2010 10:29:00 +0200
-Subject: [PATCH 053/341] suspend: Prevent might sleep splats
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dad6b768ae55c727cfee3a28d8f768344ef9d9bf
+Subject: [PATCH 053/343] suspend: Prevent might sleep splats
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=508109477d246ddf625267ed9891c8aced472e09
timekeeping suspend/resume calls read_persistant_clock() which takes
rtc_lock. That results in might sleep warnings because at that point
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0054-OF-Fixup-resursive-locking-code-paths.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0054-OF-Fixup-resursive-locking-code-paths.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0054-OF-Fixup-resursive-locking-code-paths.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 13 Aug 2009 09:04:10 +0200
-Subject: [PATCH 054/341] OF: Fixup resursive locking code paths
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fc14c3ee72a82653dc4a8b7ae840a55ad7f0e242
+Subject: [PATCH 054/343] OF: Fixup resursive locking code paths
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5837b67207f5077f8f958d8feeb63f3b9d4ec122
There is no real reason to use a rwlock for devtree_lock. It even
could be a mutex, but unfortunately it's locked from cpu hotplug
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0055-of-convert-devtree-lock.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0055-of-convert-devtree-lock.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0055-of-convert-devtree-lock.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 21 Mar 2011 14:35:34 +0100
-Subject: [PATCH 055/341] of-convert-devtree-lock.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0209ec9bc44663daa956c6d183e6c31959f562d7
+Subject: [PATCH 055/343] of-convert-devtree-lock.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=70d5aa60e6f16c8fb1fda993ea68132ec2f971ae
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0056-list-add-list-last-entry.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0056-list-add-list-last-entry.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0056-list-add-list-last-entry.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Tue, 21 Jun 2011 11:22:36 +0200
-Subject: [PATCH 056/341] list-add-list-last-entry.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=56e5a5b2c79e1c58bc9a176538762ff0f418c78f
+Subject: [PATCH 056/343] list-add-list-last-entry.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7dbdb27eb879fb671b06b8637a6952c3f50acc27
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0057-mm-page-alloc-use-list-last-entry.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0057-mm-page-alloc-use-list-last-entry.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0057-mm-page-alloc-use-list-last-entry.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Tue, 21 Jun 2011 11:24:35 +0200
-Subject: [PATCH 057/341] mm-page-alloc-use-list-last-entry.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=80529d485f613f53549cf079e03994ed1d588db8
+Subject: [PATCH 057/343] mm-page-alloc-use-list-last-entry.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=61dabaf64a339738a1ca124e64cec42cce89d2c6
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0058-mm-slab-move-debug-out.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0058-mm-slab-move-debug-out.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0058-mm-slab-move-debug-out.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 20 Jun 2011 10:42:04 +0200
-Subject: [PATCH 058/341] mm-slab-move-debug-out.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f98509c066e3a4727849625236d1b58143533da9
+Subject: [PATCH 058/343] mm-slab-move-debug-out.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a918b1f94c6dcd2da62dd94eb78570bb5cc18a6f
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0059-rwsem-inlcude-fix.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0059-rwsem-inlcude-fix.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0059-rwsem-inlcude-fix.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 15 Jul 2011 21:24:27 +0200
-Subject: [PATCH 059/341] rwsem-inlcude-fix.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7534a6ed17f6ab71ca8b0945853756fa215afb0b
+Subject: [PATCH 059/343] rwsem-inlcude-fix.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9d7d908339df77ccbb77c5c5925cd8073b2e4e8b
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0060-sysctl-include-fix.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0060-sysctl-include-fix.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0060-sysctl-include-fix.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 14 Nov 2011 10:52:34 +0100
-Subject: [PATCH 060/341] sysctl-include-fix.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a128d9f78c9baa739c0a400e65e1db70ac46a840
+Subject: [PATCH 060/343] sysctl-include-fix.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a8586dcb9cbf7a7c590068f2127737d330f0eb91
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0061-net-flip-lock-dep-thingy.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0061-net-flip-lock-dep-thingy.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0061-net-flip-lock-dep-thingy.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 28 Jun 2011 10:59:58 +0200
-Subject: [PATCH 061/341] net-flip-lock-dep-thingy.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9486cac4e8feb846f9f3fd30caef1d414fc7884a
+Subject: [PATCH 061/343] net-flip-lock-dep-thingy.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7b439eba16861006f5f2b1c9fae415ad51211ee1
=======================================================
[ INFO: possible circular locking dependency detected ]
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0062-softirq-thread-do-softirq.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0062-softirq-thread-do-softirq.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0062-softirq-thread-do-softirq.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 28 Jun 2011 15:44:15 +0200
-Subject: [PATCH 062/341] softirq-thread-do-softirq.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1d2e189026ddc7911e3629d3f815179958ed8bd8
+Subject: [PATCH 062/343] softirq-thread-do-softirq.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d8c61d6e8dec884188ead6fa43755465b6cc3189
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -23,7 +23,7 @@
extern void softirq_init(void);
static inline void __raise_softirq_irqoff(unsigned int nr)
diff --git a/net/core/dev.c b/net/core/dev.c
-index 7bcf37d..161dfa5 100644
+index 854da15..1d41fdf 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3036,7 +3036,7 @@ int netif_rx_ni(struct sk_buff *skb)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0063-softirq-split-out-code.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0063-softirq-split-out-code.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0063-softirq-split-out-code.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 28 Jun 2011 15:46:49 +0200
-Subject: [PATCH 063/341] softirq-split-out-code.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=19d87b91e4a32e493bdfdc72d098b60eccf66cee
+Subject: [PATCH 063/343] softirq-split-out-code.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=324d6a048725f21c5c469697e2df423eb2801ac4
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0064-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0064-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0064-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:27 -0500
-Subject: [PATCH 064/341] x86: Do not unmask io_apic when interrupt is in
+Subject: [PATCH 064/343] x86: 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=972bd44d30c9232d9e681839e73fb2c84971f191
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7cbede51789cab72680e24404ba0d798c98e5e04
With threaded interrupts we might see an interrupt in progress on
migration. Do not unmask it when this is the case.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0065-x86-32-fix-signal-crap.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0065-x86-32-fix-signal-crap.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0065-x86-32-fix-signal-crap.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 18 Jul 2011 15:59:38 +0200
-Subject: [PATCH 065/341] x86-32-fix-signal-crap.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c0629b7c591e6cd39c868bd62e55691fbed550c0
+Subject: [PATCH 065/343] x86-32-fix-signal-crap.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=59ebfc369a8ee1bd01e488b871973ba5c68d5f1e
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0066-x86-Do-not-disable-preemption-in-int3-on-32bit.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0066-x86-Do-not-disable-preemption-in-int3-on-32bit.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0066-x86-Do-not-disable-preemption-in-int3-on-32bit.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Tue, 10 Apr 2012 14:33:57 -0400
-Subject: [PATCH 066/341] x86: Do not disable preemption in int3 on 32bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0472a6a12bbc1c17cc7c319e99b612c5a8e575eb
+Subject: [PATCH 066/343] x86: Do not disable preemption in int3 on 32bit
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=69a8f10f9ca25d90b4ffb5d5928d63ea93f235a6
Preemption must be disabled before enabling interrupts in do_trap
on x86_64 because the stack in use for int3 and debug is a per CPU
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0067-rcu-Reduce-lock-section.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0067-rcu-Reduce-lock-section.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0067-rcu-Reduce-lock-section.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 24 Jun 2011 22:23:02 +0200
-Subject: [PATCH 067/341] rcu: Reduce lock section
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=862d6be75e983499dbf1ccdbdfd0759256276abf
+Subject: [PATCH 067/343] rcu: Reduce lock section
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8cc9c09f83400ff94d08dcefd8bca94310d4a717
So the waitqueue wakeup is outside the raw locked section.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0068-locking-various-init-fixes.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0068-locking-various-init-fixes.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0068-locking-various-init-fixes.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 21:25:03 +0200
-Subject: [PATCH 068/341] locking-various-init-fixes.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b248ba0492170d12823cc3898311e8c2505e55cf
+Subject: [PATCH 068/343] locking-various-init-fixes.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ddc062ec3a7ddec5cea84df39848d10a0831058c
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -57,7 +57,7 @@
/**
diff --git a/fs/file.c b/fs/file.c
-index 4c6992d..375472d 100644
+index 30bfc99..05e88e2 100644
--- a/fs/file.c
+++ b/fs/file.c
@@ -422,7 +422,7 @@ struct files_struct init_files = {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0069-wait-Provide-__wake_up_all_locked.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0069-wait-Provide-__wake_up_all_locked.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0069-wait-Provide-__wake_up_all_locked.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 1 Dec 2011 00:04:00 +0100
-Subject: [PATCH 069/341] wait: Provide __wake_up_all_locked
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=434a202d6f487da36ee19caeec4574c0bec0a0fa
+Subject: [PATCH 069/343] wait: Provide __wake_up_all_locked
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7a8f1f3f60c2cb9f6df3a34eb7bbe67174bba001
For code which protects the waitqueue itself with another lock it
makes no sense to acquire the waitqueue lock for wakeup all. Provide
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0070-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0070-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0070-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 1 Dec 2011 00:07:16 +0100
-Subject: [PATCH 070/341] pci: Use __wake_up_all_locked
+Subject: [PATCH 070/343] pci: Use __wake_up_all_locked
pci_unblock_user_cfg_access()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e1fd085530950234c1fe2aef1810bdf6f138bcf1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5389aff92d05e0f38b4df97d5d6af57c2a96e089
The waitqueue is protected by the pci_lock, so we can just avoid to
lock the waitqueue lock itself. That prevents the
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0071-latency-hist.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0071-latency-hist.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0071-latency-hist.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Carsten Emde <C.Emde at osadl.org>
Date: Tue, 19 Jul 2011 14:03:41 +0100
-Subject: [PATCH 071/341] latency-hist.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51280830778b5d525aeb6d1bd9746d84b6b027a9
+Subject: [PATCH 071/343] latency-hist.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=872051a7398573210d79ebee57582ef77321702b
This patch provides a recording mechanism to store data of potential
sources of system latencies. The recordings separately determine the
@@ -221,7 +221,7 @@
+
+These data are also reset when the wakeup histogram is reset.
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index b0324b9..989efdd 100644
+index fba0ba9..611ae1c 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1579,6 +1579,12 @@ struct task_struct {
@@ -349,7 +349,7 @@
+#endif /* _LATENCY_HIST_H */
+
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index 60f7e32..728f9a8 100644
+index 20e88af..63bccf9 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -49,6 +49,7 @@
@@ -360,7 +360,7 @@
/*
* The timer bases:
-@@ -1251,6 +1252,8 @@ static void __run_hrtimer(struct hrtimer *timer, ktime_t *now)
+@@ -1273,6 +1274,8 @@ static void __run_hrtimer(struct hrtimer *timer, ktime_t *now)
#ifdef CONFIG_HIGH_RES_TIMERS
@@ -369,7 +369,7 @@
/*
* High resolution timer interrupt
* Called with interrupts disabled
-@@ -1294,6 +1297,14 @@ retry:
+@@ -1316,6 +1319,14 @@ retry:
timer = container_of(node, struct hrtimer, node);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0072-hwlatdetect.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0072-hwlatdetect.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0072-hwlatdetect.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Carsten Emde <C.Emde at osadl.org>
Date: Tue, 19 Jul 2011 13:53:12 +0100
-Subject: [PATCH 072/341] hwlatdetect.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=567d525e6b097d3143c064babd9ff501243252f9
+Subject: [PATCH 072/343] hwlatdetect.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0434295bccafae531c29d2b004433e80a3e9aaa8
Jon Masters developed this wonderful SMI detector. For details please
consult Documentation/hwlat_detector.txt. It could be ported to Linux
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0073-localversion.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0073-localversion.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0073-localversion.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 8 Jul 2011 20:25:16 +0200
-Subject: [PATCH 073/341] localversion.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2a13e7417bf8518aac1707a8a32506e065437d4e
+Subject: [PATCH 073/343] localversion.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e7c2e100e99dad8c8c0f1daeaee5ceb321ce3487
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0074-early-printk-consolidate.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0074-early-printk-consolidate.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0074-early-printk-consolidate.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 23 Jul 2011 11:04:08 +0200
-Subject: [PATCH 074/341] early-printk-consolidate.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=620cf6e4beac4bdcf9ce3a4a0a625deb21961440
+Subject: [PATCH 074/343] early-printk-consolidate.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e5d303f14c4d68ac1ee4f60c9ca9599b3d769beb
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -23,7 +23,7 @@
15 files changed, 62 insertions(+), 110 deletions(-)
diff --git a/arch/arm/kernel/early_printk.c b/arch/arm/kernel/early_printk.c
-index 85aa2b2..4307653 100644
+index 85aa2b2..43076536 100644
--- a/arch/arm/kernel/early_printk.c
+++ b/arch/arm/kernel/early_printk.c
@@ -29,28 +29,17 @@ static void early_console_write(struct console *con, const char *s, unsigned n)
@@ -450,7 +450,7 @@
extern int printk_needs_cpu(int cpu);
extern void printk_tick(void);
diff --git a/kernel/printk.c b/kernel/printk.c
-index 16688ec..9020437 100644
+index 8fac434..195c797 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -44,13 +44,6 @@
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0075-printk-kill.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0075-printk-kill.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0075-printk-kill.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 22 Jul 2011 17:58:40 +0200
-Subject: [PATCH 075/341] printk-kill.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51dba72376525da6f485b3bf42dd2adf5649bb0e
+Subject: [PATCH 075/343] printk-kill.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f6b1165a9d84b78c150a76b47d43abef7175f873
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -35,7 +35,7 @@
extern int dmesg_restrict;
extern int kptr_restrict;
diff --git a/kernel/printk.c b/kernel/printk.c
-index 9020437..8f9077a 100644
+index 195c797..728b8f0 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -532,6 +532,32 @@ asmlinkage void early_printk(const char *fmt, ...)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0076-printk-force_early_printk-boot-param-to-help-with-de.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0076-printk-force_early_printk-boot-param-to-help-with-de.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0076-printk-force_early_printk-boot-param-to-help-with-de.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Fri, 2 Sep 2011 14:29:33 +0200
-Subject: [PATCH 076/341] printk: 'force_early_printk' boot param to help with
+Subject: [PATCH 076/343] printk: '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=12ebb1859b55f1badb1cc6eb4e7eb04f85900d0f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8fbfa3c694a048ac25bb4faf43958c8c09bf544b
Gives me an option to screw printk and actually see what the machine
says.
@@ -16,7 +16,7 @@
1 file changed, 7 insertions(+)
diff --git a/kernel/printk.c b/kernel/printk.c
-index 8f9077a..14f362a 100644
+index 728b8f0..ede5e31 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -541,6 +541,13 @@ asmlinkage void early_printk(const char *fmt, ...)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0077-rt-preempt-base-config.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0077-rt-preempt-base-config.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0077-rt-preempt-base-config.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 17 Jun 2011 12:39:57 +0200
-Subject: [PATCH 077/341] rt-preempt-base-config.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2a36e4ade32a82ff2a8ef87e377433a644b762f3
+Subject: [PATCH 077/343] rt-preempt-base-config.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b3046096dfa8ce029b4e3e61e7c275008d8d900b
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0078-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0078-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0078-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:58 -0500
-Subject: [PATCH 078/341] 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=253e4246a6ed661452d84dcdcf96a4b23462f494
+Subject: [PATCH 078/343] 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=9b0069934767c2cbfb17ee03fb73f17650fc4dc6
Signed-off-by: Ingo Molnar <mingo at elte.hu>
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0079-rt-local_irq_-variants-depending-on-RT-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0079-rt-local_irq_-variants-depending-on-RT-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0079-rt-local_irq_-variants-depending-on-RT-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 21 Jul 2009 22:34:14 +0200
-Subject: [PATCH 079/341] rt: local_irq_* variants depending on RT/!RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7ca917c32cf6f919831407885a12c410df4a1a16
+Subject: [PATCH 079/343] rt: local_irq_* variants depending on RT/!RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fc484016232f7ab6a253ba2e79247a04178d93bc
Add local_irq_*_(no)rt variant which are mainly used to break
interrupt disabled sections on PREEMPT_RT or to explicitely disable
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0080-preempt-Provide-preempt_-_-no-rt-variants.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0080-preempt-Provide-preempt_-_-no-rt-variants.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0080-preempt-Provide-preempt_-_-no-rt-variants.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 24 Jul 2009 12:38:56 +0200
-Subject: [PATCH 080/341] preempt: Provide preempt_*_(no)rt variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ed3f34ffdb30b513577d4bdfd4d01c00683eb37b
+Subject: [PATCH 080/343] preempt: Provide preempt_*_(no)rt variants
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=80830d60ccabdecf0ca7bfdbaea726508a06ebd9
RT needs a few preempt_disable/enable points which are not necessary
otherwise. Implement variants to avoid #ifdeffery.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0081-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0081-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0081-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <srostedt at redhat.com>
Date: Fri, 3 Jul 2009 08:44:29 -0500
-Subject: [PATCH 081/341] ata: Do not disable interrupts in ide code for
+Subject: [PATCH 081/343] 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=b51cc4dc86518e19471414100f7ac85af8c9cd86
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8386ee3f5757c61624a4c281597490eee51e642
Use the local_irq_*_nort variants.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0082-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0082-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0082-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:16 -0500
-Subject: [PATCH 082/341] ide: Do not disable interrupts for PREEMPT-RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6f4d09ead40c66414e5f2fe3224060d8a4393438
+Subject: [PATCH 082/343] ide: Do not disable interrupts for PREEMPT-RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=409516aa6c85ae0303007e5d4a4859c4a491a5b1
Use the local_irq_*_nort variants.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0083-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0083-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0083-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Sven-Thorsten Dietrich <sdietrich at novell.com>
Date: Fri, 3 Jul 2009 08:30:35 -0500
-Subject: [PATCH 083/341] infiniband: Mellanox IB driver patch use _nort()
+Subject: [PATCH 083/343] infiniband: Mellanox IB driver patch use _nort()
primitives
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2519cddd18c88605fe1f341498871eab2f4179dd
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a70c42e778eb88755c63da0fc58d823b452c2f5a
Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT
Kernel.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0084-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0084-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0084-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:16 -0500
-Subject: [PATCH 084/341] input: gameport: Do not disable interrupts on
+Subject: [PATCH 084/343] 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=6769b34dbe1083a230a43c54f4af9d10978e1870
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb00c177de0193b2de2d2ab177b6f10d8437f528
Use the _nort() primitives.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0085-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0085-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0085-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 21 Jul 2009 22:54:51 +0200
-Subject: [PATCH 085/341] acpi: Do not disable interrupts on PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=008cfbdcc15d1b9ca18d0f4f462464f30acd240d
+Subject: [PATCH 085/343] acpi: Do not disable interrupts on PREEMPT_RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d3e701bfac330e89d9f3b4d30085e08b02b073bb
Use the local_irq_*_nort() variants.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0086-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0086-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0086-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 21 Jul 2009 23:06:05 +0200
-Subject: [PATCH 086/341] core: Do not disable interrupts on RT in
+Subject: [PATCH 086/343] 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=64c6777509a5dc7dc753a014a33ccd36e63c7d49
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d30d272920b5e8f5efb628d14faab055f910ea60
Use the local_irq_*_nort variants to reduce latencies in RT. The code
is serialized by the locks. No need to disable interrupts.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0087-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0087-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0087-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:44:33 -0500
-Subject: [PATCH 087/341] core: Do not disable interrupts on RT in
+Subject: [PATCH 087/343] core: Do not disable interrupts on RT in
res_counter.c
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3aa2f0867ab31198ffaa836989cccb7992b9e986
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a5b33ff1d2e703b169d748a37c5a196dbcdcce6e
Frederic Weisbecker reported this warning:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0088-usb-Use-local_irq_-_nort-variants.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0088-usb-Use-local_irq_-_nort-variants.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0088-usb-Use-local_irq_-_nort-variants.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <srostedt at redhat.com>
Date: Fri, 3 Jul 2009 08:44:26 -0500
-Subject: [PATCH 088/341] usb: Use local_irq_*_nort() variants
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=569477e7c1ea794cb6dbc8640d8445663d1b7e50
+Subject: [PATCH 088/343] usb: Use local_irq_*_nort() variants
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d00e7e2926ab151da969c1b149952b5a8ac5ad24
[ tglx: Now that irqf_disabled is dead we should kill that ]
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0089-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0089-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0089-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 17 Aug 2009 19:49:19 +0200
-Subject: [PATCH 089/341] tty: Do not disable interrupts in put_ldisc on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5583cc4e4dd2ac513de6c1a65457dcd6eb76fa44
+Subject: [PATCH 089/343] tty: Do not disable interrupts in put_ldisc on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3c721fa9b14837bf51b749ee6c19bc690c8676b5
Fixes the following on PREEMPT_RT:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0090-mm-scatterlist-dont-disable-irqs-on-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0090-mm-scatterlist-dont-disable-irqs-on-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0090-mm-scatterlist-dont-disable-irqs-on-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 08:44:34 -0500
-Subject: [PATCH 090/341] mm: scatterlist dont disable irqs on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ffa17c681fad58837e6961a5eea4f475a11a052a
+Subject: [PATCH 090/343] mm: scatterlist dont disable irqs on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ab0e4c60d790df131823600278e917b2eb940ffd
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0091-signal-fix-up-rcu-wreckage.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0091-signal-fix-up-rcu-wreckage.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0091-signal-fix-up-rcu-wreckage.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 22 Jul 2011 08:07:08 +0200
-Subject: [PATCH 091/341] signal-fix-up-rcu-wreckage.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd81dbd3cc31cebd7f27b56af50b9d3a81daf2b2
+Subject: [PATCH 091/343] signal-fix-up-rcu-wreckage.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=af2c3fb6d8469fdc6906dd0943fba79f68d3e24e
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0092-net-wireless-warn-nort.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0092-net-wireless-warn-nort.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0092-net-wireless-warn-nort.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 21 Jul 2011 21:05:33 +0200
-Subject: [PATCH 092/341] net-wireless-warn-nort.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f211cc6b58ca01503a51b77633d9fa7b29178bda
+Subject: [PATCH 092/343] net-wireless-warn-nort.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c4e265b8aa99b5e0bb9951000186ca0529408c40
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0093-mm-Replace-cgroup_page-bit-spinlock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0093-mm-Replace-cgroup_page-bit-spinlock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0093-mm-Replace-cgroup_page-bit-spinlock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 19 Aug 2009 09:56:42 +0200
-Subject: [PATCH 093/341] mm: Replace cgroup_page bit spinlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e8571cecfe703ce20328f811c1de11cdb8b7c7c3
+Subject: [PATCH 093/343] mm: Replace cgroup_page bit spinlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=81731ac7e04a2be86089ff44169b652f0e7b816a
Bit spinlocks are not working on RT. Replace them.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0094-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0094-buffer_head-Replace-bh_uptodate_lock-for-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0094-buffer_head-Replace-bh_uptodate_lock-for-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 18 Mar 2011 09:18:52 +0100
-Subject: [PATCH 094/341] buffer_head: Replace bh_uptodate_lock for -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f4c2de3cbb8de07fb1d765713ceb6b0af65ab51
+Subject: [PATCH 094/343] buffer_head: Replace bh_uptodate_lock for -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ade6f32c1d2895cb93d5d7b57ba837204d9ed8dd
Wrap the bit_spin_lock calls into a separate inline and add the RT
replacements with a real spinlock.
@@ -14,7 +14,7 @@
3 files changed, 44 insertions(+), 21 deletions(-)
diff --git a/fs/buffer.c b/fs/buffer.c
-index 19a4f0b..997b199 100644
+index 5f4bde2..04062c6 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -331,8 +331,7 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
@@ -76,7 +76,7 @@
}
EXPORT_SYMBOL(end_buffer_async_write);
-@@ -3222,6 +3214,7 @@ struct buffer_head *alloc_buffer_head(gfp_t gfp_flags)
+@@ -3224,6 +3216,7 @@ struct buffer_head *alloc_buffer_head(gfp_t gfp_flags)
struct buffer_head *ret = kmem_cache_zalloc(bh_cachep, gfp_flags);
if (ret) {
INIT_LIST_HEAD(&ret->b_assoc_buffers);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0095-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0095-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0095-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 18 Mar 2011 10:11:25 +0100
-Subject: [PATCH 095/341] fs: jbd/jbd2: Make state lock and journal head lock
+Subject: [PATCH 095/343] 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=9414ce39bcb342fd24b0cd112d84bddf85b9caf5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a18a24596cb481df703fba8f14392df7113db3b
bit_spin_locks break under RT.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0096-genirq-Disable-DEBUG_SHIRQ-for-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0096-genirq-Disable-DEBUG_SHIRQ-for-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0096-genirq-Disable-DEBUG_SHIRQ-for-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 18 Mar 2011 10:22:04 +0100
-Subject: [PATCH 096/341] genirq: Disable DEBUG_SHIRQ for rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=192ef813ed849302de754b27233ae2c478d5ab88
+Subject: [PATCH 096/343] genirq: Disable DEBUG_SHIRQ for rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=358646dc92b8e456bbedbca1358521eb44aa5351
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 21 Jul 2009 16:07:37 +0200
-Subject: [PATCH 097/341] genirq: Disable random call on preempt-rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d36254eaadc013e37c3341c9f155a844e7d24661
+Subject: [PATCH 097/343] genirq: Disable random call on preempt-rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=987ea02f3cdb4507a1fbc93087c29f636e5a8643
The random call introduces high latencies and is almost
unused. Disable it for -rt.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0098-genirq-disable-irqpoll-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0098-genirq-disable-irqpoll-on-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0098-genirq-disable-irqpoll-on-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:57 -0500
-Subject: [PATCH 098/341] genirq: disable irqpoll on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f9798dfc4baa9c9fa9f38313dd6747c42b2a0f0c
+Subject: [PATCH 098/343] genirq: disable irqpoll on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=354d16f4cb8ab567e6987a359cae83f6afc0b585
Creates long latencies for no value
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0099-genirq-force-threading.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0099-genirq-force-threading.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0099-genirq-force-threading.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 3 Apr 2011 11:57:29 +0200
-Subject: [PATCH 099/341] genirq-force-threading.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c45781aa66a6a13321040d4c183066a391e87fa1
+Subject: [PATCH 099/343] genirq-force-threading.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f073ee62a946574abd02488845a1a2cc5ed65677
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -30,7 +30,7 @@
#ifndef __ARCH_SET_SOFTIRQ_PENDING
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index 52bdd58..6e9d7af 100644
+index 4775229..9c6fa43 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -18,6 +18,7 @@
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0100-drivers-net-fix-livelock-issues.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0100-drivers-net-fix-livelock-issues.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0100-drivers-net-fix-livelock-issues.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 20 Jun 2009 11:36:54 +0200
-Subject: [PATCH 100/341] drivers/net: fix livelock issues
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d6a498c3b532f3bef13aa477789247e11fd0f3c2
+Subject: [PATCH 100/343] drivers/net: fix livelock issues
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=de682406394c3feac1fedf98958e798b72e78c3f
Preempt-RT runs into a live lock issue with the NETDEV_TX_LOCKED micro
optimization. The reason is that the softirq thread is rescheduling
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0101-drivers-net-vortex-fix-locking-issues.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0101-drivers-net-vortex-fix-locking-issues.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0101-drivers-net-vortex-fix-locking-issues.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Fri, 3 Jul 2009 08:30:00 -0500
-Subject: [PATCH 101/341] drivers/net: vortex fix locking issues
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c7a94e7b326d02ebf6d8f5b1ed4d793f191aa416
+Subject: [PATCH 101/343] drivers/net: vortex fix locking issues
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f1b7f4de8fabe9a5e859471429181e8ef9d92b4f
Argh, cut and paste wasn't enough...
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0102-drivers-net-gianfar-Make-RT-aware.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0102-drivers-net-gianfar-Make-RT-aware.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0102-drivers-net-gianfar-Make-RT-aware.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 1 Apr 2010 20:20:57 +0200
-Subject: [PATCH 102/341] drivers: net: gianfar: Make RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7398c1cdc6e57960a852dc91eeedc1a3571ee30a
+Subject: [PATCH 102/343] drivers: net: gianfar: Make RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=53e30121940b36076ca0858ca15034b85d931bbd
The adjust_link() disables interrupts before taking the queue
locks. On RT those locks are converted to "sleeping" locks and
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0103-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0103-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0103-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Wu Zhangjin <wuzj at lemote.com>
Date: Mon, 4 Jan 2010 11:33:02 +0800
-Subject: [PATCH 103/341] USB: Fix the mouse problem when copying large amounts
+Subject: [PATCH 103/343] USB: Fix the mouse problem when copying large amounts
of data
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=365a9397aebbe0754c08ccb2609d92fb70bf6c8b
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=858199f1e35b21f26574fcb5fafb8a1a16aba131
When copying large amounts of data between the USB storage devices and
the hard disk, the USB mouse will not work, this patch fixes it.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0104-local-var.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0104-local-var.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0104-local-var.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 24 Jun 2011 18:40:37 +0200
-Subject: [PATCH 104/341] local-var.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=92351abedd972d6378db668f911e77b13de6cc2f
+Subject: [PATCH 104/343] local-var.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b35a8e287ca87c4595b07c672d8f2e9626d14a6f
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0105-rt-local-irq-lock.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0105-rt-local-irq-lock.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0105-rt-local-irq-lock.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 20 Jun 2011 09:03:47 +0200
-Subject: [PATCH 105/341] rt-local-irq-lock.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=10fb59990ea8aa33c7d1befcf6ad0e2b8d582c4a
+Subject: [PATCH 105/343] rt-local-irq-lock.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=11a2f0e15bf8d451d8bbac22f68068cdf38d16ab
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0106-cpu-rt-variants.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0106-cpu-rt-variants.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0106-cpu-rt-variants.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 17 Jun 2011 15:42:38 +0200
-Subject: [PATCH 106/341] cpu-rt-variants.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4c5efad992b1b1d13ac490f479e59fcbc7865d70
+Subject: [PATCH 106/343] cpu-rt-variants.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=631e7d7c24d271a62205262cb35e48015e4f0736
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0107-mm-slab-wrap-functions.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0107-mm-slab-wrap-functions.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0107-mm-slab-wrap-functions.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 18 Jun 2011 19:44:43 +0200
-Subject: [PATCH 107/341] mm-slab-wrap-functions.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=157384129a8e366a5941d046133a506340e15a3b
+Subject: [PATCH 107/343] mm-slab-wrap-functions.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=015a3b4f8881a3384e775bb5d437e18451149443
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0108-slab-Fix-__do_drain-to-use-the-right-array-cache.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0108-slab-Fix-__do_drain-to-use-the-right-array-cache.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0108-slab-Fix-__do_drain-to-use-the-right-array-cache.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Tue, 11 Oct 2011 23:56:23 -0400
-Subject: [PATCH 108/341] slab: Fix __do_drain to use the right array cache
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9eaad83e99bff245bacecfce7122e5dc5d8fc47
+Subject: [PATCH 108/343] slab: Fix __do_drain to use the right array cache
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8563c63b786c7b9c9df7c8cdf29eacf7f23a2735
The array cache in __do_drain() was using the cpu_cache_get() function
which uses smp_processor_id() to get the proper array. On mainline, this
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0109-mm-More-lock-breaks-in-slab.c.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0109-mm-More-lock-breaks-in-slab.c.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0109-mm-More-lock-breaks-in-slab.c.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Fri, 3 Jul 2009 08:44:43 -0500
-Subject: [PATCH 109/341] mm: More lock breaks in slab.c
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3cd8d98570abf50875d650e619f8f0a67caf1436
+Subject: [PATCH 109/343] mm: More lock breaks in slab.c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=25b956776f4fe184d8858d96c1b9b94dafffcb59
Handle __free_pages outside of the locked regions. This reduces the
lock contention on the percpu slab locks in -rt significantly.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0110-mm-page_alloc-rt-friendly-per-cpu-pages.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0110-mm-page_alloc-rt-friendly-per-cpu-pages.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0110-mm-page_alloc-rt-friendly-per-cpu-pages.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:37 -0500
-Subject: [PATCH 110/341] mm: page_alloc: rt-friendly per-cpu pages
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4f3fd0d52cdd6011327104925b2ea5df1f2a0a76
+Subject: [PATCH 110/343] mm: page_alloc: rt-friendly per-cpu pages
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ac902a00d0a99af9b9a37349fe03298a29a23dc4
rt-friendly per-cpu pages: convert the irqs-off per-cpu locking
method into a preemptible, explicit-per-cpu-locks method.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0111-mm-page_alloc-reduce-lock-sections-further.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0111-mm-page_alloc-reduce-lock-sections-further.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0111-mm-page_alloc-reduce-lock-sections-further.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Fri, 3 Jul 2009 08:44:37 -0500
-Subject: [PATCH 111/341] mm: page_alloc reduce lock sections further
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a25357ae2fe99bf4b0e1f12b48813eec76ed86b3
+Subject: [PATCH 111/343] mm: page_alloc reduce lock sections further
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95f66a8a7f2cd9d1f6df07ced5d2d950888371fd
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.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0112-mm-page-alloc-fix.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0112-mm-page-alloc-fix.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0112-mm-page-alloc-fix.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 21 Jul 2011 16:47:49 +0200
-Subject: [PATCH 112/341] mm-page-alloc-fix.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ee86ac8e314564ba6c9bf5c5d24447e47a1af33
+Subject: [PATCH 112/343] mm-page-alloc-fix.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2daf6fbd9b16496c543b24383bc6d31198c3aa37
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0113-mm-convert-swap-to-percpu-locked.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0113-mm-convert-swap-to-percpu-locked.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0113-mm-convert-swap-to-percpu-locked.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:51 -0500
-Subject: [PATCH 113/341] mm: convert swap to percpu locked
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e1bf42344bfff9eee7b328b5696fb8a91f7bb1ad
+Subject: [PATCH 113/343] mm: convert swap to percpu locked
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e8738de151b0b098b55d07e7c1c51a1d0a47b0cf
Signed-off-by: Ingo Molnar <mingo at elte.hu>
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0114-mm-vmstat-fix-the-irq-lock-asymetry.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0114-mm-vmstat-fix-the-irq-lock-asymetry.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0114-mm-vmstat-fix-the-irq-lock-asymetry.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 22 Jun 2011 20:47:08 +0200
-Subject: [PATCH 114/341] mm-vmstat-fix-the-irq-lock-asymetry.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1288eb13eacf7b1918ff74a84b7075710c5f5c91
+Subject: [PATCH 114/343] mm-vmstat-fix-the-irq-lock-asymetry.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=42ed68e33b1a62c68eb0a9c835ff9869c227681c
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0115-mm-make-vmstat-rt-aware.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0115-mm-make-vmstat-rt-aware.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0115-mm-make-vmstat-rt-aware.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:13 -0500
-Subject: [PATCH 115/341] mm: make vmstat -rt aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bd105ac9e1f0806348d3b9d62f5da596ea0aa172
+Subject: [PATCH 115/343] mm: make vmstat -rt aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f00883b327102974cf292cb7080217ee7eb24b71
Signed-off-by: Ingo Molnar <mingo at elte.hu>
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0116-mm-shrink-the-page-frame-to-rt-size.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0116-mm-shrink-the-page-frame-to-rt-size.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0116-mm-shrink-the-page-frame-to-rt-size.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Fri, 3 Jul 2009 08:44:54 -0500
-Subject: [PATCH 116/341] mm: shrink the page frame to !-rt size
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a0ff453f519c9fde6739bdf653df4097b8c6a13d
+Subject: [PATCH 116/343] mm: shrink the page frame to !-rt size
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=feb641e890faa8609cbb7bf7e4afd66c89a8146d
He below is a boot-tested hack to shrink the page frame size back to
normal.
@@ -106,10 +106,10 @@
struct kmem_cache *slab; /* SLUB: Pointer to slab */
struct page *first_page; /* Compound tail pages */
diff --git a/mm/memory.c b/mm/memory.c
-index 9d4647f..93d5328 100644
+index 5e10b9a..5b589e1 100644
--- a/mm/memory.c
+++ b/mm/memory.c
-@@ -4083,3 +4083,35 @@ void copy_user_huge_page(struct page *dst, struct page *src,
+@@ -4088,3 +4088,35 @@ void copy_user_huge_page(struct page *dst, struct page *src,
}
}
#endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0117-ARM-Initialize-ptl-lock-for-vector-page.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0117-ARM-Initialize-ptl-lock-for-vector-page.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0117-ARM-Initialize-ptl-lock-for-vector-page.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Frank Rowand <frank.rowand at am.sony.com>
Date: Sat, 1 Oct 2011 18:58:13 -0700
-Subject: [PATCH 117/341] ARM: Initialize ptl->lock for vector page
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f4943c58cee6e83da00e30f5cb2cfea528424715
+Subject: [PATCH 117/343] ARM: Initialize ptl->lock for vector page
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=82e2ff8a885aedc17fe16accd8496aca788e3fe1
Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if
PREEMPT_RT_FULL=y because vectors_user_mapping() creates a
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0118-mm-Allow-only-slab-on-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0118-mm-Allow-only-slab-on-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0118-mm-Allow-only-slab-on-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:44:03 -0500
-Subject: [PATCH 118/341] mm: Allow only slab on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=67f38fa9dfe84511102e1682315b42ceae86132b
+Subject: [PATCH 118/343] mm: Allow only slab on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4f1ee7c3fb316edb7e337d2722df1da77118a15d
Signed-off-by: Ingo Molnar <mingo at elte.hu>
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0119-radix-tree-rt-aware.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0119-radix-tree-rt-aware.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0119-radix-tree-rt-aware.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 21:33:18 +0200
-Subject: [PATCH 119/341] radix-tree-rt-aware.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=219d508f39cccb7355d4c15ab9473a7aa1543ea1
+Subject: [PATCH 119/343] radix-tree-rt-aware.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a1b89bdb8672c885ddd2f5a1ec0f7c72b5e48653
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0120-panic-disable-random-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0120-panic-disable-random-on-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0120-panic-disable-random-on-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 10 Apr 2012 14:34:04 -0400
-Subject: [PATCH 120/341] panic-disable-random-on-rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=275f84e7b1d7ed92e7827cbe9dfe8c92ef9d6a5c
+Subject: [PATCH 120/343] panic-disable-random-on-rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b3c8363bca7556057d2d73a6a162cdfdf1e907ee
---
kernel/panic.c | 2 ++
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0121-ipc-Make-the-ipc-code-rt-aware.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0121-ipc-Make-the-ipc-code-rt-aware.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0121-ipc-Make-the-ipc-code-rt-aware.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:12 -0500
-Subject: [PATCH 121/341] ipc: Make the ipc code -rt aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9999c4a9fed7a032d46fb81b60e6d71426ea97da
+Subject: [PATCH 121/343] ipc: Make the ipc code -rt aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dceeb6de0ce55189b92dd46828c9006faa444457
RT serializes the code with the (rt)spinlock but keeps preemption
enabled. Some parts of the code need to be atomic nevertheless.
@@ -38,7 +38,7 @@
/* pipelined_receive() - if there is task waiting in sys_mq_timedsend()
diff --git a/ipc/msg.c b/ipc/msg.c
-index 7385de2..06642ac 100644
+index 25f1a61..876b844 100644
--- a/ipc/msg.c
+++ b/ipc/msg.c
@@ -259,12 +259,20 @@ static void expunge_all(struct msg_queue *msq, int res)
@@ -62,7 +62,7 @@
}
}
-@@ -611,6 +619,12 @@ static inline int pipelined_send(struct msg_queue *msq, struct msg_msg *msg)
+@@ -613,6 +621,12 @@ static inline int pipelined_send(struct msg_queue *msq, struct msg_msg *msg)
!security_msg_queue_msgrcv(msq, msg, msr->r_tsk,
msr->r_msgtype, msr->r_mode)) {
@@ -75,7 +75,7 @@
list_del(&msr->r_list);
if (msr->r_maxsize < msg->m_ts) {
msr->r_msg = NULL;
-@@ -624,9 +638,11 @@ static inline int pipelined_send(struct msg_queue *msq, struct msg_msg *msg)
+@@ -626,9 +640,11 @@ static inline int pipelined_send(struct msg_queue *msq, struct msg_msg *msg)
wake_up_process(msr->r_tsk);
smp_mb();
msr->r_msg = msg;
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0122-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0122-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0122-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: KOBAYASHI Yoshitake <yoshitake.kobayashi at toshiba.co.jp>
Date: Sat, 23 Jul 2011 11:57:36 +0900
-Subject: [PATCH 122/341] ipc/mqueue: Add a critical section to avoid a
+Subject: [PATCH 122/343] ipc/mqueue: Add a critical section to avoid a
deadlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=09e1a6490b11ac0136bd810f08affbef89ab454c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d23558d702af34bd3c6864204e51688674663121
(Repost for v3.0-rt1 and changed the distination addreses)
I have tested the following patch on v3.0-rt1 with PREEMPT_RT_FULL.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0123-relay-fix-timer-madness.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0123-relay-fix-timer-madness.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0123-relay-fix-timer-madness.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:44:07 -0500
-Subject: [PATCH 123/341] relay: fix timer madness
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4203dc9d4f8319cfdd779534eddda0ba65c53062
+Subject: [PATCH 123/343] relay: fix timer madness
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=10a8f4a0b4d2172dc16bee9852cc4b278cadfac3
remove timer calls (!!!) from deep within the tracing infrastructure.
This was totally bogus code that can cause lockups and worse. Poll
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0124-net-ipv4-route-use-locks-on-up-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0124-net-ipv4-route-use-locks-on-up-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0124-net-ipv4-route-use-locks-on-up-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 15 Jul 2011 16:24:45 +0200
-Subject: [PATCH 124/341] net-ipv4-route-use-locks-on-up-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a35f89694d80cacb0420dec386c89e8af3f4f597
+Subject: [PATCH 124/343] net-ipv4-route-use-locks-on-up-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6d1953fb415b4688f453677944627be23a6563e6
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -9,7 +9,7 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
-index 6768ce2..fd88723 100644
+index 6526110..050821f 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -251,7 +251,7 @@ struct rt_hash_bucket {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0125-workqueue-avoid-the-lock-in-cpu-dying.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0125-workqueue-avoid-the-lock-in-cpu-dying.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0125-workqueue-avoid-the-lock-in-cpu-dying.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 24 Jun 2011 20:39:24 +0200
-Subject: [PATCH 125/341] workqueue-avoid-the-lock-in-cpu-dying.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ab47d7a9c766e87452f35a32179e15980764411b
+Subject: [PATCH 125/343] workqueue-avoid-the-lock-in-cpu-dying.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6dacec68c0a9256cba79c8eab4306eb1e4559a40
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -9,10 +9,10 @@
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index db73cf3..c61bd39 100644
+index 15063bc..c7e6030 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
-@@ -3564,6 +3564,25 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
+@@ -3571,6 +3571,25 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
kthread_stop(new_trustee);
return NOTIFY_BAD;
}
@@ -38,7 +38,7 @@
}
/* some are called w/ irq disabled, don't disturb irq status */
-@@ -3583,16 +3602,6 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
+@@ -3590,16 +3609,6 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
gcwq->first_idle = new_worker;
break;
@@ -55,7 +55,7 @@
case CPU_POST_DEAD:
gcwq->trustee_state = TRUSTEE_BUTCHER;
/* fall through */
-@@ -3626,6 +3635,7 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
+@@ -3633,6 +3642,7 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
spin_unlock_irqrestore(&gcwq->lock, flags);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0126-timers-prepare-for-full-preemption.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0126-timers-prepare-for-full-preemption.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0126-timers-prepare-for-full-preemption.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:34 -0500
-Subject: [PATCH 126/341] timers: prepare for full preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1cb487c11fc91640371064e01d5a4fe3e8b54c70
+Subject: [PATCH 126/343] timers: prepare for full preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b720621644fcd8c70824649515988dc8dfe0248a
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
@@ -28,7 +28,7 @@
#else
# define del_timer_sync(t) del_timer(t)
diff --git a/kernel/timer.c b/kernel/timer.c
-index f8b05a4..284cdb0 100644
+index 349953e..fa61f0a 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -76,6 +76,7 @@ struct tvec_root {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0127-timers-preempt-rt-support.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0127-timers-preempt-rt-support.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0127-timers-preempt-rt-support.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:20 -0500
-Subject: [PATCH 127/341] timers: preempt-rt support
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=81509d00131905edb86a3e4a50465436d86e616a
+Subject: [PATCH 127/343] timers: preempt-rt support
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b545e53d450c18a1886aa5e9eb84450a05ac9af7
Signed-off-by: Ingo Molnar <mingo at elte.hu>
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
@@ -10,7 +10,7 @@
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/kernel/timer.c b/kernel/timer.c
-index 284cdb0..d35188b 100644
+index fa61f0a..ddc7b7e 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1298,6 +1298,22 @@ unsigned long get_next_timer_interrupt(unsigned long now)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0128-timers-fix-timer-hotplug-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0128-timers-fix-timer-hotplug-on-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0128-timers-fix-timer-hotplug-on-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:32 -0500
-Subject: [PATCH 128/341] timers: fix timer hotplug on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=072d2db2ccf10831e20d44861c09f43287080273
+Subject: [PATCH 128/343] timers: fix timer hotplug on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=778fbb03b81160a0ed343fd55fd48f5280fcea83
Here we are in the CPU_DEAD notifier, and we must not sleep nor
enable interrupts.
@@ -13,7 +13,7 @@
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/kernel/timer.c b/kernel/timer.c
-index d35188b..20e20ab 100644
+index ddc7b7e..8b3eb6e 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1717,6 +1717,7 @@ static void __cpuinit migrate_timers(int cpu)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0129-timers-mov-printk_tick-to-soft-interrupt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0129-timers-mov-printk_tick-to-soft-interrupt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0129-timers-mov-printk_tick-to-soft-interrupt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 08:44:30 -0500
-Subject: [PATCH 129/341] timers: mov printk_tick to soft interrupt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d978bd7c5fde3bee362fc066af75b17d6ad9dba4
+Subject: [PATCH 129/343] timers: mov printk_tick to soft interrupt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cfa787c4a180b171bb94a6c645c91597ac80d569
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
Signed-off-by: Ingo Molnar <mingo at elte.hu>
@@ -10,7 +10,7 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/timer.c b/kernel/timer.c
-index 20e20ab..3e2dedc 100644
+index 8b3eb6e..20bd95a 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1340,7 +1340,6 @@ void update_process_times(int user_tick)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0130-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0130-timer-delay-waking-softirqs-from-the-jiffy-tick.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0130-timer-delay-waking-softirqs-from-the-jiffy-tick.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Fri, 21 Aug 2009 11:56:45 +0200
-Subject: [PATCH 130/341] timer: delay waking softirqs from the jiffy tick
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1c9beddee05b6378ae72461fb6e7e8e946ead40e
+Subject: [PATCH 130/343] timer: delay waking softirqs from the jiffy tick
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=52204f182a418bb8ca5a8c2c13686ca01689dcbc
People were complaining about broken balancing with the recent -rt
series.
@@ -57,7 +57,7 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/timer.c b/kernel/timer.c
-index 3e2dedc..4c3e1f1 100644
+index 20bd95a..9a1f684 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1338,13 +1338,13 @@ void update_process_times(int user_tick)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0131-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0131-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0131-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 21 Jul 2011 15:23:39 +0200
-Subject: [PATCH 131/341] timers: Avoid the switch timers base set to NULL
+Subject: [PATCH 131/343] timers: Avoid the switch timers base set to NULL
trick on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=57d8b5f4db373391183306858fa4406e710039e6
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=38a5e92f3cf4e10bc48e61d97aba9ce9ac3674b1
On RT that code is preemptible, so we cannot assign NULL to timers
base as a preempter would spin forever in lock_timer_base().
@@ -13,7 +13,7 @@
1 file changed, 32 insertions(+), 8 deletions(-)
diff --git a/kernel/timer.c b/kernel/timer.c
-index 4c3e1f1..4bd3b6e 100644
+index 9a1f684..2adeda8 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -658,6 +658,36 @@ static struct tvec_base *lock_timer_base(struct timer_list *timer,
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0132-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0132-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0132-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Yong Zhang <yong.zhang0 at gmail.com>
Date: Sun, 16 Oct 2011 18:56:45 +0800
-Subject: [PATCH 132/341] printk: Don't call printk_tick in printk_needs_cpu()
+Subject: [PATCH 132/343] printk: Don't call printk_tick in printk_needs_cpu()
on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d58292a9caa42c9284da05b6633892dc5398dd6f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b771b6ab4dfe1cf6f2cf27b7a63cdda8de100a3
printk_tick() can't be called in atomic context when RT is enabled,
otherwise below warning will show:
@@ -33,10 +33,10 @@
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/printk.c b/kernel/printk.c
-index 14f362a..33de8db 100644
+index ede5e31..6bf5457 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
-@@ -1285,8 +1285,8 @@ void printk_tick(void)
+@@ -1284,8 +1284,8 @@ void printk_tick(void)
int printk_needs_cpu(int cpu)
{
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0133-hrtimers-prepare-full-preemption.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0133-hrtimers-prepare-full-preemption.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0133-hrtimers-prepare-full-preemption.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:29:34 -0500
-Subject: [PATCH 133/341] hrtimers: prepare full preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2ae8c8c1b624d2b71f23c344ddfc8dcd653d4431
+Subject: [PATCH 133/343] hrtimers: prepare full preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5fde672d1ebca7690915d884cde729c7173843d
Make cancellation of a running callback in softirq context safe
against preemption.
@@ -44,10 +44,10 @@
extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index 728f9a8..f12ae2b 100644
+index 63bccf9..4b8c68d 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
-@@ -849,6 +849,32 @@ u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
+@@ -871,6 +871,32 @@ u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
}
EXPORT_SYMBOL_GPL(hrtimer_forward);
@@ -80,7 +80,7 @@
/*
* enqueue_hrtimer - internal function to (re)start a timer
*
-@@ -1088,7 +1114,7 @@ int hrtimer_cancel(struct hrtimer *timer)
+@@ -1110,7 +1136,7 @@ int hrtimer_cancel(struct hrtimer *timer)
if (ret >= 0)
return ret;
@@ -89,7 +89,7 @@
}
}
EXPORT_SYMBOL_GPL(hrtimer_cancel);
-@@ -1504,6 +1530,8 @@ void hrtimer_run_queues(void)
+@@ -1526,6 +1552,8 @@ void hrtimer_run_queues(void)
}
raw_spin_unlock(&cpu_base->lock);
}
@@ -98,7 +98,7 @@
}
/*
-@@ -1664,6 +1692,9 @@ static void __cpuinit init_hrtimers_cpu(int cpu)
+@@ -1686,6 +1714,9 @@ static void __cpuinit init_hrtimers_cpu(int cpu)
}
hrtimer_init_hres(cpu_base);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0134-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0134-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0134-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 08:44:31 -0500
-Subject: [PATCH 134/341] hrtimer: fixup hrtimer callback changes for
+Subject: [PATCH 134/343] hrtimer: fixup hrtimer callback changes for
preempt-rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7c7ae943826f67291a38fe01e39fc8ddb61f3b19
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e87c7575aa3d61bcde226087b98e82b86a232368
In preempt-rt we can not call the callbacks which take sleeping locks
from the timer interrupt context.
@@ -42,10 +42,10 @@
ktime_t (*get_time)(void);
ktime_t softirq_time;
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index f12ae2b..90b72f9 100644
+index 4b8c68d..653c7f7 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
-@@ -594,8 +594,7 @@ static int hrtimer_reprogram(struct hrtimer *timer,
+@@ -616,8 +616,7 @@ static int hrtimer_reprogram(struct hrtimer *timer,
* When the callback is running, we do not reprogram the clock event
* device. The timer callback is either running on a different CPU or
* the callback is executed in the hrtimer_interrupt context. The
@@ -55,7 +55,7 @@
*/
if (hrtimer_callback_running(timer))
return 0;
-@@ -630,6 +629,9 @@ static int hrtimer_reprogram(struct hrtimer *timer,
+@@ -652,6 +651,9 @@ static int hrtimer_reprogram(struct hrtimer *timer,
return res;
}
@@ -65,7 +65,7 @@
/*
* Initialize the high resolution related parts of cpu_base
*/
-@@ -735,6 +737,11 @@ static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer,
+@@ -757,6 +759,11 @@ static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer,
}
static inline void hrtimer_init_hres(struct hrtimer_cpu_base *base) { }
static inline void retrigger_next_event(void *arg) { }
@@ -77,7 +77,7 @@
#endif /* CONFIG_HIGH_RES_TIMERS */
-@@ -866,9 +873,9 @@ void hrtimer_wait_for_timer(const struct hrtimer *timer)
+@@ -888,9 +895,9 @@ void hrtimer_wait_for_timer(const struct hrtimer *timer)
{
struct hrtimer_clock_base *base = timer->base;
@@ -89,7 +89,7 @@
}
#else
-@@ -918,6 +925,11 @@ static void __remove_hrtimer(struct hrtimer *timer,
+@@ -940,6 +947,11 @@ static void __remove_hrtimer(struct hrtimer *timer,
if (!(timer->state & HRTIMER_STATE_ENQUEUED))
goto out;
@@ -101,7 +101,7 @@
next_timer = timerqueue_getnext(&base->active);
timerqueue_del(&base->active, &timer->node);
if (&timer->node == next_timer) {
-@@ -1014,8 +1026,29 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
+@@ -1036,8 +1048,29 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
*
* XXX send_remote_softirq() ?
*/
@@ -133,7 +133,7 @@
if (wakeup) {
/*
* We need to drop cpu_base->lock to avoid a
-@@ -1193,6 +1226,7 @@ static void __hrtimer_init(struct hrtimer *timer, clockid_t clock_id,
+@@ -1215,6 +1248,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];
@@ -141,7 +141,7 @@
timerqueue_init(&timer->node);
#ifdef CONFIG_TIMER_STATS
-@@ -1276,10 +1310,118 @@ static void __run_hrtimer(struct hrtimer *timer, ktime_t *now)
+@@ -1298,10 +1332,118 @@ static void __run_hrtimer(struct hrtimer *timer, ktime_t *now)
timer->state &= ~HRTIMER_STATE_CALLBACK;
}
@@ -262,7 +262,7 @@
/*
* High resolution timer interrupt
* Called with interrupts disabled
-@@ -1288,7 +1430,7 @@ void hrtimer_interrupt(struct clock_event_device *dev)
+@@ -1310,7 +1452,7 @@ void hrtimer_interrupt(struct clock_event_device *dev)
{
struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
ktime_t expires_next, now, entry_time, delta;
@@ -271,7 +271,7 @@
BUG_ON(!cpu_base->hres_active);
cpu_base->nr_events++;
-@@ -1356,7 +1498,10 @@ retry:
+@@ -1378,7 +1520,10 @@ retry:
break;
}
@@ -283,7 +283,7 @@
}
}
-@@ -1371,6 +1516,10 @@ retry:
+@@ -1393,6 +1538,10 @@ retry:
if (expires_next.tv64 == KTIME_MAX ||
!tick_program_event(expires_next, 0)) {
cpu_base->hang_detected = 0;
@@ -294,7 +294,7 @@
return;
}
-@@ -1451,6 +1600,12 @@ void hrtimer_peek_ahead_timers(void)
+@@ -1473,6 +1622,12 @@ void hrtimer_peek_ahead_timers(void)
local_irq_restore(flags);
}
@@ -307,7 +307,7 @@
static void run_hrtimer_softirq(struct softirq_action *h)
{
struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
-@@ -1460,15 +1615,9 @@ static void run_hrtimer_softirq(struct softirq_action *h)
+@@ -1482,15 +1637,9 @@ static void run_hrtimer_softirq(struct softirq_action *h)
clock_was_set();
}
@@ -324,7 +324,7 @@
/*
* Called from timer softirq every jiffy, expire hrtimers:
*
-@@ -1501,7 +1650,7 @@ void hrtimer_run_queues(void)
+@@ -1523,7 +1672,7 @@ void hrtimer_run_queues(void)
struct timerqueue_node *node;
struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
struct hrtimer_clock_base *base;
@@ -333,7 +333,7 @@
if (hrtimer_hres_active())
return;
-@@ -1526,12 +1675,16 @@ void hrtimer_run_queues(void)
+@@ -1548,12 +1697,16 @@ void hrtimer_run_queues(void)
hrtimer_get_expires_tv64(timer))
break;
@@ -352,7 +352,7 @@
}
/*
-@@ -1553,6 +1706,7 @@ static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer)
+@@ -1575,6 +1728,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;
@@ -360,7 +360,7 @@
sl->task = task;
}
EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
-@@ -1689,6 +1843,7 @@ static void __cpuinit init_hrtimers_cpu(int cpu)
+@@ -1711,6 +1865,7 @@ static void __cpuinit init_hrtimers_cpu(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);
@@ -368,7 +368,7 @@
}
hrtimer_init_hres(cpu_base);
-@@ -1807,9 +1962,7 @@ void __init hrtimers_init(void)
+@@ -1829,9 +1984,7 @@ void __init hrtimers_init(void)
hrtimer_cpu_notify(&hrtimers_nb, (unsigned long)CPU_UP_PREPARE,
(void *)(long)smp_processor_id());
register_cpu_notifier(&hrtimers_nb);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0135-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0135-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0135-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Fri, 12 Aug 2011 17:39:54 +0200
-Subject: [PATCH 135/341] hrtimer: Don't call the timer handler from
+Subject: [PATCH 135/343] hrtimer: Don't call the timer handler from
hrtimer_start
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=997202aa1b4c0725922580f21814d15076c2a4e5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3b61892af02276d2a7a72dd45dcc7290e2b0a301
[<ffffffff812de4a9>] __delay+0xf/0x11
[<ffffffff812e36e9>] do_raw_spin_lock+0xd2/0x13c
@@ -33,10 +33,10 @@
1 file changed, 22 insertions(+), 24 deletions(-)
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index 90b72f9..f8b24f9 100644
+index 653c7f7..888dd85 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
-@@ -1026,30 +1026,19 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
+@@ -1048,30 +1048,19 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
*
* XXX send_remote_softirq() ?
*/
@@ -78,7 +78,7 @@
/*
* We need to drop cpu_base->lock to avoid a
* lock ordering issue vs. rq->lock.
-@@ -1058,9 +1047,18 @@ again:
+@@ -1080,9 +1069,18 @@ again:
raise_softirq_irqoff(HRTIMER_SOFTIRQ);
local_irq_restore(flags);
return ret;
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0136-hrtimer-fix-reprogram-madness.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0136-hrtimer-fix-reprogram-madness.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0136-hrtimer-fix-reprogram-madness.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 14 Sep 2011 14:48:43 +0200
-Subject: [PATCH 136/341] hrtimer-fix-reprogram-madness.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f66df18aba50cd01ffdfb94e565f839fd350cf84
+Subject: [PATCH 136/343] hrtimer-fix-reprogram-madness.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c98a0eb546191c9fc8feb1d3b630a7e27fe6184d
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -9,10 +9,10 @@
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index f8b24f9..8c2ac15 100644
+index 888dd85..92b941f 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
-@@ -1330,7 +1330,11 @@ static void hrtimer_rt_reprogram(int restart, struct hrtimer *timer,
+@@ -1352,7 +1352,11 @@ static void hrtimer_rt_reprogram(int restart, struct hrtimer *timer,
if (!enqueue_hrtimer(timer, base))
return;
@@ -25,7 +25,7 @@
goto requeue;
} else if (hrtimer_active(timer)) {
-@@ -1339,6 +1343,7 @@ static void hrtimer_rt_reprogram(int restart, struct hrtimer *timer,
+@@ -1361,6 +1365,7 @@ static void hrtimer_rt_reprogram(int restart, struct hrtimer *timer,
* the event device.
*/
if (&timer->node == base->active.next &&
@@ -33,7 +33,7 @@
hrtimer_reprogram(timer, base))
goto requeue;
}
-@@ -1351,6 +1356,7 @@ requeue:
+@@ -1373,6 +1378,7 @@ requeue:
*/
__remove_hrtimer(timer, base, timer->state, 0);
list_add_tail(&timer->cb_entry, &base->expired);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0137-timer-fd-Prevent-live-lock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0137-timer-fd-Prevent-live-lock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0137-timer-fd-Prevent-live-lock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 25 Jan 2012 11:08:40 +0100
-Subject: [PATCH 137/341] timer-fd: Prevent live lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb44c4db348b8c70f48a89d224d883052b4368fe
+Subject: [PATCH 137/343] timer-fd: Prevent live lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fa8753d6d2fd85af9a96cfe37c0f80ee9799658c
If hrtimer_try_to_cancel() requires a retry, then depending on the
priority setting te retry loop might prevent timer callback completion
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0138-posix-timers-thread-posix-cpu-timers-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0138-posix-timers-thread-posix-cpu-timers-on-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0138-posix-timers-thread-posix-cpu-timers-on-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: John Stultz <johnstul at us.ibm.com>
Date: Fri, 3 Jul 2009 08:29:58 -0500
-Subject: [PATCH 138/341] posix-timers: thread posix-cpu-timers on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ebf0b2d58b5d3765f065edf34339478cd336c6e2
+Subject: [PATCH 138/343] posix-timers: thread posix-cpu-timers on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=00344e259f6cf7caf47690a47aaaae45b3afdb7f
posix-cpu-timer code takes non -rt safe locks in hard irq
context. Move it to a thread.
@@ -44,7 +44,7 @@
[PIDTYPE_PID] = INIT_PID_LINK(PIDTYPE_PID), \
[PIDTYPE_PGID] = INIT_PID_LINK(PIDTYPE_PGID), \
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 989efdd..22ff3d5 100644
+index 611ae1c..386f7d5 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1364,6 +1364,9 @@ struct task_struct {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0139-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0139-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0139-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Arnaldo Carvalho de Melo <acme at redhat.com>
Date: Fri, 3 Jul 2009 08:30:00 -0500
-Subject: [PATCH 139/341] posix-timers: Shorten posix_cpu_timers/<CPU> kernel
+Subject: [PATCH 139/343] posix-timers: Shorten posix_cpu_timers/<CPU> kernel
thread names
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=559788df7b5b2c993a8557cdc7ecadcb16041a85
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b28e2e8caeead93c518e66fa343f1e9a10cfe887
Shorten the softirq kernel thread names because they always overflow the
limited comm length, appearing as "posix_cpu_timer" CPU# times.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0140-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0140-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0140-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 08:44:44 -0500
-Subject: [PATCH 140/341] posix-timers: Avoid wakeups when no timers are active
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=876fdd8bb31f5409d819b8a48bae431ef46f9c4f
+Subject: [PATCH 140/343] posix-timers: Avoid wakeups when no timers are active
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fd09bb43ccbe826c2615a1210bddb4b6948eb844
Waking the thread even when no timers are scheduled is useless.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0141-sched-delay-put-task.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0141-sched-delay-put-task.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0141-sched-delay-put-task.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,10 +1,9 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 31 May 2011 16:59:16 +0200
-Subject: [PATCH 141/341] sched-delay-put-task.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ec8a640c7f57285312ee9fddeca07800bb7cb55a
+Subject: [PATCH 141/343] sched-delay-put-task.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6e72c6b3453db5f2bbb3e8965f41c200248f6750
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-[bwh: Adjust context to apply after Debian ABI fix]
---
include/linux/sched.h | 13 +++++++++++++
kernel/fork.c | 11 +++++++++++
@@ -22,7 +21,7 @@
};
/* Future-safe accessor for struct task_struct's cpus_allowed. */
-@@ -1786,6 +1789,15 @@ extern struct pid *cad_pid;
+@@ -1804,6 +1807,15 @@ extern struct pid *cad_pid;
extern void free_task(struct task_struct *tsk);
#define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0)
@@ -38,7 +37,7 @@
extern void __put_task_struct(struct task_struct *t);
static inline void put_task_struct(struct task_struct *t)
-@@ -1793,6 +1805,7 @@ static inline void put_task_struct(struc
+@@ -1811,6 +1823,7 @@ static inline void put_task_struct(struc
if (atomic_dec_and_test(&t->usage))
__put_task_struct(t);
}
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0142-sched-limit-nr-migrate.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0142-sched-limit-nr-migrate.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0142-sched-limit-nr-migrate.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 6 Jun 2011 12:12:51 +0200
-Subject: [PATCH 142/341] sched-limit-nr-migrate.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=07da51c7d0dd116cc245096f722d0b4c1e820f95
+Subject: [PATCH 142/343] sched-limit-nr-migrate.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=651d0d984623e4859b4f39e7a8d735232c319b14
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0143-sched-mmdrop-delayed.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0143-sched-mmdrop-delayed.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0143-sched-mmdrop-delayed.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,13 +1,12 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 6 Jun 2011 12:20:33 +0200
-Subject: [PATCH 143/341] sched-mmdrop-delayed.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=16b8acd084ef26d1c0b031cd66de2767c1f514e2
+Subject: [PATCH 143/343] sched-mmdrop-delayed.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=594aec7e86ad4ef67586dbb4afb09da734a44acd
Needs thread context (pgd_lock) -> ifdeffed. workqueues wont work with
RT
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-[bwh: Adjust to apply after 'mm: Avoid ABI change in 3.2.51']
---
include/linux/mm_types.h | 4 ++++
include/linux/sched.h | 12 ++++++++++++
@@ -25,21 +24,19 @@
#include <asm/page.h>
#include <asm/mmu.h>
-@@ -394,6 +395,9 @@ struct mm_struct {
- #ifdef CONFIG_CPUMASK_OFFSTACK
- struct cpumask cpumask_allocation;
+@@ -397,6 +398,9 @@ struct mm_struct {
+ #ifndef __GENKSYMS__
+ unsigned long mmap_legacy_base; /* base of mmap area in bottom-up allocations */
#endif
+#ifdef CONFIG_PREEMPT_RT_BASE
+ struct rcu_head delayed_drop;
+#endif
+ };
- #ifndef __GENKSYMS__
- unsigned long mmap_legacy_base; /* base of mmap area in bottom-up allocations */
-diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 8e1887b..6d432ad 100644
+ static inline void mm_init_cpumask(struct mm_struct *mm)
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -2285,12 +2285,24 @@ extern struct mm_struct * mm_alloc(void);
+@@ -2305,12 +2305,24 @@ extern struct mm_struct * mm_alloc(void)
/* mmdrop drops the mm and the page tables */
extern void __mmdrop(struct mm_struct *);
@@ -64,8 +61,6 @@
/* mmput gets rid of the mappings and all user-space */
extern void mmput(struct mm_struct *);
/* Grab a reference to a task's mm, if it is not already going away */
-diff --git a/kernel/fork.c b/kernel/fork.c
-index 2b985c7..e2d8055 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -203,7 +203,7 @@ EXPORT_SYMBOL_GPL(__put_task_struct);
@@ -97,11 +92,9 @@
/*
* Decrement the use count and release all resources for an mm.
*/
-diff --git a/kernel/sched.c b/kernel/sched.c
-index 45a4819..7204307 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
-@@ -3175,8 +3175,12 @@ static void finish_task_switch(struct rq *rq, struct task_struct *prev)
+@@ -3175,8 +3175,12 @@ static void finish_task_switch(struct rq
finish_lock_switch(rq, prev);
fire_sched_in_preempt_notifiers(current);
@@ -115,7 +108,7 @@
if (unlikely(prev_state == TASK_DEAD)) {
/*
* Remove function-return probe instances associated with this
-@@ -6500,6 +6504,8 @@ static int migration_cpu_stop(void *data)
+@@ -6500,6 +6504,8 @@ static int migration_cpu_stop(void *data
#ifdef CONFIG_HOTPLUG_CPU
@@ -138,7 +131,7 @@
}
/*
-@@ -6865,6 +6876,12 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
+@@ -6865,6 +6876,12 @@ migration_call(struct notifier_block *nf
migrate_nr_uninterruptible(rq);
calc_global_load_remove(rq);
break;
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0144-sched-rt-mutex-wakeup.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0144-sched-rt-mutex-wakeup.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0144-sched-rt-mutex-wakeup.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 25 Jun 2011 09:21:04 +0200
-Subject: [PATCH 144/341] sched-rt-mutex-wakeup.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fee8dda9e3b9c192172e09aee9d6e73694811840
+Subject: [PATCH 144/343] sched-rt-mutex-wakeup.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=717d23dc74ebdafbc74da59d12da3715d7262a64
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -10,7 +10,7 @@
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 6d432ad..7342d25 100644
+index 2286a9e..9025d6e 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1077,6 +1077,7 @@ struct sched_domain;
@@ -29,7 +29,7 @@
void *stack;
atomic_t usage;
unsigned int flags; /* per process flags, defined below */
-@@ -2195,6 +2197,7 @@ extern void xtime_update(unsigned long ticks);
+@@ -2213,6 +2215,7 @@ extern void xtime_update(unsigned long ticks);
extern int wake_up_state(struct task_struct *tsk, unsigned int state);
extern int wake_up_process(struct task_struct *tsk);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0145-sched-prevent-idle-boost.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0145-sched-prevent-idle-boost.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0145-sched-prevent-idle-boost.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 6 Jun 2011 20:07:38 +0200
-Subject: [PATCH 145/341] sched-prevent-idle-boost.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b1e34d11e9924b31ebab7e41ec2e1112a8c2421f
+Subject: [PATCH 145/343] sched-prevent-idle-boost.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=48c4d0ca24e11e209fa234b73574c31ec8202071
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0146-sched-might-sleep-do-not-account-rcu-depth.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0146-sched-might-sleep-do-not-account-rcu-depth.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0146-sched-might-sleep-do-not-account-rcu-depth.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 7 Jun 2011 09:19:06 +0200
-Subject: [PATCH 146/341] sched-might-sleep-do-not-account-rcu-depth.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=499bd9cdf42b00b65180d4b2cbb6250666c84eb9
+Subject: [PATCH 146/343] sched-might-sleep-do-not-account-rcu-depth.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1dbb826d2179436f6dc19ab4b3249a104840c1ae
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0147-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0147-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0147-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Tue, 16 Mar 2010 14:31:44 -0700
-Subject: [PATCH 147/341] sched: Break out from load_balancing on rq_lock
+Subject: [PATCH 147/343] sched: Break out from load_balancing on rq_lock
contention
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=627f202145fe9d3f082d8b9d922fd05115d4786f
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=501c96be626a3dbb51815e29eea42aae061c11e1
Also limit NEW_IDLE pull
@@ -13,7 +13,7 @@
1 file changed, 18 insertions(+)
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
-index 37f3f39..e324d35 100644
+index 4c6dae1..ffbc079 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -2901,6 +2901,10 @@ balance_tasks(struct rq *this_rq, int this_cpu, struct rq *busiest,
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0148-sched-cond-resched.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0148-sched-cond-resched.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0148-sched-cond-resched.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 7 Jun 2011 11:25:03 +0200
-Subject: [PATCH 148/341] sched-cond-resched.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ce70d04aeeb60651528a52b0989592cca51c77c2
+Subject: [PATCH 148/343] sched-cond-resched.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6656d9947e1f01391441574cde71bc11e25ef54b
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0149-cond-resched-softirq-fix.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0149-cond-resched-softirq-fix.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0149-cond-resched-softirq-fix.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 14 Jul 2011 09:56:44 +0200
-Subject: [PATCH 149/341] cond-resched-softirq-fix.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5e6e95371704a7e3b86497b5d76340f66139bc3a
+Subject: [PATCH 149/343] cond-resched-softirq-fix.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5c8232c713f45f0fc93810cee8be8d9438d18b8d
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -10,10 +10,10 @@
2 files changed, 6 insertions(+)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 7342d25..1d65b27 100644
+index 9025d6e..6ecf138 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -2619,12 +2619,16 @@ extern int __cond_resched_lock(spinlock_t *lock);
+@@ -2637,12 +2637,16 @@ extern int __cond_resched_lock(spinlock_t *lock);
__cond_resched_lock(lock); \
})
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0150-sched-no-work-when-pi-blocked.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0150-sched-no-work-when-pi-blocked.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0150-sched-no-work-when-pi-blocked.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 20:46:52 +0200
-Subject: [PATCH 150/341] sched-no-work-when-pi-blocked.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=70685c231ae909d0fcad1ba2fa54cdaeb917013a
+Subject: [PATCH 150/343] sched-no-work-when-pi-blocked.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=356b04000a17117f66c55106adc94857362e3527
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -10,10 +10,10 @@
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 1d65b27..5fa53fc 100644
+index 6ecf138..92d79c9 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -2112,12 +2112,20 @@ extern unsigned int sysctl_sched_cfs_bandwidth_slice;
+@@ -2130,12 +2130,20 @@ extern unsigned int sysctl_sched_cfs_bandwidth_slice;
extern int rt_mutex_getprio(struct task_struct *p);
extern void rt_mutex_setprio(struct task_struct *p, int prio);
extern void rt_mutex_adjust_pi(struct task_struct *p);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0151-cond-resched-lock-rt-tweak.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0151-cond-resched-lock-rt-tweak.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0151-cond-resched-lock-rt-tweak.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 22:51:33 +0200
-Subject: [PATCH 151/341] cond-resched-lock-rt-tweak.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d588b87fdd6ba525373f7a2d9bc1bd3d1b9f095b
+Subject: [PATCH 151/343] cond-resched-lock-rt-tweak.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9a93c51db4516ca9b0310280efadb3fbe555af57
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -9,10 +9,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 5fa53fc..335afa2 100644
+index 92d79c9..cc247ce 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -2616,7 +2616,7 @@ extern int _cond_resched(void);
+@@ -2634,7 +2634,7 @@ extern int _cond_resched(void);
extern int __cond_resched_lock(spinlock_t *lock);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0152-sched-disable-ttwu-queue.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0152-sched-disable-ttwu-queue.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0152-sched-disable-ttwu-queue.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 13 Sep 2011 16:42:35 +0200
-Subject: [PATCH 152/341] sched-disable-ttwu-queue.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=463651a01d83027bf869db82a73690c5275e1ca2
+Subject: [PATCH 152/343] sched-disable-ttwu-queue.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=76886646908dbab1b0f2f119c59663edaaeaf516
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0153-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0153-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0153-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 18 Jul 2011 17:03:52 +0200
-Subject: [PATCH 153/341] sched: Disable CONFIG_RT_GROUP_SCHED on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=46531fbf6ec4254980dd8376c603f31a77870625
+Subject: [PATCH 153/343] sched: Disable CONFIG_RT_GROUP_SCHED on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=23c8ae532d1328d86a4b92900168f98bba386235
Carsten reported problems when running:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0154-sched-ttwu-Return-success-when-only-changing-the-sav.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0154-sched-ttwu-Return-success-when-only-changing-the-sav.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0154-sched-ttwu-Return-success-when-only-changing-the-sav.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 13 Dec 2011 21:42:19 +0100
-Subject: [PATCH 154/341] sched: ttwu: Return success when only changing the
+Subject: [PATCH 154/343] 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=8278fb56ec787ac26e0b317975b3a3a227a3a856
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=41808813001d65a68e50cd5f79ba156ab8db8779
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
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0155-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0155-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0155-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:27 -0500
-Subject: [PATCH 155/341] stop_machine: convert stop_machine_run() to
+Subject: [PATCH 155/343] 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=13bbf4180f0ad59648f2bb1fe2f94c831fd23f9d
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1d8c3feb60e501326e31e9bbcb868e97998e7083
Instead of playing with non-preemption, introduce explicit
startup serialization. This is more robust and cleaner as
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0156-stomp-machine-mark-stomper-thread.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0156-stomp-machine-mark-stomper-thread.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0156-stomp-machine-mark-stomper-thread.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 19:53:19 +0200
-Subject: [PATCH 156/341] stomp-machine-mark-stomper-thread.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=06360f431529a891ff07d4f37bb24ef7c49f5627
+Subject: [PATCH 156/343] stomp-machine-mark-stomper-thread.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4bc353e9da26375617f7e195ef0c9b7e12f00cb8
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -10,10 +10,10 @@
2 files changed, 2 insertions(+)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 335afa2..6177858 100644
+index cc247ce..5d2ee83 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1831,6 +1831,7 @@ extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *
+@@ -1849,6 +1849,7 @@ extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *
#define PF_FROZEN 0x00010000 /* frozen for system suspend */
#define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */
#define PF_KSWAPD 0x00040000 /* I am kswapd */
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0157-stomp-machine-raw-lock.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0157-stomp-machine-raw-lock.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0157-stomp-machine-raw-lock.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 29 Jun 2011 11:01:51 +0200
-Subject: [PATCH 157/341] stomp-machine-raw-lock.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8eed45d55df8f221c63857293582fdb7ac21637c
+Subject: [PATCH 157/343] stomp-machine-raw-lock.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=725c265c6bfcd31fa5203d38ce5181473091c4a9
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0158-hotplug-Lightweight-get-online-cpus.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0158-hotplug-Lightweight-get-online-cpus.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0158-hotplug-Lightweight-get-online-cpus.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 15 Jun 2011 12:36:06 +0200
-Subject: [PATCH 158/341] hotplug: Lightweight get online cpus
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=86bc4c50ce5a973e47802b32110b868bfa1d9f34
+Subject: [PATCH 158/343] hotplug: Lightweight get online cpus
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=278c0e272a71b454e8bcb69cc7ef524c956c96c6
get_online_cpus() is a heavy weight function which involves a global
mutex. migrate_disable() wants a simpler construct which prevents only
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0159-hotplug-sync_unplug-No.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0159-hotplug-sync_unplug-No.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0159-hotplug-sync_unplug-No.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Yong Zhang <yong.zhang0 at gmail.com>
Date: Sun, 16 Oct 2011 18:56:43 +0800
-Subject: [PATCH 159/341] hotplug: sync_unplug: No " " in task name
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6477beba71305960c01c7a1acde6c01b0de40a8d
+Subject: [PATCH 159/343] hotplug: sync_unplug: No " " in task name
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=881a33a8abb4a11246c5c8cbb8cec2f22edf0345
Otherwise the output will look a little odd.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0160-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0160-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0160-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Yong Zhang <yong.zhang0 at gmail.com>
Date: Thu, 28 Jul 2011 11:16:00 +0800
-Subject: [PATCH 160/341] hotplug: Reread hotplug_pcp on pin_current_cpu()
+Subject: [PATCH 160/343] 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=b7ad2a74f1bc654e3c30db5a99fff0b27bb60145
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a14e0ff31694c2b0ad8de405992d9d4adcfa16e9
When retry happens, it's likely that the task has been migrated to
another cpu (except unplug failed), but it still derefernces the
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0161-sched-migrate-disable.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0161-sched-migrate-disable.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0161-sched-migrate-disable.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 16 Jun 2011 13:26:08 +0200
-Subject: [PATCH 161/341] sched-migrate-disable.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=69057481fd4ff28a28afef0c5e9f4fa720463e8b
+Subject: [PATCH 161/343] sched-migrate-disable.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e803cf5a3219e4442f8a0c3528a7803e88909562
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -32,7 +32,7 @@
# define preempt_disable_rt() preempt_disable()
# define preempt_enable_rt() preempt_enable()
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 6177858..be2eae5 100644
+index 5d2ee83..c094224 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1268,6 +1268,7 @@ struct task_struct {
@@ -53,7 +53,7 @@
#ifdef CONFIG_PREEMPT_RT_FULL
static inline bool cur_pf_disabled(void) { return current->pagefault_disabled; }
#else
-@@ -2709,6 +2707,15 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu)
+@@ -2727,6 +2725,15 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu)
#endif /* CONFIG_SMP */
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0162-hotplug-use-migrate-disable.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0162-hotplug-use-migrate-disable.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0162-hotplug-use-migrate-disable.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 19:35:29 +0200
-Subject: [PATCH 162/341] hotplug-use-migrate-disable.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=717d00f275e36102c2d1987e5b701d2dc724b141
+Subject: [PATCH 162/343] hotplug-use-migrate-disable.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a6bd46f8992a57f6b6fddbda673f887ecf0b4c8d
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0163-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0163-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0163-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Yong Zhang <yong.zhang0 at gmail.com>
Date: Sun, 16 Oct 2011 18:56:44 +0800
-Subject: [PATCH 163/341] hotplug: Call cpu_unplug_begin() before DOWN_PREPARE
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f8fff36d87b374f089f4816663fa5c4747b554ee
+Subject: [PATCH 163/343] hotplug: Call cpu_unplug_begin() before DOWN_PREPARE
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d5b19d97276a66eb5cb49ad4229f445b1f965429
cpu_unplug_begin() should be called before CPU_DOWN_PREPARE, because
at CPU_DOWN_PREPARE cpu_active is cleared and sched_domain is
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0164-ftrace-migrate-disable-tracing.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0164-ftrace-migrate-disable-tracing.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0164-ftrace-migrate-disable-tracing.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 21:56:42 +0200
-Subject: [PATCH 164/341] ftrace-migrate-disable-tracing.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c4ac00134dac4d845b7821d56acd24cbc43e130
+Subject: [PATCH 164/343] ftrace-migrate-disable-tracing.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f847f6c831426fb93cd99a291804830a44c8c058
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -53,7 +53,7 @@
static void print_func_help_header(struct seq_file *m)
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
-index c212a7f..aca63cc 100644
+index 875fed4..02f4b0d 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -116,6 +116,7 @@ static int trace_define_common_fields(void)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0165-tracing-Show-padding-as-unsigned-short.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0165-tracing-Show-padding-as-unsigned-short.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0165-tracing-Show-padding-as-unsigned-short.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Wed, 16 Nov 2011 13:19:35 -0500
-Subject: [PATCH 165/341] tracing: Show padding as unsigned short
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6f84528514764f6408403ce43cd2474880889335
+Subject: [PATCH 165/343] tracing: Show padding as unsigned short
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3279cb2f31212bdaea7d4511849dea1e3979f3fe
RT added two bytes to trace migrate disable counting to the trace events
and used two bytes of the padding to make the change. The structures and
@@ -33,7 +33,7 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
-index aca63cc..69cc908 100644
+index 02f4b0d..b203aae 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -117,7 +117,7 @@ static int trace_define_common_fields(void)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0166-migrate-disable-rt-variant.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0166-migrate-disable-rt-variant.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0166-migrate-disable-rt-variant.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 19:48:20 +0200
-Subject: [PATCH 166/341] migrate-disable-rt-variant.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ae3a45027dfdc24bf1f451e72ad807333978ac45
+Subject: [PATCH 166/343] migrate-disable-rt-variant.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bb8eab11ab9ac673bbcd1543194b1e51c1a750d8
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0167-sched-Optimize-migrate_disable.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0167-sched-Optimize-migrate_disable.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0167-sched-Optimize-migrate_disable.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Thu, 11 Aug 2011 15:03:35 +0200
-Subject: [PATCH 167/341] sched: Optimize migrate_disable
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6ddcd50b68cfe76732697364866641c85b67557
+Subject: [PATCH 167/343] sched: Optimize migrate_disable
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3e9b5754f8a841b8f4e2fa5c8a5d1e9f422b4647
Change from task_rq_lock() to raw_spin_lock(&rq->lock) to avoid a few
atomic ops. See comment on why it should be safe.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0168-sched-Generic-migrate_disable.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0168-sched-Generic-migrate_disable.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0168-sched-Generic-migrate_disable.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Thu, 11 Aug 2011 15:14:58 +0200
-Subject: [PATCH 168/341] sched: Generic migrate_disable
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4e96d115a17b1de063e902449ab7cac7aa6a9de8
+Subject: [PATCH 168/343] sched: Generic migrate_disable
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=def4edaadf791ed75d6f9825f88af1acdf8e2074
Make migrate_disable() be a preempt_disable() for !rt kernels. This
allows generic code to use it but still enforces that these code
@@ -65,7 +65,7 @@
#ifdef CONFIG_PREEMPT_NOTIFIERS
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index be2eae5..691fe0d 100644
+index c094224..60b697f 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1268,7 +1268,9 @@ struct task_struct {
@@ -78,7 +78,7 @@
cpumask_t cpus_allowed;
#ifdef CONFIG_PREEMPT_RCU
-@@ -2707,11 +2709,22 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu)
+@@ -2725,11 +2727,22 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu)
#endif /* CONFIG_SMP */
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0169-sched-rt-Fix-migrate_enable-thinko.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0169-sched-rt-Fix-migrate_enable-thinko.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0169-sched-rt-Fix-migrate_enable-thinko.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Mike Galbraith <efault at gmx.de>
Date: Tue, 23 Aug 2011 16:12:43 +0200
-Subject: [PATCH 169/341] sched, rt: Fix migrate_enable() thinko
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=088a7844aee15aaa6895c28ac0d0cb0450f7d7b9
+Subject: [PATCH 169/343] sched, rt: Fix migrate_enable() thinko
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9c8b18e6c61c7d0a7a8779478ff8776763c6b7c7
Assigning mask = tsk_cpus_allowed(p) after p->migrate_disable = 0 ensures
that we won't see a mask change.. no push/pull, we stack tasks on one CPU.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0170-sched-teach-migrate_disable-about-atomic-contexts.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0170-sched-teach-migrate_disable-about-atomic-contexts.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0170-sched-teach-migrate_disable-about-atomic-contexts.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Fri, 2 Sep 2011 14:29:27 +0200
-Subject: [PATCH 170/341] sched: teach migrate_disable about atomic contexts
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8fece5ec31a1a00b761aaa9c3cc993b711a196f
+Subject: [PATCH 170/343] sched: teach migrate_disable about atomic contexts
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a176404de451714eb1d8454278dc31c319e47635
<NMI> [<ffffffff812dafd8>] spin_bug+0x94/0xa8
[<ffffffff812db07f>] do_raw_spin_lock+0x43/0xea
@@ -35,7 +35,7 @@
2 files changed, 24 insertions(+)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 691fe0d..010cb05 100644
+index 60b697f..2e920b4 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1270,6 +1270,9 @@ struct task_struct {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0171-sched-Postpone-actual-migration-disalbe-to-schedule.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0171-sched-Postpone-actual-migration-disalbe-to-schedule.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0171-sched-Postpone-actual-migration-disalbe-to-schedule.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Tue, 27 Sep 2011 08:40:23 -0400
-Subject: [PATCH 171/341] sched: Postpone actual migration disalbe to schedule
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9c2f917139de411bf5bdc6d36d2890535ef54e18
+Subject: [PATCH 171/343] sched: Postpone actual migration disalbe to schedule
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7b9b59a76869757d8e169bf14dc721901a8f2486
The migrate_disable() can cause a bit of a overhead to the RT kernel,
as changing the affinity is expensive to do at every lock encountered.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0172-sched-Do-not-compare-cpu-masks-in-scheduler.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0172-sched-Do-not-compare-cpu-masks-in-scheduler.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0172-sched-Do-not-compare-cpu-masks-in-scheduler.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Tue, 27 Sep 2011 08:40:24 -0400
-Subject: [PATCH 172/341] sched: Do not compare cpu masks in scheduler
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2b5bf56e8541542fd5c72dbe34c251c961abe0ef
+Subject: [PATCH 172/343] sched: Do not compare cpu masks in scheduler
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=81e4e46a958cbfab0d30577a52470652fd43febc
Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
Cc: Peter Zijlstra <peterz at infradead.org>
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0173-sched-Have-migrate_disable-ignore-bounded-threads.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0173-sched-Have-migrate_disable-ignore-bounded-threads.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0173-sched-Have-migrate_disable-ignore-bounded-threads.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Tue, 27 Sep 2011 08:40:25 -0400
-Subject: [PATCH 173/341] sched: Have migrate_disable ignore bounded threads
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c12a95f3ff8ce007803476ff00b93e819646e60b
+Subject: [PATCH 173/343] sched: Have migrate_disable ignore bounded threads
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5e3e74f43673a83344685e4f9f1479b5e3a1c40b
Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
Cc: Peter Zijlstra <peterz at infradead.org>
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0174-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0174-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0174-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 4 Nov 2011 20:48:36 +0100
-Subject: [PATCH 174/341] sched-clear-pf-thread-bound-on-fallback-rq.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c2371df0196fa3cfaf614072c1775a1dcc92d9f
+Subject: [PATCH 174/343] sched-clear-pf-thread-bound-on-fallback-rq.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c28531c033227eb35668de9ac10f52dc8851ae04
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0175-ftrace-crap.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0175-ftrace-crap.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0175-ftrace-crap.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 9 Sep 2011 16:55:53 +0200
-Subject: [PATCH 175/341] ftrace-crap.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e6cb02f1a2983d744a98c642b458a75a9a0c9391
+Subject: [PATCH 175/343] ftrace-crap.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9ffc1696ba158e0d16296b27850912a3c6fb93ea
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0176-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0176-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0176-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Tue, 27 Sep 2011 13:56:50 -0400
-Subject: [PATCH 176/341] ring-buffer: Convert reader_lock from raw_spin_lock
+Subject: [PATCH 176/343] ring-buffer: Convert reader_lock from raw_spin_lock
into spin_lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=98624e19c9cf3dae7c7638da438d88a30e88acdb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=80a72a2a4b8a5975bb94dfbda0c3f7ba45de8ab1
The reader_lock is mostly taken in normal context with interrupts enabled.
But because ftrace_dump() can happen anywhere, it is used as a spin lock
@@ -44,7 +44,7 @@
1 file changed, 81 insertions(+), 70 deletions(-)
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
-index 6fdc629..70112f3 100644
+index 648f25a..408d724 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -478,7 +478,7 @@ struct ring_buffer_per_cpu {
@@ -154,7 +154,7 @@
}
/**
-@@ -2689,7 +2731,7 @@ unsigned long ring_buffer_oldest_event_ts(struct ring_buffer *buffer, int cpu)
+@@ -2696,7 +2738,7 @@ unsigned long ring_buffer_oldest_event_ts(struct ring_buffer *buffer, int cpu)
return 0;
cpu_buffer = buffer->buffers[cpu];
@@ -163,7 +163,7 @@
/*
* if the tail is on reader_page, oldest time stamp is on the reader
* page
-@@ -2700,7 +2742,7 @@ unsigned long ring_buffer_oldest_event_ts(struct ring_buffer *buffer, int cpu)
+@@ -2707,7 +2749,7 @@ unsigned long ring_buffer_oldest_event_ts(struct ring_buffer *buffer, int cpu)
bpage = rb_set_head_page(cpu_buffer);
if (bpage)
ret = bpage->page->time_stamp;
@@ -172,7 +172,7 @@
return ret;
}
-@@ -2864,15 +2906,16 @@ void ring_buffer_iter_reset(struct ring_buffer_iter *iter)
+@@ -2871,15 +2913,16 @@ void ring_buffer_iter_reset(struct ring_buffer_iter *iter)
{
struct ring_buffer_per_cpu *cpu_buffer;
unsigned long flags;
@@ -191,7 +191,7 @@
}
EXPORT_SYMBOL_GPL(ring_buffer_iter_reset);
-@@ -3292,21 +3335,6 @@ rb_iter_peek(struct ring_buffer_iter *iter, u64 *ts)
+@@ -3299,21 +3342,6 @@ rb_iter_peek(struct ring_buffer_iter *iter, u64 *ts)
}
EXPORT_SYMBOL_GPL(ring_buffer_iter_peek);
@@ -213,7 +213,7 @@
/**
* ring_buffer_peek - peek at the next event to be read
* @buffer: The ring buffer to read
-@@ -3324,22 +3352,17 @@ ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts,
+@@ -3331,22 +3359,17 @@ ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts,
struct ring_buffer_per_cpu *cpu_buffer = buffer->buffers[cpu];
struct ring_buffer_event *event;
unsigned long flags;
@@ -239,7 +239,7 @@
if (event && event->type_len == RINGBUF_TYPE_PADDING)
goto again;
-@@ -3361,11 +3384,12 @@ ring_buffer_iter_peek(struct ring_buffer_iter *iter, u64 *ts)
+@@ -3368,11 +3391,12 @@ ring_buffer_iter_peek(struct ring_buffer_iter *iter, u64 *ts)
struct ring_buffer_per_cpu *cpu_buffer = iter->cpu_buffer;
struct ring_buffer_event *event;
unsigned long flags;
@@ -254,7 +254,7 @@
if (event && event->type_len == RINGBUF_TYPE_PADDING)
goto again;
-@@ -3391,9 +3415,7 @@ ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts,
+@@ -3398,9 +3422,7 @@ ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts,
struct ring_buffer_per_cpu *cpu_buffer;
struct ring_buffer_event *event = NULL;
unsigned long flags;
@@ -265,7 +265,7 @@
again:
/* might be called in atomic */
-@@ -3403,9 +3425,7 @@ ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts,
+@@ -3410,9 +3432,7 @@ ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts,
goto out;
cpu_buffer = buffer->buffers[cpu];
@@ -276,7 +276,7 @@
event = rb_buffer_peek(cpu_buffer, ts, lost_events);
if (event) {
-@@ -3413,9 +3433,8 @@ ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts,
+@@ -3420,9 +3440,8 @@ ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts,
rb_advance_reader(cpu_buffer);
}
@@ -288,7 +288,7 @@
out:
preempt_enable();
-@@ -3500,17 +3519,18 @@ ring_buffer_read_start(struct ring_buffer_iter *iter)
+@@ -3507,17 +3526,18 @@ ring_buffer_read_start(struct ring_buffer_iter *iter)
{
struct ring_buffer_per_cpu *cpu_buffer;
unsigned long flags;
@@ -309,7 +309,7 @@
}
EXPORT_SYMBOL_GPL(ring_buffer_read_start);
-@@ -3544,8 +3564,9 @@ ring_buffer_read(struct ring_buffer_iter *iter, u64 *ts)
+@@ -3551,8 +3571,9 @@ ring_buffer_read(struct ring_buffer_iter *iter, u64 *ts)
struct ring_buffer_event *event;
struct ring_buffer_per_cpu *cpu_buffer = iter->cpu_buffer;
unsigned long flags;
@@ -320,7 +320,7 @@
again:
event = rb_iter_peek(iter, ts);
if (!event)
-@@ -3556,7 +3577,7 @@ ring_buffer_read(struct ring_buffer_iter *iter, u64 *ts)
+@@ -3563,7 +3584,7 @@ ring_buffer_read(struct ring_buffer_iter *iter, u64 *ts)
rb_advance_iter(iter);
out:
@@ -329,7 +329,7 @@
return event;
}
-@@ -3621,13 +3642,14 @@ void ring_buffer_reset_cpu(struct ring_buffer *buffer, int cpu)
+@@ -3628,13 +3649,14 @@ void ring_buffer_reset_cpu(struct ring_buffer *buffer, int cpu)
{
struct ring_buffer_per_cpu *cpu_buffer = buffer->buffers[cpu];
unsigned long flags;
@@ -345,7 +345,7 @@
if (RB_WARN_ON(cpu_buffer, local_read(&cpu_buffer->committing)))
goto out;
-@@ -3639,7 +3661,7 @@ void ring_buffer_reset_cpu(struct ring_buffer *buffer, int cpu)
+@@ -3646,7 +3668,7 @@ void ring_buffer_reset_cpu(struct ring_buffer *buffer, int cpu)
arch_spin_unlock(&cpu_buffer->lock);
out:
@@ -354,7 +354,7 @@
atomic_dec(&cpu_buffer->record_disabled);
}
-@@ -3666,22 +3688,16 @@ int ring_buffer_empty(struct ring_buffer *buffer)
+@@ -3673,22 +3695,16 @@ int ring_buffer_empty(struct ring_buffer *buffer)
{
struct ring_buffer_per_cpu *cpu_buffer;
unsigned long flags;
@@ -380,7 +380,7 @@
if (!ret)
return 0;
-@@ -3700,22 +3716,16 @@ int ring_buffer_empty_cpu(struct ring_buffer *buffer, int cpu)
+@@ -3707,22 +3723,16 @@ int ring_buffer_empty_cpu(struct ring_buffer *buffer, int cpu)
{
struct ring_buffer_per_cpu *cpu_buffer;
unsigned long flags;
@@ -406,7 +406,7 @@
return ret;
}
-@@ -3890,6 +3900,7 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
+@@ -3897,6 +3907,7 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
unsigned int commit;
unsigned int read;
u64 save_timestamp;
@@ -414,7 +414,7 @@
int ret = -1;
if (!cpumask_test_cpu(cpu, buffer->cpumask))
-@@ -3911,7 +3922,7 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
+@@ -3918,7 +3929,7 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
if (!bpage)
goto out;
@@ -423,7 +423,7 @@
reader = rb_get_reader_page(cpu_buffer);
if (!reader)
-@@ -4035,7 +4046,7 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
+@@ -4042,7 +4053,7 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
memset(&bpage->data[commit], 0, BUF_PAGE_SIZE - commit);
out_unlock:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0177-net-netif_rx_ni-migrate-disable.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0177-net-netif_rx_ni-migrate-disable.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0177-net-netif_rx_ni-migrate-disable.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 16:29:27 +0200
-Subject: [PATCH 177/341] net-netif_rx_ni-migrate-disable.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=631bc122b308277265819e5023cd3583d051007d
+Subject: [PATCH 177/343] net-netif_rx_ni-migrate-disable.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=edb18777860bc916100ad44f20e414b2fe3f3de4
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -9,7 +9,7 @@
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
-index 161dfa5..79396a8 100644
+index 1d41fdf..36a7af9 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3033,11 +3033,11 @@ int netif_rx_ni(struct sk_buff *skb)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0178-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0178-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0178-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 3 Jul 2009 13:16:38 -0500
-Subject: [PATCH 178/341] softirq: Sanitize softirq pending for NOHZ/RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f2d9b19bc416734309f6ddeef405fb7988d929e7
+Subject: [PATCH 178/343] softirq: Sanitize softirq pending for NOHZ/RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=155500fc1335b9a9489a91160a724f673b15e0d0
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0179-lockdep-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0179-lockdep-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0179-lockdep-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 18:51:23 +0200
-Subject: [PATCH 179/341] lockdep-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8c955051f4981e8f3c85bf3241dc0955cfea4e80
+Subject: [PATCH 179/343] lockdep-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4ba04c728290d9ca19bdc6471807c067bb2918f9
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0180-mutex-no-spin-on-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0180-mutex-no-spin-on-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0180-mutex-no-spin-on-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 21:51:45 +0200
-Subject: [PATCH 180/341] mutex-no-spin-on-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95d58fc82312cb9a3b41b421c20ecc495776e304
+Subject: [PATCH 180/343] mutex-no-spin-on-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6f372b425516d80347ddb16c9d0c99de748cd4bc
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0181-softirq-local-lock.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0181-softirq-local-lock.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0181-softirq-local-lock.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 28 Jun 2011 15:57:18 +0200
-Subject: [PATCH 181/341] softirq-local-lock.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=906050f306deec70d0569a9fc773b7d33fe84af0
+Subject: [PATCH 181/343] softirq-local-lock.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5ede0b61a21fc8f268f1fbdd23e97080bfe042d6
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -87,7 +87,7 @@
* Autoprobing for irqs:
*
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 010cb05..d48d75f 100644
+index 2e920b4..4be25bc 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1610,6 +1610,7 @@ struct task_struct {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0182-softirq-Export-in_serving_softirq.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0182-softirq-Export-in_serving_softirq.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0182-softirq-Export-in_serving_softirq.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: John Kacur <jkacur at redhat.com>
Date: Mon, 14 Nov 2011 02:44:43 +0100
-Subject: [PATCH 182/341] softirq: Export in_serving_softirq()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=911736c88c596a4cc4e0e86e2002cb94c8f2fa7d
+Subject: [PATCH 182/343] softirq: Export in_serving_softirq()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=86f82f31642a059f4da00321935c980c6bd9ea91
ERROR: "in_serving_softirq" [net/sched/cls_cgroup.ko] undefined!
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0183-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0183-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0183-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,11 +1,11 @@
From: Yong Zhang <yong.zhang0 at gmail.com>
Date: Thu, 13 Oct 2011 17:19:09 +0800
-Subject: [PATCH 183/341] hardirq.h: Define softirq_count() as OUL to kill
+Subject: [PATCH 183/343] hardirq.h: Define softirq_count() as OUL to kill
build warning
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=1363fc85cdd5f14d909116ce89685e4db61f2057
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=76d641ae18fc492d76622690d5859a316d58b8a5
kernel/lockdep.c: In function ‘print_bad_irq_dependency’:
kernel/lockdep.c:1476:3: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 7 has type ‘unsigned int’
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0184-softirq-Fix-unplug-deadlock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0184-softirq-Fix-unplug-deadlock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0184-softirq-Fix-unplug-deadlock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Fri, 30 Sep 2011 15:52:14 +0200
-Subject: [PATCH 184/341] softirq: Fix unplug deadlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=889ef92f94ddb75e560ed42951f72fd4db093556
+Subject: [PATCH 184/343] softirq: Fix unplug deadlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7fff577c7be930b9d68492b469ba96256b4c7e0
If ksoftirqd gets woken during hot-unplug, __thread_do_softirq() will
call pin_current_cpu() which will block on the held cpu_hotplug.lock.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0185-softirq-disable-softirq-stacks-for-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0185-softirq-disable-softirq-stacks-for-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0185-softirq-disable-softirq-stacks-for-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 18 Jul 2011 13:59:17 +0200
-Subject: [PATCH 185/341] softirq-disable-softirq-stacks-for-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f3076505d8507db855800d6e01b821273a0f5c5e
+Subject: [PATCH 185/343] softirq-disable-softirq-stacks-for-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=269be016abb46531cc6ab23f48362178c19c9622
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0186-softirq-make-fifo.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0186-softirq-make-fifo.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0186-softirq-make-fifo.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 21 Jul 2011 21:06:43 +0200
-Subject: [PATCH 186/341] softirq-make-fifo.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ab3d70b4c8d1044ca872777ab74a20702db6c15b
+Subject: [PATCH 186/343] softirq-make-fifo.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9e288a98e1cbce98e6dd10216b3aa6b95126f813
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0187-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0187-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0187-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Tue, 29 Nov 2011 20:18:22 -0500
-Subject: [PATCH 187/341] tasklet: Prevent tasklets from going into infinite
+Subject: [PATCH 187/343] 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=2459e468614af80d6a4bce55975c5d54250fc927
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0a85655778657589e2391124a05440d5555530ec
When CONFIG_PREEMPT_RT_FULL is enabled, tasklets run as threads,
and spinlocks turn are mutexes. But this can cause issues with
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0188-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0188-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0188-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 31 Jan 2012 13:01:27 +0100
-Subject: [PATCH 188/341] genirq: Allow disabling of softirq processing in irq
+Subject: [PATCH 188/343] 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=e0e142697653f0bb97ae5f7a76bc68673c698562
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aa1764fe3b9a273efada93812b048e5df5b1aaab
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
@@ -69,7 +69,7 @@
#define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index 6e9d7af..8c3d14d 100644
+index 9c6fa43..1ec20f5 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -751,7 +751,15 @@ irq_forced_thread_fn(struct irq_desc *desc, struct irqaction *action)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0189-local-vars-migrate-disable.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0189-local-vars-migrate-disable.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0189-local-vars-migrate-disable.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 28 Jun 2011 20:42:16 +0200
-Subject: [PATCH 189/341] local-vars-migrate-disable.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b2c63ad8fb0fe233c838e859d576fad8c72bd337
+Subject: [PATCH 189/343] local-vars-migrate-disable.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=255345925855052a6c9d17f083a125aa46880ac4
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0190-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0190-md-raid5-Make-raid5_percpu-handling-RT-aware.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0190-md-raid5-Make-raid5_percpu-handling-RT-aware.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 6 Apr 2010 16:51:31 +0200
-Subject: [PATCH 190/341] md: raid5: Make raid5_percpu handling RT aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ed451a3f37cf45ee2f85a5294810e2ffdea8815d
+Subject: [PATCH 190/343] md: raid5: Make raid5_percpu handling RT aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=42b3e05944f144e18f8d98534e5c977e701a4e5b
__raid_run_ops() disables preemption with get_cpu() around the access
to the raid5_percpu variables. That causes scheduling while atomic
@@ -13,16 +13,16 @@
Reported-by: Udo van den Heuvel <udovdh at xs4all.nl>
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
Tested-by: Udo van den Heuvel <udovdh at xs4all.nl>
-[bwh: Commit 789b5e031528 ('md/raid5: Fix CPU hotplug callback registration')
- fixed in initialisation of the percpu buffers between the hotplug callback
- and device setup. That conflicts with this, and reveals that this fix
- doesn't initialise the spinlock at all in the hotplug callback! As there
- is no good way to tell whether a spinlock has been initialised, and no
- allocation is needed, initialise it for all possible CPUs immediately.]
---
+ drivers/md/raid5.c | 10 +++++++---
+ drivers/md/raid5.h | 1 +
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
+index 7c963c4..c345fea 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
-@@ -1253,8 +1253,9 @@ static void __raid_run_ops(struct stripe
+@@ -1253,8 +1253,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 @@
if (test_bit(STRIPE_OP_BIOFILL, &ops_request)) {
ops_run_biofill(sh);
overlap_clear++;
-@@ -1306,7 +1307,8 @@ static void __raid_run_ops(struct stripe
+@@ -1306,7 +1307,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,16 +43,20 @@
}
#ifdef CONFIG_MULTICORE_RAID456
-@@ -4538,6 +4540,9 @@ static int raid5_alloc_percpu(struct r5c
- if (!conf->percpu)
- return -ENOMEM;
+@@ -4462,8 +4464,10 @@ static int alloc_scratch_buffer(struct r5conf *conf, struct raid5_percpu *percpu
+ {
+ if (conf->level == 6 && !percpu->spare_page)
+ percpu->spare_page = alloc_page(GFP_KERNEL);
+- if (!percpu->scribble)
++ if (!percpu->scribble) {
+ percpu->scribble = kmalloc(conf->scribble_len, GFP_KERNEL);
++ spin_lock_init(&percpu->lock);
++ }
-+ for_each_possible_cpu(cpu)
-+ spin_lock_init(&per_cpu_ptr(conf->percpu, cpu)->lock);
-+
- #ifdef CONFIG_HOTPLUG_CPU
- conf->cpu_notify.notifier_call = raid456_cpu_notify;
- conf->cpu_notify.priority = 0;
+ if (!percpu->scribble || (conf->level == 6 && !percpu->spare_page)) {
+ free_scratch_buffer(conf, percpu);
+diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h
+index e10c553..010a969 100644
--- a/drivers/md/raid5.h
+++ b/drivers/md/raid5.h
@@ -405,6 +405,7 @@ struct r5conf {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0191-rtmutex-lock-killable.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0191-rtmutex-lock-killable.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0191-rtmutex-lock-killable.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 9 Jun 2011 11:43:52 +0200
-Subject: [PATCH 191/341] rtmutex-lock-killable.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=37be981a91aa57bbd74515a79760c629a98097e3
+Subject: [PATCH 191/343] rtmutex-lock-killable.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f9608d73b6c564492369c1c0473c497f99417fce
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0192-rtmutex-futex-prepare-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0192-rtmutex-futex-prepare-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0192-rtmutex-futex-prepare-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 10 Jun 2011 11:04:15 +0200
-Subject: [PATCH 192/341] rtmutex-futex-prepare-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=59454b39bf9b4bd71945b022508969965791e851
+Subject: [PATCH 192/343] rtmutex-futex-prepare-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8ef804fe6136e102ad388f33360f0a1c9ed8af18
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -11,10 +11,10 @@
3 files changed, 91 insertions(+), 19 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
-index 8888815..26a4fc4 100644
+index 1bb37d0..bcc5b38 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
-@@ -1443,6 +1443,16 @@ retry_private:
+@@ -1568,6 +1568,16 @@ retry_private:
requeue_pi_wake_futex(this, &key2, hb2);
drop_count++;
continue;
@@ -31,7 +31,7 @@
} else if (ret) {
/* -EDEADLK */
this->pi_state = NULL;
-@@ -2287,7 +2297,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+@@ -2411,7 +2421,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
struct hrtimer_sleeper timeout, *to = NULL;
struct rt_mutex_waiter rt_waiter;
struct rt_mutex *pi_mutex = NULL;
@@ -40,7 +40,7 @@
union futex_key key2 = FUTEX_KEY_INIT;
struct futex_q q = futex_q_init;
int res, ret;
-@@ -2334,20 +2344,55 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+@@ -2467,20 +2477,55 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
/* Queue the futex_q, drop the hb lock, wait for wakeup. */
futex_wait_queue_me(hb, &q, to);
@@ -107,7 +107,7 @@
/* Check if the requeue code acquired the second futex for us. */
if (!q.rt_waiter) {
-@@ -2356,9 +2401,10 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+@@ -2489,9 +2534,10 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
* did a lock-steal - fix up the PI-state in that case.
*/
if (q.pi_state && (q.pi_state->owner != current)) {
@@ -120,7 +120,7 @@
}
} else {
/*
-@@ -2371,7 +2417,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+@@ -2504,7 +2550,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
ret = rt_mutex_finish_proxy_lock(pi_mutex, to, &rt_waiter, 1);
debug_rt_mutex_free_waiter(&rt_waiter);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0193-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0193-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0193-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Tue, 10 Apr 2012 14:34:13 -0400
-Subject: [PATCH 193/341] 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=17d011aab9aecd4b1c3dab54e8d846f0b2f07b6e
+Subject: [PATCH 193/343] 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=eefedcb0ce92bc0bde1700f9dc0e58deeb7b8edf
Requeue with timeout causes a bug with PREEMPT_RT_FULL.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0194-rt-mutex-add-sleeping-spinlocks-support.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0194-rt-mutex-add-sleeping-spinlocks-support.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0194-rt-mutex-add-sleeping-spinlocks-support.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 10 Jun 2011 11:21:25 +0200
-Subject: [PATCH 194/341] rt-mutex-add-sleeping-spinlocks-support.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8ffccba8d4c5c5630b8f8b167b48fffed67e01f9
+Subject: [PATCH 194/343] rt-mutex-add-sleeping-spinlocks-support.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5ebae0e519661ae5bec73d43f611ee9ec3e91236
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -74,10 +74,10 @@
#define DEFINE_RT_MUTEX(mutexname) \
struct rt_mutex mutexname = __RT_MUTEX_INITIALIZER(mutexname)
diff --git a/kernel/futex.c b/kernel/futex.c
-index 26a4fc4..918d743 100644
+index bcc5b38..35af14b 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
-@@ -2322,8 +2322,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+@@ -2446,8 +2446,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
* The waiter is allocated on our stack, manipulated by the requeue
* code while we sleep on uaddr.
*/
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0195-spinlock-types-separate-raw.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0195-spinlock-types-separate-raw.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0195-spinlock-types-separate-raw.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 29 Jun 2011 19:34:01 +0200
-Subject: [PATCH 195/341] spinlock-types-separate-raw.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b5077ff300d2863d655b9656019cf3cd8d77502
+Subject: [PATCH 195/343] spinlock-types-separate-raw.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=39e67f0e8c699ffd5cba7a276933d2f2179370dc
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0196-rtmutex-avoid-include-hell.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0196-rtmutex-avoid-include-hell.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0196-rtmutex-avoid-include-hell.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 29 Jun 2011 20:06:39 +0200
-Subject: [PATCH 196/341] rtmutex-avoid-include-hell.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=af0aea78dd6136db343a5b875e59323fd4997fb5
+Subject: [PATCH 196/343] rtmutex-avoid-include-hell.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=19007c025397789532c9d221372e744d76b76c27
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0197-rt-add-rt-spinlocks.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0197-rt-add-rt-spinlocks.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0197-rt-add-rt-spinlocks.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 29 Jun 2011 19:43:35 +0200
-Subject: [PATCH 197/341] rt-add-rt-spinlocks.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=866275f1d2832b1538511f2a5ac6ffd04e3a1588
+Subject: [PATCH 197/343] rt-add-rt-spinlocks.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5baf9cf060d8c6e3ced700ace0b33cedf1a09af2
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0198-rt-add-rt-to-mutex-headers.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0198-rt-add-rt-to-mutex-headers.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0198-rt-add-rt-to-mutex-headers.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 29 Jun 2011 20:56:22 +0200
-Subject: [PATCH 198/341] rt-add-rt-to-mutex-headers.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=438edbeb0aa4045ee7272826b3a52a26876cb9fe
+Subject: [PATCH 198/343] rt-add-rt-to-mutex-headers.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=985e5ee04fba58d73d2fa15e7b82892a808ad337
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0199-rwsem-add-rt-variant.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0199-rwsem-add-rt-variant.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0199-rwsem-add-rt-variant.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 29 Jun 2011 21:02:53 +0200
-Subject: [PATCH 199/341] rwsem-add-rt-variant.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e515ab531a74cbbce4757131c2b2e189155df850
+Subject: [PATCH 199/343] rwsem-add-rt-variant.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e866720ba1ff55619657ae9d2e90269812355e2b
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -11,6 +11,8 @@
3 files changed, 114 insertions(+)
create mode 100644 include/linux/rwsem_rt.h
+diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h
+index 63d4065..209be4b 100644
--- a/include/linux/rwsem.h
+++ b/include/linux/rwsem.h
@@ -17,6 +17,10 @@
@@ -24,13 +26,16 @@
struct rw_semaphore;
#ifdef CONFIG_RWSEM_GENERIC_SPINLOCK
-@@ -131,4 +135,6 @@ extern void down_write_nested(struct rw_
+@@ -131,4 +135,6 @@ extern void down_write_nested(struct rw_semaphore *sem, int subclass);
# define down_write_nested(sem, subclass) down_write(sem)
#endif
+#endif /* !PREEMPT_RT_FULL */
+
#endif /* _LINUX_RWSEM_H */
+diff --git a/include/linux/rwsem_rt.h b/include/linux/rwsem_rt.h
+new file mode 100644
+index 0000000..802c690
--- /dev/null
+++ b/include/linux/rwsem_rt.h
@@ -0,0 +1,105 @@
@@ -139,9 +144,11 @@
+}
+
+#endif
+diff --git a/lib/Makefile b/lib/Makefile
+index c06efca..ad29d0c 100644
--- a/lib/Makefile
+++ b/lib/Makefile
-@@ -37,8 +37,11 @@ obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o
+@@ -37,8 +37,11 @@ obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o
obj-$(CONFIG_CHECK_SIGNATURE) += check_signature.o
obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o
obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0200-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0200-rt-Add-the-preempt-rt-lock-replacement-APIs.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0200-rt-Add-the-preempt-rt-lock-replacement-APIs.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 26 Jul 2009 19:39:56 +0200
-Subject: [PATCH 200/341] rt: Add the preempt-rt lock replacement APIs
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a179bf2d92169f3d0048aa5d58bd06a6c4d6bb45
+Subject: [PATCH 200/343] rt: Add the preempt-rt lock replacement APIs
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3eb49280d216dfb28256dba456c52e0a497dbd52
Map spinlocks, rwlocks, rw_semaphores and semaphores to the rt_mutex
based locking functions for preempt-rt.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0201-rwlocks-Fix-section-mismatch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0201-rwlocks-Fix-section-mismatch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0201-rwlocks-Fix-section-mismatch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,10 +1,10 @@
From: John Kacur <jkacur at redhat.com>
Date: Mon, 19 Sep 2011 11:09:27 +0200
-Subject: [PATCH 201/341] rwlocks: Fix section mismatch
+Subject: [PATCH 201/343] rwlocks: Fix section mismatch
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=81d42467b468df3c9c63890277961acf9f533cd3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f2ff6087fa70e6f01de1e487261bd3dce3eefd3c
This fixes the following build error for the preempt-rt kernel.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0202-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0202-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0202-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 22:08:38 +0200
-Subject: [PATCH 202/341] timer-handle-idle-trylock-in-get-next-timer-irq.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bddfaf75124e4f1864b777c516ff4081e635e5b6
+Subject: [PATCH 202/343] timer-handle-idle-trylock-in-get-next-timer-irq.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=96f72fb8cb51b9eb4a47a0e4c98c8328322f9b0d
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -55,7 +55,7 @@
}
EXPORT_SYMBOL(rt_spin_trylock);
diff --git a/kernel/timer.c b/kernel/timer.c
-index 4bd3b6e..4e3b54f 100644
+index 2adeda8..471e277 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1327,13 +1327,14 @@ unsigned long get_next_timer_interrupt(unsigned long now)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0203-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0203-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0203-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:30 -0500
-Subject: [PATCH 203/341] RCU: Force PREEMPT_RCU for PREEMPT-RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb4e3f378e3c8b0285e24b12ff888925225e5280
+Subject: [PATCH 203/343] RCU: Force PREEMPT_RCU for PREEMPT-RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5491fbcf92a8b8bae88467a7fa37cf228f7dd5e8
PREEMPT_RT relies on PREEMPT_RCU - only allow RCU to be configured
interactively in the !PREEMPT_RT case.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0204-rcu-Frob-softirq-test.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0204-rcu-Frob-softirq-test.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0204-rcu-Frob-softirq-test.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Sat, 13 Aug 2011 00:23:17 +0200
-Subject: [PATCH 204/341] rcu: Frob softirq test
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9473ae84b4a4ae14469ba441bb3ad4266aa3d39a
+Subject: [PATCH 204/343] rcu: Frob softirq test
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d076360afbc788ae79bd646ee5d2f9e98273ee6b
With RT_FULL we get the below wreckage:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0205-rcu-Merge-RCU-bh-into-RCU-preempt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0205-rcu-Merge-RCU-bh-into-RCU-preempt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0205-rcu-Merge-RCU-bh-into-RCU-preempt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 5 Oct 2011 11:59:38 -0700
-Subject: [PATCH 205/341] rcu: Merge RCU-bh into RCU-preempt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2f826956c187e7d81a21e9491c435f6cd4366cdc
+Subject: [PATCH 205/343] rcu: Merge RCU-bh into RCU-preempt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=69e0a78489a0b14734dac3fa9c917b31eefb6a6c
The Linux kernel has long RCU-bh read-side critical sections that
intolerably increase scheduling latency under mainline's RCU-bh rules,
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0206-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0206-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0206-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,11 +1,11 @@
From: John Kacur <jkacur at redhat.com>
Date: Mon, 14 Nov 2011 02:44:42 +0100
-Subject: [PATCH 206/341] rcu: Fix macro substitution for synchronize_rcu_bh()
+Subject: [PATCH 206/343] rcu: Fix macro substitution for synchronize_rcu_bh()
on RT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b09f268d8bfbb7ccdaf73117d3eb0b3c2c34290
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=47a3c88f26fd75543f00dccc01ee66e8f45a9b0f
kernel/rcutorture.c:492: error: ‘synchronize_rcu_bh’ undeclared here (not in a function)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0207-rcu-more-fallout.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0207-rcu-more-fallout.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0207-rcu-more-fallout.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 14 Nov 2011 10:57:54 +0100
-Subject: [PATCH 207/341] rcu-more-fallout.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e7c18719acdf38dee4f76cbed951f9d1e7bef863
+Subject: [PATCH 207/343] rcu-more-fallout.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9b678208374ce674cb8a12a68d15e46a4995bea1
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0208-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0208-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0208-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -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 208/341] rcu: Make ksoftirqd do RCU quiescent states
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=af7e0f85fe99084ef44825457362f96297c19e8d
+Subject: [PATCH 208/343] rcu: Make ksoftirqd do RCU quiescent states
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=191a200ddd30d60aac8142fffdcebf65c99e060c
Implementing RCU-bh in terms of RCU-preempt makes the system vulnerable
to network-based denial-of-service attacks. This patch therefore
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0209-rt-rcutree-Move-misplaced-prototype.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0209-rt-rcutree-Move-misplaced-prototype.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0209-rt-rcutree-Move-misplaced-prototype.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,10 +1,10 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Wed, 14 Dec 2011 12:51:28 +0100
-Subject: [PATCH 209/341] rt/rcutree: Move misplaced prototype
+Subject: [PATCH 209/343] rt/rcutree: Move misplaced prototype
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=368b510202d96ea905a42939b825885fd4bbb118
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4f3737a6f99abeb0222e86d10cb90a19a3c647c9
Fix this warning on x86 defconfig:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0210-lglocks-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0210-lglocks-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0210-lglocks-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 15 Jun 2011 11:02:21 +0200
-Subject: [PATCH 210/341] lglocks-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fb6cfa8ff73918acfe82474010aaa9dffa929af2
+Subject: [PATCH 210/343] lglocks-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=915e98662951c4fef9df0911acdad6deabc30f0c
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0211-serial-8250-Clean-up-the-locking-for-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0211-serial-8250-Clean-up-the-locking-for-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0211-serial-8250-Clean-up-the-locking-for-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:01 -0500
-Subject: [PATCH 211/341] serial: 8250: Clean up the locking for -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6a64e59f61cda34e3ce1f83a1fb26efcb7e5deb2
+Subject: [PATCH 211/343] serial: 8250: Clean up the locking for -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6dc02777df2e669bf8dea93e58daca8fac52d52d
Signed-off-by: Ingo Molnar <mingo at elte.hu>
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
@@ -10,10 +10,10 @@
1 file changed, 5 insertions(+), 10 deletions(-)
diff --git a/drivers/tty/serial/8250.c b/drivers/tty/serial/8250.c
-index cff03e5..f55f224 100644
+index 33601f8..9f84909 100644
--- a/drivers/tty/serial/8250.c
+++ b/drivers/tty/serial/8250.c
-@@ -2879,14 +2879,10 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
+@@ -2883,14 +2883,10 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
touch_nmi_watchdog();
@@ -32,7 +32,7 @@
/*
* First save the IER then disable the interrupts
-@@ -2918,8 +2914,7 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
+@@ -2922,8 +2918,7 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
check_modem_status(up);
if (locked)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0212-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0212-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0212-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Fri, 3 Jul 2009 08:30:01 -0500
-Subject: [PATCH 212/341] serial: 8250: Call flush_to_ldisc when the irq is
+Subject: [PATCH 212/343] serial: 8250: Call flush_to_ldisc when the irq is
threaded
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dcf600b1fef8316d57593cc437e4e93728cd8a50
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0d85d83f4aed16cc0ec0ebce78cf95b00903bad7
Signed-off-by: Ingo Molnar <mingo at elte.hu>
---
@@ -11,7 +11,7 @@
2 files changed, 6 insertions(+)
diff --git a/drivers/tty/serial/8250.c b/drivers/tty/serial/8250.c
-index f55f224..abad3df 100644
+index 9f84909..c717948 100644
--- a/drivers/tty/serial/8250.c
+++ b/drivers/tty/serial/8250.c
@@ -1663,12 +1663,14 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0213-drivers-tty-fix-omap-lock-crap.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0213-drivers-tty-fix-omap-lock-crap.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0213-drivers-tty-fix-omap-lock-crap.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 28 Jul 2011 13:32:57 +0200
-Subject: [PATCH 213/341] drivers-tty-fix-omap-lock-crap.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4a2ac97aa9d9fc8a68972ab6cf770191f8361810
+Subject: [PATCH 213/343] drivers-tty-fix-omap-lock-crap.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=119dc911200fc0ec45956eb28ed29ecc73082f4e
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0214-rt-Improve-the-serial-console-PASS_LIMIT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0214-rt-Improve-the-serial-console-PASS_LIMIT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0214-rt-Improve-the-serial-console-PASS_LIMIT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,10 +1,10 @@
From: Ingo Molnar <mingo at elte.hu>
Date: Wed, 14 Dec 2011 13:05:54 +0100
-Subject: [PATCH 214/341] rt: Improve the serial console PASS_LIMIT
+Subject: [PATCH 214/343] 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=a0c8ed88a9f6d58b62ddabd409ae94120785ab1a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2d9e37a8bb7dbdcf7df38ffce981f05710117319
Beyond the warning:
@@ -20,7 +20,7 @@
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/drivers/tty/serial/8250.c b/drivers/tty/serial/8250.c
-index abad3df..0e13307 100644
+index c717948..2169073 100644
--- a/drivers/tty/serial/8250.c
+++ b/drivers/tty/serial/8250.c
@@ -81,7 +81,16 @@ static unsigned int skip_txen_test; /* force skip of txen test at init time */
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0215-fs-namespace-preemption-fix.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0215-fs-namespace-preemption-fix.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0215-fs-namespace-preemption-fix.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 19 Jul 2009 08:44:27 -0500
-Subject: [PATCH 215/341] fs: namespace preemption fix
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7a2c00bfc81428f5bdd587c4a5acec8ac80600f8
+Subject: [PATCH 215/343] fs: namespace preemption fix
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1432e5ab5dd023c0e913e8e40933b40e453bef44
On RT we cannot loop with preemption disabled here as
mnt_make_readonly() might have been preempted. We can safely enable
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0216-mm-protect-activate-switch-mm.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0216-mm-protect-activate-switch-mm.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0216-mm-protect-activate-switch-mm.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 4 Jul 2011 09:48:40 +0200
-Subject: [PATCH 216/341] mm-protect-activate-switch-mm.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=93fe41a0fe735857aa6ecd24c85c8c8dd372536d
+Subject: [PATCH 216/343] mm-protect-activate-switch-mm.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=452ededa39a6eb3ad9474bdfe4e43875396f6e1b
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0217-fs-block-rt-support.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0217-fs-block-rt-support.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0217-fs-block-rt-support.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 14 Jun 2011 17:05:09 +0200
-Subject: [PATCH 217/341] fs-block-rt-support.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e60a879181b2d7caf07861f5c219665b15266585
+Subject: [PATCH 217/343] fs-block-rt-support.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=283f05aded05f6f913a23c3706a996d021914ee1
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -10,7 +10,7 @@
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
-index 0ceca7b..6446721 100644
+index 527f5d5..6795c54 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -235,7 +235,7 @@ EXPORT_SYMBOL(blk_delay_queue);
@@ -23,7 +23,7 @@
queue_flag_clear(QUEUE_FLAG_STOPPED, q);
__blk_run_queue(q);
diff --git a/fs/file.c b/fs/file.c
-index 375472d..fd03258 100644
+index 05e88e2..9161ecc 100644
--- a/fs/file.c
+++ b/fs/file.c
@@ -105,14 +105,14 @@ void free_fdtable_rcu(struct rcu_head *rcu)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0218-fs-ntfs-disable-interrupt-only-on-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0218-fs-ntfs-disable-interrupt-only-on-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0218-fs-ntfs-disable-interrupt-only-on-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Mike Galbraith <efault at gmx.de>
Date: Fri, 3 Jul 2009 08:44:12 -0500
-Subject: [PATCH 218/341] fs: ntfs: disable interrupt only on !RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=202e88d0dd0f5fbb62a4c68d000dec5450876435
+Subject: [PATCH 218/343] fs: ntfs: disable interrupt only on !RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=04d900d2812f81f4769d05426e493e640f237c7c
On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote:
> * Nick Piggin <nickpiggin at yahoo.com.au> wrote:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0219-x86-Convert-mce-timer-to-hrtimer.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0219-x86-Convert-mce-timer-to-hrtimer.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0219-x86-Convert-mce-timer-to-hrtimer.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 13 Dec 2010 16:33:39 +0100
-Subject: [PATCH 219/341] x86: Convert mce timer to hrtimer
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=61f44db20c7bab19fd0c85f3d7e21ab3c78c6456
+Subject: [PATCH 219/343] x86: Convert mce timer to hrtimer
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1f8c1ff4d737d0154f7cbcd9ed6f5ca65aca5057
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
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0220-x86-stackprotector-Avoid-random-pool-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0220-x86-stackprotector-Avoid-random-pool-on-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0220-x86-stackprotector-Avoid-random-pool-on-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 16 Dec 2010 14:25:18 +0100
-Subject: [PATCH 220/341] x86: stackprotector: Avoid random pool on rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=af8771e303149273d05df98edbfca5089de87b4f
+Subject: [PATCH 220/343] x86: stackprotector: Avoid random pool on rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=99395475fe1141f546f870c0379c757ec388ba47
CPU bringup calls into the random pool to initialize the stack
canary. During boot that works nicely even on RT as the might sleep
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0221-x86-Use-generic-rwsem_spinlocks-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0221-x86-Use-generic-rwsem_spinlocks-on-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0221-x86-Use-generic-rwsem_spinlocks-on-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 26 Jul 2009 02:21:32 +0200
-Subject: [PATCH 221/341] x86: Use generic rwsem_spinlocks on -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=663b36b89bc092eb214e6ff534e7b7b6e0ead726
+Subject: [PATCH 221/343] x86: Use generic rwsem_spinlocks on -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=27d3892cfdadaf55ae0f20fb4213b6fb3b8b3f98
Simplifies the separation of anon_rw_semaphores and rw_semaphores for
-rt.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0222-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0222-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0222-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Andi Kleen <ak at suse.de>
Date: Fri, 3 Jul 2009 08:44:10 -0500
-Subject: [PATCH 222/341] x86: Disable IST stacks for debug/int 3/stack fault
+Subject: [PATCH 222/343] x86: Disable IST stacks for debug/int 3/stack fault
for PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7b9acbd3777c5fda9bdc055ab8b56e89679086b5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fefc45a29121e31e202567e36a9cedd0ebe9e9cc
Normally the x86-64 trap handlers for debug/int 3/stack fault run
on a special interrupt stack to make them more robust
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0223-workqueue-use-get-cpu-light.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0223-workqueue-use-get-cpu-light.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0223-workqueue-use-get-cpu-light.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 21:42:26 +0200
-Subject: [PATCH 223/341] workqueue-use-get-cpu-light.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ecfb4539e538feab85b25a820a76e37f7c67cf8c
+Subject: [PATCH 223/343] workqueue-use-get-cpu-light.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89326ee628d2ea19dcb0e26cdddae5c7e51a6f12
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -9,7 +9,7 @@
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index c61bd39..049094e 100644
+index c7e6030..62ebed7 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -1083,8 +1083,8 @@ int queue_work(struct workqueue_struct *wq, struct work_struct *work)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0224-epoll.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0224-epoll.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0224-epoll.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 8 Jul 2011 16:35:35 +0200
-Subject: [PATCH 224/341] epoll.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a654d02329b2f1a019d9bba671532e98785ebb16
+Subject: [PATCH 224/343] epoll.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=88bdf94050a8a37364d67c57ab058e8cf82d6688
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0225-mm-vmalloc.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0225-mm-vmalloc.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0225-mm-vmalloc.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 12 Jul 2011 11:39:36 +0200
-Subject: [PATCH 225/341] mm-vmalloc.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=87aa62a503c85e337f326c0a283fe1c452bb87aa
+Subject: [PATCH 225/343] mm-vmalloc.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=17e946f455784c65ed1fc622b8f6cd77646719af
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0226-debugobjects-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0226-debugobjects-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0226-debugobjects-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 21:41:35 +0200
-Subject: [PATCH 226/341] debugobjects-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d920912bd53cb7cf1c2b4bca799b4a673b23ed1e
+Subject: [PATCH 226/343] debugobjects-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cb3ad6d5275d2f617afa31eef2cdc5125351531f
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0227-jump-label-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0227-jump-label-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0227-jump-label-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 13 Jul 2011 11:03:16 +0200
-Subject: [PATCH 227/341] jump-label-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=85d817b37d0a85d3d75bb2cd51a75eedb87997e6
+Subject: [PATCH 227/343] jump-label-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b8a74bb0c3ab3282654ab729b20818edbb7c9379
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0228-skbufhead-raw-lock.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0228-skbufhead-raw-lock.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0228-skbufhead-raw-lock.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 12 Jul 2011 15:38:34 +0200
-Subject: [PATCH 228/341] skbufhead-raw-lock.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=545b7ca7496f9d917b7de6301d21a2b31148e250
+Subject: [PATCH 228/343] skbufhead-raw-lock.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ee8e056b3be4eb3203c3343fa0c91fe9ab3f8df7
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -23,7 +23,7 @@
static inline void input_queue_head_incr(struct softnet_data *sd)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index 85180bf..094bb89 100644
+index c445e52..9f0a499 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -124,6 +124,7 @@ struct sk_buff_head {
@@ -34,7 +34,7 @@
};
struct sk_buff;
-@@ -933,6 +934,12 @@ static inline void skb_queue_head_init(struct sk_buff_head *list)
+@@ -943,6 +944,12 @@ static inline void skb_queue_head_init(struct sk_buff_head *list)
__skb_queue_head_init(list);
}
@@ -48,7 +48,7 @@
struct lock_class_key *class)
{
diff --git a/net/core/dev.c b/net/core/dev.c
-index 79396a8..3719626 100644
+index 36a7af9..1b2e4d4 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -222,14 +222,14 @@ static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex)
@@ -92,7 +92,7 @@
}
static int napi_gro_complete(struct sk_buff *skb)
-@@ -3912,10 +3915,17 @@ static void net_rx_action(struct softirq_action *h)
+@@ -3913,10 +3916,17 @@ static void net_rx_action(struct softirq_action *h)
struct softnet_data *sd = &__get_cpu_var(softnet_data);
unsigned long time_limit = jiffies + 2;
int budget = netdev_budget;
@@ -110,7 +110,7 @@
while (!list_empty(&sd->poll_list)) {
struct napi_struct *n;
int work, weight;
-@@ -6352,6 +6362,9 @@ static int dev_cpu_callback(struct notifier_block *nfb,
+@@ -6353,6 +6363,9 @@ static int dev_cpu_callback(struct notifier_block *nfb,
netif_rx(skb);
input_queue_head_incr(oldsd);
}
@@ -120,7 +120,7 @@
return NOTIFY_OK;
}
-@@ -6619,8 +6632,9 @@ static int __init net_dev_init(void)
+@@ -6620,8 +6633,9 @@ static int __init net_dev_init(void)
struct softnet_data *sd = &per_cpu(softnet_data, i);
memset(sd, 0, sizeof(*sd));
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0229-x86-no-perf-irq-work-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0229-x86-no-perf-irq-work-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0229-x86-no-perf-irq-work-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 13 Jul 2011 14:05:05 +0200
-Subject: [PATCH 229/341] x86-no-perf-irq-work-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d1b5b3e809582d93af0d9cea0d02ff6dc1579205
+Subject: [PATCH 229/343] x86-no-perf-irq-work-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f782a67a90d3d147308dd8b0c30c8aadb6f79d98
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -43,7 +43,7 @@
llnode = llist_del_all(this_list);
while (llnode != NULL) {
diff --git a/kernel/timer.c b/kernel/timer.c
-index 4e3b54f..706f6f6 100644
+index 471e277..be22b3c 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1366,7 +1366,7 @@ void update_process_times(int user_tick)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0230-console-make-rt-friendly.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0230-console-make-rt-friendly.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0230-console-make-rt-friendly.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 17 Jul 2011 22:43:07 +0200
-Subject: [PATCH 230/341] console-make-rt-friendly.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=630779d7bb28251f8a49dcfa40e336271aa81698
+Subject: [PATCH 230/343] console-make-rt-friendly.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=17509b9ce361b94637f11bf7c9a361a67b99c3f0
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -9,7 +9,7 @@
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/kernel/printk.c b/kernel/printk.c
-index 33de8db..a10c10d 100644
+index 6bf5457..9de8f0f 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -504,6 +504,7 @@ static void __call_console_drivers(unsigned start, unsigned end)
@@ -66,7 +66,7 @@
lockdep_on();
out_restore_irqs:
-@@ -1332,11 +1347,16 @@ again:
+@@ -1331,11 +1346,16 @@ again:
_con_start = con_start;
_log_end = log_end;
con_start = log_end; /* Flush */
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0231-printk-Disable-migration-instead-of-preemption.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0231-printk-Disable-migration-instead-of-preemption.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0231-printk-Disable-migration-instead-of-preemption.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Richard Weinberger <rw at linutronix.de>
Date: Mon, 12 Dec 2011 14:35:56 +0100
-Subject: [PATCH 231/341] printk: Disable migration instead of preemption
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=202f8c191a26358eeb2bf357778fa44a79c73456
+Subject: [PATCH 231/343] printk: Disable migration instead of preemption
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=adf27b7d40ff93d40c5e015c852452a308f7f363
There is no need do disable preemption in vprintk(), disable_migrate()
is sufficient. This fixes the following bug in -rt:
@@ -38,7 +38,7 @@
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/printk.c b/kernel/printk.c
-index a10c10d..34459a7 100644
+index 9de8f0f..b173409 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -912,7 +912,7 @@ asmlinkage int vprintk(const char *fmt, va_list args)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0232-power-use-generic-rwsem-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0232-power-use-generic-rwsem-on-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0232-power-use-generic-rwsem-on-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 10 Apr 2012 14:34:18 -0400
-Subject: [PATCH 232/341] power-use-generic-rwsem-on-rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=29e8b5ba39e72e8a5a0e416972333fc75c21b4c4
+Subject: [PATCH 232/343] power-use-generic-rwsem-on-rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=40f3c8157aed39c148133b59314785fe93b7a92b
---
arch/powerpc/Kconfig | 3 ++-
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0233-power-disable-highmem-on-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0233-power-disable-highmem-on-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0233-power-disable-highmem-on-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 18 Jul 2011 17:08:34 +0200
-Subject: [PATCH 233/341] power-disable-highmem-on-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ec03872f2471b2abf46d81ed7cd2d3f82c9d5fb1
+Subject: [PATCH 233/343] power-disable-highmem-on-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0a8f9ed50617c8d1716c354e48b5099c5e14f830
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0234-arm-disable-highmem-on-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0234-arm-disable-highmem-on-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0234-arm-disable-highmem-on-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 18 Jul 2011 17:09:28 +0200
-Subject: [PATCH 234/341] arm-disable-highmem-on-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4ca02cafcd10c8877bc871fc8572cb9ed113e2f0
+Subject: [PATCH 234/343] arm-disable-highmem-on-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c0f18db9016cf09d127dfd49b344d64506da23e6
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0235-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0235-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0235-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 1 May 2010 18:29:35 +0200
-Subject: [PATCH 235/341] 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=b7f0316542c7d4c7c60a3cdf8b7534ee1420f824
+Subject: [PATCH 235/343] 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=a0583dd201c118bc0b2a25c4eff1e70335d287a1
RT is not too happy about the shared timer interrupt in AT91
devices. Default to tclib timer for RT.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0236-mips-disable-highmem-on-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0236-mips-disable-highmem-on-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0236-mips-disable-highmem-on-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 18 Jul 2011 17:10:12 +0200
-Subject: [PATCH 236/341] mips-disable-highmem-on-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ff077b95f598a9c8ca2d0f4e39c5de5091d4ee98
+Subject: [PATCH 236/343] mips-disable-highmem-on-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9db98702f9602b0ecae045ce197d2f5e6cfc660c
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0237-net-Avoid-livelock-in-net_tx_action-on-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0237-net-Avoid-livelock-in-net_tx_action-on-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0237-net-Avoid-livelock-in-net_tx_action-on-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <srostedt at redhat.com>
Date: Thu, 6 Oct 2011 10:48:39 -0400
-Subject: [PATCH 237/341] net: Avoid livelock in net_tx_action() on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3d4c4c0677d1bcd1df8215b9d467317e5d2532f5
+Subject: [PATCH 237/343] net: Avoid livelock in net_tx_action() on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=bc595dbcd95c962017dee53c9db91fa4fdd86a10
qdisc_lock is taken w/o disabling interrupts or bottom halfs. So code
holding a qdisc_lock() can be interrupted and softirqs can run on the
@@ -43,7 +43,7 @@
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/net/core/dev.c b/net/core/dev.c
-index 3719626..015658f 100644
+index 1b2e4d4..48d4ea7 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3043,6 +3043,36 @@ int netif_rx_ni(struct sk_buff *skb)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0238-ping-sysrq.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0238-ping-sysrq.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0238-ping-sysrq.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Carsten Emde <C.Emde at osadl.org>
Date: Tue, 19 Jul 2011 13:51:17 +0100
-Subject: [PATCH 238/341] ping-sysrq.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2c554edefcf1a114b57696a053030d7cd2c59f47
+Subject: [PATCH 238/343] ping-sysrq.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c1ab7eefc02687fbf614e3c6b68cc01b193127b5
There are (probably rare) situations when a system crashed and the system
console becomes unresponsive but the network icmp layer still is alive.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0239-kgdb-serial-Short-term-workaround.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0239-kgdb-serial-Short-term-workaround.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0239-kgdb-serial-Short-term-workaround.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Jason Wessel <jason.wessel at windriver.com>
Date: Thu, 28 Jul 2011 12:42:23 -0500
-Subject: [PATCH 239/341] kgdb/serial: Short term workaround
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5bf1c2422f88371bdda1fb2933ad61681305b7d8
+Subject: [PATCH 239/343] kgdb/serial: Short term workaround
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=996ce0d0bbd05297ba16b96138fdb41687156e6a
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 @@
3 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/drivers/tty/serial/8250.c b/drivers/tty/serial/8250.c
-index 0e13307..fdc5777 100644
+index 2169073..b713a36 100644
--- a/drivers/tty/serial/8250.c
+++ b/drivers/tty/serial/8250.c
@@ -38,6 +38,7 @@
@@ -35,7 +35,7 @@
#include <asm/io.h>
#include <asm/irq.h>
-@@ -2888,10 +2889,14 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
+@@ -2892,10 +2893,14 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
touch_nmi_watchdog();
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0240-add-sys-kernel-realtime-entry.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0240-add-sys-kernel-realtime-entry.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0240-add-sys-kernel-realtime-entry.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Clark Williams <williams at redhat.com>
Date: Sat, 30 Jul 2011 21:55:53 -0500
-Subject: [PATCH 240/341] add /sys/kernel/realtime entry
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ebb721da299cccabc28dbf33937c5b25f5a50e2e
+Subject: [PATCH 240/343] add /sys/kernel/realtime entry
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=75252e02e3438647f7255a9cde3f464bc74b05e0
Add a /sys/kernel entry to indicate that the kernel is a
realtime kernel.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0241-mm-rt-kmap_atomic-scheduling.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0241-mm-rt-kmap_atomic-scheduling.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0241-mm-rt-kmap_atomic-scheduling.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Thu, 28 Jul 2011 10:43:51 +0200
-Subject: [PATCH 241/341] mm, rt: kmap_atomic scheduling
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=024e754986600f00ca464f81c378ad7e7e65dd08
+Subject: [PATCH 241/343] mm, rt: kmap_atomic scheduling
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6ea5f4ea1785672fb922faafbbf7b99f54845c15
In fact, with migrate_disable() existing one could play games with
kmap_atomic. You could save/restore the kmap_atomic slots on context
@@ -76,7 +76,7 @@
* Leave lazy mode, flushing any hypercalls made here.
* This must be done before restoring TLS segments so
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index d48d75f..4de1cd7 100644
+index 4be25bc..0b99590 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -63,6 +63,7 @@ struct sched_param {
@@ -99,10 +99,10 @@
#ifdef CONFIG_PREEMPT_RT_FULL
diff --git a/mm/memory.c b/mm/memory.c
-index 93d5328..712ccdf 100644
+index 5b589e1..8da67ce 100644
--- a/mm/memory.c
+++ b/mm/memory.c
-@@ -3502,6 +3502,7 @@ unlock:
+@@ -3507,6 +3507,7 @@ unlock:
#ifdef CONFIG_PREEMPT_RT_FULL
void pagefault_disable(void)
{
@@ -110,7 +110,7 @@
current->pagefault_disabled++;
/*
* make sure to have issued the store before a pagefault
-@@ -3519,6 +3520,7 @@ void pagefault_enable(void)
+@@ -3524,6 +3525,7 @@ void pagefault_enable(void)
*/
barrier();
current->pagefault_disabled--;
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0242-ipc-sem-Rework-semaphore-wakeups.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0242-ipc-sem-Rework-semaphore-wakeups.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0242-ipc-sem-Rework-semaphore-wakeups.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <a.p.zijlstra at chello.nl>
Date: Tue, 13 Sep 2011 15:09:40 +0200
-Subject: [PATCH 242/341] ipc/sem: Rework semaphore wakeups
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a1a5e472f105d208aa1d943726af489c9b2bc79d
+Subject: [PATCH 242/343] ipc/sem: Rework semaphore wakeups
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b60b3d80a2333fa285fcbb9a0a5889b0bd12b61d
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
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0243-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0243-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0243-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Frank Rowand <frank.rowand at am.sony.com>
Date: Fri, 23 Sep 2011 13:43:12 -0700
-Subject: [PATCH 243/341] sysrq: Allow immediate Magic SysRq output for
+Subject: [PATCH 243/343] sysrq: Allow immediate Magic SysRq output for
PREEMPT_RT_FULL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d1b4409d13720544fc54e5d01677574d0a56e122
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7405c5b13b77b420cb05b6a92326b3d00c83a944
Add a CONFIG option to allow the output from Magic SysRq to be output
immediately, even if this causes large latencies.
@@ -22,8 +22,6 @@
Link: http://lkml.kernel.org/r/4E7CEF60.5020508@am.sony.com
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
-[ukleinek: make apply on top of debian/sysrq-mask.patch]
-
drivers/tty/serial/cpm_uart/cpm_uart_core.c | 2 +-
drivers/tty/sysrq.c | 23 +++++++++++++++++++++++
include/linux/sysrq.h | 5 +++++
@@ -31,11 +29,9 @@
lib/Kconfig.debug | 22 ++++++++++++++++++++++
5 files changed, 54 insertions(+), 3 deletions(-)
-diff --git a/drivers/tty/serial/cpm_uart/cpm_uart_core.c b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
-index b418947..a8b0559 100644
--- a/drivers/tty/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
-@@ -1226,7 +1226,7 @@ static void cpm_uart_console_write(struct console *co, const char *s,
+@@ -1226,7 +1226,7 @@ static void cpm_uart_console_write(struc
{
struct uart_cpm_port *pinfo = &cpm_uart_ports[co->index];
unsigned long flags;
@@ -44,11 +40,9 @@
if (unlikely(nolock)) {
local_irq_save(flags);
-diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
-index 43db715..5219738 100644
--- a/drivers/tty/sysrq.c
+++ b/drivers/tty/sysrq.c
-@@ -492,6 +492,23 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
+@@ -492,6 +492,23 @@ static void __sysrq_put_key_op(int key,
sysrq_key_table[i] = op_p;
}
@@ -72,7 +66,7 @@
void __handle_sysrq(int key, bool check_mask)
{
struct sysrq_key_op *op_p;
-@@ -500,6 +517,9 @@ void __handle_sysrq(int key, bool check_mask)
+@@ -500,6 +517,9 @@ void __handle_sysrq(int key, bool check_
unsigned long flags;
spin_lock_irqsave(&sysrq_key_table_lock, flags);
@@ -82,7 +76,7 @@
/*
* Raise the apparent loglevel to maximum so that the sysrq header
* is shown to provide the user with positive feedback. We do not
-@@ -541,6 +561,9 @@ void __handle_sysrq(int key, bool check_mask)
+@@ -541,6 +561,9 @@ void __handle_sysrq(int key, bool check_
printk("\n");
console_loglevel = orig_log_level;
}
@@ -92,8 +86,6 @@
spin_unlock_irqrestore(&sysrq_key_table_lock, flags);
}
-diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h
-index 7faf933..d224c0b 100644
--- a/include/linux/sysrq.h
+++ b/include/linux/sysrq.h
@@ -38,6 +38,11 @@ struct sysrq_key_op {
@@ -108,8 +100,6 @@
#ifdef CONFIG_MAGIC_SYSRQ
/* Generic SysRq interface -- you may call it from any device driver, supplying
-diff --git a/kernel/printk.c b/kernel/printk.c
-index 34459a7..79a75f7 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -21,6 +21,7 @@
@@ -120,7 +110,7 @@
#include <linux/init.h>
#include <linux/jiffies.h>
#include <linux/nmi.h>
-@@ -845,8 +846,8 @@ static int console_trylock_for_printk(unsigned int cpu, unsigned long flags)
+@@ -848,8 +849,8 @@ static int console_trylock_for_printk(un
{
int retval = 0, wake = 0;
#ifdef CONFIG_PREEMPT_RT_FULL
@@ -133,7 +123,7 @@
#endif
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
-@@ -62,6 +62,28 @@ config MAGIC_SYSRQ
+@@ -70,6 +70,28 @@ config MAGIC_SYSRQ_DEFAULT_MASK
Specifies the default mask for the allowed SysRq keys. This can be
used to disable several sensitive keys by default.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0244-x86-kvm-require-const-tsc-for-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0244-x86-kvm-require-const-tsc-for-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0244-x86-kvm-require-const-tsc-for-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 6 Nov 2011 12:26:18 +0100
-Subject: [PATCH 244/341] x86-kvm-require-const-tsc-for-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a945fc7bd1201e7896dddfcc8bf95cbf9bcd8194
+Subject: [PATCH 244/343] x86-kvm-require-const-tsc-for-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=85b3fa31a206daf9425a8352b76b946491377891
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
@@ -9,10 +9,10 @@
1 file changed, 7 insertions(+)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index 7774cca..4dec01f 100644
+index b9fefaf..c0c8991 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
-@@ -5203,6 +5203,13 @@ int kvm_arch_init(void *opaque)
+@@ -5206,6 +5206,13 @@ int kvm_arch_init(void *opaque)
goto out;
}
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0245-scsi-fcoe-rt-aware.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0245-scsi-fcoe-rt-aware.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0245-scsi-fcoe-rt-aware.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sat, 12 Nov 2011 14:00:48 +0100
-Subject: [PATCH 245/341] scsi-fcoe-rt-aware.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ba6211d5aa82262ac6af36a8c6b09cd3c9a71497
+Subject: [PATCH 245/343] scsi-fcoe-rt-aware.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=44120023ae0314adfd8f2816b8d24b4102783f54
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0246-x86-crypto-Reduce-preempt-disabled-regions.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0246-x86-crypto-Reduce-preempt-disabled-regions.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0246-x86-crypto-Reduce-preempt-disabled-regions.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Mon, 14 Nov 2011 18:19:27 +0100
-Subject: [PATCH 246/341] x86: crypto: Reduce preempt disabled regions
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f725a22e5ae08de10fcc27e882537b77e577dc92
+Subject: [PATCH 246/343] x86: crypto: Reduce preempt disabled regions
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2bb0aeb9dfbc264ee19544b06628bdd97bb2e111
Restrict the preempt disabled regions to the actual floating point
operations and enable preemption for the administrative actions.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0247-dm-Make-rt-aware.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0247-dm-Make-rt-aware.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0247-dm-Make-rt-aware.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 14 Nov 2011 23:06:09 +0100
-Subject: [PATCH 247/341] dm: Make rt aware
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6970744f59dbf4cb1d9e0b8770e7fe56e45220ce
+Subject: [PATCH 247/343] dm: Make rt aware
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=20230924ae4038f825818c38c760ec330dd5a96a
Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has
interrupts legitimately enabled here as we cant deadlock against the
@@ -15,7 +15,7 @@
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
-index 8953630..2dc648b2 100644
+index 7ead065..81ee8e0 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1676,14 +1676,14 @@ static void dm_request_fn(struct request_queue *q)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0248-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0248-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0248-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 14 Dec 2011 01:03:49 +0100
-Subject: [PATCH 248/341] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5c9ec82e9e5cf8a9e3f36d258db3573aa6056eab
+Subject: [PATCH 248/343] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f4ff5fad6109deaaadba821c06550ba27fb068b4
We can't deal with the cpumask allocations which happen in atomic
context (see arch/x86/kernel/apic/io_apic.c) on RT right now.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0249-seqlock-Prevent-rt-starvation.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0249-seqlock-Prevent-rt-starvation.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0249-seqlock-Prevent-rt-starvation.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 22 Feb 2012 12:03:30 +0100
-Subject: [PATCH 249/341] seqlock: Prevent rt starvation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fe74fffd49a36e28c48993bb07e0514424c1051c
+Subject: [PATCH 249/343] seqlock: Prevent rt starvation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0e2ff1bebbbf86ac89915e24d2b166bcc54685bd
If a low prio writer gets preempted while holding the seqlock write
locked, a high prio reader spins forever on RT.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0250-timer-Fix-hotplug-for-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0250-timer-Fix-hotplug-for-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0250-timer-Fix-hotplug-for-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Thu, 1 Mar 2012 13:55:28 -0500
-Subject: [PATCH 250/341] timer: Fix hotplug for -rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=555fd9f520836db2950a83bb2438e74c5a63ac61
+Subject: [PATCH 250/343] timer: Fix hotplug for -rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b262aee07dd91ca0b73d51314b4cc3a7b19f1d1f
Revert the RT patch:
Author: Ingo Molnar <mingo at elte.hu>
@@ -30,7 +30,7 @@
1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/kernel/timer.c b/kernel/timer.c
-index 706f6f6..2f114d1 100644
+index be22b3c..330565b 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1746,21 +1746,17 @@ static void __cpuinit migrate_timers(int cpu)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0251-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0251-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0251-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Thu, 1 Mar 2012 13:55:29 -0500
-Subject: [PATCH 251/341] futex/rt: Fix possible lockup when taking pi_lock in
+Subject: [PATCH 251/343] futex/rt: Fix possible lockup when taking pi_lock in
proxy handler
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=89cf308d6ef45d87bc9e7a78143dcb3d04c987ab
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=45cc36ffe9e3608c9afa7c54077fb6251dcc110a
When taking the pi_lock, we must disable interrupts because the
pi_lock can also be taken in an interrupt handler.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0252-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0252-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0252-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Thu, 1 Mar 2012 13:55:32 -0500
-Subject: [PATCH 252/341] ring-buffer/rt: Check for irqs disabled before
+Subject: [PATCH 252/343] ring-buffer/rt: Check for irqs disabled before
grabbing reader lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9b176316b7150c6d95117ba21ceb822d188d1c49
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1eb9dac2ddf23bd24403a705a75ef487d48ac097
In RT the reader lock is a mutex and we can not grab it when preemption is
disabled. The in_atomic() check that is there does not check if irqs are
@@ -21,7 +21,7 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
-index 70112f3..aa89695 100644
+index 408d724..8122c54 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -1054,7 +1054,7 @@ static inline int ok_to_lock(void)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0253-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0253-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0253-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Thu, 1 Mar 2012 13:55:33 -0500
-Subject: [PATCH 253/341] sched/rt: Fix wait_task_interactive() to test
+Subject: [PATCH 253/343] sched/rt: Fix wait_task_interactive() to test
rt_spin_lock state
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=25d616a539897ae0b66e3c1ffb4fd77f1d555038
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=da20acbe5c748f771c55ddb690678406aad0b309
The wait_task_interactive() will have a task sleep waiting for another
task to have a certain state. But it ignores the rt_spin_locks state
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0254-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0254-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0254-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Thu, 1 Mar 2012 13:55:30 -0500
-Subject: [PATCH 254/341] lglock/rt: Use non-rt for_each_cpu() in -rt code
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=674d03f5899708bbc33a4b371fde35d1f9313719
+Subject: [PATCH 254/343] lglock/rt: Use non-rt for_each_cpu() in -rt code
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e96bf3a837fad4062d5d74d2c3ade163e6daf9d2
Currently the RT version of the lglocks() does a for_each_online_cpu()
in the name##_global_lock_online() functions. Non-rt uses its own
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0255-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0255-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0255-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Fri, 2 Mar 2012 10:36:57 -0500
-Subject: [PATCH 255/341] 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=8a0f03e8ecc984efcf5618a48993ad34e4f24dad
+Subject: [PATCH 255/343] 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=ac55b4c12ba895eef50982931d844dcd20330d1f
Tasks can block on hotplug.lock in pin_current_cpu(), but their state
might be != RUNNING. So the mutex wakeup will set the state
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0256-softirq-Check-preemption-after-reenabling-interrupts.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0256-softirq-Check-preemption-after-reenabling-interrupts.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0256-softirq-Check-preemption-after-reenabling-interrupts.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 13 Nov 2011 17:17:09 +0100
-Subject: [PATCH 256/341] softirq: Check preemption after reenabling interrupts
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8d8979282d536f72b3298f105faf79cb803cd4d6
+Subject: [PATCH 256/343] softirq: Check preemption after reenabling interrupts
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=19d34d7a655b818d38e2f075571a6f902d6a9fb3
raise_softirq_irqoff() disables interrupts and wakes the softirq
daemon, but after reenabling interrupts there is no preemption check,
@@ -101,7 +101,7 @@
#endif /* CONFIG_PREEMPT_COUNT */
diff --git a/net/core/dev.c b/net/core/dev.c
-index 015658f..c6debdb 100644
+index 48d4ea7..1caf162 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1820,6 +1820,7 @@ static inline void __netif_reschedule(struct Qdisc *q)
@@ -128,7 +128,7 @@
atomic_long_inc(&skb->dev->rx_dropped);
kfree_skb(skb);
-@@ -3799,6 +3802,7 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
+@@ -3800,6 +3803,7 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
} else
#endif
local_irq_enable();
@@ -136,7 +136,7 @@
}
static int process_backlog(struct napi_struct *napi, int quota)
-@@ -3871,6 +3875,7 @@ void __napi_schedule(struct napi_struct *n)
+@@ -3872,6 +3876,7 @@ void __napi_schedule(struct napi_struct *n)
local_irq_save(flags);
____napi_schedule(&__get_cpu_var(softnet_data), n);
local_irq_restore(flags);
@@ -144,7 +144,7 @@
}
EXPORT_SYMBOL(__napi_schedule);
-@@ -6382,6 +6387,7 @@ static int dev_cpu_callback(struct notifier_block *nfb,
+@@ -6383,6 +6388,7 @@ static int dev_cpu_callback(struct notifier_block *nfb,
raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_enable();
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0257-rt-Introduce-cpu_chill.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0257-rt-Introduce-cpu_chill.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0257-rt-Introduce-cpu_chill.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 7 Mar 2012 20:51:03 +0100
-Subject: [PATCH 257/341] rt: Introduce cpu_chill()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a488f9fff88ac7e0ffb9e06ca0430a7c661ae27e
+Subject: [PATCH 257/343] rt: Introduce cpu_chill()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f68603957136a56bd19590916cadf85d01c0569c
Retry loops on RT might loop forever when the modifying side was
preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill()
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0258-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0258-fs-dcache-Use-cpu_chill-in-trylock-loops.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0258-fs-dcache-Use-cpu_chill-in-trylock-loops.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 7 Mar 2012 21:00:34 +0100
-Subject: [PATCH 258/341] fs: dcache: Use cpu_chill() in trylock loops
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=172faeaa7c3c4f8b3bd6d22238ede4dc6d92ad10
+Subject: [PATCH 258/343] fs: dcache: Use cpu_chill() in trylock loops
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f4f443ac5c33077afc4d6a6039fab3ab29993fb5
Retry loops on RT might loop forever when the modifying side was
preempted. Use cpu_chill() instead of cpu_relax() to let the system
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0259-net-Use-cpu_chill-instead-of-cpu_relax.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0259-net-Use-cpu_chill-instead-of-cpu_relax.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0259-net-Use-cpu_chill-instead-of-cpu_relax.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 7 Mar 2012 21:10:04 +0100
-Subject: [PATCH 259/341] net: Use cpu_chill() instead of cpu_relax()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9115773cdc5b90692c9ed62d011b274dd39583ef
+Subject: [PATCH 259/343] net: Use cpu_chill() instead of cpu_relax()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0a94a95688ad1f7e27fec774be9d5acdf07fc716
Retry loops on RT might loop forever when the modifying side was
preempted. Use cpu_chill() instead of cpu_relax() to let the system
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0260-kconfig-disable-a-few-options-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0260-kconfig-disable-a-few-options-rt.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0260-kconfig-disable-a-few-options-rt.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 24 Jul 2011 12:11:43 +0200
-Subject: [PATCH 260/341] kconfig-disable-a-few-options-rt.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7c7026d1c817eff95b5705177f7ff74d4c69702
+Subject: [PATCH 260/343] kconfig-disable-a-few-options-rt.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e6b91751f84ed2b003744fd09ce1f055748de85d
Disable stuff which is known to have issues on RT
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0261-kconfig-preempt-rt-full.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0261-kconfig-preempt-rt-full.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0261-kconfig-preempt-rt-full.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 29 Jun 2011 14:58:57 +0200
-Subject: [PATCH 261/341] kconfig-preempt-rt-full.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e80f07f84eb7437a8860f9511837eaea77ba90e2
+Subject: [PATCH 261/343] kconfig-preempt-rt-full.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8369cba5cffcad3352fddc8bd036b835ca9b840c
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0262-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0262-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0262-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <srostedt at redhat.com>
Date: Mon, 16 Apr 2012 21:51:54 -0400
-Subject: [PATCH 262/341] rt: Make migrate_disable/enable() and __rt_mutex_init
+Subject: [PATCH 262/343] rt: Make migrate_disable/enable() and __rt_mutex_init
non-GPL only
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c35ab28b3dc4de40287ddb166f1a32a56b186afa
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=39c54a716a8b8b631fdff2e09b7789d28cc7929a
Modules that load on the normal vanilla kernel should also load on
an -rt kernel as well. This does not mean we condone non-GPL modules,
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0263-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0263-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0263-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: John Kacur <jkacur at redhat.com>
Date: Fri, 27 Apr 2012 12:48:46 +0200
-Subject: [PATCH 263/341] scsi: qla2xxx: Use local_irq_save_nort() in
+Subject: [PATCH 263/343] 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=76b67a46e308fdbae9137111527cc0d940ef54b3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7bf583a480e8e062b4f8835e74d3f7cd3fe1279
RT triggers the following:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0264-net-RT-REmove-preemption-disabling-in-netif_rx.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0264-net-RT-REmove-preemption-disabling-in-netif_rx.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0264-net-RT-REmove-preemption-disabling-in-netif_rx.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Priyanka Jain <Priyanka.Jain at freescale.com>
Date: Thu, 17 May 2012 09:35:11 +0530
-Subject: [PATCH 264/341] net,RT:REmove preemption disabling in netif_rx()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=83318c289eb6f880b7cb29f1d4e00241adeb4de8
+Subject: [PATCH 264/343] net,RT:REmove preemption disabling in netif_rx()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb737abdd13a5efabd32215f0524f8a3e02eed8e
1)enqueue_to_backlog() (called from netif_rx) should be
bind to a particluar CPU. This can be achieved by
@@ -36,7 +36,7 @@
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
-index c6debdb..1ba9670 100644
+index 1caf162..448ba0d 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3009,7 +3009,7 @@ int netif_rx(struct sk_buff *skb)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0265-mips-remove-smp-reserve-lock.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0265-mips-remove-smp-reserve-lock.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0265-mips-remove-smp-reserve-lock.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 22 May 2012 21:15:10 +0200
-Subject: [PATCH 265/341] mips-remove-smp-reserve-lock.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9d691c7a66379a865dc7be56c04483c7d178035f
+Subject: [PATCH 265/343] mips-remove-smp-reserve-lock.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d676d09d319f017b84105d8d2e7857b1bed33dd6
Instead of making the lock raw, remove it as it protects nothing.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0266-Latency-histogramms-Cope-with-backwards-running-loca.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0266-Latency-histogramms-Cope-with-backwards-running-loca.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0266-Latency-histogramms-Cope-with-backwards-running-loca.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Carsten Emde <C.Emde at osadl.org>
Date: Wed, 11 Jul 2012 22:05:17 +0000
-Subject: [PATCH 266/341] Latency histogramms: Cope with backwards running
+Subject: [PATCH 266/343] Latency histogramms: Cope with backwards running
local trace clock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b1f45e20c716fffa64a9707599fcd5d6fa03b5e5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4d61b8146beec27fb52831e217ecfd6dd42ca578
Thanks to the wonders of modern technology, the local trace clock can
now run backwards. Since this never happened before, the time difference
@@ -29,7 +29,7 @@
2 files changed, 38 insertions(+), 35 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 4de1cd7..042fa34 100644
+index 0b99590..070487f 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1594,7 +1594,7 @@ struct task_struct {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0267-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0267-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0267-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Carsten Emde <C.Emde at osadl.org>
Date: Wed, 11 Jul 2012 22:05:18 +0000
-Subject: [PATCH 267/341] Latency histograms: Adjust timer, if already elapsed
+Subject: [PATCH 267/343] Latency histograms: Adjust timer, if already elapsed
when programmed
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95642b9cb3d04faf68d5a4c0ed6fb65fe7fbd8dc
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dbc0f8e4ff775b3fc54c0ef896e3f50b1a82d5b7
Nothing prevents a programmer from calling clock_nanosleep() with an
already elapsed wakeup time in absolute time mode or with a too small
@@ -35,10 +35,10 @@
int start_pid;
void *start_site;
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index 8c2ac15..cd0e7bc 100644
+index 92b941f..f059ecd 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
-@@ -1014,6 +1014,17 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
+@@ -1033,6 +1033,17 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
#endif
}
@@ -55,8 +55,8 @@
+
hrtimer_set_expires_range_ns(timer, tim, delta_ns);
- timer_stats_hrtimer_set_start_info(timer);
-@@ -1470,8 +1481,9 @@ retry:
+ /* Switch the timer base, if necessary: */
+@@ -1492,8 +1503,9 @@ retry:
timer = container_of(node, struct hrtimer, node);
trace_hrtimer_interrupt(raw_smp_processor_id(),
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0268-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0268-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0268-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Carsten Emde <C.Emde at osadl.org>
Date: Wed, 11 Jul 2012 22:05:18 +0000
-Subject: [PATCH 268/341] Disable RT_GROUP_SCHED in PREEMPT_RT_FULL
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0bcf11d8f90beeff826abdfec1b3f589d505e65b
+Subject: [PATCH 268/343] Disable RT_GROUP_SCHED in PREEMPT_RT_FULL
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5b06cb65b221291c870224d536caed8413a94ac0
Strange CPU stalls have been observed in RT when RT_GROUP_SCHED
was configured.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0269-Latency-histograms-Detect-another-yet-overlooked-sha.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0269-Latency-histograms-Detect-another-yet-overlooked-sha.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0269-Latency-histograms-Detect-another-yet-overlooked-sha.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Carsten Emde <C.Emde at osadl.org>
Date: Wed, 11 Jul 2012 22:05:19 +0000
-Subject: [PATCH 269/341] Latency histograms: Detect another yet overlooked
+Subject: [PATCH 269/343] Latency histograms: Detect another yet overlooked
sharedprio condition
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=96e39f5376732f8d5c38b2fa637712d2f4675935
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c63dca7ca733fb001c3fe37d324067c02d725c55
While waiting for an RT process to be woken up, the previous process may
go to wait and switch to another one with the same priority which then
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0270-slab-Prevent-local-lock-deadlock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0270-slab-Prevent-local-lock-deadlock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0270-slab-Prevent-local-lock-deadlock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 11 Jul 2012 22:05:19 +0000
-Subject: [PATCH 270/341] slab: Prevent local lock deadlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6875cd29c21a672f21d9e578944c9769b841f0e2
+Subject: [PATCH 270/343] slab: Prevent local lock deadlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=abe53bbcdc966bea40233fff997b94502d3d3c64
On RT we avoid the cross cpu function calls and take the per cpu local
locks instead. Now the code missed that taking the local lock on the
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0271-fs-jbd-pull-your-plug-when-waiting-for-space.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0271-fs-jbd-pull-your-plug-when-waiting-for-space.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0271-fs-jbd-pull-your-plug-when-waiting-for-space.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Mike Galbraith <mgalbraith at suse.de>
Date: Wed, 11 Jul 2012 22:05:20 +0000
-Subject: [PATCH 271/341] fs, jbd: pull your plug when waiting for space
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cdd5fa19a03bfeed3d0d35fc89a413d18058cee8
+Subject: [PATCH 271/343] fs, jbd: pull your plug when waiting for space
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ca4f86e152988262dc1c2536d2701c66caf0bf3d
With an -rt kernel, and a heavy sync IO load, tasks can jam
up on journal locks without unplugging, which can lead to
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0272-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0272-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0272-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Yong Zhang <yong.zhang at windriver.com>
Date: Wed, 11 Jul 2012 22:05:21 +0000
-Subject: [PATCH 272/341] perf: Make swevent hrtimer run in irq instead of
+Subject: [PATCH 272/343] 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=22e05e85cc25011e6efd5968ed99fb0bc59d53b3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fdaf1cba04e5bd59d2300c6bc943831ec972c9ae
Otherwise we get a deadlock like below:
@@ -58,10 +58,10 @@
1 file changed, 1 insertion(+)
diff --git a/kernel/events/core.c b/kernel/events/core.c
-index 83d5621..323c0fd 100644
+index 1d1edcb..e010e8b 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
-@@ -5540,6 +5540,7 @@ static void perf_swevent_init_hrtimer(struct perf_event *event)
+@@ -5549,6 +5549,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;
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0273-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0273-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0273-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <srostedt at redhat.com>
Date: Mon, 16 Jul 2012 08:07:43 +0000
-Subject: [PATCH 273/341] cpu/rt: Rework cpu down for PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f796710b1f673fe782a785f58b8bc5c7c555f9cb
+Subject: [PATCH 273/343] cpu/rt: Rework cpu down for PREEMPT_RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=12e6e696d11507f1b9b0254db1304f3cb3a364e8
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
@@ -55,10 +55,10 @@
3 files changed, 285 insertions(+), 40 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 042fa34..fad7fea5 100644
+index 070487f..0e17eef 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -1942,6 +1942,10 @@ extern void do_set_cpus_allowed(struct task_struct *p,
+@@ -1960,6 +1960,10 @@ extern void do_set_cpus_allowed(struct task_struct *p,
extern int set_cpus_allowed_ptr(struct task_struct *p,
const struct cpumask *new_mask);
@@ -69,7 +69,7 @@
#else
static inline void do_set_cpus_allowed(struct task_struct *p,
const struct cpumask *new_mask)
-@@ -1954,6 +1958,9 @@ static inline int set_cpus_allowed_ptr(struct task_struct *p,
+@@ -1972,6 +1976,9 @@ static inline int set_cpus_allowed_ptr(struct task_struct *p,
return -EINVAL;
return 0;
}
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0274-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0274-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0274-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <srostedt at redhat.com>
Date: Tue, 17 Jul 2012 10:45:59 -0400
-Subject: [PATCH 274/341] cpu/rt: Fix cpu_hotplug variable initialization
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e96f94e1c164cdb8b0df1eaafb1f49f24dec06d0
+Subject: [PATCH 274/343] cpu/rt: Fix cpu_hotplug variable initialization
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=170025c1df75c294f76567e968c95d84bee396f8
The commit "cpu/rt: Rework cpu down for PREEMPT_RT" changed the double
meaning of the cpu_hotplug.lock, where it was a spinlock for RT and a
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0275-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0275-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0275-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Thu, 2 Aug 2012 18:56:52 -0400
-Subject: [PATCH 275/341] time/rt: Fix up leap-second backport for RT changes
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e59a0aebe150fc0c06d6368b94f1f7b745cc4f9f
+Subject: [PATCH 275/343] time/rt: Fix up leap-second backport for RT changes
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0e2a697bb452e00ba99e80288a5b35bbd41c1cf0
The leap-second backport broke RT, and a few changes had to be done.
@@ -43,7 +43,7 @@
time_maxerror += MAXFREQ / NSEC_PER_USEC;
if (time_maxerror > NTP_PHASE_LIMIT) {
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index 9ca2a82..8cf55f2 100644
+index d00be1d..0d8f0ed 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -1295,7 +1295,7 @@ ktime_t ktime_get_update_offsets(ktime_t *real, ktime_t *boot)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0276-fix-printk-flush-of-messages.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0276-fix-printk-flush-of-messages.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0276-fix-printk-flush-of-messages.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Frank Rowand <frank.rowand at am.sony.com>
Date: Wed, 16 May 2012 18:09:36 -0700
-Subject: [PATCH 276/341] fix printk flush of messages
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e8e361b7a753a977509bec1b3d39631c15915886
+Subject: [PATCH 276/343] fix printk flush of messages
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=48f4000fa8eee789446b5c3aaa2916098825c1d6
Updates console-make-rt-friendly.patch
@@ -41,7 +41,7 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/printk.c b/kernel/printk.c
-index 79a75f7..39beab8 100644
+index 1e801523..7ee229c 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -847,7 +847,7 @@ static int console_trylock_for_printk(unsigned int cpu, unsigned long flags)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0277-fix-printk-flush-of-messages.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0277-fix-printk-flush-of-messages.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0277-fix-printk-flush-of-messages.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Frank Rowand <frank.rowand at am.sony.com>
Date: Wed, 16 May 2012 18:05:53 -0700
-Subject: [PATCH 277/341] fix printk flush of messages
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=eb0202fab2dae3c2b8adc6d432d5558b14196362
+Subject: [PATCH 277/343] fix printk flush of messages
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=88b3caeb4a6700f8f5aa4c3bba4536eaa4e3a826
Reverse preempt-rt-allow-immediate-magic-sysrq-output-for-preempt_rt_full.patch
@@ -11,7 +11,6 @@
Signed-off-by: Frank Rowand <frank.rowand at am.sony.com>
Link: http://lkml.kernel.org/r/4FB44EF1.9050809@am.sony.com
Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
-[bwh: make apply on top of debian/sysrq-mask.patch]
---
drivers/tty/serial/cpm_uart/cpm_uart_core.c | 2 +-
drivers/tty/sysrq.c | 23 -----------------------
@@ -20,11 +19,9 @@
lib/Kconfig.debug | 22 ----------------------
5 files changed, 3 insertions(+), 54 deletions(-)
-diff --git a/drivers/tty/serial/cpm_uart/cpm_uart_core.c b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
-index a8b0559..b418947 100644
--- a/drivers/tty/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
-@@ -1226,7 +1226,7 @@ static void cpm_uart_console_write(struct console *co, const char *s,
+@@ -1226,7 +1226,7 @@ static void cpm_uart_console_write(struc
{
struct uart_cpm_port *pinfo = &cpm_uart_ports[co->index];
unsigned long flags;
@@ -33,11 +30,9 @@
if (unlikely(nolock)) {
local_irq_save(flags);
-diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
-index 5219738..43db715 100644
--- a/drivers/tty/sysrq.c
+++ b/drivers/tty/sysrq.c
-@@ -492,23 +492,6 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
+@@ -492,23 +492,6 @@ static void __sysrq_put_key_op(int key,
sysrq_key_table[i] = op_p;
}
@@ -61,7 +56,7 @@
void __handle_sysrq(int key, bool check_mask)
{
struct sysrq_key_op *op_p;
-@@ -517,9 +500,6 @@ void __handle_sysrq(int key, bool check_mask)
+@@ -517,9 +500,6 @@ void __handle_sysrq(int key, bool check_
unsigned long flags;
spin_lock_irqsave(&sysrq_key_table_lock, flags);
@@ -71,7 +66,7 @@
/*
* Raise the apparent loglevel to maximum so that the sysrq header
* is shown to provide the user with positive feedback. We do not
-@@ -561,9 +541,6 @@ void __handle_sysrq(int key, bool check_mask)
+@@ -561,9 +541,6 @@ void __handle_sysrq(int key, bool check_
printk("\n");
console_loglevel = orig_log_level;
}
@@ -81,8 +76,6 @@
spin_unlock_irqrestore(&sysrq_key_table_lock, flags);
}
-diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h
-index d224c0b..7faf933 100644
--- a/include/linux/sysrq.h
+++ b/include/linux/sysrq.h
@@ -38,11 +38,6 @@ struct sysrq_key_op {
@@ -97,8 +90,6 @@
#ifdef CONFIG_MAGIC_SYSRQ
/* Generic SysRq interface -- you may call it from any device driver, supplying
-diff --git a/kernel/printk.c b/kernel/printk.c
-index 39beab8..37b9b99 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -21,7 +21,6 @@
@@ -109,7 +100,7 @@
#include <linux/init.h>
#include <linux/jiffies.h>
#include <linux/nmi.h>
-@@ -846,8 +845,8 @@ static int console_trylock_for_printk(unsigned int cpu, unsigned long flags)
+@@ -849,8 +848,8 @@ static int console_trylock_for_printk(un
{
int retval = 0, wake = 0;
#ifdef CONFIG_PREEMPT_RT_FULL
@@ -122,7 +113,7 @@
#endif
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
-@@ -62,28 +62,6 @@ config MAGIC_SYSRQ
+@@ -70,28 +70,6 @@ config MAGIC_SYSRQ_DEFAULT_MASK
Specifies the default mask for the allowed SysRq keys. This can be
used to disable several sensitive keys by default.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0278-random-Make-it-work-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0278-random-Make-it-work-on-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0278-random-Make-it-work-on-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 21 Aug 2012 20:38:50 +0200
-Subject: [PATCH 278/341] random: Make it work on rt
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=0c47b89684b043300df45e7de2f911fc920335a8
+Subject: [PATCH 278/343] random: Make it work on rt
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=63e2b4c642985daa349e37da9cbb89f54961de59
Delegate the random insertion to the forced threaded interrupt
handler. Store the return IP of the hard interrupt handler in the irq
@@ -107,7 +107,7 @@
if (!noirqdebug)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index 8c3d14d..b3c753e 100644
+index 1ec20f5..8178df7 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -825,6 +825,12 @@ static int irq_thread(void *data)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0279-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0279-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0279-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Thu, 4 Oct 2012 11:02:04 -0400
-Subject: [PATCH 279/341] softirq: Init softirq local lock after per cpu
+Subject: [PATCH 279/343] softirq: Init softirq local lock after per cpu
section is set up
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4764c5ecc396cc6de07b55ed2af4071dfe35c5fb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=779735d6dbce385717fd63cd2613d89810feebbe
I discovered this bug when booting 3.4-rt on my powerpc box. It crashed
with the following report:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0280-mm-slab-Fix-potential-deadlock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0280-mm-slab-Fix-potential-deadlock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0280-mm-slab-Fix-potential-deadlock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 26 Sep 2012 16:20:00 +0200
-Subject: [PATCH 280/341] mm: slab: Fix potential deadlock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=651f29d7e7a1da21a369bbe396faf04ed823195e
+Subject: [PATCH 280/343] mm: slab: Fix potential deadlock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1cea776092246f0ab3267dd7c1c12d139a152009
=============================================
[ INFO: possible recursive locking detected ]
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0281-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0281-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0281-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 27 Sep 2012 11:11:46 +0200
-Subject: [PATCH 281/341] mm: page_alloc: Use local_lock_on() instead of plain
+Subject: [PATCH 281/343] 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=ade1f5e38f5cc2ef800e883e287a9111180f7376
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=80b8299fe21a27f51947c4f28371303eff4e89c1
The plain spinlock while sufficient does not update the local_lock
internals. Use a proper local_lock function instead to ease debugging.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0282-rt-rwsem-rwlock-lockdep-annotations.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0282-rt-rwsem-rwlock-lockdep-annotations.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0282-rt-rwsem-rwlock-lockdep-annotations.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 28 Sep 2012 10:49:42 +0100
-Subject: [PATCH 282/341] rt: rwsem/rwlock: lockdep annotations
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ec1ceeb9f0bfa5c15ace2c3284e5eba9c0c0a83a
+Subject: [PATCH 282/343] rt: rwsem/rwlock: lockdep annotations
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b1b99140ba02235c8b3eff099718b989ba0dbc8c
rwlocks and rwsems on RT do not allow multiple readers. Annotate the
lockdep acquire functions accordingly.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0283-sched-Better-debug-output-for-might-sleep.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0283-sched-Better-debug-output-for-might-sleep.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0283-sched-Better-debug-output-for-might-sleep.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Fri, 5 Oct 2012 08:56:15 +0100
-Subject: [PATCH 283/341] sched: Better debug output for might sleep
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c22acbb060722364b5f5e5d630bf100fd8621883
+Subject: [PATCH 283/343] sched: Better debug output for might sleep
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1a22f504846391431a8a701c917018eb8296426a
might sleep can tell us where interrupts have been disabled, but we
have no idea what disabled preemption. Add some debug infrastructure.
@@ -15,7 +15,7 @@
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index fad7fea5..5e4003e 100644
+index 0e17eef..e032721 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1617,6 +1617,10 @@ struct task_struct {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0284-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0284-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0284-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 3 Oct 2012 17:21:53 +0100
-Subject: [PATCH 284/341] stomp_machine: Use mutex_trylock when called from
+Subject: [PATCH 284/343] stomp_machine: Use mutex_trylock when called from
inactive cpu
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=615d4ffaaa98a9d207c0056bb59cc230c88e5ebb
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6e5a4fd7c027f97d8aae4005b22501b5ef3977e0
If the stop machinery is called from inactive CPU we cannot use
mutex_lock, because some other stomp machine invokation might be in
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0285-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0285-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0285-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <srostedt at redhat.com>
Date: Tue, 16 Oct 2012 17:00:19 -0400
-Subject: [PATCH 285/341] slab: Fix up stable merge of slab init_lock_keys()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c5c2ac7d478b86be9777746f4020264108d82422
+Subject: [PATCH 285/343] slab: Fix up stable merge of slab init_lock_keys()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a8100919d8398aca23e6751386b353c8c8b90bbf
There was a stable fix that moved the init_lock_keys() to after
the enable_cpucache(). But -rt changed this function to
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0286-hrtimer-Raise-softirq-if-hrtimer-irq-stalled.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0286-hrtimer-Raise-softirq-if-hrtimer-irq-stalled.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0286-hrtimer-Raise-softirq-if-hrtimer-irq-stalled.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Watanabe <shunsuke.watanabe at tel.com>
Date: Sun, 28 Oct 2012 11:13:44 +0100
-Subject: [PATCH 286/341] hrtimer: Raise softirq if hrtimer irq stalled
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=039f755f12ef8b30e115826738284cbeb2144c0f
+Subject: [PATCH 286/343] hrtimer: Raise softirq if hrtimer irq stalled
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=63687b2b8e3539edf8b0e08a3dc018b42deaaed4
When the hrtimer stall detection hits the softirq is not raised.
@@ -12,10 +12,10 @@
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index cd0e7bc..ed0f3a1 100644
+index f059ecd..11df5cb 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
-@@ -1532,11 +1532,7 @@ retry:
+@@ -1554,11 +1554,7 @@ retry:
if (expires_next.tv64 == KTIME_MAX ||
!tick_program_event(expires_next, 0)) {
cpu_base->hang_detected = 0;
@@ -28,7 +28,7 @@
}
/*
-@@ -1580,6 +1576,9 @@ retry:
+@@ -1602,6 +1598,9 @@ retry:
tick_program_event(expires_next, 1);
printk_once(KERN_WARNING "hrtimer: interrupt took %llu ns\n",
ktime_to_ns(delta));
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0287-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0287-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0287-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 28 Oct 2012 13:26:09 +0000
-Subject: [PATCH 287/341] rcu: Disable RCU_FAST_NO_HZ on RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=389e1ed8cef5b5a043618d8c0c366d99a6e04b7e
+Subject: [PATCH 287/343] rcu: Disable RCU_FAST_NO_HZ on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d8259c894c058af913ed7f85a2f44bfa601d269e
This uses a timer_list timer from the irq disabled guts of the idle
code. Disable it for now to prevent wreckage.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0288-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0288-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0288-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Sun, 28 Oct 2012 11:18:08 +0100
-Subject: [PATCH 288/341] net: netfilter: Serialize xt_write_recseq sections on
+Subject: [PATCH 288/343] 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=43ca8467e575f2afdba2bf94e40081e3f8f45809
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fc0c5815e80722b5da38ea35dade337c01176916
The netfilter code relies only on the implicit semantics of
local_bh_disable() for serializing wt_write_recseq sections. RT breaks
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0289-sched-Adjust-sched_reset_on_fork-when-nothing-else-c.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0289-sched-Adjust-sched_reset_on_fork-when-nothing-else-c.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0289-sched-Adjust-sched_reset_on_fork-when-nothing-else-c.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 20 Dec 2012 14:58:00 +0100
-Subject: [PATCH 289/341] sched: Adjust sched_reset_on_fork when nothing else
+Subject: [PATCH 289/343] sched: Adjust sched_reset_on_fork when nothing else
changes
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e535f4631a54bfed8b4f20ef2cb96b4d58718492
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=39449bf8063e88c7930b654599830d8d24fe827a
If the policy and priority remain unchanged a possible modification of
sched_reset_on_fork gets lost in the early exit path.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0290-sched-Queue-RT-tasks-to-head-when-prio-drops.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0290-sched-Queue-RT-tasks-to-head-when-prio-drops.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0290-sched-Queue-RT-tasks-to-head-when-prio-drops.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 4 Dec 2012 08:56:41 +0100
-Subject: [PATCH 290/341] sched: Queue RT tasks to head when prio drops
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4bdf001cd11670dc682145cfa7492e6d07ce4c01
+Subject: [PATCH 290/343] sched: Queue RT tasks to head when prio drops
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9ff4f0a8fd3c023caa2fe60843a3f13dc0f00d63
The following scenario does not work correctly:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0291-sched-Consider-pi-boosting-in-setscheduler.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0291-sched-Consider-pi-boosting-in-setscheduler.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0291-sched-Consider-pi-boosting-in-setscheduler.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 20 Dec 2012 15:13:49 +0100
-Subject: [PATCH 291/341] sched: Consider pi boosting in setscheduler
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2dfcc1a903dbaaeb9976f48ed5d5fed04b7d8e49
+Subject: [PATCH 291/343] sched: Consider pi boosting in setscheduler
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f4a01af0dd3533be3fdaf74271f8c3b4de45780f
If a PI boosted task policy/priority is modified by a setscheduler()
call we unconditionally dequeue and requeue the task if it is on the
@@ -25,10 +25,10 @@
3 files changed, 48 insertions(+), 8 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 5e4003e..be65be5 100644
+index e032721..f201419 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -2132,6 +2132,7 @@ extern unsigned int sysctl_sched_cfs_bandwidth_slice;
+@@ -2150,6 +2150,7 @@ extern unsigned int sysctl_sched_cfs_bandwidth_slice;
#ifdef CONFIG_RT_MUTEXES
extern int rt_mutex_getprio(struct task_struct *p);
extern void rt_mutex_setprio(struct task_struct *p, int prio);
@@ -36,7 +36,7 @@
extern void rt_mutex_adjust_pi(struct task_struct *p);
static inline bool tsk_is_pi_blocked(struct task_struct *tsk)
{
-@@ -2142,6 +2143,10 @@ static inline int rt_mutex_getprio(struct task_struct *p)
+@@ -2160,6 +2161,10 @@ static inline int rt_mutex_getprio(struct task_struct *p)
{
return p->normal_prio;
}
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0292-drivers-tty-pl011-irq-disable-madness.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0292-drivers-tty-pl011-irq-disable-madness.patch.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0292-drivers-tty-pl011-irq-disable-madness.patch.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Tue, 8 Jan 2013 21:36:51 +0100
-Subject: [PATCH 292/341] drivers-tty-pl011-irq-disable-madness.patch
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3f18b6ffa6806e1f9961fb13853f5f4e5aede24d
+Subject: [PATCH 292/343] drivers-tty-pl011-irq-disable-madness.patch
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=393c3e8e72ccb8c9245fd3a10362e2587e9576e0
Cc: stable-rt at vger.kernel.org
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0293-mmci-Remove-bogus-local_irq_save.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0293-mmci-Remove-bogus-local_irq_save.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0293-mmci-Remove-bogus-local_irq_save.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 9 Jan 2013 12:11:12 +0100
-Subject: [PATCH 293/341] mmci: Remove bogus local_irq_save()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1cdc080a55e0e2c72dd316c8fe8f37515a0caca8
+Subject: [PATCH 293/343] mmci: Remove bogus local_irq_save()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fbef55797a4820b76fbad926800d48223af587ec
On !RT interrupt runs with interrupts disabled. On RT it's in a
thread, so no need to disable interrupts at all.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0294-sched-Init-idle-on_rq-in-init_idle.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0294-sched-Init-idle-on_rq-in-init_idle.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0294-sched-Init-idle-on_rq-in-init_idle.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 9 Jan 2013 23:03:29 +0100
-Subject: [PATCH 294/341] sched: Init idle->on_rq in init_idle()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3e75abe9f7da72b5b9e03b2387f9097d8ca1cf57
+Subject: [PATCH 294/343] sched: Init idle->on_rq in init_idle()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c4adf26beaf9c07db2bbeb75b93d57494096d110
Cc: stable-rt at vger.kernel.org
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0295-sched-Check-for-idle-task-in-might_sleep.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0295-sched-Check-for-idle-task-in-might_sleep.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0295-sched-Check-for-idle-task-in-might_sleep.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 9 Jan 2013 23:34:08 +0100
-Subject: [PATCH 295/341] sched: Check for idle task in might_sleep()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=341e866dfe04d221678f29badde9ed7c38720c71
+Subject: [PATCH 295/343] sched: Check for idle task in might_sleep()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e8762b4542c48abb2922780f0af5f7d6ae0b2097
Idle is not allowed to call sleeping functions ever!
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0296-mm-swap-Initialize-local-locks-early.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0296-mm-swap-Initialize-local-locks-early.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0296-mm-swap-Initialize-local-locks-early.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 10 Jan 2013 09:50:51 +0100
-Subject: [PATCH 296/341] mm: swap: Initialize local locks early
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d18af42e1a649c08387c17975a7f6c83bf4857fc
+Subject: [PATCH 296/343] mm: swap: Initialize local locks early
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fca113b6046252490729f88b3d0056467703a492
Cc: stable-rt at vger.kernel.org
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0297-x86-32-Use-kmap-switch-for-non-highmem-as-well.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0297-x86-32-Use-kmap-switch-for-non-highmem-as-well.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0297-x86-32-Use-kmap-switch-for-non-highmem-as-well.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Wed, 13 Feb 2013 10:59:53 +0100
-Subject: [PATCH 297/341] x86/32: Use kmap switch for non highmem as well
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a83bfa6916b50349050eec18863c8db9915ecf4d
+Subject: [PATCH 297/343] x86/32: Use kmap switch for non highmem as well
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c1d7bbb6dbf579aba5504e0ceff565a5b5116dd0
Even with CONFIG_HIGHMEM=n we need to take care of the "atomic"
mappings which are installed via iomap_atomic.
@@ -28,7 +28,7 @@
* Save @prev's kmap_atomic stack
*/
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index be65be5..1e9dfbb 100644
+index f201419..8b91b7c 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1613,9 +1613,11 @@ struct task_struct {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0298-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0298-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0298-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Wed, 13 Feb 2013 09:26:05 -0500
-Subject: [PATCH 298/341] acpi/rt: Convert acpi_gbl_hardware lock back to a
+Subject: [PATCH 298/343] 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=fd942044e9411c7f279df519bbf0e3e5e41abdd5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=070048c0dd8fadf5e3b377658f56450879d109de
We hit the following bug with 3.6-rt:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0299-serial-Imx-Fix-recursive-locking-bug.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0299-serial-Imx-Fix-recursive-locking-bug.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0299-serial-Imx-Fix-recursive-locking-bug.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Thu, 14 Feb 2013 21:01:06 +0100
-Subject: [PATCH 299/341] serial: Imx: Fix recursive locking bug
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b9ee79444e7c7cda9e56f6780405e3e3ec6328b5
+Subject: [PATCH 299/343] serial: Imx: Fix recursive locking bug
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=11f25cb332d066a0afc169cd9a4a7b2ee9220f45
commit 9ec1882df2 (tty: serial: imx: console write routing is unsafe
on SMP) introduced a recursive locking bug in imx_console_write().
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0300-wait-simple-Simple-waitqueue-implementation.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0300-wait-simple-Simple-waitqueue-implementation.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0300-wait-simple-Simple-waitqueue-implementation.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 12 Dec 2011 12:29:04 +0100
-Subject: [PATCH 300/341] wait-simple: Simple waitqueue implementation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7ed8571e203998e3dd8d6e4592f9f470322cd797
+Subject: [PATCH 300/343] wait-simple: Simple waitqueue implementation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f81cf0d5e7cb770c9389768a46753ce8e154a632
wait_queue is a swiss army knife and in most of the cases the
complexity is not needed. For RT waitqueues are a constant source of
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0301-rcutiny-Use-simple-waitqueue.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0301-rcutiny-Use-simple-waitqueue.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0301-rcutiny-Use-simple-waitqueue.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx at linutronix.de>
Date: Mon, 3 Dec 2012 16:25:21 +0100
-Subject: [PATCH 301/341] rcutiny: Use simple waitqueue
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4d992e256715b2b844441c64dac11483d0c4ef48
+Subject: [PATCH 301/343] rcutiny: Use simple waitqueue
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f49bd6b6d2f118d9a6c2b172ad30486019d31fcb
Simple waitqueues can be handled from interrupt disabled contexts.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0302-rcutiny-Fix-typo-of-using-swake_up-instead-of-swait_.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0302-rcutiny-Fix-typo-of-using-swake_up-instead-of-swait_.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0302-rcutiny-Fix-typo-of-using-swake_up-instead-of-swait_.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: "Steven Rostedt (Red Hat)" <rostedt at goodmis.org>
Date: Wed, 1 May 2013 09:38:20 -0400
-Subject: [PATCH 302/341] rcutiny: Fix typo of using swake_up() instead of
+Subject: [PATCH 302/343] rcutiny: Fix typo of using swake_up() instead of
swait_wake()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ab7a92405db0be3b544c185186d266285f2e01d3
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a7e2502cd96af8ffa94f34c20299c97b0e09b9b3
Converting the rcutiny wake up queues to use the simple wait queues
there was a typo in one of the functions.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0303-x86-mce-Defer-mce-wakeups-to-threads-for-PREEMPT_RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0303-x86-mce-Defer-mce-wakeups-to-threads-for-PREEMPT_RT.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0303-x86-mce-Defer-mce-wakeups-to-threads-for-PREEMPT_RT.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Thu, 11 Apr 2013 14:33:34 -0400
-Subject: [PATCH 303/341] x86/mce: Defer mce wakeups to threads for PREEMPT_RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=664ad0380109a5117a42f0231db680e33ff66c70
+Subject: [PATCH 303/343] x86/mce: Defer mce wakeups to threads for PREEMPT_RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ee1f2b4998727a182569a0d9c92b4acd813a9260
We had a customer report a lockup on a 3.0-rt kernel that had the
following backtrace:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0304-swap-Use-unique-local-lock-name-for-swap_lock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0304-swap-Use-unique-local-lock-name-for-swap_lock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0304-swap-Use-unique-local-lock-name-for-swap_lock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Tue, 23 Apr 2013 16:10:00 -0400
-Subject: [PATCH 304/341] swap: Use unique local lock name for swap_lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d46c77ebbd9a260dfb172799fc033019ee8ed17a
+Subject: [PATCH 304/343] swap: Use unique local lock name for swap_lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b0276274d90d9239131c7cef882d6921e8f74509
From lib/Kconfig.debug on CONFIG_FORCE_WEAK_PER_CPU:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0305-sched-Add-is_idle_task-to-handle-invalidated-uses-of.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0305-sched-Add-is_idle_task-to-handle-invalidated-uses-of.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0305-sched-Add-is_idle_task-to-handle-invalidated-uses-of.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: "Paul E. McKenney" <paul.mckenney at linaro.org>
Date: Thu, 10 Nov 2011 12:41:56 -0800
-Subject: [PATCH 305/341] sched: Add is_idle_task() to handle invalidated uses
+Subject: [PATCH 305/343] sched: Add is_idle_task() to handle invalidated uses
of idle_cpu()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=6004babbba4a1f8a8c9856f0e52d5e9033c9c792
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=50c428356a41c57def1c4bef85f72cbb40c2a810
Commit 908a3283 (Fix idle_cpu()) invalidated some uses of idle_cpu(),
which used to say whether or not the CPU was running the idle task,
@@ -26,10 +26,10 @@
1 file changed, 8 insertions(+)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 1e9dfbb..612498d 100644
+index 8b91b7c..de90d55 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -2168,6 +2168,14 @@ extern int sched_setscheduler(struct task_struct *, int,
+@@ -2186,6 +2186,14 @@ extern int sched_setscheduler(struct task_struct *, int,
extern int sched_setscheduler_nocheck(struct task_struct *, int,
const struct sched_param *);
extern struct task_struct *idle_task(int cpu);
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0306-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0306-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0306-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Mon, 18 Mar 2013 15:12:49 -0400
-Subject: [PATCH 306/341] sched/workqueue: Only wake up idle workers if not
+Subject: [PATCH 306/343] 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=249007d1f3b3276665d06614be76cc62a47a7cd5
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9d2aaba0a5488ce4d4fdb313312a1d4819c51828
In -rt, most spin_locks() turn into mutexes. One of these spin_lock
conversions is performed on the workqueue gcwq->lock. When the idle
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0307-x86-mce-fix-mce-timer-interval.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0307-x86-mce-fix-mce-timer-interval.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0307-x86-mce-fix-mce-timer-interval.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Mike Galbraith <bitbucket at online.de>
Date: Wed, 29 May 2013 13:52:13 +0200
-Subject: [PATCH 307/341] x86/mce: fix mce timer interval
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7be805e3e5af979fb84651f40df827be2f84416b
+Subject: [PATCH 307/343] x86/mce: fix mce timer interval
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4c27944f8adce25bdeb932608b2d7dc25550b2f5
Seems mce timer fire at the wrong frequency in -rt kernels since roughly
forever due to 32 bit overflow. 3.8-rt is also missing a multiplier.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0308-genirq-Set-irq-thread-to-RT-priority-on-creation.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0308-genirq-Set-irq-thread-to-RT-priority-on-creation.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0308-genirq-Set-irq-thread-to-RT-priority-on-creation.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Ivo Sieben <meltedpianoman at gmail.com>
Date: Mon, 3 Jun 2013 10:12:02 +0000
-Subject: [PATCH 308/341] genirq: Set irq thread to RT priority on creation
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3164af6e11f60bf5fca19da7a6b1e685a7c17de4
+Subject: [PATCH 308/343] genirq: Set irq thread to RT priority on creation
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cdb22d8cc74fc8d9c0c78337f2b6c828d76d906d
When a threaded irq handler is installed the irq thread is initially
created on normal scheduling priority. Only after the irq thread is
@@ -25,7 +25,7 @@
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index b3c753e..2e8ca37 100644
+index 8178df7..1a85f8e 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -783,9 +783,6 @@ static irqreturn_t irq_thread_fn(struct irq_desc *desc,
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0309-list_bl.h-make-list-head-locking-RT-safe.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0309-list_bl.h-make-list-head-locking-RT-safe.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0309-list_bl.h-make-list-head-locking-RT-safe.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Paul Gortmaker <paul.gortmaker at windriver.com>
Date: Fri, 21 Jun 2013 15:07:25 -0400
-Subject: [PATCH 309/341] list_bl.h: make list head locking RT safe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=dee78a12155589a726b6251acd67e830abb432f4
+Subject: [PATCH 309/343] list_bl.h: make list head locking RT safe
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f8641e13cf31faa764637ecc399bda8e920d9424
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
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0310-list_bl.h-fix-it-for-for-SMP-DEBUG_SPINLOCK.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0310-list_bl.h-fix-it-for-for-SMP-DEBUG_SPINLOCK.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0310-list_bl.h-fix-it-for-for-SMP-DEBUG_SPINLOCK.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,10 +1,10 @@
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig at pengutronix.de>
Date: Tue, 9 Jul 2013 00:26:32 +0200
-Subject: [PATCH 310/341] list_bl.h: fix it for for !SMP && !DEBUG_SPINLOCK
+Subject: [PATCH 310/343] list_bl.h: fix it for for !SMP && !DEBUG_SPINLOCK
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=8f10a0a70cd19e3c4ba35c03c303afca5bfd0d30
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=00f35da0042c091fdb9d08b7dac2fce7ddc4713e
The patch "list_bl.h: make list head locking RT safe" introduced
an unconditional
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0311-timers-prepare-for-full-preemption-improve.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0311-timers-prepare-for-full-preemption-improve.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0311-timers-prepare-for-full-preemption-improve.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Zhao Hongjiang <zhaohongjiang at huawei.com>
Date: Wed, 17 Apr 2013 17:44:16 +0800
-Subject: [PATCH 311/341] timers: prepare for full preemption improve
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3097b3afc31f80f727cae5cf9f021123c5d441cf
+Subject: [PATCH 311/343] timers: prepare for full preemption improve
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=07ccf859e1a69bec8dce1c589647fc922d2c8056
wake_up should do nothing on the nort, so we should use wakeup_timer_waiters,
also fix a spell mistake.
@@ -15,7 +15,7 @@
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/kernel/timer.c b/kernel/timer.c
-index 2f114d1..7fa30e0 100644
+index 330565b..4fe22a0 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -76,7 +76,9 @@ struct tvec_root {
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0312-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0312-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0312-kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 7 Jun 2013 22:37:06 +0200
-Subject: [PATCH 312/341] kernel/cpu: fix cpu down problem if kthread's cpu is
+Subject: [PATCH 312/343] 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=1b9b2e1501d724336dd7dadeb8d1e09b4e3fe56e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=51817f87b5199259b395c2b437ab790411ef9918
If kthread is pinned to CPUx and CPUx is going down then we get into
trouble:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0313-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0313-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0313-kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 14 Jun 2013 17:16:35 +0200
-Subject: [PATCH 313/341] kernel/hotplug: restore original cpu mask oncpu/down
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e08fac236fc22230b8e59786deaaa787f8ad8306
+Subject: [PATCH 313/343] kernel/hotplug: restore original cpu mask oncpu/down
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=75e07099e622309574c2277ff9b5bca96576ecff
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
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0314-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0314-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0314-drm-i915-drop-trace_i915_gem_ring_dispatch-on-rt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Thu, 25 Apr 2013 18:12:52 +0200
-Subject: [PATCH 314/341] 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=d71ffdff2152c2215b74740561899ebe393839f1
+Subject: [PATCH 314/343] 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=9d2587e216367ffbb2a71b9a4156ace38bfc01ec
This tracepoint is responsible for:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0315-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0315-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0315-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Wed, 26 Jun 2013 15:28:11 -0400
-Subject: [PATCH 315/341] rt,ntp: Move call to schedule_delayed_work() to
+Subject: [PATCH 315/343] 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=89d8b9a0d4b437cab5ba4dc0a6061c6af0569f0c
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2dd1537c1ec3e2131053de34d46413b38b133a65
The ntp code for notify_cmos_timer() is called from a hard interrupt
context. schedule_delayed_work() under PREEMPT_RT_FULL calls spinlocks
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0316-hwlat-detector-Update-hwlat_detector-to-add-outer-lo.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0316-hwlat-detector-Update-hwlat_detector-to-add-outer-lo.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0316-hwlat-detector-Update-hwlat_detector-to-add-outer-lo.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Mon, 19 Aug 2013 17:33:25 -0400
-Subject: [PATCH 316/341] hwlat-detector: Update hwlat_detector to add outer
+Subject: [PATCH 316/343] hwlat-detector: Update hwlat_detector to add outer
loop detection
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8da2b08eabc42063dc155f9714f12fd67fc7d3a1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7a5c5508f1249eb13b2d5248de9a43ac6c6e67bd
The hwlat_detector reads two timestamps in a row, then reports any
gap between those calls. The problem is, it misses everything between
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0317-hwlat-detect-trace-Export-trace_clock_local-for-hwla.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0317-hwlat-detect-trace-Export-trace_clock_local-for-hwla.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0317-hwlat-detect-trace-Export-trace_clock_local-for-hwla.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: "Steven Rostedt (Red Hat)" <rostedt at goodmis.org>
Date: Sat, 7 Sep 2013 20:54:31 -0400
-Subject: [PATCH 317/341] hwlat-detect/trace: Export trace_clock_local for
+Subject: [PATCH 317/343] hwlat-detect/trace: Export trace_clock_local for
hwlat-detector
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c6263aecd4764a8c57636a53862e21508c42011e
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=caba41c174428b4c60eb1b2378b5b159d2064934
The hwlat-detector needs a better clock than just ktime_get() as that
can induce its own latencies. The trace clock is perfect for it, but
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0318-hwlat-detector-Use-trace_clock_local-if-available.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0318-hwlat-detector-Use-trace_clock_local-if-available.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0318-hwlat-detector-Use-trace_clock_local-if-available.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Mon, 19 Aug 2013 17:33:26 -0400
-Subject: [PATCH 318/341] hwlat-detector: Use trace_clock_local if available
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=79acdbd01e72fcf819c4d45c647b3c6f9f54efe7
+Subject: [PATCH 318/343] hwlat-detector: Use trace_clock_local if available
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=8b6fadb1221111ca0967102af74b5e741a94e628
As ktime_get() calls into the timing code which does a read_seq(), it
may be affected by other CPUS that touch that lock. To remove this
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0319-hwlat-detector-Use-thread-instead-of-stop-machine.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0319-hwlat-detector-Use-thread-instead-of-stop-machine.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0319-hwlat-detector-Use-thread-instead-of-stop-machine.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Mon, 19 Aug 2013 17:33:27 -0400
-Subject: [PATCH 319/341] hwlat-detector: Use thread instead of stop machine
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b233ba04545171eec5176247eb1c7a17f4f250b2
+Subject: [PATCH 319/343] hwlat-detector: Use thread instead of stop machine
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=4d9f0afc75c10727d3b143b784fe0cad9eb76ef9
There's no reason to use stop machine to search for hardware latency.
Simply disabling interrupts while running the loop will do enough to
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0320-genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0320-genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0320-genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 21 Aug 2013 17:48:46 +0200
-Subject: [PATCH 320/341] genirq: do not invoke the affinity callback via a
+Subject: [PATCH 320/343] genirq: do not invoke the affinity callback via a
workqueue
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=013baab78937df3a91fd61149fd261b5b447e5a1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=506d586be2f8f738a29c4aeba95b9eb287cae275
Joe Korty reported, that __irq_set_affinity_locked() schedules a
workqueue while holding a rawlock which results in a might_sleep()
@@ -30,7 +30,7 @@
void (*release)(struct kref *ref);
};
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index 2e8ca37..88a4ff5 100644
+index 1a85f8e..6dbc43a 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -141,6 +141,62 @@ static inline void
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0321-genirq-Set-the-irq-thread-policy-without-checking-CA.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0321-genirq-Set-the-irq-thread-policy-without-checking-CA.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0321-genirq-Set-the-irq-thread-policy-without-checking-CA.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Thomas Pfaff <tpfaff at pcs.com>
Date: Fri, 11 Oct 2013 12:42:49 +0200
-Subject: [PATCH 321/341] genirq: Set the irq thread policy without checking
+Subject: [PATCH 321/343] genirq: Set the irq thread policy without checking
CAP_SYS_NICE
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=3ea9a85868983cab4b0a8f315e088fb3e5bd7316
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=7587d8cd34c08810696b58e758982eafbb473da9
In commit ee23871389 ("genirq: Set irq thread to RT priority on
creation") we moved the assigment of the thread's priority from the
@@ -27,7 +27,7 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index 88a4ff5..5b51ba7 100644
+index 6dbc43a..07c3b5e 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1041,7 +1041,7 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0322-hwlat-detector-Don-t-ignore-threshold-module-paramet.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0322-hwlat-detector-Don-t-ignore-threshold-module-paramet.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0322-hwlat-detector-Don-t-ignore-threshold-module-paramet.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Mike Galbraith <bitbucket at online.de>
Date: Fri, 30 Aug 2013 07:57:25 +0200
-Subject: [PATCH 322/341] hwlat-detector: Don't ignore threshold module
+Subject: [PATCH 322/343] hwlat-detector: Don't ignore threshold module
parameter
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c431d5d1a065b44ce28d1536d9e561591489e7dc
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=931a3d2d6e622ecd8f6167c1412d9e1e478d621b
If the user specified a threshold at module load time, use it.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0323-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0323-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0323-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Yang Shi <yang.shi at windriver.com>
Date: Wed, 30 Oct 2013 11:48:33 -0700
-Subject: [PATCH 323/341] mm/memcontrol: Don't call schedule_work_on in
+Subject: [PATCH 323/343] 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=d05d2025826afbf1226685abbbe429382b92e951
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=5557e5c42dd88e9ac4dd301f0b61dba4576d035d
The following trace is triggered when running ltp oom test cases:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0324-drm-remove-preempt_disable-from-drm_calc_vbltimestam.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0324-drm-remove-preempt_disable-from-drm_calc_vbltimestam.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0324-drm-remove-preempt_disable-from-drm_calc_vbltimestam.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 11 Oct 2013 17:14:31 +0200
-Subject: [PATCH 324/341] drm: remove preempt_disable() from
+Subject: [PATCH 324/343] drm: remove preempt_disable() from
drm_calc_vbltimestamp_from_scanoutpos()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1151017fb75f92382430669d6af3805847f43865
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=95903fb6c150ec1280edc0d1ceeb40c780eb2fe3
Luis captured the following:
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0325-cpu_down-move-migrate_enable-back.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0325-cpu_down-move-migrate_enable-back.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0325-cpu_down-move-migrate_enable-back.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Tiejun Chen <tiejun.chen at windriver.com>
Date: Thu, 7 Nov 2013 10:06:07 +0800
-Subject: [PATCH 325/341] cpu_down: move migrate_enable() back
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b105e33eb563ba9c39e249475a93f7a0a99c25fd
+Subject: [PATCH 325/343] cpu_down: move migrate_enable() back
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c9baaad1cd21be0cd21c618712c24195bd9d6b87
Commit 08c1ab68, "hotplug-use-migrate-disable.patch", intends to
use migrate_enable()/migrate_disable() to replace that combination
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0326-swait-Add-a-few-more-users.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0326-swait-Add-a-few-more-users.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0326-swait-Add-a-few-more-users.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 28 Oct 2013 11:50:06 +0100
-Subject: [PATCH 326/341] swait: Add a few more users
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=da86a010c8c1cd4deff59ca92206ae332973280b
+Subject: [PATCH 326/343] swait: Add a few more users
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=832a10840d4a3f6270464f44a5514388deffe796
The wait-simple queue is lighter weight and more efficient than the full
wait queue, and may be used in atomic context on PREEMPT_RT.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0327-lockdep-Correctly-annotate-hardirq-context-in-irq_ex.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0327-lockdep-Correctly-annotate-hardirq-context-in-irq_ex.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0327-lockdep-Correctly-annotate-hardirq-context-in-irq_ex.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Peter Zijlstra <peterz at infradead.org>
Date: Tue, 19 Nov 2013 16:42:47 +0100
-Subject: [PATCH 327/341] lockdep: Correctly annotate hardirq context in
+Subject: [PATCH 327/343] lockdep: Correctly annotate hardirq context in
irq_exit()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=16a1e222ce1bb717299f9924e86d9491f3892455
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=48b5835b880abfd7b8c0e7c75ef0e354bfa44f72
There was a reported deadlock on -rt which lockdep didn't report.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0328-rtmutex-use-a-trylock-for-waiter-lock-in-trylock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0328-rtmutex-use-a-trylock-for-waiter-lock-in-trylock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0328-rtmutex-use-a-trylock-for-waiter-lock-in-trylock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 15 Nov 2013 15:46:50 +0100
-Subject: [PATCH 328/341] rtmutex: use a trylock for waiter lock in trylock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=84c0915586c502a42524329cf9a91b3bbe84875a
+Subject: [PATCH 328/343] rtmutex: use a trylock for waiter lock in trylock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=576ca8b2a23809ddf1cfdf4a7c4431ac3828d11d
Mike Galbraith captered the following:
| >#11 [ffff88017b243e90] _raw_spin_lock at ffffffff815d2596
@@ -116,7 +116,7 @@
if (likely(rt_mutex_owner(lock) != current)) {
diff --git a/kernel/timer.c b/kernel/timer.c
-index 7fa30e0..b7ef082 100644
+index 4fe22a0..badd2d2 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1336,7 +1336,7 @@ unsigned long get_next_timer_interrupt(unsigned long now)
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0329-smp-introduce-a-generic-on_each_cpu_mask-function.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0329-smp-introduce-a-generic-on_each_cpu_mask-function.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0329-smp-introduce-a-generic-on_each_cpu_mask-function.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Gilad Ben-Yossef <gilad at benyossef.com>
Date: Wed, 28 Mar 2012 14:42:43 -0700
-Subject: [PATCH 329/341] smp: introduce a generic on_each_cpu_mask() function
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=90a243a6f2c2d94a59bc978b550008a0ed93449e
+Subject: [PATCH 329/343] smp: introduce a generic on_each_cpu_mask() function
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c91db611044ac6588d8f1f4f1c81f6428b39b6c1
[ Upstream commit 3fc498f165304dc913f1d13b5ac9ab4c758ee7ab ]
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0330-smp-add-func-to-IPI-cpus-based-on-parameter-func.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0330-smp-add-func-to-IPI-cpus-based-on-parameter-func.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0330-smp-add-func-to-IPI-cpus-based-on-parameter-func.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Gilad Ben-Yossef <gilad at benyossef.com>
Date: Wed, 28 Mar 2012 14:42:43 -0700
-Subject: [PATCH 330/341] smp: add func to IPI cpus based on parameter func
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=06569a8efd3b04ee5df1d12e27d1ddc86f6a9e6c
+Subject: [PATCH 330/343] smp: add func to IPI cpus based on parameter func
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cb157fd08c0e6ee6da63e6b98cbd311c5eb11d49
[ Upstream commit b3a7e98e024ffa9f7e4554dd720c508015c4a831 ]
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0331-fs-only-send-IPI-to-invalidate-LRU-BH-when-needed.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0331-fs-only-send-IPI-to-invalidate-LRU-BH-when-needed.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0331-fs-only-send-IPI-to-invalidate-LRU-BH-when-needed.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Gilad Ben-Yossef <gilad at benyossef.com>
Date: Wed, 28 Mar 2012 14:42:45 -0700
-Subject: [PATCH 331/341] fs: only send IPI to invalidate LRU BH when needed
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=96cd177071c842375a2d36e47397bbfa38f0e782
+Subject: [PATCH 331/343] fs: only send IPI to invalidate LRU BH when needed
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=462b48a8a463743a8828118f255eb0bb34525d7f
[ Upstream commit 42be35d0390b966253136a285f507f5ad00fd9e8 ]
@@ -29,10 +29,10 @@
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/fs/buffer.c b/fs/buffer.c
-index 997b199..36d49f1 100644
+index 04062c6..a16be7e 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
-@@ -1425,10 +1425,23 @@ static void invalidate_bh_lru(void *arg)
+@@ -1427,10 +1427,23 @@ static void invalidate_bh_lru(void *arg)
}
put_cpu_var(bh_lrus);
}
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0332-rcutree-rcu_bh_qs-disable-irq-while-calling-rcu_pree.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0332-rcutree-rcu_bh_qs-disable-irq-while-calling-rcu_pree.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0332-rcutree-rcu_bh_qs-disable-irq-while-calling-rcu_pree.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Tiejun Chen <tiejun.chen at windriver.com>
Date: Wed, 18 Dec 2013 17:51:49 +0800
-Subject: [PATCH 332/341] rcutree/rcu_bh_qs: disable irq while calling
+Subject: [PATCH 332/343] 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=8380743fc2a1a5341cdc145ffb4fbceb65199fac
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1c8995a98705c1356333e6c86eff5b4fe680caeb
Any callers to the function rcu_preempt_qs() must disable irqs in
order to protect the assignment to ->rcu_read_unlock_special. In
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0333-Revert-x86-Disable-IST-stacks-for-debug-int-3-stack-.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0333-Revert-x86-Disable-IST-stacks-for-debug-int-3-stack-.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0333-Revert-x86-Disable-IST-stacks-for-debug-int-3-stack-.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 3 Jan 2014 14:55:48 +0100
-Subject: [PATCH 333/341] Revert "x86: Disable IST stacks for debug/int 3/stack
+Subject: [PATCH 333/343] Revert "x86: Disable IST stacks for debug/int 3/stack
fault for PREEMPT_RT"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=b730d448a4e4fa08fe2ed96705b4a02558d6220a
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9c88f5c124284721685da3042c8426f38295d498
where do I start. Let me explain what is going on here. The code
sequence
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0334-rt-Make-cpu_chill-use-hrtimer-instead-of-msleep.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0334-rt-Make-cpu_chill-use-hrtimer-instead-of-msleep.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0334-rt-Make-cpu_chill-use-hrtimer-instead-of-msleep.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Wed, 5 Feb 2014 11:51:25 -0500
-Subject: [PATCH 334/341] rt: Make cpu_chill() use hrtimer instead of msleep()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cdaa174b56381c456ce253be9a144cf2e73e1584
+Subject: [PATCH 334/343] rt: Make cpu_chill() use hrtimer instead of msleep()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=1417fa39c1d90aff933f0645987fd5e224b0df6c
Ulrich Obergfell pointed out that cpu_chill() calls msleep() which is woken
up by the ksoftirqd running the TIMER softirq. But as the cpu_chill() is
@@ -66,10 +66,10 @@
# define cpu_chill() cpu_relax()
#endif
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index ed0f3a1..a9f8842 100644
+index 11df5cb..67d91e4 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
-@@ -1847,6 +1847,21 @@ SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
+@@ -1869,6 +1869,21 @@ SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
return hrtimer_nanosleep(&tu, rmtp, HRTIMER_MODE_REL, CLOCK_MONOTONIC);
}
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0335-kernel-hrtimer-be-non-freezeable-in-cpu_chill.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0335-kernel-hrtimer-be-non-freezeable-in-cpu_chill.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0335-kernel-hrtimer-be-non-freezeable-in-cpu_chill.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Wed, 19 Feb 2014 11:56:06 +0100
-Subject: [PATCH 335/341] kernel/hrtimer: be non-freezeable in cpu_chill()
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=2b2864ecb5d23ba29fc31d05a371376cd0f4261b
+Subject: [PATCH 335/343] kernel/hrtimer: be non-freezeable in cpu_chill()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=ff216505d2ea73bc600d94f8f50d7b6c0ab2051d
Since we replaced msleep() by hrtimer I see now and then (rarely) this:
@@ -43,10 +43,10 @@
1 file changed, 4 insertions(+)
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index a9f8842..71acc21 100644
+index 67d91e4..9749ae7 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
-@@ -1856,8 +1856,12 @@ void cpu_chill(void)
+@@ -1878,8 +1878,12 @@ void cpu_chill(void)
struct timespec tu = {
.tv_nsec = NSEC_PER_MSEC,
};
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0336-arm-unwind-use-a-raw_spin_lock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0336-arm-unwind-use-a-raw_spin_lock.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0336-arm-unwind-use-a-raw_spin_lock.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Fri, 20 Sep 2013 14:31:54 +0200
-Subject: [PATCH 336/341] arm/unwind: use a raw_spin_lock
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=92e230f410e28387078212be11f72d572a45ee7e
+Subject: [PATCH 336/343] arm/unwind: use a raw_spin_lock
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=508cf6014fa12dd07b57f821a6a94c4d7d30aed8
Mostly unwind is done with irqs enabled however SLUB may call it with
irqs disabled while creating a new SLUB cache.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0337-Revert-swait-Add-a-few-more-users.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0337-Revert-swait-Add-a-few-more-users.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0337-Revert-swait-Add-a-few-more-users.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: "Steven Rostedt (Red Hat)" <rostedt at goodmis.org>
Date: Tue, 11 Mar 2014 11:57:32 -0400
-Subject: [PATCH 337/341] Revert "swait: Add a few more users"
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=150f320c3dd24333b523533766fea1c5b3e9f2ea
+Subject: [PATCH 337/343] Revert "swait: Add a few more users"
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=fde06970be37fc212f956401885bdc5e48703e21
This reverts commit 916c8d2de3c4759f57426fa3cfee63b491e88939.
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0338-net-sched-dev_deactivate_many-use-msleep-1-instead-o.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0338-net-sched-dev_deactivate_many-use-msleep-1-instead-o.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0338-net-sched-dev_deactivate_many-use-msleep-1-instead-o.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,8 +1,8 @@
From: Marc Kleine-Budde <mkl at pengutronix.de>
Date: Wed, 5 Mar 2014 00:49:47 +0100
-Subject: [PATCH 338/341] net: sched: dev_deactivate_many(): use msleep(1)
+Subject: [PATCH 338/343] net: sched: dev_deactivate_many(): use msleep(1)
instead of yield() to wait for outstanding qdisc_run calls
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=616c417fe8c71a91f7bbb53a4ca892da57913af1
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e9e540665202229f6a5f253c61994eba80ae80af
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
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0339-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0339-fs-jbd2-pull-your-plug-when-waiting-for-space.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0339-fs-jbd2-pull-your-plug-when-waiting-for-space.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Date: Mon, 17 Feb 2014 17:30:03 +0100
-Subject: [PATCH 339/341] 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=0fd3309fe3c6e7846643a5f5ab904f3ca7a800b7
+Subject: [PATCH 339/343] 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=6b1ec7d3401251d25fdc69176dbefea87ecca167
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
Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0340-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0340-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0340-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch Thu Jul 31 03:19:57 2014 (r21661)
@@ -1,7 +1,7 @@
From: Steven Rostedt <rostedt at goodmis.org>
Date: Tue, 4 Mar 2014 12:28:32 -0500
-Subject: [PATCH 340/341] cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=c14f16e67a44e4eb0fef85d088574f9b679a9b2b
+Subject: [PATCH 340/343] cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=cc3c2039bdce7e1adb28e62669df343f779e6084
We hit another bug that was caused by switching cpu_chill() from
msleep() to hrtimer_nanosleep().
@@ -33,10 +33,10 @@
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index 71acc21..0316f75 100644
+index 9749ae7..f543790 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
-@@ -1726,12 +1726,13 @@ void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task)
+@@ -1748,12 +1748,13 @@ void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task)
}
EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
@@ -52,7 +52,7 @@
hrtimer_start_expires(&t->timer, mode);
if (!hrtimer_active(&t->timer))
t->task = NULL;
-@@ -1775,7 +1776,8 @@ long __sched hrtimer_nanosleep_restart(struct restart_block *restart)
+@@ -1797,7 +1798,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 @@
goto out;
rmtp = restart->nanosleep.rmtp;
-@@ -1792,8 +1794,10 @@ out:
+@@ -1814,8 +1816,10 @@ out:
return ret;
}
@@ -75,7 +75,7 @@
{
struct restart_block *restart;
struct hrtimer_sleeper t;
-@@ -1806,7 +1810,7 @@ long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
+@@ -1828,7 +1832,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 @@
goto out;
/* Absolute timers do not update the rmtp value and restart: */
-@@ -1833,6 +1837,12 @@ out:
+@@ -1855,6 +1859,12 @@ out:
return ret;
}
@@ -97,7 +97,7 @@
SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
struct timespec __user *, rmtp)
{
-@@ -1859,7 +1869,8 @@ void cpu_chill(void)
+@@ -1881,7 +1891,8 @@ void cpu_chill(void)
unsigned int freeze_flag = current->flags & PF_NOFREEZE;
current->flags |= PF_NOFREEZE;
Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0341-net-gianfar-do-not-disable-interrupts.patch (from r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/0341-net-gianfar-do-not-disable-interrupts.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0341-net-gianfar-do-not-disable-interrupts.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/0341-net-gianfar-do-not-disable-interrupts.patch)
@@ -0,0 +1,252 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Tue, 25 Mar 2014 18:34:20 +0100
+Subject: [PATCH 341/343] net: gianfar: do not disable interrupts
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=a089d170a66caaf891c1ac1441a3264256f04a0d
+
+each per-queue lock is taken with spin_lock_irqsave() except in the case
+where all of them are taken for some kind of serialisation. As an
+optimisation local_irq_save() is used so that lock_tx_qs() and
+lock_rx_qs() can use just the spin_lock() variant instead.
+On RT local_irq_save() behaves differently so we use the nort()
+variant.
+Lockdep screems easily by "ethtool -K eth0 rx off tx off"
+
+What remains is missing lockdep annotation that makes lockdep think
+lock_tx_qs() may cause a dead lock.
+
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ drivers/net/ethernet/freescale/gianfar.c | 16 ++++++++--------
+ drivers/net/ethernet/freescale/gianfar_ethtool.c | 8 ++++----
+ drivers/net/ethernet/freescale/gianfar_sysfs.c | 24 ++++++++++++------------
+ 3 files changed, 24 insertions(+), 24 deletions(-)
+
+diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c
+index 7048ed8..5c35b28 100644
+--- a/drivers/net/ethernet/freescale/gianfar.c
++++ b/drivers/net/ethernet/freescale/gianfar.c
+@@ -1285,7 +1285,7 @@ static int gfar_suspend(struct device *dev)
+
+ if (netif_running(ndev)) {
+
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_tx_qs(priv);
+ lock_rx_qs(priv);
+
+@@ -1303,7 +1303,7 @@ static int gfar_suspend(struct device *dev)
+
+ unlock_rx_qs(priv);
+ unlock_tx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+
+ disable_napi(priv);
+
+@@ -1344,7 +1344,7 @@ static int gfar_resume(struct device *dev)
+ /* Disable Magic Packet mode, in case something
+ * else woke us up.
+ */
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_tx_qs(priv);
+ lock_rx_qs(priv);
+
+@@ -1356,7 +1356,7 @@ static int gfar_resume(struct device *dev)
+
+ unlock_rx_qs(priv);
+ unlock_tx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+
+ netif_device_attach(ndev);
+
+@@ -2323,7 +2323,7 @@ void gfar_vlan_mode(struct net_device *dev, u32 features)
+ u32 tempval;
+
+ regs = priv->gfargrp[0].regs;
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_rx_qs(priv);
+
+ if (features & NETIF_F_HW_VLAN_TX) {
+@@ -2355,7 +2355,7 @@ void gfar_vlan_mode(struct net_device *dev, u32 features)
+ gfar_change_mtu(dev, dev->mtu);
+
+ unlock_rx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+ }
+
+ static int gfar_change_mtu(struct net_device *dev, int new_mtu)
+@@ -3225,14 +3225,14 @@ static irqreturn_t gfar_error(int irq, void *grp_id)
+ dev->stats.tx_dropped++;
+ priv->extra_stats.tx_underrun++;
+
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_tx_qs(priv);
+
+ /* Reactivate the Tx Queues */
+ gfar_write(®s->tstat, gfargrp->tstat);
+
+ unlock_tx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+ }
+ netif_dbg(priv, tx_err, dev, "Transmit Error\n");
+ }
+diff --git a/drivers/net/ethernet/freescale/gianfar_ethtool.c b/drivers/net/ethernet/freescale/gianfar_ethtool.c
+index 212736b..1fe331f 100644
+--- a/drivers/net/ethernet/freescale/gianfar_ethtool.c
++++ b/drivers/net/ethernet/freescale/gianfar_ethtool.c
+@@ -486,7 +486,7 @@ static int gfar_sringparam(struct net_device *dev, struct ethtool_ringparam *rva
+
+ /* Halt TX and RX, and process the frames which
+ * have already been received */
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_tx_qs(priv);
+ lock_rx_qs(priv);
+
+@@ -494,7 +494,7 @@ static int gfar_sringparam(struct net_device *dev, struct ethtool_ringparam *rva
+
+ unlock_rx_qs(priv);
+ unlock_tx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+
+ for (i = 0; i < priv->num_rx_queues; i++)
+ gfar_clean_rx_ring(priv->rx_queue[i],
+@@ -535,7 +535,7 @@ int gfar_set_features(struct net_device *dev, u32 features)
+ if (dev->flags & IFF_UP) {
+ /* Halt TX and RX, and process the frames which
+ * have already been received */
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_tx_qs(priv);
+ lock_rx_qs(priv);
+
+@@ -543,7 +543,7 @@ int gfar_set_features(struct net_device *dev, u32 features)
+
+ unlock_tx_qs(priv);
+ unlock_rx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+
+ for (i = 0; i < priv->num_rx_queues; i++)
+ gfar_clean_rx_ring(priv->rx_queue[i],
+diff --git a/drivers/net/ethernet/freescale/gianfar_sysfs.c b/drivers/net/ethernet/freescale/gianfar_sysfs.c
+index 64f4094..9f6fb3a 100644
+--- a/drivers/net/ethernet/freescale/gianfar_sysfs.c
++++ b/drivers/net/ethernet/freescale/gianfar_sysfs.c
+@@ -68,7 +68,7 @@ static ssize_t gfar_set_bd_stash(struct device *dev,
+ return count;
+
+
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_rx_qs(priv);
+
+ /* Set the new stashing value */
+@@ -84,7 +84,7 @@ static ssize_t gfar_set_bd_stash(struct device *dev,
+ gfar_write(®s->attr, temp);
+
+ unlock_rx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+
+ return count;
+ }
+@@ -112,7 +112,7 @@ static ssize_t gfar_set_rx_stash_size(struct device *dev,
+ if (!(priv->device_flags & FSL_GIANFAR_DEV_HAS_BUF_STASHING))
+ return count;
+
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_rx_qs(priv);
+
+ if (length > priv->rx_buffer_size)
+@@ -140,7 +140,7 @@ static ssize_t gfar_set_rx_stash_size(struct device *dev,
+
+ out:
+ unlock_rx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+
+ return count;
+ }
+@@ -171,7 +171,7 @@ static ssize_t gfar_set_rx_stash_index(struct device *dev,
+ if (!(priv->device_flags & FSL_GIANFAR_DEV_HAS_BUF_STASHING))
+ return count;
+
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_rx_qs(priv);
+
+ if (index > priv->rx_stash_size)
+@@ -189,7 +189,7 @@ static ssize_t gfar_set_rx_stash_index(struct device *dev,
+
+ out:
+ unlock_rx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+
+ return count;
+ }
+@@ -219,7 +219,7 @@ static ssize_t gfar_set_fifo_threshold(struct device *dev,
+ if (length > GFAR_MAX_FIFO_THRESHOLD)
+ return count;
+
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_tx_qs(priv);
+
+ priv->fifo_threshold = length;
+@@ -230,7 +230,7 @@ static ssize_t gfar_set_fifo_threshold(struct device *dev,
+ gfar_write(®s->fifo_tx_thr, temp);
+
+ unlock_tx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+
+ return count;
+ }
+@@ -259,7 +259,7 @@ static ssize_t gfar_set_fifo_starve(struct device *dev,
+ if (num > GFAR_MAX_FIFO_STARVE)
+ return count;
+
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_tx_qs(priv);
+
+ priv->fifo_starve = num;
+@@ -270,7 +270,7 @@ static ssize_t gfar_set_fifo_starve(struct device *dev,
+ gfar_write(®s->fifo_tx_starve, temp);
+
+ unlock_tx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+
+ return count;
+ }
+@@ -300,7 +300,7 @@ static ssize_t gfar_set_fifo_starve_off(struct device *dev,
+ if (num > GFAR_MAX_FIFO_STARVE_OFF)
+ return count;
+
+- local_irq_save(flags);
++ local_irq_save_nort(flags);
+ lock_tx_qs(priv);
+
+ priv->fifo_starve_off = num;
+@@ -311,7 +311,7 @@ static ssize_t gfar_set_fifo_starve_off(struct device *dev,
+ gfar_write(®s->fifo_tx_starve_shutoff, temp);
+
+ unlock_tx_qs(priv);
+- local_irq_restore(flags);
++ local_irq_restore_nort(flags);
+
+ return count;
+ }
Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0342-rcu-make-RCU_BOOST-default-on-RT.patch (from r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/0342-rcu-make-RCU_BOOST-default-on-RT.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0342-rcu-make-RCU_BOOST-default-on-RT.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/0342-rcu-make-RCU_BOOST-default-on-RT.patch)
@@ -0,0 +1,30 @@
+From: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Date: Fri, 21 Mar 2014 20:19:05 +0100
+Subject: [PATCH 342/343] rcu: make RCU_BOOST default on RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=aea8b5db35cc5f1f842f62645e038628a8a0eaf3
+
+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
+default on RT should help in those case and it can be switched off if
+someone knows better.
+
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ init/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/init/Kconfig b/init/Kconfig
+index aa6545f..c16e1f3 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -494,7 +494,7 @@ config TREE_RCU_TRACE
+ config RCU_BOOST
+ bool "Enable RCU priority boosting"
+ depends on RT_MUTEXES && PREEMPT_RCU
+- default n
++ default y if PREEMPT_RT_FULL
+ help
+ This option boosts the priority of preempted RCU readers that
+ block the current preemptible RCU grace period for too long.
Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0343-Linux-3.2.60-rt87-REBASE.patch (from r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/0343-Linux-3.2.60-rt87-REBASE.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0343-Linux-3.2.60-rt87-REBASE.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/0343-Linux-3.2.60-rt87-REBASE.patch)
@@ -0,0 +1,16 @@
+From: "Steven Rostedt (Red Hat)" <rostedt at goodmis.org>
+Date: Wed, 30 Apr 2014 12:28:35 -0400
+Subject: [PATCH 343/343] Linux 3.2.60-rt87 REBASE
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e133f2bdf9f4c87e4c924780331a50b7a7c23b66
+
+---
+ localversion-rt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/localversion-rt b/localversion-rt
+index b2111a2..bd5aee3 100644
+--- a/localversion-rt
++++ b/localversion-rt
+@@ -1 +1 @@
+--rt24
++-rt87
Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/fix-latency-histogram-after-hrtimer-set-expiry-time-before-switch_hrtimer_base.patch (from r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/fix-latency-histogram-after-hrtimer-set-expiry-time-before-switch_hrtimer_base.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/fix-latency-histogram-after-hrtimer-set-expiry-time-before-switch_hrtimer_base.patch Thu Jul 31 03:19:57 2014 (r21661, copy of r21624, dists/wheezy-security/linux/debian/patches/features/all/rt/fix-latency-histogram-after-hrtimer-set-expiry-time-before-switch_hrtimer_base.patch)
@@ -0,0 +1,39 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Sat, 28 Jun 2014 23:34:48 +0100
+Subject: Fix latency histogram after "hrtimer: Set expiry time before switch_hrtimer_base()"
+Forwarded: http://mid.gmane.org/1403994888.23472.116.camel@deadeye.wl.decadent.org.uk
+
+In an rt-kernel with CONFIG_MISSED_TIMER_OFFSETS_HIST enabled,
+__hrtimer_start_range_ns() now crashes, as new_base is not assigned
+before it is used.
+
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+Tested-by: Carsten Emde <C.Emde at osadl.org>
+Cc: stable-rt at vger.kernel.org
+---
+--- a/kernel/hrtimer.c
++++ b/kernel/hrtimer.c
+@@ -1033,6 +1033,11 @@ int __hrtimer_start_range_ns(struct hrti
+ #endif
+ }
+
++ hrtimer_set_expires_range_ns(timer, tim, delta_ns);
++
++ /* Switch the timer base, if necessary: */
++ new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED);
++
+ #ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
+ {
+ ktime_t now = new_base->get_time();
+@@ -1044,11 +1049,6 @@ int __hrtimer_start_range_ns(struct hrti
+ }
+ #endif
+
+- hrtimer_set_expires_range_ns(timer, tim, delta_ns);
+-
+- /* Switch the timer base, if necessary: */
+- new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED);
+-
+ timer_stats_hrtimer_set_start_info(timer);
+
+ leftmost = enqueue_hrtimer(timer, new_base);
Modified: dists/squeeze-backports/linux/debian/patches/series
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/series Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/series Thu Jul 31 03:19:57 2014 (r21661)
@@ -463,23 +463,7 @@
bugfix/ia64/nouveau-ACPI-support-is-dependent-on-X86.patch
bugfix/x86/drm-i915-i8xx-interrupt-handler.patch
debian/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch
-bugfix/x86/drm-i915-panel-invert-brightness-via-parameter.patch
-bugfix/x86/drm-i915-panel-invert-brightness-via-quirk.patch
-bugfix/x86/drm-i915-panel-invert-brightness-acer-aspire-5734z.patch
-bugfix/x86/drm-i915-add-quirk_invert_brightness-for-ncr-machine.patch
-bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-emachines-g725.patch
-bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-emachines-e725.patch
-bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-packard-bell-ncl20.patch
-bugfix/all/drm-nouveau-fix-init-with-agpgart-uninorth.patch
-bugfix/x86/drm-i915-Close-race-between-processing-unpin-task-an.patch
-bugfix/all/drm-radeon-dce32-use-fractional-fb-dividers-for-high.patch
-bugfix/all/drm-radeon-fix-amd-afusion-gpu-setup-aka-sumo-v2.patch
-bugfix/all/i915-ensure-that-VGA-plane-is-disabled.patch
-bugfix/all/drm-radeon-add-connector-table-for-SAM440ep-embedded.patch
-bugfix/all/drm-radeon-add-connector-table-for-Mac-G4-Silver.patch
-bugfix/x86/drm-i915-Only-increment-the-user-pin-count-after-suc.patch
bugfix/x86/drm-i915-Disable-AsyncFlip-performance-optimisations.patch
-bugfix/x86/drm-i915-dump-UTS_RELEASE-into-the-error_state.patch
# virtio-scsi from 3.7
features/all/virtio_scsi/0001-SCSI-virtio-scsi-SCSI-driver-for-QEMU-based-virtual-.patch
@@ -679,13 +663,8 @@
debian/mm-avoid-ABI-change-in-3.2.55.patch
features/all/sound-usb-emu0204-frontselection.patch
debian/net-avoid-abi-change-in-3.2.57.patch
-bugfix/all/vhost-validate-vhost_get_vq_desc-return-value.patch
-bugfix/all/vhost-fix-total-length-when-packets-are-too-short.patch
-bugfix/all/rds-prevent-dereference-of-a-null-device-in-rds_iw_laddr_check.patch
bugfix/all/skbuff-add-an-api-to-orphan-frags.patch
bugfix/all/skbuff-skb_segment-orphan-frags-before-copying.patch
-bugfix/all/ipv6-don-t-set-dst_nocount-for-remotely-added-routes.patch
-bugfix/all/vlan-set-correct-source-mac-address-with-tx-vlan-offload-enabled.patch
debian/revert-alsa-enable-config_zone_dma.patch
# Support for e1000e and igb backports
@@ -1128,22 +1107,39 @@
features/all/igb/0179-igb-Fix-for-issue-where-values-could-be-too-high-for.patch
features/all/igb/0180-igb-disable-eee.patch
bugfix/x86/crypto-ghash-clmulni-intel-use-C-implementation-for-.patch
-bugfix/x86/powernow-k6-disable-cache-when-changing-frequency.patch
-bugfix/all/rtl8192ce-fix-null-dereference-in-watchdog.patch
-bugfix/all/n_tty-Fix-n_tty_write-crash-when-echoing-in-raw-mode.patch
-bugfix/all/floppy-don-t-write-kernel-only-members-to-FDRAWCMD-i.patch
-bugfix/all/floppy-ignore-kernel-only-members-in-FDRAWCMD-ioctl-.patch
-bugfix/all/mm-try_to_unmap_cluster-should-lock_page-before-mloc.patch
-bugfix/all/net-ipv4-current-group_info-should-be-put-after-usin.patch
-bugfix/all/revert-isci-fix-reset-timeout-handling.patch
bugfix/all/skbuff-export-skb_copy_ubufs.patch
bugfix/x86/revert-perf-x86-amd-ibs-fix-waking-up-from-s3-for-amd-family-10h.patch
-bugfix/all/futex-Add-another-early-deadlock-detection-check.patch
-bugfix/all/futex-Prevent-attaching-to-kernel-threads.patch
-bugfix/all/futex-prevent-requeue-pi-on-same-futex.patch
-bugfix/all/futex-Validate-atomic-acquisition-in-futex_lock_pi_atomic.patch
-bugfix/all/futex-Always-cleanup-owner-tid-in-unlock_pi.patch
-bugfix/all/futex-Make-lookup-pi_state-more-robust.patch
-bugfix/all/filter-prevent-nla-extensions-to-peek-beyond-the-end.patch
+debian/libata-avoid-abi-change-in-3.2.59.patch
+debian/dmi-avoid-abi-change-in-3.2.59.patch
+bugfix/mips/MIPS-Cleanup-flags-in-syscall-flags-handlers.patch
+bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch
+bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch
+features/all/msi-sysfs/PCI-sysfs-add-per-pci-device-msi-x-irq-listing-v5.patch
+features/all/msi-sysfs/PCI-msi-fix-imbalanced-refcount-of-msi-irq-sysfs-obj.patch
+features/all/msi-sysfs/PCI-MSI-Export-MSI-mode-using-attributes-not-kobject.patch
+features/all/msi-sysfs/PCI-MSI-Return-msix_capability_init-failure-if-popul.patch
+features/all/msi-sysfs/PCI-MSI-Check-kmalloc-return-value-fix-leak-of-name.patch
+features/all/msi-sysfs/PCI-MSI-Fix-leak-of-msi_attrs.patch
+features/all/msi-sysfs/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch
+features/all/msi-sysfs/pci-msi_desc-remove-unused-kobject.patch
+bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch
+bugfix/all/mm-add-pte_present-check-on-existing-hugetlb_entry-c.patch
+bugfix/x86/x86_32-entry-Do-syscall-exit-work-on-badsys-CVE-2014.patch
+bugfix/all/ALSA-control-Protect-user-controls-against-concurren.patch
+bugfix/all/ALSA-control-Don-t-access-controls-outside-of-protec.patch
+bugfix/all/ALSA-control-Fix-replacing-user-controls.patch
+bugfix/all/ALSA-control-Make-sure-that-id-index-does-not-overfl.patch
+bugfix/all/ALSA-control-Handle-numid-overflow.patch
+bugfix/all/target-explicitly-clear-ramdisk_mcp-backend-pages.patch
+debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch
+
+# CVE-2014-4699
+bugfix/all/0001-ptrace-x86-force-IRET-path-after-a-ptrace_stop.patch
+
+bugfix/all/revert-net-ipv4-ip_forward-fix-inverted-local_df-tes.patch
+bugfix/all/revert-net-ip-ipv6-handle-gso-skbs-in-forwarding-pat.patch
+bugfix/all/net-l2tp-don-t-fall-back-on-UDP-get-set-sockopt.patch
+bugfix/all/sctp-fix-sk_ack_backlog-wrap-around-problem.patch
+bugfix/s390/s390-ptrace-fix-PSW-mask-check.patch
Modified: dists/squeeze-backports/linux/debian/patches/series-rt
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/series-rt Thu Jul 31 03:00:58 2014 (r21660)
+++ dists/squeeze-backports/linux/debian/patches/series-rt Thu Jul 31 03:19:57 2014 (r21661)
@@ -338,4 +338,7 @@
features/all/rt/0338-net-sched-dev_deactivate_many-use-msleep-1-instead-o.patch
features/all/rt/0339-fs-jbd2-pull-your-plug-when-waiting-for-space.patch
features/all/rt/0340-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch
-features/all/rt/0341-Linux-3.2.55-rt81-REBASE.patch
+features/all/rt/0341-net-gianfar-do-not-disable-interrupts.patch
+features/all/rt/0342-rcu-make-RCU_BOOST-default-on-RT.patch
+features/all/rt/0343-Linux-3.2.60-rt87-REBASE.patch
+features/all/rt/fix-latency-histogram-after-hrtimer-set-expiry-time-before-switch_hrtimer_base.patch
More information about the Kernel-svn-changes
mailing list