[kernel] r19482 - in dists/squeeze-backports/linux: . debian debian/abi debian/bin debian/config debian/config/alpha debian/config/i386/none debian/config/kernelarch-x86 debian/installer debian/patches debian/patches/bugfix/all debian/patches/bugfix/alpha debian/patches/bugfix/arm debian/patches/bugfix/x86 debian/patches/debian debian/patches/features/all debian/patches/features/all/aufs3 debian/patches/features/all/bql debian/patches/features/all/codel debian/patches/features/all/cpu-devices debian/patches/features/all/rt debian/patches/features/arm debian/patches/features/x86/efi-stub debian/templates

Ben Hutchings benh at alioth.debian.org
Tue Nov 6 04:48:08 UTC 2012


Author: benh
Date: Tue Nov  6 04:48:05 2012
New Revision: 19482

Log:
Merge changes from sid up to 3.2.32-1

Added:
   dists/squeeze-backports/linux/debian/patches/bugfix/all/PCI-PM-Runtime-make-PCI-traces-quieter.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/bugfix/all/PCI-PM-Runtime-make-PCI-traces-quieter.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/speakup-lower-default-software-speech-rate.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/bugfix/all/speakup-lower-default-software-speech-rate.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/usb-Add-quirk-detection-based-on-interface-informati.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/bugfix/all/usb-Add-quirk-detection-based-on-interface-informati.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/use-clamp_t-in-UNAME26-fix.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/bugfix/all/use-clamp_t-in-UNAME26-fix.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/alpha/alpha-use-large-data-model.diff
      - copied unchanged from r19450, dists/sid/linux/debian/patches/bugfix/alpha/alpha-use-large-data-model.diff
   dists/squeeze-backports/linux/debian/patches/bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-i8xx-interrupt-handler.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-i8xx-interrupt-handler.patch
   dists/squeeze-backports/linux/debian/patches/debian/debugfs-set-default-mode-to-700.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/debian/debugfs-set-default-mode-to-700.patch
   dists/squeeze-backports/linux/debian/patches/debian/fs-writeback-avoid-ABI-change-in-3.2.32.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/debian/fs-writeback-avoid-ABI-change-in-3.2.32.patch
   dists/squeeze-backports/linux/debian/patches/debian/hid-avoid-ABI-change-in-3.2.31.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/debian/hid-avoid-ABI-change-in-3.2.31.patch
   dists/squeeze-backports/linux/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch
   dists/squeeze-backports/linux/debian/patches/debian/perf-hide-abi-change-in-3.2.30.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/debian/perf-hide-abi-change-in-3.2.30.patch
   dists/squeeze-backports/linux/debian/patches/debian/xfrm-avoid-ABI-change-in-3.2.31.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/debian/xfrm-avoid-ABI-change-in-3.2.31.patch
   dists/squeeze-backports/linux/debian/patches/features/all/USB-add-USB_VENDOR_AND_INTERFACE_INFO-macro.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/USB-add-USB_VENDOR_AND_INTERFACE_INFO-macro.patch
   dists/squeeze-backports/linux/debian/patches/features/all/bql/
      - copied from r19450, dists/sid/linux/debian/patches/features/all/bql/
   dists/squeeze-backports/linux/debian/patches/features/all/codel/0008-codel-refine-one-condition-to-avoid-a-nul-rec_inv_sq.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/codel/0008-codel-refine-one-condition-to-avoid-a-nul-rec_inv_sq.patch
   dists/squeeze-backports/linux/debian/patches/features/all/debugfs-add-mode-uid-and-gid-options.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/debugfs-add-mode-uid-and-gid-options.patch
   dists/squeeze-backports/linux/debian/patches/features/all/fs-add-link-restriction-audit-reporting.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/fs-add-link-restriction-audit-reporting.patch
   dists/squeeze-backports/linux/debian/patches/features/all/fs-add-link-restrictions.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/fs-add-link-restrictions.patch
   dists/squeeze-backports/linux/debian/patches/features/all/fs-handle-failed-audit_log_start-properly.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/fs-handle-failed-audit_log_start-properly.patch
   dists/squeeze-backports/linux/debian/patches/features/all/fs-prevent-use-after-free-in-auditing-when-symlink-f.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/fs-prevent-use-after-free-in-auditing-when-symlink-f.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0227-debugobjects-rt.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0227-debugobjects-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0228-jump-label-rt.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0228-jump-label-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0229-skbufhead-raw-lock.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0229-skbufhead-raw-lock.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0230-x86-no-perf-irq-work-rt.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0230-x86-no-perf-irq-work-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0231-console-make-rt-friendly.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0231-console-make-rt-friendly.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0232-printk-Disable-migration-instead-of-preemption.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0232-printk-Disable-migration-instead-of-preemption.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0233-power-use-generic-rwsem-on-rt.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0233-power-use-generic-rwsem-on-rt.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0234-power-disable-highmem-on-rt.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0234-power-disable-highmem-on-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0235-arm-disable-highmem-on-rt.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0235-arm-disable-highmem-on-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0236-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0236-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0237-mips-disable-highmem-on-rt.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0237-mips-disable-highmem-on-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0238-net-Avoid-livelock-in-net_tx_action-on-RT.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0238-net-Avoid-livelock-in-net_tx_action-on-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0239-ping-sysrq.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0239-ping-sysrq.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0240-kgdb-serial-Short-term-workaround.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0240-kgdb-serial-Short-term-workaround.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0241-add-sys-kernel-realtime-entry.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0241-add-sys-kernel-realtime-entry.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0242-mm-rt-kmap_atomic-scheduling.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0242-mm-rt-kmap_atomic-scheduling.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0243-ipc-sem-Rework-semaphore-wakeups.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0243-ipc-sem-Rework-semaphore-wakeups.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0244-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0244-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0245-x86-kvm-require-const-tsc-for-rt.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0245-x86-kvm-require-const-tsc-for-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0246-scsi-fcoe-rt-aware.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0246-scsi-fcoe-rt-aware.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0247-x86-crypto-Reduce-preempt-disabled-regions.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0247-x86-crypto-Reduce-preempt-disabled-regions.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0248-dm-Make-rt-aware.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0248-dm-Make-rt-aware.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0249-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0249-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0250-seqlock-Prevent-rt-starvation.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0250-seqlock-Prevent-rt-starvation.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0251-timer-Fix-hotplug-for-rt.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0251-timer-Fix-hotplug-for-rt.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0252-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0252-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0253-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0253-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0254-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0254-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0255-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0255-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0256-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0256-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0257-softirq-Check-preemption-after-reenabling-interrupts.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0257-softirq-Check-preemption-after-reenabling-interrupts.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0258-rt-Introduce-cpu_chill.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0258-rt-Introduce-cpu_chill.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0259-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0259-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0260-net-Use-cpu_chill-instead-of-cpu_relax.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0260-net-Use-cpu_chill-instead-of-cpu_relax.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0261-kconfig-disable-a-few-options-rt.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0261-kconfig-disable-a-few-options-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0262-kconfig-preempt-rt-full.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0262-kconfig-preempt-rt-full.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0263-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0263-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0264-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0264-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0265-net-RT-REmove-preemption-disabling-in-netif_rx.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0265-net-RT-REmove-preemption-disabling-in-netif_rx.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0266-mips-remove-smp-reserve-lock.patch.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0266-mips-remove-smp-reserve-lock.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0267-Latency-histogramms-Cope-with-backwards-running-loca.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0267-Latency-histogramms-Cope-with-backwards-running-loca.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0268-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0268-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0269-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0269-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0270-Latency-histograms-Detect-another-yet-overlooked-sha.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0270-Latency-histograms-Detect-another-yet-overlooked-sha.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0271-slab-Prevent-local-lock-deadlock.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0271-slab-Prevent-local-lock-deadlock.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0272-fs-jbd-pull-your-plug-when-waiting-for-space.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0272-fs-jbd-pull-your-plug-when-waiting-for-space.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0273-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0273-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0274-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0274-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0275-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0275-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0276-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0276-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0277-fix-printk-flush-of-messages.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0277-fix-printk-flush-of-messages.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0278-fix-printk-flush-of-messages.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0278-fix-printk-flush-of-messages.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0279-random-Make-it-work-on-rt.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0279-random-Make-it-work-on-rt.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0280-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0280-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0281-mm-slab-Fix-potential-deadlock.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0281-mm-slab-Fix-potential-deadlock.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0282-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0282-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0283-rt-rwsem-rwlock-lockdep-annotations.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0283-rt-rwsem-rwlock-lockdep-annotations.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0284-sched-Better-debug-output-for-might-sleep.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0284-sched-Better-debug-output-for-might-sleep.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0285-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0285-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0286-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0286-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0287-Linux-3.2.32-rt48-REBASE.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0287-Linux-3.2.32-rt48-REBASE.patch
   dists/squeeze-backports/linux/debian/patches/features/arm/ahci-Add-JMicron-362-device-IDs.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/arm/ahci-Add-JMicron-362-device-IDs.patch
   dists/squeeze-backports/linux/debian/patches/features/x86/efi-stub/0018-efi-Build-EFI-stub-with-EFI-appropriate-options.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/x86/efi-stub/0018-efi-Build-EFI-stub-with-EFI-appropriate-options.patch
Replaced:
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch
      - copied unchanged from r19450, dists/sid/linux/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch
Deleted:
   dists/squeeze-backports/linux/debian/abi/
   dists/squeeze-backports/linux/debian/patches/bugfix/all/KVM-Fix-buffer-overflow-in-kvm_set_irq.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/NFSv4-Rate-limit-the-state-manager-for-lock-reclaim-.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/NFSv4-Reduce-the-footprint-of-the-idmapper.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/atl1c-fix-issue-of-transmit-queue-0-timed-out.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/brcmsmac-INTERMEDIATE-but-not-AMPDU-only-when-tracin.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/cipso-don-t-follow-a-NULL-pointer-when-setsockopt-is.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/epoll-clear-the-tfile_check_list-on-eloop.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/ext4-Report-max_batch_time-option-correctly.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/fifo-do-not-restart-open-if-it-already-found-a-partner.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/hugepages-fix-use-after-free-bug-in-quota-handling.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/kbuild-do-not-check-for-ancient-modutils-tools.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/macvtap-zerocopy-fix-offset-calculation-when-buildin.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/macvtap-zerocopy-fix-truesize-underestimation.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/macvtap-zerocopy-put-page-when-fail-to-get-all-reque.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/macvtap-zerocopy-set-SKBTX_DEV_ZEROCOPY-only-when-sk.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/macvtap-zerocopy-validate-vectors-before-building-sk.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/raid5-delayed-stripe-fix.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/remove-easily-user-triggerable-bug-from-generic_setlease.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/scsi-Silence-unnecessary-warnings-about-ioctl-to-par.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/tcp-drop-syn-fin-messages.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/all/udf-Improve-table-length-check-to-avoid-possible-underflow.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/arm/disable-scsi_acard.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-do-not-enable-RC6p-on-Sandy-Bridge.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-fix-operator-precedence-when-enabling-RC6p.patch
   dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-prefer-wide-slow-to-fast-narrow-in-DP-confi.patch
   dists/squeeze-backports/linux/debian/patches/debian/driver-core-avoid-ABI-change-for-removal-of-__must_check.patch
   dists/squeeze-backports/linux/debian/patches/features/all/fs-hardlink-creation-restriction-cleanup.patch
   dists/squeeze-backports/linux/debian/patches/features/all/fs-hardlink-creation-restrictions-fix.patch
   dists/squeeze-backports/linux/debian/patches/features/all/fs-hardlink-creation-restrictions.patch
   dists/squeeze-backports/linux/debian/patches/features/all/fs-symlink-restrictions-on-sticky-directories-fix-2.patch
   dists/squeeze-backports/linux/debian/patches/features/all/fs-symlink-restrictions-on-sticky-directories.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0227-workqueue-Fix-cpuhotplug-trainwreck.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0228-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0229-workqueue-Use-get_cpu_light-in-flush_gcwq.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0230-hotplug-stuff.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0231-debugobjects-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0232-jump-label-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0233-skbufhead-raw-lock.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0234-x86-no-perf-irq-work-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0235-console-make-rt-friendly.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0236-printk-Disable-migration-instead-of-preemption.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0237-power-use-generic-rwsem-on-rt.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0238-power-disable-highmem-on-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0239-arm-disable-highmem-on-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0240-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0241-mips-disable-highmem-on-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0242-net-Avoid-livelock-in-net_tx_action-on-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0243-ping-sysrq.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0244-kgdb-serial-Short-term-workaround.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0245-add-sys-kernel-realtime-entry.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0246-mm-rt-kmap_atomic-scheduling.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0247-ipc-sem-Rework-semaphore-wakeups.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0248-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0249-x86-kvm-require-const-tsc-for-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0250-scsi-fcoe-rt-aware.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0251-x86-crypto-Reduce-preempt-disabled-regions.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0252-dm-Make-rt-aware.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0253-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0254-seqlock-Prevent-rt-starvation.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0255-timer-Fix-hotplug-for-rt.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0256-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0257-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0258-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0259-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0260-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0261-softirq-Check-preemption-after-reenabling-interrupts.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0262-rt-Introduce-cpu_chill.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0263-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0264-net-Use-cpu_chill-instead-of-cpu_relax.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0265-kconfig-disable-a-few-options-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0266-kconfig-preempt-rt-full.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0267-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0268-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0269-net-RT-REmove-preemption-disabling-in-netif_rx.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0270-mips-remove-smp-reserve-lock.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0271-Latency-histogramms-Cope-with-backwards-running-loca.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0272-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0273-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0274-Latency-histograms-Detect-another-yet-overlooked-sha.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0275-slab-Prevent-local-lock-deadlock.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0276-fs-jbd-pull-your-plug-when-waiting-for-space.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0277-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0278-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0279-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0280-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0281-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0282-Linux-3.2.23-rt37-REBASE.patch
Modified:
   dists/squeeze-backports/linux/   (props changed)
   dists/squeeze-backports/linux/debian/bin/gencontrol.py
   dists/squeeze-backports/linux/debian/changelog
   dists/squeeze-backports/linux/debian/config/alpha/defines
   dists/squeeze-backports/linux/debian/config/config
   dists/squeeze-backports/linux/debian/config/defines
   dists/squeeze-backports/linux/debian/config/i386/none/config.486
   dists/squeeze-backports/linux/debian/config/kernelarch-x86/config
   dists/squeeze-backports/linux/debian/config/kernelarch-x86/config-arch-32
   dists/squeeze-backports/linux/debian/config/kernelarch-x86/config-arch-64
   dists/squeeze-backports/linux/debian/installer/package-list
   dists/squeeze-backports/linux/debian/patches/debian/version.patch
   dists/squeeze-backports/linux/debian/patches/features/all/aufs3/aufs3-add.patch
   dists/squeeze-backports/linux/debian/patches/features/all/cpu-devices/cpu-convert-cpu-and-machinecheck-sysdev_class-to-a-r.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/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-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0137-hrtimer-fix-reprogram-madness.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0138-timer-fd-Prevent-live-lock.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0139-posix-timers-thread-posix-cpu-timers-on-rt.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0140-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0141-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0142-sched-delay-put-task.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0143-sched-limit-nr-migrate.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0144-sched-mmdrop-delayed.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0145-sched-rt-mutex-wakeup.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0146-sched-prevent-idle-boost.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0147-sched-might-sleep-do-not-account-rcu-depth.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0148-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0149-sched-cond-resched.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0150-cond-resched-softirq-fix.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0151-sched-no-work-when-pi-blocked.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0152-cond-resched-lock-rt-tweak.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0153-sched-disable-ttwu-queue.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0154-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0155-sched-ttwu-Return-success-when-only-changing-the-sav.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0156-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0157-stomp-machine-mark-stomper-thread.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0158-stomp-machine-raw-lock.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0159-hotplug-Lightweight-get-online-cpus.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0160-hotplug-sync_unplug-No.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0161-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0162-sched-migrate-disable.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0163-hotplug-use-migrate-disable.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0164-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0165-ftrace-migrate-disable-tracing.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0166-tracing-Show-padding-as-unsigned-short.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0167-migrate-disable-rt-variant.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0168-sched-Optimize-migrate_disable.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0169-sched-Generic-migrate_disable.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0170-sched-rt-Fix-migrate_enable-thinko.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0171-sched-teach-migrate_disable-about-atomic-contexts.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0172-sched-Postpone-actual-migration-disalbe-to-schedule.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0173-sched-Do-not-compare-cpu-masks-in-scheduler.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0174-sched-Have-migrate_disable-ignore-bounded-threads.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0175-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0176-ftrace-crap.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0177-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0178-net-netif_rx_ni-migrate-disable.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0179-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0180-lockdep-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0181-mutex-no-spin-on-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0182-softirq-local-lock.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0183-softirq-Export-in_serving_softirq.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0184-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0185-softirq-Fix-unplug-deadlock.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0186-softirq-disable-softirq-stacks-for-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0187-softirq-make-fifo.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0188-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0189-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0190-local-vars-migrate-disable.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0191-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0192-rtmutex-lock-killable.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0193-rtmutex-futex-prepare-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0194-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0195-rt-mutex-add-sleeping-spinlocks-support.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0196-spinlock-types-separate-raw.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0197-rtmutex-avoid-include-hell.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0198-rt-add-rt-spinlocks.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0199-rt-add-rt-to-mutex-headers.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0200-rwsem-add-rt-variant.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0201-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0202-rwlocks-Fix-section-mismatch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0203-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0204-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0205-rcu-Frob-softirq-test.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0206-rcu-Merge-RCU-bh-into-RCU-preempt.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0207-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0208-rcu-more-fallout.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0209-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0210-rt-rcutree-Move-misplaced-prototype.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0211-lglocks-rt.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0212-serial-8250-Clean-up-the-locking-for-rt.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0213-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0214-drivers-tty-fix-omap-lock-crap.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0215-rt-Improve-the-serial-console-PASS_LIMIT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0216-fs-namespace-preemption-fix.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0217-mm-protect-activate-switch-mm.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0218-fs-block-rt-support.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0219-fs-ntfs-disable-interrupt-only-on-RT.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0220-x86-Convert-mce-timer-to-hrtimer.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0221-x86-stackprotector-Avoid-random-pool-on-rt.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0222-x86-Use-generic-rwsem_spinlocks-on-rt.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0223-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0224-workqueue-use-get-cpu-light.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0225-epoll.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/0226-mm-vmalloc.patch.patch
   dists/squeeze-backports/linux/debian/patches/features/all/rt/series
   dists/squeeze-backports/linux/debian/patches/features/all/rt2x00-add-rt5372-chipset-support.patch
   dists/squeeze-backports/linux/debian/patches/series
   dists/squeeze-backports/linux/debian/patches/series-rt
   dists/squeeze-backports/linux/debian/rules.real
   dists/squeeze-backports/linux/debian/templates/control.main.in

Modified: dists/squeeze-backports/linux/debian/bin/gencontrol.py
==============================================================================
--- dists/squeeze-backports/linux/debian/bin/gencontrol.py	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/bin/gencontrol.py	Tue Nov  6 04:48:05 2012	(r19482)
@@ -266,7 +266,7 @@
             p = self.process_packages(self.templates['control.xen-linux-system'], vars)
             l = PackageRelationGroup()
             for xen_flavour in config_entry_xen['flavours']:
-                l.append("xen-hypervisor-%s" % xen_flavour)
+                l.append("xen-system-%s" % xen_flavour)
             p[0]['Depends'].append(l)
             packages_dummy.extend(p)
 

Modified: dists/squeeze-backports/linux/debian/changelog
==============================================================================
--- dists/squeeze-backports/linux/debian/changelog	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/changelog	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,23 +1,306 @@
-linux (3.2.23-1~bpo60+2) squeeze-backports; urgency=low
-
-  * Rebuild for squeeze:
-    - 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>  Wed, 22 Aug 2012 14:16:33 +0100
-
-linux (3.2.23-1~bpo60+1) squeeze-backports; urgency=low
+linux (3.2.32-1~bpo60+1) squeeze-backports; urgency=low
 
   * Rebuild for squeeze:
     - Use gcc-4.4 for all architectures
     - Disable building of udebs
-    - Change ABI number to 0.bpo.3
+    - Change ABI number to 0.bpo.4
     - Monkey-patch Python collections module to add OrderedDict if necessary
     - [armel] Disable CRYPTO_FIPS, VGA_ARB, FTRACE on iop32x and ixp4xx to
       reduce kernel size (as suggested by Arnaud Patard)
     - Use QUILT_PATCH_OPTS instead of missing quilt patch --fuzz option
+    - 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>  Tue, 06 Nov 2012 04:23:59 +0000
+
+linux (3.2.32-1) unstable; urgency=low
+
+  * New upstream stable update:
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.31
+    - target: Fix ->data_length re-assignment bug with SCSI overflow
+    - hpsa: fix handling of protocol error
+    - cifs: fix return value in cifsConvertToUTF16
+    - asix: Support DLink DUB-E100 H/W Ver C1 (Closes: #687567)
+    - dj: memory scribble in logi_dj
+    - dm: handle requests beyond end of device instead of using BUG_ON
+    - md/raid10: fix "enough" function for detecting if array is failed.
+    - libata: Prevent interface errors with Seagate FreeAgent GoFlex
+    - vfs: dcache: fix deadlock in tree traversal
+    - Revert "drm/radeon: rework pll selection (v3)" (regression in 3.2.30)
+    - HID: hidraw: don't deallocate memory when it is in use
+    - xfrm: Workaround incompatibility of ESN and async crypto
+    - xfrm_user: fix various information leaks
+    - xfrm_user: ensure user supplied esn replay window is valid
+    - net: guard tcp_set_keepalive() to tcp sockets
+    - ipv4: raw: fix icmp_filter()
+    - ipv6: raw: fix icmpv6_filter()
+    - ipv6: mip6: fix mip6_mh_filter()
+    - netrom: copy_datagram_iovec can fail
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.32
+    - mtd: nand: Use the mirror BBT descriptor when reading its version
+    - TTY: ttyprintk, don't touch behind tty->write_buf
+    - n_gsm: fix various serious bugs
+    - hpsa: Use LUN reset instead of target reset
+    - staging: comedi: don't dereference user memory for INSN_INTTRIG
+    - ext4: fix potential deadlock in ext4_nonda_switch()
+    - staging: comedi: fix memory leak for saved channel list
+    - scsi_remove_target: fix softlockup regression on hot remove
+      (Closes: #690990)
+    - usb: host: xhci: Fix Null pointer dereferencing with 71c731a for
+      non-x86 systems (regression in 3.2.30)
+    - ext4: online defrag is not supported for journaled files
+    - staging: comedi: s626: don't dereference insn->data
+    - serial: pl011: handle corruption at high clock speeds
+    - ext4: always set i_op in ext4_mknod()
+    - ext4: fix fdatasync() for files with only i_size changes
+    - [x86] drm/i915: use adjusted_mode instead of mode for checking the
+      6bpc force flag (regression in 3.2.29)
+    - staging: comedi: jr3_pci: fix iomem dereference
+    - JFFS2: don't fail on bitflips in OOB
+    - mtd: nandsim: bugfix: fail if overridesize is too big
+    - pnfsblock: fix partial page buffer wirte
+    - target/file: Re-enable optional fd_buffered_io=1 operation
+    - iscsit: remove incorrect unlock in iscsit_build_sendtargets_resp
+    - rapidio/rionet: fix multicast packet transmit logic
+    - ALSA: aloop - add locking to timer access
+    - [armhf/omap] counter: add locking to read_persistent_clock
+    - mm: fix invalidate_complete_page2() lock ordering
+    - mm: thp: fix pmd_present for split_huge_page and PROT_NONE with THP
+    - mm: hugetlb: fix pgoff computation when unmapping page from vma
+    - hugetlb: do not use vma_hugecache_offset() for vma_prio_tree_foreach
+    - [x86] firewire: cdev: fix user memory corruption (i386 userland on
+      amd64 kernel)
+    - udf: fix retun value on error path in udf_load_logicalvol
+    - eCryptfs: Unlink lower inode when ecryptfs_create() fails
+    - eCryptfs: Initialize empty lower files when opening them
+    - eCryptfs: Revert to a writethrough cache model
+    - eCryptfs: Write out all dirty pages just before releasing the lower file
+    - eCryptfs: Call lower ->flush() from ecryptfs_flush()
+    - mempolicy: remove mempolicy sharing
+    - mempolicy: fix a race in shared_policy_replace()
+    - mempolicy: fix refcount leak in mpol_set_shared_policy()
+    - mempolicy: fix a memory corruption by refcount imbalance in
+      alloc_pages_vma()
+    - hpsa: dial down lockup detection during firmware flash
+    - netfilter: nf_ct_ipv4: packets with wrong ihl are invalid
+    - netfilter: nf_nat_sip: fix incorrect handling of EBUSY for RTCP
+      expectation
+    - netfilter: nf_ct_expect: fix possible access to uninitialized timer
+    - ipvs: fix oops on NAT reply in br_nf context
+
+  [ Ben Hutchings ]
+  * codel: refine one condition to avoid a nul rec_inv_sqrt
+  * [mips,mipsel] Ignore NFS/SunRPC ABI changes in 3.2.30 (fixes FTBFS)
+  * tg3: Fix TSO CAP for 5704 devs w / ASF enabled
+  * SUNRPC: Set alloc_slot for backchannel tcp ops (regression in 3.2.30)
+  * iwlwifi: Do not request unreleased firmware for IWL6000 (Closes: #689416)
+  * aufs: Update to aufs3.2-20120827:
+    - Fix statfs() values when different block sizes are in use
+  * udeb: Add hid-logitech-dj to input-modules (Closes: #661379)
+  * connector: Make CONNECTOR built-in; enable PROC_EVENTS (Closes: #588200)
+  * e1000e: Change wthresh to 1 to avoid possible Tx stalls
+  * [x86] efi: Build EFI stub with EFI-appropriate options
+  * [rt] Update to 3.2.32-rt48:
+    - random: Make add_interrupt_randomness() work on rt
+    - softirq: Init softirq local lock after per cpu section is set up
+    - mm: slab: Fix potential deadlock
+    - mm: page_alloc: Use local_lock_on() instead of plain spinlock
+    - rt: rwsem/rwlock: lockdep annotations
+    - sched: Better debug output for might sleep
+    - stomp_machine: Use mutex_trylock when called from inactive cpu
+  * [x86] storvsc: Account for in-transit packets in the RESET path
+  * fs: handle failed audit_log_start properly
+  * fs: prevent use after free in auditing when symlink following was denied
+  * kernel/sys.c: fix stack memory content leak via UNAME26 (CVE-2012-0957)
+  * ALSA: hda: Fix oops caused by "Fix internal mic for Lenovo Ideapad U300s"
+    in 3.2.32
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Mon, 22 Oct 2012 06:25:37 +0100
+
+linux (3.2.30-1) unstable; urgency=low
+
+  * New upstream stable update:
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.30
+    - ext3: Fix fdatasync() for files with only i_size changes
+    - UBI: fix a horrible memory deallocation bug
+    - fuse: fix retrieve length
+    - mmc: card: Skip secure erase on MoviNAND; causes unrecoverable corruption
+    - udf: Fix data corruption for files in ICB
+    - xen: Use correct masking in xen_swiotlb_alloc_coherent.
+    - CIFS: Fix error handling in cifs_push_mandatory_locks
+    - [x86] drm/i915: Wait for all pending operations to the fb before
+      disabling the pipe
+    - xhci: Fix bug after deq ptr set to link TRB
+    - NFS: Fix the initialisation of the readdir 'cookieverf' array
+    - staging: comedi: das08: Correct AI encoding for das08jr-16-ao
+    - staging: comedi: das08: Correct AO output for das08jr-16-ao
+    - rt2800usb: Added rx packet length validity check
+    - staging: zcache: fix cleancache race condition with shrinker
+    - NFS: return error from decode_getfh in decode open
+    - ARM: 7526/1: traps: send SIGILL if get_user fails on undef handling path
+    - ahci: Add alternate identifier for the 88SE9172
+
+  [ Ben Hutchings ]
+  * [s390/s390x-tape] udeb: Remove fuse-modules configuration (fixes FTBFS)
+
+ -- dann frazier <dannf at debian.org>  Wed, 26 Sep 2012 16:00:58 +0900
+
+linux (3.2.29-1) unstable; urgency=low
+
+  * New upstream stable update:
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.24
+    - sched/nohz: Rewrite and fix load-avg computation -- again
+      (Closes: #674153)
+    - libsas: fix taskfile corruption in sas_ata_qc_fill_rtf
+    - md/raid1: fix use-after-free bug in RAID1 data-check code.
+    - PCI: EHCI: fix crash during suspend on ASUS computers
+    - cpufreq / ACPI: Fix not loading acpi-cpufreq driver (regression in 3.2.2)
+    - block: fix infinite loop in __getblk_slow (regression in 3.2.19)
+      (Closes: #684293)
+    - PM / Hibernate: Hibernate/thaw fixes/improvements
+    - tcm_fc: Fix crash seen with aborts and large reads
+    - fifo: Do not restart open() if it already found a partner
+    - cifs: on CONFIG_HIGHMEM machines, limit the rsize/wsize to the kmap space
+    - UBIFS: fix a bug in empty space fix-up
+    - ore: Fix NFS crash by supporting any unaligned RAID IO
+    - ore: Remove support of partial IO request (NFS crash)
+    - pnfs-obj: don't leak objio_state if ore_write/read fails
+    - pnfs-obj: Fix __r4w_get_page when offset is beyond i_size
+    - dm raid1: fix crash with mirror recovery and discard
+    - dm raid1: set discard_zeroes_data_unsupported
+    - time: Fix bugs in leap-second handling (Closes: #679882)
+      + ntp: Fix leap-second hrtimer livelock
+      + timekeeping: Fix leapsecond triggered load spike issue
+    - bnx2x: fix checksum validation
+    - bnx2x: fix panic when TX ring is full
+    - eCryptfs: Gracefully refuse miscdev file ops on inherited/passed files
+    - ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.25
+    - mm: Fix various performance problems, particularly affecting use of
+      transparent hugepages (Closes: #675493)
+    - target: Add range checking to UNMAP emulation
+    - target: Fix reading of data length fields for UNMAP commands
+    - target: Fix possible integer underflow in UNMAP emulation
+    - target: Check number of unmap descriptors against our limit
+    - ext4: don't let i_reserved_meta_blocks go negative
+    - ext4: undo ext4_calc_metadata_amount if we fail to claim space
+    - locks: fix checking of fcntl_setlease argument
+    - Btrfs: call the ordered free operation without any locks held
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.26
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.27
+    - lirc_sir: make device registration work (Closes: #680762)
+    - random: Improve random number generation on non-interactive systems
+      + random: Use arch_get_random_int instead of cycle counter if avail
+      + random: Use arch-specific RNG to initialize the entropy store
+      + random: make 'add_interrupt_randomness()' do something sane
+      + usb: feed USB device information to the /dev/random driver
+      + net: feed /dev/random with the MAC address when registering a device
+      + rtc: wm831x: Feed the write counter into device_add_randomness()
+      + mfd: wm831x: Feed the device UUID into device_add_randomness()
+    - futex: Test for pi_mutex on fault in futex_wait_requeue_pi()
+    - futex: Forbid uaddr == uaddr2 in futex_wait_requeue_pi()
+    - s390/mm: downgrade page table after fork of a 31 bit process
+    - asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.
+      (Closes: #679158)
+    - md/raid1: don't abort a resync on the first badblock.
+    - [arm] 7467/1: mutex: use generic xchg-based implementation for ARMv6+
+    - [arm] 7476/1: vfp: only clear vfp state for current cpu in vfp_pm_suspend
+    - [arm] 7477/1: vfp: Always save VFP state in vfp_pm_suspend on UP
+    - [arm] 7478/1: errata: extend workaround for erratum #720789
+    - [arm] Fix undefined instruction exception handling
+    - mm: mmu_notifier: fix freed page still mapped in secondary MMU
+    - mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.28
+    - bnx2: Fix bug in bnx2_free_tx_skbs().
+    - sch_sfb: Fix missing NULL check
+    - sctp: Fix list corruption resulting from freeing an association on a list
+    - cipso: don't follow a NULL pointer when setsockopt() is called
+    - caif: fix NULL pointer check
+    - net/tun: fix ioctl() based info leaks
+    - rtlwifi: rtl8192cu: Change buffer allocation for synchronous reads
+    - hfsplus: fix overflow in sector calculations in hfsplus_submit_bio
+    - drm/i915: fixup seqno allocation logic for lazy_request
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.29
+    - pnfs: defer release of pages in layoutget
+    - fuse: verify all ioctl retry iov elements
+    - usb: serial: mos7840: Fixup mos7840_chars_in_buffer()
+    - sched: fix divide by zero at {thread_group,task}_times
+    - vfs: canonicalize create mode in build_open_flags()
+    - dccp: check ccid before dereferencing
+    - md: Don't truncate size at 4TB for RAID0 and Linear
+    - target: fix NULL pointer dereference bug alloc_page() fails to get memory
+    - USB: CDC ACM: Fix NULL pointer dereference
+    - alpha: Don't export SOCK_NONBLOCK to user space. (Closes: #658460)
+    - radeon: Fix various bugs in reading vbios (Closes: #685604)
+    - vfs: missed source of ->f_pos races
+    - svcrpc: fix BUG() in svc_tcp_clear_pages
+    - svcrpc: sends on closed socket should stop immediately
+    - fbcon: fix race condition between console lock and cursor timer (v1.1)
+    - mm: hugetlbfs: correctly populate shared pmd
+    - fs/buffer.c: remove BUG() in possible but rare condition
+    - block: replace __getblk_slow misfix by grow_dev_page fix
+    - Staging: speakup: fix an improperly-declared variable. (Closes: #685953)
+    - NFS: Fix Oopses in nfs_lookup_revalidate and nfs4_lookup_revalidate
+
+  [ Ben Hutchings ]
+  * Bump ABI to 4
+  * linux-image: Include package version in utsname version string
+    ('uname -v' output) (Closes: #638878)
+  * linux-source: Drop support for version.$DISTRIBUTION
+  * [arm,ia64,powerpc,s390,sh,x86] linux-image: Include package version
+    in stack traces from WARN, BUG, Oops etc.
+  * udeb: Add snd-hda-codec-ca0132 to sound-modules (Closes: #682368)
+  * linux-source: Suggest pkg-config, needed to build kconfig GUIs
+    (Closes: #682726)
+  * debugfs: Add mode, uid and gid mount options; set default mode to 700
+    (Closes: #681418)
+  * net: new counter for tx_timeout errors in sysfs
+  * net: Add byte queue limits (bql) for reduced buffer-bloat
+  * bnx2,bnx2x,e1000e,forcedeth,igb,ixgbe,sfc,skge,sky2,tg3:
+    Add support for bql
+  * fs: Update link security restrictions to match Linux 3.6:
+    - Drop kconfig options; restrictions can only be disabled by sysctl
+    - Change the audit message type from AUDIT_AVC (1400) to
+      AUDIT_ANON_LINK (1702)
+  * [rt] Update to 3.2.28-rt42:
+    - time/rt: Fix up leap-second backport for RT changes
+    - fix printk flush of messages
+  * rds: set correct msg_namelen (CVE-2012-3430)
+  * e1000: add dropped DMA receive enable back in for WoL (Closes: #684618)
+  * PCI/PM/Runtime: make PCI traces quieter (Closes: #684049)
+  * rc: ite-cir: Initialise ite_dev::rdev earlier (Closes: #684441)
+  * input: Enable TOUCHSCREEN_ATMEL_MXT as module (Closes: #685123)
+  * usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams
+    (Closes: #668211)
+  * [alpha] Use gcc-4.6 (Closes: #685894)
+    - Use large data model to work around link failure
+  * [i386/486] video: Change FB_GEODE_LX from built-in to module (lxfb)
+    (Closes: #686528)
+  * [i386/686-pae] video: Disable Geode framebuffer drivers, not used with
+    any chips that support PAE
+  * [x86] drm/i915: Fix i8xx interrupt handling (Closes: #655152)
+  * [armel/kirkwood] ahci: Add JMicron 362 device IDs (Closes: #634180)
+  * speakup: lower default software speech rate (Closes: #686742)
+  * e1000e: Fix potential DoS when TSO enabled
+  * mm: Remove user-triggerable BUG from mpol_to_str
+  * sfc: Fix maximum number of TSO segments and minimum TX queue size
+    (CVE-2012-3412)
+    - tcp: Apply device TSO segment limit earlier
+  * net_sched: gact: Fix potential panic in tcf_gact().
+  * af_packet: remove BUG statement in tpacket_destruct_skb
+  * net: Fix various information leaks
+  * af_packet: don't emit packet on orig fanout group
+  * af_netlink: force credentials passing (CVE-2012-3520)
+  * netlink: fix possible spoofing from non-root processes
+  * net: ipv4: ipmr_expire_timer causes crash when removing net namespace
+  * [i386] i810fb: Enable FB_I810_GTF, FB_I810_I2C (Closes: #687644)
+  * udeb: Add fuse-modules to support os-prober (see #684265)
+
+  [ Bastian Blank ]
+  * Make xen-linux-system meta-packages depend on xen-system. This allows
+    automatic updates. (closes: #681637)
 
- -- Ben Hutchings <ben at decadent.org.uk>  Sun, 19 Aug 2012 03:28:09 +0100
+ -- Ben Hutchings <ben at decadent.org.uk>  Sun, 16 Sep 2012 06:16:38 +0100
 
 linux (3.2.23-1) unstable; urgency=low
 

Modified: dists/squeeze-backports/linux/debian/config/alpha/defines
==============================================================================
--- dists/squeeze-backports/linux/debian/config/alpha/defines	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/config/alpha/defines	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,6 @@
 [base]
 flavours: alpha-generic alpha-smp alpha-legacy
 kernel-arch: alpha
-compiler: gcc-4.5
 
 [image]
 suggests: aboot, fdutils

Modified: dists/squeeze-backports/linux/debian/config/config
==============================================================================
--- dists/squeeze-backports/linux/debian/config/config	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/config/config	Tue Nov  6 04:48:05 2012	(r19482)
@@ -267,7 +267,8 @@
 ##
 ## file: drivers/connector/Kconfig
 ##
-CONFIG_CONNECTOR=m
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
 
 ##
 ## file: drivers/cpufreq/Kconfig
@@ -765,7 +766,7 @@
 CONFIG_TOUCHSCREEN_AD7879=m
 CONFIG_TOUCHSCREEN_AD7879_I2C=m
 # CONFIG_TOUCHSCREEN_AD7879_SPI is not set
-# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
 # CONFIG_TOUCHSCREEN_BU21013 is not set
 # CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
 CONFIG_TOUCHSCREEN_DYNAPRO=m

Modified: dists/squeeze-backports/linux/debian/config/defines
==============================================================================
--- dists/squeeze-backports/linux/debian/config/defines	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/config/defines	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,25 @@
 [abi]
-abiname: 0.bpo.3
+abiname: 0.bpo.4
 ignore-changes:
- module:drivers/net/wireless/ath/*
+ module:net/l2tp/*
+# A bunch of NFS/SunRPC exports, not selected by module because MIPS has
+# them built-in
+ __rpc_wait_for_completion_task
+ bc_svc_process
+ nfs4*
+ nfs_*
+ nlmclnt_*
+ nlmsvc_*
+ pnfs_*
+ put_lseg
+ put_rpccred
+ rpc_*
+ rpcauth_*
+ rpcb_getport_async
+ svc_*
+ svcauth_unix_set_client
+ unix_domain_find
+ xprt_*
 
 [base]
 arches:

Modified: dists/squeeze-backports/linux/debian/config/i386/none/config.486
==============================================================================
--- dists/squeeze-backports/linux/debian/config/i386/none/config.486	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/config/i386/none/config.486	Tue Nov  6 04:48:05 2012	(r19482)
@@ -136,7 +136,10 @@
 ##
 ## file: drivers/video/geode/Kconfig
 ##
-CONFIG_FB_GEODE_LX=y
+CONFIG_FB_GEODE=y
+CONFIG_FB_GEODE_LX=m
+CONFIG_FB_GEODE_GX=m
+CONFIG_FB_GEODE_GX1=m
 
 ##
 ## file: mm/Kconfig

Modified: dists/squeeze-backports/linux/debian/config/kernelarch-x86/config
==============================================================================
--- dists/squeeze-backports/linux/debian/config/kernelarch-x86/config	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/config/kernelarch-x86/config	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1503,6 +1503,11 @@
 CONFIG_FONT_8x16=y
 
 ##
+## file: drivers/video/geode/Kconfig
+##
+# CONFIG_FB_GEODE is not set
+
+##
 ## file: drivers/watchdog/Kconfig
 ##
 CONFIG_ACQUIRE_WDT=m

Modified: dists/squeeze-backports/linux/debian/config/kernelarch-x86/config-arch-32
==============================================================================
--- dists/squeeze-backports/linux/debian/config/kernelarch-x86/config-arch-32	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/config/kernelarch-x86/config-arch-32	Tue Nov  6 04:48:05 2012	(r19482)
@@ -465,7 +465,8 @@
 ## file: drivers/video/Kconfig
 ##
 CONFIG_FB_I810=m
-# CONFIG_FB_I810_GTF is not set
+CONFIG_FB_I810_GTF=y
+CONFIG_FB_I810_I2C=y
 CONFIG_FB_MATROX_G=y
 CONFIG_FB_MATROX_MAVEN=m
 CONFIG_FB_ATY_GENERIC_LCD=y
@@ -477,14 +478,6 @@
 CONFIG_MDA_CONSOLE=m
 
 ##
-## file: drivers/video/geode/Kconfig
-##
-CONFIG_FB_GEODE=y
-CONFIG_FB_GEODE_LX=m
-CONFIG_FB_GEODE_GX=m
-CONFIG_FB_GEODE_GX1=m
-
-##
 ## file: drivers/watchdog/Kconfig
 ##
 CONFIG_SCx200_WDT=m

Modified: dists/squeeze-backports/linux/debian/config/kernelarch-x86/config-arch-64
==============================================================================
--- dists/squeeze-backports/linux/debian/config/kernelarch-x86/config-arch-64	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/config/kernelarch-x86/config-arch-64	Tue Nov  6 04:48:05 2012	(r19482)
@@ -102,11 +102,6 @@
 # CONFIG_FB_SAVAGE_I2C is not set
 
 ##
-## file: drivers/video/geode/Kconfig
-##
-# CONFIG_FB_GEODE is not set
-
-##
 ## file: init/Kconfig
 ##
 CONFIG_RCU_FANOUT=64

Modified: dists/squeeze-backports/linux/debian/installer/package-list
==============================================================================
--- dists/squeeze-backports/linux/debian/installer/package-list	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/installer/package-list	Tue Nov  6 04:48:05 2012	(r19482)
@@ -460,3 +460,9 @@
 Priority: extra
 Description: UDF modules
  This package contains the UDF filesystem module.
+
+Package: fuse-modules
+Depends: kernel-image
+Priority: extra
+Description: FUSE modules
+ This package contains the Filesystem in Userspace (FUSE) module.

Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/PCI-PM-Runtime-make-PCI-traces-quieter.patch (from r19450, dists/sid/linux/debian/patches/bugfix/all/PCI-PM-Runtime-make-PCI-traces-quieter.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/PCI-PM-Runtime-make-PCI-traces-quieter.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/bugfix/all/PCI-PM-Runtime-make-PCI-traces-quieter.patch)
@@ -0,0 +1,87 @@
+From: Vincent Palatin <vpalatin at chromium.org>
+Date: Mon, 5 Dec 2011 11:51:18 -0800
+Subject: PCI/PM/Runtime: make PCI traces quieter
+
+commit 85b8582d7ca516030efb84d94fa29a73c1d9a125 upstream.
+
+When the runtime PM is activated on PCI, if a device switches state
+frequently (e.g. an EHCI controller with autosuspending USB devices
+connected) the PCI configuration traces might be very verbose in the
+kernel log.  Let's guard those traces with DEBUG condition.
+
+Acked-by: "Rafael J. Wysocki" <rjw at sisk.pl>
+Signed-off-by: Vincent Palatin <vpalatin at chromium.org>
+Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
+---
+ drivers/acpi/pci_irq.c  |   10 +++++-----
+ drivers/pci/pci.c       |    5 ++---
+ drivers/pci/setup-res.c |    6 +++---
+ 3 files changed, 10 insertions(+), 11 deletions(-)
+
+diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
+index 7f9eba9..0eefa12 100644
+--- a/drivers/acpi/pci_irq.c
++++ b/drivers/acpi/pci_irq.c
+@@ -487,10 +487,10 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
+ 	else
+ 		link_desc[0] = '\0';
+ 
+-	dev_info(&dev->dev, "PCI INT %c%s -> GSI %u (%s, %s) -> IRQ %d\n",
+-		 pin_name(pin), link_desc, gsi,
+-		 (triggering == ACPI_LEVEL_SENSITIVE) ? "level" : "edge",
+-		 (polarity == ACPI_ACTIVE_LOW) ? "low" : "high", dev->irq);
++	dev_dbg(&dev->dev, "PCI INT %c%s -> GSI %u (%s, %s) -> IRQ %d\n",
++		pin_name(pin), link_desc, gsi,
++		(triggering == ACPI_LEVEL_SENSITIVE) ? "level" : "edge",
++		(polarity == ACPI_ACTIVE_LOW) ? "low" : "high", dev->irq);
+ 
+ 	return 0;
+ }
+@@ -524,6 +524,6 @@ void acpi_pci_irq_disable(struct pci_dev *dev)
+ 	 * (e.g. PCI_UNDEFINED_IRQ).
+ 	 */
+ 
+-	dev_info(&dev->dev, "PCI INT %c disabled\n", pin_name(pin));
++	dev_dbg(&dev->dev, "PCI INT %c disabled\n", pin_name(pin));
+ 	acpi_unregister_gsi(gsi);
+ }
+diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
+index 5c5adef..54343aa 100644
+--- a/drivers/pci/pci.c
++++ b/drivers/pci/pci.c
+@@ -973,7 +973,7 @@ void pci_restore_state(struct pci_dev *dev)
+ 	for (i = 15; i >= 0; i--) {
+ 		pci_read_config_dword(dev, i * 4, &val);
+ 		if (val != dev->saved_config_space[i]) {
+-			dev_printk(KERN_DEBUG, &dev->dev, "restoring config "
++			dev_dbg(&dev->dev, "restoring config "
+ 				"space at offset %#x (was %#x, writing %#x)\n",
+ 				i, val, (int)dev->saved_config_space[i]);
+ 			pci_write_config_dword(dev,i * 4,
+@@ -1542,8 +1542,7 @@ void pci_pme_active(struct pci_dev *dev, bool enable)
+ 	}
+ 
+ out:
+-	dev_printk(KERN_DEBUG, &dev->dev, "PME# %s\n",
+-			enable ? "enabled" : "disabled");
++	dev_dbg(&dev->dev, "PME# %s\n", enable ? "enabled" : "disabled");
+ }
+ 
+ /**
+diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
+index 5717509b..b66bfdb 100644
+--- a/drivers/pci/setup-res.c
++++ b/drivers/pci/setup-res.c
+@@ -85,9 +85,9 @@ void pci_update_resource(struct pci_dev *dev, int resno)
+ 		}
+ 	}
+ 	res->flags &= ~IORESOURCE_UNSET;
+-	dev_info(&dev->dev, "BAR %d: set to %pR (PCI address [%#llx-%#llx])\n",
+-		 resno, res, (unsigned long long)region.start,
+-		 (unsigned long long)region.end);
++	dev_dbg(&dev->dev, "BAR %d: set to %pR (PCI address [%#llx-%#llx])\n",
++		resno, res, (unsigned long long)region.start,
++		(unsigned long long)region.end);
+ }
+ 
+ int pci_claim_resource(struct pci_dev *dev, int resource)

Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch (from r19450, dists/sid/linux/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch)
@@ -0,0 +1,44 @@
+From: Bryan Schumaker <bjschuma at netapp.com>
+Date: Mon, 24 Sep 2012 13:39:01 -0400
+Subject: SUNRPC: Set alloc_slot for backchannel tcp ops
+
+commit 84e28a307e376f271505af65a7b7e212dd6f61f4 upstream.
+
+f39c1bfb5a03e2d255451bff05be0d7255298fa4 (SUNRPC: Fix a UDP transport
+regression) introduced the "alloc_slot" function for xprt operations,
+but never created one for the backchannel operations.  This patch fixes
+a null pointer dereference when mounting NFS over v4.1.
+
+Call Trace:
+ [<ffffffffa0207957>] ? xprt_reserve+0x47/0x50 [sunrpc]
+ [<ffffffffa02023a4>] call_reserve+0x34/0x60 [sunrpc]
+ [<ffffffffa020e280>] __rpc_execute+0x90/0x400 [sunrpc]
+ [<ffffffffa020e61a>] rpc_async_schedule+0x2a/0x40 [sunrpc]
+ [<ffffffff81073589>] process_one_work+0x139/0x500
+ [<ffffffff81070e70>] ? alloc_worker+0x70/0x70
+ [<ffffffffa020e5f0>] ? __rpc_execute+0x400/0x400 [sunrpc]
+ [<ffffffff81073d1e>] worker_thread+0x15e/0x460
+ [<ffffffff8145c839>] ? preempt_schedule+0x49/0x70
+ [<ffffffff81073bc0>] ? rescuer_thread+0x230/0x230
+ [<ffffffff81079603>] kthread+0x93/0xa0
+ [<ffffffff81465d04>] kernel_thread_helper+0x4/0x10
+ [<ffffffff81079570>] ? kthread_freezable_should_stop+0x70/0x70
+ [<ffffffff81465d00>] ? gs_change+0x13/0x13
+
+Signed-off-by: Bryan Schumaker <bjschuma at netapp.com>
+Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
+[bwh: Backported to 3.2: adjust context]
+---
+ net/sunrpc/xprtsock.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/net/sunrpc/xprtsock.c
++++ b/net/sunrpc/xprtsock.c
+@@ -2477,6 +2477,7 @@ static struct rpc_xprt_ops xs_tcp_ops =
+ static struct rpc_xprt_ops bc_tcp_ops = {
+ 	.reserve_xprt		= xprt_reserve_xprt,
+ 	.release_xprt		= xprt_release_xprt,
++	.alloc_slot		= xprt_alloc_slot,
+ 	.buf_alloc		= bc_malloc,
+ 	.buf_free		= bc_free,
+ 	.send_request		= bc_send_request,

Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch (from r19450, dists/sid/linux/debian/patches/bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch)
@@ -0,0 +1,60 @@
+From: Kees Cook <keescook at chromium.org>
+Date: Fri, 19 Oct 2012 13:56:51 -0700
+Subject: [1/2] kernel/sys.c: fix stack memory content leak via UNAME26
+
+commit 2702b1526c7278c4d65d78de209a465d4de2885e upstream.
+
+Calling uname() with the UNAME26 personality set allows a leak of kernel
+stack contents.  This fixes it by defensively calculating the length of
+copy_to_user() call, making the len argument unsigned, and initializing
+the stack buffer to zero (now technically unneeded, but hey, overkill).
+
+CVE-2012-0957
+
+Reported-by: PaX Team <pageexec at freemail.hu>
+Signed-off-by: Kees Cook <keescook at chromium.org>
+Cc: Andi Kleen <ak at linux.intel.com>
+Cc: PaX Team <pageexec at freemail.hu>
+Cc: Brad Spengler <spender at grsecurity.net>
+Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+ kernel/sys.c |   12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/kernel/sys.c b/kernel/sys.c
+index c5cb5b9..01865c6 100644
+--- a/kernel/sys.c
++++ b/kernel/sys.c
+@@ -1265,15 +1265,16 @@ DECLARE_RWSEM(uts_sem);
+  * Work around broken programs that cannot handle "Linux 3.0".
+  * Instead we map 3.x to 2.6.40+x, so e.g. 3.0 would be 2.6.40
+  */
+-static int override_release(char __user *release, int len)
++static int override_release(char __user *release, size_t len)
+ {
+ 	int ret = 0;
+-	char buf[65];
+ 
+ 	if (current->personality & UNAME26) {
+-		char *rest = UTS_RELEASE;
++		const char *rest = UTS_RELEASE;
++		char buf[65] = { 0 };
+ 		int ndots = 0;
+ 		unsigned v;
++		size_t copy;
+ 
+ 		while (*rest) {
+ 			if (*rest == '.' && ++ndots >= 3)
+@@ -1283,8 +1284,9 @@ static int override_release(char __user *release, int len)
+ 			rest++;
+ 		}
+ 		v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 40;
+-		snprintf(buf, len, "2.6.%u%s", v, rest);
+-		ret = copy_to_user(release, buf, len);
++		copy = min(sizeof(buf), max_t(size_t, 1, len));
++		copy = scnprintf(buf, copy, "2.6.%u%s", v, rest);
++		ret = copy_to_user(release, buf, copy + 1);
+ 	}
+ 	return ret;
+ }

Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/speakup-lower-default-software-speech-rate.patch (from r19450, dists/sid/linux/debian/patches/bugfix/all/speakup-lower-default-software-speech-rate.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/speakup-lower-default-software-speech-rate.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/bugfix/all/speakup-lower-default-software-speech-rate.patch)
@@ -0,0 +1,33 @@
+From: Samuel Thibault <samuel.thibault at ens-lyon.org>
+Date: Sun, 26 Aug 2012 23:35:17 +0200
+Subject: speakup: lower default software speech rate
+
+commit cfd757010691eae4e17acc246f74e7622c3a2f05 upstream.
+
+Speech synthesis beginners need a low speech rate, and trained people
+want a high speech rate.  A medium speech rate is thus actually not a
+good default for neither.  Since trained people will typically know how
+to change the rate, better default for a low speech rate, which
+beginners can grasp and learn how to increase it afterwards
+
+This was agreed with users on the speakup mailing list.
+
+Signed-off-by: Samuel Thibault <samuel.thibault at ens-lyon.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ drivers/staging/speakup/speakup_soft.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/staging/speakup/speakup_soft.c b/drivers/staging/speakup/speakup_soft.c
+index 42cdafe..2a67610 100644
+--- a/drivers/staging/speakup/speakup_soft.c
++++ b/drivers/staging/speakup/speakup_soft.c
+@@ -46,7 +46,7 @@ static int misc_registered;
+ static struct var_t vars[] = {
+ 	{ CAPS_START, .u.s = {"\x01+3p" } },
+ 	{ CAPS_STOP, .u.s = {"\x01-3p" } },
+-	{ RATE, .u.n = {"\x01%ds", 5, 0, 9, 0, 0, NULL } },
++	{ RATE, .u.n = {"\x01%ds", 2, 0, 9, 0, 0, NULL } },
+ 	{ PITCH, .u.n = {"\x01%dp", 5, 0, 9, 0, 0, NULL } },
+ 	{ VOL, .u.n = {"\x01%dv", 5, 0, 9, 0, 0, NULL } },
+ 	{ TONE, .u.n = {"\x01%dx", 1, 0, 2, 0, 0, NULL } },

Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch (from r19450, dists/sid/linux/debian/patches/bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch)
@@ -0,0 +1,99 @@
+From: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
+Date: Thu, 19 Jul 2012 12:39:14 +0200
+Subject: usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams
+
+commit e387ef5c47ddeaeaa3cbdc54424cdb7a28dae2c0 upstream.
+
+Most Logitech UVC webcams (both early models that don't advertise UVC
+compatibility and newer UVC-advertised devices) require the RESET_RESUME
+quirk. Instead of listing each and every model, match the devices based
+on the UVC interface information.
+
+Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
+Acked-by: Alan Stern <stern at rowland.harvard.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ drivers/usb/core/quirks.c |   58 +++++++++++++--------------------------------
+ 1 file changed, 16 insertions(+), 42 deletions(-)
+
+diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
+index cbd15d1..f15501f4c 100644
+--- a/drivers/usb/core/quirks.c
++++ b/drivers/usb/core/quirks.c
+@@ -43,53 +43,23 @@ static const struct usb_device_id usb_quirk_list[] = {
+ 	/* Creative SB Audigy 2 NX */
+ 	{ USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME },
+ 
+-	/* Logitech Webcam C200 */
+-	{ USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME },
++	/* Logitech Quickcam Fusion */
++	{ USB_DEVICE(0x046d, 0x08c1), .driver_info = USB_QUIRK_RESET_RESUME },
+ 
+-	/* Logitech Webcam C250 */
+-	{ USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
++	/* Logitech Quickcam Orbit MP */
++	{ USB_DEVICE(0x046d, 0x08c2), .driver_info = USB_QUIRK_RESET_RESUME },
+ 
+-	/* Logitech Webcam C300 */
+-	{ USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME },
++	/* Logitech Quickcam Pro for Notebook */
++	{ USB_DEVICE(0x046d, 0x08c3), .driver_info = USB_QUIRK_RESET_RESUME },
+ 
+-	/* Logitech Webcam B/C500 */
+-	{ USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
++	/* Logitech Quickcam Pro 5000 */
++	{ USB_DEVICE(0x046d, 0x08c5), .driver_info = USB_QUIRK_RESET_RESUME },
+ 
+-	/* Logitech Webcam C600 */
+-	{ USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME },
++	/* Logitech Quickcam OEM Dell Notebook */
++	{ USB_DEVICE(0x046d, 0x08c6), .driver_info = USB_QUIRK_RESET_RESUME },
+ 
+-	/* Logitech Webcam Pro 9000 */
+-	{ USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME },
+-
+-	/* Logitech Webcam C905 */
+-	{ USB_DEVICE(0x046d, 0x080a), .driver_info = USB_QUIRK_RESET_RESUME },
+-
+-	/* Logitech Webcam C210 */
+-	{ USB_DEVICE(0x046d, 0x0819), .driver_info = USB_QUIRK_RESET_RESUME },
+-
+-	/* Logitech Webcam C260 */
+-	{ USB_DEVICE(0x046d, 0x081a), .driver_info = USB_QUIRK_RESET_RESUME },
+-
+-	/* Logitech Webcam C310 */
+-	{ USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME },
+-
+-	/* Logitech Webcam C910 */
+-	{ USB_DEVICE(0x046d, 0x0821), .driver_info = USB_QUIRK_RESET_RESUME },
+-
+-	/* Logitech Webcam C160 */
+-	{ USB_DEVICE(0x046d, 0x0824), .driver_info = USB_QUIRK_RESET_RESUME },
+-
+-	/* Logitech Webcam C270 */
+-	{ USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME },
+-
+-	/* Logitech Quickcam Pro 9000 */
+-	{ USB_DEVICE(0x046d, 0x0990), .driver_info = USB_QUIRK_RESET_RESUME },
+-
+-	/* Logitech Quickcam E3500 */
+-	{ USB_DEVICE(0x046d, 0x09a4), .driver_info = USB_QUIRK_RESET_RESUME },
+-
+-	/* Logitech Quickcam Vision Pro */
+-	{ USB_DEVICE(0x046d, 0x09a6), .driver_info = USB_QUIRK_RESET_RESUME },
++	/* Logitech Quickcam OEM Cisco VT Camera II */
++	{ USB_DEVICE(0x046d, 0x08c7), .driver_info = USB_QUIRK_RESET_RESUME },
+ 
+ 	/* Logitech Harmony 700-series */
+ 	{ USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
+@@ -162,6 +132,10 @@ static const struct usb_device_id usb_quirk_list[] = {
+ };
+ 
+ static const struct usb_device_id usb_interface_quirk_list[] = {
++	/* Logitech UVC Cameras */
++	{ USB_VENDOR_AND_INTERFACE_INFO(0x046d, USB_CLASS_VIDEO, 1, 0),
++	  .driver_info = USB_QUIRK_RESET_RESUME },
++
+ 	{ }  /* terminating entry must be last */
+ };
+ 

Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/usb-Add-quirk-detection-based-on-interface-informati.patch (from r19450, dists/sid/linux/debian/patches/bugfix/all/usb-Add-quirk-detection-based-on-interface-informati.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/usb-Add-quirk-detection-based-on-interface-informati.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/bugfix/all/usb-Add-quirk-detection-based-on-interface-informati.patch)
@@ -0,0 +1,250 @@
+From: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
+Date: Thu, 19 Jul 2012 12:39:13 +0200
+Subject: usb: Add quirk detection based on interface information
+
+commit 80da2e0df5af700518611b7d1cc4fc9945bcaf95 upstream.
+
+When a whole class of devices (possibly from a specific vendor, or
+across multiple vendors) require a quirk, explictly listing all devices
+in the class make the quirks table unnecessarily large. Fix this by
+allowing matching devices based on interface information.
+
+Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
+Acked-by: Alan Stern <stern at rowland.harvard.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ drivers/usb/core/driver.c |   38 ++++++++++--------
+ drivers/usb/core/hub.c    |   10 +++--
+ drivers/usb/core/quirks.c |   93 +++++++++++++++++++++++++++++++++++----------
+ drivers/usb/core/usb.h    |    4 ++
+ 4 files changed, 106 insertions(+), 39 deletions(-)
+
+--- a/drivers/usb/core/driver.c
++++ b/drivers/usb/core/driver.c
+@@ -541,22 +541,10 @@ int usb_match_device(struct usb_device *
+ }
+ 
+ /* returns 0 if no match, 1 if match */
+-int usb_match_one_id(struct usb_interface *interface,
+-		     const struct usb_device_id *id)
++int usb_match_one_id_intf(struct usb_device *dev,
++			  struct usb_host_interface *intf,
++			  const struct usb_device_id *id)
+ {
+-	struct usb_host_interface *intf;
+-	struct usb_device *dev;
+-
+-	/* proc_connectinfo in devio.c may call us with id == NULL. */
+-	if (id == NULL)
+-		return 0;
+-
+-	intf = interface->cur_altsetting;
+-	dev = interface_to_usbdev(interface);
+-
+-	if (!usb_match_device(dev, id))
+-		return 0;
+-
+ 	/* The interface class, subclass, and protocol should never be
+ 	 * checked for a match if the device class is Vendor Specific,
+ 	 * unless the match record specifies the Vendor ID. */
+@@ -581,6 +569,26 @@ int usb_match_one_id(struct usb_interfac
+ 
+ 	return 1;
+ }
++
++/* returns 0 if no match, 1 if match */
++int usb_match_one_id(struct usb_interface *interface,
++		     const struct usb_device_id *id)
++{
++	struct usb_host_interface *intf;
++	struct usb_device *dev;
++
++	/* proc_connectinfo in devio.c may call us with id == NULL. */
++	if (id == NULL)
++		return 0;
++
++	intf = interface->cur_altsetting;
++	dev = interface_to_usbdev(interface);
++
++	if (!usb_match_device(dev, id))
++		return 0;
++
++	return usb_match_one_id_intf(dev, intf, id);
++}
+ EXPORT_SYMBOL_GPL(usb_match_one_id);
+ 
+ /**
+--- a/drivers/usb/core/hub.c
++++ b/drivers/usb/core/hub.c
+@@ -1821,7 +1821,7 @@ static int usb_enumerate_device(struct u
+ 		if (err < 0) {
+ 			dev_err(&udev->dev, "can't read configurations, error %d\n",
+ 				err);
+-			goto fail;
++			return err;
+ 		}
+ 	}
+ 	if (udev->wusb == 1 && udev->authorized == 0) {
+@@ -1837,8 +1837,12 @@ static int usb_enumerate_device(struct u
+ 		udev->serial = usb_cache_string(udev, udev->descriptor.iSerialNumber);
+ 	}
+ 	err = usb_enumerate_device_otg(udev);
+-fail:
+-	return err;
++	if (err < 0)
++		return err;
++
++	usb_detect_interface_quirks(udev);
++
++	return 0;
+ }
+ 
+ 
+--- a/drivers/usb/core/quirks.c
++++ b/drivers/usb/core/quirks.c
+@@ -15,17 +15,22 @@
+ #include <linux/usb/quirks.h>
+ #include "usb.h"
+ 
+-/* List of quirky USB devices.  Please keep this list ordered by:
++/* Lists of quirky USB devices, split in device quirks and interface quirks.
++ * Device quirks are applied at the very beginning of the enumeration process,
++ * right after reading the device descriptor. They can thus only match on device
++ * information.
++ *
++ * Interface quirks are applied after reading all the configuration descriptors.
++ * They can match on both device and interface information.
++ *
++ * Note that the DELAY_INIT and HONOR_BNUMINTERFACES quirks do not make sense as
++ * interface quirks, as they only influence the enumeration process which is run
++ * before processing the interface quirks.
++ *
++ * Please keep the lists ordered by:
+  * 	1) Vendor ID
+  * 	2) Product ID
+  * 	3) Class ID
+- *
+- * as we want specific devices to be overridden first, and only after that, any
+- * class specific quirks.
+- *
+- * Right now the logic aborts if it finds a valid device in the table, we might
+- * want to change that in the future if it turns out that a whole class of
+- * devices is broken...
+  */
+ static const struct usb_device_id usb_quirk_list[] = {
+ 	/* CBM - Flash disk */
+@@ -156,16 +161,53 @@ static const struct usb_device_id usb_qu
+ 	{ }  /* terminating entry must be last */
+ };
+ 
+-static const struct usb_device_id *find_id(struct usb_device *udev)
++static const struct usb_device_id usb_interface_quirk_list[] = {
++	{ }  /* terminating entry must be last */
++};
++
++static bool usb_match_any_interface(struct usb_device *udev,
++				    const struct usb_device_id *id)
++{
++	unsigned int i;
++
++	for (i = 0; i < udev->descriptor.bNumConfigurations; ++i) {
++		struct usb_host_config *cfg = &udev->config[i];
++		unsigned int j;
++
++		for (j = 0; j < cfg->desc.bNumInterfaces; ++j) {
++			struct usb_interface_cache *cache;
++			struct usb_host_interface *intf;
++
++			cache = cfg->intf_cache[j];
++			if (cache->num_altsetting == 0)
++				continue;
++
++			intf = &cache->altsetting[0];
++			if (usb_match_one_id_intf(udev, intf, id))
++				return true;
++		}
++	}
++
++	return false;
++}
++
++static u32 __usb_detect_quirks(struct usb_device *udev,
++			       const struct usb_device_id *id)
+ {
+-	const struct usb_device_id *id = usb_quirk_list;
++	u32 quirks = 0;
+ 
+-	for (; id->idVendor || id->bDeviceClass || id->bInterfaceClass ||
+-			id->driver_info; id++) {
+-		if (usb_match_device(udev, id))
+-			return id;
++	for (; id->match_flags; id++) {
++		if (!usb_match_device(udev, id))
++			continue;
++
++		if ((id->match_flags & USB_DEVICE_ID_MATCH_INT_INFO) &&
++		    !usb_match_any_interface(udev, id))
++			continue;
++
++		quirks |= (u32)(id->driver_info);
+ 	}
+-	return NULL;
++
++	return quirks;
+ }
+ 
+ /*
+@@ -173,14 +215,10 @@ static const struct usb_device_id *find_
+  */
+ void usb_detect_quirks(struct usb_device *udev)
+ {
+-	const struct usb_device_id *id = usb_quirk_list;
+-
+-	id = find_id(udev);
+-	if (id)
+-		udev->quirks = (u32)(id->driver_info);
++	udev->quirks = __usb_detect_quirks(udev, usb_quirk_list);
+ 	if (udev->quirks)
+ 		dev_dbg(&udev->dev, "USB quirks for this device: %x\n",
+-				udev->quirks);
++			udev->quirks);
+ 
+ 	/* For the present, all devices default to USB-PERSIST enabled */
+ #if 0		/* was: #ifdef CONFIG_PM */
+@@ -197,3 +235,16 @@ void usb_detect_quirks(struct usb_device
+ 		udev->persist_enabled = 1;
+ #endif	/* CONFIG_PM */
+ }
++
++void usb_detect_interface_quirks(struct usb_device *udev)
++{
++	u32 quirks;
++
++	quirks = __usb_detect_quirks(udev, usb_interface_quirk_list);
++	if (quirks == 0)
++		return;
++
++	dev_dbg(&udev->dev, "USB interface quirks for this device: %x\n",
++		quirks);
++	udev->quirks |= quirks;
++}
+--- a/drivers/usb/core/usb.h
++++ b/drivers/usb/core/usb.h
+@@ -24,6 +24,7 @@ extern void usb_disable_device(struct us
+ extern int usb_deauthorize_device(struct usb_device *);
+ extern int usb_authorize_device(struct usb_device *);
+ extern void usb_detect_quirks(struct usb_device *udev);
++extern void usb_detect_interface_quirks(struct usb_device *udev);
+ extern int usb_remove_device(struct usb_device *udev);
+ 
+ extern int usb_get_device_descriptor(struct usb_device *dev,
+@@ -35,6 +36,9 @@ extern int usb_set_configuration(struct
+ extern int usb_choose_configuration(struct usb_device *udev);
+ 
+ extern void usb_kick_khubd(struct usb_device *dev);
++extern int usb_match_one_id_intf(struct usb_device *dev,
++				 struct usb_host_interface *intf,
++				 const struct usb_device_id *id);
+ extern int usb_match_device(struct usb_device *dev,
+ 			    const struct usb_device_id *id);
+ extern void usb_forced_unbind_intf(struct usb_interface *intf);

Copied: dists/squeeze-backports/linux/debian/patches/bugfix/all/use-clamp_t-in-UNAME26-fix.patch (from r19450, dists/sid/linux/debian/patches/bugfix/all/use-clamp_t-in-UNAME26-fix.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/all/use-clamp_t-in-UNAME26-fix.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/bugfix/all/use-clamp_t-in-UNAME26-fix.patch)
@@ -0,0 +1,32 @@
+From: Kees Cook <keescook at chromium.org>
+Date: Fri, 19 Oct 2012 18:45:53 -0700
+Subject: [2/2] use clamp_t in UNAME26 fix
+
+commit 31fd84b95eb211d5db460a1dda85e004800a7b52 upstream.
+
+The min/max call needed to have explicit types on some architectures
+(e.g. mn10300). Use clamp_t instead to avoid the warning:
+
+  kernel/sys.c: In function 'override_release':
+  kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a cast [enabled by default]
+
+Reported-by: Fengguang Wu <fengguang.wu at intel.com>
+Signed-off-by: Kees Cook <keescook at chromium.org>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+ kernel/sys.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/sys.c b/kernel/sys.c
+index 01865c6..e6e0ece 100644
+--- a/kernel/sys.c
++++ b/kernel/sys.c
+@@ -1284,7 +1284,7 @@ static int override_release(char __user *release, size_t len)
+ 			rest++;
+ 		}
+ 		v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 40;
+-		copy = min(sizeof(buf), max_t(size_t, 1, len));
++		copy = clamp_t(size_t, len, 1, sizeof(buf));
+ 		copy = scnprintf(buf, copy, "2.6.%u%s", v, rest);
+ 		ret = copy_to_user(release, buf, copy + 1);
+ 	}

Copied: dists/squeeze-backports/linux/debian/patches/bugfix/alpha/alpha-use-large-data-model.diff (from r19450, dists/sid/linux/debian/patches/bugfix/alpha/alpha-use-large-data-model.diff)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/alpha/alpha-use-large-data-model.diff	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/bugfix/alpha/alpha-use-large-data-model.diff)
@@ -0,0 +1,13 @@
+diff --git a/arch/alpha/Makefile b/arch/alpha/Makefile
+index 4759fe7..b5d44bd 100644
+--- a/arch/alpha/Makefile
++++ b/arch/alpha/Makefile
+@@ -12,7 +12,7 @@ NM := $(NM) -B
+ 
+ LDFLAGS_vmlinux	:= -static -N #-relax
+ CHECKFLAGS	+= -D__alpha__ -m64
+-cflags-y	:= -pipe -mno-fp-regs -ffixed-8 -msmall-data
++cflags-y	:= -pipe -mno-fp-regs -ffixed-8 -mlarge-data
+ cflags-y	+= $(call cc-option, -fno-jump-tables)
+ 
+ cpuflags-$(CONFIG_ALPHA_EV4)		:= -mcpu=ev4

Copied: dists/squeeze-backports/linux/debian/patches/bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch (from r19450, dists/sid/linux/debian/patches/bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch)
@@ -0,0 +1,31 @@
+From: David Henningsson <david.henningsson at canonical.com>
+Date: Tue, 10 Apr 2012 13:05:29 +0200
+Subject: ALSA: hda - Fix oops caused by recent commit "Fix internal mic for
+ Lenovo Ideapad U300s"
+
+commit 83b0c6ba999643ee8ad6329f26e1cdc870e1a920 upstream.
+
+Make sure we don't dereference the "quirk" pointer when it is null.
+
+Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
+Signed-off-by: David Henningsson <david.henningsson at canonical.com>
+Signed-off-by: Takashi Iwai <tiwai at suse.de>
+---
+ sound/pci/hda/patch_conexant.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
+index cbe115b..abb59f4 100644
+--- a/sound/pci/hda/patch_conexant.c
++++ b/sound/pci/hda/patch_conexant.c
+@@ -4441,7 +4441,9 @@ static void apply_fixup(struct hda_codec *codec,
+ 	struct conexant_spec *spec = codec->spec;
+ 
+ 	quirk = snd_pci_quirk_lookup(codec->bus->pci, quirk);
+-	if (quirk && table[quirk->value]) {
++	if (!quirk)
++		return;
++	if (table[quirk->value]) {
+ 		snd_printdd(KERN_INFO "hda_codec: applying pincfg for %s\n",
+ 			    quirk->name);
+ 		apply_pincfg(codec, table[quirk->value]);

Copied: dists/squeeze-backports/linux/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch (from r19450, dists/sid/linux/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch)
@@ -0,0 +1,35 @@
+From: "K. Y. Srinivasan" <kys at microsoft.com>
+Date: Tue, 2 Oct 2012 11:03:31 -0700
+Subject: [SCSI] storvsc: Account for in-transit packets in the RESET path
+
+commit 5c1b10ab7f93d24f29b5630286e323d1c5802d5c upstream.
+
+Properly account for I/O in transit before returning from the RESET call.
+In the absense of this patch, we could have a situation where the host may
+respond to a command that was issued prior to the issuance of the RESET
+command at some arbitrary time after responding to the RESET command.
+Currently, the host does not do anything with the RESET command.
+
+Signed-off-by: K. Y. Srinivasan <kys at microsoft.com>
+Signed-off-by: James Bottomley <JBottomley at Parallels.com>
+---
+ drivers/scsi/storvsc_drv.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
+index 528d52b..0144078 100644
+--- a/drivers/scsi/storvsc_drv.c
++++ b/drivers/scsi/storvsc_drv.c
+@@ -1221,7 +1221,12 @@ static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd)
+ 	/*
+ 	 * At this point, all outstanding requests in the adapter
+ 	 * should have been flushed out and return to us
++	 * There is a potential race here where the host may be in
++	 * the process of responding when we return from here.
++	 * Just wait for all in-transit packets to be accounted for
++	 * before we return from here.
+ 	 */
++	storvsc_wait_to_drain(stor_device);
+ 
+ 	return SUCCESS;
+ }

Copied: dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-i8xx-interrupt-handler.patch (from r19450, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-i8xx-interrupt-handler.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/bugfix/x86/drm-i915-i8xx-interrupt-handler.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-i8xx-interrupt-handler.patch)
@@ -0,0 +1,250 @@
+From: Chris Wilson <chris at chris-wilson.co.uk>
+Date: Sun, 22 Apr 2012 21:13:57 +0100
+Subject: drm/i915: i8xx interrupt handler
+Bug-Debian: http://bugs.debian.org/655152
+
+commit c2798b19bac2538393fc932bfbe59807a4734b3e upstream.
+
+gen2 hardware has some significant differences from the other interrupt
+routines that were glossed over and then forgotten about in the
+transition to KMS. Such as
+
+- 16bit IIR
+- PendingFlip status bit
+
+This patch reintroduces a handler specifically for gen2 for the purpose
+of handling pageflips correctly, simplifying code in the process.
+
+v2: Also fixup ring get/put irq to only access 16bit registers (Daniel)
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=24202
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41793
+Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
+[danvet: use posting_read16 in intel_ringbuffer.c and kill _driver
+from the function names.]
+Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
+[jn: check for gen2 directly in i915_enable_irq and i915_disable_irq
+ to simplify backport]
+Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
+---
+ drivers/gpu/drm/i915/i915_irq.c         |  161 ++++++++++++++++++++++++++++++-
+ drivers/gpu/drm/i915/intel_ringbuffer.c |   18 +++-
+ 2 files changed, 171 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
+index 578ddfc..ac5a50d 100644
+--- a/drivers/gpu/drm/i915/i915_irq.c
++++ b/drivers/gpu/drm/i915/i915_irq.c
+@@ -2083,6 +2083,152 @@ static void i915_driver_irq_uninstall(struct drm_device * dev)
+ 	I915_WRITE(IIR, I915_READ(IIR));
+ }
+ 
++static void i8xx_irq_preinstall(struct drm_device * dev)
++{
++	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
++	int pipe;
++
++	atomic_set(&dev_priv->irq_received, 0);
++
++	for_each_pipe(pipe)
++		I915_WRITE(PIPESTAT(pipe), 0);
++	I915_WRITE16(IMR, 0xffff);
++	I915_WRITE16(IER, 0x0);
++	POSTING_READ16(IER);
++}
++
++static int i8xx_irq_postinstall(struct drm_device *dev)
++{
++	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
++
++	dev_priv->vblank_pipe = DRM_I915_VBLANK_PIPE_A | DRM_I915_VBLANK_PIPE_B;
++
++	dev_priv->pipestat[0] = 0;
++	dev_priv->pipestat[1] = 0;
++
++	I915_WRITE16(EMR,
++		     ~(I915_ERROR_PAGE_TABLE | I915_ERROR_MEMORY_REFRESH));
++
++	/* Unmask the interrupts that we always want on. */
++	dev_priv->irq_mask =
++		~(I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
++		  I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
++		  I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
++		  I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT |
++		  I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT);
++	I915_WRITE16(IMR, dev_priv->irq_mask);
++
++	I915_WRITE16(IER,
++		     I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
++		     I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
++		     I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT |
++		     I915_USER_INTERRUPT);
++	POSTING_READ16(IER);
++
++	return 0;
++}
++
++static irqreturn_t i8xx_irq_handler(DRM_IRQ_ARGS)
++{
++	struct drm_device *dev = (struct drm_device *) arg;
++	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
++	struct drm_i915_master_private *master_priv;
++	u16 iir, new_iir;
++	u32 pipe_stats[2];
++	unsigned long irqflags;
++	int irq_received;
++	int pipe;
++	u16 flip_mask =
++		I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
++		I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT;
++
++	atomic_inc(&dev_priv->irq_received);
++
++	iir = I915_READ16(IIR);
++	if (iir == 0)
++		return IRQ_NONE;
++
++	while (iir & ~flip_mask) {
++		/* Can't rely on pipestat interrupt bit in iir as it might
++		 * have been cleared after the pipestat interrupt was received.
++		 * It doesn't set the bit in iir again, but it still produces
++		 * interrupts (for non-MSI).
++		 */
++		spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
++		if (iir & I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT)
++			i915_handle_error(dev, false);
++
++		for_each_pipe(pipe) {
++			int reg = PIPESTAT(pipe);
++			pipe_stats[pipe] = I915_READ(reg);
++
++			/*
++			 * Clear the PIPE*STAT regs before the IIR
++			 */
++			if (pipe_stats[pipe] & 0x8000ffff) {
++				if (pipe_stats[pipe] & PIPE_FIFO_UNDERRUN_STATUS)
++					DRM_DEBUG_DRIVER("pipe %c underrun\n",
++							 pipe_name(pipe));
++				I915_WRITE(reg, pipe_stats[pipe]);
++				irq_received = 1;
++			}
++		}
++		spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
++
++		I915_WRITE16(IIR, iir & ~flip_mask);
++		new_iir = I915_READ16(IIR); /* Flush posted writes */
++
++		if (dev->primary->master) {
++			master_priv = dev->primary->master->driver_priv;
++			if (master_priv->sarea_priv)
++				master_priv->sarea_priv->last_dispatch =
++					READ_BREADCRUMB(dev_priv);
++		}
++
++		if (iir & I915_USER_INTERRUPT)
++			notify_ring(dev, &dev_priv->ring[RCS]);
++
++		if (pipe_stats[0] & PIPE_VBLANK_INTERRUPT_STATUS &&
++		    drm_handle_vblank(dev, 0)) {
++			if (iir & I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT) {
++				intel_prepare_page_flip(dev, 0);
++				intel_finish_page_flip(dev, 0);
++				flip_mask &= ~I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT;
++			}
++		}
++
++		if (pipe_stats[1] & PIPE_VBLANK_INTERRUPT_STATUS &&
++		    drm_handle_vblank(dev, 1)) {
++			if (iir & I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT) {
++				intel_prepare_page_flip(dev, 1);
++				intel_finish_page_flip(dev, 1);
++				flip_mask &= ~I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT;
++			}
++		}
++
++		iir = new_iir;
++	}
++
++	return IRQ_HANDLED;
++}
++
++static void i8xx_irq_uninstall(struct drm_device * dev)
++{
++	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
++	int pipe;
++
++	dev_priv->vblank_pipe = 0;
++
++	for_each_pipe(pipe) {
++		/* Clear enable bits; then clear status bits */
++		I915_WRITE(PIPESTAT(pipe), 0);
++		I915_WRITE(PIPESTAT(pipe), I915_READ(PIPESTAT(pipe)));
++	}
++	I915_WRITE16(IMR, 0xffff);
++	I915_WRITE16(IER, 0x0);
++	I915_WRITE16(IIR, I915_READ16(IIR));
++}
++
+ void intel_irq_init(struct drm_device *dev)
+ {
+ 	dev->driver->get_vblank_counter = i915_get_vblank_counter;
+@@ -2114,10 +2260,17 @@ void intel_irq_init(struct drm_device *dev)
+ 		dev->driver->enable_vblank = ironlake_enable_vblank;
+ 		dev->driver->disable_vblank = ironlake_disable_vblank;
+ 	} else {
+-		dev->driver->irq_preinstall = i915_driver_irq_preinstall;
+-		dev->driver->irq_postinstall = i915_driver_irq_postinstall;
+-		dev->driver->irq_uninstall = i915_driver_irq_uninstall;
+-		dev->driver->irq_handler = i915_driver_irq_handler;
++		if (INTEL_INFO(dev)->gen == 2) {
++			dev->driver->irq_preinstall = i8xx_irq_preinstall;
++			dev->driver->irq_postinstall = i8xx_irq_postinstall;
++			dev->driver->irq_handler = i8xx_irq_handler;
++			dev->driver->irq_uninstall = i8xx_irq_uninstall;
++		} else {
++			dev->driver->irq_preinstall = i915_driver_irq_preinstall;
++			dev->driver->irq_postinstall = i915_driver_irq_postinstall;
++			dev->driver->irq_uninstall = i915_driver_irq_uninstall;
++			dev->driver->irq_handler = i915_driver_irq_handler;
++		}
+ 		dev->driver->enable_vblank = i915_enable_vblank;
+ 		dev->driver->disable_vblank = i915_disable_vblank;
+ 	}
+diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
+index 19085c0..57a7363 100644
+--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
++++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
+@@ -689,16 +689,26 @@ static void
+ i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask)
+ {
+ 	dev_priv->irq_mask &= ~mask;
+-	I915_WRITE(IMR, dev_priv->irq_mask);
+-	POSTING_READ(IMR);
++	if (IS_GEN2(dev_priv->dev)) {
++		I915_WRITE16(IMR, dev_priv->irq_mask);
++		POSTING_READ16(IMR);
++	} else {
++		I915_WRITE(IMR, dev_priv->irq_mask);
++		POSTING_READ(IMR);
++	}
+ }
+ 
+ static void
+ i915_disable_irq(drm_i915_private_t *dev_priv, u32 mask)
+ {
+ 	dev_priv->irq_mask |= mask;
+-	I915_WRITE(IMR, dev_priv->irq_mask);
+-	POSTING_READ(IMR);
++	if (IS_GEN2(dev_priv->dev)) {
++		I915_WRITE16(IMR, dev_priv->irq_mask);
++		POSTING_READ16(IMR);
++	} else {
++		I915_WRITE(IMR, dev_priv->irq_mask);
++		POSTING_READ(IMR);
++	}
+ }
+ 
+ static bool
+-- 
+1.7.10.4
+

Copied: dists/squeeze-backports/linux/debian/patches/debian/debugfs-set-default-mode-to-700.patch (from r19450, dists/sid/linux/debian/patches/debian/debugfs-set-default-mode-to-700.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/debian/debugfs-set-default-mode-to-700.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/debian/debugfs-set-default-mode-to-700.patch)
@@ -0,0 +1,27 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: debugfs: Set default mode to 700
+Bug-Debian: http://bugs.debian.org/681418
+
+As discussed here
+<http://lists.linux-foundation.org/pipermail/ksummit-2012-discuss/2012-July/000891.html>.
+
+Mounting of debugfs is a significant security liability, but there are
+applications that depend on some interfaces based on debugfs and they
+(or their packages) will mount it automatically anyway.
+
+Setting the default mode for the debugfs root to 700 (accessible
+to root only) should leave it functional, since most such applications
+will require root anyway, and users can override it to relax
+permissions if they really don't care about the security problems.
+
+--- a/fs/debugfs/inode.c
++++ b/fs/debugfs/inode.c
+@@ -28,7 +28,7 @@
+ #include <linux/magic.h>
+ #include <linux/slab.h>
+ 
+-#define DEBUGFS_DEFAULT_MODE	0755
++#define DEBUGFS_DEFAULT_MODE	0700
+ 
+ static struct vfsmount *debugfs_mount;
+ static int debugfs_mount_count;

Copied: dists/squeeze-backports/linux/debian/patches/debian/fs-writeback-avoid-ABI-change-in-3.2.32.patch (from r19450, dists/sid/linux/debian/patches/debian/fs-writeback-avoid-ABI-change-in-3.2.32.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/debian/fs-writeback-avoid-ABI-change-in-3.2.32.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/debian/fs-writeback-avoid-ABI-change-in-3.2.32.patch)
@@ -0,0 +1,25 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: fs-writeback: Avoid ABI changes in 3.2.32
+
+For some reason, adding an EXPORT_SYMBOL in the middle of fs-writeback.c
+changes versions for the later exports.  I can't think why this is, and
+I'm sure this normally doesn't cause any problems, but I'm not going to
+spend time investigating further.
+
+--- a/fs/fs-writeback.c
++++ b/fs/fs-writeback.c
+@@ -63,7 +63,6 @@ int writeback_in_progress(struct backing
+ {
+ 	return test_bit(BDI_writeback_running, &bdi->state);
+ }
+-EXPORT_SYMBOL(writeback_in_progress);
+ 
+ static inline struct backing_dev_info *inode_to_bdi(struct inode *inode)
+ {
+@@ -1406,3 +1405,6 @@ int sync_inode_metadata(struct inode *in
+ 	return sync_inode(inode, &wbc);
+ }
+ EXPORT_SYMBOL(sync_inode_metadata);
++
++/* Placed at the bottom because it changes versions for the other symbols(!) */
++EXPORT_SYMBOL(writeback_in_progress);

Copied: dists/squeeze-backports/linux/debian/patches/debian/hid-avoid-ABI-change-in-3.2.31.patch (from r19450, dists/sid/linux/debian/patches/debian/hid-avoid-ABI-change-in-3.2.31.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/debian/hid-avoid-ABI-change-in-3.2.31.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/debian/hid-avoid-ABI-change-in-3.2.31.patch)
@@ -0,0 +1,41 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: hid: Avoid ABI change in 3.2.31
+
+Commit b6787242f32700377d3da3b8d788ab3928bab849 ('HID: hidraw: add
+proper error handling to raw event reporting') changed the return type
+of hid_report_raw_event() and hidraw_report_event() from void to int
+(an error number).  Any existing OOT callers are going to ignore this
+value, whether or not they get recompiled.  Therefore, hide the change
+from genksyms.
+--- a/include/linux/hid.h
++++ b/include/linux/hid.h
+@@ -875,8 +875,14 @@ static inline int hid_hw_power(struct hi
+ 	return hdev->ll_driver->power ? hdev->ll_driver->power(hdev, level) : 0;
+ }
+ 
++#ifdef __GENKSYMS__
++/* Old callers will ignore the return value even if we change the return type */
++void hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size,
++		int interrupt);
++#else
+ int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size,
+ 		int interrupt);
++#endif
+ 
+ extern int hid_generic_init(void);
+ extern void hid_generic_exit(void);
+--- a/include/linux/hidraw.h
++++ b/include/linux/hidraw.h
+@@ -76,7 +76,12 @@ struct hidraw_list {
+ #ifdef CONFIG_HIDRAW
+ int hidraw_init(void);
+ void hidraw_exit(void);
++#ifdef __GENKSYMS__
++/* Old callers will ignore the return value even if we change the return type */
++void hidraw_report_event(struct hid_device *, u8 *, int);
++#else
+ int hidraw_report_event(struct hid_device *, u8 *, int);
++#endif
+ int hidraw_connect(struct hid_device *);
+ void hidraw_disconnect(struct hid_device *);
+ #else

Copied: dists/squeeze-backports/linux/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch (from r19450, dists/sid/linux/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch)
@@ -0,0 +1,25 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: iwlwifi: Do not request unreleased firmware for IWL6000
+Bug-Debian: http://bugs.debian.org/689416
+
+The iwlwifi driver currently supports firmware API versions 4-6 for
+these devices.  It will request the file for the latest supported
+version and then fall back to earlier versions.  However, the latest
+version that has actually been released is 4, so we expect the
+requests for versions 6 and then 5 to fail.
+
+The installer appears to report any failed request, and it is probably
+not easy to detect that this particular failure is harmless.  So stop
+requesting the unreleased firmware.
+
+--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
++++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
+@@ -46,7 +46,7 @@
+ #include "iwl-cfg.h"
+ 
+ /* Highest firmware API version supported */
+-#define IWL6000_UCODE_API_MAX 6
++#define IWL6000_UCODE_API_MAX 4 /* v5-6 are supported but not released */
+ #define IWL6050_UCODE_API_MAX 5
+ #define IWL6000G2_UCODE_API_MAX 6
+ #define IWL6035_UCODE_API_MAX 6

Copied: dists/squeeze-backports/linux/debian/patches/debian/perf-hide-abi-change-in-3.2.30.patch (from r19450, dists/sid/linux/debian/patches/debian/perf-hide-abi-change-in-3.2.30.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/debian/perf-hide-abi-change-in-3.2.30.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/debian/perf-hide-abi-change-in-3.2.30.patch)
@@ -0,0 +1,23 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: perf: Hide ABI change in 3.2.30
+
+<linux/perf_events.h> is included by many source files but we don't
+want to bump the ABI number again right now.
+
+The new member (atomic_long_t refcount) has the same size as the old
+(struct file *filp) and neither should be needed by OOT modules (if
+they make use of perf_events at all).  So pretend this didn't happen.
+--- a/include/linux/perf_event.h
++++ b/include/linux/perf_event.h
+@@ -794,7 +794,11 @@ struct perf_event {
+ 	struct hw_perf_event		hw;
+ 
+ 	struct perf_event_context	*ctx;
++#ifdef __GENKSYMS__
++	struct file			*filp;
++#else
+ 	atomic_long_t			refcount;
++#endif
+ 
+ 	/*
+ 	 * These accumulate total time (in nanoseconds) that children

Modified: dists/squeeze-backports/linux/debian/patches/debian/version.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/debian/version.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/debian/version.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,90 +1,250 @@
-From: Bastian Blank <waldi at debian.org>
-Subject: Add debian version information to kernel version string
-Date: Sun, 20 May 2007 11:46:51 +0200
-
-Include the package version in /proc/version and the initial log
-banner.
-
-Determine the target distribution ($DISTRIBUTION) with lsb_release,
-defaulting to Debian.
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: Include package version along with kernel release in stack traces
+Date: Tue, 24 Jul 2012 03:13:10 +0100
 
 For distribution binary packages we assume
-$DISTRIBUTION_OFFICIAL_BUILD is set.  Add $DISTRIBUTION and
-$DISTRIBUTION_VERSION after the kernel version (UTS_RELEASE), and
-replace the account name used to build the package with
-$DISTRIBUTION_UPLOADER.
-
-[bwh: Changed $DISTRIBUTION_UPLOADER to $DISTRIBUTION_MAINTAINER.]
+$DISTRIBUTION_OFFICIAL_BUILD, $DISTRIBUTOR and $DISTRIBUTION_VERSION
+are set.
 
-For custom packages built from a linux-source package, read the
-package version from version.$DISTRIBUTION and add that after
-the kernel version string.
-
---- a/init/version.c
-+++ b/init/version.c
-@@ -37,12 +37,31 @@
- };
- EXPORT_SYMBOL_GPL(init_uts_ns);
- 
--/* FIXED STRINGS! Don't touch! */
- const char linux_banner[] =
--	"Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
--	LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
-+	"Linux version " UTS_RELEASE
-+#ifdef LINUX_COMPILE_DISTRIBUTION_OFFICIAL_BUILD
-+	" (" LINUX_COMPILE_DISTRIBUTION " "
-+	     LINUX_COMPILE_DISTRIBUTION_VERSION ")"
-+	" (" LINUX_COMPILE_DISTRIBUTION_MAINTAINER ")"
-+#else
-+# ifdef LINUX_COMPILE_DISTRIBUTION_VERSION
-+	" (" LINUX_COMPILE_DISTRIBUTION_VERSION ")"
-+# endif
-+	" (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")"
-+#endif
-+	" (" LINUX_COMPILER ")"
-+	" " UTS_VERSION "\n";
- 
- const char linux_proc_banner[] =
- 	"%s version %s"
-+#ifdef LINUX_COMPILE_DISTRIBUTION_OFFICIAL_BUILD
-+	" (" LINUX_COMPILE_DISTRIBUTION " "
-+	     LINUX_COMPILE_DISTRIBUTION_VERSION ")"
-+	" (" LINUX_COMPILE_DISTRIBUTION_MAINTAINER ")"
-+#else
-+# ifdef LINUX_COMPILE_DISTRIBUTION_VERSION
-+	" (" LINUX_COMPILE_DISTRIBUTION_VERSION ")"
-+# endif
- 	" (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")"
-+#endif
- 	" (" LINUX_COMPILER ") %s\n";
---- a/scripts/mkcompile_h
-+++ b/scripts/mkcompile_h
-@@ -73,8 +73,26 @@
- 
-   echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\"
- 
--  echo \#define LINUX_COMPILE_BY \"`echo $LINUX_COMPILE_BY | $UTS_TRUNCATE`\"
--  echo \#define LINUX_COMPILE_HOST \"`echo $LINUX_COMPILE_HOST | $UTS_TRUNCATE`\"
-+  DISTRIBUTION=$(lsb_release -is 2>/dev/null)
-+  DISTRIBUTION=${DISTRIBUTION:-Debian}
-+  echo \#define LINUX_COMPILE_DISTRIBUTION \"$DISTRIBUTION\"
+--- a/Makefile
++++ b/Makefile
+@@ -976,7 +976,7 @@ endif
+ prepare2: prepare3 outputmakefile asm-generic
+ 
+ prepare1: prepare2 include/linux/version.h include/generated/utsrelease.h \
+-                   include/config/auto.conf
++                   include/config/auto.conf include/generated/package.h
+ 	$(cmd_crmodverdir)
+ 
+ archprepare: archscripts prepare1 scripts_basic
+@@ -1008,12 +1008,25 @@ define filechk_version.h
+ 	echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';)
+ endef
+ 
++ifneq ($(DISTRIBUTION_OFFICIAL_BUILD),)
++define filechk_package.h
++	echo \#define LINUX_PACKAGE_ID \" $(DISTRIBUTOR) $(DISTRIBUTION_VERSION)\"
++endef
++else
++define filechk_package.h
++	echo \#define LINUX_PACKAGE_ID \"\"
++endef
++endif
 +
-+  if [ "$DISTRIBUTION_OFFICIAL_BUILD" ]; then
-+    echo \#define LINUX_COMPILE_DISTRIBUTION_OFFICIAL_BUILD
-+    echo \#define LINUX_COMPILE_DISTRIBUTION_MAINTAINER \"$DISTRIBUTION_MAINTAINER\"
-+    echo \#define LINUX_COMPILE_DISTRIBUTION_VERSION \"$DISTRIBUTION_VERSION\"
-+    echo \#define LINUX_COMPILE_BY \"unknown\"
-+    echo \#define LINUX_COMPILE_HOST \"$DISTRIBUTION\"
-+  else
-+    if [ -e version.$DISTRIBUTION ]; then
-+      echo \#define LINUX_COMPILE_DISTRIBUTION_VERSION \"$(cut -d" " -f1 version.$DISTRIBUTION)\"
-+    else
-+      echo \#define LINUX_COMPILE_DISTRIBUTION_VERSION \"unknown\"
-+    fi
+ include/linux/version.h: $(srctree)/Makefile FORCE
+ 	$(call filechk,version.h)
+ 
+ include/generated/utsrelease.h: include/config/kernel.release FORCE
+ 	$(call filechk,utsrelease.h)
+ 
++include/generated/package.h: $(srctree)/Makefile FORCE
++	$(call filechk,package.h)
 +
-+    echo \#define LINUX_COMPILE_BY \"`echo $LINUX_COMPILE_BY | $UTS_TRUNCATE`\"
-+    echo \#define LINUX_COMPILE_HOST \"`echo $LINUX_COMPILE_HOST | $UTS_TRUNCATE`\"
-+  fi
+ PHONY += headerdep
+ headerdep:
+ 	$(Q)find $(srctree)/include/ -name '*.h' | xargs --max-args 1 \
+--- a/arch/s390/kernel/traps.c
++++ b/arch/s390/kernel/traps.c
+@@ -33,6 +33,7 @@
+ #include <linux/kprobes.h>
+ #include <linux/bug.h>
+ #include <linux/utsname.h>
++#include <generated/package.h>
+ #include <asm/system.h>
+ #include <asm/uaccess.h>
+ #include <asm/io.h>
+@@ -166,11 +167,12 @@ static void show_last_breaking_event(str
+  */
+ void dump_stack(void)
+ {
+-	printk("CPU: %d %s %s %.*s\n",
++	printk("CPU: %d %s %s %.*s%s\n",
+ 	       task_thread_info(current)->cpu, print_tainted(),
+ 	       init_utsname()->release,
+ 	       (int)strcspn(init_utsname()->version, " "),
+-	       init_utsname()->version);
++	       init_utsname()->version,
++	       LINUX_PACKAGE_ID);
+ 	printk("Process %s (pid: %d, task: %p, ksp: %p)\n",
+ 	       current->comm, current->pid, current,
+ 	       (void *) current->thread.ksp);
+@@ -217,11 +219,12 @@ void show_registers(struct pt_regs *regs
+ void show_regs(struct pt_regs *regs)
+ {
+ 	print_modules();
+-	printk("CPU: %d %s %s %.*s\n",
++	printk("CPU: %d %s %s %.*s%s\n",
+ 	       task_thread_info(current)->cpu, print_tainted(),
+ 	       init_utsname()->release,
+ 	       (int)strcspn(init_utsname()->version, " "),
+-	       init_utsname()->version);
++	       init_utsname()->version,
++	       LINUX_PACKAGE_ID);
+ 	printk("Process %s (pid: %d, task: %p, ksp: %p)\n",
+ 	       current->comm, current->pid, current,
+ 	       (void *) current->thread.ksp);
+--- a/arch/x86/um/sysrq_64.c
++++ b/arch/x86/um/sysrq_64.c
+@@ -8,6 +8,7 @@
+ #include <linux/module.h>
+ #include <linux/sched.h>
+ #include <linux/utsname.h>
++#include <generated/package.h>
+ #include <asm/current.h>
+ #include <asm/ptrace.h>
+ #include "sysrq.h"
+@@ -16,8 +17,9 @@ void __show_regs(struct pt_regs *regs)
+ {
+ 	printk("\n");
+ 	print_modules();
+-	printk(KERN_INFO "Pid: %d, comm: %.20s %s %s\n", task_pid_nr(current),
+-		current->comm, print_tainted(), init_utsname()->release);
++	printk(KERN_INFO "Pid: %d, comm: %.20s %s %s%s\n", task_pid_nr(current),
++		current->comm, print_tainted(), init_utsname()->release,
++		LINUX_PACKAGE_ID);
+ 	printk(KERN_INFO "RIP: %04lx:[<%016lx>]\n", PT_REGS_CS(regs) & 0xffff,
+ 	       PT_REGS_RIP(regs));
+ 	printk(KERN_INFO "RSP: %016lx  EFLAGS: %08lx\n", PT_REGS_SP(regs),
+--- a/arch/x86/kernel/process.c
++++ b/arch/x86/kernel/process.c
+@@ -14,6 +14,7 @@
+ #include <linux/utsname.h>
+ #include <trace/events/power.h>
+ #include <linux/hw_breakpoint.h>
++#include <generated/package.h>
+ #include <asm/cpu.h>
+ #include <asm/system.h>
+ #include <asm/apic.h>
+@@ -105,11 +106,12 @@ void show_regs_common(void)
+ 	board = dmi_get_system_info(DMI_BOARD_NAME);
+ 
+ 	printk(KERN_CONT "\n");
+-	printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s",
++	printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s%s",
+ 		current->pid, current->comm, print_tainted(),
+ 		init_utsname()->release,
+ 		(int)strcspn(init_utsname()->version, " "),
+-		init_utsname()->version);
++		init_utsname()->version,
++		LINUX_PACKAGE_ID);
+ 	printk(KERN_CONT " %s %s", vendor, product);
+ 	if (board)
+ 		printk(KERN_CONT "/%s", board);
+--- a/arch/x86/kernel/dumpstack.c
++++ b/arch/x86/kernel/dumpstack.c
+@@ -15,6 +15,7 @@
+ #include <linux/bug.h>
+ #include <linux/nmi.h>
+ #include <linux/sysfs.h>
++#include <generated/package.h>
+ 
+ #include <asm/stacktrace.h>
+ 
+@@ -185,11 +186,12 @@ void dump_stack(void)
+ 	unsigned long stack;
+ 
+ 	bp = stack_frame(current, NULL);
+-	printk("Pid: %d, comm: %.20s %s %s %.*s\n",
++	printk("Pid: %d, comm: %.20s %s %s %.*s%s\n",
+ 		current->pid, current->comm, print_tainted(),
+ 		init_utsname()->release,
+ 		(int)strcspn(init_utsname()->version, " "),
+-		init_utsname()->version);
++		init_utsname()->version,
++		LINUX_PACKAGE_ID);
+ 	show_trace(NULL, NULL, &stack, bp);
+ }
+ EXPORT_SYMBOL(dump_stack);
+--- a/arch/ia64/kernel/process.c
++++ b/arch/ia64/kernel/process.c
+@@ -29,6 +29,7 @@
+ #include <linux/kdebug.h>
+ #include <linux/utsname.h>
+ #include <linux/tracehook.h>
++#include <generated/package.h>
+ 
+ #include <asm/cpu.h>
+ #include <asm/delay.h>
+@@ -111,9 +112,9 @@ show_regs (struct pt_regs *regs)
+ 	print_modules();
+ 	printk("\nPid: %d, CPU %d, comm: %20s\n", task_pid_nr(current),
+ 			smp_processor_id(), current->comm);
+-	printk("psr : %016lx ifs : %016lx ip  : [<%016lx>]    %s (%s)\n",
++	printk("psr : %016lx ifs : %016lx ip  : [<%016lx>]    %s (%s%s)\n",
+ 	       regs->cr_ipsr, regs->cr_ifs, ip, print_tainted(),
+-	       init_utsname()->release);
++	       init_utsname()->release, LINUX_PACKAGE_ID);
+ 	print_symbol("ip is at %s\n", ip);
+ 	printk("unat: %016lx pfs : %016lx rsc : %016lx\n",
+ 	       regs->ar_unat, regs->ar_pfs, regs->ar_rsc);
+--- a/arch/arm/kernel/process.c
++++ b/arch/arm/kernel/process.c
+@@ -31,6 +31,7 @@
+ #include <linux/random.h>
+ #include <linux/hw_breakpoint.h>
+ #include <linux/cpuidle.h>
++#include <generated/package.h>
+ 
+ #include <asm/cacheflush.h>
+ #include <asm/leds.h>
+@@ -261,11 +262,12 @@ void __show_regs(struct pt_regs *regs)
+ 	unsigned long flags;
+ 	char buf[64];
+ 
+-	printk("CPU: %d    %s  (%s %.*s)\n",
++	printk("CPU: %d    %s  (%s %.*s%s)\n",
+ 		raw_smp_processor_id(), print_tainted(),
+ 		init_utsname()->release,
+ 		(int)strcspn(init_utsname()->version, " "),
+-		init_utsname()->version);
++		init_utsname()->version,
++		LINUX_PACKAGE_ID);
+ 	print_symbol("PC is at %s\n", instruction_pointer(regs));
+ 	print_symbol("LR is at %s\n", regs->ARM_lr);
+ 	printk("pc : [<%08lx>]    lr : [<%08lx>]    psr: %08lx\n"
+--- a/arch/powerpc/kernel/process.c
++++ b/arch/powerpc/kernel/process.c
+@@ -38,6 +38,7 @@
+ #include <linux/personality.h>
+ #include <linux/random.h>
+ #include <linux/hw_breakpoint.h>
++#include <generated/package.h>
+ 
+ #include <asm/pgtable.h>
+ #include <asm/uaccess.h>
+@@ -626,8 +627,9 @@ void show_regs(struct pt_regs * regs)
+ 
+ 	printk("NIP: "REG" LR: "REG" CTR: "REG"\n",
+ 	       regs->nip, regs->link, regs->ctr);
+-	printk("REGS: %p TRAP: %04lx   %s  (%s)\n",
+-	       regs, regs->trap, print_tainted(), init_utsname()->release);
++	printk("REGS: %p TRAP: %04lx   %s  (%s%s)\n",
++	       regs, regs->trap, print_tainted(), init_utsname()->release,
++	       LINUX_PACKAGE_ID);
+ 	printk("MSR: "REG" ", regs->msr);
+ 	printbits(regs->msr, msr_bits);
+ 	printk("  CR: %08lx  XER: %08lx\n", regs->ccr, regs->xer);
+--- a/arch/sh/kernel/process_32.c
++++ b/arch/sh/kernel/process_32.c
+@@ -22,6 +22,7 @@
+ #include <linux/ftrace.h>
+ #include <linux/hw_breakpoint.h>
+ #include <linux/prefetch.h>
++#include <generated/package.h>
+ #include <asm/uaccess.h>
+ #include <asm/mmu_context.h>
+ #include <asm/system.h>
+@@ -32,10 +33,11 @@ void show_regs(struct pt_regs * regs)
+ {
+ 	printk("\n");
+ 	printk("Pid : %d, Comm: \t\t%s\n", task_pid_nr(current), current->comm);
+-	printk("CPU : %d        \t\t%s  (%s %.*s)\n\n",
++	printk("CPU : %d        \t\t%s  (%s %.*s%s)\n\n",
+ 	       smp_processor_id(), print_tainted(), init_utsname()->release,
+ 	       (int)strcspn(init_utsname()->version, " "),
+-	       init_utsname()->version);
++	       init_utsname()->version,
++	       LINUX_PACKAGE_ID);
  
-   echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | tail -n 1`\"
- ) > .tmpcompile
+ 	print_symbol("PC is at %s\n", instruction_pointer(regs));
+ 	print_symbol("PR is at %s\n", regs->pr);

Copied: dists/squeeze-backports/linux/debian/patches/debian/xfrm-avoid-ABI-change-in-3.2.31.patch (from r19450, dists/sid/linux/debian/patches/debian/xfrm-avoid-ABI-change-in-3.2.31.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/debian/xfrm-avoid-ABI-change-in-3.2.31.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/debian/xfrm-avoid-ABI-change-in-3.2.31.patch)
@@ -0,0 +1,89 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: xfrm: Avoid ABI change in 3.2.31
+
+Commit 3b59df46a449ec9975146d71318c4777ad086744 ('xfrm: Workaround
+incompatibility of ESN and async crypto') added a new operation
+'recheck' to struct xfrm_replay.  There is only one instance which
+needs this to be different than 'check'.  So instead of adding the
+operation, check whether we're using that instance and call the
+recheck implementation directly.
+
+--- a/include/net/xfrm.h
++++ b/include/net/xfrm.h
+@@ -269,9 +269,6 @@ struct xfrm_replay {
+ 	int	(*check)(struct xfrm_state *x,
+ 			 struct sk_buff *skb,
+ 			 __be32 net_seq);
+-	int	(*recheck)(struct xfrm_state *x,
+-			   struct sk_buff *skb,
+-			   __be32 net_seq);
+ 	void	(*notify)(struct xfrm_state *x, int event);
+ 	int	(*overflow)(struct xfrm_state *x, struct sk_buff *skb);
+ };
+--- a/net/xfrm/xfrm_input.c
++++ b/net/xfrm/xfrm_input.c
+@@ -102,6 +102,19 @@ int xfrm_prepare_input(struct xfrm_state
+ }
+ EXPORT_SYMBOL(xfrm_prepare_input);
+ 
++extern struct xfrm_replay xfrm_replay_esn;
++extern int xfrm_replay_recheck_esn(struct xfrm_state *x,
++				   struct sk_buff *skb, __be32 net_seq);
++
++static int
++xfrm_recheck(struct xfrm_state *x, struct sk_buff *skb, __be32 net_seq)
++{
++	if (x->repl == &xfrm_replay_esn)
++		return xfrm_replay_recheck_esn(x, skb, net_seq);
++	else
++		return x->repl->check(x, skb, net_seq);
++}
++
+ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)
+ {
+ 	struct net *net = dev_net(skb->dev);
+@@ -212,7 +225,7 @@ resume:
+ 		/* only the first xfrm gets the encap type */
+ 		encap_type = 0;
+ 
+-		if (async && x->repl->recheck(x, skb, seq)) {
++		if (async && xfrm_recheck(x, skb, seq)) {
+ 			XFRM_INC_STATS(net, LINUX_MIB_XFRMINSTATESEQERROR);
+ 			goto drop_unlock;
+ 		}
+--- a/net/xfrm/xfrm_replay.c
++++ b/net/xfrm/xfrm_replay.c
+@@ -420,7 +420,7 @@ err:
+ 	return -EINVAL;
+ }
+ 
+-static int xfrm_replay_recheck_esn(struct xfrm_state *x,
++int xfrm_replay_recheck_esn(struct xfrm_state *x,
+ 				   struct sk_buff *skb, __be32 net_seq)
+ {
+ 	if (unlikely(XFRM_SKB_CB(skb)->seq.input.hi !=
+@@ -491,7 +491,6 @@ static void xfrm_replay_advance_esn(stru
+ static struct xfrm_replay xfrm_replay_legacy = {
+ 	.advance	= xfrm_replay_advance,
+ 	.check		= xfrm_replay_check,
+-	.recheck	= xfrm_replay_check,
+ 	.notify		= xfrm_replay_notify,
+ 	.overflow	= xfrm_replay_overflow,
+ };
+@@ -499,15 +498,13 @@ static struct xfrm_replay xfrm_replay_le
+ static struct xfrm_replay xfrm_replay_bmp = {
+ 	.advance	= xfrm_replay_advance_bmp,
+ 	.check		= xfrm_replay_check_bmp,
+-	.recheck	= xfrm_replay_check_bmp,
+ 	.notify		= xfrm_replay_notify_bmp,
+ 	.overflow	= xfrm_replay_overflow_bmp,
+ };
+ 
+-static struct xfrm_replay xfrm_replay_esn = {
++struct xfrm_replay xfrm_replay_esn = {
+ 	.advance	= xfrm_replay_advance_esn,
+ 	.check		= xfrm_replay_check_esn,
+-	.recheck	= xfrm_replay_recheck_esn,
+ 	.notify		= xfrm_replay_notify_bmp,
+ 	.overflow	= xfrm_replay_overflow_esn,
+ };

Copied: dists/squeeze-backports/linux/debian/patches/features/all/USB-add-USB_VENDOR_AND_INTERFACE_INFO-macro.patch (from r19450, dists/sid/linux/debian/patches/features/all/USB-add-USB_VENDOR_AND_INTERFACE_INFO-macro.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/USB-add-USB_VENDOR_AND_INTERFACE_INFO-macro.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/USB-add-USB_VENDOR_AND_INTERFACE_INFO-macro.patch)
@@ -0,0 +1,56 @@
+From: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
+Date: Tue, 10 Jul 2012 19:10:06 -0300
+Subject: USB: add USB_VENDOR_AND_INTERFACE_INFO() macro
+
+commit d81a5d1956731c453b85c141458d4ff5d6cc5366 upstream.
+
+A lot of Broadcom Bluetooth devices provides vendor specific interface
+class and we are getting flooded by patches adding new device support.
+This change will help us enable support for any other Broadcom with vendor
+specific device that arrives in the future.
+
+Only the product id changes for those devices, so this macro would be
+perfect for us:
+
+{ USB_VENDOR_AND_INTERFACE_INFO(0x0a5c, 0xff, 0x01, 0x01) }
+
+Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
+Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
+Acked-by: Henrik Rydberg <rydberg at bitmath.se>
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ include/linux/usb.h |   21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+diff --git a/include/linux/usb.h b/include/linux/usb.h
+index 873956b..30d1ae3 100644
+--- a/include/linux/usb.h
++++ b/include/linux/usb.h
+@@ -861,6 +861,27 @@ static inline int usb_make_path(struct usb_device *dev, char *buf, size_t size)
+ 	.bInterfaceSubClass = (sc), \
+ 	.bInterfaceProtocol = (pr)
+ 
++/**
++ * USB_VENDOR_AND_INTERFACE_INFO - describe a specific usb vendor with a class of usb interfaces
++ * @vend: the 16 bit USB Vendor ID
++ * @cl: bInterfaceClass value
++ * @sc: bInterfaceSubClass value
++ * @pr: bInterfaceProtocol value
++ *
++ * This macro is used to create a struct usb_device_id that matches a
++ * specific vendor with a specific class of interfaces.
++ *
++ * This is especially useful when explicitly matching devices that have
++ * vendor specific bDeviceClass values, but standards-compliant interfaces.
++ */
++#define USB_VENDOR_AND_INTERFACE_INFO(vend, cl, sc, pr) \
++	.match_flags = USB_DEVICE_ID_MATCH_INT_INFO \
++		| USB_DEVICE_ID_MATCH_VENDOR, \
++	.idVendor = (vend), \
++	.bInterfaceClass = (cl), \
++	.bInterfaceSubClass = (sc), \
++	.bInterfaceProtocol = (pr)
++
+ /* ----------------------------------------------------------------------- */
+ 
+ /* Stuff for dynamic usb ids */

Modified: dists/squeeze-backports/linux/debian/patches/features/all/aufs3/aufs3-add.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/aufs3/aufs3-add.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/aufs3/aufs3-add.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -205,7 +205,7 @@
 +	When aufs supports Magic SysRq, enabled automatically.
 +endif
 --- a/fs/aufs/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/Makefile	2012-01-10 02:15:56.545455955 +0000
++++ b/fs/aufs/Makefile	2012-08-01 03:41:52.619414717 +0100
 @@ -0,0 +1,42 @@
 +
 +include ${src}/magic.mk
@@ -313,7 +313,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_H__ */
 --- a/fs/aufs/branch.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/branch.c	2012-01-10 02:15:56.545455955 +0000
++++ b/fs/aufs/branch.c	2012-10-10 06:26:21.201348727 +0100
 @@ -0,0 +1,1169 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -570,12 +570,12 @@
 +		if ((h_inode->i_mode & S_IALLUGO) != (inode->i_mode & S_IALLUGO)
 +		    || h_inode->i_uid != inode->i_uid
 +		    || h_inode->i_gid != inode->i_gid)
-+			pr_warning("uid/gid/perm %s %u/%u/0%o, %u/%u/0%o\n",
-+				   add->pathname,
-+				   inode->i_uid, inode->i_gid,
-+				   (inode->i_mode & S_IALLUGO),
-+				   h_inode->i_uid, h_inode->i_gid,
-+				   (h_inode->i_mode & S_IALLUGO));
++			pr_warn("uid/gid/perm %s %u/%u/0%o, %u/%u/0%o\n",
++				add->pathname,
++				inode->i_uid, inode->i_gid,
++				(inode->i_mode & S_IALLUGO),
++				h_inode->i_uid, h_inode->i_gid,
++				(h_inode->i_mode & S_IALLUGO));
 +	}
 +
 +out:
@@ -1170,8 +1170,8 @@
 +	/* revert */
 +	rerr = au_br_init_wh(sb, br, br->br_perm, del->h_path.dentry);
 +	if (rerr)
-+		pr_warning("failed re-creating base whiteout, %s. (%d)\n",
-+			   del->pathname, rerr);
++		pr_warn("failed re-creating base whiteout, %s. (%d)\n",
++			del->pathname, rerr);
 +out:
 +	return err;
 +}
@@ -1759,7 +1759,7 @@
 +
 +-include ${srctree}/${src}/conf_priv.mk
 --- a/fs/aufs/cpup.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/cpup.c	2012-03-20 03:45:28.417045299 +0000
++++ b/fs/aufs/cpup.c	2012-10-10 06:26:21.205348749 +0100
 @@ -0,0 +1,1079 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -1902,7 +1902,7 @@
 +
 +	err = vfsub_notify_change(&dt->dt_h_path, &attr);
 +	if (unlikely(err))
-+		pr_warning("restoring timestamps failed(%d). ignored\n", err);
++		pr_warn("restoring timestamps failed(%d). ignored\n", err);
 +}
 +
 +/* ---------------------------------------------------------------------- */
@@ -3657,7 +3657,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DCSUB_H__ */
 --- a/fs/aufs/debug.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/debug.c	2012-01-10 02:15:56.545455955 +0000
++++ b/fs/aufs/debug.c	2012-10-10 06:26:21.205348749 +0100
 @@ -0,0 +1,489 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -4139,7 +4139,7 @@
 +	AuDebugOn(destr.len < NAME_MAX);
 +
 +#ifdef CONFIG_4KSTACKS
-+	pr_warning("CONFIG_4KSTACKS is defined.\n");
++	pr_warn("CONFIG_4KSTACKS is defined.\n");
 +#endif
 +
 +#ifdef AuForceNoBrs
@@ -4149,7 +4149,7 @@
 +	return 0;
 +}
 --- a/fs/aufs/debug.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/debug.h	2012-01-10 02:15:56.545455955 +0000
++++ b/fs/aufs/debug.h	2012-10-10 06:26:21.225348843 +0100
 @@ -0,0 +1,243 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -4217,7 +4217,7 @@
 +#define AuWarn1(fmt, ...) do { \
 +	static unsigned char _c; \
 +	if (!_c++) \
-+		pr_warning(fmt, ##__VA_ARGS__); \
++		pr_warn(fmt, ##__VA_ARGS__); \
 +} while (0)
 +
 +#define AuErr1(fmt, ...) do { \
@@ -4395,7 +4395,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DEBUG_H__ */
 --- a/fs/aufs/dentry.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dentry.c	2012-01-10 02:15:56.545455955 +0000
++++ b/fs/aufs/dentry.c	2012-10-10 06:26:21.225348843 +0100
 @@ -0,0 +1,1140 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -5538,7 +5538,7 @@
 +	.d_release	= aufs_d_release
 +};
 --- a/fs/aufs/dentry.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dentry.h	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/dentry.h	2012-10-10 06:26:21.225348843 +0100
 @@ -0,0 +1,237 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -6324,7 +6324,7 @@
 +	return -1;
 +}
 --- a/fs/aufs/dir.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dir.c	2012-03-20 03:45:28.417045299 +0000
++++ b/fs/aufs/dir.c	2012-10-10 06:26:21.225348843 +0100
 @@ -0,0 +1,634 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -7101,7 +7101,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DIR_H__ */
 --- a/fs/aufs/dynop.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dynop.c	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/dynop.c	2012-10-10 06:26:21.225348843 +0100
 @@ -0,0 +1,377 @@
 +/*
 + * Copyright (C) 2010-2012 Junjiro R. Okajima
@@ -7560,7 +7560,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DYNOP_H__ */
 --- a/fs/aufs/export.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/export.c	2012-03-20 03:45:28.417045299 +0000
++++ b/fs/aufs/export.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,804 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -8367,7 +8367,7 @@
 +	atomic_set(&sbinfo->si_xigen_next, u);
 +}
 --- a/fs/aufs/f_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/f_op.c	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/f_op.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,729 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -9099,7 +9099,7 @@
 +#endif
 +};
 --- a/fs/aufs/f_op_sp.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/f_op_sp.c	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/f_op_sp.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,298 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -9400,7 +9400,7 @@
 +	return ret;
 +}
 --- a/fs/aufs/file.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/file.c	2012-03-20 03:45:28.417045299 +0000
++++ b/fs/aufs/file.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,673 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -10076,7 +10076,7 @@
 +#endif /* CONFIG_AUFS_DEBUG */
 +};
 --- a/fs/aufs/file.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/file.h	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/file.h	2012-08-01 03:41:52.619414717 +0100
 @@ -0,0 +1,298 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -10307,7 +10307,7 @@
 +{
 +	if (atomic_inc_return(&au_fi(f)->fi_mmapped))
 +		return;
-+	pr_warning("fi_mmapped wrapped around\n");
++	pr_warn("fi_mmapped wrapped around\n");
 +	while (!atomic_inc_return(&au_fi(f)->fi_mmapped))
 +		;
 +}
@@ -10536,7 +10536,7 @@
 +	return err;
 +}
 --- a/fs/aufs/fstype.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/fstype.h	2012-01-10 02:15:56.553455997 +0000
++++ b/fs/aufs/fstype.h	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,496 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -11035,7 +11035,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_FSTYPE_H__ */
 --- a/fs/aufs/hfsnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/hfsnotify.c	2012-03-11 05:01:22.570973560 +0000
++++ b/fs/aufs/hfsnotify.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,260 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -11358,7 +11358,7 @@
 +	}
 +}
 --- a/fs/aufs/hnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/hnotify.c	2012-03-11 05:01:22.570973560 +0000
++++ b/fs/aufs/hnotify.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,712 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -11470,7 +11470,7 @@
 +
 +	err = 0;
 +	if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
-+		pr_warning("branch root dir was changed\n");
++		pr_warn("branch root dir was changed\n");
 +		goto out;
 +	}
 +
@@ -11565,7 +11565,7 @@
 +
 +	err = 1;
 +	if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
-+		pr_warning("branch root dir was changed\n");
++		pr_warn("branch root dir was changed\n");
 +		err = 0;
 +		goto out;
 +	}
@@ -11621,7 +11621,7 @@
 +	if (IS_ROOT(dentry)
 +	    /* || (inode && inode->i_ino == AUFS_ROOT_INO) */
 +		) {
-+		pr_warning("branch root dir was changed\n");
++		pr_warn("branch root dir was changed\n");
 +		return 0;
 +	}
 +
@@ -11720,8 +11720,8 @@
 +	if (au_ftest_hnjob(a->flags, MNTPNT)
 +	    && a->dentry
 +	    && d_mountpoint(a->dentry))
-+		pr_warning("mount-point %.*s is removed or renamed\n",
-+			   AuDLNPair(a->dentry));
++		pr_warn("mount-point %.*s is removed or renamed\n",
++			AuDLNPair(a->dentry));
 +
 +	return 0;
 +}
@@ -11783,7 +11783,7 @@
 +		goto out;
 +
 +	if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
-+		pr_warning("wrong root branch\n");
++		pr_warn("wrong root branch\n");
 +		iput(inode);
 +		inode = NULL;
 +		goto out;
@@ -12073,8 +12073,8 @@
 +		au_hn_destroy_cache();
 +}
 --- a/fs/aufs/i_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op.c	2012-03-20 03:45:28.417045299 +0000
-@@ -0,0 +1,992 @@
++++ b/fs/aufs/i_op.c	2012-10-10 06:26:21.241348914 +0100
+@@ -0,0 +1,987 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -12282,18 +12282,13 @@
 +	ret = d_splice_alias(inode, dentry);
 +	if (unlikely(IS_ERR(ret) && inode)) {
 +		ii_write_unlock(inode);
-+		lc_idx = AuLcNonDir_IIINFO;
-+		if (S_ISLNK(inode->i_mode))
-+			lc_idx = AuLcSymlink_IIINFO;
-+		else if (S_ISDIR(inode->i_mode))
-+			lc_idx = AuLcDir_IIINFO;
-+		au_rw_class(&au_ii(inode)->ii_rwsem, au_lc_key + lc_idx);
 +		iput(inode);
++		inode = NULL;
 +	}
 +
 +out_unlock:
 +	di_write_unlock(dentry);
-+	if (unlikely(IS_ERR(ret) && inode)) {
++	if (inode) {
 +		lc_idx = AuLcNonDir_DIINFO;
 +		if (S_ISLNK(inode->i_mode))
 +			lc_idx = AuLcSymlink_DIINFO;
@@ -13068,7 +13063,7 @@
 +	.truncate_range	= aufs_truncate_range
 +};
 --- a/fs/aufs/i_op_add.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op_add.c	2012-03-20 03:45:28.425045336 +0000
++++ b/fs/aufs/i_op_add.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,711 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -13782,7 +13777,7 @@
 +	return err;
 +}
 --- a/fs/aufs/i_op_del.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op_del.c	2012-01-10 02:15:56.557456016 +0000
++++ b/fs/aufs/i_op_del.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,478 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -14263,7 +14258,7 @@
 +	return err;
 +}
 --- a/fs/aufs/i_op_ren.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op_ren.c	2012-03-11 05:01:22.570973560 +0000
++++ b/fs/aufs/i_op_ren.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,1026 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -14521,8 +14516,8 @@
 +	    || au_test_fs_remote(a->h_dst->d_sb)) {
 +		err = au_whtmp_rmdir(dir, a->btgt, a->h_dst, &a->whlist);
 +		if (unlikely(err))
-+			pr_warning("failed removing whtmp dir %.*s (%d), "
-+				   "ignored.\n", AuDLNPair(a->h_dst), err);
++			pr_warn("failed removing whtmp dir %.*s (%d), "
++				"ignored.\n", AuDLNPair(a->h_dst), err);
 +	} else {
 +		au_nhash_wh_free(&a->thargs->whlist);
 +		a->thargs->whlist = a->whlist;
@@ -15559,8 +15554,8 @@
 +	AuRwDestroy(&iinfo->ii_rwsem);
 +}
 --- a/fs/aufs/inode.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/inode.c	2012-01-10 02:15:56.557456016 +0000
-@@ -0,0 +1,471 @@
++++ b/fs/aufs/inode.c	2012-10-10 06:26:21.261349000 +0100
+@@ -0,0 +1,478 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -15889,7 +15884,7 @@
 +	struct super_block *sb;
 +	struct mutex *mtx;
 +	ino_t h_ino, ino;
-+	int err;
++	int err, lc_idx;
 +	aufs_bindex_t bstart;
 +
 +	sb = dentry->d_sb;
@@ -15930,6 +15925,13 @@
 +
 +	AuDbg("%lx, new %d\n", inode->i_state, !!(inode->i_state & I_NEW));
 +	if (inode->i_state & I_NEW) {
++		lc_idx = AuLcNonDir_IIINFO;
++		if (S_ISLNK(h_inode->i_mode))
++			lc_idx = AuLcSymlink_IIINFO;
++		else if (S_ISDIR(h_inode->i_mode))
++			lc_idx = AuLcDir_IIINFO;
++		au_rw_class(&au_ii(inode)->ii_rwsem, au_lc_key + lc_idx);
++
 +		ii_write_lock_new_child(inode);
 +		err = set_inode(inode, dentry);
 +		if (!err) {
@@ -16033,7 +16035,7 @@
 +	return au_test_h_perm(h_inode, mask);
 +}
 --- a/fs/aufs/inode.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/inode.h	2012-03-20 03:45:28.425045336 +0000
++++ b/fs/aufs/inode.h	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,559 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -16794,7 +16796,7 @@
 +#endif
 +#endif
 --- a/fs/aufs/loop.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/loop.c	2012-01-10 02:15:56.557456016 +0000
++++ b/fs/aufs/loop.c	2012-07-22 01:31:00.162115458 +0100
 @@ -0,0 +1,133 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -16905,8 +16907,8 @@
 +
 +pr:
 +	spin_unlock(&spin);
-+	pr_warning("you may want to try another patch for loopback file "
-+		   "on %s(0x%lx) branch\n", au_sbtype(h_sb), magic);
++	pr_warn("you may want to try another patch for loopback file "
++		"on %s(0x%lx) branch\n", au_sbtype(h_sb), magic);
 +}
 +
 +int au_loopback_init(void)
@@ -17347,7 +17349,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_MODULE_H__ */
 --- a/fs/aufs/opts.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/opts.c	2012-01-10 02:15:56.561456041 +0000
++++ b/fs/aufs/opts.c	2012-07-22 01:31:00.166115467 +0100
 @@ -0,0 +1,1677 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -17565,7 +17567,7 @@
 +		else {
 +			if (p)
 +				*p = '+';
-+			pr_warning("ignored branch attribute %s\n", str);
++			pr_warn("ignored branch attribute %s\n", str);
 +			break;
 +		}
 +		if (p)
@@ -17588,7 +17590,7 @@
 +	if (!val) {
 +		if (p)
 +			*p = '+';
-+		pr_warning("ignored branch permission %s\n", perm);
++		pr_warn("ignored branch permission %s\n", perm);
 +		val = AuBrPerm_RO;
 +		goto out;
 +	}
@@ -18474,7 +18476,7 @@
 +			break;
 +
 +		case Opt_ignore:
-+			pr_warning("ignored %s\n", opt_str);
++			pr_warn("ignored %s\n", opt_str);
 +			/*FALLTHROUGH*/
 +		case Opt_ignore_silent:
 +			skipped = 1;
@@ -18810,14 +18812,14 @@
 +
 +	if (!(sb_flags & MS_RDONLY)) {
 +		if (unlikely(!au_br_writable(au_sbr_perm(sb, 0))))
-+			pr_warning("first branch should be rw\n");
++			pr_warn("first branch should be rw\n");
 +		if (unlikely(au_opt_test(sbinfo->si_mntflags, SHWH)))
-+			pr_warning("shwh should be used with ro\n");
++			pr_warn("shwh should be used with ro\n");
 +	}
 +
 +	if (au_opt_test((sbinfo->si_mntflags | pending), UDBA_HNOTIFY)
 +	    && !au_opt_test(sbinfo->si_mntflags, XINO))
-+		pr_warning("udba=*notify requires xino\n");
++		pr_warn("udba=*notify requires xino\n");
 +
 +	err = 0;
 +	root = sb->s_root;
@@ -19239,7 +19241,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_OPTS_H__ */
 --- a/fs/aufs/plink.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/plink.c	2012-01-10 02:15:56.561456041 +0000
++++ b/fs/aufs/plink.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,515 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -19667,7 +19669,7 @@
 +
 +out:
 +	if (unlikely(err)) {
-+		pr_warning("err %d, damaged pseudo link.\n", err);
++		pr_warn("err %d, damaged pseudo link.\n", err);
 +		if (tmp) {
 +			au_spl_del_rcu(&tmp->list, &sbinfo->si_plink);
 +			call_rcu(&tmp->rcu, do_put_plink_rcu);
@@ -19989,7 +19991,7 @@
 +	return err;
 +}
 --- a/fs/aufs/rdu.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/rdu.c	2012-01-10 02:15:56.561456041 +0000
++++ b/fs/aufs/rdu.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,383 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -20977,8 +20979,8 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_SPL_H__ */
 --- a/fs/aufs/super.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/super.c	2012-03-20 03:45:28.425045336 +0000
-@@ -0,0 +1,938 @@
++++ b/fs/aufs/super.c	2012-10-10 06:26:21.261349000 +0100
+@@ -0,0 +1,968 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -21286,7 +21288,18 @@
 +
 +	old = a;
 +	a += b;
-+	if (old < a)
++	if (old <= a)
++		return a;
++	return ULLONG_MAX;
++}
++
++static u64 au_mul_till_max(u64 a, long mul)
++{
++	u64 old;
++
++	old = a;
++	a *= mul;
++	if (old <= a)
 +		return a;
 +	return ULLONG_MAX;
 +}
@@ -21294,25 +21307,26 @@
 +static int au_statfs_sum(struct super_block *sb, struct kstatfs *buf)
 +{
 +	int err;
++	long bsize, factor;
 +	u64 blocks, bfree, bavail, files, ffree;
 +	aufs_bindex_t bend, bindex, i;
 +	unsigned char shared;
 +	struct path h_path;
 +	struct super_block *h_sb;
 +
++	err = 0;
++	bsize = LONG_MAX;
++	files = 0;
++	ffree = 0;
 +	blocks = 0;
 +	bfree = 0;
 +	bavail = 0;
-+	files = 0;
-+	ffree = 0;
-+
-+	err = 0;
 +	bend = au_sbend(sb);
-+	for (bindex = bend; bindex >= 0; bindex--) {
++	for (bindex = 0; bindex <= bend; bindex++) {
 +		h_path.mnt = au_sbr_mnt(sb, bindex);
 +		h_sb = h_path.mnt->mnt_sb;
 +		shared = 0;
-+		for (i = bindex + 1; !shared && i <= bend; i++)
++		for (i = 0; !shared && i < bindex; i++)
 +			shared = (au_sbr_sb(sb, i) == h_sb);
 +		if (shared)
 +			continue;
@@ -21323,18 +21337,36 @@
 +		if (unlikely(err))
 +			goto out;
 +
-+		blocks = au_add_till_max(blocks, buf->f_blocks);
-+		bfree = au_add_till_max(bfree, buf->f_bfree);
-+		bavail = au_add_till_max(bavail, buf->f_bavail);
++		if (bsize > buf->f_bsize) {
++			/*
++			 * we will reduce bsize, so we have to expand blocks
++			 * etc. to match them again
++			 */
++			factor = (bsize / buf->f_bsize);
++			blocks = au_mul_till_max(blocks, factor);
++			bfree = au_mul_till_max(bfree, factor);
++			bavail = au_mul_till_max(bavail, factor);
++			bsize = buf->f_bsize;
++		}
++
++		factor = (buf->f_bsize / bsize);
++		blocks = au_add_till_max(blocks,
++				au_mul_till_max(buf->f_blocks, factor));
++		bfree = au_add_till_max(bfree,
++				au_mul_till_max(buf->f_bfree, factor));
++		bavail = au_add_till_max(bavail,
++				au_mul_till_max(buf->f_bavail, factor));
 +		files = au_add_till_max(files, buf->f_files);
 +		ffree = au_add_till_max(ffree, buf->f_ffree);
 +	}
 +
++	buf->f_bsize = bsize;
 +	buf->f_blocks = blocks;
 +	buf->f_bfree = bfree;
 +	buf->f_bavail = bavail;
 +	buf->f_files = files;
 +	buf->f_ffree = ffree;
++	buf->f_frsize = 0;
 +
 +out:
 +	return err;
@@ -22682,7 +22714,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __SYSAUFS_H__ */
 --- a/fs/aufs/sysfs.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/sysfs.c	2012-01-10 02:15:56.569456073 +0000
++++ b/fs/aufs/sysfs.c	2012-07-22 01:31:00.166115467 +0100
 @@ -0,0 +1,257 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -22937,12 +22969,12 @@
 +			 "%d", bindex);
 +		err = sysfs_create_file(kobj, &br->br_attr);
 +		if (unlikely(err))
-+			pr_warning("failed %s under sysfs(%d)\n",
-+				   br->br_name, err);
++			pr_warn("failed %s under sysfs(%d)\n",
++				br->br_name, err);
 +	}
 +}
 --- a/fs/aufs/sysrq.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/sysrq.c	2012-01-10 02:15:56.569456073 +0000
++++ b/fs/aufs/sysrq.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,148 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -23981,7 +24013,7 @@
 +	return 0;
 +}
 --- a/fs/aufs/vfsub.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/vfsub.c	2012-03-20 03:45:28.425045336 +0000
++++ b/fs/aufs/vfsub.c	2012-10-10 06:26:21.265349041 +0100
 @@ -0,0 +1,835 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -24819,7 +24851,7 @@
 +	return err;
 +}
 --- a/fs/aufs/vfsub.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/vfsub.h	2012-03-20 03:45:28.425045336 +0000
++++ b/fs/aufs/vfsub.h	2012-10-10 06:26:21.265349041 +0100
 @@ -0,0 +1,232 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -25757,7 +25789,7 @@
 +	}
 +};
 --- a/fs/aufs/whout.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/whout.c	2012-01-10 02:15:56.573456100 +0000
++++ b/fs/aufs/whout.c	2012-10-10 06:26:21.265349041 +0100
 @@ -0,0 +1,1049 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -25917,7 +25949,7 @@
 +			goto out_name;
 +		dput(dentry);
 +	}
-+	/* pr_warning("could not get random name\n"); */
++	/* pr_warn("could not get random name\n"); */
 +	dentry = ERR_PTR(-EEXIST);
 +	AuDbg("%.*s\n", AuLNPair(&qs));
 +	BUG();
@@ -26035,8 +26067,8 @@
 +		mnt_drop_write(whpath->mnt);
 +	}
 +	if (unlikely(err))
-+		pr_warning("failed removing %.*s (%d), ignored.\n",
-+			   AuDLNPair(whpath->dentry), err);
++		pr_warn("failed removing %.*s (%d), ignored.\n",
++			AuDLNPair(whpath->dentry), err);
 +}
 +
 +static int test_linkable(struct dentry *h_root)
@@ -26340,8 +26372,8 @@
 +			mnt_drop_write(a->br->br_mnt);
 +		}
 +	} else {
-+		pr_warning("%.*s is moved, ignored\n",
-+			   AuDLNPair(wbr->wbr_whbase));
++		pr_warn("%.*s is moved, ignored\n",
++			AuDLNPair(wbr->wbr_whbase));
 +		err = 0;
 +	}
 +	dput(wbr->wbr_whbase);
@@ -26732,8 +26764,8 @@
 +		return 0; /* success */
 +	}
 +
-+	pr_warning("failed removing %.*s(%d), ignored\n",
-+		   AuDLNPair(wh_dentry), err);
++	pr_warn("failed removing %.*s(%d), ignored\n",
++		AuDLNPair(wh_dentry), err);
 +	return err;
 +}
 +
@@ -26803,8 +26835,8 @@
 +	args->wh_dentry = dget(wh_dentry);
 +	wkq_err = au_wkq_nowait(call_rmdir_whtmp, args, sb, /*flags*/0);
 +	if (unlikely(wkq_err)) {
-+		pr_warning("rmdir error %.*s (%d), ignored\n",
-+			   AuDLNPair(wh_dentry), wkq_err);
++		pr_warn("rmdir error %.*s (%d), ignored\n",
++			AuDLNPair(wh_dentry), wkq_err);
 +		au_whtmp_rmdir_free(args);
 +	}
 +}
@@ -26900,7 +26932,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_WHOUT_H__ */
 --- a/fs/aufs/wkq.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/wkq.c	2012-01-10 02:15:56.573456100 +0000
++++ b/fs/aufs/wkq.c	2012-10-10 06:26:21.265349041 +0100
 @@ -0,0 +1,214 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -27212,7 +27244,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_WKQ_H__ */
 --- a/fs/aufs/xino.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/xino.c	2012-01-10 02:15:56.573456100 +0000
++++ b/fs/aufs/xino.c	2012-07-22 01:31:00.166115467 +0100
 @@ -0,0 +1,1264 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -27532,7 +27564,7 @@
 +
 +	ii_read_unlock(dir);
 +	if (unlikely(err))
-+		pr_warning("err b%d, (%d)\n", bindex, err);
++		pr_warn("err b%d, (%d)\n", bindex, err);
 +	atomic_dec(&br->br_xino_running);
 +	atomic_dec(&br->br_count);
 +	si_write_unlock(sb);
@@ -28479,7 +28511,7 @@
 +	return err;
 +}
 --- a/include/linux/aufs_type.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/include/linux/aufs_type.h	2012-03-20 03:45:28.425045336 +0000
++++ b/include/linux/aufs_type.h	2012-10-10 06:26:21.265349041 +0100
 @@ -0,0 +1,233 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -28522,7 +28554,7 @@
 +
 +#include <linux/limits.h>
 +
-+#define AUFS_VERSION	"3.2-20120312"
++#define AUFS_VERSION	"3.2-20120827"
 +
 +/* todo? move this to linux-2.6.19/include/magic.h */
 +#define AUFS_SUPER_MAGIC	('a' << 24 | 'u' << 16 | 'f' << 8 | 's')

Copied: dists/squeeze-backports/linux/debian/patches/features/all/codel/0008-codel-refine-one-condition-to-avoid-a-nul-rec_inv_sq.patch (from r19450, dists/sid/linux/debian/patches/features/all/codel/0008-codel-refine-one-condition-to-avoid-a-nul-rec_inv_sq.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/codel/0008-codel-refine-one-condition-to-avoid-a-nul-rec_inv_sq.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/codel/0008-codel-refine-one-condition-to-avoid-a-nul-rec_inv_sq.patch)
@@ -0,0 +1,53 @@
+From: Eric Dumazet <edumazet at google.com>
+Date: Sun, 29 Jul 2012 20:52:21 +0000
+Subject: codel: refine one condition to avoid a nul rec_inv_sqrt
+
+commit 2359a47671fc4fb0fe5e9945f76c2cb10792c0f8 upstream.
+
+One condition before codel_Newton_step() was not good if
+we never left the dropping state for a flow. As a result
+rec_inv_sqrt was 0, instead of the ~0 initial value.
+
+codel control law was then set to a very aggressive mode, dropping
+many packets before reaching 'target' and recovering from this problem.
+
+To keep codel_vars_init() as efficient as possible, refine
+the condition to make sure rec_inv_sqrt initial value is correct
+
+Many thanks to Anton Mich for discovering the issue and suggesting
+a fix.
+
+Reported-by: Anton Mich <lp2s1h at gmail.com>
+Signed-off-by: Eric Dumazet <edumazet at google.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ include/net/codel.h |    8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/include/net/codel.h b/include/net/codel.h
+index 550debf..389cf62 100644
+--- a/include/net/codel.h
++++ b/include/net/codel.h
+@@ -305,6 +305,8 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch,
+ 			}
+ 		}
+ 	} else if (drop) {
++		u32 delta;
++
+ 		if (params->ecn && INET_ECN_set_ce(skb)) {
+ 			stats->ecn_mark++;
+ 		} else {
+@@ -320,9 +322,11 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch,
+ 		 * assume that the drop rate that controlled the queue on the
+ 		 * last cycle is a good starting point to control it now.
+ 		 */
+-		if (codel_time_before(now - vars->drop_next,
++		delta = vars->count - vars->lastcount;
++		if (delta > 1 &&
++		    codel_time_before(now - vars->drop_next,
+ 				      16 * params->interval)) {
+-			vars->count = (vars->count - vars->lastcount) | 1;
++			vars->count = delta;
+ 			/* we dont care if rec_inv_sqrt approximation
+ 			 * is not very precise :
+ 			 * Next Newton steps will correct it quadratically.

Modified: dists/squeeze-backports/linux/debian/patches/features/all/cpu-devices/cpu-convert-cpu-and-machinecheck-sysdev_class-to-a-r.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/cpu-devices/cpu-convert-cpu-and-machinecheck-sysdev_class-to-a-r.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/cpu-devices/cpu-convert-cpu-and-machinecheck-sysdev_class-to-a-r.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -98,7 +98,7 @@
  #include <linux/seq_file.h>
  #include <linux/cpu.h>
  #include <linux/module.h>
-@@ -26,16 +26,16 @@
+@@ -26,16 +26,16 @@ static DEFINE_PER_CPU(struct cpu, cpu_de
   * XXX: If/when a SMP-capable implementation of AVR32 will ever be
   * made, we must make sure that the code executes on the correct CPU.
   */
@@ -119,7 +119,7 @@
  			      size_t count)
  {
  	unsigned long val;
-@@ -48,16 +48,16 @@
+@@ -48,16 +48,16 @@ static ssize_t store_pc0event(struct sys
  	sysreg_write(PCCR, val);
  	return count;
  }
@@ -140,7 +140,7 @@
  				const char *buf, size_t count)
  {
  	unsigned long val;
-@@ -71,16 +71,16 @@
+@@ -71,16 +71,16 @@ static ssize_t store_pc0count(struct sys
  	return count;
  }
  
@@ -161,7 +161,7 @@
  			      size_t count)
  {
  	unsigned long val;
-@@ -93,16 +93,16 @@
+@@ -93,16 +93,16 @@ static ssize_t store_pc1event(struct sys
  	sysreg_write(PCCR, val);
  	return count;
  }
@@ -182,7 +182,7 @@
  			      size_t count)
  {
  	unsigned long val;
-@@ -116,16 +116,16 @@
+@@ -116,16 +116,16 @@ static ssize_t store_pc1count(struct sys
  	return count;
  }
  
@@ -203,7 +203,7 @@
  			      size_t count)
  {
  	unsigned long val;
-@@ -139,16 +139,16 @@
+@@ -139,16 +139,16 @@ static ssize_t store_pccycles(struct sys
  	return count;
  }
  
@@ -224,7 +224,7 @@
  			      size_t count)
  {
  	unsigned long pccr, val;
-@@ -167,12 +167,12 @@
+@@ -167,12 +167,12 @@ static ssize_t store_pcenable(struct sys
  	return count;
  }
  
@@ -243,7 +243,7 @@
  
  #endif /* CONFIG_PERFORMANCE_COUNTERS */
  
-@@ -186,12 +186,12 @@
+@@ -186,12 +186,12 @@ static int __init topology_init(void)
  		register_cpu(c, cpu);
  
  #ifdef CONFIG_PERFORMANCE_COUNTERS
@@ -286,7 +286,7 @@
  
  static u64 call_start[NR_CPUS];
  static u64 phys_addr[NR_CPUS];
-@@ -55,7 +55,7 @@
+@@ -55,7 +55,7 @@ static u64 resources[NR_CPUS];
  
  #define show(name) 							\
  static ssize_t 								\
@@ -295,7 +295,7 @@
  		char *buf)						\
  {									\
  	u32 cpu=dev->id;						\
-@@ -64,7 +64,7 @@
+@@ -64,7 +64,7 @@ show_##name(struct sys_device *dev, stru
  
  #define store(name)							\
  static ssize_t 								\
@@ -304,7 +304,7 @@
  					const char *buf, size_t size)	\
  {									\
  	unsigned int cpu=dev->id;					\
-@@ -78,7 +78,7 @@
+@@ -78,7 +78,7 @@ show(call_start)
   * processor. The cpu number in driver is only used for storing data.
   */
  static ssize_t
@@ -313,7 +313,7 @@
  		const char *buf, size_t size)
  {
  	unsigned int cpu=dev->id;
-@@ -127,7 +127,7 @@
+@@ -127,7 +127,7 @@ show(err_type_info)
  store(err_type_info)
  
  static ssize_t
@@ -322,7 +322,7 @@
  			char *buf)
  {
  	unsigned int cpu=dev->id;
-@@ -135,7 +135,7 @@
+@@ -135,7 +135,7 @@ show_virtual_to_phys(struct sys_device *
  }
  
  static ssize_t
@@ -331,7 +331,7 @@
  			const char *buf, size_t size)
  {
  	unsigned int cpu=dev->id;
-@@ -159,8 +159,8 @@
+@@ -159,8 +159,8 @@ show(err_struct_info)
  store(err_struct_info)
  
  static ssize_t
@@ -342,7 +342,7 @@
  {
  	unsigned int cpu=dev->id;
  
-@@ -171,8 +171,8 @@
+@@ -171,8 +171,8 @@ show_err_data_buffer(struct sys_device *
  }
  
  static ssize_t
@@ -353,7 +353,7 @@
  			const char *buf, size_t size)
  {
  	unsigned int cpu=dev->id;
-@@ -209,14 +209,14 @@
+@@ -209,14 +209,14 @@ define_one_ro(capabilities);
  define_one_ro(resources);
  
  static struct attribute *default_attrs[] = {
@@ -376,7 +376,7 @@
  	NULL
  };
  
-@@ -225,12 +225,12 @@
+@@ -225,12 +225,12 @@ static struct attribute_group err_inject
  	.name = "err_inject"
  };
  /* Add/Remove err_inject interface for CPU device */
@@ -391,7 +391,7 @@
  {
  	sysfs_remove_group(&sys_dev->kobj, &err_inject_attr_group);
  	return 0;
-@@ -239,9 +239,9 @@
+@@ -239,9 +239,9 @@ static int __cpuinit err_inject_cpu_call
  		unsigned long action, void *hcpu)
  {
  	unsigned int cpu = (unsigned long)hcpu;
@@ -403,7 +403,7 @@
  	switch (action) {
  	case CPU_ONLINE:
  	case CPU_ONLINE_FROZEN:
-@@ -283,13 +283,13 @@
+@@ -283,13 +283,13 @@ static void __exit
  err_inject_exit(void)
  {
  	int i;
@@ -421,7 +421,7 @@
  	unregister_hotcpu_notifier(&err_inject_cpu_notifier);
 --- a/arch/ia64/kernel/topology.c
 +++ b/arch/ia64/kernel/topology.c
-@@ -350,7 +350,7 @@
+@@ -350,7 +350,7 @@ static int __cpuinit cpu_cache_sysfs_ini
  }
  
  /* Add cache interface for CPU device */
@@ -430,7 +430,7 @@
  {
  	unsigned int cpu = sys_dev->id;
  	unsigned long i, j;
-@@ -400,7 +400,7 @@
+@@ -400,7 +400,7 @@ static int __cpuinit cache_add_dev(struc
  }
  
  /* Remove cache interface for CPU device */
@@ -439,7 +439,7 @@
  {
  	unsigned int cpu = sys_dev->id;
  	unsigned long i;
-@@ -428,9 +428,9 @@
+@@ -428,9 +428,9 @@ static int __cpuinit cache_cpu_callback(
  		unsigned long action, void *hcpu)
  {
  	unsigned int cpu = (unsigned long)hcpu;
@@ -451,7 +451,7 @@
  	switch (action) {
  	case CPU_ONLINE:
  	case CPU_ONLINE_FROZEN:
-@@ -454,7 +454,7 @@
+@@ -454,7 +454,7 @@ static int __init cache_sysfs_init(void)
  	int i;
  
  	for_each_online_cpu(i) {
@@ -471,7 +471,7 @@
  #include <linux/mutex.h>
  
  #define LS_SIZE (256 * 1024)
-@@ -166,7 +166,7 @@
+@@ -166,7 +166,7 @@ struct spu {
  	/* beat only */
  	u64 shadow_int_mask_RW[3];
  
@@ -480,7 +480,7 @@
  
  	int has_mem_affinity;
  	struct list_head aff_list;
-@@ -270,11 +270,11 @@
+@@ -270,11 +270,11 @@ struct spufs_calls {
  int register_spu_syscalls(struct spufs_calls *calls);
  void unregister_spu_syscalls(struct spufs_calls *calls);
  
@@ -507,7 +507,7 @@
  struct device_node;
  
  #ifdef CONFIG_NUMA
-@@ -86,19 +86,19 @@
+@@ -86,19 +86,19 @@ extern int __node_distance(int, int);
  
  extern void __init dump_numa_cpu_topology(void);
  
@@ -533,7 +533,7 @@
  }
 --- a/arch/powerpc/kernel/cacheinfo.c
 +++ b/arch/powerpc/kernel/cacheinfo.c
-@@ -451,15 +451,15 @@
+@@ -451,15 +451,15 @@ out:
  static struct cache_dir *__cpuinit cacheinfo_create_cache_dir(unsigned int cpu_id)
  {
  	struct cache_dir *cache_dir;
@@ -573,7 +573,7 @@
  #include <linux/cpu.h>
  #include <linux/smp.h>
  #include <linux/percpu.h>
-@@ -37,12 +37,12 @@
+@@ -37,12 +37,12 @@ static DEFINE_PER_CPU(struct cpu, cpu_de
  /* Time in microseconds we delay before sleeping in the idle loop */
  DEFINE_PER_CPU(long, smt_snooze_delay) = { 100 };
  
@@ -589,7 +589,7 @@
  	ssize_t ret;
  	long snooze;
  
-@@ -50,21 +50,21 @@
+@@ -50,21 +50,21 @@ static ssize_t store_smt_snooze_delay(st
  	if (ret != 1)
  		return -EINVAL;
  
@@ -617,7 +617,7 @@
  		   store_smt_snooze_delay);
  
  static int __init setup_smt_snooze_delay(char *str)
-@@ -117,25 +117,25 @@
+@@ -117,25 +117,25 @@ static void write_##NAME(void *val) \
  	ppc_enable_pmcs(); \
  	mtspr(ADDRESS, *(unsigned long *)val);	\
  } \
@@ -650,7 +650,7 @@
  	return count; \
  }
  
-@@ -178,22 +178,22 @@
+@@ -178,16 +178,16 @@ SYSFS_PMCSETUP(purr, SPRN_PURR);
  SYSFS_PMCSETUP(spurr, SPRN_SPURR);
  SYSFS_PMCSETUP(dscr, SPRN_DSCR);
  
@@ -673,6 +673,9 @@
  {
  	return sprintf(buf, "%lx\n", dscr_default);
  }
+@@ -200,8 +200,8 @@ static void update_dscr(void *dummy)
+ 	}
+ }
  
 -static ssize_t __used store_dscr_default(struct sysdev_class *class,
 -		struct sysdev_class_attribute *attr, const char *buf,
@@ -681,7 +684,7 @@
  		size_t count)
  {
  	unsigned long val;
-@@ -207,15 +207,14 @@
+@@ -217,15 +217,14 @@ static ssize_t __used store_dscr_default
  	return count;
  }
  
@@ -699,7 +702,7 @@
  }
  #endif /* CONFIG_PPC64 */
  
-@@ -259,72 +258,72 @@
+@@ -269,72 +268,72 @@ SYSFS_PMCSETUP(tsr3, SPRN_PA6T_TSR3);
  #endif /* HAS_PPC_PMC_PA6T */
  
  #ifdef HAS_PPC_PMC_IBM
@@ -825,7 +828,7 @@
  #endif /* CONFIG_DEBUG_KERNEL */
  };
  #endif /* HAS_PPC_PMC_PA6T */
-@@ -333,14 +332,14 @@
+@@ -343,14 +342,14 @@ static struct sysdev_attribute pa6t_attr
  static void __cpuinit register_cpu_online(unsigned int cpu)
  {
  	struct cpu *c = &per_cpu(cpu_devices, cpu);
@@ -843,7 +846,7 @@
  #endif
  
  	/* PMC stuff */
-@@ -348,14 +347,14 @@
+@@ -358,14 +357,14 @@ static void __cpuinit register_cpu_onlin
  #ifdef HAS_PPC_PMC_IBM
  	case PPC_PMC_IBM:
  		attrs = ibm_common_attrs;
@@ -860,7 +863,7 @@
  		pmc_attrs = classic_pmc_attrs;
  		break;
  #endif /* HAS_PPC_PMC_G4 */
-@@ -363,7 +362,7 @@
+@@ -373,7 +372,7 @@ static void __cpuinit register_cpu_onlin
  	case PPC_PMC_PA6T:
  		/* PA Semi starts counting at PMC0 */
  		attrs = pa6t_attrs;
@@ -869,7 +872,7 @@
  		pmc_attrs = NULL;
  		break;
  #endif /* HAS_PPC_PMC_PA6T */
-@@ -374,24 +373,24 @@
+@@ -384,24 +383,24 @@ static void __cpuinit register_cpu_onlin
  	}
  
  	for (i = 0; i < nattrs; i++)
@@ -900,7 +903,7 @@
  #endif /* CONFIG_PPC64 */
  
  	cacheinfo_cpu_online(cpu);
-@@ -401,8 +400,8 @@
+@@ -411,8 +410,8 @@ static void __cpuinit register_cpu_onlin
  static void unregister_cpu_online(unsigned int cpu)
  {
  	struct cpu *c = &per_cpu(cpu_devices, cpu);
@@ -911,7 +914,7 @@
  	int i, nattrs;
  
  	BUG_ON(!c->hotpluggable);
-@@ -410,7 +409,7 @@
+@@ -420,7 +419,7 @@ static void unregister_cpu_online(unsign
  #ifdef CONFIG_PPC64
  	if (!firmware_has_feature(FW_FEATURE_ISERIES) &&
  			cpu_has_feature(CPU_FTR_SMT))
@@ -920,7 +923,7 @@
  #endif
  
  	/* PMC stuff */
-@@ -418,14 +417,14 @@
+@@ -428,14 +427,14 @@ static void unregister_cpu_online(unsign
  #ifdef HAS_PPC_PMC_IBM
  	case PPC_PMC_IBM:
  		attrs = ibm_common_attrs;
@@ -937,7 +940,7 @@
  		pmc_attrs = classic_pmc_attrs;
  		break;
  #endif /* HAS_PPC_PMC_G4 */
-@@ -433,7 +432,7 @@
+@@ -443,7 +442,7 @@ static void unregister_cpu_online(unsign
  	case PPC_PMC_PA6T:
  		/* PA Semi starts counting at PMC0 */
  		attrs = pa6t_attrs;
@@ -946,7 +949,7 @@
  		pmc_attrs = NULL;
  		break;
  #endif /* HAS_PPC_PMC_PA6T */
-@@ -444,24 +443,24 @@
+@@ -454,24 +453,24 @@ static void unregister_cpu_online(unsign
  	}
  
  	for (i = 0; i < nattrs; i++)
@@ -977,7 +980,7 @@
  #endif /* CONFIG_PPC64 */
  
  	cacheinfo_cpu_offline(cpu);
-@@ -513,70 +512,70 @@
+@@ -523,70 +522,70 @@ static struct notifier_block __cpuinitda
  
  static DEFINE_MUTEX(cpu_mutex);
  
@@ -1064,7 +1067,7 @@
  
  
  /* NUMA stuff */
-@@ -590,7 +589,7 @@
+@@ -600,7 +599,7 @@ static void register_nodes(void)
  		register_one_node(i);
  }
  
@@ -1073,7 +1076,7 @@
  {
  	struct node *node = &node_devices[nid];
  	return sysfs_create_link(&node->sysdev.kobj, &dev->kobj,
-@@ -598,7 +597,7 @@
+@@ -608,7 +607,7 @@ int sysfs_add_device_to_node(struct sys_
  }
  EXPORT_SYMBOL_GPL(sysfs_add_device_to_node);
  
@@ -1082,7 +1085,7 @@
  {
  	struct node *node = &node_devices[nid];
  	sysfs_remove_link(&node->sysdev.kobj, kobject_name(&dev->kobj));
-@@ -614,14 +613,14 @@
+@@ -624,14 +623,14 @@ static void register_nodes(void)
  #endif
  
  /* Only valid if CPU is present. */
@@ -1102,7 +1105,7 @@
  
  static int __init topology_init(void)
  {
-@@ -646,7 +645,7 @@
+@@ -656,7 +655,7 @@ static int __init topology_init(void)
  		if (cpu_online(cpu) || c->hotpluggable) {
  			register_cpu(c, cpu);
  
@@ -1113,7 +1116,7 @@
  		if (cpu_online(cpu))
 --- a/arch/powerpc/mm/numa.c
 +++ b/arch/powerpc/mm/numa.c
-@@ -1462,7 +1462,7 @@
+@@ -1462,7 +1462,7 @@ int arch_update_cpu_topology(void)
  {
  	int cpu, nid, old_nid;
  	unsigned int associativity[VPHN_ASSOC_BUFSIZE] = {0};
@@ -1122,7 +1125,7 @@
  
  	for_each_cpu(cpu,&cpu_associativity_changes_mask) {
  		vphn_get_associativity(cpu, associativity);
-@@ -1483,9 +1483,9 @@
+@@ -1483,9 +1483,9 @@ int arch_update_cpu_topology(void)
  		register_cpu_under_node(cpu, nid);
  		put_online_cpus();
  
@@ -1157,7 +1160,7 @@
  	.attr = { .name = __stringify(_name), .mode = _mode },	\
  	.show	= _prefix ## _show_ ## _name,			\
  	.store	= _prefix ## _store_ ## _name,			\
-@@ -76,36 +76,36 @@
+@@ -76,36 +76,36 @@ static inline u8 temp_to_reg(u8 temp)
  	return ((temp - TEMP_MIN) >> 1) & 0x3f;
  }
  
@@ -1201,7 +1204,7 @@
  
  	return sprintf(buf, "%d\n", reg_to_temp(value));
  }
-@@ -147,48 +147,48 @@
+@@ -147,48 +147,48 @@ static ssize_t store_throttle(struct cbe
  	return size;
  }
  
@@ -1270,7 +1273,7 @@
  	value = in_be64(&pmd_regs->ts_ctsr2);
  
  	value = (value >> pos) & 0x3f;
-@@ -199,64 +199,64 @@
+@@ -199,64 +199,64 @@ static ssize_t ppe_show_temp(struct sys_
  
  /* shows the temperature of the DTS on the PPE,
   * located near the linear thermal sensor */
@@ -1363,7 +1366,7 @@
  
  
  static struct attribute *spu_attributes[] = {
-@@ -272,19 +272,19 @@
+@@ -272,19 +272,19 @@ static struct attribute_group spu_attrib
  	.attrs	= spu_attributes,
  };
  
@@ -1388,7 +1391,7 @@
  
  static struct attribute *ppe_attributes[] = {
  	&attr_ppe_temperature0.attr,
-@@ -307,7 +307,7 @@
+@@ -307,7 +307,7 @@ static int __init init_default_values(vo
  {
  	int cpu;
  	struct cbe_pmd_regs __iomem *pmd_regs;
@@ -1397,7 +1400,7 @@
  	union ppe_spe_reg tpr;
  	union spe_reg str1;
  	u64 str2;
-@@ -349,14 +349,14 @@
+@@ -349,14 +349,14 @@ static int __init init_default_values(vo
  
  	for_each_possible_cpu (cpu) {
  		pr_debug("processing cpu %d\n", cpu);
@@ -1416,7 +1419,7 @@
  
  		if (!pmd_regs) {
  			pr_info("invalid CBE regs pointer for cbe_thermal\n");
-@@ -379,8 +379,8 @@
+@@ -379,8 +379,8 @@ static int __init thermal_init(void)
  	int rc = init_default_values();
  
  	if (rc == 0) {
@@ -1427,7 +1430,7 @@
  	}
  
  	return rc;
-@@ -389,8 +389,8 @@
+@@ -389,8 +389,8 @@ module_init(thermal_init);
  
  static void __exit thermal_exit(void)
  {
@@ -1440,7 +1443,7 @@
  
 --- a/arch/powerpc/platforms/cell/spu_base.c
 +++ b/arch/powerpc/platforms/cell/spu_base.c
-@@ -519,31 +519,32 @@
+@@ -519,31 +519,32 @@ void spu_init_channels(struct spu *spu)
  }
  EXPORT_SYMBOL_GPL(spu_init_channels);
  
@@ -1479,7 +1482,7 @@
  
  		/* we're in trouble here, but try unwinding anyway */
  		if (rc) {
-@@ -552,7 +553,7 @@
+@@ -552,7 +553,7 @@ int spu_add_sysdev_attr_group(struct att
  
  			list_for_each_entry_continue_reverse(spu,
  					&spu_full_list, full_list)
@@ -1488,7 +1491,7 @@
  			break;
  		}
  	}
-@@ -561,45 +562,45 @@
+@@ -561,45 +562,45 @@ int spu_add_sysdev_attr_group(struct att
  
  	return rc;
  }
@@ -1546,7 +1549,7 @@
  
  	return 0;
  }
-@@ -635,7 +636,7 @@
+@@ -635,7 +636,7 @@ static int __init create_spu(void *data)
  	if (ret)
  		goto out_destroy;
  
@@ -1555,7 +1558,7 @@
  	if (ret)
  		goto out_free_irqs;
  
-@@ -692,10 +693,10 @@
+@@ -692,10 +693,10 @@ static unsigned long long spu_acct_time(
  }
  
  
@@ -1569,7 +1572,7 @@
  
  	return sprintf(buf, "%s %llu %llu %llu %llu "
  		      "%llu %llu %llu %llu %llu %llu %llu %llu\n",
-@@ -714,7 +715,7 @@
+@@ -714,7 +715,7 @@ static ssize_t spu_stat_show(struct sys_
  		spu->stats.libassist);
  }
  
@@ -1578,7 +1581,7 @@
  
  #ifdef CONFIG_KEXEC
  
-@@ -813,8 +814,8 @@
+@@ -813,8 +814,8 @@ static int __init init_spu_base(void)
  	if (!spu_management_ops)
  		goto out;
  
@@ -1589,7 +1592,7 @@
  	if (ret)
  		goto out;
  
-@@ -823,7 +824,7 @@
+@@ -823,7 +824,7 @@ static int __init init_spu_base(void)
  	if (ret < 0) {
  		printk(KERN_WARNING "%s: Error initializing spus\n",
  			__func__);
@@ -1598,7 +1601,7 @@
  	}
  
  	if (ret > 0)
-@@ -833,15 +834,15 @@
+@@ -833,15 +834,15 @@ static int __init init_spu_base(void)
  	xmon_register_spus(&spu_full_list);
  	crash_register_spus(&spu_full_list);
  	mutex_unlock(&spu_full_list_mutex);
@@ -1628,7 +1631,7 @@
  #include <linux/cpu.h>
  #include <linux/of.h>
  #include <asm/cputhreads.h>
-@@ -184,7 +184,7 @@
+@@ -184,7 +184,7 @@ static ssize_t get_best_energy_list(char
  	return s-page;
  }
  
@@ -1637,7 +1640,7 @@
  					char *page, int activate)
  {
  	int rc;
-@@ -207,26 +207,26 @@
+@@ -207,26 +207,26 @@ static ssize_t get_best_energy_data(stru
  
  /* Wrapper functions */
  
@@ -1672,7 +1675,7 @@
  {
  	return get_best_energy_data(dev, page, 0);
  }
-@@ -241,48 +241,48 @@
+@@ -241,48 +241,48 @@ static ssize_t percpu_deactivate_hint_sh
   *	Per-cpu value of the hint
   */
  
@@ -1739,7 +1742,7 @@
  		if (err)
  			break;
  	}
-@@ -298,23 +298,20 @@
+@@ -298,23 +298,20 @@ static int __init pseries_energy_init(vo
  static void __exit pseries_energy_cleanup(void)
  {
  	int cpu;
@@ -1771,7 +1774,7 @@
  }
 --- a/arch/powerpc/sysdev/ppc4xx_cpm.c
 +++ b/arch/powerpc/sysdev/ppc4xx_cpm.c
-@@ -179,12 +179,12 @@
+@@ -179,12 +179,12 @@ static struct kobj_attribute cpm_idle_at
  
  static void cpm_idle_config_sysfs(void)
  {
@@ -1789,7 +1792,7 @@
  		printk(KERN_WARNING
 --- a/arch/s390/kernel/smp.c
 +++ b/arch/s390/kernel/smp.c
-@@ -831,8 +831,8 @@
+@@ -831,8 +831,8 @@ int setup_profiling_timer(unsigned int m
  }
  
  #ifdef CONFIG_HOTPLUG_CPU
@@ -1800,7 +1803,7 @@
  {
  	ssize_t count;
  
-@@ -842,8 +842,8 @@
+@@ -842,8 +842,8 @@ static ssize_t cpu_configure_show(struct
  	return count;
  }
  
@@ -1811,7 +1814,7 @@
  				  const char *buf, size_t count)
  {
  	int cpu = dev->id;
-@@ -889,11 +889,11 @@
+@@ -889,11 +889,11 @@ out:
  	put_online_cpus();
  	return rc ? rc : count;
  }
@@ -1826,7 +1829,7 @@
  {
  	int cpu = dev->id;
  	ssize_t count;
-@@ -919,22 +919,22 @@
+@@ -919,22 +919,22 @@ static ssize_t cpu_polarization_show(str
  	mutex_unlock(&smp_cpu_state_mutex);
  	return count;
  }
@@ -1856,7 +1859,7 @@
  	NULL,
  };
  
-@@ -942,8 +942,8 @@
+@@ -942,8 +942,8 @@ static struct attribute_group cpu_common
  	.attrs = cpu_common_attrs,
  };
  
@@ -1867,7 +1870,7 @@
  {
  	unsigned int capability;
  	int rc;
-@@ -953,10 +953,10 @@
+@@ -953,10 +953,10 @@ static ssize_t show_capability(struct sy
  		return rc;
  	return sprintf(buf, "%u\n", capability);
  }
@@ -1881,7 +1884,7 @@
  {
  	struct s390_idle_data *idle;
  	unsigned long long idle_count;
-@@ -976,10 +976,10 @@
+@@ -976,10 +976,10 @@ repeat:
  		goto repeat;
  	return sprintf(buf, "%llu\n", idle_count);
  }
@@ -1895,7 +1898,7 @@
  {
  	struct s390_idle_data *idle;
  	unsigned long long now, idle_time, idle_enter;
-@@ -1001,12 +1001,12 @@
+@@ -1001,12 +1001,12 @@ repeat:
  		goto repeat;
  	return sprintf(buf, "%llu\n", idle_time >> 12);
  }
@@ -1912,16 +1915,16 @@
  	NULL,
  };
  
-@@ -1019,7 +1019,7 @@
+@@ -1019,7 +1019,7 @@ static int __cpuinit smp_cpu_notify(stru
  {
  	unsigned int cpu = (unsigned int)(long)hcpu;
  	struct cpu *c = &per_cpu(cpu_devices, cpu);
 -	struct sys_device *s = &c->sysdev;
 +	struct device *s = &c->dev;
- 	struct s390_idle_data *idle;
  	int err = 0;
  
-@@ -1045,7 +1045,7 @@
+ 	switch (action) {
+@@ -1042,7 +1042,7 @@ static struct notifier_block __cpuinitda
  static int __devinit smp_add_present_cpu(int cpu)
  {
  	struct cpu *c = &per_cpu(cpu_devices, cpu);
@@ -1930,7 +1933,7 @@
  	int rc;
  
  	c->hotpluggable = 1;
-@@ -1098,8 +1098,8 @@
+@@ -1095,8 +1095,8 @@ out:
  	return rc;
  }
  
@@ -1941,7 +1944,7 @@
  				  const char *buf,
  				  size_t count)
  {
-@@ -1108,11 +1108,11 @@
+@@ -1105,11 +1105,11 @@ static ssize_t __ref rescan_store(struct
  	rc = smp_rescan_cpus();
  	return rc ? rc : count;
  }
@@ -1956,7 +1959,7 @@
  				char *buf)
  {
  	ssize_t count;
-@@ -1123,8 +1123,8 @@
+@@ -1120,8 +1120,8 @@ static ssize_t dispatching_show(struct s
  	return count;
  }
  
@@ -1967,7 +1970,7 @@
  				 const char *buf,
  				 size_t count)
  {
-@@ -1148,7 +1148,7 @@
+@@ -1145,7 +1145,7 @@ out:
  	put_online_cpus();
  	return rc ? rc : count;
  }
@@ -1976,7 +1979,7 @@
  			 dispatching_store);
  
  static int __init topology_init(void)
-@@ -1159,11 +1159,11 @@
+@@ -1156,11 +1156,11 @@ static int __init topology_init(void)
  	register_cpu_notifier(&smp_cpu_nb);
  
  #ifdef CONFIG_HOTPLUG_CPU
@@ -1992,7 +1995,7 @@
  	for_each_present_cpu(cpu) {
 --- a/arch/s390/kernel/topology.c
 +++ b/arch/s390/kernel/topology.c
-@@ -261,7 +261,7 @@
+@@ -261,7 +261,7 @@ void store_topology(struct sysinfo_15_1_
  int arch_update_cpu_topology(void)
  {
  	struct sysinfo_15_1_x *info = tl_info;
@@ -2001,7 +2004,7 @@
  	int cpu;
  
  	if (!MACHINE_HAS_TOPOLOGY) {
-@@ -273,8 +273,8 @@
+@@ -273,8 +273,8 @@ int arch_update_cpu_topology(void)
  	tl_to_cores(info);
  	update_cpu_core_map();
  	for_each_online_cpu(cpu) {
@@ -2023,7 +2026,7 @@
  #include <linux/kernel.h>
  #include <linux/module.h>
  #include <linux/slab.h>
-@@ -337,9 +337,9 @@
+@@ -337,9 +337,9 @@ static struct kobj_type ktype_percpu_ent
  	.default_attrs	= sq_sysfs_attrs,
  };
  
@@ -2035,7 +2038,7 @@
  	struct kobject *kobj;
  	int error;
  
-@@ -348,25 +348,27 @@
+@@ -348,25 +348,27 @@ static int __devinit sq_sysdev_add(struc
  		return -ENOMEM;
  
  	kobj = sq_kobject[cpu];
@@ -2069,7 +2072,7 @@
  };
  
  static int __init sq_api_init(void)
-@@ -386,7 +388,7 @@
+@@ -386,7 +388,7 @@ static int __init sq_api_init(void)
  	if (unlikely(!sq_bitmap))
  		goto out;
  
@@ -2078,7 +2081,7 @@
  	if (unlikely(ret != 0))
  		goto out;
  
-@@ -401,7 +403,7 @@
+@@ -401,7 +403,7 @@ out:
  
  static void __exit sq_api_exit(void)
  {
@@ -2115,7 +2118,7 @@
  
  SHOW_MMUSTAT_ULONG(immu_tsb_hits_ctx0_8k_tte);
  SHOW_MMUSTAT_ULONG(immu_tsb_ticks_ctx0_8k_tte);
-@@ -58,38 +58,38 @@
+@@ -58,38 +58,38 @@ SHOW_MMUSTAT_ULONG(dmmu_tsb_hits_ctxnon0
  SHOW_MMUSTAT_ULONG(dmmu_tsb_ticks_ctxnon0_256mb_tte);
  
  static struct attribute *mmu_stat_attrs[] = {
@@ -2186,7 +2189,7 @@
  	NULL,
  };
  
-@@ -139,15 +139,15 @@
+@@ -139,15 +139,15 @@ static unsigned long write_mmustat_enabl
  	return sun4v_mmustat_conf(ra, &orig_ra);
  }
  
@@ -2206,7 +2209,7 @@
  			size_t count)
  {
  	unsigned long val, err;
-@@ -163,39 +163,39 @@
+@@ -163,39 +163,39 @@ static ssize_t store_mmustat_enable(stru
  	return count;
  }
  
@@ -2255,7 +2258,7 @@
  { \
  	cpuinfo_sparc *c = &cpu_data(dev->id); \
  	return sprintf(buf, "%u\n", c->MEMBER); \
-@@ -209,14 +209,14 @@
+@@ -209,14 +209,14 @@ SHOW_CPUDATA_UINT_NAME(l1_icache_line_si
  SHOW_CPUDATA_UINT_NAME(l2_cache_size, ecache_size);
  SHOW_CPUDATA_UINT_NAME(l2_cache_line_size, ecache_line_size);
  
@@ -2278,7 +2281,7 @@
  };
  
  static DEFINE_PER_CPU(struct cpu, cpu_devices);
-@@ -224,11 +224,11 @@
+@@ -224,11 +224,11 @@ static DEFINE_PER_CPU(struct cpu, cpu_de
  static void register_cpu_online(unsigned int cpu)
  {
  	struct cpu *c = &per_cpu(cpu_devices, cpu);
@@ -2292,7 +2295,7 @@
  
  	register_mmu_stats(s);
  }
-@@ -237,12 +237,12 @@
+@@ -237,12 +237,12 @@ static void register_cpu_online(unsigned
  static void unregister_cpu_online(unsigned int cpu)
  {
  	struct cpu *c = &per_cpu(cpu_devices, cpu);
@@ -2318,7 +2321,7 @@
  #include <linux/cpu.h>
  #include <linux/slab.h>
  #include <linux/smp.h>
-@@ -32,55 +32,55 @@
+@@ -32,55 +32,55 @@ static ssize_t get_hv_confstr(char *page
  	return n;
  }
  
@@ -2392,7 +2395,7 @@
  
  HV_CONF_ATTR(version,		HV_CONFSTR_HV_SW_VER)
  HV_CONF_ATTR(config_version,	HV_CONFSTR_HV_CONFIG_VER)
-@@ -96,15 +96,15 @@
+@@ -96,15 +96,15 @@ HV_CONF_ATTR(mezz_description,	HV_CONFST
  HV_CONF_ATTR(switch_control,	HV_CONFSTR_SWITCH_CONTROL)
  
  static struct attribute *board_attrs[] = {
@@ -2417,7 +2420,7 @@
  	NULL
  };
  
-@@ -151,12 +151,11 @@
+@@ -151,12 +151,11 @@ hvconfig_bin_read(struct file *filp, str
  
  static int __init create_sysfs_entries(void)
  {
@@ -2431,7 +2434,7 @@
  	create_cpu_attr(chip_width);
  	create_cpu_attr(chip_height);
  	create_cpu_attr(chip_serial);
-@@ -164,7 +163,7 @@
+@@ -164,7 +163,7 @@ static int __init create_sysfs_entries(v
  
  #define create_hv_attr(name)						\
  	if (!err)							\
@@ -2442,7 +2445,7 @@
  	create_hv_attr(config_version);
 --- a/arch/x86/include/asm/mce.h
 +++ b/arch/x86/include/asm/mce.h
-@@ -149,7 +149,7 @@
+@@ -149,7 +149,7 @@ static inline void enable_p5_mce(void) {
  
  void mce_setup(struct mce *m);
  void mce_log(struct mce *m);
@@ -2453,7 +2456,7 @@
   * Maximum banks number.
 --- a/arch/x86/kernel/cpu/intel_cacheinfo.c
 +++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
-@@ -872,8 +872,7 @@
+@@ -872,8 +872,7 @@ static int __cpuinit detect_cache_attrib
  
  #include <linux/kobject.h>
  #include <linux/sysfs.h>
@@ -2463,7 +2466,7 @@
  
  /* pointer to kobject for cpuX/cache */
  static DEFINE_PER_CPU(struct kobject *, ici_cache_kobject);
-@@ -1101,9 +1100,9 @@
+@@ -1101,9 +1100,9 @@ err_out:
  static DECLARE_BITMAP(cache_dev_map, NR_CPUS);
  
  /* Add/Remove cache interface for CPU device */
@@ -2475,7 +2478,7 @@
  	unsigned long i, j;
  	struct _index_kobject *this_object;
  	struct _cpuid4_info   *this_leaf;
-@@ -1115,7 +1114,7 @@
+@@ -1115,7 +1114,7 @@ static int __cpuinit cache_add_dev(struc
  
  	retval = kobject_init_and_add(per_cpu(ici_cache_kobject, cpu),
  				      &ktype_percpu_entry,
@@ -2484,7 +2487,7 @@
  	if (retval < 0) {
  		cpuid4_cache_sysfs_exit(cpu);
  		return retval;
-@@ -1152,9 +1151,9 @@
+@@ -1152,9 +1151,9 @@ static int __cpuinit cache_add_dev(struc
  	return 0;
  }
  
@@ -2496,7 +2499,7 @@
  	unsigned long i;
  
  	if (per_cpu(ici_cpuid4_info, cpu) == NULL)
-@@ -1173,17 +1172,17 @@
+@@ -1173,17 +1172,17 @@ static int __cpuinit cacheinfo_cpu_callb
  					unsigned long action, void *hcpu)
  {
  	unsigned int cpu = (unsigned long)hcpu;
@@ -2518,7 +2521,7 @@
  		break;
  	}
  	return NOTIFY_OK;
-@@ -1202,9 +1201,9 @@
+@@ -1202,9 +1201,9 @@ static int __cpuinit cache_sysfs_init(vo
  
  	for_each_online_cpu(i) {
  		int err;
@@ -2538,7 +2541,7 @@
  #include <asm/mce.h>
  
  enum severity_level {
-@@ -17,7 +17,7 @@
+@@ -17,7 +17,7 @@ enum severity_level {
  struct mce_bank {
  	u64			ctl;			/* subevents to enable */
  	unsigned char init;				/* initialise bank? */
@@ -2558,7 +2561,7 @@
  #include <linux/syscore_ops.h>
  #include <linux/delay.h>
  #include <linux/ctype.h>
-@@ -1778,7 +1778,7 @@
+@@ -1776,7 +1776,7 @@ static struct syscore_ops mce_syscore_op
  };
  
  /*
@@ -2567,7 +2570,7 @@
   */
  
  static void mce_cpu_restart(void *data)
-@@ -1814,27 +1814,28 @@
+@@ -1812,27 +1812,28 @@ static void mce_enable_ce(void *all)
  		__mcheck_cpu_init_timer();
  }
  
@@ -2601,7 +2604,7 @@
  			const char *buf, size_t size)
  {
  	u64 new;
-@@ -1849,14 +1850,14 @@
+@@ -1847,14 +1848,14 @@ static ssize_t set_bank(struct sys_devic
  }
  
  static ssize_t
@@ -2618,7 +2621,7 @@
  				const char *buf, size_t siz)
  {
  	char *p;
-@@ -1871,8 +1872,8 @@
+@@ -1869,8 +1870,8 @@ static ssize_t set_trigger(struct sys_de
  	return strlen(mce_helper) + !!p;
  }
  
@@ -2629,7 +2632,7 @@
  			     const char *buf, size_t size)
  {
  	u64 new;
-@@ -1895,8 +1896,8 @@
+@@ -1893,8 +1894,8 @@ static ssize_t set_ignore_ce(struct sys_
  	return size;
  }
  
@@ -2640,7 +2643,7 @@
  				 const char *buf, size_t size)
  {
  	u64 new;
-@@ -1918,108 +1919,107 @@
+@@ -1916,108 +1917,107 @@ static ssize_t set_cmci_disabled(struct
  	return size;
  }
  
@@ -2794,7 +2797,7 @@
  }
  
  /* Make sure there are no machine checks on offlined CPUs. */
-@@ -2069,7 +2069,7 @@
+@@ -2067,7 +2067,7 @@ mce_cpu_callback(struct notifier_block *
  	switch (action) {
  	case CPU_ONLINE:
  	case CPU_ONLINE_FROZEN:
@@ -2803,7 +2806,7 @@
  		if (threshold_cpu_callback)
  			threshold_cpu_callback(action, cpu);
  		break;
-@@ -2077,7 +2077,7 @@
+@@ -2075,7 +2075,7 @@ mce_cpu_callback(struct notifier_block *
  	case CPU_DEAD_FROZEN:
  		if (threshold_cpu_callback)
  			threshold_cpu_callback(action, cpu);
@@ -2812,7 +2815,7 @@
  		break;
  	case CPU_DOWN_PREPARE:
  	case CPU_DOWN_PREPARE_FROZEN:
-@@ -2111,7 +2111,7 @@
+@@ -2109,7 +2109,7 @@ static __init void mce_init_banks(void)
  
  	for (i = 0; i < banks; i++) {
  		struct mce_bank *b = &mce_banks[i];
@@ -2821,7 +2824,7 @@
  
  		sysfs_attr_init(&a->attr);
  		a->attr.name	= b->attrname;
-@@ -2131,16 +2131,16 @@
+@@ -2129,16 +2129,16 @@ static __init int mcheck_init_device(voi
  	if (!mce_available(&boot_cpu_data))
  		return -EIO;
  
@@ -2851,7 +2854,7 @@
  #include <linux/errno.h>
  #include <linux/sched.h>
  #include <linux/sysfs.h>
-@@ -548,7 +547,7 @@
+@@ -578,7 +577,7 @@ static __cpuinit int threshold_create_ba
  		if (!b)
  			goto out;
  
@@ -2860,7 +2863,7 @@
  					b->kobj, name);
  		if (err)
  			goto out;
-@@ -571,7 +570,7 @@
+@@ -601,7 +600,7 @@ static __cpuinit int threshold_create_ba
  		goto out;
  	}
  
@@ -2869,7 +2872,7 @@
  	if (!b->kobj)
  		goto out_free;
  
-@@ -591,7 +590,7 @@
+@@ -621,7 +620,7 @@ static __cpuinit int threshold_create_ba
  		if (i == cpu)
  			continue;
  
@@ -2878,7 +2881,7 @@
  					b->kobj, name);
  		if (err)
  			goto out;
-@@ -669,7 +668,7 @@
+@@ -699,7 +698,7 @@ static void threshold_remove_bank(unsign
  #ifdef CONFIG_SMP
  	/* sibling symlink */
  	if (shared_bank[bank] && b->blocks->cpu != cpu) {
@@ -2887,7 +2890,7 @@
  		per_cpu(threshold_banks, cpu)[bank] = NULL;
  
  		return;
-@@ -681,7 +680,7 @@
+@@ -711,7 +710,7 @@ static void threshold_remove_bank(unsign
  		if (i == cpu)
  			continue;
  
@@ -2906,7 +2909,7 @@
  #include <linux/types.h>
  #include <linux/init.h>
  #include <linux/smp.h>
-@@ -69,16 +68,16 @@
+@@ -69,16 +68,16 @@ static atomic_t therm_throt_en	= ATOMIC_
  static u32 lvtthmr_init __read_mostly;
  
  #ifdef CONFIG_SYSFS
@@ -2930,7 +2933,7 @@
  			char *buf)					\
  {									\
  	unsigned int cpu = dev->id;					\
-@@ -95,20 +94,20 @@
+@@ -95,20 +94,20 @@ static ssize_t therm_throt_sysdev_show_#
  	return ret;							\
  }
  
@@ -2960,7 +2963,7 @@
  	NULL
  };
  
-@@ -223,36 +222,36 @@
+@@ -223,36 +222,36 @@ static int thresh_event_valid(int event)
  
  #ifdef CONFIG_SYSFS
  /* Add/Remove thermal_throttle interface for CPU device: */
@@ -3007,7 +3010,7 @@
  }
  
  /* Mutex protecting device creation against CPU hotplug: */
-@@ -265,16 +264,16 @@
+@@ -265,16 +264,16 @@ thermal_throttle_cpu_callback(struct not
  			      void *hcpu)
  {
  	unsigned int cpu = (unsigned long)hcpu;
@@ -3027,7 +3030,7 @@
  		mutex_unlock(&therm_cpu_lock);
  		WARN_ON(err);
  		break;
-@@ -283,7 +282,7 @@
+@@ -283,7 +282,7 @@ thermal_throttle_cpu_callback(struct not
  	case CPU_DEAD:
  	case CPU_DEAD_FROZEN:
  		mutex_lock(&therm_cpu_lock);
@@ -3036,7 +3039,7 @@
  		mutex_unlock(&therm_cpu_lock);
  		break;
  	}
-@@ -310,7 +309,7 @@
+@@ -310,7 +309,7 @@ static __init int thermal_throttle_init_
  #endif
  	/* connect live CPUs to sysfs */
  	for_each_online_cpu(cpu) {
@@ -3047,7 +3050,7 @@
  #ifdef CONFIG_HOTPLUG_CPU
 --- a/arch/x86/kernel/microcode_core.c
 +++ b/arch/x86/kernel/microcode_core.c
-@@ -292,8 +292,8 @@
+@@ -292,8 +292,8 @@ static int reload_for_cpu(int cpu)
  	return err;
  }
  
@@ -3058,7 +3061,7 @@
  			    const char *buf, size_t size)
  {
  	unsigned long val;
-@@ -318,30 +318,30 @@
+@@ -329,30 +329,30 @@ static ssize_t reload_store(struct sys_d
  	return ret;
  }
  
@@ -3099,7 +3102,7 @@
  	NULL
  };
  
-@@ -405,16 +405,16 @@
+@@ -416,16 +416,16 @@ static enum ucode_state microcode_update
  	return ustate;
  }
  
@@ -3119,7 +3122,7 @@
  	if (err)
  		return err;
  
-@@ -424,22 +424,24 @@
+@@ -435,22 +435,24 @@ static int mc_sysdev_add(struct sys_devi
  	return err;
  }
  
@@ -3150,7 +3153,7 @@
  };
  
  /**
-@@ -462,9 +464,9 @@
+@@ -473,9 +475,9 @@ static __cpuinit int
  mc_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu)
  {
  	unsigned int cpu = (unsigned long)hcpu;
@@ -3162,7 +3165,7 @@
  	switch (action) {
  	case CPU_ONLINE:
  	case CPU_ONLINE_FROZEN:
-@@ -472,13 +474,13 @@
+@@ -483,13 +485,13 @@ mc_cpu_callback(struct notifier_block *n
  	case CPU_DOWN_FAILED:
  	case CPU_DOWN_FAILED_FROZEN:
  		pr_debug("CPU%d added\n", cpu);
@@ -3178,7 +3181,7 @@
  		pr_debug("CPU%d removed\n", cpu);
  		break;
  
-@@ -523,7 +525,7 @@
+@@ -534,7 +536,7 @@ static int __init microcode_init(void)
  	get_online_cpus();
  	mutex_lock(&microcode_mutex);
  
@@ -3187,7 +3190,7 @@
  
  	mutex_unlock(&microcode_mutex);
  	put_online_cpus();
-@@ -533,7 +535,7 @@
+@@ -544,7 +546,7 @@ static int __init microcode_init(void)
  
  	error = microcode_dev_init();
  	if (error)
@@ -3196,7 +3199,7 @@
  
  	register_syscore_ops(&mc_syscore_ops);
  	register_hotcpu_notifier(&mc_cpu_notifier);
-@@ -543,11 +545,11 @@
+@@ -554,11 +556,11 @@ static int __init microcode_init(void)
  
  	return 0;
  
@@ -3210,7 +3213,7 @@
  
  	mutex_unlock(&microcode_mutex);
  	put_online_cpus();
-@@ -569,7 +571,7 @@
+@@ -580,7 +582,7 @@ static void __exit microcode_exit(void)
  	get_online_cpus();
  	mutex_lock(&microcode_mutex);
  
@@ -3221,7 +3224,7 @@
  	put_online_cpus();
 --- a/drivers/acpi/processor_driver.c
 +++ b/drivers/acpi/processor_driver.c
-@@ -446,7 +446,7 @@
+@@ -446,7 +446,7 @@ static int __cpuinit acpi_processor_add(
  {
  	struct acpi_processor *pr = NULL;
  	int result = 0;
@@ -3230,7 +3233,7 @@
  
  	pr = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL);
  	if (!pr)
-@@ -491,8 +491,8 @@
+@@ -491,8 +491,8 @@ static int __cpuinit acpi_processor_add(
  
  	per_cpu(processors, pr->id) = pr;
  
@@ -3318,7 +3321,7 @@
  		if (!ret)
  			kobject_uevent(&dev->kobj, KOBJ_ONLINE);
  		break;
-@@ -60,44 +59,44 @@
+@@ -60,44 +59,44 @@ static ssize_t __ref store_online(struct
  		ret = count;
  	return ret;
  }
@@ -3374,7 +3377,7 @@
  #endif /* CONFIG_ARCH_CPU_PROBE_RELEASE */
  
  #else /* ... !CONFIG_HOTPLUG_CPU */
-@@ -109,15 +108,15 @@
+@@ -109,15 +108,15 @@ static inline void register_cpu_control(
  #ifdef CONFIG_KEXEC
  #include <linux/kexec.h>
  
@@ -3393,7 +3396,7 @@
  
  	/*
  	 * Might be reading other cpu's data based on which cpu read thread
-@@ -129,7 +128,7 @@
+@@ -129,7 +128,7 @@ static ssize_t show_crash_notes(struct s
  	rc = sprintf(buf, "%Lx\n", addr);
  	return rc;
  }
@@ -3402,7 +3405,7 @@
  #endif
  
  /*
-@@ -137,12 +136,12 @@
+@@ -137,12 +136,12 @@ static SYSDEV_ATTR(crash_notes, 0400, sh
   */
  
  struct cpu_attr {
@@ -3418,7 +3421,7 @@
  			      char *buf)
  {
  	struct cpu_attr *ca = container_of(attr, struct cpu_attr, attr);
-@@ -153,10 +152,10 @@
+@@ -153,10 +152,10 @@ static ssize_t show_cpus_attr(struct sys
  	return n;
  }
  
@@ -3432,7 +3435,7 @@
  static struct cpu_attr cpu_attrs[] = {
  	_CPU_ATTR(online, &cpu_online_mask),
  	_CPU_ATTR(possible, &cpu_possible_mask),
-@@ -166,19 +165,19 @@
+@@ -166,19 +165,19 @@ static struct cpu_attr cpu_attrs[] = {
  /*
   * Print values for NR_CPUS and offlined cpus
   */
@@ -3457,7 +3460,7 @@
  {
  	int n = 0, len = PAGE_SIZE-2;
  	cpumask_var_t offline;
-@@ -205,7 +204,7 @@
+@@ -205,7 +204,7 @@ static ssize_t print_cpus_offline(struct
  	n += snprintf(&buf[n], len - n, "\n");
  	return n;
  }
@@ -3466,7 +3469,7 @@
  
  /*
   * register_cpu - Setup a sysfs device for a CPU.
-@@ -218,57 +217,66 @@
+@@ -218,57 +217,66 @@ static SYSDEV_CLASS_ATTR(offline, 0444,
  int __cpuinit register_cpu(struct cpu *cpu, int num)
  {
  	int error;
@@ -3561,7 +3564,7 @@
 -};
 --- a/drivers/base/node.c
 +++ b/drivers/base/node.c
-@@ -317,12 +317,12 @@
+@@ -317,12 +317,12 @@ struct node node_devices[MAX_NUMNODES];
  int register_cpu_under_node(unsigned int cpu, unsigned int nid)
  {
  	int ret;
@@ -3576,7 +3579,7 @@
  	if (!obj)
  		return 0;
  
-@@ -339,12 +339,12 @@
+@@ -339,12 +339,12 @@ int register_cpu_under_node(unsigned int
  
  int unregister_cpu_under_node(unsigned int cpu, unsigned int nid)
  {
@@ -3620,7 +3623,7 @@
  {								\
  	unsigned int cpu = dev->id;				\
  	return sprintf(buf, "%d\n", topology_##name(cpu));	\
-@@ -65,16 +64,16 @@
+@@ -65,16 +64,16 @@ static ssize_t show_cpumap(int type, con
  
  #ifdef arch_provides_topology_pointers
  #define define_siblings_show_map(name)					\
@@ -3641,7 +3644,7 @@
  				  char *buf)				\
  {									\
  	unsigned int cpu = dev->id;					\
-@@ -83,15 +82,15 @@
+@@ -83,15 +82,15 @@ static ssize_t show_##name##_list(struct
  
  #else
  #define define_siblings_show_map(name)					\
@@ -3661,7 +3664,7 @@
  				  char *buf)				\
  {									\
  	return show_cpumap(1, topology_##name(dev->id), buf);		\
-@@ -124,16 +123,16 @@
+@@ -124,16 +123,16 @@ define_one_ro_named(book_siblings_list,
  #endif
  
  static struct attribute *default_attrs[] = {
@@ -3687,7 +3690,7 @@
  #endif
  	NULL
  };
-@@ -146,16 +145,16 @@
+@@ -146,16 +145,16 @@ static struct attribute_group topology_a
  /* Add/Remove cpu_topology interface for CPU device */
  static int __cpuinit topology_add_dev(unsigned int cpu)
  {
@@ -3710,7 +3713,7 @@
  static int __cpuinit topology_cpu_callback(struct notifier_block *nfb,
 --- a/drivers/cpufreq/cpufreq.c
 +++ b/drivers/cpufreq/cpufreq.c
-@@ -679,7 +679,7 @@
+@@ -679,7 +679,7 @@ static struct kobj_type ktype_cpufreq =
   */
  static int cpufreq_add_dev_policy(unsigned int cpu,
  				  struct cpufreq_policy *policy,
@@ -3719,7 +3722,7 @@
  {
  	int ret = 0;
  #ifdef CONFIG_SMP
-@@ -728,7 +728,7 @@
+@@ -728,7 +728,7 @@ static int cpufreq_add_dev_policy(unsign
  			spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
  
  			pr_debug("CPU already managed, adding link\n");
@@ -3728,7 +3731,7 @@
  						&managed_policy->kobj,
  						"cpufreq");
  			if (ret)
-@@ -761,7 +761,7 @@
+@@ -761,7 +761,7 @@ static int cpufreq_add_dev_symlink(unsig
  
  	for_each_cpu(j, policy->cpus) {
  		struct cpufreq_policy *managed_policy;
@@ -3737,7 +3740,7 @@
  
  		if (j == cpu)
  			continue;
-@@ -770,8 +770,8 @@
+@@ -770,8 +770,8 @@ static int cpufreq_add_dev_symlink(unsig
  
  		pr_debug("CPU %u already managed, adding link\n", j);
  		managed_policy = cpufreq_cpu_get(cpu);
@@ -3748,7 +3751,7 @@
  					"cpufreq");
  		if (ret) {
  			cpufreq_cpu_put(managed_policy);
-@@ -783,7 +783,7 @@
+@@ -783,7 +783,7 @@ static int cpufreq_add_dev_symlink(unsig
  
  static int cpufreq_add_dev_interface(unsigned int cpu,
  				     struct cpufreq_policy *policy,
@@ -3757,7 +3760,7 @@
  {
  	struct cpufreq_policy new_policy;
  	struct freq_attr **drv_attr;
-@@ -793,7 +793,7 @@
+@@ -793,7 +793,7 @@ static int cpufreq_add_dev_interface(uns
  
  	/* prepare interface data */
  	ret = kobject_init_and_add(&policy->kobj, &ktype_cpufreq,
@@ -3766,7 +3769,7 @@
  	if (ret)
  		return ret;
  
-@@ -866,9 +866,9 @@
+@@ -866,9 +866,9 @@ err_out_kobj_put:
   * with with cpu hotplugging and all hell will break loose. Tried to clean this
   * mess up, but more thorough testing is needed. - Mathieu
   */
@@ -3778,7 +3781,7 @@
  	int ret = 0, found = 0;
  	struct cpufreq_policy *policy;
  	unsigned long flags;
-@@ -947,7 +947,7 @@
+@@ -947,7 +947,7 @@ static int cpufreq_add_dev(struct sys_de
  	blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
  				     CPUFREQ_START, policy);
  
@@ -3787,7 +3790,7 @@
  	if (ret) {
  		if (ret > 0)
  			/* This is a managed cpu, symlink created,
-@@ -956,7 +956,7 @@
+@@ -956,7 +956,7 @@ static int cpufreq_add_dev(struct sys_de
  		goto err_unlock_policy;
  	}
  
@@ -3796,7 +3799,7 @@
  	if (ret)
  		goto err_out_unregister;
  
-@@ -999,15 +999,15 @@
+@@ -999,15 +999,15 @@ module_out:
   * Caller should already have policy_rwsem in write mode for this CPU.
   * This routine frees the rwsem before returning.
   */
@@ -3815,7 +3818,7 @@
  	unsigned int j;
  #endif
  
-@@ -1032,7 +1032,7 @@
+@@ -1032,7 +1032,7 @@ static int __cpufreq_remove_dev(struct s
  		pr_debug("removing link\n");
  		cpumask_clear_cpu(cpu, data->cpus);
  		spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
@@ -3824,7 +3827,7 @@
  		cpufreq_cpu_put(data);
  		unlock_policy_rwsem_write(cpu);
  		sysfs_remove_link(kobj, "cpufreq");
-@@ -1071,8 +1071,8 @@
+@@ -1071,8 +1071,8 @@ static int __cpufreq_remove_dev(struct s
  			strncpy(per_cpu(cpufreq_cpu_governor, j),
  				data->governor->name, CPUFREQ_NAME_LEN);
  #endif
@@ -3835,7 +3838,7 @@
  			unlock_policy_rwsem_write(cpu);
  			sysfs_remove_link(kobj, "cpufreq");
  			lock_policy_rwsem_write(cpu);
-@@ -1112,11 +1112,11 @@
+@@ -1112,11 +1112,11 @@ static int __cpufreq_remove_dev(struct s
  	if (unlikely(cpumask_weight(data->cpus) > 1)) {
  		/* first sibling now owns the new sysfs dir */
  		cpumask_clear_cpu(cpu, data->cpus);
@@ -3849,7 +3852,7 @@
  	}
  #endif
  
-@@ -1128,9 +1128,9 @@
+@@ -1128,9 +1128,9 @@ static int __cpufreq_remove_dev(struct s
  }
  
  
@@ -3861,7 +3864,7 @@
  	int retval;
  
  	if (cpu_is_offline(cpu))
-@@ -1139,7 +1139,7 @@
+@@ -1139,7 +1139,7 @@ static int cpufreq_remove_dev(struct sys
  	if (unlikely(lock_policy_rwsem_write(cpu)))
  		BUG();
  
@@ -3870,7 +3873,7 @@
  	return retval;
  }
  
-@@ -1271,9 +1271,11 @@
+@@ -1271,9 +1271,11 @@ out:
  }
  EXPORT_SYMBOL(cpufreq_get);
  
@@ -3885,7 +3888,7 @@
  };
  
  
-@@ -1765,25 +1767,25 @@
+@@ -1765,25 +1767,25 @@ static int __cpuinit cpufreq_cpu_callbac
  					unsigned long action, void *hcpu)
  {
  	unsigned int cpu = (unsigned long)hcpu;
@@ -3917,7 +3920,7 @@
  			break;
  		}
  	}
-@@ -1830,8 +1832,7 @@
+@@ -1830,8 +1832,7 @@ int cpufreq_register_driver(struct cpufr
  	cpufreq_driver = driver_data;
  	spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
  
@@ -3927,7 +3930,7 @@
  	if (ret)
  		goto err_null_driver;
  
-@@ -1850,7 +1851,7 @@
+@@ -1850,7 +1851,7 @@ int cpufreq_register_driver(struct cpufr
  		if (ret) {
  			pr_debug("no CPU initialized for driver %s\n",
  							driver_data->name);
@@ -3936,7 +3939,7 @@
  		}
  	}
  
-@@ -1858,9 +1859,8 @@
+@@ -1858,9 +1859,8 @@ int cpufreq_register_driver(struct cpufr
  	pr_debug("driver %s up and running\n", driver_data->name);
  
  	return 0;
@@ -3948,7 +3951,7 @@
  err_null_driver:
  	spin_lock_irqsave(&cpufreq_driver_lock, flags);
  	cpufreq_driver = NULL;
-@@ -1887,7 +1887,7 @@
+@@ -1887,7 +1887,7 @@ int cpufreq_unregister_driver(struct cpu
  
  	pr_debug("unregistering driver %s\n", driver->name);
  
@@ -3957,7 +3960,7 @@
  	unregister_hotcpu_notifier(&cpufreq_cpu_notifier);
  
  	spin_lock_irqsave(&cpufreq_driver_lock, flags);
-@@ -1907,8 +1907,7 @@
+@@ -1907,8 +1907,7 @@ static int __init cpufreq_core_init(void
  		init_rwsem(&per_cpu(cpu_policy_rwsem, cpu));
  	}
  
@@ -3979,7 +3982,7 @@
  #include <linux/cpufreq.h>
 --- a/drivers/cpuidle/cpuidle.c
 +++ b/drivers/cpuidle/cpuidle.c
-@@ -291,10 +291,10 @@
+@@ -291,10 +291,10 @@ EXPORT_SYMBOL_GPL(cpuidle_disable_device
  static int __cpuidle_register_device(struct cpuidle_device *dev)
  {
  	int ret;
@@ -3992,7 +3995,7 @@
  		return -EINVAL;
  	if (!try_module_get(cpuidle_driver->owner))
  		return -EINVAL;
-@@ -303,7 +303,7 @@
+@@ -303,7 +303,7 @@ static int __cpuidle_register_device(str
  
  	per_cpu(cpuidle_devices, dev->cpu) = dev;
  	list_add(&dev->device_list, &cpuidle_detected_devices);
@@ -4001,7 +4004,7 @@
  		module_put(cpuidle_driver->owner);
  		return ret;
  	}
-@@ -344,7 +344,7 @@
+@@ -344,7 +344,7 @@ EXPORT_SYMBOL_GPL(cpuidle_register_devic
   */
  void cpuidle_unregister_device(struct cpuidle_device *dev)
  {
@@ -4010,7 +4013,7 @@
  	struct cpuidle_driver *cpuidle_driver = cpuidle_get_driver();
  
  	if (dev->registered == 0)
-@@ -354,7 +354,7 @@
+@@ -354,7 +354,7 @@ void cpuidle_unregister_device(struct cp
  
  	cpuidle_disable_device(dev);
  
@@ -4019,7 +4022,7 @@
  	list_del(&dev->device_list);
  	wait_for_completion(&dev->kobj_unregister);
  	per_cpu(cpuidle_devices, dev->cpu) = NULL;
-@@ -411,7 +411,7 @@
+@@ -411,7 +411,7 @@ static int __init cpuidle_init(void)
  	if (cpuidle_disabled())
  		return -ENODEV;
  
@@ -4039,7 +4042,7 @@
  
  /* For internal use only */
  extern struct cpuidle_governor *cpuidle_curr_governor;
-@@ -23,11 +23,11 @@
+@@ -23,11 +23,11 @@ extern void cpuidle_uninstall_idle_handl
  extern int cpuidle_switch_governor(struct cpuidle_governor *gov);
  
  /* sysfs */
@@ -4057,7 +4060,7 @@
  #endif /* __DRIVER_CPUIDLE_H */
 --- a/drivers/cpuidle/sysfs.c
 +++ b/drivers/cpuidle/sysfs.c
-@@ -22,8 +22,8 @@
+@@ -22,8 +22,8 @@ static int __init cpuidle_sysfs_setup(ch
  }
  __setup("cpuidle_sysfs_switch", cpuidle_sysfs_setup);
  
@@ -4068,7 +4071,7 @@
  					char *buf)
  {
  	ssize_t i = 0;
-@@ -42,8 +42,8 @@
+@@ -42,8 +42,8 @@ out:
  	return i;
  }
  
@@ -4079,7 +4082,7 @@
  				   char *buf)
  {
  	ssize_t ret;
-@@ -59,8 +59,8 @@
+@@ -59,8 +59,8 @@ static ssize_t show_current_driver(struc
  	return ret;
  }
  
@@ -4090,7 +4093,7 @@
  				     char *buf)
  {
  	ssize_t ret;
-@@ -75,8 +75,8 @@
+@@ -75,8 +75,8 @@ static ssize_t show_current_governor(str
  	return ret;
  }
  
@@ -4101,7 +4104,7 @@
  				      const char *buf, size_t count)
  {
  	char gov_name[CPUIDLE_NAME_LEN];
-@@ -109,50 +109,48 @@
+@@ -109,50 +109,48 @@ static ssize_t store_current_governor(st
  		return count;
  }
  
@@ -4175,7 +4178,7 @@
  }
  
  struct cpuidle_attr {
-@@ -365,16 +363,16 @@
+@@ -365,16 +363,16 @@ void cpuidle_remove_state_sysfs(struct c
  
  /**
   * cpuidle_add_sysfs - creates a sysfs instance for the target device
@@ -4196,7 +4199,7 @@
  				     "cpuidle");
  	if (!error)
  		kobject_uevent(&dev->kobj, KOBJ_ADD);
-@@ -383,11 +381,11 @@
+@@ -383,11 +381,11 @@ int cpuidle_add_sysfs(struct sys_device
  
  /**
   * cpuidle_remove_sysfs - deletes a sysfs instance on the target device
@@ -4222,7 +4225,7 @@
  #include <linux/workqueue.h>
  #include <asm/smp.h>
  
-@@ -31,14 +31,14 @@
+@@ -31,14 +31,14 @@ static struct work_struct sclp_cpu_chang
  static void sclp_cpu_capability_notify(struct work_struct *work)
  {
  	int cpu;
@@ -4278,7 +4281,7 @@
  
  #ifdef CONFIG_HOTPLUG_CPU
  extern void unregister_cpu(struct cpu *cpu);
-@@ -160,7 +160,7 @@
+@@ -161,7 +161,7 @@ static inline void cpu_maps_update_done(
  }
  
  #endif /* CONFIG_SMP */
@@ -4289,7 +4292,7 @@
  /* Stop CPUs going up and down. */
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -7949,54 +7949,52 @@
+@@ -8139,54 +8139,52 @@ static ssize_t sched_power_savings_store
  }
  
  #ifdef CONFIG_SCHED_MC

Copied: dists/squeeze-backports/linux/debian/patches/features/all/debugfs-add-mode-uid-and-gid-options.patch (from r19450, dists/sid/linux/debian/patches/features/all/debugfs-add-mode-uid-and-gid-options.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/debugfs-add-mode-uid-and-gid-options.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/debugfs-add-mode-uid-and-gid-options.patch)
@@ -0,0 +1,208 @@
+From: Ludwig Nussel <ludwig.nussel at suse.de>
+Date: Wed, 25 Jan 2012 11:52:28 +0100
+Subject: debugfs: add mode, uid and gid options
+
+commit d6e486868cde585842d55ba3b6ec57af090fc343 upstream.
+
+Cautious admins may want to restrict access to debugfs. Currently a
+manual chown/chmod e.g. in an init script is needed to achieve that.
+Distributions that want to make the mount options configurable need
+to add extra config files. By allowing to set the root inode's uid,
+gid and mode via mount options no such hacks are needed anymore.
+Instead configuration becomes straight forward via fstab.
+
+Signed-off-by: Ludwig Nussel <ludwig.nussel at suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+[bwh: Backported to 3.2: super_operations::show_options takes a
+ struct vfsmount *, not a struct dentry *]
+---
+ Documentation/filesystems/debugfs.txt |    5 +-
+ fs/debugfs/inode.c                    |  149 ++++++++++++++++++++++++++++++++-
+ 2 files changed, 152 insertions(+), 2 deletions(-)
+
+--- a/Documentation/filesystems/debugfs.txt
++++ b/Documentation/filesystems/debugfs.txt
+@@ -14,7 +14,10 @@ Debugfs is typically mounted with a comm
+ 
+     mount -t debugfs none /sys/kernel/debug
+ 
+-(Or an equivalent /etc/fstab line). 
++(Or an equivalent /etc/fstab line).
++The debugfs root directory is accessible by anyone by default. To
++restrict access to the tree the "uid", "gid" and "mode" mount
++options can be used.
+ 
+ Note that the debugfs API is exported GPL-only to modules.
+ 
+--- a/fs/debugfs/inode.c
++++ b/fs/debugfs/inode.c
+@@ -23,9 +23,13 @@
+ #include <linux/debugfs.h>
+ #include <linux/fsnotify.h>
+ #include <linux/string.h>
++#include <linux/seq_file.h>
++#include <linux/parser.h>
+ #include <linux/magic.h>
+ #include <linux/slab.h>
+ 
++#define DEBUGFS_DEFAULT_MODE	0755
++
+ static struct vfsmount *debugfs_mount;
+ static int debugfs_mount_count;
+ static bool debugfs_registered;
+@@ -125,11 +129,154 @@ static inline int debugfs_positive(struc
+ 	return dentry->d_inode && !d_unhashed(dentry);
+ }
+ 
++struct debugfs_mount_opts {
++	uid_t uid;
++	gid_t gid;
++	umode_t mode;
++};
++
++enum {
++	Opt_uid,
++	Opt_gid,
++	Opt_mode,
++	Opt_err
++};
++
++static const match_table_t tokens = {
++	{Opt_uid, "uid=%u"},
++	{Opt_gid, "gid=%u"},
++	{Opt_mode, "mode=%o"},
++	{Opt_err, NULL}
++};
++
++struct debugfs_fs_info {
++	struct debugfs_mount_opts mount_opts;
++};
++
++static int debugfs_parse_options(char *data, struct debugfs_mount_opts *opts)
++{
++	substring_t args[MAX_OPT_ARGS];
++	int option;
++	int token;
++	char *p;
++
++	opts->mode = DEBUGFS_DEFAULT_MODE;
++
++	while ((p = strsep(&data, ",")) != NULL) {
++		if (!*p)
++			continue;
++
++		token = match_token(p, tokens, args);
++		switch (token) {
++		case Opt_uid:
++			if (match_int(&args[0], &option))
++				return -EINVAL;
++			opts->uid = option;
++			break;
++		case Opt_gid:
++			if (match_octal(&args[0], &option))
++				return -EINVAL;
++			opts->gid = option;
++			break;
++		case Opt_mode:
++			if (match_octal(&args[0], &option))
++				return -EINVAL;
++			opts->mode = option & S_IALLUGO;
++			break;
++		/*
++		 * We might like to report bad mount options here;
++		 * but traditionally debugfs has ignored all mount options
++		 */
++		}
++	}
++
++	return 0;
++}
++
++static int debugfs_apply_options(struct super_block *sb)
++{
++	struct debugfs_fs_info *fsi = sb->s_fs_info;
++	struct inode *inode = sb->s_root->d_inode;
++	struct debugfs_mount_opts *opts = &fsi->mount_opts;
++
++	inode->i_mode &= ~S_IALLUGO;
++	inode->i_mode |= opts->mode;
++
++	inode->i_uid = opts->uid;
++	inode->i_gid = opts->gid;
++
++	return 0;
++}
++
++static int debugfs_remount(struct super_block *sb, int *flags, char *data)
++{
++	int err;
++	struct debugfs_fs_info *fsi = sb->s_fs_info;
++
++	err = debugfs_parse_options(data, &fsi->mount_opts);
++	if (err)
++		goto fail;
++
++	debugfs_apply_options(sb);
++
++fail:
++	return err;
++}
++
++static int debugfs_show_options(struct seq_file *m, struct vfsmount *mnt)
++{
++	struct debugfs_fs_info *fsi = mnt->mnt_sb->s_fs_info;
++	struct debugfs_mount_opts *opts = &fsi->mount_opts;
++
++	if (opts->uid != 0)
++		seq_printf(m, ",uid=%u", opts->uid);
++	if (opts->gid != 0)
++		seq_printf(m, ",gid=%u", opts->gid);
++	if (opts->mode != DEBUGFS_DEFAULT_MODE)
++		seq_printf(m, ",mode=%o", opts->mode);
++
++	return 0;
++}
++
++static const struct super_operations debugfs_super_operations = {
++	.statfs		= simple_statfs,
++	.remount_fs	= debugfs_remount,
++	.show_options	= debugfs_show_options,
++};
++
+ static int debug_fill_super(struct super_block *sb, void *data, int silent)
+ {
+ 	static struct tree_descr debug_files[] = {{""}};
++	struct debugfs_fs_info *fsi;
++	int err;
++
++	save_mount_options(sb, data);
++
++	fsi = kzalloc(sizeof(struct debugfs_fs_info), GFP_KERNEL);
++	sb->s_fs_info = fsi;
++	if (!fsi) {
++		err = -ENOMEM;
++		goto fail;
++	}
++
++	err = debugfs_parse_options(data, &fsi->mount_opts);
++	if (err)
++		goto fail;
++
++	err  =  simple_fill_super(sb, DEBUGFS_MAGIC, debug_files);
++	if (err)
++		goto fail;
++
++	sb->s_op = &debugfs_super_operations;
++
++	debugfs_apply_options(sb);
++
++	return 0;
+ 
+-	return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files);
++fail:
++	kfree(fsi);
++	sb->s_fs_info = NULL;
++	return err;
+ }
+ 
+ static struct dentry *debug_mount(struct file_system_type *fs_type,

Copied: dists/squeeze-backports/linux/debian/patches/features/all/fs-add-link-restriction-audit-reporting.patch (from r19450, dists/sid/linux/debian/patches/features/all/fs-add-link-restriction-audit-reporting.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/fs-add-link-restriction-audit-reporting.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/fs-add-link-restriction-audit-reporting.patch)
@@ -0,0 +1,93 @@
+From: Kees Cook <keescook at chromium.org>
+Date: Wed, 25 Jul 2012 17:29:08 -0700
+Subject: [2/2] fs: add link restriction audit reporting
+
+commit a51d9eaa41866ab6b4b6ecad7b621f8b66ece0dc upstream.
+
+Adds audit messages for unexpected link restriction violations so that
+system owners will have some sort of potentially actionable information
+about misbehaving processes.
+
+Signed-off-by: Kees Cook <keescook at chromium.org>
+Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
+---
+ fs/namei.c            |    2 ++
+ include/linux/audit.h |    4 ++++
+ kernel/audit.c        |   21 +++++++++++++++++++++
+ 3 files changed, 27 insertions(+)
+
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -666,6 +666,7 @@ static inline int may_follow_link(struct
+ 
+ 	path_put_conditional(link, nd);
+ 	path_put(&nd->path);
++	audit_log_link_denied("follow_link", link);
+ 	return -EACCES;
+ }
+ 
+@@ -734,6 +735,7 @@ static int may_linkat(struct path *link)
+ 	    capable(CAP_FOWNER))
+ 		return 0;
+ 
++	audit_log_link_denied("linkat", link);
+ 	return -EPERM;
+ }
+ 
+--- a/include/linux/audit.h
++++ b/include/linux/audit.h
+@@ -129,6 +129,7 @@
+ #define AUDIT_LAST_KERN_ANOM_MSG    1799
+ #define AUDIT_ANOM_PROMISCUOUS      1700 /* Device changed promiscuous mode */
+ #define AUDIT_ANOM_ABEND            1701 /* Process ended abnormally */
++#define AUDIT_ANOM_LINK		    1702 /* Suspicious use of file links */
+ #define AUDIT_INTEGRITY_DATA	    1800 /* Data integrity verification */
+ #define AUDIT_INTEGRITY_METADATA    1801 /* Metadata integrity verification */
+ #define AUDIT_INTEGRITY_STATUS	    1802 /* Integrity enable status */
+@@ -611,6 +612,8 @@ extern void		    audit_log_d_path(struct
+ 					     struct path *path);
+ extern void		    audit_log_key(struct audit_buffer *ab,
+ 					  char *key);
++extern void		    audit_log_link_denied(const char *operation,
++						  struct path *link);
+ extern void		    audit_log_lost(const char *message);
+ #ifdef CONFIG_SECURITY
+ extern void 		    audit_log_secctx(struct audit_buffer *ab, u32 secid);
+@@ -640,6 +643,7 @@ extern int audit_enabled;
+ #define audit_log_untrustedstring(a,s) do { ; } while (0)
+ #define audit_log_d_path(b, p, d) do { ; } while (0)
+ #define audit_log_key(b, k) do { ; } while (0)
++#define audit_log_link_denied(o, l) do { ; } while (0)
+ #define audit_log_secctx(b,s) do { ; } while (0)
+ #define audit_enabled 0
+ #endif
+--- a/kernel/audit.c
++++ b/kernel/audit.c
+@@ -1449,6 +1449,27 @@ void audit_log_key(struct audit_buffer *
+ }
+ 
+ /**
++ * audit_log_link_denied - report a link restriction denial
++ * @operation: specific link opreation
++ * @link: the path that triggered the restriction
++ */
++void audit_log_link_denied(const char *operation, struct path *link)
++{
++	struct audit_buffer *ab;
++
++	ab = audit_log_start(current->audit_context, GFP_KERNEL,
++			     AUDIT_ANOM_LINK);
++	audit_log_format(ab, "op=%s action=denied", operation);
++	audit_log_format(ab, " pid=%d comm=", current->pid);
++	audit_log_untrustedstring(ab, current->comm);
++	audit_log_d_path(ab, " path=", link);
++	audit_log_format(ab, " dev=");
++	audit_log_untrustedstring(ab, link->dentry->d_inode->i_sb->s_id);
++	audit_log_format(ab, " ino=%lu", link->dentry->d_inode->i_ino);
++	audit_log_end(ab);
++}
++
++/**
+  * audit_log_end - end one audit record
+  * @ab: the audit_buffer
+  *

Copied: dists/squeeze-backports/linux/debian/patches/features/all/fs-add-link-restrictions.patch (from r19450, dists/sid/linux/debian/patches/features/all/fs-add-link-restrictions.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/fs-add-link-restrictions.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/fs-add-link-restrictions.patch)
@@ -0,0 +1,356 @@
+From: Kees Cook <keescook at chromium.org>
+Date: Wed, 25 Jul 2012 17:29:07 -0700
+Subject: [1/2] fs: add link restrictions
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+commit 800179c9b8a1e796e441674776d11cd4c05d61d7 upstream.
+
+This adds symlink and hardlink restrictions to the Linux VFS.
+
+Symlinks:
+
+A long-standing class of security issues is the symlink-based
+time-of-check-time-of-use race, most commonly seen in world-writable
+directories like /tmp. The common method of exploitation of this flaw
+is to cross privilege boundaries when following a given symlink (i.e. a
+root process follows a symlink belonging to another user). For a likely
+incomplete list of hundreds of examples across the years, please see:
+http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=/tmp
+
+The solution is to permit symlinks to only be followed when outside
+a sticky world-writable directory, or when the uid of the symlink and
+follower match, or when the directory owner matches the symlink's owner.
+
+Some pointers to the history of earlier discussion that I could find:
+
+ 1996 Aug, Zygo Blaxell
+  http://marc.info/?l=bugtraq&m=87602167419830&w=2
+ 1996 Oct, Andrew Tridgell
+  http://lkml.indiana.edu/hypermail/linux/kernel/9610.2/0086.html
+ 1997 Dec, Albert D Cahalan
+  http://lkml.org/lkml/1997/12/16/4
+ 2005 Feb, Lorenzo Hernández García-Hierro
+  http://lkml.indiana.edu/hypermail/linux/kernel/0502.0/1896.html
+ 2010 May, Kees Cook
+  https://lkml.org/lkml/2010/5/30/144
+
+Past objections and rebuttals could be summarized as:
+
+ - Violates POSIX.
+   - POSIX didn't consider this situation and it's not useful to follow
+     a broken specification at the cost of security.
+ - Might break unknown applications that use this feature.
+   - Applications that break because of the change are easy to spot and
+     fix. Applications that are vulnerable to symlink ToCToU by not having
+     the change aren't. Additionally, no applications have yet been found
+     that rely on this behavior.
+ - Applications should just use mkstemp() or O_CREATE|O_EXCL.
+   - True, but applications are not perfect, and new software is written
+     all the time that makes these mistakes; blocking this flaw at the
+     kernel is a single solution to the entire class of vulnerability.
+ - This should live in the core VFS.
+   - This should live in an LSM. (https://lkml.org/lkml/2010/5/31/135)
+ - This should live in an LSM.
+   - This should live in the core VFS. (https://lkml.org/lkml/2010/8/2/188)
+
+Hardlinks:
+
+On systems that have user-writable directories on the same partition
+as system files, a long-standing class of security issues is the
+hardlink-based time-of-check-time-of-use race, most commonly seen in
+world-writable directories like /tmp. The common method of exploitation
+of this flaw is to cross privilege boundaries when following a given
+hardlink (i.e. a root process follows a hardlink created by another
+user). Additionally, an issue exists where users can "pin" a potentially
+vulnerable setuid/setgid file so that an administrator will not actually
+upgrade a system fully.
+
+The solution is to permit hardlinks to only be created when the user is
+already the existing file's owner, or if they already have read/write
+access to the existing file.
+
+Many Linux users are surprised when they learn they can link to files
+they have no access to, so this change appears to follow the doctrine
+of "least surprise". Additionally, this change does not violate POSIX,
+which states "the implementation may require that the calling process
+has permission to access the existing file"[1].
+
+This change is known to break some implementations of the "at" daemon,
+though the version used by Fedora and Ubuntu has been fixed[2] for
+a while. Otherwise, the change has been undisruptive while in use in
+Ubuntu for the last 1.5 years.
+
+[1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/linkat.html
+[2] http://anonscm.debian.org/gitweb/?p=collab-maint/at.git;a=commitdiff;h=f4114656c3a6c6f6070e315ffdf940a49eda3279
+
+This patch is based on the patches in Openwall and grsecurity, along with
+suggestions from Al Viro. I have added a sysctl to enable the protected
+behavior, and documentation.
+
+Signed-off-by: Kees Cook <keescook at chromium.org>
+Acked-by: Ingo Molnar <mingo at elte.hu>
+Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
+[bwh: Backported to 3.2:
+ - Adjust context
+ - In path_openat(), convert error from may_follow_link() to filp as it
+   won't be converted outside the loop]
+---
+ Documentation/sysctl/fs.txt |   42 +++++++++++++++
+ fs/namei.c                  |  122 +++++++++++++++++++++++++++++++++++++++++++
+ include/linux/fs.h          |    2 +
+ kernel/sysctl.c             |   18 +++++++
+ 4 files changed, 184 insertions(+)
+
+--- a/Documentation/sysctl/fs.txt
++++ b/Documentation/sysctl/fs.txt
+@@ -32,6 +32,8 @@ Currently, these files are in /proc/sys/
+ - nr_open
+ - overflowuid
+ - overflowgid
++- protected_hardlinks
++- protected_symlinks
+ - suid_dumpable
+ - super-max
+ - super-nr
+@@ -157,6 +159,46 @@ The default is 65534.
+ 
+ ==============================================================
+ 
++protected_hardlinks:
++
++A long-standing class of security issues is the hardlink-based
++time-of-check-time-of-use race, most commonly seen in world-writable
++directories like /tmp. The common method of exploitation of this flaw
++is to cross privilege boundaries when following a given hardlink (i.e. a
++root process follows a hardlink created by another user). Additionally,
++on systems without separated partitions, this stops unauthorized users
++from "pinning" vulnerable setuid/setgid files against being upgraded by
++the administrator, or linking to special files.
++
++When set to "0", hardlink creation behavior is unrestricted.
++
++When set to "1" hardlinks cannot be created by users if they do not
++already own the source file, or do not have read/write access to it.
++
++This protection is based on the restrictions in Openwall and grsecurity.
++
++==============================================================
++
++protected_symlinks:
++
++A long-standing class of security issues is the symlink-based
++time-of-check-time-of-use race, most commonly seen in world-writable
++directories like /tmp. The common method of exploitation of this flaw
++is to cross privilege boundaries when following a given symlink (i.e. a
++root process follows a symlink belonging to another user). For a likely
++incomplete list of hundreds of examples across the years, please see:
++http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=/tmp
++
++When set to "0", symlink following behavior is unrestricted.
++
++When set to "1" symlinks are permitted to be followed only when outside
++a sticky world-writable directory, or when the uid of the symlink and
++follower match, or when the directory owner matches the symlink's owner.
++
++This protection is based on the restrictions in Openwall and grsecurity.
++
++==============================================================
++
+ suid_dumpable:
+ 
+ This value can be used to query and set the core dump mode for setuid
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -624,6 +624,119 @@ static inline void put_link(struct namei
+ 	path_put(link);
+ }
+ 
++int sysctl_protected_symlinks __read_mostly = 1;
++int sysctl_protected_hardlinks __read_mostly = 1;
++
++/**
++ * may_follow_link - Check symlink following for unsafe situations
++ * @link: The path of the symlink
++ *
++ * In the case of the sysctl_protected_symlinks sysctl being enabled,
++ * CAP_DAC_OVERRIDE needs to be specifically ignored if the symlink is
++ * in a sticky world-writable directory. This is to protect privileged
++ * processes from failing races against path names that may change out
++ * from under them by way of other users creating malicious symlinks.
++ * It will permit symlinks to be followed only when outside a sticky
++ * world-writable directory, or when the uid of the symlink and follower
++ * match, or when the directory owner matches the symlink's owner.
++ *
++ * Returns 0 if following the symlink is allowed, -ve on error.
++ */
++static inline int may_follow_link(struct path *link, struct nameidata *nd)
++{
++	const struct inode *inode;
++	const struct inode *parent;
++
++	if (!sysctl_protected_symlinks)
++		return 0;
++
++	/* Allowed if owner and follower match. */
++	inode = link->dentry->d_inode;
++	if (current_cred()->fsuid == inode->i_uid)
++		return 0;
++
++	/* Allowed if parent directory not sticky and world-writable. */
++	parent = nd->path.dentry->d_inode;
++	if ((parent->i_mode & (S_ISVTX|S_IWOTH)) != (S_ISVTX|S_IWOTH))
++		return 0;
++
++	/* Allowed if parent directory and link owner match. */
++	if (parent->i_uid == inode->i_uid)
++		return 0;
++
++	path_put_conditional(link, nd);
++	path_put(&nd->path);
++	return -EACCES;
++}
++
++/**
++ * safe_hardlink_source - Check for safe hardlink conditions
++ * @inode: the source inode to hardlink from
++ *
++ * Return false if at least one of the following conditions:
++ *    - inode is not a regular file
++ *    - inode is setuid
++ *    - inode is setgid and group-exec
++ *    - access failure for read and write
++ *
++ * Otherwise returns true.
++ */
++static bool safe_hardlink_source(struct inode *inode)
++{
++	umode_t mode = inode->i_mode;
++
++	/* Special files should not get pinned to the filesystem. */
++	if (!S_ISREG(mode))
++		return false;
++
++	/* Setuid files should not get pinned to the filesystem. */
++	if (mode & S_ISUID)
++		return false;
++
++	/* Executable setgid files should not get pinned to the filesystem. */
++	if ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))
++		return false;
++
++	/* Hardlinking to unreadable or unwritable sources is dangerous. */
++	if (inode_permission(inode, MAY_READ | MAY_WRITE))
++		return false;
++
++	return true;
++}
++
++/**
++ * may_linkat - Check permissions for creating a hardlink
++ * @link: the source to hardlink from
++ *
++ * Block hardlink when all of:
++ *  - sysctl_protected_hardlinks enabled
++ *  - fsuid does not match inode
++ *  - hardlink source is unsafe (see safe_hardlink_source() above)
++ *  - not CAP_FOWNER
++ *
++ * Returns 0 if successful, -ve on error.
++ */
++static int may_linkat(struct path *link)
++{
++	const struct cred *cred;
++	struct inode *inode;
++
++	if (!sysctl_protected_hardlinks)
++		return 0;
++
++	cred = current_cred();
++	inode = link->dentry->d_inode;
++
++	/* Source inode owner (or CAP_FOWNER) can hardlink all they like,
++	 * otherwise, it must be a safe source.
++	 */
++	if (cred->fsuid == inode->i_uid || safe_hardlink_source(inode) ||
++	    capable(CAP_FOWNER))
++		return 0;
++
++	return -EPERM;
++}
++
+ static __always_inline int
+ follow_link(struct path *link, struct nameidata *nd, void **p)
+ {
+@@ -1613,6 +1726,9 @@ static int path_lookupat(int dfd, const
+ 		while (err > 0) {
+ 			void *cookie;
+ 			struct path link = path;
++			err = may_follow_link(&link, nd);
++			if (unlikely(err))
++				break;
+ 			nd->flags |= LOOKUP_PARENT;
+ 			err = follow_link(&link, nd, &cookie);
+ 			if (!err)
+@@ -2325,6 +2441,11 @@ static struct file *path_openat(int dfd,
+ 			filp = ERR_PTR(-ELOOP);
+ 			break;
+ 		}
++		error = may_follow_link(&link, nd);
++		if (unlikely(error)) {
++			filp = ERR_PTR(error);
++			break;
++		}
+ 		nd->flags |= LOOKUP_PARENT;
+ 		nd->flags &= ~(LOOKUP_OPEN|LOOKUP_CREATE|LOOKUP_EXCL);
+ 		error = follow_link(&link, nd, &cookie);
+@@ -2972,6 +3093,9 @@ SYSCALL_DEFINE5(linkat, int, olddfd, con
+ 	error = -EXDEV;
+ 	if (old_path.mnt != new_path.mnt)
+ 		goto out_dput;
++	error = may_linkat(&old_path);
++	if (unlikely(error))
++		goto out_dput;
+ 	error = mnt_want_write(new_path.mnt);
+ 	if (error)
+ 		goto out_dput;
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -420,6 +420,8 @@ extern unsigned long get_max_files(void)
+ extern int sysctl_nr_open;
+ extern struct inodes_stat_t inodes_stat;
+ extern int leases_enable, lease_break_time;
++extern int sysctl_protected_symlinks;
++extern int sysctl_protected_hardlinks;
+ 
+ struct buffer_head;
+ typedef int (get_block_t)(struct inode *inode, sector_t iblock,
+--- a/kernel/sysctl.c
++++ b/kernel/sysctl.c
+@@ -1495,6 +1495,24 @@ static struct ctl_table fs_table[] = {
+ #endif
+ #endif
+ 	{
++		.procname	= "protected_symlinks",
++		.data		= &sysctl_protected_symlinks,
++		.maxlen		= sizeof(int),
++		.mode		= 0600,
++		.proc_handler	= proc_dointvec_minmax,
++		.extra1		= &zero,
++		.extra2		= &one,
++	},
++	{
++		.procname	= "protected_hardlinks",
++		.data		= &sysctl_protected_hardlinks,
++		.maxlen		= sizeof(int),
++		.mode		= 0600,
++		.proc_handler	= proc_dointvec_minmax,
++		.extra1		= &zero,
++		.extra2		= &one,
++	},
++	{
+ 		.procname	= "suid_dumpable",
+ 		.data		= &suid_dumpable,
+ 		.maxlen		= sizeof(int),

Copied: dists/squeeze-backports/linux/debian/patches/features/all/fs-handle-failed-audit_log_start-properly.patch (from r19450, dists/sid/linux/debian/patches/features/all/fs-handle-failed-audit_log_start-properly.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/fs-handle-failed-audit_log_start-properly.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/fs-handle-failed-audit_log_start-properly.patch)
@@ -0,0 +1,30 @@
+From: Sasha Levin <sasha.levin at oracle.com>
+Date: Thu, 4 Oct 2012 19:57:31 -0400
+Subject: fs: handle failed audit_log_start properly
+
+commit d1c7d97ad58836affde6e39980b96527510b572e upstream.
+
+audit_log_start() may return NULL, this is unchecked by the caller in
+audit_log_link_denied() and could cause a NULL ptr deref.
+
+Introduced by commit a51d9eaa ("fs: add link restriction audit reporting").
+
+Signed-off-by: Sasha Levin <sasha.levin at oracle.com>
+Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
+---
+ kernel/audit.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/kernel/audit.c b/kernel/audit.c
+index 4d0ceed..40414e9 100644
+--- a/kernel/audit.c
++++ b/kernel/audit.c
+@@ -1440,6 +1440,8 @@ void audit_log_link_denied(const char *operation, struct path *link)
+ 
+ 	ab = audit_log_start(current->audit_context, GFP_KERNEL,
+ 			     AUDIT_ANOM_LINK);
++	if (!ab)
++		return;
+ 	audit_log_format(ab, "op=%s action=denied", operation);
+ 	audit_log_format(ab, " pid=%d comm=", current->pid);
+ 	audit_log_untrustedstring(ab, current->comm);

Copied: dists/squeeze-backports/linux/debian/patches/features/all/fs-prevent-use-after-free-in-auditing-when-symlink-f.patch (from r19450, dists/sid/linux/debian/patches/features/all/fs-prevent-use-after-free-in-auditing-when-symlink-f.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/fs-prevent-use-after-free-in-auditing-when-symlink-f.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/fs-prevent-use-after-free-in-auditing-when-symlink-f.patch)
@@ -0,0 +1,30 @@
+From: Sasha Levin <sasha.levin at oracle.com>
+Date: Thu, 4 Oct 2012 19:56:40 -0400
+Subject: fs: prevent use after free in auditing when symlink following was
+ denied
+
+commit ffd8d101a3a7d3f2e79deee1e342801703b6dc70 upstream.
+
+Commit "fs: add link restriction audit reporting" has added auditing of failed
+attempts to follow symlinks. Unfortunately, the auditing was being done after
+the struct path structure was released earlier.
+
+Signed-off-by: Sasha Levin <sasha.levin at oracle.com>
+Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
+---
+ fs/namei.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -664,9 +664,9 @@ static inline int may_follow_link(struct
+ 	if (parent->i_uid == inode->i_uid)
+ 		return 0;
+ 
++	audit_log_link_denied("follow_link", link);
+ 	path_put_conditional(link, nd);
+ 	path_put(&nd->path);
+-	audit_log_link_denied("follow_link", link);
+ 	return -EACCES;
+ }
+ 

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From df8f6206fd5fb81d73536194733e346c58ecb8fd Mon Sep 17 00:00:00 2001
+From 40ff3fa2fc5f67823a7c8408dc2777cbd979a719 Mon Sep 17 00:00:00 2001
 From: Steven Rostedt <srostedt at redhat.com>
 Date: Wed, 6 Jun 2012 17:07:34 -0400
-Subject: [PATCH 001/282] Revert "workqueue: skip nr_running sanity check in
+Subject: [PATCH 001/287] Revert "workqueue: skip nr_running sanity check in
  worker_enter_idle() if trustee is active"
 
 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 7947e16..bb425b1 100644
+index 43a19c5..ecb92db 100644
 --- a/kernel/workqueue.c
 +++ b/kernel/workqueue.c
 @@ -1215,13 +1215,8 @@ static void worker_enter_idle(struct worker *worker)
@@ -33,6 +33,3 @@
  		     atomic_read(get_gcwq_nr_running(gcwq->cpu)));
  }
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0002-x86-Call-idle-notifier-after-irq_enter.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From e779dd5c5090622cff55f83eeaf97519ee520ef2 Mon Sep 17 00:00:00 2001
+From 35ae5a058eec4261a05eea67efc7f76178d40e7a Mon Sep 17 00:00:00 2001
 From: Frederic Weisbecker <fweisbec at gmail.com>
 Date: Mon, 26 Sep 2011 12:19:11 +0200
-Subject: [PATCH 002/282] x86: Call idle notifier after irq_enter()
+Subject: [PATCH 002/287] x86: Call idle notifier after irq_enter()
 
 Interrupts notify the idle exit state before calling irq_enter(). But
 the notifier code calls rcu_read_lock() and this is not allowed while
@@ -150,6 +150,3 @@
  	inc_irq_stat(x86_platform_ipis);
  
  	if (x86_platform_ipi_callback)
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0003-slab-lockdep-Annotate-all-slab-caches.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c51107c1d3a916cb1c5bad8f9f1964100648de80 Mon Sep 17 00:00:00 2001
+From 26486b9ff7aa913e61f1eb7f98385e9e84b9ebf0 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Mon, 28 Nov 2011 19:51:51 +0100
-Subject: [PATCH 003/282] slab, lockdep: Annotate all slab caches
+Subject: [PATCH 003/287] slab, lockdep: Annotate all slab caches
 
 Currently we only annotate the kmalloc caches, annotate all of them.
 
@@ -16,11 +16,11 @@
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 Link: http://lkml.kernel.org/n/tip-10bey2cgpcvtbdkgigaoab8w@git.kernel.org
 ---
- mm/slab.c |   52 ++++++++++++++++++++++++++++------------------------
- 1 file changed, 28 insertions(+), 24 deletions(-)
+ mm/slab.c |   49 ++++++++++++++++++++++++++++---------------------
+ 1 file changed, 28 insertions(+), 21 deletions(-)
 
 diff --git a/mm/slab.c b/mm/slab.c
-index 83311c9a..b76905e 100644
+index 4c3b671..61dfda3 100644
 --- a/mm/slab.c
 +++ b/mm/slab.c
 @@ -607,6 +607,12 @@ int slab_is_available(void)
@@ -105,13 +105,8 @@
  static DEFINE_PER_CPU(struct delayed_work, slab_reap_work);
  
  static inline struct array_cache *cpu_cache_get(struct kmem_cache *cachep)
-@@ -1669,14 +1672,13 @@ void __init kmem_cache_init_late(void)
+@@ -1671,9 +1674,11 @@ void __init kmem_cache_init_late(void)
  
- 	g_cpucache_up = LATE;
- 
--	/* Annotate slab for lockdep -- annotate the malloc caches */
--	init_lock_keys();
--
  	/* 6) resize the head arrays to their final sizes */
  	mutex_lock(&cache_chain_mutex);
 -	list_for_each_entry(cachep, &cache_chain, next)
@@ -122,8 +117,8 @@
 +	}
  	mutex_unlock(&cache_chain_mutex);
  
- 	/* Done! */
-@@ -2479,6 +2481,8 @@ kmem_cache_create (const char *name, size_t size, size_t align,
+ 	/* Annotate slab for lockdep -- annotate the malloc caches */
+@@ -2479,6 +2484,8 @@ kmem_cache_create (const char *name, size_t size, size_t align,
  		slab_set_debugobj_lock_classes(cachep);
  	}
  
@@ -132,6 +127,3 @@
  	/* cache setup completed, link it into the list */
  	list_add(&cachep->next, &cache_chain);
  oops:
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0004-x86-kprobes-Remove-remove-bogus-preempt_enable.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From aadc4017f6542080912118dfb9a623cb2c1b2d63 Mon Sep 17 00:00:00 2001
+From 5500b2a2da3b94c18d1148cc504f5dd8a1e36ab2 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 17 Mar 2011 11:02:15 +0100
-Subject: [PATCH 004/282] x86: kprobes: Remove remove bogus preempt_enable
+Subject: [PATCH 004/287] x86: kprobes: Remove remove bogus preempt_enable
 
 The CONFIG_PREEMPT=n section of setup_singlestep() contains:
 
@@ -28,6 +28,3 @@
  		return;
  	}
  #endif
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From b6576b10d4b78f0dbd01e69b5b6bcefa4f233d84 Mon Sep 17 00:00:00 2001
+From bc0f69e0d04e2340bf45b020a7931abc7316493f Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 30 Sep 2011 20:03:37 +0200
-Subject: [PATCH 005/282] x86: hpet: Disable MSI on Lenovo W510
+Subject: [PATCH 005/287] x86: hpet: Disable MSI on Lenovo W510
 
 MSI based per cpu timers lose interrupts when intel_idle() is enabled
 - independent of the c-state. With idle=poll the problem cannot be
@@ -65,6 +65,3 @@
  	if (hpet_msi_disable)
  		return;
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0006-block-Shorten-interrupt-disabled-regions.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 62cddd5874f53444b20c8614191387f0e4da0be0 Mon Sep 17 00:00:00 2001
+From 589b8e7af2f453e0ecfc074f114b4403ee214534 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 22 Jun 2011 19:47:02 +0200
-Subject: [PATCH 006/282] block: Shorten interrupt disabled regions
+Subject: [PATCH 006/287] block: Shorten interrupt disabled regions
 
 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 15de223..7366ad4 100644
+index 49d9e91..33bf42c 100644
 --- a/block/blk-core.c
 +++ b/block/blk-core.c
 @@ -300,7 +300,11 @@ void __blk_run_queue(struct request_queue *q)
@@ -116,6 +116,3 @@
  }
  
  void blk_finish_plug(struct blk_plug *plug)
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From edfc408c63ce9889f9f998383af0e16e8cf3793c Mon Sep 17 00:00:00 2001
+From 60eb537a57a37cadf0d8a50778ae8edd3f0a9c51 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 22 Jun 2011 19:47:03 +0200
-Subject: [PATCH 007/282] sched: Distangle worker accounting from rq-%3Elock
+Subject: [PATCH 007/287] sched: Distangle worker accounting from rq-%3Elock
 
 The worker accounting for cpu bound workers is plugged into the core
 scheduler code and the wakeup code. This is not a hard requirement and
@@ -30,10 +30,10 @@
  3 files changed, 47 insertions(+), 91 deletions(-)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 576a27f..9265088 100644
+index fcc893f..b14949d 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -2644,10 +2644,6 @@ static void ttwu_activate(struct rq *rq, struct task_struct *p, int en_flags)
+@@ -2640,10 +2640,6 @@ static void ttwu_activate(struct rq *rq, struct task_struct *p, int en_flags)
  {
  	activate_task(rq, p, en_flags);
  	p->on_rq = 1;
@@ -44,7 +44,7 @@
  }
  
  /*
-@@ -2882,40 +2878,6 @@ out:
+@@ -2878,40 +2874,6 @@ out:
  }
  
  /**
@@ -85,7 +85,7 @@
   * wake_up_process - Wake up a specific process
   * @p: The process to be woken up.
   *
-@@ -4419,19 +4381,6 @@ need_resched:
+@@ -4612,19 +4574,6 @@ need_resched:
  		} else {
  			deactivate_task(rq, prev, DEQUEUE_SLEEP);
  			prev->on_rq = 0;
@@ -105,7 +105,7 @@
  		}
  		switch_count = &prev->nvcsw;
  	}
-@@ -4474,6 +4423,14 @@ static inline void sched_submit_work(struct task_struct *tsk)
+@@ -4667,6 +4616,14 @@ static inline void sched_submit_work(struct task_struct *tsk)
  {
  	if (!tsk->state)
  		return;
@@ -120,7 +120,7 @@
  	/*
  	 * If we are going to sleep and we have plugged IO queued,
  	 * make sure to submit it to avoid deadlocks.
-@@ -4482,12 +4439,19 @@ static inline void sched_submit_work(struct task_struct *tsk)
+@@ -4675,12 +4632,19 @@ static inline void sched_submit_work(struct task_struct *tsk)
  		blk_schedule_flush_plug(tsk);
  }
  
@@ -141,7 +141,7 @@
  EXPORT_SYMBOL(schedule);
  
 diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index bb425b1..4b4421d 100644
+index ecb92db..f09d7e2 100644
 --- a/kernel/workqueue.c
 +++ b/kernel/workqueue.c
 @@ -137,6 +137,7 @@ struct worker {
@@ -261,6 +261,3 @@
 -				       unsigned int cpu);
 +void wq_worker_running(struct task_struct *task);
 +void wq_worker_sleeping(struct task_struct *task);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0008-mips-enable-interrupts-in-signal.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 274242382e55c6ccb013869fbfbb5fda0cd70357 Mon Sep 17 00:00:00 2001
+From 1f00099ad5c8292e143c82254dcfe360b1a854bb Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 18 Jul 2011 21:32:10 +0200
-Subject: [PATCH 008/282] mips-enable-interrupts-in-signal.patch
+Subject: [PATCH 008/287] mips-enable-interrupts-in-signal.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -22,6 +22,3 @@
  	if (test_thread_flag(TIF_RESTORE_SIGMASK))
  		oldset = &current->saved_sigmask;
  	else
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0009-arm-enable-interrupts-in-signal-code.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 9df8de9aa343f8bc114a45488268597963386bf7 Mon Sep 17 00:00:00 2001
+From 9358b9e7ea130be4f7761b7186e4a3184cedd778 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sat, 16 Jul 2011 16:27:13 +0200
-Subject: [PATCH 009/282] arm-enable-interrupts-in-signal-code.patch
+Subject: [PATCH 009/287] arm-enable-interrupts-in-signal-code.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -22,6 +22,3 @@
  	/*
  	 * If we were from a system call, check for system call restarting...
  	 */
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0010-powerpc-85xx-Mark-cascade-irq-IRQF_NO_THREAD.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 04066457b0b4a8e13ca83290bb719d62ffb069f6 Mon Sep 17 00:00:00 2001
+From 3033f163ab076bb36afcd1500fe34887c6940fe3 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sat, 16 Jul 2011 12:09:54 +0200
-Subject: [PATCH 010/282] powerpc: 85xx: Mark cascade irq IRQF_NO_THREAD
+Subject: [PATCH 010/287] powerpc: 85xx: Mark cascade irq IRQF_NO_THREAD
 
 Cascade interrupt must run in hard interrupt context.
 
@@ -23,6 +23,3 @@
  	.name = "8259 cascade",
  };
  #endif /* PPC_I8259 */
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0011-powerpc-wsp-Mark-opb-cascade-handler-IRQF_NO_THREAD.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 85b69fe3ede77b0b6ffbf5c48b6073c11e4c9628 Mon Sep 17 00:00:00 2001
+From 2308c8357855315c1f6c122d19938066709ca479 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 5 Oct 2011 14:11:24 +0200
-Subject: [PATCH 011/282] powerpc: wsp: Mark opb cascade handler
+Subject: [PATCH 011/287] powerpc: wsp: Mark opb cascade handler
  IRQF_NO_THREAD
 
 Cascade handlers must run in hard interrupt context.
@@ -25,6 +25,3 @@
  		if (rc) {
  			printk("opb: request_irq failed: %d\n", rc);
  			continue;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0012-powerpc-Mark-IPI-interrupts-IRQF_NO_THREAD.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d79419ba7414be1de16b767776b6559604a2ec83 Mon Sep 17 00:00:00 2001
+From 763a68dbaffd6c11717b00bba84406c690b63aa3 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 5 Oct 2011 14:00:26 +0200
-Subject: [PATCH 012/282] powerpc: Mark IPI interrupts IRQF_NO_THREAD
+Subject: [PATCH 012/287] powerpc: Mark IPI interrupts IRQF_NO_THREAD
 
 IPI handlers cannot be threaded. Remove the obsolete IRQF_DISABLED
 flag (see commit e58aa3d2) while at it.
@@ -14,7 +14,7 @@
  3 files changed, 7 insertions(+), 6 deletions(-)
 
 diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
-index 6df7090..abdedd3 100644
+index fe04b4a..2216eb2 100644
 --- a/arch/powerpc/kernel/smp.c
 +++ b/arch/powerpc/kernel/smp.c
 @@ -187,8 +187,8 @@ int smp_request_message_ipi(int virq, int msg)
@@ -68,6 +68,3 @@
  }
  
  int __init xics_smp_probe(void)
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0013-powerpc-Allow-irq-threading.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 94b3babc05617f3a97c28cccb43dcc8e76c474a8 Mon Sep 17 00:00:00 2001
+From f6ab8640973a65c68d9856cbf882db41f3984b57 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sat, 16 Jul 2011 13:16:24 +0200
-Subject: [PATCH 013/282] powerpc: Allow irq threading
+Subject: [PATCH 013/287] powerpc: Allow irq threading
 
 All interrupts which must be non threaded are marked
 IRQF_NO_THREAD. So it's safe to allow force threaded handlers.
@@ -14,7 +14,7 @@
 
 --- a/arch/powerpc/Kconfig
 +++ b/arch/powerpc/Kconfig
-@@ -132,6 +132,7 @@
+@@ -132,6 +132,7 @@ config PPC
  	select IRQ_PER_CPU
  	select GENERIC_IRQ_SHOW
  	select GENERIC_IRQ_SHOW_LEVEL

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0014-sched-Keep-period-timer-ticking-when-throttling-acti.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1893db2f433c1cf3248fc5d04c737d8b9c3a8ba8 Mon Sep 17 00:00:00 2001
+From 8dfe3bc738b6a4665d55058d9b88cc92815763ca Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <peterz at infradead.org>
 Date: Tue, 18 Oct 2011 22:03:48 +0200
-Subject: [PATCH 014/282] sched: Keep period timer ticking when throttling
+Subject: [PATCH 014/287] sched: Keep period timer ticking when throttling
  active
 
 When a runqueue is throttled we cannot disable the period timer
@@ -63,6 +63,3 @@
  
  	curr->se.sum_exec_runtime += delta_exec;
  	account_group_exec_runtime(curr, delta_exec);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0015-sched-Do-not-throttle-due-to-PI-boosting.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From a1793342c661b599d1ac6b004faa3b84cec58bab Mon Sep 17 00:00:00 2001
+From 23b07592c9a5e02fd84685ba7272257884300038 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <peterz at infradead.org>
 Date: Tue, 18 Oct 2011 22:03:48 +0200
-Subject: [PATCH 015/282] sched: Do not throttle due to PI boosting
+Subject: [PATCH 015/287] sched: Do not throttle due to PI boosting
 
 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
@@ -47,6 +47,3 @@
  		if (rt_rq_throttled(rt_rq)) {
  			sched_rt_rq_dequeue(rt_rq);
  			return 1;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0016-time-Remove-bogus-comments.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From aacf7a45f6bba6c2406139679498bb6c28e5a7e3 Mon Sep 17 00:00:00 2001
+From dcea59508d1c0e924d9fd1065d2fba394ddd3081 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 28 Feb 2012 19:06:50 +0100
-Subject: [PATCH 016/282] time: Remove bogus comments
+Subject: [PATCH 016/287] time: Remove bogus comments
 
 There is no global irq lock which makes a syscall magically SMP
 safe. Remove the outdated comment concerning do_settimeofday() as
@@ -37,6 +37,3 @@
  	return 0;
  }
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0017-x86-vdso-Remove-bogus-locking-in-update_vsyscall_tz.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 2cf94f15307db51a842030f33d189750a44a77f5 Mon Sep 17 00:00:00 2001
+From bd47276f21ee17dd70d67fb7f69499ce108a05bf Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 28 Feb 2012 19:10:46 +0100
-Subject: [PATCH 017/282] x86: vdso: Remove bogus locking in
+Subject: [PATCH 017/287] x86: vdso: Remove bogus locking in
  update_vsyscall_tz()
 
 Changing the sequence count in update_vsyscall_tz() is completely
@@ -32,6 +32,3 @@
  }
  
  void update_vsyscall(struct timespec *wall_time, struct timespec *wtm,
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0018-x86-vdso-Use-seqcount-instead-of-seqlock.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From ba2e176229c72d7a64ca08be5e7e5f14d039b2db Mon Sep 17 00:00:00 2001
+From 4758d4523816d1fb22e28716c104f6218becff6b Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 28 Feb 2012 18:24:07 +0100
-Subject: [PATCH 018/282] x86: vdso: Use seqcount instead of seqlock
+Subject: [PATCH 018/287] x86: vdso: Use seqcount instead of seqlock
 
 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.
@@ -123,6 +123,3 @@
  
  	/* wall_time_nsec and wall_to_monotonic.tv_nsec are
  	 * guaranteed to be between 0 and NSEC_PER_SEC.
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0019-ia64-vsyscall-Use-seqcount-instead-of-seqlock.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 8f76333e428ea32fd34348568c3660699a9c38b0 Mon Sep 17 00:00:00 2001
+From aa1031f98ea66c29b7eb74b966dc46f70ce2986b Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 28 Feb 2012 18:33:08 +0100
-Subject: [PATCH 019/282] ia64: vsyscall: Use seqcount instead of seqlock
+Subject: [PATCH 019/287] ia64: vsyscall: Use seqcount instead of seqlock
 
 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.
@@ -90,6 +90,3 @@
 +	write_seqcount_end(&fsyscall_gtod_data.seq);
  }
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0020-seqlock-Remove-unused-functions.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 2a7c481c816dae54aca417bfe13b43f555fa9be1 Mon Sep 17 00:00:00 2001
+From 4f9bcfbe87eb3c5b820180f3b358ff71472bdebf Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sat, 16 Jul 2011 18:38:22 +0200
-Subject: [PATCH 020/282] seqlock: Remove unused functions
+Subject: [PATCH 020/287] seqlock: Remove unused functions
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -45,6 +45,3 @@
 -	})
 -
  #endif /* __LINUX_SEQLOCK_H */
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0021-seqlock-Use-seqcount.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d5a1cbf4a2056b0b1d272e1fa41737eb3e369b88 Mon Sep 17 00:00:00 2001
+From 362cd52317abd3342bbe8481cac294b9d609de39 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sat, 16 Jul 2011 18:40:26 +0200
-Subject: [PATCH 021/282] seqlock: Use seqcount
+Subject: [PATCH 021/287] seqlock: Use seqcount
 
 No point in having different implementations for the same thing.
 
@@ -219,6 +219,3 @@
 +}
  
  #endif /* __LINUX_SEQLOCK_H */
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0022-vfs-fs_struct-Move-code-out-of-seqcount-write-sectio.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 81b4f3af5bb25586b58c3893d824e5807be76e89 Mon Sep 17 00:00:00 2001
+From 01ac85bf1da4f6cbc74f7607bef99b3158517e44 Mon Sep 17 00:00:00 2001
 From: Al Viro <viro at ZenIV.linux.org.uk>
 Date: Thu, 15 Mar 2012 18:39:40 +0000
-Subject: [PATCH 022/282] vfs: fs_struct: Move code out of seqcount write
+Subject: [PATCH 022/287] vfs: fs_struct: Move code out of seqcount write
  sections
 
 RT cannot disable preemption in the seqcount write sections due to
@@ -86,6 +86,3 @@
  			spin_unlock(&fs->lock);
  		}
  		task_unlock(p);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0023-timekeeping-Split-xtime_lock.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From a0b5d92787bc37be58a70439b4399f0014840c3b Mon Sep 17 00:00:00 2001
+From 2f493e19de5da72f512f51a7bc226794e611bc0a Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 1 Mar 2012 15:14:06 +0100
-Subject: [PATCH 023/282] timekeeping: Split xtime_lock
+Subject: [PATCH 023/287] timekeeping: Split xtime_lock
 
 xtime_lock is going to be split apart in mainline, so we can shorten
 the seqcount protected regions and avoid updating seqcount in some
@@ -11,12 +11,12 @@
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
  kernel/time/jiffies.c       |    4 +-
- kernel/time/ntp.c           |   24 ++++++++----
+ kernel/time/ntp.c           |   23 ++++++++---
  kernel/time/tick-common.c   |   10 +++--
  kernel/time/tick-internal.h |    3 +-
  kernel/time/tick-sched.c    |   16 +++++---
  kernel/time/timekeeping.c   |   90 +++++++++++++++++++++++++------------------
- 6 files changed, 88 insertions(+), 59 deletions(-)
+ 6 files changed, 89 insertions(+), 57 deletions(-)
 
 diff --git a/kernel/time/jiffies.c b/kernel/time/jiffies.c
 index a470154..21940eb 100644
@@ -35,30 +35,29 @@
  }
  EXPORT_SYMBOL(get_jiffies_64);
 diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
-index 4b85a7a..419cbaa 100644
+index f1eb182..09079b7 100644
 --- a/kernel/time/ntp.c
 +++ b/kernel/time/ntp.c
-@@ -358,7 +358,8 @@ static enum hrtimer_restart ntp_leap_second(struct hrtimer *timer)
- {
- 	enum hrtimer_restart res = HRTIMER_NORESTART;
+@@ -362,6 +362,9 @@ int second_overflow(unsigned long secs)
+ 	int leap = 0;
+ 	s64 delta;
  
--	write_seqlock(&xtime_lock);
 +	raw_spin_lock(&xtime_lock);
 +	write_seqcount_begin(&xtime_seq);
- 
- 	switch (time_state) {
- 	case TIME_OK:
-@@ -388,7 +389,8 @@ static enum hrtimer_restart ntp_leap_second(struct hrtimer *timer)
++
+ 	/*
+ 	 * Leap second processing. If in leap-insert state at the end of the
+ 	 * day, the system clock is set back one second; if in leap-delete
+@@ -402,6 +405,8 @@ int second_overflow(unsigned long secs)
  		break;
  	}
  
--	write_sequnlock(&xtime_lock);
 +	write_seqcount_end(&xtime_seq);
 +	raw_spin_unlock(&xtime_lock);
  
- 	return res;
- }
-@@ -663,7 +665,8 @@ int do_adjtimex(struct timex *txc)
+ 	/* Bump the maxerror field */
+ 	time_maxerror += MAXFREQ / NSEC_PER_USEC;
+@@ -623,7 +628,8 @@ int do_adjtimex(struct timex *txc)
  
  	getnstimeofday(&ts);
  
@@ -68,7 +67,7 @@
  
  	if (txc->modes & ADJ_ADJTIME) {
  		long save_adjust = time_adjust;
-@@ -705,7 +708,8 @@ int do_adjtimex(struct timex *txc)
+@@ -665,7 +671,8 @@ int do_adjtimex(struct timex *txc)
  	/* fill PPS status fields */
  	pps_fill_timex(txc);
  
@@ -78,7 +77,7 @@
  
  	txc->time.tv_sec = ts.tv_sec;
  	txc->time.tv_usec = ts.tv_nsec;
-@@ -903,7 +907,8 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts)
+@@ -863,7 +870,8 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts)
  
  	pts_norm = pps_normalize_ts(*phase_ts);
  
@@ -88,7 +87,7 @@
  
  	/* clear the error bits, they will be set again if needed */
  	time_status &= ~(STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR);
-@@ -916,7 +921,8 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts)
+@@ -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;
@@ -98,7 +97,7 @@
  		return;
  	}
  
-@@ -931,7 +937,8 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts)
+@@ -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;
@@ -108,7 +107,7 @@
  		pr_err("hardpps: PPSJITTER: bad pulse\n");
  		return;
  	}
-@@ -948,7 +955,8 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts)
+@@ -908,7 +918,8 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts)
  
  	hardpps_update_phase(pts_norm.nsec);
  
@@ -164,7 +163,7 @@
 +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 c923640..d7abd2f 100644
+index 793548c..9964bda 100644
 --- a/kernel/time/tick-sched.c
 +++ b/kernel/time/tick-sched.c
 @@ -56,7 +56,8 @@ static void tick_do_update_jiffies64(ktime_t now)
@@ -219,7 +218,7 @@
  	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 2378413..da9e1f9 100644
+index 5ee1ac0..7940c71 100644
 --- a/kernel/time/timekeeping.c
 +++ b/kernel/time/timekeeping.c
 @@ -139,8 +139,8 @@ static inline s64 timekeeping_get_ns_raw(void)
@@ -233,7 +232,7 @@
  
  /*
   * The current time
-@@ -222,7 +222,7 @@ void getnstimeofday(struct timespec *ts)
+@@ -242,7 +242,7 @@ void getnstimeofday(struct timespec *ts)
  	WARN_ON(timekeeping_suspended);
  
  	do {
@@ -242,7 +241,7 @@
  
  		*ts = xtime;
  		nsecs = timekeeping_get_ns();
-@@ -230,7 +230,7 @@ void getnstimeofday(struct timespec *ts)
+@@ -250,7 +250,7 @@ void getnstimeofday(struct timespec *ts)
  		/* If arch requires, add in gettimeoffset() */
  		nsecs += arch_gettimeoffset();
  
@@ -251,7 +250,7 @@
  
  	timespec_add_ns(ts, nsecs);
  }
-@@ -245,14 +245,14 @@ ktime_t ktime_get(void)
+@@ -265,14 +265,14 @@ ktime_t ktime_get(void)
  	WARN_ON(timekeeping_suspended);
  
  	do {
@@ -268,7 +267,7 @@
  	/*
  	 * Use ktime_set/ktime_add_ns to create a proper ktime on
  	 * 32-bit architectures without CONFIG_KTIME_SCALAR.
-@@ -278,14 +278,14 @@ void ktime_get_ts(struct timespec *ts)
+@@ -298,14 +298,14 @@ void ktime_get_ts(struct timespec *ts)
  	WARN_ON(timekeeping_suspended);
  
  	do {
@@ -285,7 +284,7 @@
  
  	set_normalized_timespec(ts, ts->tv_sec + tomono.tv_sec,
  				ts->tv_nsec + tomono.tv_nsec + nsecs);
-@@ -313,7 +313,7 @@ void getnstime_raw_and_real(struct timespec *ts_raw, struct timespec *ts_real)
+@@ -333,7 +333,7 @@ void getnstime_raw_and_real(struct timespec *ts_raw, struct timespec *ts_real)
  	do {
  		u32 arch_offset;
  
@@ -294,7 +293,7 @@
  
  		*ts_raw = raw_time;
  		*ts_real = xtime;
-@@ -326,7 +326,7 @@ void getnstime_raw_and_real(struct timespec *ts_raw, struct timespec *ts_real)
+@@ -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;
  
@@ -303,8 +302,8 @@
  
  	timespec_add_ns(ts_raw, nsecs_raw);
  	timespec_add_ns(ts_real, nsecs_real);
-@@ -365,7 +365,8 @@ int do_settimeofday(const struct timespec *tv)
- 	if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC)
+@@ -385,7 +385,8 @@ int do_settimeofday(const struct timespec *tv)
+ 	if (!timespec_valid_strict(tv))
  		return -EINVAL;
  
 -	write_seqlock_irqsave(&xtime_lock, flags);
@@ -313,9 +312,9 @@
  
  	timekeeping_forward_now();
  
-@@ -381,7 +382,8 @@ int do_settimeofday(const struct timespec *tv)
- 	update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock,
- 				timekeeper.mult);
+@@ -397,7 +398,8 @@ int do_settimeofday(const struct timespec *tv)
+ 
+ 	timekeeping_update(true);
  
 -	write_sequnlock_irqrestore(&xtime_lock, flags);
 +	write_seqcount_end(&xtime_seq);
@@ -323,7 +322,7 @@
  
  	/* signal hrtimers about time change */
  	clock_was_set();
-@@ -405,7 +407,8 @@ int timekeeping_inject_offset(struct timespec *ts)
+@@ -423,7 +425,8 @@ int timekeeping_inject_offset(struct timespec *ts)
  	if ((unsigned long)ts->tv_nsec >= NSEC_PER_SEC)
  		return -EINVAL;
  
@@ -333,9 +332,9 @@
  
  	timekeeping_forward_now();
  
-@@ -418,7 +421,8 @@ int timekeeping_inject_offset(struct timespec *ts)
- 	update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock,
- 				timekeeper.mult);
+@@ -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);
  
 -	write_sequnlock_irqrestore(&xtime_lock, flags);
 +	write_seqcount_end(&xtime_seq);
@@ -343,7 +342,7 @@
  
  	/* signal hrtimers about time change */
  	clock_was_set();
-@@ -490,11 +494,11 @@ void getrawmonotonic(struct timespec *ts)
+@@ -511,11 +515,11 @@ void getrawmonotonic(struct timespec *ts)
  	s64 nsecs;
  
  	do {
@@ -357,7 +356,7 @@
  
  	timespec_add_ns(ts, nsecs);
  }
-@@ -510,11 +514,11 @@ int timekeeping_valid_for_hres(void)
+@@ -531,11 +535,11 @@ int timekeeping_valid_for_hres(void)
  	int ret;
  
  	do {
@@ -371,9 +370,9 @@
  
  	return ret;
  }
-@@ -572,7 +576,8 @@ void __init timekeeping_init(void)
- 	read_persistent_clock(&now);
- 	read_boot_clock(&boot);
+@@ -606,7 +610,8 @@ void __init timekeeping_init(void)
+ 		boot.tv_nsec = 0;
+ 	}
  
 -	write_seqlock_irqsave(&xtime_lock, flags);
 +	raw_spin_lock_irqsave(&xtime_lock, flags);
@@ -381,8 +380,8 @@
  
  	ntp_init();
  
-@@ -593,7 +598,8 @@ void __init timekeeping_init(void)
- 				-boot.tv_sec, -boot.tv_nsec);
+@@ -628,7 +633,8 @@ void __init timekeeping_init(void)
+ 	update_rt_offset();
  	total_sleep_time.tv_sec = 0;
  	total_sleep_time.tv_nsec = 0;
 -	write_sequnlock_irqrestore(&xtime_lock, flags);
@@ -391,7 +390,7 @@
  }
  
  /* time in seconds when suspend began */
-@@ -640,7 +646,8 @@ void timekeeping_inject_sleeptime(struct timespec *delta)
+@@ -681,14 +687,16 @@ void timekeeping_inject_sleeptime(struct timespec *delta)
  	if (!(ts.tv_sec == 0 && ts.tv_nsec == 0))
  		return;
  
@@ -401,9 +400,8 @@
  	timekeeping_forward_now();
  
  	__timekeeping_inject_sleeptime(delta);
-@@ -650,7 +657,8 @@ void timekeeping_inject_sleeptime(struct timespec *delta)
- 	update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock,
- 				timekeeper.mult);
+ 
+ 	timekeeping_update(true);
  
 -	write_sequnlock_irqrestore(&xtime_lock, flags);
 +	write_seqcount_end(&xtime_seq);
@@ -411,7 +409,7 @@
  
  	/* signal hrtimers about time change */
  	clock_was_set();
-@@ -673,7 +681,8 @@ static void timekeeping_resume(void)
+@@ -711,7 +719,8 @@ static void timekeeping_resume(void)
  
  	clocksource_resume();
  
@@ -421,17 +419,17 @@
  
  	if (timespec_compare(&ts, &timekeeping_suspend_time) > 0) {
  		ts = timespec_sub(ts, timekeeping_suspend_time);
-@@ -683,7 +692,8 @@ static void timekeeping_resume(void)
- 	timekeeper.clock->cycle_last = timekeeper.clock->read(timekeeper.clock);
+@@ -722,7 +731,8 @@ static void timekeeping_resume(void)
  	timekeeper.ntp_error = 0;
  	timekeeping_suspended = 0;
+ 	timekeeping_update(false);
 -	write_sequnlock_irqrestore(&xtime_lock, flags);
 +	write_seqcount_end(&xtime_seq);
 +	raw_spin_unlock_irqrestore(&xtime_lock, flags);
  
  	touch_softlockup_watchdog();
  
-@@ -701,7 +711,8 @@ static int timekeeping_suspend(void)
+@@ -740,7 +750,8 @@ static int timekeeping_suspend(void)
  
  	read_persistent_clock(&timekeeping_suspend_time);
  
@@ -441,7 +439,7 @@
  	timekeeping_forward_now();
  	timekeeping_suspended = 1;
  
-@@ -724,7 +735,8 @@ static int timekeeping_suspend(void)
+@@ -763,7 +774,8 @@ static int timekeeping_suspend(void)
  		timekeeping_suspend_time =
  			timespec_add(timekeeping_suspend_time, delta_delta);
  	}
@@ -451,7 +449,7 @@
  
  	clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL);
  	clocksource_suspend();
-@@ -1101,13 +1113,13 @@ void get_monotonic_boottime(struct timespec *ts)
+@@ -1152,13 +1164,13 @@ void get_monotonic_boottime(struct timespec *ts)
  	WARN_ON(timekeeping_suspended);
  
  	do {
@@ -467,7 +465,7 @@
  
  	set_normalized_timespec(ts, ts->tv_sec + tomono.tv_sec + sleep.tv_sec,
  			ts->tv_nsec + tomono.tv_nsec + sleep.tv_nsec + nsecs);
-@@ -1158,10 +1170,10 @@ struct timespec current_kernel_time(void)
+@@ -1209,10 +1221,10 @@ struct timespec current_kernel_time(void)
  	unsigned long seq;
  
  	do {
@@ -480,7 +478,7 @@
  
  	return now;
  }
-@@ -1173,11 +1185,11 @@ struct timespec get_monotonic_coarse(void)
+@@ -1224,11 +1236,11 @@ struct timespec get_monotonic_coarse(void)
  	unsigned long seq;
  
  	do {
@@ -494,7 +492,7 @@
  
  	set_normalized_timespec(&now, now.tv_sec + mono.tv_sec,
  				now.tv_nsec + mono.tv_nsec);
-@@ -1209,11 +1221,11 @@ void get_xtime_and_monotonic_and_sleep_offset(struct timespec *xtim,
+@@ -1260,11 +1272,11 @@ void get_xtime_and_monotonic_and_sleep_offset(struct timespec *xtim,
  	unsigned long seq;
  
  	do {
@@ -507,8 +505,8 @@
 +	} while (read_seqcount_retry(&xtime_seq, seq));
  }
  
- /**
-@@ -1225,9 +1237,9 @@ ktime_t ktime_get_monotonic_offset(void)
+ #ifdef CONFIG_HIGH_RES_TIMERS
+@@ -1310,9 +1322,9 @@ ktime_t ktime_get_monotonic_offset(void)
  	struct timespec wtom;
  
  	do {
@@ -520,7 +518,7 @@
  	return timespec_to_ktime(wtom);
  }
  
-@@ -1239,7 +1251,9 @@ ktime_t ktime_get_monotonic_offset(void)
+@@ -1324,7 +1336,9 @@ ktime_t ktime_get_monotonic_offset(void)
   */
  void xtime_update(unsigned long ticks)
  {
@@ -532,6 +530,3 @@
 +	write_seqcount_end(&xtime_seq);
 +	raw_spin_unlock(&xtime_lock);
  }
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0024-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 0d4c84bb31993d503d6e72b50c187bff31868454 Mon Sep 17 00:00:00 2001
+From 263e8db13e06ba2eb91d7977ecdea5d7255df62c Mon Sep 17 00:00:00 2001
 From: Mike Galbraith <efault at gmx.de>
 Date: Wed, 7 Dec 2011 12:48:42 +0100
-Subject: [PATCH 024/282] intel_idle: Convert i7300_idle_lock to raw spinlock
+Subject: [PATCH 024/287] intel_idle: Convert i7300_idle_lock to raw spinlock
 
 24 core Intel box's first exposure to 3.0.12-rt30-rc3 didn't go well.
 
@@ -67,6 +67,3 @@
  	total_us = 0;
  
  	if (i7300_idle_platform_probe(&fbd_dev, &ioat_dev, forceload))
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0025-mm-memcg-shorten-preempt-disabled-section-around-eve.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 01623084ff8da3904d8d101224f9daaa35f633d5 Mon Sep 17 00:00:00 2001
+From d83fe713b7be3b2bc2bfce1712de5e0900ae40fd Mon Sep 17 00:00:00 2001
 From: Johannes Weiner <hannes at cmpxchg.org>
 Date: Thu, 17 Nov 2011 07:49:25 +0100
-Subject: [PATCH 025/282] mm: memcg: shorten preempt-disabled section around
+Subject: [PATCH 025/287] mm: memcg: shorten preempt-disabled section around
  event checks
 
 Only the ratelimit checks themselves have to run with preemption
@@ -120,6 +120,3 @@
  }
  
  static struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont)
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0026-tracing-Account-for-preempt-off-in-preempt_schedule.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 481a66cf0672618cc8ed0cbc13cb2fccde74f726 Mon Sep 17 00:00:00 2001
+From b577aca220665e1f11d669ccb57de991b86b5c7a Mon Sep 17 00:00:00 2001
 From: Steven Rostedt <rostedt at goodmis.org>
 Date: Thu, 29 Sep 2011 12:24:30 -0500
-Subject: [PATCH 026/282] tracing: Account for preempt off in
+Subject: [PATCH 026/287] tracing: Account for preempt off in
  preempt_schedule()
 
 The preempt_schedule() uses the preempt_disable_notrace() version
@@ -28,10 +28,10 @@
  1 file changed, 9 insertions(+)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 9265088..24d3ce6 100644
+index b14949d..3bcda08 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -4519,7 +4519,16 @@ asmlinkage void __sched notrace preempt_schedule(void)
+@@ -4712,7 +4712,16 @@ asmlinkage void __sched notrace preempt_schedule(void)
  
  	do {
  		add_preempt_count_notrace(PREEMPT_ACTIVE);
@@ -48,6 +48,3 @@
  		sub_preempt_count_notrace(PREEMPT_ACTIVE);
  
  		/*
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0027-signal-revert-ptrace-preempt-magic.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 69d6f6891fe67ea6b7b9b71102ec1b3b2d98a494 Mon Sep 17 00:00:00 2001
+From 01b6d6ab511f2d43b1a61fe4d9d278aae6b73660 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 21 Sep 2011 19:57:12 +0200
-Subject: [PATCH 027/282] signal-revert-ptrace-preempt-magic.patch
+Subject: [PATCH 027/287] signal-revert-ptrace-preempt-magic.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -28,6 +28,3 @@
  		schedule();
  	} else {
  		/*
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0028-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 71e5e2ebb0a3ba921ca19597d84e5b6a251828a6 Mon Sep 17 00:00:00 2001
+From 1d161cc48f730130bd5b1d3167fa98106b76eff8 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 16 Mar 2011 14:45:31 +0100
-Subject: [PATCH 028/282] arm: Mark pmu interupt IRQF_NO_THREAD
+Subject: [PATCH 028/287] arm: Mark pmu interupt IRQF_NO_THREAD
 
 PMU interrupt must not be threaded. Remove IRQF_DISABLED while at it
 as we run all handlers with interrupts disabled anyway.
@@ -24,6 +24,3 @@
  				  "arm-pmu", armpmu);
  		if (err) {
  			pr_err("unable to request IRQ%d for ARM PMU counters\n",
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0029-arm-Allow-forced-irq-threading.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 9976b6cb61e9ee39c598c0b7e94265a6e437d47a Mon Sep 17 00:00:00 2001
+From f5b950874e22f266ed2e0e81f318ef6b255262e3 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sat, 16 Jul 2011 13:15:20 +0200
-Subject: [PATCH 029/282] arm: Allow forced irq threading
+Subject: [PATCH 029/287] arm: Allow forced irq threading
 
 All timer interrupts and the perf interrupt are marked NO_THREAD, so
 its safe to allow forced interrupt threading.
@@ -14,7 +14,7 @@
 
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -29,6 +29,7 @@
+@@ -29,6 +29,7 @@ config ARM
  	select HAVE_GENERIC_HARDIRQS
  	select HAVE_SPARSE_IRQ
  	select GENERIC_IRQ_SHOW

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0030-preempt-rt-Convert-arm-boot_lock-to-raw.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 737d2b3d4598d1d990c769c861ab82e47c56b01f Mon Sep 17 00:00:00 2001
+From d4b9ed00594c7f2eb5368f72a83c2b79a64b3075 Mon Sep 17 00:00:00 2001
 From: Frank Rowand <frank.rowand at am.sony.com>
 Date: Mon, 19 Sep 2011 14:51:14 -0700
-Subject: [PATCH 030/282] preempt-rt: Convert arm boot_lock to raw
+Subject: [PATCH 030/287] preempt-rt: Convert arm boot_lock to raw
 
 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.
@@ -289,6 +289,3 @@
  
  	return pen_release != -1 ? -ENOSYS : 0;
  }
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0031-sched-Create-schedule_preempt_disabled.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From fc45413dddb8b0b912e1cf860840bb9f6163459e Mon Sep 17 00:00:00 2001
+From 7b6fd839dcce2edd0e1ed15ddd4aa2e8212cc225 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 21 Mar 2011 12:09:35 +0100
-Subject: [PATCH 031/282] sched: Create schedule_preempt_disabled()
+Subject: [PATCH 031/287] sched: Create schedule_preempt_disabled()
 
 Get rid of the ever repeating:
 
@@ -16,10 +16,10 @@
  2 files changed, 13 insertions(+)
 
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 1c4f3e9..9897fe6 100644
+index 1e86bb4..f618dc8 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -359,6 +359,7 @@ extern signed long schedule_timeout_interruptible(signed long timeout);
+@@ -360,6 +360,7 @@ extern signed long schedule_timeout_interruptible(signed long timeout);
  extern signed long schedule_timeout_killable(signed long timeout);
  extern signed long schedule_timeout_uninterruptible(signed long timeout);
  asmlinkage void schedule(void);
@@ -28,10 +28,10 @@
  
  struct nsproxy;
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 24d3ce6..9be2b0e 100644
+index 3bcda08..eeebee9 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -4455,6 +4455,18 @@ asmlinkage void __sched schedule(void)
+@@ -4648,6 +4648,18 @@ asmlinkage void __sched schedule(void)
  }
  EXPORT_SYMBOL(schedule);
  
@@ -50,6 +50,3 @@
  #ifdef CONFIG_MUTEX_SPIN_ON_OWNER
  
  static inline bool owner_running(struct mutex *lock, struct task_struct *owner)
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0032-sched-Use-schedule_preempt_disabled.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From b59fa84e861a863651fe170a2b7f1b10d8b64d75 Mon Sep 17 00:00:00 2001
+From d5f64ce0e7eb04a6a54ed98c58e8d10f10ae092f Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 21 Mar 2011 12:33:18 +0100
-Subject: [PATCH 032/282] sched: Use schedule_preempt_disabled()
+Subject: [PATCH 032/287] sched: Use schedule_preempt_disabled()
 
 Coccinelle based conversion.
 
@@ -38,10 +38,10 @@
  28 files changed, 36 insertions(+), 95 deletions(-)
 
 diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
-index 3d0c6fb..54833ff 100644
+index e68d251..3577921 100644
 --- a/arch/arm/kernel/process.c
 +++ b/arch/arm/kernel/process.c
-@@ -214,9 +214,7 @@ void cpu_idle(void)
+@@ -215,9 +215,7 @@ void cpu_idle(void)
  		}
  		leds_event(led_idle_end);
  		tick_nohz_restart_sched_tick();
@@ -404,7 +404,7 @@
  }
  
 diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
-index 8598296..ada175e3 100644
+index 8598296..ada175e 100644
 --- a/arch/x86/kernel/process_32.c
 +++ b/arch/x86/kernel/process_32.c
 @@ -117,9 +117,7 @@ void cpu_idle(void)
@@ -495,6 +495,3 @@
  		}
  
  		__set_current_state(TASK_RUNNING);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0033-signals-Do-not-wakeup-self.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 706fd306d5dd5bff323a372e21eb279c552c401f Mon Sep 17 00:00:00 2001
+From bd577218c0ef54401eb3744176f0ec643d723944 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 3 Jul 2009 08:44:44 -0500
-Subject: [PATCH 033/282] signals: Do not wakeup self
+Subject: [PATCH 033/287] signals: Do not wakeup self
 
 Signals which are delivered by current to current can do without
 waking up current :)
@@ -25,6 +25,3 @@
  	/*
  	 * For SIGKILL, we want to wake it up in the stopped/traced/killable
  	 * case. We don't check t->state here because there is a race with it
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0034-posix-timers-Prevent-broadcast-signals.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 692aa380692e9ed146c1c0af67d5fd3617c73cee Mon Sep 17 00:00:00 2001
+From f1319090099ee67ff4ccbe074293d2fbdc2dcf0f Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 3 Jul 2009 08:29:20 -0500
-Subject: [PATCH 034/282] posix-timers: Prevent broadcast signals
+Subject: [PATCH 034/287] posix-timers: Prevent broadcast signals
 
 Posix timers should not send broadcast signals and kernel only
 signals. Prevent it.
@@ -33,6 +33,3 @@
  		return NULL;
  
  	return task_pid(rtn);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 22663329dd88d5ef844c5a53f09cc5697b8a3608 Mon Sep 17 00:00:00 2001
+From 057b5d9188983e762b5319bfb78d5d97e2394b60 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 3 Jul 2009 08:44:56 -0500
-Subject: [PATCH 035/282] signals: Allow rt tasks to cache one sigqueue struct
+Subject: [PATCH 035/287] signals: Allow rt tasks to cache one sigqueue struct
 
 To avoid allocation allow rt tasks to cache one sigqueue struct in
 task struct.
@@ -16,10 +16,10 @@
  5 files changed, 83 insertions(+), 5 deletions(-)
 
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 9897fe6..7268acf 100644
+index f618dc8..814d47a 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1387,6 +1387,7 @@ struct task_struct {
+@@ -1391,6 +1391,7 @@ struct task_struct {
  /* signal handlers */
  	struct signal_struct *signal;
  	struct sighand_struct *sighand;
@@ -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 5a8a66e..9ed0883 100644
+index 234e152..ab9b6fa 100644
 --- a/kernel/exit.c
 +++ b/kernel/exit.c
 @@ -141,7 +141,7 @@ static void __exit_signal(struct task_struct *tsk)
@@ -53,10 +53,10 @@
  	spin_unlock(&sighand->siglock);
  
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 79ee71f..7335449 100644
+index 222457a..d1c6b43 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -1136,6 +1136,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1139,6 +1139,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
  	spin_lock_init(&p->alloc_lock);
  
  	init_sigpending(&p->pending);
@@ -213,6 +213,3 @@
  
  	if (q)
  		q->flags |= SIGQUEUE_PREALLOC;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0036-signal-x86-Delay-calling-signals-in-atomic.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 51f5cd3d4c8eea0a72478d6334dcc1cf7fd50bfe Mon Sep 17 00:00:00 2001
+From e37f12a6b31f786dcbf702e393d3d404d42a29b7 Mon Sep 17 00:00:00 2001
 From: Oleg Nesterov <oleg at redhat.com>
 Date: Tue, 10 Apr 2012 14:33:53 -0400
-Subject: [PATCH 036/282] signal/x86: Delay calling signals in atomic
+Subject: [PATCH 036/287] signal/x86: Delay calling signals in atomic
 
 On x86_64 we must disable preemption before we enable interrupts
 for stack faults, int3 and debugging, because the current task is using
@@ -81,10 +81,10 @@
  	if (thread_info_flags & _TIF_SIGPENDING)
  		do_signal(regs);
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 7268acf..ed2b9f9 100644
+index 814d47a..3795654 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1392,6 +1392,10 @@ struct task_struct {
+@@ -1396,6 +1396,10 @@ struct task_struct {
  	sigset_t blocked, real_blocked;
  	sigset_t saved_sigmask;	/* restored if set_restore_sigmask() was used */
  	struct sigpending pending;
@@ -150,6 +150,3 @@
  /*
   * Nuke all other threads in the group.
   */
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0037-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1463a7be1c84f98deced7c275c225f5a624435aa Mon Sep 17 00:00:00 2001
+From ee47b2285da7b053446936d161228b346d97dccb Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:29:30 -0500
-Subject: [PATCH 037/282] generic: Use raw local irq variant for generic
+Subject: [PATCH 037/287] generic: Use raw local irq variant for generic
  cmpxchg
 
 No point in tracing those.
@@ -48,6 +48,3 @@
  	return prev;
  }
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0038-drivers-random-Reduce-preempt-disabled-region.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 23bee4ce4cad995ff398b8c4a69c96d2e602e49d Mon Sep 17 00:00:00 2001
+From 8908e4d833dfcfc850ae4285f24cba6d9a77345e Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:29:30 -0500
-Subject: [PATCH 038/282] drivers: random: Reduce preempt disabled region
+Subject: [PATCH 038/287] drivers: random: Reduce preempt disabled region
 
 No need to keep preemption disabled across the whole function.
 
@@ -12,10 +12,10 @@
  1 file changed, 5 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 6035ab8..786a856 100644
+index 8ae9235..62d59ed 100644
 --- a/drivers/char/random.c
 +++ b/drivers/char/random.c
-@@ -633,8 +633,11 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
+@@ -701,8 +701,11 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
  	preempt_disable();
  	/* if over the trickle threshold, use only 1 in 4096 samples */
  	if (input_pool.entropy_count > trickle_thresh &&
@@ -29,7 +29,7 @@
  
  	sample.jiffies = jiffies;
  	sample.cycles = get_cycles();
-@@ -676,8 +679,6 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
+@@ -744,8 +747,6 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
  		credit_entropy_bits(&input_pool,
  				    min_t(int, fls(delta>>1), 11));
  	}
@@ -38,6 +38,3 @@
  }
  
  void add_input_randomness(unsigned int type, unsigned int code,
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0039-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 772049eeffd011595163efb489be9dbeb509585f Mon Sep 17 00:00:00 2001
+From d3ca60ae4bf0966e7e72760fa6531d15ad0f3e88 Mon Sep 17 00:00:00 2001
 From: Benedikt Spranger <b.spranger at linutronix.de>
 Date: Sat, 6 Mar 2010 17:47:10 +0100
-Subject: [PATCH 039/282] ARM: AT91: PIT: Remove irq handler when clock event
+Subject: [PATCH 039/287] ARM: AT91: PIT: Remove irq handler when clock event
  is unused
 
 Setup and remove the interrupt handler in clock event mode selection.
@@ -66,6 +66,3 @@
  		break;
  	case CLOCK_EVT_MODE_RESUME:
  		break;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0040-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c663f3c77a47b494829bba21208b32b7468e10a1 Mon Sep 17 00:00:00 2001
+From 5b67f9aa4a73a35d0acf360506c8b519497700ce Mon Sep 17 00:00:00 2001
 From: Benedikt Spranger <b.spranger at linutronix.de>
 Date: Mon, 8 Mar 2010 18:57:04 +0100
-Subject: [PATCH 040/282] clocksource: TCLIB: Allow higher clock rates for
+Subject: [PATCH 040/287] clocksource: TCLIB: Allow higher clock rates for
  clock events
 
 As default the TCLIB uses the 32KiHz base clock rate for clock events.
@@ -162,6 +162,3 @@
  config IBM_ASM
  	tristate "Device driver for IBM RSA service processor"
  	depends on X86 && PCI && INPUT && EXPERIMENTAL
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0041-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 43d8e50128290b6f176551cbb4e0c914a41483fa Mon Sep 17 00:00:00 2001
+From ac6aadf6637960e42751fec014dd27c55ff9617a Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:18 -0500
-Subject: [PATCH 041/282] drivers/net: tulip_remove_one needs to call
+Subject: [PATCH 041/287] drivers/net: tulip_remove_one needs to call
  pci_disable_device()
 
 Otherwise the device is not completely shut down.
@@ -24,6 +24,3 @@
  	pci_set_drvdata (pdev, NULL);
  
  	/* pci_power_off (pdev, -1); */
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0042-drivers-net-Use-disable_irq_nosync-in-8139too.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 44ce96bb095262405acdaf6273702bcae65a7a5c Mon Sep 17 00:00:00 2001
+From c5f1a49018a001f29192b146dad3af9021f8f443 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:29:24 -0500
-Subject: [PATCH 042/282] drivers/net: Use disable_irq_nosync() in 8139too
+Subject: [PATCH 042/287] drivers/net: Use disable_irq_nosync() in 8139too
 
 Use disable_irq_nosync() instead of disable_irq() as this might be
 called in atomic context with netpoll.
@@ -25,6 +25,3 @@
  	rtl8139_interrupt(dev->irq, dev);
  	enable_irq(dev->irq);
  }
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0043-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From b108d0a78f44b51092f1832a7186f5f6e24e62ec Mon Sep 17 00:00:00 2001
+From 32cf10137ca88dd8813cae1169a2c2d20a3a3204 Mon Sep 17 00:00:00 2001
 From: Darren Hart <dvhltc at us.ibm.com>
 Date: Tue, 18 May 2010 14:33:07 -0700
-Subject: [PATCH 043/282] drivers: net: ehea: Make rx irq handler non-threaded
+Subject: [PATCH 043/287] drivers: net: ehea: Make rx irq handler non-threaded
  (IRQF_NO_THREAD)
 
 The underlying hardware is edge triggered but presented by XICS as level
@@ -52,6 +52,3 @@
  					  pr);
  		if (ret) {
  			netdev_err(dev, "failed registering irq for ehea_queue port_res_nr:%d, ist=%X\n",
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0044-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From cab3b57256443dd4f0a2abb34385d5628b5c64f8 Mon Sep 17 00:00:00 2001
+From 23cec3b78c759dc1020677519ffca707a0ffa425 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 17 Nov 2009 12:02:43 +0100
-Subject: [PATCH 044/282] drivers: net: at91_ether: Make mdio protection -rt
+Subject: [PATCH 044/287] drivers: net: at91_ether: Make mdio protection -rt
  safe
 
 Neither the phy interrupt nor the timer callback which updates the
@@ -53,6 +53,3 @@
  
  	mod_timer(&lp->check_timer, jiffies + LINK_POLL_INTERVAL);
  }
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0045-preempt-mark-legitimated-no-resched-sites.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 2f48b271a36fd8ae61b91bebf615b0012edca4e7 Mon Sep 17 00:00:00 2001
+From 5eee2b094a9935d483838ad3e7ac89041a42a92b Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 21 Mar 2011 13:32:17 +0100
-Subject: [PATCH 045/282] preempt-mark-legitimated-no-resched-sites.patch
+Subject: [PATCH 045/287] preempt-mark-legitimated-no-resched-sites.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -67,10 +67,10 @@
  #define preempt_enable()		do { } while (0)
  
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 9be2b0e..cd07a59 100644
+index eeebee9..1e0a583 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -4414,7 +4414,7 @@ need_resched:
+@@ -4607,7 +4607,7 @@ need_resched:
  
  	post_schedule(rq);
  
@@ -79,7 +79,7 @@
  	if (need_resched())
  		goto need_resched;
  }
-@@ -4462,7 +4462,7 @@ EXPORT_SYMBOL(schedule);
+@@ -4655,7 +4655,7 @@ EXPORT_SYMBOL(schedule);
   */
  void __sched schedule_preempt_disabled(void)
  {
@@ -88,7 +88,7 @@
  	schedule();
  	preempt_disable();
  }
-@@ -5704,7 +5704,7 @@ SYSCALL_DEFINE0(sched_yield)
+@@ -5897,7 +5897,7 @@ SYSCALL_DEFINE0(sched_yield)
  	__release(rq->lock);
  	spin_release(&rq->lock.dep_map, 1, _THIS_IP_);
  	do_raw_spin_unlock(&rq->lock);
@@ -119,6 +119,3 @@
  			cond_resched();
  			preempt_disable();
  			rcu_note_context_switch((long)__bind_cpu);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0046-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 7615c02d701ec4b9eea84515e036bd2b599210a5 Mon Sep 17 00:00:00 2001
+From 72e40881efceb4912d8121d98ed1e13ae520f3ec Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:37 -0500
-Subject: [PATCH 046/282] mm: Prepare decoupling the page fault disabling
+Subject: [PATCH 046/287] mm: Prepare decoupling the page fault disabling
  logic
 
 Add a pagefault_disabled variable to task_struct to allow decoupling
@@ -17,10 +17,10 @@
  4 files changed, 34 insertions(+), 30 deletions(-)
 
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index ed2b9f9..bce86f9 100644
+index 3795654..4ccb25e 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1435,6 +1435,7 @@ struct task_struct {
+@@ -1439,6 +1439,7 @@ struct task_struct {
  	/* mutex deadlock detection */
  	struct mutex_waiter *blocked_on;
  #endif
@@ -74,10 +74,10 @@
  #ifndef ARCH_HAS_NOCACHE_UACCESS
  
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 7335449..e2b9104 100644
+index d1c6b43..a49f324 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -1198,6 +1198,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1201,6 +1201,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
  	p->hardirq_context = 0;
  	p->softirq_context = 0;
  #endif
@@ -86,10 +86,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 1b1ca17..454ad3f 100644
+index 70f5daf..b50e579 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -3444,6 +3444,35 @@ unlock:
+@@ -3447,6 +3447,35 @@ unlock:
  	return 0;
  }
  
@@ -125,6 +125,3 @@
  /*
   * By the time we get here, we already hold the mm semaphore
   */
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0047-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From fbf8000eb917b81ecc2d88a15e0b08f5037455fc Mon Sep 17 00:00:00 2001
+From d612bf6fc187b606dfb954b4f4a5bbc7eb176441 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 17 Mar 2011 11:32:28 +0100
-Subject: [PATCH 047/282] mm: Fixup all fault handlers to check
+Subject: [PATCH 047/287] mm: Fixup all fault handlers to check
  current->pagefault_disable
 
 Necessary for decoupling pagefault disable from preempt count.
@@ -203,7 +203,7 @@
  			return SIGSEGV;
  		/* in_atomic() in user mode is really bad,
 diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
-index b28aaa4..4aaffe7 100644
+index 0fc0a7e..b282958 100644
 --- a/arch/s390/mm/fault.c
 +++ b/arch/s390/mm/fault.c
 @@ -294,7 +294,8 @@ static inline int do_exception(struct pt_regs *regs, int access,
@@ -332,6 +332,3 @@
  		bad_page_fault(regs, address, SIGSEGV);
  		return;
  	}
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0048-mm-pagefault_disabled.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 78dc9bb9da11e3720c1ec2a8837fd8c9683fc19b Mon Sep 17 00:00:00 2001
+From d70d0954b81e4f42bcd1be6d73eb24434545cde2 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Thu, 11 Aug 2011 15:31:31 +0200
-Subject: [PATCH 048/282] mm: pagefault_disabled()
+Subject: [PATCH 048/287] mm: pagefault_disabled()
 
 Wrap the test for pagefault_disabled() into a helper, this allows us
 to remove the need for current->pagefault_disabled on !-rt kernels.
@@ -206,7 +206,7 @@
  			return SIGSEGV;
  		/* in_atomic() in user mode is really bad,
 diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
-index 4aaffe7..78339f0 100644
+index b282958..feb5518 100644
 --- a/arch/s390/mm/fault.c
 +++ b/arch/s390/mm/fault.c
 @@ -294,8 +294,8 @@ static inline int do_exception(struct pt_regs *regs, int access,
@@ -336,7 +336,7 @@
  		return;
  	}
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index bce86f9..8cb4365 100644
+index 4ccb25e..2dc6c48 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
 @@ -91,6 +91,7 @@ struct sched_param {
@@ -347,7 +347,7 @@
  
  #include <asm/processor.h>
  
-@@ -1435,7 +1436,9 @@ struct task_struct {
+@@ -1439,7 +1440,9 @@ struct task_struct {
  	/* mutex deadlock detection */
  	struct mutex_waiter *blocked_on;
  #endif
@@ -357,7 +357,7 @@
  #ifdef CONFIG_TRACE_IRQFLAGS
  	unsigned int irq_events;
  	unsigned long hardirq_enable_ip;
-@@ -1584,6 +1587,17 @@ struct task_struct {
+@@ -1588,6 +1591,17 @@ struct task_struct {
  /* Future-safe accessor for struct task_struct's cpus_allowed. */
  #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
  
@@ -376,10 +376,10 @@
   * Priority of a process goes from 0..MAX_PRIO-1, valid RT
   * priority is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH
 diff --git a/kernel/fork.c b/kernel/fork.c
-index e2b9104..88712a6 100644
+index a49f324..78335bb 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -1198,7 +1198,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1201,7 +1201,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
  	p->hardirq_context = 0;
  	p->softirq_context = 0;
  #endif
@@ -389,6 +389,3 @@
  #ifdef CONFIG_LOCKDEP
  	p->lockdep_depth = 0; /* no locks held yet */
  	p->curr_chain_key = 0;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0049-mm-raw_pagefault_disable.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From e27a4556f56fb713cc29af31d59d6525a71fd3ed Mon Sep 17 00:00:00 2001
+From 6614dcc78ed3f2e7b9e0a1e998a7bad1fdcea362 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Fri, 5 Aug 2011 17:16:58 +0200
-Subject: [PATCH 049/282] mm: raw_pagefault_disable
+Subject: [PATCH 049/287] mm: raw_pagefault_disable
 
 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 454ad3f..a3f7ed8 100644
+index b50e579..cbbba51 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -3444,6 +3444,7 @@ unlock:
+@@ -3447,6 +3447,7 @@ unlock:
  	return 0;
  }
  
@@ -141,7 +141,7 @@
  void pagefault_disable(void)
  {
  	inc_preempt_count();
-@@ -3472,6 +3473,7 @@ void pagefault_enable(void)
+@@ -3475,6 +3476,7 @@ void pagefault_enable(void)
  	preempt_check_resched();
  }
  EXPORT_SYMBOL_GPL(pagefault_enable);
@@ -149,6 +149,3 @@
  
  /*
   * By the time we get here, we already hold the mm semaphore
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0050-filemap-fix-up.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From fa9d4ffc8aacc17767dda0adb318f21c15caa0dc Mon Sep 17 00:00:00 2001
+From e3b7c14a0064e0697ee6ef82be670fe442c662e0 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 17 Jun 2011 18:56:24 +0200
-Subject: [PATCH 050/282] filemap-fix-up.patch
+Subject: [PATCH 050/287] filemap-fix-up.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 Wrecked-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
@@ -11,10 +11,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/mm/filemap.c b/mm/filemap.c
-index 03c5b0e..4a30d36 100644
+index 556858c..015f07e 100644
 --- a/mm/filemap.c
 +++ b/mm/filemap.c
-@@ -2044,7 +2044,7 @@ size_t iov_iter_copy_from_user_atomic(struct page *page,
+@@ -2047,7 +2047,7 @@ size_t iov_iter_copy_from_user_atomic(struct page *page,
  	char *kaddr;
  	size_t copied;
  
@@ -23,6 +23,3 @@
  	kaddr = kmap_atomic(page, KM_USER0);
  	if (likely(i->nr_segs == 1)) {
  		int left;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0051-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From f7459d07318f682ab2718c16381850151938d439 Mon Sep 17 00:00:00 2001
+From 079c6ac0f583151b1993680c76914d62e823fc6b Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sat, 25 Jul 2009 22:06:27 +0200
-Subject: [PATCH 051/282] mm: Remove preempt count from pagefault
+Subject: [PATCH 051/287] mm: Remove preempt count from pagefault
  disable/enable
 
 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 a3f7ed8..7fa62d9 100644
+index cbbba51..c2575a6 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -3447,7 +3447,6 @@ unlock:
+@@ -3450,7 +3450,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
-@@ -3465,12 +3464,6 @@ void pagefault_enable(void)
+@@ -3468,12 +3467,6 @@ void pagefault_enable(void)
  	 */
  	barrier();
  	current->pagefault_disabled--;
@@ -36,6 +36,3 @@
  }
  EXPORT_SYMBOL_GPL(pagefault_enable);
  #endif
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0052-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1258748aa11e6d483bcd1d697725f48be5915d05 Mon Sep 17 00:00:00 2001
+From f37cadf2cefd07cd5b3c13f28ab8c9875865c4c5 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:29:25 -0500
-Subject: [PATCH 052/282] x86: highmem: Replace BUG_ON by WARN_ON
+Subject: [PATCH 052/287] x86: highmem: Replace BUG_ON by WARN_ON
 
 The machine might survive that problem and be at least in a state
 which allows us to get more information about the problem.
@@ -25,6 +25,3 @@
  	set_pte(kmap_pte-idx, mk_pte(page, prot));
  	arch_flush_lazy_mmu_mode();
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0053-suspend-Prevent-might-sleep-splats.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 078b6c93d66f27b476c95d7fc1a2355e928777f0 Mon Sep 17 00:00:00 2001
+From 4564fb1a43a65fea27743f84ca796cf40d46dedb Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 15 Jul 2010 10:29:00 +0200
-Subject: [PATCH 053/282] suspend: Prevent might sleep splats
+Subject: [PATCH 053/287] suspend: Prevent might sleep splats
 
 timekeeping suspend/resume calls read_persistant_clock() which takes
 rtc_lock. That results in might sleep warnings because at that point
@@ -37,7 +37,7 @@
  
  #define TAINT_PROPRIETARY_MODULE	0
 diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
-index 7c0d578..32741e2 100644
+index 013bd2e..5b5dab4 100644
 --- a/kernel/power/hibernate.c
 +++ b/kernel/power/hibernate.c
 @@ -284,6 +284,8 @@ static int create_image(int platform_mode)
@@ -57,7 +57,7 @@
  	local_irq_enable();
  
   Enable_cpus:
-@@ -437,6 +440,7 @@ static int resume_target_kernel(bool platform_mode)
+@@ -439,6 +442,7 @@ static int resume_target_kernel(bool platform_mode)
  		goto Enable_cpus;
  
  	local_irq_disable();
@@ -65,7 +65,7 @@
  
  	error = syscore_suspend();
  	if (error)
-@@ -470,6 +474,7 @@ static int resume_target_kernel(bool platform_mode)
+@@ -472,6 +476,7 @@ static int resume_target_kernel(bool platform_mode)
  	syscore_resume();
  
   Enable_irqs:
@@ -73,7 +73,7 @@
  	local_irq_enable();
  
   Enable_cpus:
-@@ -549,6 +554,7 @@ int hibernation_platform_enter(void)
+@@ -554,6 +559,7 @@ int hibernation_platform_enter(void)
  		goto Platform_finish;
  
  	local_irq_disable();
@@ -81,7 +81,7 @@
  	syscore_suspend();
  	if (pm_wakeup_pending()) {
  		error = -EAGAIN;
-@@ -561,6 +567,7 @@ int hibernation_platform_enter(void)
+@@ -566,6 +572,7 @@ int hibernation_platform_enter(void)
  
   Power_up:
  	syscore_resume();
@@ -90,10 +90,10 @@
  	enable_nonboot_cpus();
  
 diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
-index 4953dc0..691f46e 100644
+index af48faa..ad3690c 100644
 --- a/kernel/power/suspend.c
 +++ b/kernel/power/suspend.c
-@@ -171,6 +171,8 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
+@@ -172,6 +172,8 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
  	arch_suspend_disable_irqs();
  	BUG_ON(!irqs_disabled());
  
@@ -102,7 +102,7 @@
  	error = syscore_suspend();
  	if (!error) {
  		*wakeup = pm_wakeup_pending();
-@@ -181,6 +183,8 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
+@@ -182,6 +184,8 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
  		syscore_resume();
  	}
  
@@ -111,6 +111,3 @@
  	arch_suspend_enable_irqs();
  	BUG_ON(irqs_disabled());
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0054-OF-Fixup-resursive-locking-code-paths.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d0ce0d14fafba01db2056a5c0fcfa838ed34e6ee Mon Sep 17 00:00:00 2001
+From bfed73d61ac5ed492a4e58639aad3b28ce12b5bd Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 13 Aug 2009 09:04:10 +0200
-Subject: [PATCH 054/282] OF: Fixup resursive locking code paths
+Subject: [PATCH 054/287] OF: Fixup resursive locking code paths
 
 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
@@ -193,6 +193,3 @@
  			break;
  	}
  	of_node_put(from);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0055-of-convert-devtree-lock.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d154b3c810bbe4485d3cc23193a75fbecaf2726b Mon Sep 17 00:00:00 2001
+From 58fc5be0be8126daf743357030b0a4cc8636d3fc Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 21 Mar 2011 14:35:34 +0100
-Subject: [PATCH 055/282] of-convert-devtree-lock.patch
+Subject: [PATCH 055/287] of-convert-devtree-lock.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -391,6 +391,3 @@
  
  static inline bool of_have_populated_dt(void)
  {
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0056-list-add-list-last-entry.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 4d745bfbec66adc7ae9337aabff613d849d8da21 Mon Sep 17 00:00:00 2001
+From ed32359338068b62cf557b48e712520d82b15ac4 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <peterz at infradead.org>
 Date: Tue, 21 Jun 2011 11:22:36 +0200
-Subject: [PATCH 056/282] list-add-list-last-entry.patch
+Subject: [PATCH 056/287] list-add-list-last-entry.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -30,6 +30,3 @@
   * list_for_each	-	iterate over a list
   * @pos:	the &struct list_head to use as a loop cursor.
   * @head:	the head for your list.
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0057-mm-page-alloc-use-list-last-entry.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 8021899f80982b92a331dff238dbf25e5e969899 Mon Sep 17 00:00:00 2001
+From b5fc89e71742866f218ac5cd2139aec7e5adf182 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <peterz at infradead.org>
 Date: Tue, 21 Jun 2011 11:24:35 +0200
-Subject: [PATCH 057/282] mm-page-alloc-use-list-last-entry.patch
+Subject: [PATCH 057/287] mm-page-alloc-use-list-last-entry.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -9,7 +9,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 485be89..3344154 100644
+index a88dded..2536d02 100644
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
 @@ -625,7 +625,7 @@ static void free_pcppages_bulk(struct zone *zone, int count,
@@ -21,6 +21,3 @@
  			/* must delete as __free_one_page list manipulates */
  			list_del(&page->lru);
  			/* MIGRATE_MOVABLE list may include MIGRATE_RESERVEs */
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0058-mm-slab-move-debug-out.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 894cd71ae35e2b9734b63eed62d811719e7907b0 Mon Sep 17 00:00:00 2001
+From e1320f067cd62ae7b5bba9bef02fd2c95d236f8d Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 20 Jun 2011 10:42:04 +0200
-Subject: [PATCH 058/282] mm-slab-move-debug-out.patch
+Subject: [PATCH 058/287] mm-slab-move-debug-out.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -9,10 +9,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/mm/slab.c b/mm/slab.c
-index b76905e..1fd9983 100644
+index 61dfda3..f807b35 100644
 --- a/mm/slab.c
 +++ b/mm/slab.c
-@@ -3851,10 +3851,10 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
+@@ -3857,10 +3857,10 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
  {
  	unsigned long flags;
  
@@ -24,7 +24,7 @@
  	__cache_free(cachep, objp, __builtin_return_address(0));
  	local_irq_restore(flags);
  
-@@ -3880,11 +3880,11 @@ void kfree(const void *objp)
+@@ -3886,11 +3886,11 @@ void kfree(const void *objp)
  
  	if (unlikely(ZERO_OR_NULL_PTR(objp)))
  		return;
@@ -37,6 +37,3 @@
  	__cache_free(c, (void *)objp, __builtin_return_address(0));
  	local_irq_restore(flags);
  }
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0059-rwsem-inlcude-fix.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c225a3215efc938787996cbe096d40e537992095 Mon Sep 17 00:00:00 2001
+From b448956ac13f80e6fe0ab7c5f8adf8f519e840a6 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 15 Jul 2011 21:24:27 +0200
-Subject: [PATCH 059/282] rwsem-inlcude-fix.patch
+Subject: [PATCH 059/287] rwsem-inlcude-fix.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -20,6 +20,3 @@
  
  enum pid_type
  {
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0060-sysctl-include-fix.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 0eb27cfadcebc59193ebb781e4b3c446eac76b6a Mon Sep 17 00:00:00 2001
+From 2411c2ad3107e64fe66d0a5488cd32c3e0109a56 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 14 Nov 2011 10:52:34 +0100
-Subject: [PATCH 060/282] sysctl-include-fix.patch
+Subject: [PATCH 060/287] sysctl-include-fix.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -20,6 +20,3 @@
  
  /* For the /proc/sys support */
  struct ctl_table;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0061-net-flip-lock-dep-thingy.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 6e65253540403f6d75e1a84db73e842df83b33ac Mon Sep 17 00:00:00 2001
+From d2ace97011be553715a82d6a5c63959343b48138 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 28 Jun 2011 10:59:58 +0200
-Subject: [PATCH 061/282] net-flip-lock-dep-thingy.patch
+Subject: [PATCH 061/287] net-flip-lock-dep-thingy.patch
 
 =======================================================
 [ INFO: possible circular locking dependency detected ]
@@ -93,10 +93,10 @@
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/net/core/sock.c b/net/core/sock.c
-index 8d095b9..718314b 100644
+index 1e8a882..6190c9b 100644
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -2034,12 +2034,11 @@ void lock_sock_nested(struct sock *sk, int subclass)
+@@ -2036,12 +2036,11 @@ void lock_sock_nested(struct sock *sk, int subclass)
  	if (sk->sk_lock.owned)
  		__lock_sock(sk);
  	sk->sk_lock.owned = 1;
@@ -110,6 +110,3 @@
  }
  EXPORT_SYMBOL(lock_sock_nested);
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0062-softirq-thread-do-softirq.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 7b28ede15f53b267a06036e16e25e7c2e94cf1fc Mon Sep 17 00:00:00 2001
+From ab1efe5320ca834b0ac4ef38b5c95976c175a5b9 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 28 Jun 2011 15:44:15 +0200
-Subject: [PATCH 062/282] softirq-thread-do-softirq.patch
+Subject: [PATCH 062/287] softirq-thread-do-softirq.patch
 
 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 1cbddc9..1297da7 100644
+index abe1147..7d52b8a 100644
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
 @@ -3031,7 +3031,7 @@ int netif_rx_ni(struct sk_buff *skb)
@@ -35,6 +35,3 @@
  	preempt_enable();
  
  	return err;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0063-softirq-split-out-code.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From ea39fba1257ff352dda686d745b385e6895d09dc Mon Sep 17 00:00:00 2001
+From 42020e56bc44cd34800c743e21b55268019d7059 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 28 Jun 2011 15:46:49 +0200
-Subject: [PATCH 063/282] softirq-split-out-code.patch
+Subject: [PATCH 063/287] softirq-split-out-code.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -154,6 +154,3 @@
  			__preempt_enable_no_resched();
  			cond_resched();
  			preempt_disable();
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0064-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1eba6b2acc30d0cbdf7d16c410ccd07319a46428 Mon Sep 17 00:00:00 2001
+From 811dd9b2c2f132edc4d737b2b8d9f52a9e1e4c2f Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:29:27 -0500
-Subject: [PATCH 064/282] x86: Do not unmask io_apic when interrupt is in
+Subject: [PATCH 064/287] x86: Do not unmask io_apic when interrupt is in
  progress
 
 With threaded interrupts we might see an interrupt in progress on
@@ -27,6 +27,3 @@
  		do_unmask_irq = 1;
  		mask_ioapic(cfg);
  	}
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0065-x86-32-fix-signal-crap.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1341768c6a3013a696272a93c096bef4d93c697e Mon Sep 17 00:00:00 2001
+From f1b250e4b5c171f82b89a5467e4fe44d0931ca28 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 18 Jul 2011 15:59:38 +0200
-Subject: [PATCH 065/282] x86-32-fix-signal-crap.patch
+Subject: [PATCH 065/287] x86-32-fix-signal-crap.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -36,6 +36,3 @@
  	jmp resume_userspace_sig
  END(work_pending)
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0066-x86-Do-not-disable-preemption-in-int3-on-32bit.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 4f4cbb93b53763c662169b6aae8238d1ab448982 Mon Sep 17 00:00:00 2001
+From 63891c5af624658b497ca313f00596b5b4de8125 Mon Sep 17 00:00:00 2001
 From: Steven Rostedt <rostedt at goodmis.org>
 Date: Tue, 10 Apr 2012 14:33:57 -0400
-Subject: [PATCH 066/282] x86: Do not disable preemption in int3 on 32bit
+Subject: [PATCH 066/287] x86: Do not disable preemption in int3 on 32bit
 
 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
@@ -113,6 +113,3 @@
  
  	return;
  }
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0067-rcu-Reduce-lock-section.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 4edf87bafe6164db4955cc5ce348afa435ca7388 Mon Sep 17 00:00:00 2001
+From 56364ef3bcdb691571970d143c43f1f96b6b6eac Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 24 Jun 2011 22:23:02 +0200
-Subject: [PATCH 067/282] rcu: Reduce lock section
+Subject: [PATCH 067/287] rcu: Reduce lock section
 
 So the waitqueue wakeup is outside the raw locked section.
 
@@ -13,10 +13,10 @@
  3 files changed, 11 insertions(+), 8 deletions(-)
 
 diff --git a/kernel/rcutree.c b/kernel/rcutree.c
-index 6b76d81..8ef8675 100644
+index a122196..d5eb74a 100644
 --- a/kernel/rcutree.c
 +++ b/kernel/rcutree.c
-@@ -1221,7 +1221,7 @@ static void __rcu_offline_cpu(int cpu, struct rcu_state *rsp)
+@@ -1223,7 +1223,7 @@ static void __rcu_offline_cpu(int cpu, struct rcu_state *rsp)
  	else
  		raw_spin_unlock_irqrestore(&rnp->lock, flags);
  	if (need_report & RCU_OFL_TASKS_EXP_GP)
@@ -93,6 +93,3 @@
  }
  
  #endif /* #ifdef CONFIG_HOTPLUG_CPU */
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0068-locking-various-init-fixes.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d41167e625e97da6ff9544cb3bbeb27aaf9aeba9 Mon Sep 17 00:00:00 2001
+From 7b7d021d1ad86a1834b56b1775c37744c424b205 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 21:25:03 +0200
-Subject: [PATCH 068/282] locking-various-init-fixes.patch
+Subject: [PATCH 068/287] locking-various-init-fixes.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -13,10 +13,10 @@
  5 files changed, 7 insertions(+), 7 deletions(-)
 
 diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 786a856..026bdbb 100644
+index 62d59ed..d38af32 100644
 --- a/drivers/char/random.c
 +++ b/drivers/char/random.c
-@@ -433,7 +433,7 @@ static struct entropy_store input_pool = {
+@@ -445,7 +445,7 @@ static struct entropy_store input_pool = {
  	.poolinfo = &poolinfo_table[0],
  	.name = "input",
  	.limit = 1,
@@ -25,7 +25,7 @@
  	.pool = input_pool_data
  };
  
-@@ -442,7 +442,7 @@ static struct entropy_store blocking_pool = {
+@@ -454,7 +454,7 @@ static struct entropy_store blocking_pool = {
  	.name = "blocking",
  	.limit = 1,
  	.pull = &input_pool,
@@ -34,7 +34,7 @@
  	.pool = blocking_pool_data
  };
  
-@@ -450,7 +450,7 @@ static struct entropy_store nonblocking_pool = {
+@@ -462,7 +462,7 @@ static struct entropy_store nonblocking_pool = {
  	.poolinfo = &poolinfo_table[1],
  	.name = "nonblocking",
  	.pull = &input_pool,
@@ -95,6 +95,3 @@
  };
  #endif
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0069-wait-Provide-__wake_up_all_locked.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 95333bbde8ea68c4afcdaafdb1b453591fc2df8b Mon Sep 17 00:00:00 2001
+From 98b6fb547a46e148ad354a10b205b177c6b50672 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 1 Dec 2011 00:04:00 +0100
-Subject: [PATCH 069/282] wait: Provide __wake_up_all_locked
+Subject: [PATCH 069/287] wait: Provide __wake_up_all_locked
 
 For code which protects the waitqueue itself with another lock it
 makes no sense to acquire the waitqueue lock for wakeup all. Provide
@@ -38,10 +38,10 @@
  #define wake_up_interruptible(x)	__wake_up(x, TASK_INTERRUPTIBLE, 1, NULL)
  #define wake_up_interruptible_nr(x, nr)	__wake_up(x, TASK_INTERRUPTIBLE, nr, NULL)
 diff --git a/kernel/sched.c b/kernel/sched.c
-index cd07a59..f2fc6ee 100644
+index 1e0a583..d24f681 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -4636,9 +4636,9 @@ EXPORT_SYMBOL(__wake_up);
+@@ -4829,9 +4829,9 @@ EXPORT_SYMBOL(__wake_up);
  /*
   * Same as __wake_up but called with the spinlock in wait_queue_head_t held.
   */
@@ -53,6 +53,3 @@
  }
  EXPORT_SYMBOL_GPL(__wake_up_locked);
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0070-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 8c721a627561fd4b14ff3638e563f02412813c20 Mon Sep 17 00:00:00 2001
+From b8d5e105e1eedcf47ba381215a4370b7ce88839b Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 1 Dec 2011 00:07:16 +0100
-Subject: [PATCH 070/282] pci: Use __wake_up_all_locked
+Subject: [PATCH 070/287] pci: Use __wake_up_all_locked
  pci_unblock_user_cfg_access()
 
 The waitqueue is protected by the pci_lock, so we can just avoid to
@@ -27,6 +27,3 @@
  	raw_spin_unlock_irqrestore(&pci_lock, flags);
  }
  EXPORT_SYMBOL_GPL(pci_unblock_user_cfg_access);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0071-latency-hist.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From f1b6f7811c3b510ff767bb639e71ca80cb2590af Mon Sep 17 00:00:00 2001
+From c4db1912c38865a9820328d962ce15cd0ae4ed92 Mon Sep 17 00:00:00 2001
 From: Carsten Emde <C.Emde at osadl.org>
 Date: Tue, 19 Jul 2011 14:03:41 +0100
-Subject: [PATCH 071/282] latency-hist.patch
+Subject: [PATCH 071/287] latency-hist.patch
 
 This patch provides a recording mechanism to store data of potential
 sources of system latencies. The recordings separately determine the
@@ -221,10 +221,10 @@
 +
 +These data are also reset when the wakeup histogram is reset.
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 8cb4365..30ac0b5 100644
+index 2dc6c48..c533510 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1570,6 +1570,12 @@ struct task_struct {
+@@ -1574,6 +1574,12 @@ struct task_struct {
  	unsigned long trace;
  	/* bitmask and counter of trace recursion */
  	unsigned long trace_recursion;
@@ -349,7 +349,7 @@
 +#endif /* _LATENCY_HIST_H */
 +
 diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index ae34bf5..1a3695e 100644
+index 6db7a5e..7eec82d 100644
 --- a/kernel/hrtimer.c
 +++ b/kernel/hrtimer.c
 @@ -49,6 +49,7 @@
@@ -360,7 +360,7 @@
  
  /*
   * The timer bases:
-@@ -1236,6 +1237,8 @@ static void __run_hrtimer(struct hrtimer *timer, ktime_t *now)
+@@ -1246,6 +1247,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
-@@ -1280,6 +1283,14 @@ retry:
+@@ -1289,6 +1292,14 @@ retry:
  
  			timer = container_of(node, struct hrtimer, node);
  
@@ -1791,6 +1791,3 @@
  	if (preempt_trace() && !irq_trace())
  		start_critical_timing(a0, a1);
  }
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0072-hwlatdetect.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 45ef50eea34f9e78db789e06cf73c681973d1517 Mon Sep 17 00:00:00 2001
+From 5bdc553077498b295701ccee947691c4ae4b1f15 Mon Sep 17 00:00:00 2001
 From: Carsten Emde <C.Emde at osadl.org>
 Date: Tue, 19 Jul 2011 13:53:12 +0100
-Subject: [PATCH 072/282] hwlatdetect.patch
+Subject: [PATCH 072/287] hwlatdetect.patch
 
 Jon Masters developed this wonderful SMI detector. For details please
 consult Documentation/hwlat_detector.txt. It could be ported to Linux
@@ -89,7 +89,7 @@
 +then we write to a global sample ring buffer of 8K samples, which is
 +consumed by reading from the "sample" (pipe) debugfs file interface.
 diff --git a/MAINTAINERS b/MAINTAINERS
-index f986e7d..b257477 100644
+index 82d7fa6..92a9df2 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
 @@ -3008,6 +3008,15 @@ L:	linuxppc-dev at lists.ozlabs.org
@@ -1375,6 +1375,3 @@
 +
 +module_init(detector_init);
 +module_exit(detector_exit);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0073-localversion.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 82af6fac99160166f358d78e7f6e0c33e4d6d9ee Mon Sep 17 00:00:00 2001
+From afefba05483f76484d722fd3d5520844dc12c4a2 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 8 Jul 2011 20:25:16 +0200
-Subject: [PATCH 073/282] localversion.patch
+Subject: [PATCH 073/287] localversion.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
@@ -18,6 +18,3 @@
 +++ b/localversion-rt
 @@ -0,0 +1 @@
 +-rt24
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0074-early-printk-consolidate.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 5251d708a751e91857000a401c0b220028c1189a Mon Sep 17 00:00:00 2001
+From 2c13874a798eeb497f4f3faf391b41bd734b853a Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sat, 23 Jul 2011 11:04:08 +0200
-Subject: [PATCH 074/282] early-printk-consolidate.patch
+Subject: [PATCH 074/287] early-printk-consolidate.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -494,6 +494,3 @@
  static int __read_mostly ignore_loglevel;
  
  static int __init ignore_loglevel_setup(char *str)
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0075-printk-kill.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 5a299cda552af0c2bab626d3730c4cbeade11c2b Mon Sep 17 00:00:00 2001
+From 66f77c2964b6862977bc171baff5e3a012b3c5a8 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 22 Jul 2011 17:58:40 +0200
-Subject: [PATCH 075/282] printk-kill.patch
+Subject: [PATCH 075/287] printk-kill.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -120,6 +120,3 @@
  
  		__this_cpu_write(hard_watchdog_warn, true);
  		return;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0076-printk-force_early_printk-boot-param-to-help-with-de.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From ad64ef7c94c9a86722a1f9ce1664793baa28c5f5 Mon Sep 17 00:00:00 2001
+From 5996fc8cafe95684d6dfb6e0722fd79af7e9c3a8 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Fri, 2 Sep 2011 14:29:33 +0200
-Subject: [PATCH 076/282] printk: 'force_early_printk' boot param to help with
+Subject: [PATCH 076/287] printk: 'force_early_printk' boot param to help with
  debugging
 
 Gives me an option to screw printk and actually see what the machine
@@ -33,6 +33,3 @@
  void printk_kill(void)
  {
  	printk_killswitch = 1;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0077-rt-preempt-base-config.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 048d30367fa7a4243c27d9c4874790fd256f5278 Mon Sep 17 00:00:00 2001
+From 1238c77aa770087b3569f4a7942d27a2be785ad1 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 17 Jun 2011 12:39:57 +0200
-Subject: [PATCH 077/282] rt-preempt-base-config.patch
+Subject: [PATCH 077/287] rt-preempt-base-config.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -50,6 +50,3 @@
  endchoice
  
  config PREEMPT_COUNT
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0078-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 64cf889529be62fc6cc62df1ae4df10e1370f3bf Mon Sep 17 00:00:00 2001
+From b2cf13511326f019228d0208a80a137ab39e059b Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:29:58 -0500
-Subject: [PATCH 078/282] bug: BUG_ON/WARN_ON variants dependend on RT/!RT
+Subject: [PATCH 078/287] bug: BUG_ON/WARN_ON variants dependend on RT/!RT
 
 Signed-off-by: Ingo Molnar <mingo at elte.hu>
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
@@ -43,6 +43,3 @@
 +#endif
 +
  #endif
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0079-rt-local_irq_-variants-depending-on-RT-RT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From f0213bc69b3cf36e06957f512e389a115b187625 Mon Sep 17 00:00:00 2001
+From f3874a1a67fd4c653f88758429fe5a8771a07779 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 21 Jul 2009 22:34:14 +0200
-Subject: [PATCH 079/282] rt: local_irq_* variants depending on RT/!RT
+Subject: [PATCH 079/287] rt: local_irq_* variants depending on RT/!RT
 
 Add local_irq_*_(no)rt variant which are mainly used to break
 interrupt disabled sections on PREEMPT_RT or to explicitely disable
@@ -54,6 +54,3 @@
 +#endif
 +
  #endif
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0080-preempt-Provide-preempt_-_-no-rt-variants.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c47b4bddc79e58cebe5229a428070e252f096131 Mon Sep 17 00:00:00 2001
+From b10d35eed16fe4440f495805bba15df5337a7bb8 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 24 Jul 2009 12:38:56 +0200
-Subject: [PATCH 080/282] preempt: Provide preempt_*_(no)rt variants
+Subject: [PATCH 080/287] preempt: Provide preempt_*_(no)rt variants
 
 RT needs a few preempt_disable/enable points which are not necessary
 otherwise. Implement variants to avoid #ifdeffery.
@@ -52,6 +52,3 @@
  #ifdef CONFIG_PREEMPT_NOTIFIERS
  
  struct preempt_notifier;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0081-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 0355a5d1ba96389a4de2667088e226c46761b198 Mon Sep 17 00:00:00 2001
+From 200b14d970227ef4a1d8bf9d8ad4a931c76a9cb1 Mon Sep 17 00:00:00 2001
 From: Steven Rostedt <srostedt at redhat.com>
 Date: Fri, 3 Jul 2009 08:44:29 -0500
-Subject: [PATCH 081/282] ata: Do not disable interrupts in ide code for
+Subject: [PATCH 081/287] ata: Do not disable interrupts in ide code for
  preempt-rt
 
 Use the local_irq_*_nort variants.
@@ -65,6 +65,3 @@
  	} else {
  		buf = page_address(page);
  		consumed = ap->ops->sff_data_xfer(dev,  buf + offset,
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0082-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From b6cee1d8a3da934baf76350fe3ba25b7b52ad6a8 Mon Sep 17 00:00:00 2001
+From 5e1bfc0e5d553c9cd138225bfc16b44633591df7 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:16 -0500
-Subject: [PATCH 082/282] ide: Do not disable interrupts for PREEMPT-RT
+Subject: [PATCH 082/287] ide: Do not disable interrupts for PREEMPT-RT
 
 Use the local_irq_*_nort variants.
 
@@ -181,6 +181,3 @@
  
  	ide_set_handler(drive, &task_pio_intr, WAIT_WORSTCASE);
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0083-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 7191d9fbd82214e96f5d0c1e3bdf03da46b45110 Mon Sep 17 00:00:00 2001
+From 54158bb713cd22efe7d6c7e0be6e5b28e92ec1fd Mon Sep 17 00:00:00 2001
 From: Sven-Thorsten Dietrich <sdietrich at novell.com>
 Date: Fri, 3 Jul 2009 08:30:35 -0500
-Subject: [PATCH 083/282] infiniband: Mellanox IB driver patch use _nort()
+Subject: [PATCH 083/287] infiniband: Mellanox IB driver patch use _nort()
  primitives
 
 Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT
@@ -20,10 +20,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
-index e5069b4..2683192 100644
+index 80799c0..014589a8 100644
 --- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
 +++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
-@@ -799,7 +799,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
+@@ -800,7 +800,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
  
  	ipoib_mcast_stop_thread(dev, 0);
  
@@ -32,7 +32,7 @@
  	netif_addr_lock(dev);
  	spin_lock(&priv->lock);
  
-@@ -881,7 +881,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
+@@ -882,7 +882,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
  
  	spin_unlock(&priv->lock);
  	netif_addr_unlock(dev);
@@ -41,6 +41,3 @@
  
  	/* We have to cancel outside of the spinlock */
  	list_for_each_entry_safe(mcast, tmcast, &remove_list, list) {
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0084-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1e4ffeae63f0926e3c7821161b6278ec8c386851 Mon Sep 17 00:00:00 2001
+From b7fdd6ce5883d4a43f7d7eda1689ed792bfd9968 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:16 -0500
-Subject: [PATCH 084/282] input: gameport: Do not disable interrupts on
+Subject: [PATCH 084/287] input: gameport: Do not disable interrupts on
  PREEMPT_RT
 
 Use the _nort() primitives.
@@ -45,6 +45,3 @@
  		udelay(i * 10);
  		if (t2 - t1 < tx) tx = t2 - t1;
  	}
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0085-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From db36ca412027b33bd89dcc04e3c6a5680701dcc1 Mon Sep 17 00:00:00 2001
+From 1706beef990d2ef11911c40ab0713f4bdf11bc1e Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 21 Jul 2009 22:54:51 +0200
-Subject: [PATCH 085/282] acpi: Do not disable interrupts on PREEMPT_RT
+Subject: [PATCH 085/287] acpi: Do not disable interrupts on PREEMPT_RT
 
 Use the local_irq_*_nort() variants.
 
@@ -25,6 +25,3 @@
  #define ACPI_FLUSH_CPU_CACHE()	wbinvd()
  
  int __acpi_acquire_global_lock(unsigned int *lock);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0086-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 88cbbcb43fb045f6c34ef6a1364efdee81870385 Mon Sep 17 00:00:00 2001
+From 283ee47b95aa357349c74d415676e1d46f504c7b Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 21 Jul 2009 23:06:05 +0200
-Subject: [PATCH 086/282] core: Do not disable interrupts on RT in
+Subject: [PATCH 086/287] core: Do not disable interrupts on RT in
  kernel/users.c
 
 Use the local_irq_*_nort variants to reduce latencies in RT. The code
@@ -30,6 +30,3 @@
  }
  
  struct user_struct *alloc_uid(struct user_namespace *ns, uid_t uid)
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0087-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 254ee7aa44ceb7c5b659f3a875511419d23dc062 Mon Sep 17 00:00:00 2001
+From 76248d523710d09b6ce225706f4ff9a274125e40 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:44:33 -0500
-Subject: [PATCH 087/282] core: Do not disable interrupts on RT in
+Subject: [PATCH 087/287] core: Do not disable interrupts on RT in
  res_counter.c
 
 Frederic Weisbecker reported this warning:
@@ -85,6 +85,3 @@
  }
  
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0088-usb-Use-local_irq_-_nort-variants.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1fd0ba792a8c99d373a6321ce1926add58737ae5 Mon Sep 17 00:00:00 2001
+From 04d281afc6fb7f72540742a3c5f9473bd26ceafd Mon Sep 17 00:00:00 2001
 From: Steven Rostedt <srostedt at redhat.com>
 Date: Fri, 3 Jul 2009 08:44:26 -0500
-Subject: [PATCH 088/282] usb: Use local_irq_*_nort() variants
+Subject: [PATCH 088/287] usb: Use local_irq_*_nort() variants
 
 [ tglx: Now that irqf_disabled is dead we should kill that ]
 
@@ -13,10 +13,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
-index 8cb9304..32dfd76 100644
+index 032e5a6..226d386 100644
 --- a/drivers/usb/core/hcd.c
 +++ b/drivers/usb/core/hcd.c
-@@ -2145,7 +2145,7 @@ irqreturn_t usb_hcd_irq (int irq, void *__hcd)
+@@ -2143,7 +2143,7 @@ irqreturn_t usb_hcd_irq (int irq, void *__hcd)
  	 * when the first handler doesn't use it.  So let's just
  	 * assume it's never used.
  	 */
@@ -25,7 +25,7 @@
  
  	if (unlikely(HCD_DEAD(hcd) || !HCD_HW_ACCESSIBLE(hcd))) {
  		rc = IRQ_NONE;
-@@ -2158,7 +2158,7 @@ irqreturn_t usb_hcd_irq (int irq, void *__hcd)
+@@ -2156,7 +2156,7 @@ irqreturn_t usb_hcd_irq (int irq, void *__hcd)
  		rc = IRQ_HANDLED;
  	}
  
@@ -34,6 +34,3 @@
  	return rc;
  }
  EXPORT_SYMBOL_GPL(usb_hcd_irq);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0089-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 10df02eacb757eaffa3bf4d52b3e57df1e2513a3 Mon Sep 17 00:00:00 2001
+From f411a414176b470a4e634d0a3ea5969c92b9abe8 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 17 Aug 2009 19:49:19 +0200
-Subject: [PATCH 089/282] tty: Do not disable interrupts in put_ldisc on -rt
+Subject: [PATCH 089/287] tty: Do not disable interrupts in put_ldisc on -rt
 
 Fixes the following on PREEMPT_RT:
 
@@ -47,6 +47,3 @@
  	wake_up(&tty_ldisc_idle);
  }
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0090-mm-scatterlist-dont-disable-irqs-on-RT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 42eda548462d57760f150d4ff36757301c2aebc1 Mon Sep 17 00:00:00 2001
+From dcf67d57e2dc4af98f9bd6ad1a02475854bb3ad8 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 3 Jul 2009 08:44:34 -0500
-Subject: [PATCH 090/282] mm: scatterlist dont disable irqs on RT
+Subject: [PATCH 090/287] mm: scatterlist dont disable irqs on RT
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -39,6 +39,3 @@
  	return offset;
  }
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0091-signal-fix-up-rcu-wreckage.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c21774940bc7629c44fe4af5c285479b84c30f73 Mon Sep 17 00:00:00 2001
+From c7eb453b13e447552ca0d46964d8af2a6de199bb Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 22 Jul 2011 08:07:08 +0200
-Subject: [PATCH 091/282] signal-fix-up-rcu-wreckage.patch
+Subject: [PATCH 091/287] signal-fix-up-rcu-wreckage.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -36,6 +36,3 @@
  	}
  
  	return sighand;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0092-net-wireless-warn-nort.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d699bd4579ad9e91080cdfcec188802134aae309 Mon Sep 17 00:00:00 2001
+From 99da5bbaf23fd07e8e530f85aa35b80aa2ae1ff5 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 21 Jul 2011 21:05:33 +0200
-Subject: [PATCH 092/282] net-wireless-warn-nort.patch
+Subject: [PATCH 092/287] net-wireless-warn-nort.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -21,6 +21,3 @@
  
  	if (WARN_ON(status->band < 0 ||
  		    status->band >= IEEE80211_NUM_BANDS))
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0093-mm-Replace-cgroup_page-bit-spinlock.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From a5974a016d5d7ee7da04337fe2aa0b20f093a33b Mon Sep 17 00:00:00 2001
+From cf54d381c576fb71ff771b858439903040995bcf Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 19 Aug 2009 09:56:42 +0200
-Subject: [PATCH 093/282] mm: Replace cgroup_page bit spinlock
+Subject: [PATCH 093/287] mm: Replace cgroup_page bit spinlock
 
 Bit spinlocks are not working on RT. Replace them.
 
@@ -93,6 +93,3 @@
  }
  static unsigned long total_usage;
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0094-buffer_head-Replace-bh_uptodate_lock-for-rt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From df26a5cba834d9f4d824e34a038718c8aa2e079e Mon Sep 17 00:00:00 2001
+From 855d1d02b79c51eed6818f93ba42bfee34f841ef Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 18 Mar 2011 09:18:52 +0100
-Subject: [PATCH 094/282] buffer_head: Replace bh_uptodate_lock for -rt
+Subject: [PATCH 094/287] buffer_head: Replace bh_uptodate_lock for -rt
 
 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 c807931..10e5ea2 100644
+index 19a4f0b..997b199 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);
  
-@@ -3225,6 +3217,7 @@ struct buffer_head *alloc_buffer_head(gfp_t gfp_flags)
+@@ -3222,6 +3214,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);
@@ -166,6 +166,3 @@
  /*
   * macro tricks to expand the set_buffer_foo(), clear_buffer_foo()
   * and buffer_foo() functions.
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0095-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 5422b7a233df86ab0aa48bf871410c17b70ff9ba Mon Sep 17 00:00:00 2001
+From dfdb6357a50772014f52fec28a9050aed7e2bfbe Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 18 Mar 2011 10:11:25 +0100
-Subject: [PATCH 095/282] fs: jbd/jbd2: Make state lock and journal head lock
+Subject: [PATCH 095/287] fs: jbd/jbd2: Make state lock and journal head lock
  rt safe
 
 bit_spin_locks break under RT.
@@ -108,6 +108,3 @@
  }
  
  #endif
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0096-genirq-Disable-DEBUG_SHIRQ-for-rt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 56fe10c465dfcceb087a80ac3b04601aab51015f Mon Sep 17 00:00:00 2001
+From 83e2faa736ce982aff08925950ea258e23c26b41 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 18 Mar 2011 10:22:04 +0100
-Subject: [PATCH 096/282] genirq: Disable DEBUG_SHIRQ for rt
+Subject: [PATCH 096/287] genirq: Disable DEBUG_SHIRQ for rt
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -21,6 +21,3 @@
  	help
  	  Enable this to generate a spurious interrupt as soon as a shared
  	  interrupt handler is registered, and just before one is deregistered.
--- 
-1.7.10
-

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0097-genirq-Disable-random-call-on-preempt-rt.patch)
@@ -0,0 +1,28 @@
+From 1a4438093a023348e99ad91eea7f9a024167c42c Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Tue, 21 Jul 2009 16:07:37 +0200
+Subject: [PATCH 097/287] genirq: Disable random call on preempt-rt
+
+The random call introduces high latencies and is almost
+unused. Disable it for -rt.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ kernel/irq/handle.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
+index 10e0772..a768885 100644
+--- a/kernel/irq/handle.c
++++ b/kernel/irq/handle.c
+@@ -156,7 +156,10 @@ handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action)
+ 		action = action->next;
+ 	} while (action);
+ 
++#ifndef CONFIG_PREEMPT_RT_FULL
++	/* FIXME: Can we unbreak that ? */
+ 	add_interrupt_randomness(irq, flags);
++#endif
+ 
+ 	if (!noirqdebug)
+ 		note_interrupt(irq, desc, retval);

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0098-genirq-disable-irqpoll-on-rt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c68b73d5f260690c9f1331823d57dd7bbc77501a Mon Sep 17 00:00:00 2001
+From 821a8f2fe68d35096a8988e6b45170026b8a7533 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:29:57 -0500
-Subject: [PATCH 098/282] genirq: disable irqpoll on -rt
+Subject: [PATCH 098/287] genirq: disable irqpoll on -rt
 
 Creates long latencies for no value
 
@@ -39,6 +39,3 @@
  	irqfixup = 2;
  	printk(KERN_WARNING "Misrouted IRQ fixup and polling support "
  				"enabled\n");
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0099-genirq-force-threading.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From a844f84d36323fda82577275b0d78d1f9a5b7deb Mon Sep 17 00:00:00 2001
+From 268b8c18dc3fd19146a9646434c93c005a17b2e3 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 3 Apr 2011 11:57:29 +0200
-Subject: [PATCH 099/282] genirq-force-threading.patch
+Subject: [PATCH 099/287] genirq-force-threading.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -49,6 +49,3 @@
  #endif
  
  /**
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0100-drivers-net-fix-livelock-issues.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 57a7b64adf2a704e10d9ba68d002f30ae5f11c32 Mon Sep 17 00:00:00 2001
+From deb8ea3666af2f07dbb2c2dddcf1452c8274c887 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sat, 20 Jun 2009 11:36:54 +0200
-Subject: [PATCH 100/282] drivers/net: fix livelock issues
+Subject: [PATCH 100/287] drivers/net: fix livelock issues
 
 Preempt-RT runs into a live lock issue with the NETDEV_TX_LOCKED micro
 optimization. The reason is that the softirq thread is rescheduling
@@ -22,10 +22,10 @@
  7 files changed, 10 insertions(+), 31 deletions(-)
 
 diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
-index eccdcff..ee8d8a2 100644
+index 5ae7df7..9500316 100644
 --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
 +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
-@@ -2236,11 +2236,7 @@ static netdev_tx_t atl1c_xmit_frame(struct sk_buff *skb,
+@@ -2235,11 +2235,7 @@ static netdev_tx_t atl1c_xmit_frame(struct sk_buff *skb,
  	}
  
  	tpd_req = atl1c_cal_tpd_req(skb);
@@ -123,12 +123,12 @@
  	/* build tx descriptor */
  	BDX_ASSERT(f->m.wptr >= f->m.memsz);	/* started with valid wptr */
 diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c
-index 7145714..2a1ed18 100644
+index c0f097b..3e914bd 100644
 --- a/drivers/net/rionet.c
 +++ b/drivers/net/rionet.c
-@@ -176,11 +176,7 @@ static int rionet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
- 	u16 destid;
+@@ -178,11 +178,7 @@ static int rionet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
  	unsigned long flags;
+ 	int add_num = 1;
  
 -	local_irq_save(flags);
 -	if (!spin_trylock(&rnet->tx_lock)) {
@@ -137,8 +137,5 @@
 -	}
 +	spin_lock_irqsave(&rnet->tx_lock, flags);
  
- 	if ((rnet->tx_cnt + 1) > RIONET_TX_RING_SIZE) {
- 		netif_stop_queue(ndev);
--- 
-1.7.10
-
+ 	if (is_multicast_ether_addr(eth->h_dest))
+ 		add_num = nact;

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0101-drivers-net-vortex-fix-locking-issues.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From bd931de893f70144e56bae8a5900d70365d8c37b Mon Sep 17 00:00:00 2001
+From cdf3165d563253ee7d360468f980536165250ba6 Mon Sep 17 00:00:00 2001
 From: Steven Rostedt <rostedt at goodmis.org>
 Date: Fri, 3 Jul 2009 08:30:00 -0500
-Subject: [PATCH 101/282] drivers/net: vortex fix locking issues
+Subject: [PATCH 101/287] drivers/net: vortex fix locking issues
 
 Argh, cut and paste wasn't enough...
 
@@ -52,6 +52,3 @@
  		}
  	}
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0102-drivers-net-gianfar-Make-RT-aware.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 4110c52a433828061c90541f81d1950db02f947e Mon Sep 17 00:00:00 2001
+From 14691af245dd4d5a32a6cf514b20f261867919f2 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 1 Apr 2010 20:20:57 +0200
-Subject: [PATCH 102/282] drivers: net: gianfar: Make RT aware
+Subject: [PATCH 102/287] drivers: net: gianfar: Make RT aware
 
 The adjust_link() disables interrupts before taking the queue
 locks. On RT those locks are converted to "sleeping" locks and
@@ -16,7 +16,7 @@
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c
-index 83199fd..97d238c 100644
+index d0722a7..0e4c2e7 100644
 --- a/drivers/net/ethernet/freescale/gianfar.c
 +++ b/drivers/net/ethernet/freescale/gianfar.c
 @@ -1671,7 +1671,7 @@ void stop_gfar(struct net_device *dev)
@@ -55,6 +55,3 @@
  }
  
  /* Update the hash table based on the current list of multicast
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0103-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 159364b11155069d81e5e93adb7ec245bc3a880f Mon Sep 17 00:00:00 2001
+From 8a006cb93660e53890b6179c552c90129b5e51fd Mon Sep 17 00:00:00 2001
 From: Wu Zhangjin <wuzj at lemote.com>
 Date: Mon, 4 Jan 2010 11:33:02 +0800
-Subject: [PATCH 103/282] USB: Fix the mouse problem when copying large
+Subject: [PATCH 103/287] USB: Fix the mouse problem when copying large
  amounts of data
 
 When copying large amounts of data between the USB storage devices and
@@ -37,6 +37,3 @@
  	}
  
  	if (quirk_zfmicro(ohci) && (ints & OHCI_INTR_SF)) {
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0104-local-var.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 0b82cd960445a3dc1756d906f718c7fc467626cb Mon Sep 17 00:00:00 2001
+From b16f8f7ebdf00f24b52ef4a79f9416f39c50308f Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 24 Jun 2011 18:40:37 +0200
-Subject: [PATCH 104/282] local-var.patch
+Subject: [PATCH 104/287] local-var.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -24,6 +24,3 @@
  /* minimum unit size, also is the maximum supported allocation size */
  #define PCPU_MIN_UNIT_SIZE		PFN_ALIGN(32 << 10)
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0105-rt-local-irq-lock.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 85fcde07047135f1e637f3ccde4ede49a0f5dfe8 Mon Sep 17 00:00:00 2001
+From 5274e3e1590b9e8a25dcbefde1af99add607edd9 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 20 Jun 2011 09:03:47 +0200
-Subject: [PATCH 105/282] rt-local-irq-lock.patch
+Subject: [PATCH 105/287] rt-local-irq-lock.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -245,6 +245,3 @@
 +#endif
 +
 +#endif
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0106-cpu-rt-variants.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 55349967274ba63aca4a72536c7e6c1d2b2063fe Mon Sep 17 00:00:00 2001
+From 27ed3feca234b2b070e32ba91922cf185374f84b Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 17 Jun 2011 15:42:38 +0200
-Subject: [PATCH 106/282] cpu-rt-variants.patch
+Subject: [PATCH 106/287] cpu-rt-variants.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -27,6 +27,3 @@
  /*
   * Callback to arch code if there's nosmp or maxcpus=0 on the
   * boot command line:
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0107-mm-slab-wrap-functions.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 74eff412441a31600fd6935b1322a3bf8f4c76fe Mon Sep 17 00:00:00 2001
+From 8679b46fb92eebc72ed090ce69e0d449b9a7969c Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sat, 18 Jun 2011 19:44:43 +0200
-Subject: [PATCH 107/282] mm-slab-wrap-functions.patch
+Subject: [PATCH 107/287] mm-slab-wrap-functions.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -9,7 +9,7 @@
  1 file changed, 104 insertions(+), 48 deletions(-)
 
 diff --git a/mm/slab.c b/mm/slab.c
-index 1fd9983..38575a8 100644
+index f807b35..89b7b18 100644
 --- a/mm/slab.c
 +++ b/mm/slab.c
 @@ -116,6 +116,7 @@
@@ -154,7 +154,7 @@
  	for (i = 0; i < NUM_INIT_LISTS; i++) {
  		kmem_list3_init(&initkmem_list3[i]);
  		if (i < MAX_NUMNODES)
-@@ -2500,7 +2532,7 @@ EXPORT_SYMBOL(kmem_cache_create);
+@@ -2503,7 +2535,7 @@ EXPORT_SYMBOL(kmem_cache_create);
  #if DEBUG
  static void check_irq_off(void)
  {
@@ -163,7 +163,7 @@
  }
  
  static void check_irq_on(void)
-@@ -2535,13 +2567,12 @@ static void drain_array(struct kmem_cache *cachep, struct kmem_list3 *l3,
+@@ -2538,13 +2570,12 @@ static void drain_array(struct kmem_cache *cachep, struct kmem_list3 *l3,
  			struct array_cache *ac,
  			int force, int node);
  
@@ -179,7 +179,7 @@
  	ac = cpu_cache_get(cachep);
  	spin_lock(&cachep->nodelists[node]->list_lock);
  	free_block(cachep, ac->entry, ac->avail, node);
-@@ -2549,12 +2580,24 @@ static void do_drain(void *arg)
+@@ -2552,12 +2583,24 @@ static void do_drain(void *arg)
  	ac->avail = 0;
  }
  
@@ -205,7 +205,7 @@
  	check_irq_on();
  	for_each_online_node(node) {
  		l3 = cachep->nodelists[node];
-@@ -2585,10 +2628,10 @@ static int drain_freelist(struct kmem_cache *cache,
+@@ -2588,10 +2631,10 @@ static int drain_freelist(struct kmem_cache *cache,
  	nr_freed = 0;
  	while (nr_freed < tofree && !list_empty(&l3->slabs_free)) {
  
@@ -218,7 +218,7 @@
  			goto out;
  		}
  
-@@ -2602,7 +2645,7 @@ static int drain_freelist(struct kmem_cache *cache,
+@@ -2605,7 +2648,7 @@ static int drain_freelist(struct kmem_cache *cache,
  		 * to the cache.
  		 */
  		l3->free_objects -= cache->num;
@@ -227,7 +227,7 @@
  		slab_destroy(cache, slabp);
  		nr_freed++;
  	}
-@@ -2897,7 +2940,7 @@ static int cache_grow(struct kmem_cache *cachep,
+@@ -2900,7 +2943,7 @@ static int cache_grow(struct kmem_cache *cachep,
  	offset *= cachep->colour_off;
  
  	if (local_flags & __GFP_WAIT)
@@ -236,7 +236,7 @@
  
  	/*
  	 * The test for missing atomic flag is performed here, rather than
-@@ -2927,7 +2970,7 @@ static int cache_grow(struct kmem_cache *cachep,
+@@ -2930,7 +2973,7 @@ static int cache_grow(struct kmem_cache *cachep,
  	cache_init_objs(cachep, slabp);
  
  	if (local_flags & __GFP_WAIT)
@@ -245,7 +245,7 @@
  	check_irq_off();
  	spin_lock(&l3->list_lock);
  
-@@ -2941,7 +2984,7 @@ opps1:
+@@ -2944,7 +2987,7 @@ opps1:
  	kmem_freepages(cachep, objp);
  failed:
  	if (local_flags & __GFP_WAIT)
@@ -254,7 +254,7 @@
  	return 0;
  }
  
-@@ -3333,11 +3376,11 @@ retry:
+@@ -3337,11 +3380,11 @@ retry:
  		 * set and go into memory reserves if necessary.
  		 */
  		if (local_flags & __GFP_WAIT)
@@ -268,7 +268,7 @@
  		if (obj) {
  			/*
  			 * Insert into the appropriate per node queues
-@@ -3453,7 +3496,7 @@ __cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid,
+@@ -3459,7 +3502,7 @@ __cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid,
  		return NULL;
  
  	cache_alloc_debugcheck_before(cachep, flags);
@@ -277,7 +277,7 @@
  
  	if (nodeid == NUMA_NO_NODE)
  		nodeid = slab_node;
-@@ -3478,7 +3521,7 @@ __cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid,
+@@ -3484,7 +3527,7 @@ __cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid,
  	/* ___cache_alloc_node can fall back to other nodes */
  	ptr = ____cache_alloc_node(cachep, flags, nodeid);
    out:
@@ -286,7 +286,7 @@
  	ptr = cache_alloc_debugcheck_after(cachep, flags, ptr, caller);
  	kmemleak_alloc_recursive(ptr, obj_size(cachep), 1, cachep->flags,
  				 flags);
-@@ -3538,9 +3581,9 @@ __cache_alloc(struct kmem_cache *cachep, gfp_t flags, void *caller)
+@@ -3544,9 +3587,9 @@ __cache_alloc(struct kmem_cache *cachep, gfp_t flags, void *caller)
  		return NULL;
  
  	cache_alloc_debugcheck_before(cachep, flags);
@@ -298,7 +298,7 @@
  	objp = cache_alloc_debugcheck_after(cachep, flags, objp, caller);
  	kmemleak_alloc_recursive(objp, obj_size(cachep), 1, cachep->flags,
  				 flags);
-@@ -3854,9 +3897,9 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
+@@ -3860,9 +3903,9 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
  	debug_check_no_locks_freed(objp, obj_size(cachep));
  	if (!(cachep->flags & SLAB_DEBUG_OBJECTS))
  		debug_check_no_obj_freed(objp, obj_size(cachep));
@@ -310,7 +310,7 @@
  
  	trace_kmem_cache_free(_RET_IP_, objp);
  }
-@@ -3884,9 +3927,9 @@ void kfree(const void *objp)
+@@ -3890,9 +3933,9 @@ void kfree(const void *objp)
  	c = virt_to_cache(objp);
  	debug_check_no_locks_freed(objp, obj_size(c));
  	debug_check_no_obj_freed(objp, obj_size(c));
@@ -322,7 +322,7 @@
  }
  EXPORT_SYMBOL(kfree);
  
-@@ -3929,7 +3972,7 @@ static int alloc_kmemlist(struct kmem_cache *cachep, gfp_t gfp)
+@@ -3935,7 +3978,7 @@ static int alloc_kmemlist(struct kmem_cache *cachep, gfp_t gfp)
  		if (l3) {
  			struct array_cache *shared = l3->shared;
  
@@ -331,7 +331,7 @@
  
  			if (shared)
  				free_block(cachep, shared->entry,
-@@ -3942,7 +3985,7 @@ static int alloc_kmemlist(struct kmem_cache *cachep, gfp_t gfp)
+@@ -3948,7 +3991,7 @@ static int alloc_kmemlist(struct kmem_cache *cachep, gfp_t gfp)
  			}
  			l3->free_limit = (1 + nr_cpus_node(node)) *
  					cachep->batchcount + cachep->num;
@@ -340,7 +340,7 @@
  			kfree(shared);
  			free_alien_cache(new_alien);
  			continue;
-@@ -3989,17 +4032,28 @@ struct ccupdate_struct {
+@@ -3995,17 +4038,28 @@ struct ccupdate_struct {
  	struct array_cache *new[0];
  };
  
@@ -374,7 +374,7 @@
  
  /* Always called with the cache_chain_mutex held */
  static int do_tune_cpucache(struct kmem_cache *cachep, int limit,
-@@ -4025,7 +4079,7 @@ static int do_tune_cpucache(struct kmem_cache *cachep, int limit,
+@@ -4031,7 +4085,7 @@ static int do_tune_cpucache(struct kmem_cache *cachep, int limit,
  	}
  	new->cachep = cachep;
  
@@ -383,7 +383,7 @@
  
  	check_irq_on();
  	cachep->batchcount = batchcount;
-@@ -4036,9 +4090,11 @@ static int do_tune_cpucache(struct kmem_cache *cachep, int limit,
+@@ -4042,9 +4096,11 @@ static int do_tune_cpucache(struct kmem_cache *cachep, int limit,
  		struct array_cache *ccold = new->new[i];
  		if (!ccold)
  			continue;
@@ -397,7 +397,7 @@
  		kfree(ccold);
  	}
  	kfree(new);
-@@ -4114,7 +4170,7 @@ static void drain_array(struct kmem_cache *cachep, struct kmem_list3 *l3,
+@@ -4120,7 +4176,7 @@ static void drain_array(struct kmem_cache *cachep, struct kmem_list3 *l3,
  	if (ac->touched && !force) {
  		ac->touched = 0;
  	} else {
@@ -406,7 +406,7 @@
  		if (ac->avail) {
  			tofree = force ? ac->avail : (ac->limit + 4) / 5;
  			if (tofree > ac->avail)
-@@ -4124,7 +4180,7 @@ static void drain_array(struct kmem_cache *cachep, struct kmem_list3 *l3,
+@@ -4130,7 +4186,7 @@ static void drain_array(struct kmem_cache *cachep, struct kmem_list3 *l3,
  			memmove(ac->entry, &(ac->entry[tofree]),
  				sizeof(void *) * ac->avail);
  		}
@@ -415,7 +415,7 @@
  	}
  }
  
-@@ -4263,7 +4319,7 @@ static int s_show(struct seq_file *m, void *p)
+@@ -4269,7 +4325,7 @@ static int s_show(struct seq_file *m, void *p)
  			continue;
  
  		check_irq_on();
@@ -424,7 +424,7 @@
  
  		list_for_each_entry(slabp, &l3->slabs_full, list) {
  			if (slabp->inuse != cachep->num && !error)
-@@ -4288,7 +4344,7 @@ static int s_show(struct seq_file *m, void *p)
+@@ -4294,7 +4350,7 @@ static int s_show(struct seq_file *m, void *p)
  		if (l3->shared)
  			shared_avail += l3->shared->avail;
  
@@ -433,7 +433,7 @@
  	}
  	num_slabs += active_slabs;
  	num_objs = num_slabs * cachep->num;
-@@ -4517,13 +4573,13 @@ static int leaks_show(struct seq_file *m, void *p)
+@@ -4523,13 +4579,13 @@ static int leaks_show(struct seq_file *m, void *p)
  			continue;
  
  		check_irq_on();
@@ -449,6 +449,3 @@
  	}
  	name = cachep->name;
  	if (n[0] == n[1]) {
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0108-slab-Fix-__do_drain-to-use-the-right-array-cache.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 9281f2ed6be7b222a8029133fefbdb7f97b63404 Mon Sep 17 00:00:00 2001
+From d39c227f85e8a2bb0ade4c4d5f882d3b21ed2253 Mon Sep 17 00:00:00 2001
 From: Steven Rostedt <rostedt at goodmis.org>
 Date: Tue, 11 Oct 2011 23:56:23 -0400
-Subject: [PATCH 108/282] slab: Fix __do_drain to use the right array cache
+Subject: [PATCH 108/287] slab: Fix __do_drain to use the right array cache
 
 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
@@ -39,10 +39,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/mm/slab.c b/mm/slab.c
-index 38575a8..5b63148 100644
+index 89b7b18..ce54589 100644
 --- a/mm/slab.c
 +++ b/mm/slab.c
-@@ -2573,7 +2573,7 @@ static void __do_drain(void *arg, unsigned int cpu)
+@@ -2576,7 +2576,7 @@ static void __do_drain(void *arg, unsigned int cpu)
  	struct array_cache *ac;
  	int node = cpu_to_mem(cpu);
  
@@ -51,6 +51,3 @@
  	spin_lock(&cachep->nodelists[node]->list_lock);
  	free_block(cachep, ac->entry, ac->avail, node);
  	spin_unlock(&cachep->nodelists[node]->list_lock);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0109-mm-More-lock-breaks-in-slab.c.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 7db9ca2402c9588c7339e75efd4d8f5d9a5b525f Mon Sep 17 00:00:00 2001
+From cc0668152325cf5b729d72b3cd67e975ed55f84e Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Fri, 3 Jul 2009 08:44:43 -0500
-Subject: [PATCH 109/282] mm: More lock breaks in slab.c
+Subject: [PATCH 109/287] mm: More lock breaks in slab.c
 
 Handle __free_pages outside of the locked regions. This reduces the
 lock contention on the percpu slab locks in -rt significantly.
@@ -13,7 +13,7 @@
  1 file changed, 68 insertions(+), 22 deletions(-)
 
 diff --git a/mm/slab.c b/mm/slab.c
-index 5b63148..5f0c5ef 100644
+index ce54589..59b7e8c 100644
 --- a/mm/slab.c
 +++ b/mm/slab.c
 @@ -723,6 +723,7 @@ static void slab_set_debugobj_lock_classes(struct kmem_cache *cachep)
@@ -95,7 +95,7 @@
  
  	for (i = 0; i < NUM_INIT_LISTS; i++) {
  		kmem_list3_init(&initkmem_list3[i]);
-@@ -1803,12 +1831,14 @@ static void *kmem_getpages(struct kmem_cache *cachep, gfp_t flags, int nodeid)
+@@ -1806,12 +1834,14 @@ static void *kmem_getpages(struct kmem_cache *cachep, gfp_t flags, int nodeid)
  /*
   * Interface to system's page release.
   */
@@ -112,7 +112,7 @@
  	kmemcheck_free_shadow(page, cachep->gfporder);
  
  	if (cachep->flags & SLAB_RECLAIM_ACCOUNT)
-@@ -1824,7 +1854,13 @@ static void kmem_freepages(struct kmem_cache *cachep, void *addr)
+@@ -1827,7 +1857,13 @@ static void kmem_freepages(struct kmem_cache *cachep, void *addr)
  	}
  	if (current->reclaim_state)
  		current->reclaim_state->reclaimed_slab += nr_freed;
@@ -127,7 +127,7 @@
  }
  
  static void kmem_rcu_free(struct rcu_head *head)
-@@ -1832,7 +1868,7 @@ static void kmem_rcu_free(struct rcu_head *head)
+@@ -1835,7 +1871,7 @@ static void kmem_rcu_free(struct rcu_head *head)
  	struct slab_rcu *slab_rcu = (struct slab_rcu *)head;
  	struct kmem_cache *cachep = slab_rcu->cachep;
  
@@ -136,7 +136,7 @@
  	if (OFF_SLAB(cachep))
  		kmem_cache_free(cachep->slabp_cache, slab_rcu);
  }
-@@ -2051,7 +2087,8 @@ static void slab_destroy_debugcheck(struct kmem_cache *cachep, struct slab *slab
+@@ -2054,7 +2090,8 @@ static void slab_destroy_debugcheck(struct kmem_cache *cachep, struct slab *slab
   * Before calling the slab must have been unlinked from the cache.  The
   * cache-lock is not held/needed.
   */
@@ -146,7 +146,7 @@
  {
  	void *addr = slabp->s_mem - slabp->colouroff;
  
-@@ -2064,7 +2101,7 @@ static void slab_destroy(struct kmem_cache *cachep, struct slab *slabp)
+@@ -2067,7 +2104,7 @@ static void slab_destroy(struct kmem_cache *cachep, struct slab *slabp)
  		slab_rcu->addr = addr;
  		call_rcu(&slab_rcu->head, kmem_rcu_free);
  	} else {
@@ -155,7 +155,7 @@
  		if (OFF_SLAB(cachep))
  			kmem_cache_free(cachep->slabp_cache, slabp);
  	}
-@@ -2586,9 +2623,15 @@ static void do_drain(void *arg)
+@@ -2589,9 +2626,15 @@ static void do_drain(void *arg)
  	__do_drain(arg, smp_processor_id());
  }
  #else
@@ -173,7 +173,7 @@
  }
  #endif
  
-@@ -2646,7 +2689,7 @@ static int drain_freelist(struct kmem_cache *cache,
+@@ -2649,7 +2692,7 @@ static int drain_freelist(struct kmem_cache *cache,
  		 */
  		l3->free_objects -= cache->num;
  		local_spin_unlock_irq(slab_lock, &l3->list_lock);
@@ -182,7 +182,7 @@
  		nr_freed++;
  	}
  out:
-@@ -2981,7 +3024,7 @@ static int cache_grow(struct kmem_cache *cachep,
+@@ -2984,7 +3027,7 @@ static int cache_grow(struct kmem_cache *cachep,
  	spin_unlock(&l3->list_lock);
  	return 1;
  opps1:
@@ -191,7 +191,7 @@
  failed:
  	if (local_flags & __GFP_WAIT)
  		local_lock_irq(slab_lock);
-@@ -3631,7 +3674,7 @@ static void free_block(struct kmem_cache *cachep, void **objpp, int nr_objects,
+@@ -3637,7 +3680,7 @@ static void free_block(struct kmem_cache *cachep, void **objpp, int nr_objects,
  				 * a different cache, refer to comments before
  				 * alloc_slabmgmt.
  				 */
@@ -200,7 +200,7 @@
  			} else {
  				list_add(&slabp->list, &l3->slabs_free);
  			}
-@@ -3899,7 +3942,7 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
+@@ -3905,7 +3948,7 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
  		debug_check_no_obj_freed(objp, obj_size(cachep));
  	local_lock_irqsave(slab_lock, flags);
  	__cache_free(cachep, objp, __builtin_return_address(0));
@@ -209,7 +209,7 @@
  
  	trace_kmem_cache_free(_RET_IP_, objp);
  }
-@@ -3929,7 +3972,7 @@ void kfree(const void *objp)
+@@ -3935,7 +3978,7 @@ void kfree(const void *objp)
  	debug_check_no_obj_freed(objp, obj_size(c));
  	local_lock_irqsave(slab_lock, flags);
  	__cache_free(c, (void *)objp, __builtin_return_address(0));
@@ -218,7 +218,7 @@
  }
  EXPORT_SYMBOL(kfree);
  
-@@ -3985,7 +4028,8 @@ static int alloc_kmemlist(struct kmem_cache *cachep, gfp_t gfp)
+@@ -3991,7 +4034,8 @@ static int alloc_kmemlist(struct kmem_cache *cachep, gfp_t gfp)
  			}
  			l3->free_limit = (1 + nr_cpus_node(node)) *
  					cachep->batchcount + cachep->num;
@@ -228,7 +228,7 @@
  			kfree(shared);
  			free_alien_cache(new_alien);
  			continue;
-@@ -4051,7 +4095,9 @@ static void do_ccupdate_local(void *info)
+@@ -4057,7 +4101,9 @@ static void do_ccupdate_local(void *info)
  #else
  static void do_ccupdate_local(void *info, int cpu)
  {
@@ -238,7 +238,7 @@
  }
  #endif
  
-@@ -4093,8 +4139,8 @@ static int do_tune_cpucache(struct kmem_cache *cachep, int limit,
+@@ -4099,8 +4145,8 @@ static int do_tune_cpucache(struct kmem_cache *cachep, int limit,
  		local_spin_lock_irq(slab_lock,
  				    &cachep->nodelists[cpu_to_mem(i)]->list_lock);
  		free_block(cachep, ccold->entry, ccold->avail, cpu_to_mem(i));
@@ -249,6 +249,3 @@
  		kfree(ccold);
  	}
  	kfree(new);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0110-mm-page_alloc-rt-friendly-per-cpu-pages.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 5e1cc4d26f11f3ed84824c66a85c6a51695363eb Mon Sep 17 00:00:00 2001
+From bf0c34970cdf719d8fa2b0aff617da558ae7967b Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:29:37 -0500
-Subject: [PATCH 110/282] mm: page_alloc: rt-friendly per-cpu pages
+Subject: [PATCH 110/287] mm: page_alloc: rt-friendly per-cpu pages
 
 rt-friendly per-cpu pages: convert the irqs-off per-cpu locking
 method into a preemptible, explicit-per-cpu-locks method.
@@ -17,7 +17,7 @@
  1 file changed, 39 insertions(+), 16 deletions(-)
 
 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 3344154..27865c9 100644
+index 2536d02..4490f58 100644
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
 @@ -57,6 +57,7 @@
@@ -173,7 +173,7 @@
  	return NULL;
  }
  
-@@ -3684,10 +3706,10 @@ static int __zone_pcp_update(void *data)
+@@ -3730,10 +3752,10 @@ static int __zone_pcp_update(void *data)
  		pset = per_cpu_ptr(zone->pageset, cpu);
  		pcp = &pset->pcp;
  
@@ -186,7 +186,7 @@
  	}
  	return 0;
  }
-@@ -5053,6 +5075,7 @@ static int page_alloc_cpu_notify(struct notifier_block *self,
+@@ -5096,6 +5118,7 @@ static int page_alloc_cpu_notify(struct notifier_block *self,
  void __init page_alloc_init(void)
  {
  	hotcpu_notifier(page_alloc_cpu_notify, 0);
@@ -194,6 +194,3 @@
  }
  
  /*
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0111-mm-page_alloc-reduce-lock-sections-further.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 87078e874af4c2f707155080d0e14a413777047f Mon Sep 17 00:00:00 2001
+From 1b50c1d3ee48fb19504184e9931fcd9feb8c2722 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Fri, 3 Jul 2009 08:44:37 -0500
-Subject: [PATCH 111/282] mm: page_alloc reduce lock sections further
+Subject: [PATCH 111/287] mm: page_alloc reduce lock sections further
 
 Split out the pages which are to be freed into a separate list and
 call free_pages_bulk() outside of the percpu page allocator locks.
@@ -13,7 +13,7 @@
  1 file changed, 58 insertions(+), 19 deletions(-)
 
 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 27865c9..5124fb0 100644
+index 4490f58..01354f7 100644
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
 @@ -594,7 +594,7 @@ static inline int free_pages_check(struct page *page)
@@ -175,7 +175,7 @@
  	}
  
  out:
-@@ -3702,12 +3739,14 @@ static int __zone_pcp_update(void *data)
+@@ -3748,12 +3785,14 @@ static int __zone_pcp_update(void *data)
  	for_each_possible_cpu(cpu) {
  		struct per_cpu_pageset *pset;
  		struct per_cpu_pages *pcp;
@@ -191,6 +191,3 @@
  		setup_pageset(pset, batch);
  		cpu_unlock_irqrestore(cpu, flags);
  	}
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0112-mm-page-alloc-fix.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 78e9541f415fa2c579dc36e66f9c4f918647b37f Mon Sep 17 00:00:00 2001
+From 2b081704b978f4dfd1a92b610eaba2913f3b18d5 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 21 Jul 2011 16:47:49 +0200
-Subject: [PATCH 112/282] mm-page-alloc-fix.patch
+Subject: [PATCH 112/287] mm-page-alloc-fix.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -9,10 +9,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 5124fb0..49675c7 100644
+index 01354f7..67202bc 100644
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -1960,8 +1960,8 @@ __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order,
+@@ -1966,8 +1966,8 @@ __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order,
  	if (*did_some_progress != COMPACT_SKIPPED) {
  
  		/* Page migration frees to the PCP lists but we want merging */
@@ -23,6 +23,3 @@
  
  		page = get_page_from_freelist(gfp_mask, nodemask,
  				order, zonelist, high_zoneidx,
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0113-mm-convert-swap-to-percpu-locked.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 26fb48fdcf100f637d8415f0154f7998a03255e8 Mon Sep 17 00:00:00 2001
+From a59e2ae0aa57a2aca6f4c56d4b75aa6b02ed9f30 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:29:51 -0500
-Subject: [PATCH 113/282] mm: convert swap to percpu locked
+Subject: [PATCH 113/287] mm: convert swap to percpu locked
 
 Signed-off-by: Ingo Molnar <mingo at elte.hu>
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
@@ -122,6 +122,3 @@
  #ifdef CONFIG_SWAP
  	bdi_init(swapper_space.backing_dev_info);
  #endif
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0114-mm-vmstat-fix-the-irq-lock-asymetry.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From df7507036c61fcade1c1ed7b1950793f0096857e Mon Sep 17 00:00:00 2001
+From f58aeccb07338fa975a3ac29653a4e2ae499a64d Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 22 Jun 2011 20:47:08 +0200
-Subject: [PATCH 114/282] mm-vmstat-fix-the-irq-lock-asymetry.patch
+Subject: [PATCH 114/287] mm-vmstat-fix-the-irq-lock-asymetry.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -9,10 +9,10 @@
  1 file changed, 9 insertions(+), 9 deletions(-)
 
 diff --git a/mm/vmscan.c b/mm/vmscan.c
-index fbe2d2c..aa50ccf4 100644
+index 86eb848..ee4f086 100644
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -1344,8 +1344,8 @@ static int too_many_isolated(struct zone *zone, int file,
+@@ -1381,8 +1381,8 @@ static int too_many_isolated(struct zone *zone, int file,
   */
  static noinline_for_stack void
  putback_lru_pages(struct zone *zone, struct scan_control *sc,
@@ -23,7 +23,7 @@
  {
  	struct page *page;
  	struct pagevec pvec;
-@@ -1356,7 +1356,12 @@ putback_lru_pages(struct zone *zone, struct scan_control *sc,
+@@ -1393,7 +1393,12 @@ putback_lru_pages(struct zone *zone, struct scan_control *sc,
  	/*
  	 * Put back any unfreeable pages.
  	 */
@@ -37,7 +37,7 @@
  	while (!list_empty(page_list)) {
  		int lru;
  		page = lru_to_page(page_list);
-@@ -1539,12 +1544,7 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone,
+@@ -1576,12 +1581,7 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone,
  					priority, &nr_dirty, &nr_writeback);
  	}
  
@@ -51,6 +51,3 @@
  
  	/*
  	 * If reclaim is isolating dirty pages under writeback, it implies
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0115-mm-make-vmstat-rt-aware.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 9826451465dd335f33bb184b891923d4d189a25e Mon Sep 17 00:00:00 2001
+From fd9fe8908f81d1440b76b479a8d65d0b57b70a77 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:13 -0500
-Subject: [PATCH 115/282] mm: make vmstat -rt aware
+Subject: [PATCH 115/287] mm: make vmstat -rt aware
 
 Signed-off-by: Ingo Molnar <mingo at elte.hu>
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
@@ -86,6 +86,3 @@
  }
  
  void __dec_zone_page_state(struct page *page, enum zone_stat_item item)
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0116-mm-shrink-the-page-frame-to-rt-size.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 439a317e670e03a91f8ebc6d71684b63d3b5aa74 Mon Sep 17 00:00:00 2001
+From 492ecfbf49a7c3ec1a786bb0008379da6d2c6a45 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <peterz at infradead.org>
 Date: Fri, 3 Jul 2009 08:44:54 -0500
-Subject: [PATCH 116/282] mm: shrink the page frame to !-rt size
+Subject: [PATCH 116/287] mm: shrink the page frame to !-rt size
 
 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 7fa62d9..af0df1a 100644
+index c2575a6..b4e9834 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -4016,3 +4016,35 @@ void copy_user_huge_page(struct page *dst, struct page *src,
+@@ -4019,3 +4019,35 @@ void copy_user_huge_page(struct page *dst, struct page *src,
  	}
  }
  #endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */
@@ -145,6 +145,3 @@
 +}
 +
 +#endif
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0117-ARM-Initialize-ptl-lock-for-vector-page.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d2e15f3a46f118e0899735206d436f5380ca8d79 Mon Sep 17 00:00:00 2001
+From 4d7787c8da52039fdd22210977aac935034d9fc4 Mon Sep 17 00:00:00 2001
 From: Frank Rowand <frank.rowand at am.sony.com>
 Date: Sat, 1 Oct 2011 18:58:13 -0700
-Subject: [PATCH 117/282] ARM: Initialize ptl->lock for vector page
+Subject: [PATCH 117/287] ARM: Initialize ptl->lock for vector page
 
 Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if
 PREEMPT_RT_FULL=y because vectors_user_mapping() creates a
@@ -35,10 +35,10 @@
  1 file changed, 25 insertions(+)
 
 diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
-index 54833ff..75227b3 100644
+index 3577921..986d423 100644
 --- a/arch/arm/kernel/process.c
 +++ b/arch/arm/kernel/process.c
-@@ -489,6 +489,31 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
+@@ -491,6 +491,31 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
  }
  
  #ifdef CONFIG_MMU
@@ -70,6 +70,3 @@
  /*
   * The vectors page is always readable from user space for the
   * atomic helpers and the signal restart code.  Let's declare a mapping
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0118-mm-Allow-only-slab-on-RT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From fcf8616ce028bfa099fc88547032470c202d73b8 Mon Sep 17 00:00:00 2001
+From d793c180519b26491bc072cae2362b6faa6da8fc Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:44:03 -0500
-Subject: [PATCH 118/282] mm: Allow only slab on RT
+Subject: [PATCH 118/287] mm: Allow only slab on RT
 
 Signed-off-by: Ingo Molnar <mingo at elte.hu>
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
@@ -29,6 +29,3 @@
  	help
  	   SLOB replaces the stock allocator with a drastically simpler
  	   allocator. SLOB is generally more space efficient but
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0119-radix-tree-rt-aware.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 476a0c32970d7ead365304dead2a94921ee84b74 Mon Sep 17 00:00:00 2001
+From f468470f196c04c8f66df3bd71c8d58f2da344a3 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 21:33:18 +0200
-Subject: [PATCH 119/282] radix-tree-rt-aware.patch
+Subject: [PATCH 119/287] radix-tree-rt-aware.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -71,6 +71,3 @@
  
  /*
   *	Return the maximum key which can be store into a
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0120-panic-disable-random-on-rt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 4280a3c44899a1155f4d1322e52168920963f704 Mon Sep 17 00:00:00 2001
+From 46e2774b31615466d0eeb4e3f81f57f760f76352 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 10 Apr 2012 14:34:04 -0400
-Subject: [PATCH 120/282] panic-disable-random-on-rt
+Subject: [PATCH 120/287] panic-disable-random-on-rt
 
 ---
  kernel/panic.c |    2 ++
@@ -23,6 +23,3 @@
  		oops_id++;
  
  	return 0;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0121-ipc-Make-the-ipc-code-rt-aware.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 5e035cfab75fd41f0653dedd1573ed73ff2b7706 Mon Sep 17 00:00:00 2001
+From 07b3e01ff19d37064cc093ddef1e504226eb5e33 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:12 -0500
-Subject: [PATCH 121/282] ipc: Make the ipc code -rt aware
+Subject: [PATCH 121/287] ipc: Make the ipc code -rt aware
 
 RT serializes the code with the (rt)spinlock but keeps preemption
 enabled. Some parts of the code need to be atomic nevertheless.
@@ -87,6 +87,3 @@
  		}
  	}
  	return 0;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0122-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From e01092dac9ba96592a1ce3641cbcef43cb86bc53 Mon Sep 17 00:00:00 2001
+From 0092342ab88612228d99ad9049b96123995c422a Mon Sep 17 00:00:00 2001
 From: KOBAYASHI Yoshitake <yoshitake.kobayashi at toshiba.co.jp>
 Date: Sat, 23 Jul 2011 11:57:36 +0900
-Subject: [PATCH 122/282] ipc/mqueue: Add a critical section to avoid a
+Subject: [PATCH 122/287] ipc/mqueue: Add a critical section to avoid a
  deadlock
 
 (Repost for v3.0-rt1 and changed the distination addreses)
@@ -61,6 +61,3 @@
  		size_t, msg_len, unsigned int, msg_prio,
  		const struct timespec __user *, u_abs_timeout)
  {
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0123-relay-fix-timer-madness.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 0fb3cd8e7bae3142cc42f0876cb7229f35e64306 Mon Sep 17 00:00:00 2001
+From aa088a38027202f29c1f2555a666907d619aa296 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:44:07 -0500
-Subject: [PATCH 123/282] relay: fix timer madness
+Subject: [PATCH 123/287] relay: fix timer madness
 
 remove timer calls (!!!) from deep within the tracing infrastructure.
 This was totally bogus code that can cause lockups and worse.  Poll
@@ -52,6 +52,3 @@
  	}
  
  	old = buf->data;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0124-net-ipv4-route-use-locks-on-up-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 5d935483d70a9d8427cb1596df938352e316ebf0 Mon Sep 17 00:00:00 2001
+From 073a63553c4f7908c95d596c697bcf2d1ac4ae09 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 15 Jul 2011 16:24:45 +0200
-Subject: [PATCH 124/282] net-ipv4-route-use-locks-on-up-rt.patch
+Subject: [PATCH 124/287] net-ipv4-route-use-locks-on-up-rt.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -21,6 +21,3 @@
  /*
   * Instead of using one spinlock for each rt_hash_bucket, we use a table of spinlocks
   * The size of this table is a power of two and depends on the number of CPUS.
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0125-workqueue-avoid-the-lock-in-cpu-dying.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 4611f846bce43364ec89f9aad4ff2415b82c7caf Mon Sep 17 00:00:00 2001
+From cfc707eb63cba3f6b02768c7bd8d68bc2016617d Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 24 Jun 2011 20:39:24 +0200
-Subject: [PATCH 125/282] workqueue-avoid-the-lock-in-cpu-dying.patch
+Subject: [PATCH 125/287] workqueue-avoid-the-lock-in-cpu-dying.patch
 
 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 4b4421d..8bdc220 100644
+index f09d7e2..383f550 100644
 --- a/kernel/workqueue.c
 +++ b/kernel/workqueue.c
-@@ -3509,6 +3509,25 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
+@@ -3533,6 +3533,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 */
-@@ -3528,16 +3547,6 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
+@@ -3552,16 +3571,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 */
-@@ -3571,6 +3580,7 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
+@@ -3595,6 +3604,7 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
  
  	spin_unlock_irqrestore(&gcwq->lock, flags);
  
@@ -63,6 +63,3 @@
  	return notifier_from_errno(0);
  }
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0126-timers-prepare-for-full-preemption.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d9934e41c0fb51d0afbfff386b18f9ed48af9123 Mon Sep 17 00:00:00 2001
+From 414e79a775070c557fd7de089d2f4a2e41da15ea Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:29:34 -0500
-Subject: [PATCH 126/282] timers: prepare for full preemption
+Subject: [PATCH 126/287] timers: prepare for full preemption
 
 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
@@ -124,6 +124,3 @@
  
  	for (j = 0; j < TVN_SIZE; j++) {
  		INIT_LIST_HEAD(base->tv5.vec + j);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0127-timers-preempt-rt-support.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From bb0c3f398cc480a76ecd23facb2b584a25afb257 Mon Sep 17 00:00:00 2001
+From 1232f23bfbedf151685ad9117bb4b3ef06c55c3a Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:20 -0500
-Subject: [PATCH 127/282] timers: preempt-rt support
+Subject: [PATCH 127/287] timers: preempt-rt support
 
 Signed-off-by: Ingo Molnar <mingo at elte.hu>
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
@@ -45,6 +45,3 @@
  	return cmp_next_hrtimer_event(now, expires);
  }
  #endif
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0128-timers-fix-timer-hotplug-on-rt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 4f08775c1905f1057a7e152931b2f964987c593a Mon Sep 17 00:00:00 2001
+From 2a20debfc295f7a170bcb2cfaa46bc32a2c49279 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:32 -0500
-Subject: [PATCH 128/282] timers: fix timer hotplug on -rt
+Subject: [PATCH 128/287] timers: fix timer hotplug on -rt
 
 Here we are in the CPU_DEAD notifier, and we must not sleep nor
 enable interrupts.
@@ -49,6 +49,3 @@
  	put_cpu_var(tvec_bases);
  }
  #endif /* CONFIG_HOTPLUG_CPU */
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0129-timers-mov-printk_tick-to-soft-interrupt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From b4314b6a723c8a5d50cfc50003bc6a58c0ee9b3d Mon Sep 17 00:00:00 2001
+From 7c2f2e46bb4b28f670724d915ff3fb64c993fd4f Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 3 Jul 2009 08:44:30 -0500
-Subject: [PATCH 129/282] timers: mov printk_tick to soft interrupt
+Subject: [PATCH 129/287] timers: mov printk_tick to soft interrupt
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 Signed-off-by: Ingo Molnar <mingo at elte.hu>
@@ -29,6 +29,3 @@
  	hrtimer_run_pending();
  
  	if (time_after_eq(jiffies, base->timer_jiffies))
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0130-timer-delay-waking-softirqs-from-the-jiffy-tick.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 6b3e39602b635fa2f71fff5dc26a363cffeec3f9 Mon Sep 17 00:00:00 2001
+From 82d39a7ed42fdac19c86c1b75ca9db586384aa71 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <peterz at infradead.org>
 Date: Fri, 21 Aug 2009 11:56:45 +0200
-Subject: [PATCH 130/282] timer: delay waking softirqs from the jiffy tick
+Subject: [PATCH 130/287] timer: delay waking softirqs from the jiffy tick
 
 People were complaining about broken balancing with the recent -rt
 series.
@@ -75,6 +75,3 @@
  	run_posix_cpu_timers(p);
  }
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0131-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 08cd6c1108784e10a1b2994c0058d58193637e61 Mon Sep 17 00:00:00 2001
+From a3fba00dd7915be61da1163b1c26b6e7fedb8fc9 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 21 Jul 2011 15:23:39 +0200
-Subject: [PATCH 131/282] timers: Avoid the switch timers base set to NULL
+Subject: [PATCH 131/287] timers: Avoid the switch timers base set to NULL
  trick on RT
 
 On RT that code is preemptible, so we cannot assign NULL to timers
@@ -70,6 +70,3 @@
  	}
  
  	timer->expires = expires;
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0132-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 66ed3105dab81c88335bd9c3cb6dd4070944db1f Mon Sep 17 00:00:00 2001
+From dd2f81672adad5cd7fb62387beb8ad82b3ef6cc5 Mon Sep 17 00:00:00 2001
 From: Yong Zhang <yong.zhang0 at gmail.com>
 Date: Sun, 16 Oct 2011 18:56:45 +0800
-Subject: [PATCH 132/282] printk: Don't call printk_tick in printk_needs_cpu()
+Subject: [PATCH 132/287] printk: Don't call printk_tick in printk_needs_cpu()
  on RT
 
 printk_tick() can't be called in atomic context when RT is enabled,
@@ -47,6 +47,3 @@
  	return __this_cpu_read(printk_pending);
  }
  
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0133-hrtimers-prepare-full-preemption.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 3fb8c447cf2a5fb7b9d5d5d6eef9788941e7907e Mon Sep 17 00:00:00 2001
+From 65f2876c7f3333e90818ac8e216391e91b27af5f Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:29:34 -0500
-Subject: [PATCH 133/282] hrtimers: prepare full preemption
+Subject: [PATCH 133/287] hrtimers: prepare full preemption
 
 Make cancellation of a running callback in softirq context safe
 against preemption.
@@ -16,10 +16,10 @@
  4 files changed, 76 insertions(+), 1 deletion(-)
 
 diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
-index fd0dc30..e8b395d 100644
+index cc07d27..75b2545 100644
 --- a/include/linux/hrtimer.h
 +++ b/include/linux/hrtimer.h
-@@ -187,6 +187,9 @@ struct hrtimer_cpu_base {
+@@ -189,6 +189,9 @@ struct hrtimer_cpu_base {
  	unsigned long			nr_hangs;
  	ktime_t				max_hang_time;
  #endif
@@ -29,7 +29,7 @@
  	struct hrtimer_clock_base	clock_base[HRTIMER_MAX_CLOCK_BASES];
  };
  
-@@ -374,6 +377,13 @@ static inline int hrtimer_restart(struct hrtimer *timer)
+@@ -382,6 +385,13 @@ static inline int hrtimer_restart(struct hrtimer *timer)
  	return hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
  }
  
@@ -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 1a3695e..905e2cd2 100644
+index 7eec82d..45b923b 100644
 --- a/kernel/hrtimer.c
 +++ b/kernel/hrtimer.c
-@@ -847,6 +847,32 @@ u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
+@@ -857,6 +857,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
   *
-@@ -1073,7 +1099,7 @@ int hrtimer_cancel(struct hrtimer *timer)
+@@ -1083,7 +1109,7 @@ int hrtimer_cancel(struct hrtimer *timer)
  
  		if (ret >= 0)
  			return ret;
@@ -89,7 +89,7 @@
  	}
  }
  EXPORT_SYMBOL_GPL(hrtimer_cancel);
-@@ -1476,6 +1502,8 @@ void hrtimer_run_queues(void)
+@@ -1497,6 +1523,8 @@ void hrtimer_run_queues(void)
  		}
  		raw_spin_unlock(&cpu_base->lock);
  	}
@@ -98,7 +98,7 @@
  }
  
  /*
-@@ -1638,6 +1666,9 @@ static void __cpuinit init_hrtimers_cpu(int cpu)
+@@ -1659,6 +1687,9 @@ static void __cpuinit init_hrtimers_cpu(int cpu)
  	}
  
  	hrtimer_init_hres(cpu_base);
@@ -201,6 +201,3 @@
  		goto retry_delete;
  	}
  	list_del(&timer->list);
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0134-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d57329a2347a0c0324638cfb0a6dac6dcd6ff2e2 Mon Sep 17 00:00:00 2001
+From 7775e85f963cb8653b51823ebd39f498735c3a97 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 3 Jul 2009 08:44:31 -0500
-Subject: [PATCH 134/282] hrtimer: fixup hrtimer callback changes for
+Subject: [PATCH 134/287] hrtimer: fixup hrtimer callback changes for
  preempt-rt
 
 In preempt-rt we can not call the callbacks which take sleeping locks
@@ -14,14 +14,14 @@
 Signed-off-by: Ingo Molnar <mingo at elte.hu>
 ---
  include/linux/hrtimer.h  |    3 +
- kernel/hrtimer.c         |  190 +++++++++++++++++++++++++++++++++++++++++-----
+ kernel/hrtimer.c         |  194 +++++++++++++++++++++++++++++++++++++++++-----
  kernel/sched.c           |    2 +
  kernel/time/tick-sched.c |    1 +
  kernel/watchdog.c        |    1 +
- 5 files changed, 179 insertions(+), 18 deletions(-)
+ 5 files changed, 181 insertions(+), 20 deletions(-)
 
 diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
-index e8b395d..0e37086 100644
+index 75b2545..26b008b 100644
 --- a/include/linux/hrtimer.h
 +++ b/include/linux/hrtimer.h
 @@ -111,6 +111,8 @@ struct hrtimer {
@@ -42,7 +42,7 @@
  	ktime_t			(*get_time)(void);
  	ktime_t			softirq_time;
 diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index 905e2cd2..1dd627b 100644
+index 45b923b..392fa07 100644
 --- a/kernel/hrtimer.c
 +++ b/kernel/hrtimer.c
 @@ -589,8 +589,7 @@ static int hrtimer_reprogram(struct hrtimer *timer,
@@ -71,7 +71,7 @@
  {
 +#ifdef CONFIG_PREEMPT_RT_BASE
 +again:
-+	if (base->cpu_base->hres_active && hrtimer_reprogram(timer, base)) {
+ 	if (base->cpu_base->hres_active && hrtimer_reprogram(timer, base)) {
 +		/*
 +		 * Move softirq based timers away from the rbtree in
 +		 * case it expired already. Otherwise we would have a
@@ -90,12 +90,12 @@
 +			return 1;
 +		}
 +#else
- 	if (base->cpu_base->hres_active && hrtimer_reprogram(timer, base)) {
++	if (base->cpu_base->hres_active && hrtimer_reprogram(timer, base)) {
 +#endif
  		if (wakeup) {
  			raw_spin_unlock(&base->cpu_base->lock);
  			raise_softirq_irqoff(HRTIMER_SOFTIRQ);
-@@ -733,6 +757,11 @@ static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer,
+@@ -743,6 +767,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) { }
@@ -107,7 +107,7 @@
  
  #endif /* CONFIG_HIGH_RES_TIMERS */
  
-@@ -864,9 +893,9 @@ void hrtimer_wait_for_timer(const struct hrtimer *timer)
+@@ -874,9 +903,9 @@ void hrtimer_wait_for_timer(const struct hrtimer *timer)
  {
  	struct hrtimer_clock_base *base = timer->base;
  
@@ -119,7 +119,7 @@
  }
  
  #else
-@@ -916,6 +945,11 @@ static void __remove_hrtimer(struct hrtimer *timer,
+@@ -926,6 +955,11 @@ static void __remove_hrtimer(struct hrtimer *timer,
  	if (!(timer->state & HRTIMER_STATE_ENQUEUED))
  		goto out;
  
@@ -131,7 +131,7 @@
  	next_timer = timerqueue_getnext(&base->active);
  	timerqueue_del(&base->active, &timer->node);
  	if (&timer->node == next_timer) {
-@@ -1178,6 +1212,7 @@ static void __hrtimer_init(struct hrtimer *timer, clockid_t clock_id,
+@@ -1188,6 +1222,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];
@@ -139,7 +139,7 @@
  	timerqueue_init(&timer->node);
  
  #ifdef CONFIG_TIMER_STATS
-@@ -1261,10 +1296,118 @@ static void __run_hrtimer(struct hrtimer *timer, ktime_t *now)
+@@ -1271,10 +1306,118 @@ static void __run_hrtimer(struct hrtimer *timer, ktime_t *now)
  	timer->state &= ~HRTIMER_STATE_CALLBACK;
  }
  
@@ -260,7 +260,7 @@
  /*
   * High resolution timer interrupt
   * Called with interrupts disabled
-@@ -1273,7 +1416,7 @@ void hrtimer_interrupt(struct clock_event_device *dev)
+@@ -1283,7 +1426,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;
@@ -269,7 +269,7 @@
  
  	BUG_ON(!cpu_base->hres_active);
  	cpu_base->nr_events++;
-@@ -1340,7 +1483,10 @@ retry:
+@@ -1349,7 +1492,10 @@ retry:
  				break;
  			}
  
@@ -281,7 +281,7 @@
  		}
  	}
  
-@@ -1355,6 +1501,10 @@ retry:
+@@ -1364,6 +1510,10 @@ retry:
  	if (expires_next.tv64 == KTIME_MAX ||
  	    !tick_program_event(expires_next, 0)) {
  		cpu_base->hang_detected = 0;
@@ -292,30 +292,37 @@
  		return;
  	}
  
-@@ -1430,17 +1580,17 @@ void hrtimer_peek_ahead_timers(void)
+@@ -1444,6 +1594,12 @@ void hrtimer_peek_ahead_timers(void)
  	local_irq_restore(flags);
  }
  
--static void run_hrtimer_softirq(struct softirq_action *h)
--{
--	hrtimer_peek_ahead_timers();
--}
--
- #else /* CONFIG_HIGH_RES_TIMERS */
- 
- static inline void __hrtimer_peek_ahead_timers(void) { }
- 
- #endif	/* !CONFIG_HIGH_RES_TIMERS */
++#else /* CONFIG_HIGH_RES_TIMERS */
++
++static inline void __hrtimer_peek_ahead_timers(void) { }
++
++#endif	/* !CONFIG_HIGH_RES_TIMERS */
++
+ static void run_hrtimer_softirq(struct softirq_action *h)
+ {
+ 	struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
+@@ -1453,15 +1609,9 @@ static void run_hrtimer_softirq(struct softirq_action *h)
+ 		clock_was_set();
+ 	}
  
-+static void run_hrtimer_softirq(struct softirq_action *h)
-+{
+-	hrtimer_peek_ahead_timers();
 +	hrtimer_rt_run_pending();
-+}
-+
+ }
+ 
+-#else /* CONFIG_HIGH_RES_TIMERS */
+-
+-static inline void __hrtimer_peek_ahead_timers(void) { }
+-
+-#endif	/* !CONFIG_HIGH_RES_TIMERS */
+-
  /*
   * Called from timer softirq every jiffy, expire hrtimers:
   *
-@@ -1473,7 +1623,7 @@ void hrtimer_run_queues(void)
+@@ -1494,7 +1644,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;
@@ -324,7 +331,7 @@
  
  	if (hrtimer_hres_active())
  		return;
-@@ -1498,12 +1648,16 @@ void hrtimer_run_queues(void)
+@@ -1519,12 +1669,16 @@ void hrtimer_run_queues(void)
  					hrtimer_get_expires_tv64(timer))
  				break;
  
@@ -343,7 +350,7 @@
  }
  
  /*
-@@ -1525,6 +1679,7 @@ static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer)
+@@ -1546,6 +1700,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;
@@ -351,7 +358,7 @@
  	sl->task = task;
  }
  EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
-@@ -1663,6 +1818,7 @@ static void __cpuinit init_hrtimers_cpu(int cpu)
+@@ -1684,6 +1839,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);
@@ -359,7 +366,7 @@
  	}
  
  	hrtimer_init_hres(cpu_base);
-@@ -1781,9 +1937,7 @@ void __init hrtimers_init(void)
+@@ -1802,9 +1958,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);
@@ -370,7 +377,7 @@
  
  /**
 diff --git a/kernel/sched.c b/kernel/sched.c
-index f2fc6ee..057e72d 100644
+index d24f681..297fc34 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
 @@ -189,6 +189,7 @@ void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime)
@@ -381,7 +388,7 @@
  	rt_b->rt_period_timer.function = sched_rt_period_timer;
  }
  
-@@ -1277,6 +1278,7 @@ static void init_rq_hrtick(struct rq *rq)
+@@ -1274,6 +1275,7 @@ static void init_rq_hrtick(struct rq *rq)
  
  	hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
  	rq->hrtick_timer.function = hrtick;
@@ -390,10 +397,10 @@
  #else	/* CONFIG_SCHED_HRTICK */
  static inline void hrtick_clear(struct rq *rq)
 diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
-index d7abd2f..a2c2a64 100644
+index 9964bda..548d311 100644
 --- a/kernel/time/tick-sched.c
 +++ b/kernel/time/tick-sched.c
-@@ -802,6 +802,7 @@ void tick_setup_sched_timer(void)
+@@ -805,6 +805,7 @@ void tick_setup_sched_timer(void)
  	 * Emulate tick processing via per-CPU hrtimers:
  	 */
  	hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
@@ -413,6 +420,3 @@
  }
  
  static int watchdog_enable(int cpu)
--- 
-1.7.10
-

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	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0135-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From cf20c3703ab9a12d50b608160f9c85c976cfe092 Mon Sep 17 00:00:00 2001
+From 4fabc154876806ecae04a270e7eda14d9636e44b Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Fri, 12 Aug 2011 17:39:54 +0200
-Subject: [PATCH 135/282] hrtimer: Don't call the timer handler from
+Subject: [PATCH 135/287] hrtimer: Don't call the timer handler from
  hrtimer_start
 
  [<ffffffff812de4a9>] __delay+0xf/0x11
@@ -33,7 +33,7 @@
  1 file changed, 23 insertions(+), 25 deletions(-)
 
 diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index 1dd627b..358442b 100644
+index 392fa07..27a3192 100644
 --- a/kernel/hrtimer.c
 +++ b/kernel/hrtimer.c
 @@ -646,37 +646,24 @@ static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer,
@@ -84,7 +84,7 @@
  	}
  
  	return 0;
-@@ -1046,8 +1033,19 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
+@@ -1056,8 +1043,19 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
  	 *
  	 * XXX send_remote_softirq() ?
  	 */
@@ -106,6 +106,3 @@
  
  	unlock_hrtimer_base(timer, &flags);
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0136-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0136-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0136-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1c2a1d160b5cc878596ce4bb89a9d6c057f90a26 Mon Sep 17 00:00:00 2001
+From b6fb681b6390ed69b56bba772cabaaa25a4361da Mon Sep 17 00:00:00 2001
 From: Yong Zhang <yong.zhang0 at gmail.com>
 Date: Thu, 13 Oct 2011 15:52:30 +0800
-Subject: [PATCH 136/282] hrtimer: Add missing debug_activate() aid [Was: Re:
+Subject: [PATCH 136/287] hrtimer: Add missing debug_activate() aid [Was: Re:
  [ANNOUNCE] 3.0.6-rt17]
 
 On Fri, Oct 07, 2011 at 10:25:25AM -0700, Fernando Lopez-Lezcano wrote:
@@ -25,10 +25,10 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index 358442b..d363df8 100644
+index 27a3192..34b3232 100644
 --- a/kernel/hrtimer.c
 +++ b/kernel/hrtimer.c
-@@ -1042,6 +1042,7 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
+@@ -1052,6 +1052,7 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
  			 * remove it again and report a failure. This avoids
  			 * stale base->first entries.
  			 */
@@ -36,6 +36,3 @@
  			__remove_hrtimer(timer, new_base,
  					timer->state & HRTIMER_STATE_CALLBACK, 0);
  		}
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0137-hrtimer-fix-reprogram-madness.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0137-hrtimer-fix-reprogram-madness.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0137-hrtimer-fix-reprogram-madness.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 94f180f7d0ee58a5c63dd8d306eff6cc430a7ba2 Mon Sep 17 00:00:00 2001
+From 094ecbfa9b7bd9de1e4166313566c2b928b22deb Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 14 Sep 2011 14:48:43 +0200
-Subject: [PATCH 137/282] hrtimer-fix-reprogram-madness.patch
+Subject: [PATCH 137/287] hrtimer-fix-reprogram-madness.patch
 
 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 d363df8..3991464 100644
+index 34b3232..3848761 100644
 --- a/kernel/hrtimer.c
 +++ b/kernel/hrtimer.c
-@@ -1317,7 +1317,11 @@ static void hrtimer_rt_reprogram(int restart, struct hrtimer *timer,
+@@ -1327,7 +1327,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)) {
-@@ -1326,6 +1330,7 @@ static void hrtimer_rt_reprogram(int restart, struct hrtimer *timer,
+@@ -1336,6 +1340,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;
  	}
-@@ -1338,6 +1343,7 @@ requeue:
+@@ -1348,6 +1353,7 @@ requeue:
  	 */
  	__remove_hrtimer(timer, base, timer->state, 0);
  	list_add_tail(&timer->cb_entry, &base->expired);
@@ -41,6 +41,3 @@
  }
  
  /*
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0138-timer-fd-Prevent-live-lock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0138-timer-fd-Prevent-live-lock.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0138-timer-fd-Prevent-live-lock.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1ba5e3df6eb69ac2a86ec9f49abf491896275b3d Mon Sep 17 00:00:00 2001
+From ef52e6114db152245be8642894f3f59c9696535b Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 25 Jan 2012 11:08:40 +0100
-Subject: [PATCH 138/282] timer-fd: Prevent live lock
+Subject: [PATCH 138/287] timer-fd: Prevent live lock
 
 If hrtimer_try_to_cancel() requires a retry, then depending on the
 priority setting te retry loop might prevent timer callback completion
@@ -28,6 +28,3 @@
  	}
  
  	/*
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0139-posix-timers-thread-posix-cpu-timers-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0139-posix-timers-thread-posix-cpu-timers-on-rt.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0139-posix-timers-thread-posix-cpu-timers-on-rt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 7c23e492b84633e29b72145d44992d54e5c77c4c Mon Sep 17 00:00:00 2001
+From 01969507f1e34ccd59807abdc453255ee7a8dd43 Mon Sep 17 00:00:00 2001
 From: John Stultz <johnstul at us.ibm.com>
 Date: Fri, 3 Jul 2009 08:29:58 -0500
-Subject: [PATCH 139/282] posix-timers: thread posix-cpu-timers on -rt
+Subject: [PATCH 139/287] posix-timers: thread posix-cpu-timers on -rt
 
 posix-cpu-timer code takes non -rt safe locks in hard irq
 context. Move it to a thread.
@@ -19,10 +19,10 @@
  5 files changed, 190 insertions(+), 6 deletions(-)
 
 diff --git a/include/linux/init_task.h b/include/linux/init_task.h
-index 32574ee..cfd9f8d 100644
+index cdde2b3..3202e80 100644
 --- a/include/linux/init_task.h
 +++ b/include/linux/init_task.h
-@@ -126,6 +126,12 @@ extern struct cred init_cred;
+@@ -142,6 +142,12 @@ extern struct task_group root_task_group;
  # define INIT_PERF_EVENTS(tsk)
  #endif
  
@@ -35,7 +35,7 @@
  #define INIT_TASK_COMM "swapper"
  
  /*
-@@ -180,6 +186,7 @@ extern struct cred init_cred;
+@@ -197,6 +203,7 @@ extern struct task_group root_task_group;
  	.cpu_timers	= INIT_CPU_TIMERS(tsk.cpu_timers),		\
  	.pi_lock	= __RAW_SPIN_LOCK_UNLOCKED(tsk.pi_lock),	\
  	.timer_slack_ns = 50000, /* 50 usec default slack */		\
@@ -44,10 +44,10 @@
  		[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 30ac0b5..9ff731d 100644
+index c533510..5c3fa60 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1355,6 +1355,9 @@ struct task_struct {
+@@ -1359,6 +1359,9 @@ struct task_struct {
  
  	struct task_cputime cputime_expires;
  	struct list_head cpu_timers[3];
@@ -70,10 +70,10 @@
  #include <asm/io.h>
  #include <asm/bugs.h>
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 88712a6..7595cea 100644
+index 78335bb..ab30847 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -1028,6 +1028,9 @@ void mm_init_owner(struct mm_struct *mm, struct task_struct *p)
+@@ -1031,6 +1031,9 @@ void mm_init_owner(struct mm_struct *mm, struct task_struct *p)
   */
  static void posix_cpu_timers_init(struct task_struct *tsk)
  {
@@ -311,6 +311,3 @@
  /*
   * Set one of the process-wide special case CPU timers or RLIMIT_CPU.
   * The tsk->sighand->siglock must be held by the caller.
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0140-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0140-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0140-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 60eefe2a494cb7d54bae186ac20d57fad7b055cc Mon Sep 17 00:00:00 2001
+From 2b57f93efe6ff8330882241693be0aa5be5abc8c Mon Sep 17 00:00:00 2001
 From: Arnaldo Carvalho de Melo <acme at redhat.com>
 Date: Fri, 3 Jul 2009 08:30:00 -0500
-Subject: [PATCH 140/282] posix-timers: Shorten posix_cpu_timers/<CPU> kernel
+Subject: [PATCH 140/287] posix-timers: Shorten posix_cpu_timers/<CPU> kernel
  thread names
 
 Shorten the softirq kernel thread names because they always overflow the
@@ -27,6 +27,3 @@
  		if (IS_ERR(p))
  			return NOTIFY_BAD;
  		p->flags |= PF_NOFREEZE;
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0141-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0141-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0141-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 69b55e8ab8bf10fb0b71499eaa30402aed9f3e8a Mon Sep 17 00:00:00 2001
+From 37855e7d3971355b2101a7d98a35ed75ff1c7a12 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 3 Jul 2009 08:44:44 -0500
-Subject: [PATCH 141/282] posix-timers: Avoid wakeups when no timers are
+Subject: [PATCH 141/287] posix-timers: Avoid wakeups when no timers are
  active
 
 Waking the thread even when no timers are scheduled is useless.
@@ -58,6 +58,3 @@
  }
  
  /*
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0142-sched-delay-put-task.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0142-sched-delay-put-task.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0142-sched-delay-put-task.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From ea72f13fc26b074813a55ba3821730457639f227 Mon Sep 17 00:00:00 2001
+From c9749e4313e2486f6741fe61d573374492f243cb Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 31 May 2011 16:59:16 +0200
-Subject: [PATCH 142/282] sched-delay-put-task.patch
+Subject: [PATCH 142/287] sched-delay-put-task.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -10,10 +10,10 @@
  2 files changed, 24 insertions(+)
 
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 9ff731d..fb5e51f 100644
+index 5c3fa60..3134428 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1591,6 +1591,9 @@ struct task_struct {
+@@ -1595,6 +1595,9 @@ struct task_struct {
  #ifdef CONFIG_HAVE_HW_BREAKPOINT
  	atomic_t ptrace_bp_refcnt;
  #endif
@@ -23,7 +23,7 @@
  };
  
  /* Future-safe accessor for struct task_struct's cpus_allowed. */
-@@ -1775,6 +1778,15 @@ extern struct pid *cad_pid;
+@@ -1779,6 +1782,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)
  
@@ -39,7 +39,7 @@
  extern void __put_task_struct(struct task_struct *t);
  
  static inline void put_task_struct(struct task_struct *t)
-@@ -1782,6 +1794,7 @@ static inline void put_task_struct(struct task_struct *t)
+@@ -1786,6 +1798,7 @@ static inline void put_task_struct(struct task_struct *t)
  	if (atomic_dec_and_test(&t->usage))
  		__put_task_struct(t);
  }
@@ -48,7 +48,7 @@
  extern void task_times(struct task_struct *p, cputime_t *ut, cputime_t *st);
  extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *st);
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 7595cea..9d4653a 100644
+index ab30847..9bb21df 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
 @@ -198,7 +198,18 @@ void __put_task_struct(struct task_struct *tsk)
@@ -70,6 +70,3 @@
  
  /*
   * macro override instead of weak attribute alias, to workaround
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0143-sched-limit-nr-migrate.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0143-sched-limit-nr-migrate.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0143-sched-limit-nr-migrate.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 58c90f3d59c7f84f958a6f622a92707236703c70 Mon Sep 17 00:00:00 2001
+From 9049326508aad414cf10799305309d6961eb3fd6 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 6 Jun 2011 12:12:51 +0200
-Subject: [PATCH 143/282] sched-limit-nr-migrate.patch
+Subject: [PATCH 143/287] sched-limit-nr-migrate.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -9,10 +9,10 @@
  1 file changed, 4 insertions(+)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 057e72d..2dfaadd 100644
+index 297fc34..f0eb8d2 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -942,7 +942,11 @@ late_initcall(sched_init_debug);
+@@ -939,7 +939,11 @@ late_initcall(sched_init_debug);
   * Number of tasks to iterate in a single balance run.
   * Limited because this is done with IRQs disabled.
   */
@@ -24,6 +24,3 @@
  
  /*
   * period over which we average the RT time consumption, measured
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0144-sched-mmdrop-delayed.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0144-sched-mmdrop-delayed.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0144-sched-mmdrop-delayed.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d3877802f337f8d481cf97b3e9e4a15b7a4506db Mon Sep 17 00:00:00 2001
+From deb3db2c77c74406a7bf722294633c2d2f093507 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 6 Jun 2011 12:20:33 +0200
-Subject: [PATCH 144/282] sched-mmdrop-delayed.patch
+Subject: [PATCH 144/287] sched-mmdrop-delayed.patch
 
 Needs thread context (pgd_lock) -> ifdeffed. workqueues wont work with
 RT
@@ -37,10 +37,10 @@
  
  static inline void mm_init_cpumask(struct mm_struct *mm)
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index fb5e51f..e6f37ca 100644
+index 3134428..3f36640 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -2268,12 +2268,24 @@ extern struct mm_struct * mm_alloc(void);
+@@ -2280,12 +2280,24 @@ extern struct mm_struct * mm_alloc(void);
  
  /* mmdrop drops the mm and the page tables */
  extern void __mmdrop(struct mm_struct *);
@@ -66,7 +66,7 @@
  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 9d4653a..8aeb811 100644
+index 9bb21df..2a4a32b 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
 @@ -203,7 +203,7 @@ EXPORT_SYMBOL_GPL(__put_task_struct);
@@ -99,10 +99,10 @@
   * Decrement the use count and release all resources for an mm.
   */
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 2dfaadd..4375135 100644
+index f0eb8d2..8af4f7f 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -3174,8 +3174,12 @@ static void finish_task_switch(struct rq *rq, struct task_struct *prev)
+@@ -3170,8 +3170,12 @@ static void finish_task_switch(struct rq *rq, struct task_struct *prev)
  	finish_lock_switch(rq, prev);
  
  	fire_sched_in_preempt_notifiers(current);
@@ -116,7 +116,7 @@
  	if (unlikely(prev_state == TASK_DEAD)) {
  		/*
  		 * Remove function-return probe instances associated with this
-@@ -6302,6 +6306,8 @@ static int migration_cpu_stop(void *data)
+@@ -6495,6 +6499,8 @@ static int migration_cpu_stop(void *data)
  
  #ifdef CONFIG_HOTPLUG_CPU
  
@@ -125,7 +125,7 @@
  /*
   * Ensures that the idle task is using init_mm right before its cpu goes
   * offline.
-@@ -6314,7 +6320,12 @@ void idle_task_exit(void)
+@@ -6507,7 +6513,12 @@ void idle_task_exit(void)
  
  	if (mm != &init_mm)
  		switch_mm(mm, &init_mm, current);
@@ -139,7 +139,7 @@
  }
  
  /*
-@@ -6659,6 +6670,12 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
+@@ -6852,6 +6863,12 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
  		migrate_nr_uninterruptible(rq);
  		calc_global_load_remove(rq);
  		break;
@@ -152,6 +152,3 @@
  #endif
  	}
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0145-sched-rt-mutex-wakeup.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0145-sched-rt-mutex-wakeup.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0145-sched-rt-mutex-wakeup.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 67c1b1ffef6a857dfd26a276164df9f441b477d5 Mon Sep 17 00:00:00 2001
+From 92bc72183da7f9bccf719650df44e18c090f0bd2 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sat, 25 Jun 2011 09:21:04 +0200
-Subject: [PATCH 145/282] sched-rt-mutex-wakeup.patch
+Subject: [PATCH 145/287] sched-rt-mutex-wakeup.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -10,10 +10,10 @@
  2 files changed, 33 insertions(+), 1 deletion(-)
 
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index e6f37ca..6c20349 100644
+index 3f36640..57d5b54 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1072,6 +1072,7 @@ struct sched_domain;
+@@ -1073,6 +1073,7 @@ struct sched_domain;
  #define WF_SYNC		0x01		/* waker goes to sleep after wakup */
  #define WF_FORK		0x02		/* child wakeup after fork */
  #define WF_MIGRATED	0x04		/* internal use, task got migrated */
@@ -21,7 +21,7 @@
  
  #define ENQUEUE_WAKEUP		1
  #define ENQUEUE_HEAD		2
-@@ -1221,6 +1222,7 @@ enum perf_event_task_context {
+@@ -1222,6 +1223,7 @@ enum perf_event_task_context {
  
  struct task_struct {
  	volatile long state;	/* -1 unrunnable, 0 runnable, >0 stopped */
@@ -29,7 +29,7 @@
  	void *stack;
  	atomic_t usage;
  	unsigned int flags;	/* per process flags, defined below */
-@@ -2178,6 +2180,7 @@ extern void xtime_update(unsigned long ticks);
+@@ -2190,6 +2192,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);
@@ -38,10 +38,10 @@
  #ifdef CONFIG_SMP
   extern void kick_process(struct task_struct *tsk);
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 4375135..c8b9101 100644
+index 8af4f7f..d3e327d 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -2827,8 +2827,25 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
+@@ -2823,8 +2823,25 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
  
  	smp_wmb();
  	raw_spin_lock_irqsave(&p->pi_lock, flags);
@@ -68,7 +68,7 @@
  
  	success = 1; /* we're going to change ->state */
  	cpu = task_cpu(p);
-@@ -2900,6 +2917,18 @@ int wake_up_process(struct task_struct *p)
+@@ -2896,6 +2913,18 @@ int wake_up_process(struct task_struct *p)
  }
  EXPORT_SYMBOL(wake_up_process);
  
@@ -87,6 +87,3 @@
  int wake_up_state(struct task_struct *p, unsigned int state)
  {
  	return try_to_wake_up(p, state, 0);
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0146-sched-prevent-idle-boost.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0146-sched-prevent-idle-boost.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0146-sched-prevent-idle-boost.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c8b298acaa3e3608be9b15ee5648c63bd6001b55 Mon Sep 17 00:00:00 2001
+From 8e90a3e5b9922fc77bab31b12934bbe73acd706c Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 6 Jun 2011 20:07:38 +0200
-Subject: [PATCH 146/282] sched-prevent-idle-boost.patch
+Subject: [PATCH 146/287] sched-prevent-idle-boost.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -9,10 +9,10 @@
  1 file changed, 19 insertions(+), 2 deletions(-)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index c8b9101..9d2547b 100644
+index d3e327d..b16b7e4 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -5036,6 +5036,24 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
+@@ -5229,6 +5229,24 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
  
  	rq = __task_rq_lock(p);
  
@@ -37,7 +37,7 @@
  	trace_sched_pi_setprio(p, prio);
  	oldprio = p->prio;
  	prev_class = p->sched_class;
-@@ -5059,11 +5077,10 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
+@@ -5252,11 +5270,10 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
  		enqueue_task(rq, p, oldprio < prio ? ENQUEUE_HEAD : 0);
  
  	check_class_changed(rq, p, prev_class, oldprio);
@@ -50,6 +50,3 @@
  void set_user_nice(struct task_struct *p, long nice)
  {
  	int old_prio, delta, on_rq;
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0147-sched-might-sleep-do-not-account-rcu-depth.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0147-sched-might-sleep-do-not-account-rcu-depth.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0147-sched-might-sleep-do-not-account-rcu-depth.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 786d60ec621e89188ed0251ffdc1014a93f40871 Mon Sep 17 00:00:00 2001
+From 76fd599cb46c4fb5fa0d6fa7a1d71f7473614c94 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 7 Jun 2011 09:19:06 +0200
-Subject: [PATCH 147/282] sched-might-sleep-do-not-account-rcu-depth.patch
+Subject: [PATCH 147/287] sched-might-sleep-do-not-account-rcu-depth.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -35,10 +35,10 @@
  
  /* Internal to kernel */
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 9d2547b..155f94e 100644
+index b16b7e4..afc9d85 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -8435,7 +8435,8 @@ void __init sched_init(void)
+@@ -8660,7 +8660,8 @@ void __init sched_init(void)
  #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
  static inline int preempt_count_equals(int preempt_offset)
  {
@@ -48,6 +48,3 @@
  
  	return (nested == preempt_offset);
  }
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0148-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0148-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0148-sched-Break-out-from-load_balancing-on-rq_lock-conte.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 100839d7ba3c724618911d6a851bb805cfcd8cb7 Mon Sep 17 00:00:00 2001
+From 7ff158ea4cbcef15cee0235eaf94a396434b63e1 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <peterz at infradead.org>
 Date: Tue, 16 Mar 2010 14:31:44 -0700
-Subject: [PATCH 148/282] sched: Break out from load_balancing on rq_lock
+Subject: [PATCH 148/287] sched: Break out from load_balancing on rq_lock
  contention
 
 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 8a39fa3..3747e53 100644
+index 66e4576..4303d82 100644
 --- a/kernel/sched_fair.c
 +++ b/kernel/sched_fair.c
 @@ -2899,6 +2899,10 @@ balance_tasks(struct rq *this_rq, int this_cpu, struct rq *busiest,
@@ -48,6 +48,3 @@
  	}
  	rcu_read_unlock();
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0149-sched-cond-resched.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0149-sched-cond-resched.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0149-sched-cond-resched.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c119b91ea0c7ed5bc8e5d69156bef47b11d5d007 Mon Sep 17 00:00:00 2001
+From 0680e37a4dfdf2622db0abd8eb1700b4e9a33111 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 7 Jun 2011 11:25:03 +0200
-Subject: [PATCH 149/282] sched-cond-resched.patch
+Subject: [PATCH 149/287] sched-cond-resched.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -9,10 +9,10 @@
  1 file changed, 11 insertions(+), 3 deletions(-)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 155f94e..0818942 100644
+index afc9d85..eb84999 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -5774,9 +5774,17 @@ static inline int should_resched(void)
+@@ -5967,9 +5967,17 @@ static inline int should_resched(void)
  
  static void __cond_resched(void)
  {
@@ -33,6 +33,3 @@
  }
  
  int __sched _cond_resched(void)
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0150-cond-resched-softirq-fix.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0150-cond-resched-softirq-fix.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0150-cond-resched-softirq-fix.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 95d9cd364bcd1fab250fc6e6932263ca0c16abe9 Mon Sep 17 00:00:00 2001
+From f62d9d1f1dc2e9ae22ccd8404bdeb01c539eca86 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 14 Jul 2011 09:56:44 +0200
-Subject: [PATCH 150/282] cond-resched-softirq-fix.patch
+Subject: [PATCH 150/287] cond-resched-softirq-fix.patch
 
 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 6c20349..38d78dc 100644
+index 57d5b54..08f5c5b 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -2602,12 +2602,16 @@ extern int __cond_resched_lock(spinlock_t *lock);
+@@ -2614,12 +2614,16 @@ extern int __cond_resched_lock(spinlock_t *lock);
  	__cond_resched_lock(lock);				\
  })
  
@@ -31,10 +31,10 @@
  /*
   * Does a critical section need to be broken due to another
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 0818942..4e42b6a 100644
+index eb84999..bdb2d80 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -5825,6 +5825,7 @@ int __cond_resched_lock(spinlock_t *lock)
+@@ -6018,6 +6018,7 @@ int __cond_resched_lock(spinlock_t *lock)
  }
  EXPORT_SYMBOL(__cond_resched_lock);
  
@@ -42,7 +42,7 @@
  int __sched __cond_resched_softirq(void)
  {
  	BUG_ON(!in_softirq());
-@@ -5838,6 +5839,7 @@ int __sched __cond_resched_softirq(void)
+@@ -6031,6 +6032,7 @@ int __sched __cond_resched_softirq(void)
  	return 0;
  }
  EXPORT_SYMBOL(__cond_resched_softirq);
@@ -50,6 +50,3 @@
  
  /**
   * yield - yield the current processor to other threads.
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0151-sched-no-work-when-pi-blocked.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0151-sched-no-work-when-pi-blocked.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0151-sched-no-work-when-pi-blocked.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c0c44922fe20edfc0f4536a17f3285b85087646a Mon Sep 17 00:00:00 2001
+From 0ba0ba29f71ec8a1c64f52409d0a025abbfc9c16 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 20:46:52 +0200
-Subject: [PATCH 151/282] sched-no-work-when-pi-blocked.patch
+Subject: [PATCH 151/287] sched-no-work-when-pi-blocked.patch
 
 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 38d78dc..99e7f8b 100644
+index 08f5c5b..96bfec9 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -2095,12 +2095,20 @@ extern unsigned int sysctl_sched_cfs_bandwidth_slice;
+@@ -2107,12 +2107,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);
@@ -35,10 +35,10 @@
  
  extern bool yield_to(struct task_struct *p, bool preempt);
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 4e42b6a..b6368a4 100644
+index bdb2d80..5add350 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -4460,7 +4460,7 @@ need_resched:
+@@ -4653,7 +4653,7 @@ need_resched:
  
  static inline void sched_submit_work(struct task_struct *tsk)
  {
@@ -47,7 +47,7 @@
  		return;
  
  	/*
-@@ -4480,6 +4480,9 @@ static inline void sched_submit_work(struct task_struct *tsk)
+@@ -4673,6 +4673,9 @@ static inline void sched_submit_work(struct task_struct *tsk)
  
  static inline void sched_update_worker(struct task_struct *tsk)
  {
@@ -57,6 +57,3 @@
  	if (tsk->flags & PF_WQ_WORKER)
  		wq_worker_running(tsk);
  }
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0152-cond-resched-lock-rt-tweak.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0152-cond-resched-lock-rt-tweak.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0152-cond-resched-lock-rt-tweak.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From b9ebacee63267fe6fe948a6bb784169a4a705a99 Mon Sep 17 00:00:00 2001
+From 9d911c1f0ef023577ec5ecad71f85ab7375afa94 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 22:51:33 +0200
-Subject: [PATCH 152/282] cond-resched-lock-rt-tweak.patch
+Subject: [PATCH 152/287] cond-resched-lock-rt-tweak.patch
 
 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 99e7f8b..175aaee 100644
+index 96bfec9..7a1df91 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -2599,7 +2599,7 @@ extern int _cond_resched(void);
+@@ -2611,7 +2611,7 @@ extern int _cond_resched(void);
  
  extern int __cond_resched_lock(spinlock_t *lock);
  
@@ -21,6 +21,3 @@
  #define PREEMPT_LOCK_OFFSET	PREEMPT_OFFSET
  #else
  #define PREEMPT_LOCK_OFFSET	0
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0153-sched-disable-ttwu-queue.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0153-sched-disable-ttwu-queue.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0153-sched-disable-ttwu-queue.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From ab60496c3c25d345672d883272ff812572ac51ab Mon Sep 17 00:00:00 2001
+From e82eef2b8ed1ef0d556f7ecf7782bdbdba4508eb Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 13 Sep 2011 16:42:35 +0200
-Subject: [PATCH 153/282] sched-disable-ttwu-queue.patch
+Subject: [PATCH 153/287] sched-disable-ttwu-queue.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -28,6 +28,3 @@
  
  SCHED_FEAT(FORCE_SD_OVERLAP, 0)
  SCHED_FEAT(RT_RUNTIME_SHARE, 1)
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0154-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0154-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0154-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 7a02f25d6805cdeeb6d611644757c5bbb6846a66 Mon Sep 17 00:00:00 2001
+From ef0481a83711ed6b9b75a60a7c307e1aed1dcf7a Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 18 Jul 2011 17:03:52 +0200
-Subject: [PATCH 154/282] sched: Disable CONFIG_RT_GROUP_SCHED on RT
+Subject: [PATCH 154/287] sched: Disable CONFIG_RT_GROUP_SCHED on RT
 
 Carsten reported problems when running:
 
@@ -29,6 +29,3 @@
  	default n
  	help
  	  This feature lets you explicitly allocate real CPU bandwidth
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0155-sched-ttwu-Return-success-when-only-changing-the-sav.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0155-sched-ttwu-Return-success-when-only-changing-the-sav.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0155-sched-ttwu-Return-success-when-only-changing-the-sav.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 99e5a07fe6fdec173ce90ee61fb2c2522a224fac Mon Sep 17 00:00:00 2001
+From e888bc3b113002ed127217e2c8aab8f196ae90d7 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 13 Dec 2011 21:42:19 +0100
-Subject: [PATCH 155/282] sched: ttwu: Return success when only changing the
+Subject: [PATCH 155/287] sched: ttwu: Return success when only changing the
  saved_state value
 
 When a task blocks on a rt lock, it saves the current state in
@@ -21,10 +21,10 @@
  1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index b6368a4..f22e4fd 100644
+index 5add350..92b84a7 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -2834,8 +2834,10 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
+@@ -2830,8 +2830,10 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
  		 * if the wakeup condition is true.
  		 */
  		if (!(wake_flags & WF_LOCK_SLEEPER)) {
@@ -36,6 +36,3 @@
  		}
  		goto out;
  	}
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0156-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0156-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0156-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 9f5163e90cb3d027987ae99930dfd5f7a0f73085 Mon Sep 17 00:00:00 2001
+From 527111411932262a0943f81d5833bc156a1cb94e Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:27 -0500
-Subject: [PATCH 156/282] stop_machine: convert stop_machine_run() to
+Subject: [PATCH 156/287] stop_machine: convert stop_machine_run() to
  PREEMPT_RT
 
 Instead of playing with non-preemption, introduce explicit
@@ -63,6 +63,3 @@
  		/* cpu stop callbacks are not allowed to sleep */
  		preempt_disable();
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0157-stomp-machine-mark-stomper-thread.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0157-stomp-machine-mark-stomper-thread.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0157-stomp-machine-mark-stomper-thread.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 9001d90d48355be93a23a6f3e2da8916189e7a1a Mon Sep 17 00:00:00 2001
+From 5417eff0e3ee892cf12df1ce6160b7663bab1480 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 19:53:19 +0200
-Subject: [PATCH 157/282] stomp-machine-mark-stomper-thread.patch
+Subject: [PATCH 157/287] stomp-machine-mark-stomper-thread.patch
 
 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 175aaee..6f10df5 100644
+index 7a1df91..34ebf9e 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1822,6 +1822,7 @@ extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *
+@@ -1826,6 +1826,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 */
@@ -33,6 +33,3 @@
  		kthread_bind(p, cpu);
  		sched_set_stop_task(cpu, p);
  		stopper->thread = p;
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0158-stomp-machine-raw-lock.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0158-stomp-machine-raw-lock.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0158-stomp-machine-raw-lock.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From b83598a3b186fcbd48611dff1f4840de9868367c Mon Sep 17 00:00:00 2001
+From bdee18682faaafede3fec3e18ed0a662d0708757 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 29 Jun 2011 11:01:51 +0200
-Subject: [PATCH 158/282] stomp-machine-raw-lock.patch
+Subject: [PATCH 158/287] stomp-machine-raw-lock.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -175,6 +175,3 @@
  		cpu_relax();
  
  	mutex_unlock(&stop_cpus_mutex);
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0159-hotplug-Lightweight-get-online-cpus.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0159-hotplug-Lightweight-get-online-cpus.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0159-hotplug-Lightweight-get-online-cpus.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1d98c3fce615cb9616c61ef488b5b6fbaf63cb89 Mon Sep 17 00:00:00 2001
+From 24c81ea6c7bb8be4d32ecfa992250a8b413eb7e2 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 15 Jun 2011 12:36:06 +0200
-Subject: [PATCH 159/282] hotplug: Lightweight get online cpus
+Subject: [PATCH 159/287] hotplug: Lightweight get online cpus
 
 get_online_cpus() is a heavy weight function which involves a global
 mutex. migrate_disable() wants a simpler construct which prevents only
@@ -18,10 +18,10 @@
  2 files changed, 128 insertions(+), 3 deletions(-)
 
 diff --git a/include/linux/cpu.h b/include/linux/cpu.h
-index 6cb60fd..c46ec3e 100644
+index c692acc..59d28d1 100644
 --- a/include/linux/cpu.h
 +++ b/include/linux/cpu.h
-@@ -167,6 +167,8 @@ extern struct sysdev_class cpu_sysdev_class;
+@@ -168,6 +168,8 @@ extern struct sysdev_class cpu_sysdev_class;
  
  extern void get_online_cpus(void);
  extern void put_online_cpus(void);
@@ -30,7 +30,7 @@
  #define hotcpu_notifier(fn, pri)	cpu_notifier(fn, pri)
  #define register_hotcpu_notifier(nb)	register_cpu_notifier(nb)
  #define unregister_hotcpu_notifier(nb)	unregister_cpu_notifier(nb)
-@@ -189,6 +191,8 @@ static inline void cpu_hotplug_driver_unlock(void)
+@@ -190,6 +192,8 @@ static inline void cpu_hotplug_driver_unlock(void)
  
  #define get_online_cpus()	do { } while (0)
  #define put_online_cpus()	do { } while (0)
@@ -211,6 +211,3 @@
  	cpu_hotplug_done();
  	if (!err)
  		cpu_notify_nofail(CPU_POST_DEAD | mod, hcpu);
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0160-hotplug-sync_unplug-No.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0160-hotplug-sync_unplug-No.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0160-hotplug-sync_unplug-No.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From a110683e44ed54e3657bf221c063195a07152d66 Mon Sep 17 00:00:00 2001
+From 70beb2ece9a13d950f0321e9e8dac56c7a658a8d Mon Sep 17 00:00:00 2001
 From: Yong Zhang <yong.zhang0 at gmail.com>
 Date: Sun, 16 Oct 2011 18:56:43 +0800
-Subject: [PATCH 160/282] hotplug: sync_unplug: No " " in task name
+Subject: [PATCH 160/287] hotplug: sync_unplug: No " " in task name
 
 Otherwise the output will look a little odd.
 
@@ -25,6 +25,3 @@
  	if (IS_ERR(tsk))
  		return (PTR_ERR(tsk));
  	kthread_bind(tsk, cpu);
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0161-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0161-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0161-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 531892878204abb5f100b9f6c209a3eb42814ae5 Mon Sep 17 00:00:00 2001
+From 3058dcb677f52a82284b9fee918398d365c7dc19 Mon Sep 17 00:00:00 2001
 From: Yong Zhang <yong.zhang0 at gmail.com>
 Date: Thu, 28 Jul 2011 11:16:00 +0800
-Subject: [PATCH 161/282] hotplug: Reread hotplug_pcp on pin_current_cpu()
+Subject: [PATCH 161/287] hotplug: Reread hotplug_pcp on pin_current_cpu()
  retry
 
 When retry happens, it's likely that the task has been migrated to
@@ -36,6 +36,3 @@
  	if (!hp->unplug || hp->refcount || preempt_count() > 1 ||
  	    hp->unplug == current || (current->flags & PF_STOMPER)) {
  		hp->refcount++;
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0162-sched-migrate-disable.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0162-sched-migrate-disable.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0162-sched-migrate-disable.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 0d4cad8f0a045960257682398e931846ffff6f98 Mon Sep 17 00:00:00 2001
+From a0e59c49884e45b01190cc0178eb7e13c8177171 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 16 Jun 2011 13:26:08 +0200
-Subject: [PATCH 162/282] sched-migrate-disable.patch
+Subject: [PATCH 162/287] sched-migrate-disable.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -32,10 +32,10 @@
  # 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 6f10df5..712e991 100644
+index 34ebf9e..3e8b05e 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1259,6 +1259,7 @@ struct task_struct {
+@@ -1263,6 +1263,7 @@ struct task_struct {
  #endif
  
  	unsigned int policy;
@@ -43,7 +43,7 @@
  	cpumask_t cpus_allowed;
  
  #ifdef CONFIG_PREEMPT_RCU
-@@ -1598,9 +1599,6 @@ struct task_struct {
+@@ -1602,9 +1603,6 @@ struct task_struct {
  #endif
  };
  
@@ -53,7 +53,7 @@
  #ifdef CONFIG_PREEMPT_RT_FULL
  static inline bool cur_pf_disabled(void) { return current->pagefault_disabled; }
  #else
-@@ -2683,6 +2681,15 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu)
+@@ -2695,6 +2693,15 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu)
  
  #endif /* CONFIG_SMP */
  
@@ -82,10 +82,10 @@
   * Generic and arch helpers
   */
 diff --git a/kernel/sched.c b/kernel/sched.c
-index f22e4fd..bb4ed390 100644
+index 92b84a7..71b1015 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -6223,11 +6223,12 @@ static inline void sched_init_granularity(void)
+@@ -6416,11 +6416,12 @@ static inline void sched_init_granularity(void)
  #ifdef CONFIG_SMP
  void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
  {
@@ -102,7 +102,7 @@
  }
  
  /*
-@@ -6278,7 +6279,7 @@ int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask)
+@@ -6471,7 +6472,7 @@ int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask)
  	do_set_cpus_allowed(p, new_mask);
  
  	/* Can the task run on the task's current CPU? If so, we're done */
@@ -111,7 +111,7 @@
  		goto out;
  
  	dest_cpu = cpumask_any_and(cpu_active_mask, new_mask);
-@@ -6297,6 +6298,83 @@ out:
+@@ -6490,6 +6491,83 @@ out:
  }
  EXPORT_SYMBOL_GPL(set_cpus_allowed_ptr);
  
@@ -212,6 +212,3 @@
  	print_symbol("caller is %s\n", (long)__builtin_return_address(0));
  	dump_stack();
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0163-hotplug-use-migrate-disable.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0163-hotplug-use-migrate-disable.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0163-hotplug-use-migrate-disable.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 0b101ab3dc639790c4afcc568b933c2082d54c29 Mon Sep 17 00:00:00 2001
+From cb63314c225f67796685575f53742e448f660355 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 19:35:29 +0200
-Subject: [PATCH 163/282] hotplug-use-migrate-disable.patch
+Subject: [PATCH 163/287] hotplug-use-migrate-disable.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -37,6 +37,3 @@
  	cpu_hotplug_done();
  	if (!err)
  		cpu_notify_nofail(CPU_POST_DEAD | mod, hcpu);
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0164-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0164-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0164-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 0442c22dc4dfd046ce41eda7a8c348d142c4c5d9 Mon Sep 17 00:00:00 2001
+From a80880de94cd480a2903d014a3b9a50d2d83297a Mon Sep 17 00:00:00 2001
 From: Yong Zhang <yong.zhang0 at gmail.com>
 Date: Sun, 16 Oct 2011 18:56:44 +0800
-Subject: [PATCH 164/282] hotplug: Call cpu_unplug_begin() before DOWN_PREPARE
+Subject: [PATCH 164/287] hotplug: Call cpu_unplug_begin() before DOWN_PREPARE
 
 cpu_unplug_begin() should be called before CPU_DOWN_PREPARE, because
 at CPU_DOWN_PREPARE cpu_active is cleared and sched_domain is
@@ -60,6 +60,3 @@
  	}
  
  	err = __stop_machine(take_cpu_down, &tcd_param, cpumask_of(cpu));
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0165-ftrace-migrate-disable-tracing.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0165-ftrace-migrate-disable-tracing.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0165-ftrace-migrate-disable-tracing.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 526dfae1edc4f3553dfd772c4ad3b28abf7ff2b6 Mon Sep 17 00:00:00 2001
+From bc24519b67217a80683c6ac7f4956f9b0aa7322e Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 21:56:42 +0200
-Subject: [PATCH 165/282] ftrace-migrate-disable-tracing.patch
+Subject: [PATCH 165/287] ftrace-migrate-disable-tracing.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -80,6 +80,3 @@
  	return ret;
  }
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0166-tracing-Show-padding-as-unsigned-short.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0166-tracing-Show-padding-as-unsigned-short.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0166-tracing-Show-padding-as-unsigned-short.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 8ad66c814c87ab75d0a11e2af2ce9538e3504d5b Mon Sep 17 00:00:00 2001
+From 5e5ef16fe1514448ef1462bfea9063b6e4050f61 Mon Sep 17 00:00:00 2001
 From: Steven Rostedt <rostedt at goodmis.org>
 Date: Wed, 16 Nov 2011 13:19:35 -0500
-Subject: [PATCH 166/282] tracing: Show padding as unsigned short
+Subject: [PATCH 166/287] tracing: Show padding as unsigned short
 
 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
@@ -45,6 +45,3 @@
  
  	return ret;
  }
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0167-migrate-disable-rt-variant.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0167-migrate-disable-rt-variant.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0167-migrate-disable-rt-variant.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c5eda07ea7ddefb0e710a1242815595c7b4aaf2b Mon Sep 17 00:00:00 2001
+From c793ef16ac0679eb411eb05d06ce23f54d073d1e Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 19:48:20 +0200
-Subject: [PATCH 167/282] migrate-disable-rt-variant.patch
+Subject: [PATCH 167/287] migrate-disable-rt-variant.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -28,6 +28,3 @@
  #endif
  
  #ifdef CONFIG_PREEMPT_NOTIFIERS
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0168-sched-Optimize-migrate_disable.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0168-sched-Optimize-migrate_disable.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0168-sched-Optimize-migrate_disable.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 823baa6584f84abe09f5539412c24931c96d45ea Mon Sep 17 00:00:00 2001
+From e35311fa29171d4be6826780a28937d727f06e1c Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Thu, 11 Aug 2011 15:03:35 +0200
-Subject: [PATCH 168/282] sched: Optimize migrate_disable
+Subject: [PATCH 168/287] sched: Optimize migrate_disable
 
 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.
@@ -13,10 +13,10 @@
  1 file changed, 20 insertions(+), 4 deletions(-)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index bb4ed390..32c1425 100644
+index 71b1015..a100bf4 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -6318,7 +6318,19 @@ void migrate_disable(void)
+@@ -6511,7 +6511,19 @@ void migrate_disable(void)
  		preempt_enable();
  		return;
  	}
@@ -37,7 +37,7 @@
  	p->migrate_disable = 1;
  	mask = tsk_cpus_allowed(p);
  
-@@ -6329,7 +6341,7 @@ void migrate_disable(void)
+@@ -6522,7 +6534,7 @@ void migrate_disable(void)
  			p->sched_class->set_cpus_allowed(p, mask);
  		p->rt.nr_cpus_allowed = cpumask_weight(mask);
  	}
@@ -46,7 +46,7 @@
  	preempt_enable();
  }
  EXPORT_SYMBOL_GPL(migrate_disable);
-@@ -6357,7 +6369,11 @@ void migrate_enable(void)
+@@ -6550,7 +6562,11 @@ void migrate_enable(void)
  		return;
  	}
  
@@ -59,7 +59,7 @@
  	p->migrate_disable = 0;
  	mask = tsk_cpus_allowed(p);
  
-@@ -6369,7 +6385,7 @@ void migrate_enable(void)
+@@ -6562,7 +6578,7 @@ void migrate_enable(void)
  		p->rt.nr_cpus_allowed = cpumask_weight(mask);
  	}
  
@@ -68,6 +68,3 @@
  	unpin_current_cpu();
  	preempt_enable();
  }
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0169-sched-Generic-migrate_disable.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0169-sched-Generic-migrate_disable.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0169-sched-Generic-migrate_disable.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From b9897fa4a932a8a1cdcf80787317724a7b3610a7 Mon Sep 17 00:00:00 2001
+From e27e0a0b7ad8db60d2c11364259df969de0e311e Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Thu, 11 Aug 2011 15:14:58 +0200
-Subject: [PATCH 169/282] sched: Generic migrate_disable
+Subject: [PATCH 169/287] sched: Generic migrate_disable
 
 Make migrate_disable() be a preempt_disable() for !rt kernels. This
 allows generic code to use it but still enforces that these code
@@ -65,10 +65,10 @@
  
  #ifdef CONFIG_PREEMPT_NOTIFIERS
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 712e991..32e9e3f 100644
+index 3e8b05e..b409b94 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1259,7 +1259,9 @@ struct task_struct {
+@@ -1263,7 +1263,9 @@ struct task_struct {
  #endif
  
  	unsigned int policy;
@@ -78,7 +78,7 @@
  	cpumask_t cpus_allowed;
  
  #ifdef CONFIG_PREEMPT_RCU
-@@ -2681,11 +2683,22 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu)
+@@ -2693,11 +2695,22 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu)
  
  #endif /* CONFIG_SMP */
  
@@ -122,10 +122,10 @@
  /*
   * Callback to arch code if there's nosmp or maxcpus=0 on the
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 32c1425..7d4b771 100644
+index a100bf4..8371ca2 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -6223,7 +6223,7 @@ static inline void sched_init_granularity(void)
+@@ -6416,7 +6416,7 @@ static inline void sched_init_granularity(void)
  #ifdef CONFIG_SMP
  void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
  {
@@ -134,7 +134,7 @@
  		if (p->sched_class && p->sched_class->set_cpus_allowed)
  			p->sched_class->set_cpus_allowed(p, new_mask);
  		p->rt.nr_cpus_allowed = cpumask_weight(new_mask);
-@@ -6279,7 +6279,7 @@ int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask)
+@@ -6472,7 +6472,7 @@ int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask)
  	do_set_cpus_allowed(p, new_mask);
  
  	/* Can the task run on the task's current CPU? If so, we're done */
@@ -143,7 +143,7 @@
  		goto out;
  
  	dest_cpu = cpumask_any_and(cpu_active_mask, new_mask);
-@@ -6298,6 +6298,7 @@ out:
+@@ -6491,6 +6491,7 @@ out:
  }
  EXPORT_SYMBOL_GPL(set_cpus_allowed_ptr);
  
@@ -151,7 +151,7 @@
  void migrate_disable(void)
  {
  	struct task_struct *p = current;
-@@ -6390,6 +6391,7 @@ void migrate_enable(void)
+@@ -6583,6 +6584,7 @@ void migrate_enable(void)
  	preempt_enable();
  }
  EXPORT_SYMBOL_GPL(migrate_enable);
@@ -185,6 +185,3 @@
  	print_symbol("caller is %s\n", (long)__builtin_return_address(0));
  	dump_stack();
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0170-sched-rt-Fix-migrate_enable-thinko.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0170-sched-rt-Fix-migrate_enable-thinko.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0170-sched-rt-Fix-migrate_enable-thinko.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From bb45e2678bff052bea335c154679ed104edf41f5 Mon Sep 17 00:00:00 2001
+From eab4c73b62d5388bce4b2e9ef1e04cb511838cbb Mon Sep 17 00:00:00 2001
 From: Mike Galbraith <efault at gmx.de>
 Date: Tue, 23 Aug 2011 16:12:43 +0200
-Subject: [PATCH 170/282] sched, rt: Fix migrate_enable() thinko
+Subject: [PATCH 170/287] sched, rt: Fix migrate_enable() thinko
 
 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.
@@ -21,10 +21,10 @@
  2 files changed, 10 insertions(+), 1 deletion(-)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 7d4b771..9a06463 100644
+index 8371ca2..ffca20a 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -6375,12 +6375,14 @@ void migrate_enable(void)
+@@ -6568,12 +6568,14 @@ void migrate_enable(void)
  	 */
  	rq = this_rq();
  	raw_spin_lock_irqsave(&rq->lock, flags);
@@ -65,6 +65,3 @@
  #undef PN
  #undef __PN
  #undef P
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0171-sched-teach-migrate_disable-about-atomic-contexts.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0171-sched-teach-migrate_disable-about-atomic-contexts.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0171-sched-teach-migrate_disable-about-atomic-contexts.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 42932c13a03b216ff0cb8c1abb98918afd65f443 Mon Sep 17 00:00:00 2001
+From 57bf2a682e1afa77a8c73f84f932383a88701af0 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Fri, 2 Sep 2011 14:29:27 +0200
-Subject: [PATCH 171/282] sched: teach migrate_disable about atomic contexts
+Subject: [PATCH 171/287] sched: teach migrate_disable about atomic contexts
 
  <NMI>  [<ffffffff812dafd8>] spin_bug+0x94/0xa8
  [<ffffffff812db07f>] do_raw_spin_lock+0x43/0xea
@@ -35,10 +35,10 @@
  2 files changed, 24 insertions(+)
 
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 32e9e3f..af6cb0c 100644
+index b409b94..43cdbef 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1261,6 +1261,9 @@ struct task_struct {
+@@ -1265,6 +1265,9 @@ struct task_struct {
  	unsigned int policy;
  #ifdef CONFIG_PREEMPT_RT_FULL
  	int migrate_disable;
@@ -49,10 +49,10 @@
  	cpumask_t cpus_allowed;
  
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 9a06463..b0ce219 100644
+index ffca20a..0589959 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -6306,6 +6306,17 @@ void migrate_disable(void)
+@@ -6499,6 +6499,17 @@ void migrate_disable(void)
  	unsigned long flags;
  	struct rq *rq;
  
@@ -70,7 +70,7 @@
  	preempt_disable();
  	if (p->migrate_disable) {
  		p->migrate_disable++;
-@@ -6354,6 +6365,16 @@ void migrate_enable(void)
+@@ -6547,6 +6558,16 @@ void migrate_enable(void)
  	unsigned long flags;
  	struct rq *rq;
  
@@ -87,6 +87,3 @@
  	WARN_ON_ONCE(p->migrate_disable <= 0);
  
  	preempt_disable();
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0172-sched-Postpone-actual-migration-disalbe-to-schedule.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0172-sched-Postpone-actual-migration-disalbe-to-schedule.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0172-sched-Postpone-actual-migration-disalbe-to-schedule.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1beb899f7c901bbbb5e98b24a3efac77c583dc29 Mon Sep 17 00:00:00 2001
+From 4bd8f9441a6c6b89dcb179ccfb14668c18fed294 Mon Sep 17 00:00:00 2001
 From: Steven Rostedt <rostedt at goodmis.org>
 Date: Tue, 27 Sep 2011 08:40:23 -0400
-Subject: [PATCH 172/282] sched: Postpone actual migration disalbe to schedule
+Subject: [PATCH 172/287] sched: Postpone actual migration disalbe to schedule
 
 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.
@@ -23,10 +23,10 @@
  1 file changed, 132 insertions(+), 119 deletions(-)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index b0ce219..6386168 100644
+index 0589959..27d114a 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -4356,6 +4356,135 @@ static inline void schedule_debug(struct task_struct *prev)
+@@ -4549,6 +4549,135 @@ static inline void schedule_debug(struct task_struct *prev)
  	schedstat_inc(this_rq(), sched_count);
  }
  
@@ -162,7 +162,7 @@
  static void put_prev_task(struct rq *rq, struct task_struct *prev)
  {
  	if (prev->on_rq || rq->skip_clock_update < 0)
-@@ -4415,6 +4544,8 @@ need_resched:
+@@ -4608,6 +4737,8 @@ need_resched:
  
  	raw_spin_lock_irq(&rq->lock);
  
@@ -171,7 +171,7 @@
  	switch_count = &prev->nivcsw;
  	if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {
  		if (unlikely(signal_pending_state(prev->state, prev))) {
-@@ -6223,7 +6354,7 @@ static inline void sched_init_granularity(void)
+@@ -6416,7 +6547,7 @@ static inline void sched_init_granularity(void)
  #ifdef CONFIG_SMP
  void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
  {
@@ -180,7 +180,7 @@
  		if (p->sched_class && p->sched_class->set_cpus_allowed)
  			p->sched_class->set_cpus_allowed(p, new_mask);
  		p->rt.nr_cpus_allowed = cpumask_weight(new_mask);
-@@ -6298,124 +6429,6 @@ out:
+@@ -6491,124 +6622,6 @@ out:
  }
  EXPORT_SYMBOL_GPL(set_cpus_allowed_ptr);
  
@@ -305,6 +305,3 @@
  /*
   * Move (not current) task off this cpu, onto dest cpu. We're doing
   * this because either it can't run here any more (set_cpus_allowed()
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0173-sched-Do-not-compare-cpu-masks-in-scheduler.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0173-sched-Do-not-compare-cpu-masks-in-scheduler.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0173-sched-Do-not-compare-cpu-masks-in-scheduler.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 3f0d67625aa862ff98f2707d9f3ad5bf303c9a0c Mon Sep 17 00:00:00 2001
+From ec7ee1f282e5e975f7344c924c974984b1260420 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Tue, 27 Sep 2011 08:40:24 -0400
-Subject: [PATCH 173/282] sched: Do not compare cpu masks in scheduler
+Subject: [PATCH 173/287] sched: Do not compare cpu masks in scheduler
 
 Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Cc: Peter Zijlstra <peterz at infradead.org>
@@ -13,10 +13,10 @@
  1 file changed, 5 insertions(+), 9 deletions(-)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 6386168..bf72394 100644
+index 27d114a..08189cd 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -4384,16 +4384,12 @@ static inline void update_migrate_disable(struct task_struct *p)
+@@ -4577,16 +4577,12 @@ static inline void update_migrate_disable(struct task_struct *p)
  	 */
  	mask = tsk_cpus_allowed(p);
  
@@ -38,6 +38,3 @@
  }
  
  void migrate_disable(void)
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0174-sched-Have-migrate_disable-ignore-bounded-threads.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0174-sched-Have-migrate_disable-ignore-bounded-threads.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0174-sched-Have-migrate_disable-ignore-bounded-threads.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From e50a066c8707c5f08836d6de6bccefc8efc951c2 Mon Sep 17 00:00:00 2001
+From 07c7dbd8bf9ba8fe71f06d88ff0d9879e7445bef Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Tue, 27 Sep 2011 08:40:25 -0400
-Subject: [PATCH 174/282] sched: Have migrate_disable ignore bounded threads
+Subject: [PATCH 174/287] sched: Have migrate_disable ignore bounded threads
 
 Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Cc: Peter Zijlstra <peterz at infradead.org>
@@ -13,10 +13,10 @@
  1 file changed, 9 insertions(+), 14 deletions(-)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index bf72394..d96caa4 100644
+index 08189cd..24ebc15 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -4396,7 +4396,7 @@ void migrate_disable(void)
+@@ -4589,7 +4589,7 @@ void migrate_disable(void)
  {
  	struct task_struct *p = current;
  
@@ -25,7 +25,7 @@
  #ifdef CONFIG_SCHED_DEBUG
  		p->migrate_disable_atomic++;
  #endif
-@@ -4427,7 +4427,7 @@ void migrate_enable(void)
+@@ -4620,7 +4620,7 @@ void migrate_enable(void)
  	unsigned long flags;
  	struct rq *rq;
  
@@ -34,7 +34,7 @@
  #ifdef CONFIG_SCHED_DEBUG
  		p->migrate_disable_atomic--;
  #endif
-@@ -4448,26 +4448,21 @@ void migrate_enable(void)
+@@ -4641,26 +4641,21 @@ void migrate_enable(void)
  
  	if (unlikely(migrate_disabled_updated(p))) {
  		/*
@@ -68,6 +68,3 @@
  		raw_spin_unlock_irqrestore(&rq->lock, flags);
  	} else
  		p->migrate_disable = 0;
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0175-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0175-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0175-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 5779767e2a9a8fb4e140a391ae535db90aef85e8 Mon Sep 17 00:00:00 2001
+From 917db200a7c2029460f2bb82401a5cfbdde652e0 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 4 Nov 2011 20:48:36 +0100
-Subject: [PATCH 175/282] sched-clear-pf-thread-bound-on-fallback-rq.patch
+Subject: [PATCH 175/287] sched-clear-pf-thread-bound-on-fallback-rq.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -9,10 +9,10 @@
  1 file changed, 6 insertions(+), 1 deletion(-)
 
 diff --git a/kernel/sched.c b/kernel/sched.c
-index d96caa4..2f46cd1 100644
+index 24ebc15..ba3ddde 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -2570,7 +2570,12 @@ static int select_fallback_rq(int cpu, struct task_struct *p)
+@@ -2566,7 +2566,12 @@ static int select_fallback_rq(int cpu, struct task_struct *p)
  		printk(KERN_INFO "process %d (%s) no longer affine to cpu%d\n",
  				task_pid_nr(p), p->comm, cpu);
  	}
@@ -26,6 +26,3 @@
  	return dest_cpu;
  }
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0176-ftrace-crap.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0176-ftrace-crap.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0176-ftrace-crap.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 78c5ac2a4083b7373f6691155bf1afb106973679 Mon Sep 17 00:00:00 2001
+From d6d6d65aa1c168af697c9d4cdc8df856744a7dee Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 9 Sep 2011 16:55:53 +0200
-Subject: [PATCH 176/282] ftrace-crap.patch
+Subject: [PATCH 176/287] ftrace-crap.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -91,6 +91,3 @@
  void poll_wait_pipe(struct trace_iterator *iter);
  
  void ftrace(struct trace_array *tr,
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0177-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0177-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0177-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From f51015c7325c78de24da156edb4d1133e2a090b7 Mon Sep 17 00:00:00 2001
+From e2d13911363569693f8037411f7b7cfa8d285c8b Mon Sep 17 00:00:00 2001
 From: Steven Rostedt <rostedt at goodmis.org>
 Date: Tue, 27 Sep 2011 13:56:50 -0400
-Subject: [PATCH 177/282] ring-buffer: Convert reader_lock from raw_spin_lock
+Subject: [PATCH 177/287] ring-buffer: Convert reader_lock from raw_spin_lock
  into spin_lock
 
 The reader_lock is mostly taken in normal context with interrupts enabled.
@@ -432,6 +432,3 @@
  
   out:
  	return ret;
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0178-net-netif_rx_ni-migrate-disable.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0178-net-netif_rx_ni-migrate-disable.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0178-net-netif_rx_ni-migrate-disable.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 20ecad574f342f016655f7dc3be3ce1fbcad3bc0 Mon Sep 17 00:00:00 2001
+From 05cf8727a2d09a7ab04709aa94def22c19edb22d Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 16:29:27 +0200
-Subject: [PATCH 178/282] net-netif_rx_ni-migrate-disable.patch
+Subject: [PATCH 178/287] net-netif_rx_ni-migrate-disable.patch
 
 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 1297da7..2c63eea 100644
+index 7d52b8a..84a06b9 100644
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
 @@ -3028,11 +3028,11 @@ int netif_rx_ni(struct sk_buff *skb)
@@ -26,6 +26,3 @@
  
  	return err;
  }
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0179-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0179-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0179-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From bb2ee87ca30a6a1f768ec130fc3318fc65ab961f Mon Sep 17 00:00:00 2001
+From c79d96b8ef376a0b4bf0fae99b596720caa1154d Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 3 Jul 2009 13:16:38 -0500
-Subject: [PATCH 179/282] softirq: Sanitize softirq pending for NOHZ/RT
+Subject: [PATCH 179/287] softirq: Sanitize softirq pending for NOHZ/RT
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -96,7 +96,7 @@
   * we cannot loop indefinitely here to avoid userspace starvation,
   * but we also don't want to introduce a worst case 1/HZ latency
 diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
-index a2c2a64..a6b26d2 100644
+index 548d311..c901f33 100644
 --- a/kernel/time/tick-sched.c
 +++ b/kernel/time/tick-sched.c
 @@ -336,13 +336,7 @@ void tick_nohz_stop_sched_tick(int inidle)
@@ -114,6 +114,3 @@
  		goto end;
  	}
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0180-lockdep-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0180-lockdep-rt.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0180-lockdep-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From e9bded4a097ab9628e6e76d46987e96247c738c6 Mon Sep 17 00:00:00 2001
+From fda40ff770da51918c26b52ef28b3474da91ab82 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 18:51:23 +0200
-Subject: [PATCH 180/282] lockdep-rt.patch
+Subject: [PATCH 180/287] lockdep-rt.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -59,6 +59,3 @@
  
  	if (!debug_locks)
  		print_irqtrace_events(current);
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0181-mutex-no-spin-on-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0181-mutex-no-spin-on-rt.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0181-mutex-no-spin-on-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 040215c2ed4c41d82289e2aae9d92a3dbf31fa3c Mon Sep 17 00:00:00 2001
+From a4f220d622b359a503d8cad8362e90e5e9461ee8 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 21:51:45 +0200
-Subject: [PATCH 181/282] mutex-no-spin-on-rt.patch
+Subject: [PATCH 181/287] mutex-no-spin-on-rt.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -18,6 +18,3 @@
  config MUTEX_SPIN_ON_OWNER
 -	def_bool SMP && !DEBUG_MUTEXES
 +	def_bool SMP && !DEBUG_MUTEXES && !PREEMPT_RT_FULL
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0182-softirq-local-lock.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0182-softirq-local-lock.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0182-softirq-local-lock.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 3456c76d6c653d2ac47f38a3b946f418660a8a2a Mon Sep 17 00:00:00 2001
+From ac51599ddd8e6f4637191f8de18c5937fa98fd8c Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 28 Jun 2011 15:57:18 +0200
-Subject: [PATCH 182/282] softirq-local-lock.patch
+Subject: [PATCH 182/287] softirq-local-lock.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -87,10 +87,10 @@
   * Autoprobing for irqs:
   *
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index af6cb0c..a84a901 100644
+index 43cdbef..a867df1 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1601,6 +1601,7 @@ struct task_struct {
+@@ -1605,6 +1605,7 @@ struct task_struct {
  #endif
  #ifdef CONFIG_PREEMPT_RT_BASE
  	struct rcu_head put_rcu;
@@ -338,6 +338,3 @@
  }
  #endif
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0183-softirq-Export-in_serving_softirq.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0183-softirq-Export-in_serving_softirq.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0183-softirq-Export-in_serving_softirq.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From bd62f92c1dc92aa7ce0bb5f6bc74c7fd5db13972 Mon Sep 17 00:00:00 2001
+From b164b30b90a0eaed5448e5511b91f029d3d3c77e Mon Sep 17 00:00:00 2001
 From: John Kacur <jkacur at redhat.com>
 Date: Mon, 14 Nov 2011 02:44:43 +0100
-Subject: [PATCH 183/282] softirq: Export in_serving_softirq()
+Subject: [PATCH 183/287] softirq: Export in_serving_softirq()
 
 ERROR: "in_serving_softirq" [net/sched/cls_cgroup.ko] undefined!
 
@@ -28,6 +28,3 @@
  
  /*
   * Called with bh and local interrupts disabled. For full RT cpu must
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0184-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0184-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0184-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 0111f363c90caa87db86151f8931b46fb37e5d4d Mon Sep 17 00:00:00 2001
+From a8c2b9fe58a070f805c9ba6b9150b04777483681 Mon Sep 17 00:00:00 2001
 From: Yong Zhang <yong.zhang0 at gmail.com>
 Date: Thu, 13 Oct 2011 17:19:09 +0800
-Subject: [PATCH 184/282] hardirq.h: Define softirq_count() as OUL to kill
+Subject: [PATCH 184/287] hardirq.h: Define softirq_count() as OUL to kill
  build warning
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -40,6 +40,3 @@
  extern int in_serving_softirq(void);
  #endif
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0185-softirq-Fix-unplug-deadlock.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0185-softirq-Fix-unplug-deadlock.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0185-softirq-Fix-unplug-deadlock.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c586610b67873ab0235240fdc3dc722fd6f7d430 Mon Sep 17 00:00:00 2001
+From 96e251258b6cc3f6f5668c4d5ea8e52c2f94008c Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Fri, 30 Sep 2011 15:52:14 +0200
-Subject: [PATCH 185/282] softirq: Fix unplug deadlock
+Subject: [PATCH 185/287] softirq: Fix unplug deadlock
 
 If ksoftirqd gets woken during hot-unplug, __thread_do_softirq() will
 call pin_current_cpu() which will block on the held cpu_hotplug.lock.
@@ -63,6 +63,3 @@
  		static const struct sched_param param = {
  			.sched_priority = MAX_RT_PRIO-1
  		};
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0186-softirq-disable-softirq-stacks-for-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0186-softirq-disable-softirq-stacks-for-rt.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0186-softirq-disable-softirq-stacks-for-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 74cbfef4724589f06d7fe41594359fa8626cf141 Mon Sep 17 00:00:00 2001
+From d080514eb0c4ab0b1a211e2f59564170ec094e35 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 18 Jul 2011 13:59:17 +0200
-Subject: [PATCH 186/282] softirq-disable-softirq-stacks-for-rt.patch
+Subject: [PATCH 186/287] softirq-disable-softirq-stacks-for-rt.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -191,6 +191,3 @@
  static inline void thread_do_softirq(void) { do_softirq(); }
  #else
  extern void thread_do_softirq(void);
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0187-softirq-make-fifo.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0187-softirq-make-fifo.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0187-softirq-make-fifo.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From c2d7799fc86a7e99c5b126829400339ab6bd54f9 Mon Sep 17 00:00:00 2001
+From d8f523423f049f80382301baad7a53572f4c379c Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 21 Jul 2011 21:06:43 +0200
-Subject: [PATCH 187/282] softirq-make-fifo.patch
+Subject: [PATCH 187/287] softirq-make-fifo.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -59,6 +59,3 @@
  	/* Wait for kthread_stop */
  	set_current_state(TASK_INTERRUPTIBLE);
  	while (!kthread_should_stop()) {
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0188-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0188-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0188-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 71669ee7a2c0fb9ab0f3e1bce477081299bcd4a7 Mon Sep 17 00:00:00 2001
+From 56c08abd6575b3618e44af858a9f984292643860 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Tue, 29 Nov 2011 20:18:22 -0500
-Subject: [PATCH 188/282] tasklet: Prevent tasklets from going into infinite
+Subject: [PATCH 188/287] tasklet: Prevent tasklets from going into infinite
  spin in RT
 
 When CONFIG_PREEMPT_RT_FULL is enabled, tasklets run as threads,
@@ -405,6 +405,3 @@
  static int run_ksoftirqd(void * __bind_cpu)
  {
  	ksoftirqd_set_sched_params();
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0189-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0189-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0189-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d6e00c8f6c3f5dbd495639d7eeae0fc53f533a46 Mon Sep 17 00:00:00 2001
+From c14b0aa840c402c7e02359477030c010684d549e Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 31 Jan 2012 13:01:27 +0100
-Subject: [PATCH 189/282] genirq: Allow disabling of softirq processing in irq
+Subject: [PATCH 189/287] genirq: Allow disabling of softirq processing in irq
  thread context
 
 The processing of softirqs in irq thread context is a performance gain
@@ -154,6 +154,3 @@
  /* For tracing */
  int notrace __in_softirq(void)
  {
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0190-local-vars-migrate-disable.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0190-local-vars-migrate-disable.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0190-local-vars-migrate-disable.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 6c3bea2ba959095693ed2f2eaacc8a31ab161efa Mon Sep 17 00:00:00 2001
+From 06959d5c6c68f1f71fcbc275ccb34dd8e4df6cae Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 28 Jun 2011 20:42:16 +0200
-Subject: [PATCH 190/282] local-vars-migrate-disable.patch
+Subject: [PATCH 190/287] local-vars-migrate-disable.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -47,6 +47,3 @@
  
  /* minimum unit size, also is the maximum supported allocation size */
  #define PCPU_MIN_UNIT_SIZE		PFN_ALIGN(32 << 10)
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0191-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0191-md-raid5-Make-raid5_percpu-handling-RT-aware.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0191-md-raid5-Make-raid5_percpu-handling-RT-aware.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From b796b63ee31658ee6e305585ed91da5cce80a9cb Mon Sep 17 00:00:00 2001
+From 4e3e80b4ea569e02ab0c2bba75c6d9a243e0d6e7 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 6 Apr 2010 16:51:31 +0200
-Subject: [PATCH 191/282] md: raid5: Make raid5_percpu handling RT aware
+Subject: [PATCH 191/287] md: raid5: Make raid5_percpu handling RT aware
 
 __raid_run_ops() disables preemption with get_cpu() around the access
 to the raid5_percpu variables. That causes scheduling while atomic
@@ -19,10 +19,10 @@
  2 files changed, 6 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index 6ba4954..8cb7613 100644
+index 26ef63a..17f5c52 100644
 --- a/drivers/md/raid5.c
 +++ b/drivers/md/raid5.c
-@@ -1251,8 +1251,9 @@ static void __raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
+@@ -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++;
-@@ -1304,7 +1305,8 @@ static void __raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
+@@ -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,7 +43,7 @@
  }
  
  #ifdef CONFIG_MULTICORE_RAID456
-@@ -4547,6 +4549,7 @@ static int raid5_alloc_percpu(struct r5conf *conf)
+@@ -4549,6 +4551,7 @@ static int raid5_alloc_percpu(struct r5conf *conf)
  			break;
  		}
  		per_cpu_ptr(conf->percpu, cpu)->scribble = scribble;
@@ -63,6 +63,3 @@
  		struct page	*spare_page; /* Used when checking P/Q in raid6 */
  		void		*scribble;   /* space for constructing buffer
  					      * lists and performing address
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0192-rtmutex-lock-killable.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0192-rtmutex-lock-killable.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0192-rtmutex-lock-killable.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 68475131b08f80b0689d7111b206ae97b0dfdfc3 Mon Sep 17 00:00:00 2001
+From ff3f1e8a96dafbb51f40e5a4ad99b4d44eadb407 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 9 Jun 2011 11:43:52 +0200
-Subject: [PATCH 192/282] rtmutex-lock-killable.patch
+Subject: [PATCH 192/287] rtmutex-lock-killable.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -83,6 +83,3 @@
   * -ETIMEDOUT	when the timeout expired
   * -EDEADLK	when the lock would deadlock (when deadlock detection is on)
   */
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0193-rtmutex-futex-prepare-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0193-rtmutex-futex-prepare-rt.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0193-rtmutex-futex-prepare-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From b58278dc6ee1cf59a92c5ea5dcbc10516c257a53 Mon Sep 17 00:00:00 2001
+From 16d7f244d2cf5f872b5962f633b11fd3fcfc6fa7 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 10 Jun 2011 11:04:15 +0200
-Subject: [PATCH 193/282] rtmutex-futex-prepare-rt.patch
+Subject: [PATCH 193/287] rtmutex-futex-prepare-rt.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -11,7 +11,7 @@
  3 files changed, 91 insertions(+), 19 deletions(-)
 
 diff --git a/kernel/futex.c b/kernel/futex.c
-index 866c9d5..840fcea 100644
+index 80fb1c6..cecabcf 100644
 --- a/kernel/futex.c
 +++ b/kernel/futex.c
 @@ -1423,6 +1423,16 @@ retry_private:
@@ -40,7 +40,7 @@
  	union futex_key key2 = FUTEX_KEY_INIT;
  	struct futex_q q = futex_q_init;
  	int res, ret;
-@@ -2311,20 +2321,55 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+@@ -2314,20 +2324,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) {
-@@ -2333,9 +2378,10 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+@@ -2336,9 +2381,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 {
  		/*
-@@ -2348,7 +2394,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+@@ -2351,7 +2397,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);
  
@@ -220,6 +220,3 @@
  extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock);
  extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
  				       struct task_struct *proxy_owner);
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0194-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0194-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0194-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From be955a163a4eded51a096906573ff37ea4e1cb57 Mon Sep 17 00:00:00 2001
+From 3ad64b4fba630929a6d6bd555089d2eded32956b Mon Sep 17 00:00:00 2001
 From: Steven Rostedt <rostedt at goodmis.org>
 Date: Tue, 10 Apr 2012 14:34:13 -0400
-Subject: [PATCH 194/282] futex: Fix bug on when a requeued RT task times out
+Subject: [PATCH 194/287] futex: Fix bug on when a requeued RT task times out
 
 Requeue with timeout causes a bug with PREEMPT_RT_FULL.
 
@@ -114,6 +114,3 @@
  
  extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock);
  extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0195-rt-mutex-add-sleeping-spinlocks-support.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0195-rt-mutex-add-sleeping-spinlocks-support.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0195-rt-mutex-add-sleeping-spinlocks-support.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From fd5044b470027b0f6e5e31251a5deb8a1455f0b8 Mon Sep 17 00:00:00 2001
+From 002d7e5e938c05c055d6a85ee769fbeb419ab969 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 10 Jun 2011 11:21:25 +0200
-Subject: [PATCH 195/282] rt-mutex-add-sleeping-spinlocks-support.patch
+Subject: [PATCH 195/287] rt-mutex-add-sleeping-spinlocks-support.patch
 
 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 840fcea..2771a63 100644
+index cecabcf..32dce7c 100644
 --- a/kernel/futex.c
 +++ b/kernel/futex.c
-@@ -2299,8 +2299,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
+@@ -2302,8 +2302,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.
  	 */
@@ -620,6 +620,3 @@
 +}
 +
  #endif
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0196-spinlock-types-separate-raw.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0196-spinlock-types-separate-raw.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0196-spinlock-types-separate-raw.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 79b0e2d53b88a4dd8460171494475005996e1489 Mon Sep 17 00:00:00 2001
+From cbe9421ca44051d08c1f0aa41854f539656606b7 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 29 Jun 2011 19:34:01 +0200
-Subject: [PATCH 196/282] spinlock-types-separate-raw.patch
+Subject: [PATCH 196/287] spinlock-types-separate-raw.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -215,6 +215,3 @@
 +#define DEFINE_RAW_SPINLOCK(x)	raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x)
 +
 +#endif
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0197-rtmutex-avoid-include-hell.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0197-rtmutex-avoid-include-hell.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0197-rtmutex-avoid-include-hell.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 736ec78653ac0582af280b09792f680c1558d3f8 Mon Sep 17 00:00:00 2001
+From 500dd370355818b07a8f36c36cfe351ef3dc4abe Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 29 Jun 2011 20:06:39 +0200
-Subject: [PATCH 197/282] rtmutex-avoid-include-hell.patch
+Subject: [PATCH 197/287] rtmutex-avoid-include-hell.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -21,6 +21,3 @@
  
  extern int max_lock_depth; /* for sysctl */
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0198-rt-add-rt-spinlocks.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0198-rt-add-rt-spinlocks.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0198-rt-add-rt-spinlocks.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From e7fefc493d72d19fa255aa54adcfdeced993d686 Mon Sep 17 00:00:00 2001
+From b597856e985f6b7b80dbfe6cfbed5e8476eb79b6 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 29 Jun 2011 19:43:35 +0200
-Subject: [PATCH 198/282] rt-add-rt-spinlocks.patch
+Subject: [PATCH 198/287] rt-add-rt-spinlocks.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -127,6 +127,3 @@
 +	spinlock_t name __cacheline_aligned_in_smp = __SPIN_LOCK_UNLOCKED(name)
 +
 +#endif
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0199-rt-add-rt-to-mutex-headers.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0199-rt-add-rt-to-mutex-headers.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0199-rt-add-rt-to-mutex-headers.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 02174bd317bddbffaf86ebe9a748cf62d8585c5e Mon Sep 17 00:00:00 2001
+From 01b5f90910141c471d6925dfc717832652c70cad Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 29 Jun 2011 20:56:22 +0200
-Subject: [PATCH 199/282] rt-add-rt-to-mutex-headers.patch
+Subject: [PATCH 199/287] rt-add-rt-to-mutex-headers.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -146,6 +146,3 @@
 +} while (0)
 +
 +#endif
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0200-rwsem-add-rt-variant.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0200-rwsem-add-rt-variant.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0200-rwsem-add-rt-variant.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From e6bc2511b85527debac77a3027e656994e5a7d78 Mon Sep 17 00:00:00 2001
+From a4eede34b4f1db80698aa81664b35356cfc2c0da Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 29 Jun 2011 21:02:53 +0200
-Subject: [PATCH 200/282] rwsem-add-rt-variant.patch
+Subject: [PATCH 200/287] rwsem-add-rt-variant.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -160,6 +160,3 @@
  
  CFLAGS_hweight.o = $(subst $(quote),,$(CONFIG_ARCH_HWEIGHT_CFLAGS))
  obj-$(CONFIG_GENERIC_HWEIGHT) += hweight.o
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0201-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0201-rt-Add-the-preempt-rt-lock-replacement-APIs.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0201-rt-Add-the-preempt-rt-lock-replacement-APIs.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 1c392b437459aca9796dda8e02e666e5d73546a6 Mon Sep 17 00:00:00 2001
+From b86bfc0d327314da40f7f2031008b4f5e94fe628 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 26 Jul 2009 19:39:56 +0200
-Subject: [PATCH 201/282] rt: Add the preempt-rt lock replacement APIs
+Subject: [PATCH 201/287] rt: Add the preempt-rt lock replacement APIs
 
 Map spinlocks, rwlocks, rw_semaphores and semaphores to the rt_mutex
 based locking functions for preempt-rt.
@@ -912,6 +912,3 @@
  }
 +
 +#endif
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0202-rwlocks-Fix-section-mismatch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0202-rwlocks-Fix-section-mismatch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0202-rwlocks-Fix-section-mismatch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 34a021b7c39ce7d57a1e44f948f286dec6dde2fb Mon Sep 17 00:00:00 2001
+From 361d04238c72fd34baac506b4f2ae4e955e8b3f1 Mon Sep 17 00:00:00 2001
 From: John Kacur <jkacur at redhat.com>
 Date: Mon, 19 Sep 2011 11:09:27 +0200
-Subject: [PATCH 202/282] rwlocks: Fix section mismatch
+Subject: [PATCH 202/287] rwlocks: Fix section mismatch
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -51,7 +51,7 @@
  
  #endif /* __LINUX_RWLOCK_TYPES_H */
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 8aeb811..fbc352e 100644
+index 2a4a32b..99302f7 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
 @@ -88,7 +88,7 @@ int max_threads;		/* tunable limit on nr_threads */
@@ -63,6 +63,3 @@
  
  #ifdef CONFIG_PROVE_RCU
  int lockdep_tasklist_lock_is_held(void)
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0203-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0203-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0203-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 7e9f0a139f25c7ea7b918510a9d727665d36e3a5 Mon Sep 17 00:00:00 2001
+From b80424142a98a1e6d1aaf6944005284bfbc5d032 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 22:08:38 +0200
-Subject: [PATCH 203/282] timer-handle-idle-trylock-in-get-next-timer-irq.patch
+Subject: [PATCH 203/287] timer-handle-idle-trylock-in-get-next-timer-irq.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -76,6 +76,3 @@
  	} else {
  		expires = now + 1;
  	}
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0204-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0204-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0204-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 980ab6bba74ed5473d229a1defd6ac98639da62b Mon Sep 17 00:00:00 2001
+From 6ab302a5bac26b66dc812ca28fa511ff3bcfbcbf Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:30 -0500
-Subject: [PATCH 204/282] RCU: Force PREEMPT_RCU for PREEMPT-RT
+Subject: [PATCH 204/287] RCU: Force PREEMPT_RCU for PREEMPT-RT
 
 PREEMPT_RT relies on PREEMPT_RCU - only allow RCU to be configured
 interactively in the !PREEMPT_RT case.
@@ -27,6 +27,3 @@
  	default n
  	help
  	  This feature lets you explicitly allocate real CPU bandwidth
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0205-rcu-Frob-softirq-test.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0205-rcu-Frob-softirq-test.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0205-rcu-Frob-softirq-test.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 3fab42d31ad6212337670d6208fafc11d5e8518e Mon Sep 17 00:00:00 2001
+From 10aa3e83bfd94f04e86c8c27fedb7d83028c61c9 Mon Sep 17 00:00:00 2001
 From: Peter Zijlstra <a.p.zijlstra at chello.nl>
 Date: Sat, 13 Aug 2011 00:23:17 +0200
-Subject: [PATCH 205/282] rcu: Frob softirq test
+Subject: [PATCH 205/287] rcu: Frob softirq test
 
 With RT_FULL we get the below wreckage:
 
@@ -167,6 +167,3 @@
  		local_irq_restore(flags);
  		return;
  	}
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0206-rcu-Merge-RCU-bh-into-RCU-preempt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0206-rcu-Merge-RCU-bh-into-RCU-preempt.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0206-rcu-Merge-RCU-bh-into-RCU-preempt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d4e671c17a1c0c45947409718f37fe44fdf15c96 Mon Sep 17 00:00:00 2001
+From fef59844fd4790e690fd49e11d6962ed14ff8c4a Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 5 Oct 2011 11:59:38 -0700
-Subject: [PATCH 206/282] rcu: Merge RCU-bh into RCU-preempt
+Subject: [PATCH 206/287] rcu: Merge RCU-bh into RCU-preempt
 
 The Linux kernel has long RCU-bh read-side critical sections that
 intolerably increase scheduling latency under mainline's RCU-bh rules,
@@ -176,7 +176,7 @@
  #endif /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
  
 diff --git a/kernel/rcutree.c b/kernel/rcutree.c
-index 8ef8675..3afb0fd 100644
+index d5eb74a..0b59c81 100644
 --- a/kernel/rcutree.c
 +++ b/kernel/rcutree.c
 @@ -170,6 +170,7 @@ void rcu_sched_qs(int cpu)
@@ -211,7 +211,7 @@
  
  /*
   * Record the number of times rcutorture tests have been initiated and
-@@ -1667,6 +1671,7 @@ void call_rcu_sched(struct rcu_head *head, void (*func)(struct rcu_head *rcu))
+@@ -1669,6 +1673,7 @@ void call_rcu_sched(struct rcu_head *head, void (*func)(struct rcu_head *rcu))
  }
  EXPORT_SYMBOL_GPL(call_rcu_sched);
  
@@ -219,7 +219,7 @@
  /*
   * Queue an RCU for invocation after a quicker grace period.
   */
-@@ -1675,6 +1680,7 @@ void call_rcu_bh(struct rcu_head *head, void (*func)(struct rcu_head *rcu))
+@@ -1677,6 +1682,7 @@ void call_rcu_bh(struct rcu_head *head, void (*func)(struct rcu_head *rcu))
  	__call_rcu(head, func, &rcu_bh_state);
  }
  EXPORT_SYMBOL_GPL(call_rcu_bh);
@@ -227,7 +227,7 @@
  
  /**
   * synchronize_sched - wait until an rcu-sched grace period has elapsed.
-@@ -1707,6 +1713,7 @@ void synchronize_sched(void)
+@@ -1709,6 +1715,7 @@ void synchronize_sched(void)
  }
  EXPORT_SYMBOL_GPL(synchronize_sched);
  
@@ -235,7 +235,7 @@
  /**
   * synchronize_rcu_bh - wait until an rcu_bh grace period has elapsed.
   *
-@@ -1723,6 +1730,7 @@ void synchronize_rcu_bh(void)
+@@ -1725,6 +1732,7 @@ void synchronize_rcu_bh(void)
  	wait_rcu_gp(call_rcu_bh);
  }
  EXPORT_SYMBOL_GPL(synchronize_rcu_bh);
@@ -243,7 +243,7 @@
  
  /*
   * Check to see if there is any immediate RCU-related work to be done
-@@ -1877,6 +1885,7 @@ static void _rcu_barrier(struct rcu_state *rsp,
+@@ -1879,6 +1887,7 @@ static void _rcu_barrier(struct rcu_state *rsp,
  	mutex_unlock(&rcu_barrier_mutex);
  }
  
@@ -251,7 +251,7 @@
  /**
   * rcu_barrier_bh - Wait until all in-flight call_rcu_bh() callbacks complete.
   */
-@@ -1885,6 +1894,7 @@ void rcu_barrier_bh(void)
+@@ -1887,6 +1896,7 @@ void rcu_barrier_bh(void)
  	_rcu_barrier(&rcu_bh_state, call_rcu_bh);
  }
  EXPORT_SYMBOL_GPL(rcu_barrier_bh);
@@ -259,6 +259,3 @@
  
  /**
   * rcu_barrier_sched - Wait for in-flight call_rcu_sched() callbacks.
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0207-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0207-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0207-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From aebde36f21d3f0bd04d6a44bd088222f9900bc1d Mon Sep 17 00:00:00 2001
+From c0ab15cb7e728773506e7909242eef870b4553ee Mon Sep 17 00:00:00 2001
 From: John Kacur <jkacur at redhat.com>
 Date: Mon, 14 Nov 2011 02:44:42 +0100
-Subject: [PATCH 207/282] rcu: Fix macro substitution for synchronize_rcu_bh()
+Subject: [PATCH 207/287] rcu: Fix macro substitution for synchronize_rcu_bh()
  on RT
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -38,6 +38,3 @@
  #endif
  extern void synchronize_sched_expedited(void);
  extern void synchronize_rcu_expedited(void);
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0208-rcu-more-fallout.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0208-rcu-more-fallout.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0208-rcu-more-fallout.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From fcb2be03b1bf2b2e7d94f1744920e36e8a503cd1 Mon Sep 17 00:00:00 2001
+From 7d788cfb365cd934bc745b1658f27d176d2b773d Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 14 Nov 2011 10:57:54 +0100
-Subject: [PATCH 208/282] rcu-more-fallout.patch
+Subject: [PATCH 208/287] rcu-more-fallout.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -25,6 +25,3 @@
  }
  EXPORT_SYMBOL_GPL(call_rcu_bh);
 +#endif
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0209-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0209-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0209-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 01cf509ce91e102a8a559d1915c3cfb65ba0f6ea Mon Sep 17 00:00:00 2001
+From 9b33e17848bbcd210e7353218137c44f962e91cf Mon Sep 17 00:00:00 2001
 From: "Paul E. McKenney" <paulmck at linux.vnet.ibm.com>
 Date: Wed, 5 Oct 2011 11:45:18 -0700
-Subject: [PATCH 209/282] rcu: Make ksoftirqd do RCU quiescent states
+Subject: [PATCH 209/287] rcu: Make ksoftirqd do RCU quiescent states
 
 Implementing RCU-bh in terms of RCU-preempt makes the system vulnerable
 to network-based denial-of-service attacks.  This patch therefore
@@ -49,7 +49,7 @@
  struct notifier_block;
  
 diff --git a/kernel/rcutree.c b/kernel/rcutree.c
-index 3afb0fd..3118218 100644
+index 0b59c81..c1485ce 100644
 --- a/kernel/rcutree.c
 +++ b/kernel/rcutree.c
 @@ -170,7 +170,12 @@ void rcu_sched_qs(int cpu)
@@ -164,6 +164,3 @@
  	local_unlock(local_softirq_lock);
  	unpin_current_cpu();
  	preempt_disable();
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0210-rt-rcutree-Move-misplaced-prototype.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0210-rt-rcutree-Move-misplaced-prototype.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0210-rt-rcutree-Move-misplaced-prototype.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 7bf34488013f754f247a637c5e8881e99a725101 Mon Sep 17 00:00:00 2001
+From 951d0556cbd5f3fd6164dcdb7c0eca293b8e92b5 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Wed, 14 Dec 2011 12:51:28 +0100
-Subject: [PATCH 210/282] rt/rcutree: Move misplaced prototype
+Subject: [PATCH 210/287] rt/rcutree: Move misplaced prototype
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -21,7 +21,7 @@
  2 files changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/kernel/rcutree.c b/kernel/rcutree.c
-index 3118218..8c26a49 100644
+index c1485ce..e3ace01 100644
 --- a/kernel/rcutree.c
 +++ b/kernel/rcutree.c
 @@ -171,6 +171,8 @@ void rcu_sched_qs(int cpu)
@@ -45,6 +45,3 @@
  static void rcu_preempt_note_context_switch(int cpu);
  static int rcu_preempt_blocked_readers_cgp(struct rcu_node *rnp);
  #ifdef CONFIG_HOTPLUG_CPU
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0211-lglocks-rt.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0211-lglocks-rt.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0211-lglocks-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From dfe9f9023836c611d735143f3ab0cf3653ede271 Mon Sep 17 00:00:00 2001
+From 3d177ea89dbee266904765bec73311ee7e7f29f7 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Wed, 15 Jun 2011 11:02:21 +0200
-Subject: [PATCH 211/282] lglocks-rt.patch
+Subject: [PATCH 211/287] lglocks-rt.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -123,6 +123,3 @@
 +#endif /* PRREMPT_RT_FULL */
 +
  #endif
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0212-serial-8250-Clean-up-the-locking-for-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0212-serial-8250-Clean-up-the-locking-for-rt.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0212-serial-8250-Clean-up-the-locking-for-rt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From f92b2a2ab0f5de784405ae056facd175dd0fd710 Mon Sep 17 00:00:00 2001
+From 01909cfeb4891be5868607cfd98e2081edfcdd13 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:01 -0500
-Subject: [PATCH 212/282] serial: 8250: Clean up the locking for -rt
+Subject: [PATCH 212/287] serial: 8250: Clean up the locking for -rt
 
 Signed-off-by: Ingo Molnar <mingo at elte.hu>
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
@@ -42,6 +42,3 @@
  }
  
  static int __init serial8250_console_setup(struct console *co, char *options)
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0213-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0213-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0213-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From dafcd5e4cebf9282fd6a8d0af2d915904dddf382 Mon Sep 17 00:00:00 2001
+From 45687878fff664bdf78bbb00621263cd71d06df4 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Fri, 3 Jul 2009 08:30:01 -0500
-Subject: [PATCH 213/282] serial: 8250: Call flush_to_ldisc when the irq is
+Subject: [PATCH 213/287] serial: 8250: Call flush_to_ldisc when the irq is
  threaded
 
 Signed-off-by: Ingo Molnar <mingo at elte.hu>
@@ -48,6 +48,3 @@
  }
  EXPORT_SYMBOL(tty_flip_buffer_push);
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0214-drivers-tty-fix-omap-lock-crap.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0214-drivers-tty-fix-omap-lock-crap.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0214-drivers-tty-fix-omap-lock-crap.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 9f4b6c7ddfe57a31790b8dd052c91fd2d0063d02 Mon Sep 17 00:00:00 2001
+From 12d7471454197ceb16e5d329f3824ec790f6d32c Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 28 Jul 2011 13:32:57 +0200
-Subject: [PATCH 214/282] drivers-tty-fix-omap-lock-crap.patch
+Subject: [PATCH 214/287] drivers-tty-fix-omap-lock-crap.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -38,6 +38,3 @@
  }
  
  static int __init
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0215-rt-Improve-the-serial-console-PASS_LIMIT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0215-rt-Improve-the-serial-console-PASS_LIMIT.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0215-rt-Improve-the-serial-console-PASS_LIMIT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 075f10a3d7d377a5a028e0e93e4c6d88ec3db6cd Mon Sep 17 00:00:00 2001
+From 2be84e3f57a3d962faaf01ba2770ab7d09497709 Mon Sep 17 00:00:00 2001
 From: Ingo Molnar <mingo at elte.hu>
 Date: Wed, 14 Dec 2011 13:05:54 +0100
-Subject: [PATCH 215/282] rt: Improve the serial console PASS_LIMIT
+Subject: [PATCH 215/287] rt: Improve the serial console PASS_LIMIT
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -56,6 +56,3 @@
  	} while (l != end);
  
  	spin_unlock(&i->lock);
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0216-fs-namespace-preemption-fix.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0216-fs-namespace-preemption-fix.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0216-fs-namespace-preemption-fix.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From e3e61e2be6dd72506cc6a19d922557640d61138f Mon Sep 17 00:00:00 2001
+From 796c4f4846b05b35f0529207756dd3901eaea1da Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 19 Jul 2009 08:44:27 -0500
-Subject: [PATCH 216/282] fs: namespace preemption fix
+Subject: [PATCH 216/287] fs: namespace preemption fix
 
 On RT we cannot loop with preemption disabled here as
 mnt_make_readonly() might have been preempted. We can safely enable
@@ -43,6 +43,3 @@
  	preempt_enable();
  	return ret;
  }
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0217-mm-protect-activate-switch-mm.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0217-mm-protect-activate-switch-mm.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0217-mm-protect-activate-switch-mm.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 4e43b88fd122994485809cf573792ea8f17bb5d9 Mon Sep 17 00:00:00 2001
+From bd29fb577b70662c44ec4f00e33dd561337c26d6 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 4 Jul 2011 09:48:40 +0200
-Subject: [PATCH 217/282] mm-protect-activate-switch-mm.patch
+Subject: [PATCH 217/287] mm-protect-activate-switch-mm.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -46,6 +46,3 @@
  	task_unlock(tsk);
  
  	if (active_mm != mm)
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0218-fs-block-rt-support.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0218-fs-block-rt-support.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0218-fs-block-rt-support.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 5a0628e24af22d4c3688e3628104001ac02ae638 Mon Sep 17 00:00:00 2001
+From 2b1decef1445fe1ff35537f076eb34dd46946210 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 14 Jun 2011 17:05:09 +0200
-Subject: [PATCH 218/282] fs-block-rt-support.patch
+Subject: [PATCH 218/287] fs-block-rt-support.patch
 
 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 7366ad4..ca732c0 100644
+index 33bf42c..25e47e8 100644
 --- a/block/blk-core.c
 +++ b/block/blk-core.c
 @@ -235,7 +235,7 @@ EXPORT_SYMBOL(blk_delay_queue);
@@ -43,6 +43,3 @@
  	}
  }
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0219-fs-ntfs-disable-interrupt-only-on-RT.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0219-fs-ntfs-disable-interrupt-only-on-RT.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0219-fs-ntfs-disable-interrupt-only-on-RT.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 7835474b053efcefe77f45142933b9aa287f650d Mon Sep 17 00:00:00 2001
+From e03995d367db34e9c4b14a6ded61fc87038d9336 Mon Sep 17 00:00:00 2001
 From: Mike Galbraith <efault at gmx.de>
 Date: Fri, 3 Jul 2009 08:44:12 -0500
-Subject: [PATCH 219/282] fs: ntfs: disable interrupt only on !RT
+Subject: [PATCH 219/287] fs: ntfs: disable interrupt only on !RT
 
 On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote:
 > * Nick Piggin <nickpiggin at yahoo.com.au> wrote:
@@ -59,6 +59,3 @@
  		flush_dcache_page(page);
  		if (likely(page_uptodate && !PageError(page)))
  			SetPageUptodate(page);
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0220-x86-Convert-mce-timer-to-hrtimer.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0220-x86-Convert-mce-timer-to-hrtimer.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0220-x86-Convert-mce-timer-to-hrtimer.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From dabbe4835cf07f0489f92c8daee2e124a1260b5c Mon Sep 17 00:00:00 2001
+From 7cdc9f7453f91e8a329f09d68ffea064b7835535 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Mon, 13 Dec 2010 16:33:39 +0100
-Subject: [PATCH 220/282] x86: Convert mce timer to hrtimer
+Subject: [PATCH 220/287] x86: Convert mce timer to hrtimer
 
 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
@@ -13,7 +13,7 @@
  1 file changed, 23 insertions(+), 26 deletions(-)
 
 diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
-index b0f1271..48281f0 100644
+index 3b67877..7e4f230 100644
 --- a/arch/x86/kernel/cpu/mcheck/mce.c
 +++ b/arch/x86/kernel/cpu/mcheck/mce.c
 @@ -38,6 +38,7 @@
@@ -24,7 +24,7 @@
  
  #include <asm/processor.h>
  #include <asm/mce.h>
-@@ -1114,17 +1115,14 @@ void mce_log_therm_throt_event(__u64 status)
+@@ -1112,17 +1113,14 @@ void mce_log_therm_throt_event(__u64 status)
   * poller finds an MCE, poll 2x faster.  When the poller finds no more
   * errors, poll 2x slower (up to check_interval seconds).
   */
@@ -47,7 +47,7 @@
  
  	if (mce_available(__this_cpu_ptr(&cpu_info))) {
  		machine_check_poll(MCP_TIMESTAMP,
-@@ -1137,21 +1135,22 @@ static void mce_start_timer(unsigned long data)
+@@ -1135,21 +1133,22 @@ static void mce_start_timer(unsigned long data)
  	 */
  	n = &__get_cpu_var(mce_next_interval);
  	if (mce_notify_irq())
@@ -76,7 +76,7 @@
  }
  
  static void mce_do_trigger(struct work_struct *work)
-@@ -1383,10 +1382,11 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
+@@ -1381,10 +1380,11 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
  
  static void __mcheck_cpu_init_timer(void)
  {
@@ -91,7 +91,7 @@
  
  	if (mce_ignore_ce)
  		return;
-@@ -1394,8 +1394,9 @@ static void __mcheck_cpu_init_timer(void)
+@@ -1392,8 +1392,9 @@ static void __mcheck_cpu_init_timer(void)
  	*n = check_interval * HZ;
  	if (!*n)
  		return;
@@ -103,7 +103,7 @@
  }
  
  /* Handle unconfigured int18 (should never happen) */
-@@ -2031,6 +2032,8 @@ static void __cpuinit mce_disable_cpu(void *h)
+@@ -2029,6 +2030,8 @@ static void __cpuinit mce_disable_cpu(void *h)
  	if (!mce_available(__this_cpu_ptr(&cpu_info)))
  		return;
  
@@ -112,7 +112,7 @@
  	if (!(action & CPU_TASKS_FROZEN))
  		cmci_clear();
  	for (i = 0; i < banks; i++) {
-@@ -2057,6 +2060,7 @@ static void __cpuinit mce_reenable_cpu(void *h)
+@@ -2055,6 +2058,7 @@ static void __cpuinit mce_reenable_cpu(void *h)
  		if (b->init)
  			wrmsrl(MSR_IA32_MCx_CTL(i), b->ctl);
  	}
@@ -120,7 +120,7 @@
  }
  
  /* Get notified when a cpu comes on/off. Be hotplug friendly. */
-@@ -2064,7 +2068,6 @@ static int __cpuinit
+@@ -2062,7 +2066,6 @@ static int __cpuinit
  mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
  {
  	unsigned int cpu = (unsigned long)hcpu;
@@ -128,7 +128,7 @@
  
  	switch (action) {
  	case CPU_ONLINE:
-@@ -2081,16 +2084,10 @@ mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
+@@ -2079,16 +2082,10 @@ mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
  		break;
  	case CPU_DOWN_PREPARE:
  	case CPU_DOWN_PREPARE_FROZEN:
@@ -145,6 +145,3 @@
  		smp_call_function_single(cpu, mce_reenable_cpu, &action, 1);
  		break;
  	case CPU_POST_DEAD:
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0221-x86-stackprotector-Avoid-random-pool-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0221-x86-stackprotector-Avoid-random-pool-on-rt.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0221-x86-stackprotector-Avoid-random-pool-on-rt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 5ed6bb39d98bfe7b85406228ec591bbaffea9946 Mon Sep 17 00:00:00 2001
+From 564578c03bf36ac0245c8499e2e2c996000bf876 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Thu, 16 Dec 2010 14:25:18 +0100
-Subject: [PATCH 221/282] x86: stackprotector: Avoid random pool on rt
+Subject: [PATCH 221/287] x86: stackprotector: Avoid random pool on rt
 
 CPU bringup calls into the random pool to initialize the stack
 canary. During boot that works nicely even on RT as the might sleep
@@ -47,6 +47,3 @@
  	tsc = __native_read_tsc();
  	canary += tsc + (tsc << 32UL);
  
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0222-x86-Use-generic-rwsem_spinlocks-on-rt.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0222-x86-Use-generic-rwsem_spinlocks-on-rt.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0222-x86-Use-generic-rwsem_spinlocks-on-rt.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 4690c13714e7b5fd3ad9401018615e2650a5130d Mon Sep 17 00:00:00 2001
+From f4193763f5edee80abea65b63a03676c061c6bf7 Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 26 Jul 2009 02:21:32 +0200
-Subject: [PATCH 222/282] x86: Use generic rwsem_spinlocks on -rt
+Subject: [PATCH 222/287] x86: Use generic rwsem_spinlocks on -rt
 
 Simplifies the separation of anon_rw_semaphores and rw_semaphores for
 -rt.
@@ -28,6 +28,3 @@
  
  config ARCH_HAS_CPU_IDLE_WAIT
  	def_bool y
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0223-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0223-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0223-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From d0e1d0ad6646e70a2b81bdab7a2dc4017afa2b51 Mon Sep 17 00:00:00 2001
+From 166e69b0217542d2c730769d00b540e702b31d1e Mon Sep 17 00:00:00 2001
 From: Andi Kleen <ak at suse.de>
 Date: Fri, 3 Jul 2009 08:44:10 -0500
-Subject: [PATCH 223/282] x86: Disable IST stacks for debug/int 3/stack fault
+Subject: [PATCH 223/287] x86: Disable IST stacks for debug/int 3/stack fault
  for PREEMPT_RT
 
 Normally the x86-64 trap handlers for debug/int 3/stack fault run
@@ -76,10 +76,10 @@
  #define PUD_PAGE_SIZE		(_AC(1, UL) << PUD_SHIFT)
  #define PUD_PAGE_MASK		(~(PUD_PAGE_SIZE-1))
 diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
-index aa003b1..d39b525 100644
+index ca93cc7..edc013e 100644
 --- a/arch/x86/kernel/cpu/common.c
 +++ b/arch/x86/kernel/cpu/common.c
-@@ -1055,7 +1055,9 @@ DEFINE_PER_CPU(unsigned int, irq_count) = -1;
+@@ -1050,7 +1050,9 @@ DEFINE_PER_CPU(unsigned int, irq_count) = -1;
   */
  static const unsigned int exception_stack_sizes[N_EXCEPTION_STACKS] = {
  	  [0 ... N_EXCEPTION_STACKS - 1]	= EXCEPTION_STKSZ,
@@ -108,6 +108,3 @@
  		[ MCE_STACK-1			]	= "#MC",
  #if DEBUG_STKSZ > EXCEPTION_STKSZ
  		[ N_EXCEPTION_STACKS ...
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0224-workqueue-use-get-cpu-light.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0224-workqueue-use-get-cpu-light.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0224-workqueue-use-get-cpu-light.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From 581ff35e0c927a7306bd2d6406ddf18dc92f1354 Mon Sep 17 00:00:00 2001
+From c65e39fa8783a71593b0a68c25ea3fbdf09e77aa Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Sun, 17 Jul 2011 21:42:26 +0200
-Subject: [PATCH 224/282] workqueue-use-get-cpu-light.patch
+Subject: [PATCH 224/287] workqueue-use-get-cpu-light.patch
 
 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 8bdc220..5d23c05b 100644
+index 383f550..6447bb7 100644
 --- a/kernel/workqueue.c
 +++ b/kernel/workqueue.c
 @@ -1063,8 +1063,8 @@ int queue_work(struct workqueue_struct *wq, struct work_struct *work)
@@ -23,6 +23,3 @@
  
  	return ret;
  }
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0225-epoll.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0225-epoll.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0225-epoll.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From e37fd5603f218cd00ea9e612ea5f10e39cef68c8 Mon Sep 17 00:00:00 2001
+From fb0c1aba38c7e371dd696e3df263340f6c4d74bc Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Fri, 8 Jul 2011 16:35:35 +0200
-Subject: [PATCH 225/282] epoll.patch
+Subject: [PATCH 225/287] epoll.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -9,7 +9,7 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/fs/eventpoll.c b/fs/eventpoll.c
-index 4d9d3a4..af35db1 100644
+index a6f3763..61c4de6 100644
 --- a/fs/eventpoll.c
 +++ b/fs/eventpoll.c
 @@ -464,12 +464,12 @@ static int ep_poll_wakeup_proc(void *priv, void *cookie, int call_nests)
@@ -27,6 +27,3 @@
  }
  
  static void ep_remove_wait_queue(struct eppoll_entry *pwq)
--- 
-1.7.10
-

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/0226-mm-vmalloc.patch.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/0226-mm-vmalloc.patch.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0226-mm-vmalloc.patch.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -1,7 +1,7 @@
-From e635eb81d1daac1a9a8107fef6cb0c7b86626f4c Mon Sep 17 00:00:00 2001
+From b58b75b13c0db09c62b0a51617fe09623c9bed6a Mon Sep 17 00:00:00 2001
 From: Thomas Gleixner <tglx at linutronix.de>
 Date: Tue, 12 Jul 2011 11:39:36 +0200
-Subject: [PATCH 226/282] mm-vmalloc.patch
+Subject: [PATCH 226/287] mm-vmalloc.patch
 
 Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 ---
@@ -65,6 +65,3 @@
  	rcu_read_unlock();
  
  	if (!addr) {
--- 
-1.7.10
-

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0227-debugobjects-rt.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0227-debugobjects-rt.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0227-debugobjects-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0227-debugobjects-rt.patch.patch)
@@ -0,0 +1,37 @@
+From 80a3236acf3ad1a1421507464067ce79f0cbf28d Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Sun, 17 Jul 2011 21:41:35 +0200
+Subject: [PATCH 227/287] debugobjects-rt.patch
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ lib/debugobjects.c |    7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/lib/debugobjects.c b/lib/debugobjects.c
+index a78b7c6..9b622c9 100644
+--- a/lib/debugobjects.c
++++ b/lib/debugobjects.c
+@@ -306,7 +306,10 @@ __debug_object_init(void *addr, struct debug_obj_descr *descr, int onstack)
+ 	struct debug_obj *obj;
+ 	unsigned long flags;
+ 
+-	fill_pool();
++#ifdef CONFIG_PREEMPT_RT_FULL
++	if (preempt_count() == 0 && !irqs_disabled())
++#endif
++		fill_pool();
+ 
+ 	db = get_bucket((unsigned long) addr);
+ 
+@@ -1015,9 +1018,9 @@ static int __init debug_objects_replace_static_objects(void)
+ 		}
+ 	}
+ 
++	local_irq_enable();
+ 	printk(KERN_DEBUG "ODEBUG: %d of %d active objects replaced\n", cnt,
+ 	       obj_pool_used);
+-	local_irq_enable();
+ 	return 0;
+ free:
+ 	hlist_for_each_entry_safe(obj, node, tmp, &objects, node) {

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0228-jump-label-rt.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0228-jump-label-rt.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0228-jump-label-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0228-jump-label-rt.patch.patch)
@@ -0,0 +1,23 @@
+From 601b7ecb2ffa42aa47bd175ffc4d013646c2e2c3 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 13 Jul 2011 11:03:16 +0200
+Subject: [PATCH 228/287] jump-label-rt.patch
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ include/linux/jump_label.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
+index 388b0d4..9cc8ed9 100644
+--- a/include/linux/jump_label.h
++++ b/include/linux/jump_label.h
+@@ -4,7 +4,7 @@
+ #include <linux/types.h>
+ #include <linux/compiler.h>
+ 
+-#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL)
++#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL) && !defined(CONFIG_PREEMPT_BASE)
+ 
+ struct jump_label_key {
+ 	atomic_t enabled;

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0229-skbufhead-raw-lock.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0229-skbufhead-raw-lock.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0229-skbufhead-raw-lock.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0229-skbufhead-raw-lock.patch.patch)
@@ -0,0 +1,134 @@
+From 134780445c49afbd1b7077642b9c20911a2fc41d Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Tue, 12 Jul 2011 15:38:34 +0200
+Subject: [PATCH 229/287] skbufhead-raw-lock.patch
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ include/linux/netdevice.h |    1 +
+ include/linux/skbuff.h    |    7 +++++++
+ net/core/dev.c            |   26 ++++++++++++++++++++------
+ 3 files changed, 28 insertions(+), 6 deletions(-)
+
+diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
+index 00ca32b..9ec24b3 100644
+--- a/include/linux/netdevice.h
++++ b/include/linux/netdevice.h
+@@ -1755,6 +1755,7 @@ struct softnet_data {
+ 	unsigned		dropped;
+ 	struct sk_buff_head	input_pkt_queue;
+ 	struct napi_struct	backlog;
++	struct sk_buff_head	tofree_queue;
+ };
+ 
+ static inline void input_queue_head_incr(struct softnet_data *sd)
+diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
+index 53dc7e7..5db4d1e 100644
+--- a/include/linux/skbuff.h
++++ b/include/linux/skbuff.h
+@@ -124,6 +124,7 @@ struct sk_buff_head {
+ 
+ 	__u32		qlen;
+ 	spinlock_t	lock;
++	raw_spinlock_t	raw_lock;
+ };
+ 
+ struct sk_buff;
+@@ -923,6 +924,12 @@ static inline void skb_queue_head_init(struct sk_buff_head *list)
+ 	__skb_queue_head_init(list);
+ }
+ 
++static inline void skb_queue_head_init_raw(struct sk_buff_head *list)
++{
++	raw_spin_lock_init(&list->raw_lock);
++	__skb_queue_head_init(list);
++}
++
+ static inline void skb_queue_head_init_class(struct sk_buff_head *list,
+ 		struct lock_class_key *class)
+ {
+diff --git a/net/core/dev.c b/net/core/dev.c
+index 84a06b9..c8ce67b 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)
+ static inline void rps_lock(struct softnet_data *sd)
+ {
+ #ifdef CONFIG_RPS
+-	spin_lock(&sd->input_pkt_queue.lock);
++	raw_spin_lock(&sd->input_pkt_queue.raw_lock);
+ #endif
+ }
+ 
+ static inline void rps_unlock(struct softnet_data *sd)
+ {
+ #ifdef CONFIG_RPS
+-	spin_unlock(&sd->input_pkt_queue.lock);
++	raw_spin_unlock(&sd->input_pkt_queue.raw_lock);
+ #endif
+ }
+ 
+@@ -3401,7 +3401,7 @@ static void flush_backlog(void *arg)
+ 	skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) {
+ 		if (skb->dev == dev) {
+ 			__skb_unlink(skb, &sd->input_pkt_queue);
+-			kfree_skb(skb);
++			__skb_queue_tail(&sd->tofree_queue, skb);
+ 			input_queue_head_incr(sd);
+ 		}
+ 	}
+@@ -3410,10 +3410,13 @@ static void flush_backlog(void *arg)
+ 	skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
+ 		if (skb->dev == dev) {
+ 			__skb_unlink(skb, &sd->process_queue);
+-			kfree_skb(skb);
++			__skb_queue_tail(&sd->tofree_queue, skb);
+ 			input_queue_head_incr(sd);
+ 		}
+ 	}
++
++	if (!skb_queue_empty(&sd->tofree_queue))
++		raise_softirq_irqoff(NET_RX_SOFTIRQ);
+ }
+ 
+ static int napi_gro_complete(struct sk_buff *skb)
+@@ -3897,10 +3900,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;
++	struct sk_buff *skb;
+ 	void *have;
+ 
+ 	local_irq_disable();
+ 
++	while ((skb = __skb_dequeue(&sd->tofree_queue))) {
++		local_irq_enable();
++		kfree_skb(skb);
++		local_irq_disable();
++	}
++
+ 	while (!list_empty(&sd->poll_list)) {
+ 		struct napi_struct *n;
+ 		int work, weight;
+@@ -6337,6 +6347,9 @@ static int dev_cpu_callback(struct notifier_block *nfb,
+ 		netif_rx(skb);
+ 		input_queue_head_incr(oldsd);
+ 	}
++	while ((skb = __skb_dequeue(&oldsd->tofree_queue))) {
++		kfree_skb(skb);
++	}
+ 
+ 	return NOTIFY_OK;
+ }
+@@ -6604,8 +6617,9 @@ static int __init net_dev_init(void)
+ 		struct softnet_data *sd = &per_cpu(softnet_data, i);
+ 
+ 		memset(sd, 0, sizeof(*sd));
+-		skb_queue_head_init(&sd->input_pkt_queue);
+-		skb_queue_head_init(&sd->process_queue);
++		skb_queue_head_init_raw(&sd->input_pkt_queue);
++		skb_queue_head_init_raw(&sd->process_queue);
++		skb_queue_head_init_raw(&sd->tofree_queue);
+ 		sd->completion_queue = NULL;
+ 		INIT_LIST_HEAD(&sd->poll_list);
+ 		sd->output_queue = NULL;

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0230-x86-no-perf-irq-work-rt.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0230-x86-no-perf-irq-work-rt.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0230-x86-no-perf-irq-work-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0230-x86-no-perf-irq-work-rt.patch.patch)
@@ -0,0 +1,68 @@
+From be5e4cd7195eadf135d1b5973fa9b013b7efdc03 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 13 Jul 2011 14:05:05 +0200
+Subject: [PATCH 230/287] x86-no-perf-irq-work-rt.patch
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ arch/x86/kernel/irq_work.c |    2 ++
+ kernel/irq_work.c          |    2 ++
+ kernel/timer.c             |    6 +++++-
+ 3 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/kernel/irq_work.c b/arch/x86/kernel/irq_work.c
+index ca8f703..129b8bb 100644
+--- a/arch/x86/kernel/irq_work.c
++++ b/arch/x86/kernel/irq_work.c
+@@ -18,6 +18,7 @@ void smp_irq_work_interrupt(struct pt_regs *regs)
+ 	irq_exit();
+ }
+ 
++#ifndef CONFIG_PREEMPT_RT_FULL
+ void arch_irq_work_raise(void)
+ {
+ #ifdef CONFIG_X86_LOCAL_APIC
+@@ -28,3 +29,4 @@ void arch_irq_work_raise(void)
+ 	apic_wait_icr_idle();
+ #endif
+ }
++#endif
+diff --git a/kernel/irq_work.c b/kernel/irq_work.c
+index c3c46c7..727ba59 100644
+--- a/kernel/irq_work.c
++++ b/kernel/irq_work.c
+@@ -105,8 +105,10 @@ void irq_work_run(void)
+ 	if (llist_empty(this_list))
+ 		return;
+ 
++#ifndef CONFIG_PREEMPT_RT_FULL
+ 	BUG_ON(!in_irq());
+ 	BUG_ON(!irqs_disabled());
++#endif
+ 
+ 	llnode = llist_del_all(this_list);
+ 	while (llnode != NULL) {
+diff --git a/kernel/timer.c b/kernel/timer.c
+index 7ea787b..a791a43 100644
+--- a/kernel/timer.c
++++ b/kernel/timer.c
+@@ -1362,7 +1362,7 @@ void update_process_times(int user_tick)
+ 	scheduler_tick();
+ 	run_local_timers();
+ 	rcu_check_callbacks(cpu, user_tick);
+-#ifdef CONFIG_IRQ_WORK
++#if defined(CONFIG_IRQ_WORK) && !defined(CONFIG_PREEMPT_RT_FULL)
+ 	if (in_irq())
+ 		irq_work_run();
+ #endif
+@@ -1376,6 +1376,10 @@ static void run_timer_softirq(struct softirq_action *h)
+ {
+ 	struct tvec_base *base = __this_cpu_read(tvec_bases);
+ 
++#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL)
++	irq_work_run();
++#endif
++
+ 	printk_tick();
+ 	hrtimer_run_pending();
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0231-console-make-rt-friendly.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0231-console-make-rt-friendly.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0231-console-make-rt-friendly.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0231-console-make-rt-friendly.patch.patch)
@@ -0,0 +1,85 @@
+From 895ac3ff650801f400ce1ac9b26f1eaa0c8023c4 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Sun, 17 Jul 2011 22:43:07 +0200
+Subject: [PATCH 231/287] console-make-rt-friendly.patch
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ kernel/printk.c |   26 +++++++++++++++++++++++---
+ 1 file changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/kernel/printk.c b/kernel/printk.c
+index 2b95bc0..fad23c8 100644
+--- a/kernel/printk.c
++++ b/kernel/printk.c
+@@ -504,6 +504,7 @@ static void __call_console_drivers(unsigned start, unsigned end)
+ {
+ 	struct console *con;
+ 
++	migrate_disable();
+ 	for_each_console(con) {
+ 		if (exclusive_console && con != exclusive_console)
+ 			continue;
+@@ -512,6 +513,7 @@ static void __call_console_drivers(unsigned start, unsigned end)
+ 				(con->flags & CON_ANYTIME)))
+ 			con->write(con, &LOG_BUF(start), end - start);
+ 	}
++	migrate_enable();
+ }
+ 
+ #ifdef CONFIG_EARLY_PRINTK
+@@ -827,12 +829,18 @@ static inline int can_use_console(unsigned int cpu)
+  * interrupts disabled. It should return with 'lockbuf_lock'
+  * released but interrupts still disabled.
+  */
+-static int console_trylock_for_printk(unsigned int cpu)
++static int console_trylock_for_printk(unsigned int cpu, unsigned long flags)
+ 	__releases(&logbuf_lock)
+ {
+ 	int retval = 0, wake = 0;
++#ifdef CONFIG_PREEMPT_RT_FULL
++	int lock = !early_boot_irqs_disabled && !irqs_disabled_flags(flags) &&
++		!preempt_count();
++#else
++	int lock = 1;
++#endif
+ 
+-	if (console_trylock()) {
++	if (lock && console_trylock()) {
+ 		retval = 1;
+ 
+ 		/*
+@@ -1010,8 +1018,15 @@ asmlinkage int vprintk(const char *fmt, va_list args)
+ 	 * will release 'logbuf_lock' regardless of whether it
+ 	 * actually gets the semaphore or not.
+ 	 */
+-	if (console_trylock_for_printk(this_cpu))
++	if (console_trylock_for_printk(this_cpu, flags)) {
++#ifndef CONFIG_PREEMPT_RT_FULL
+ 		console_unlock();
++#else
++		raw_local_irq_restore(flags);
++		console_unlock();
++		raw_local_irq_save(flags);
++#endif
++	}
+ 
+ 	lockdep_on();
+ out_restore_irqs:
+@@ -1321,11 +1336,16 @@ again:
+ 		_con_start = con_start;
+ 		_log_end = log_end;
+ 		con_start = log_end;		/* Flush */
++#ifndef CONFIG_PREEMPT_RT_FULL
+ 		raw_spin_unlock(&logbuf_lock);
+ 		stop_critical_timings();	/* don't trace print latency */
+ 		call_console_drivers(_con_start, _log_end);
+ 		start_critical_timings();
+ 		local_irq_restore(flags);
++#else
++		raw_spin_unlock_irqrestore(&logbuf_lock, flags);
++		call_console_drivers(_con_start, _log_end);
++#endif
+ 	}
+ 	console_locked = 0;
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0232-printk-Disable-migration-instead-of-preemption.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0232-printk-Disable-migration-instead-of-preemption.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0232-printk-Disable-migration-instead-of-preemption.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0232-printk-Disable-migration-instead-of-preemption.patch)
@@ -0,0 +1,61 @@
+From d6f232ee45717a3bdf5a91dde4163b28691a62ad Mon Sep 17 00:00:00 2001
+From: Richard Weinberger <rw at linutronix.de>
+Date: Mon, 12 Dec 2011 14:35:56 +0100
+Subject: [PATCH 232/287] printk: Disable migration instead of preemption
+
+There is no need do disable preemption in vprintk(), disable_migrate()
+is sufficient. This fixes the following bug in -rt:
+
+[   14.759233] BUG: sleeping function called from invalid context
+at /home/rw/linux-rt/kernel/rtmutex.c:645
+[   14.759235] in_atomic(): 1, irqs_disabled(): 0, pid: 547, name: bash
+[   14.759244] Pid: 547, comm: bash Not tainted 3.0.12-rt29+ #3
+[   14.759246] Call Trace:
+[   14.759301]  [<ffffffff8106fade>] __might_sleep+0xeb/0xf0
+[   14.759318]  [<ffffffff810ad784>] rt_spin_lock_fastlock.constprop.9+0x21/0x43
+[   14.759336]  [<ffffffff8161fef0>] rt_spin_lock+0xe/0x10
+[   14.759354]  [<ffffffff81347ad1>] serial8250_console_write+0x81/0x121
+[   14.759366]  [<ffffffff8107ecd3>] __call_console_drivers+0x7c/0x93
+[   14.759369]  [<ffffffff8107ef31>] _call_console_drivers+0x5c/0x60
+[   14.759372]  [<ffffffff8107f7e5>] console_unlock+0x147/0x1a2
+[   14.759374]  [<ffffffff8107fd33>] vprintk+0x3ea/0x462
+[   14.759383]  [<ffffffff816160e0>] printk+0x51/0x53
+[   14.759399]  [<ffffffff811974e4>] ? proc_reg_poll+0x9a/0x9a
+[   14.759403]  [<ffffffff81335b42>] __handle_sysrq+0x50/0x14d
+[   14.759406]  [<ffffffff81335c8a>] write_sysrq_trigger+0x4b/0x53
+[   14.759408]  [<ffffffff81335c3f>] ? __handle_sysrq+0x14d/0x14d
+[   14.759410]  [<ffffffff81197583>] proc_reg_write+0x9f/0xbe
+[   14.759426]  [<ffffffff811497ec>] vfs_write+0xac/0xf3
+[   14.759429]  [<ffffffff8114a9b3>] ? fget_light+0x3a/0x9b
+[   14.759431]  [<ffffffff811499db>] sys_write+0x4a/0x6e
+[   14.759438]  [<ffffffff81625d52>] system_call_fastpath+0x16/0x1b
+
+Signed-off-by: Richard Weinberger <rw at linutronix.de>
+Link: http://lkml.kernel.org/r/1323696956-11445-1-git-send-email-rw@linutronix.de
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ kernel/printk.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/printk.c b/kernel/printk.c
+index fad23c8..13ea6a9 100644
+--- a/kernel/printk.c
++++ b/kernel/printk.c
+@@ -901,7 +901,7 @@ asmlinkage int vprintk(const char *fmt, va_list args)
+ 	boot_delay_msec();
+ 	printk_delay();
+ 
+-	preempt_disable();
++	migrate_disable();
+ 	/* This stops the holder of console_sem just where we want him */
+ 	raw_local_irq_save(flags);
+ 	this_cpu = smp_processor_id();
+@@ -1032,7 +1032,7 @@ asmlinkage int vprintk(const char *fmt, va_list args)
+ out_restore_irqs:
+ 	raw_local_irq_restore(flags);
+ 
+-	preempt_enable();
++	migrate_enable();
+ 	return printed_len;
+ }
+ EXPORT_SYMBOL(printk);

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0233-power-use-generic-rwsem-on-rt.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0233-power-use-generic-rwsem-on-rt.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0233-power-use-generic-rwsem-on-rt.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0233-power-use-generic-rwsem-on-rt.patch)
@@ -0,0 +1,26 @@
+From ccebc690165127c1d2144fcd6c345f83fb174f64 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Tue, 10 Apr 2012 14:34:18 -0400
+Subject: [PATCH 233/287] power-use-generic-rwsem-on-rt
+
+---
+ arch/powerpc/Kconfig |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
+index 7c93c7e..c504625 100644
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -69,10 +69,11 @@ config LOCKDEP_SUPPORT
+ 
+ config RWSEM_GENERIC_SPINLOCK
+ 	bool
++	default y if PREEMPT_RT_FULL
+ 
+ config RWSEM_XCHGADD_ALGORITHM
+ 	bool
+-	default y
++	default y if !PREEMPT_RT_FULL
+ 
+ config GENERIC_LOCKBREAK
+ 	bool

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0234-power-disable-highmem-on-rt.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0234-power-disable-highmem-on-rt.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0234-power-disable-highmem-on-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0234-power-disable-highmem-on-rt.patch.patch)
@@ -0,0 +1,23 @@
+From dababf818c2e8e413393a47fbdce7ad550856aee Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Mon, 18 Jul 2011 17:08:34 +0200
+Subject: [PATCH 234/287] power-disable-highmem-on-rt.patch
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ arch/powerpc/Kconfig |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
+index c504625..d01baf8 100644
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -276,7 +276,7 @@ menu "Kernel options"
+ 
+ config HIGHMEM
+ 	bool "High memory support"
+-	depends on PPC32
++	depends on PPC32 && !PREEMPT_RT_FULL
+ 
+ source kernel/time/Kconfig
+ source kernel/Kconfig.hz

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0235-arm-disable-highmem-on-rt.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0235-arm-disable-highmem-on-rt.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0235-arm-disable-highmem-on-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0235-arm-disable-highmem-on-rt.patch.patch)
@@ -0,0 +1,23 @@
+From fa70e4bce5720e02fec938a4670266ccb7eb356c Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Mon, 18 Jul 2011 17:09:28 +0200
+Subject: [PATCH 235/287] arm-disable-highmem-on-rt.patch
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ arch/arm/Kconfig |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index 158f70c..0cefa3f 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -1677,7 +1677,7 @@ config HAVE_ARCH_PFN_VALID
+ 
+ config HIGHMEM
+ 	bool "High Memory Support"
+-	depends on MMU
++	depends on MMU && !PREEMPT_RT_FULL
+ 	help
+ 	  The address space of ARM processors is only 4 Gigabytes large
+ 	  and it has to accommodate user address space, kernel address

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0236-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0236-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0236-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0236-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch)
@@ -0,0 +1,34 @@
+From 59b46210ad41e603bf7afab694274bc401d09e0b Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Sat, 1 May 2010 18:29:35 +0200
+Subject: [PATCH 236/287] ARM: at91: tclib: Default to tclib timer for RT
+
+RT is not too happy about the shared timer interrupt in AT91
+devices. Default to tclib timer for RT.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ drivers/misc/Kconfig |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
+index 1cb530c..951ae6c 100644
+--- a/drivers/misc/Kconfig
++++ b/drivers/misc/Kconfig
+@@ -82,6 +82,7 @@ config AB8500_PWM
+ config ATMEL_TCLIB
+ 	bool "Atmel AT32/AT91 Timer/Counter Library"
+ 	depends on (AVR32 || ARCH_AT91)
++	default y if PREEMPT_RT_FULL
+ 	help
+ 	  Select this if you want a library to allocate the Timer/Counter
+ 	  blocks found on many Atmel processors.  This facilitates using
+@@ -114,7 +115,7 @@ config ATMEL_TCB_CLKSRC_BLOCK
+ config ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK
+ 	bool "TC Block use 32 KiHz clock"
+ 	depends on ATMEL_TCB_CLKSRC
+-	default y
++	default y if !PREEMPT_RT_FULL
+ 	help
+ 	  Select this to use 32 KiHz base clock rate as TC block clock
+ 	  source for clock events.

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0237-mips-disable-highmem-on-rt.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0237-mips-disable-highmem-on-rt.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0237-mips-disable-highmem-on-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0237-mips-disable-highmem-on-rt.patch.patch)
@@ -0,0 +1,23 @@
+From 31994de77250e5b0f2b3f8507d056ba489e3b4d1 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Mon, 18 Jul 2011 17:10:12 +0200
+Subject: [PATCH 237/287] mips-disable-highmem-on-rt.patch
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ arch/mips/Kconfig |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
+index d46f1da..9f02e8b 100644
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
+@@ -2040,7 +2040,7 @@ config CPU_R4400_WORKAROUNDS
+ #
+ config HIGHMEM
+ 	bool "High Memory Support"
+-	depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
++	depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !PREEMPT_RT_FULL
+ 
+ config CPU_SUPPORTS_HIGHMEM
+ 	bool

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0238-net-Avoid-livelock-in-net_tx_action-on-RT.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0238-net-Avoid-livelock-in-net_tx_action-on-RT.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0238-net-Avoid-livelock-in-net_tx_action-on-RT.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0238-net-Avoid-livelock-in-net_tx_action-on-RT.patch)
@@ -0,0 +1,94 @@
+From 5eda9268f6228b4cc98b120b04b53a2529d9824d Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <srostedt at redhat.com>
+Date: Thu, 6 Oct 2011 10:48:39 -0400
+Subject: [PATCH 238/287] net: Avoid livelock in net_tx_action() on RT
+
+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
+return of interrupt in !RT.
+
+The spin_trylock() in net_tx_action() makes sure, that the softirq
+does not deadlock. When the lock can't be acquired q is requeued and
+the NET_TX softirq is raised. That causes the softirq to run over and
+over.
+
+That works in mainline as do_softirq() has a retry loop limit and
+leaves the softirq processing in the interrupt return path and
+schedules ksoftirqd. The task which holds qdisc_lock cannot be
+preempted, so the lock is released and either ksoftirqd or the next
+softirq in the return from interrupt path can proceed. Though it's a
+bit strange to actually run MAX_SOFTIRQ_RESTART (10) loops before it
+decides to bail out even if it's clear in the first iteration :)
+
+On RT all softirq processing is done in a FIFO thread and we don't
+have a loop limit, so ksoftirqd preempts the lock holder forever and
+unqueues and requeues until the reset button is hit.
+
+Due to the forced threading of ksoftirqd on RT we actually cannot
+deadlock on qdisc_lock because it's a "sleeping lock". So it's safe to
+replace the spin_trylock() with a spin_lock(). When contended,
+ksoftirqd is scheduled out and the lock holder can proceed.
+
+[ tglx: Massaged changelog and code comments ]
+
+Solved-by: Thomas Gleixner <tglx at linuxtronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+Tested-by: Carsten Emde <cbe at osadl.org>
+Cc: Clark Williams <williams at redhat.com>
+Cc: John Kacur <jkacur at redhat.com>
+Cc: Luis Claudio R. Goncalves <lclaudio at redhat.com>
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ net/core/dev.c |   32 +++++++++++++++++++++++++++++++-
+ 1 file changed, 31 insertions(+), 1 deletion(-)
+
+diff --git a/net/core/dev.c b/net/core/dev.c
+index c8ce67b..c09fc22 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -3038,6 +3038,36 @@ int netif_rx_ni(struct sk_buff *skb)
+ }
+ EXPORT_SYMBOL(netif_rx_ni);
+ 
++#ifdef CONFIG_PREEMPT_RT_FULL
++/*
++ * RT runs ksoftirqd as a real time thread and the root_lock is a
++ * "sleeping spinlock". If the trylock fails then we can go into an
++ * infinite loop when ksoftirqd preempted the task which actually
++ * holds the lock, because we requeue q and raise NET_TX softirq
++ * causing ksoftirqd to loop forever.
++ *
++ * It's safe to use spin_lock on RT here as softirqs run in thread
++ * context and cannot deadlock against the thread which is holding
++ * root_lock.
++ *
++ * On !RT the trylock might fail, but there we bail out from the
++ * softirq loop after 10 attempts which we can't do on RT. And the
++ * task holding root_lock cannot be preempted, so the only downside of
++ * that trylock is that we need 10 loops to decide that we should have
++ * given up in the first one :)
++ */
++static inline int take_root_lock(spinlock_t *lock)
++{
++	spin_lock(lock);
++	return 1;
++}
++#else
++static inline int take_root_lock(spinlock_t *lock)
++{
++	return spin_trylock(lock);
++}
++#endif
++
+ static void net_tx_action(struct softirq_action *h)
+ {
+ 	struct softnet_data *sd = &__get_cpu_var(softnet_data);
+@@ -3076,7 +3106,7 @@ static void net_tx_action(struct softirq_action *h)
+ 			head = head->next_sched;
+ 
+ 			root_lock = qdisc_lock(q);
+-			if (spin_trylock(root_lock)) {
++			if (take_root_lock(root_lock)) {
+ 				smp_mb__before_clear_bit();
+ 				clear_bit(__QDISC_STATE_SCHED,
+ 					  &q->state);

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0239-ping-sysrq.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0239-ping-sysrq.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0239-ping-sysrq.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0239-ping-sysrq.patch.patch)
@@ -0,0 +1,129 @@
+From 5010c148232695d43d0b2bb7fe96c731ef0522f7 Mon Sep 17 00:00:00 2001
+From: Carsten Emde <C.Emde at osadl.org>
+Date: Tue, 19 Jul 2011 13:51:17 +0100
+Subject: [PATCH 239/287] ping-sysrq.patch
+
+There are (probably rare) situations when a system crashed and the system
+console becomes unresponsive but the network icmp layer still is alive.
+Wouldn't it be wonderful, if we then could submit a sysreq command via ping?
+
+This patch provides this facility. Please consult the updated documentation
+Documentation/sysrq.txt for details.
+
+Signed-off-by: Carsten Emde <C.Emde at osadl.org>
+---
+ Documentation/sysrq.txt    |   11 +++++++++--
+ include/net/netns/ipv4.h   |    1 +
+ net/ipv4/icmp.c            |   30 ++++++++++++++++++++++++++++++
+ net/ipv4/sysctl_net_ipv4.c |    7 +++++++
+ 4 files changed, 47 insertions(+), 2 deletions(-)
+
+diff --git a/Documentation/sysrq.txt b/Documentation/sysrq.txt
+index 312e375..9981f30 100644
+--- a/Documentation/sysrq.txt
++++ b/Documentation/sysrq.txt
+@@ -57,10 +57,17 @@ On PowerPC - Press 'ALT - Print Screen (or F13) - <command key>,
+ On other - If you know of the key combos for other architectures, please
+            let me know so I can add them to this section.
+ 
+-On all -  write a character to /proc/sysrq-trigger.  e.g.:
+-
++On all -  write a character to /proc/sysrq-trigger, e.g.:
+ 		echo t > /proc/sysrq-trigger
+ 
++On all - Enable network SysRq by writing a cookie to icmp_echo_sysrq, e.g.
++		echo 0x01020304 >/proc/sys/net/ipv4/icmp_echo_sysrq
++	 Send an ICMP echo request with this pattern plus the particular
++	 SysRq command key. Example:
++	 	# ping -c1 -s57 -p0102030468
++	 will trigger the SysRq-H (help) command.
++
++
+ *  What are the 'command' keys?
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 'b'     - Will immediately reboot the system without syncing or unmounting
+diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
+index d786b4f..8cef1d1 100644
+--- a/include/net/netns/ipv4.h
++++ b/include/net/netns/ipv4.h
+@@ -47,6 +47,7 @@ struct netns_ipv4 {
+ 
+ 	int sysctl_icmp_echo_ignore_all;
+ 	int sysctl_icmp_echo_ignore_broadcasts;
++	int sysctl_icmp_echo_sysrq;
+ 	int sysctl_icmp_ignore_bogus_error_responses;
+ 	int sysctl_icmp_ratelimit;
+ 	int sysctl_icmp_ratemask;
+diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
+index ab188ae..028eb47 100644
+--- a/net/ipv4/icmp.c
++++ b/net/ipv4/icmp.c
+@@ -67,6 +67,7 @@
+ #include <linux/jiffies.h>
+ #include <linux/kernel.h>
+ #include <linux/fcntl.h>
++#include <linux/sysrq.h>
+ #include <linux/socket.h>
+ #include <linux/in.h>
+ #include <linux/inet.h>
+@@ -801,6 +802,30 @@ out_err:
+ }
+ 
+ /*
++ * 32bit and 64bit have different timestamp length, so we check for
++ * the cookie at offset 20 and verify it is repeated at offset 50
++ */
++#define CO_POS0		20
++#define CO_POS1		50
++#define CO_SIZE		sizeof(int)
++#define ICMP_SYSRQ_SIZE	57
++
++/*
++ * We got a ICMP_SYSRQ_SIZE sized ping request. Check for the cookie
++ * pattern and if it matches send the next byte as a trigger to sysrq.
++ */
++static void icmp_check_sysrq(struct net *net, struct sk_buff *skb)
++{
++	int cookie = htonl(net->ipv4.sysctl_icmp_echo_sysrq);
++	char *p = skb->data;
++
++	if (!memcmp(&cookie, p + CO_POS0, CO_SIZE) &&
++	    !memcmp(&cookie, p + CO_POS1, CO_SIZE) &&
++	    p[CO_POS0 + CO_SIZE] == p[CO_POS1 + CO_SIZE])
++		handle_sysrq(p[CO_POS0 + CO_SIZE]);
++}
++
++/*
+  *	Handle ICMP_ECHO ("ping") requests.
+  *
+  *	RFC 1122: 3.2.2.6 MUST have an echo server that answers ICMP echo
+@@ -827,6 +852,11 @@ static void icmp_echo(struct sk_buff *skb)
+ 		icmp_param.data_len	   = skb->len;
+ 		icmp_param.head_len	   = sizeof(struct icmphdr);
+ 		icmp_reply(&icmp_param, skb);
++
++		if (skb->len == ICMP_SYSRQ_SIZE &&
++		    net->ipv4.sysctl_icmp_echo_sysrq) {
++			icmp_check_sysrq(net, skb);
++		}
+ 	}
+ }
+ 
+diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
+index 69fd720..0ecdb72 100644
+--- a/net/ipv4/sysctl_net_ipv4.c
++++ b/net/ipv4/sysctl_net_ipv4.c
+@@ -680,6 +680,13 @@ static struct ctl_table ipv4_net_table[] = {
+ 		.proc_handler	= proc_dointvec
+ 	},
+ 	{
++		.procname	= "icmp_echo_sysrq",
++		.data		= &init_net.ipv4.sysctl_icmp_echo_sysrq,
++		.maxlen		= sizeof(int),
++		.mode		= 0644,
++		.proc_handler	= proc_dointvec
++	},
++	{
+ 		.procname	= "icmp_ignore_bogus_error_responses",
+ 		.data		= &init_net.ipv4.sysctl_icmp_ignore_bogus_error_responses,
+ 		.maxlen		= sizeof(int),

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0240-kgdb-serial-Short-term-workaround.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0240-kgdb-serial-Short-term-workaround.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0240-kgdb-serial-Short-term-workaround.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0240-kgdb-serial-Short-term-workaround.patch)
@@ -0,0 +1,116 @@
+From 0e649c8540336852a0cc42fc54b03bae87f486d5 Mon Sep 17 00:00:00 2001
+From: Jason Wessel <jason.wessel at windriver.com>
+Date: Thu, 28 Jul 2011 12:42:23 -0500
+Subject: [PATCH 240/287] kgdb/serial: Short term workaround
+
+On 07/27/2011 04:37 PM, Thomas Gleixner wrote:
+>  - KGDB (not yet disabled) is reportedly unusable on -rt right now due
+>    to missing hacks in the console locking which I dropped on purpose.
+>
+
+To work around this in the short term you can use this patch, in
+addition to the clocksource watchdog patch that Thomas brewed up.
+
+Comments are welcome of course.  Ultimately the right solution is to
+change separation between the console and the HW to have a polled mode
++ work queue so as not to introduce any kind of latency.
+
+Thanks,
+Jason.
+---
+ drivers/tty/serial/8250.c |   13 +++++++++----
+ include/linux/kdb.h       |    2 ++
+ kernel/debug/kdb/kdb_io.c |    6 ++----
+ 3 files changed, 13 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/tty/serial/8250.c b/drivers/tty/serial/8250.c
+index a3d3404..f15a1df 100644
+--- a/drivers/tty/serial/8250.c
++++ b/drivers/tty/serial/8250.c
+@@ -38,6 +38,7 @@
+ #include <linux/nmi.h>
+ #include <linux/mutex.h>
+ #include <linux/slab.h>
++#include <linux/kdb.h>
+ 
+ #include <asm/io.h>
+ #include <asm/irq.h>
+@@ -2856,10 +2857,14 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
+ 
+ 	touch_nmi_watchdog();
+ 
+-	if (up->port.sysrq || oops_in_progress)
+-		locked = spin_trylock_irqsave(&up->port.lock, flags);
+-	else
+-		spin_lock_irqsave(&up->port.lock, flags);
++	if (unlikely(in_kdb_printk())) {
++		locked = 0;
++	} else {
++		if (up->port.sysrq || oops_in_progress)
++			locked = spin_trylock_irqsave(&up->port.lock, flags);
++		else
++			spin_lock_irqsave(&up->port.lock, flags);
++	}
+ 
+ 	/*
+ 	 *	First save the IER then disable the interrupts
+diff --git a/include/linux/kdb.h b/include/linux/kdb.h
+index 0647258..0d1ebfc 100644
+--- a/include/linux/kdb.h
++++ b/include/linux/kdb.h
+@@ -150,12 +150,14 @@ extern int kdb_register(char *, kdb_func_t, char *, char *, short);
+ extern int kdb_register_repeat(char *, kdb_func_t, char *, char *,
+ 			       short, kdb_repeat_t);
+ extern int kdb_unregister(char *);
++#define in_kdb_printk() (kdb_trap_printk)
+ #else /* ! CONFIG_KGDB_KDB */
+ #define kdb_printf(...)
+ #define kdb_init(x)
+ #define kdb_register(...)
+ #define kdb_register_repeat(...)
+ #define kdb_uregister(x)
++#define in_kdb_printk() (0)
+ #endif	/* CONFIG_KGDB_KDB */
+ enum {
+ 	KDB_NOT_INITIALIZED,
+diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c
+index 4802eb5..5b7455f 100644
+--- a/kernel/debug/kdb/kdb_io.c
++++ b/kernel/debug/kdb/kdb_io.c
+@@ -553,7 +553,6 @@ int vkdb_printf(const char *fmt, va_list ap)
+ 	int diag;
+ 	int linecount;
+ 	int logging, saved_loglevel = 0;
+-	int saved_trap_printk;
+ 	int got_printf_lock = 0;
+ 	int retlen = 0;
+ 	int fnd, len;
+@@ -564,8 +563,6 @@ int vkdb_printf(const char *fmt, va_list ap)
+ 	unsigned long uninitialized_var(flags);
+ 
+ 	preempt_disable();
+-	saved_trap_printk = kdb_trap_printk;
+-	kdb_trap_printk = 0;
+ 
+ 	/* Serialize kdb_printf if multiple cpus try to write at once.
+ 	 * But if any cpu goes recursive in kdb, just print the output,
+@@ -821,7 +818,6 @@ kdb_print_out:
+ 	} else {
+ 		__release(kdb_printf_lock);
+ 	}
+-	kdb_trap_printk = saved_trap_printk;
+ 	preempt_enable();
+ 	return retlen;
+ }
+@@ -831,9 +827,11 @@ int kdb_printf(const char *fmt, ...)
+ 	va_list ap;
+ 	int r;
+ 
++	kdb_trap_printk++;
+ 	va_start(ap, fmt);
+ 	r = vkdb_printf(fmt, ap);
+ 	va_end(ap);
++	kdb_trap_printk--;
+ 
+ 	return r;
+ }

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0241-add-sys-kernel-realtime-entry.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0241-add-sys-kernel-realtime-entry.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0241-add-sys-kernel-realtime-entry.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0241-add-sys-kernel-realtime-entry.patch)
@@ -0,0 +1,50 @@
+From 2b74759e36dc684b0eceb9bb804f0be3e2b40d21 Mon Sep 17 00:00:00 2001
+From: Clark Williams <williams at redhat.com>
+Date: Sat, 30 Jul 2011 21:55:53 -0500
+Subject: [PATCH 241/287] add /sys/kernel/realtime entry
+
+Add a /sys/kernel entry to indicate that the kernel is a
+realtime kernel.
+
+Clark says that he needs this for udev rules, udev needs to evaluate
+if its a PREEMPT_RT kernel a few thousand times and parsing uname
+output is too slow or so.
+
+Are there better solutions? Should it exist and return 0 on !-rt?
+
+Signed-off-by: Clark Williams <williams at redhat.com>
+Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
+---
+ kernel/ksysfs.c |   12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c
+index 4e316e1..a546d33 100644
+--- a/kernel/ksysfs.c
++++ b/kernel/ksysfs.c
+@@ -133,6 +133,15 @@ KERNEL_ATTR_RO(vmcoreinfo);
+ 
+ #endif /* CONFIG_KEXEC */
+ 
++#if defined(CONFIG_PREEMPT_RT_FULL)
++static ssize_t  realtime_show(struct kobject *kobj,
++			      struct kobj_attribute *attr, char *buf)
++{
++	return sprintf(buf, "%d\n", 1);
++}
++KERNEL_ATTR_RO(realtime);
++#endif
++
+ /* whether file capabilities are enabled */
+ static ssize_t fscaps_show(struct kobject *kobj,
+ 				  struct kobj_attribute *attr, char *buf)
+@@ -182,6 +191,9 @@ static struct attribute * kernel_attrs[] = {
+ 	&kexec_crash_size_attr.attr,
+ 	&vmcoreinfo_attr.attr,
+ #endif
++#ifdef CONFIG_PREEMPT_RT_FULL
++	&realtime_attr.attr,
++#endif
+ 	NULL
+ };
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0242-mm-rt-kmap_atomic-scheduling.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0242-mm-rt-kmap_atomic-scheduling.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0242-mm-rt-kmap_atomic-scheduling.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0242-mm-rt-kmap_atomic-scheduling.patch)
@@ -0,0 +1,120 @@
+From 601874b46e749557b1fdc7e24d53e2f6f829ded0 Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz at infradead.org>
+Date: Thu, 28 Jul 2011 10:43:51 +0200
+Subject: [PATCH 242/287] mm, rt: kmap_atomic scheduling
+
+In fact, with migrate_disable() existing one could play games with
+kmap_atomic. You could save/restore the kmap_atomic slots on context
+switch (if there are any in use of course), this should be esp easy now
+that we have a kmap_atomic stack.
+
+Something like the below.. it wants replacing all the preempt_disable()
+stuff with pagefault_disable() && migrate_disable() of course, but then
+you can flip kmaps around like below.
+
+Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
+[dvhart at linux.intel.com: build fix]
+Link: http://lkml.kernel.org/r/1311842631.5890.208.camel@twins
+---
+ arch/x86/kernel/process_32.c |   36 ++++++++++++++++++++++++++++++++++++
+ include/linux/sched.h        |    5 +++++
+ mm/memory.c                  |    2 ++
+ 3 files changed, 43 insertions(+)
+
+diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
+index ada175e..20f1573 100644
+--- a/arch/x86/kernel/process_32.c
++++ b/arch/x86/kernel/process_32.c
+@@ -39,6 +39,7 @@
+ #include <linux/io.h>
+ #include <linux/kdebug.h>
+ #include <linux/cpuidle.h>
++#include <linux/highmem.h>
+ 
+ #include <asm/pgtable.h>
+ #include <asm/system.h>
+@@ -339,6 +340,41 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+ 		     task_thread_info(next_p)->flags & _TIF_WORK_CTXSW_NEXT))
+ 		__switch_to_xtra(prev_p, next_p, tss);
+ 
++#if defined CONFIG_PREEMPT_RT_FULL && defined CONFIG_HIGHMEM
++	/*
++	 * Save @prev's kmap_atomic stack
++	 */
++	prev_p->kmap_idx = __this_cpu_read(__kmap_atomic_idx);
++	if (unlikely(prev_p->kmap_idx)) {
++		int i;
++
++		for (i = 0; i < prev_p->kmap_idx; i++) {
++			int idx = i + KM_TYPE_NR * smp_processor_id();
++
++			pte_t *ptep = kmap_pte - idx;
++			prev_p->kmap_pte[i] = *ptep;
++			kpte_clear_flush(ptep, __fix_to_virt(FIX_KMAP_BEGIN + idx));
++		}
++
++		__this_cpu_write(__kmap_atomic_idx, 0);
++	}
++
++	/*
++	 * Restore @next_p's kmap_atomic stack
++	 */
++	if (unlikely(next_p->kmap_idx)) {
++		int i;
++
++		__this_cpu_write(__kmap_atomic_idx, next_p->kmap_idx);
++
++		for (i = 0; i < next_p->kmap_idx; i++) {
++			int idx = i + KM_TYPE_NR * smp_processor_id();
++
++			set_pte(kmap_pte - idx, next_p->kmap_pte[i]);
++		}
++	}
++#endif
++
+ 	/*
+ 	 * 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 a867df1..945d230 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -63,6 +63,7 @@ struct sched_param {
+ #include <linux/nodemask.h>
+ #include <linux/mm_types.h>
+ 
++#include <asm/kmap_types.h>
+ #include <asm/system.h>
+ #include <asm/page.h>
+ #include <asm/ptrace.h>
+@@ -1607,6 +1608,10 @@ struct task_struct {
+ 	struct rcu_head put_rcu;
+ 	int softirq_nestcnt;
+ #endif
++#if defined CONFIG_PREEMPT_RT_FULL && defined CONFIG_HIGHMEM
++	int kmap_idx;
++	pte_t kmap_pte[KM_TYPE_NR];
++#endif
+ };
+ 
+ #ifdef CONFIG_PREEMPT_RT_FULL
+diff --git a/mm/memory.c b/mm/memory.c
+index b4e9834..10d95e0 100644
+--- a/mm/memory.c
++++ b/mm/memory.c
+@@ -3450,6 +3450,7 @@ unlock:
+ #ifdef CONFIG_PREEMPT_RT_FULL
+ void pagefault_disable(void)
+ {
++	migrate_disable();
+ 	current->pagefault_disabled++;
+ 	/*
+ 	 * make sure to have issued the store before a pagefault
+@@ -3467,6 +3468,7 @@ void pagefault_enable(void)
+ 	 */
+ 	barrier();
+ 	current->pagefault_disabled--;
++	migrate_enable();
+ }
+ EXPORT_SYMBOL_GPL(pagefault_enable);
+ #endif

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0243-ipc-sem-Rework-semaphore-wakeups.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0243-ipc-sem-Rework-semaphore-wakeups.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0243-ipc-sem-Rework-semaphore-wakeups.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0243-ipc-sem-Rework-semaphore-wakeups.patch)
@@ -0,0 +1,72 @@
+From c43422aa5b0173541abefa84cd1800614a149f76 Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <a.p.zijlstra at chello.nl>
+Date: Tue, 13 Sep 2011 15:09:40 +0200
+Subject: [PATCH 243/287] ipc/sem: Rework semaphore wakeups
+
+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
+that on other CPUs.
+
+Kill this and simply wake the task directly from under the sem_lock.
+
+This was discovered by a migrate_disable() debug feature that
+disallows:
+
+  spin_lock();
+  preempt_disable();
+  spin_unlock()
+  preempt_enable();
+
+Cc: Manfred Spraul <manfred at colorfullife.com>
+Suggested-by: Thomas Gleixner <tglx at linutronix.de>
+Reported-by: Mike Galbraith <efault at gmx.de>
+Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
+Cc: Manfred Spraul <manfred at colorfullife.com>
+Link: http://lkml.kernel.org/r/1315994224.5040.1.camel@twins
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ ipc/sem.c |   10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/ipc/sem.c b/ipc/sem.c
+index 5215a81..5eaf684 100644
+--- a/ipc/sem.c
++++ b/ipc/sem.c
+@@ -461,6 +461,13 @@ undo:
+ static void wake_up_sem_queue_prepare(struct list_head *pt,
+ 				struct sem_queue *q, int error)
+ {
++#ifdef CONFIG_PREEMPT_RT_BASE
++	struct task_struct *p = q->sleeper;
++	get_task_struct(p);
++	q->status = error;
++	wake_up_process(p);
++	put_task_struct(p);
++#else
+ 	if (list_empty(pt)) {
+ 		/*
+ 		 * Hold preempt off so that we don't get preempted and have the
+@@ -472,6 +479,7 @@ static void wake_up_sem_queue_prepare(struct list_head *pt,
+ 	q->pid = error;
+ 
+ 	list_add_tail(&q->simple_list, pt);
++#endif
+ }
+ 
+ /**
+@@ -485,6 +493,7 @@ static void wake_up_sem_queue_prepare(struct list_head *pt,
+  */
+ static void wake_up_sem_queue_do(struct list_head *pt)
+ {
++#ifndef CONFIG_PREEMPT_RT_BASE
+ 	struct sem_queue *q, *t;
+ 	int did_something;
+ 
+@@ -497,6 +506,7 @@ static void wake_up_sem_queue_do(struct list_head *pt)
+ 	}
+ 	if (did_something)
+ 		preempt_enable();
++#endif
+ }
+ 
+ static void unlink_queue(struct sem_array *sma, struct sem_queue *q)

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0244-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0244-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0244-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0244-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch)
@@ -0,0 +1,166 @@
+From ed87d0a64e075fbd375ca35bfbe871869974e83b Mon Sep 17 00:00:00 2001
+From: Frank Rowand <frank.rowand at am.sony.com>
+Date: Fri, 23 Sep 2011 13:43:12 -0700
+Subject: [PATCH 244/287] sysrq: Allow immediate Magic SysRq output for
+ PREEMPT_RT_FULL
+
+Add a CONFIG option to allow the output from Magic SysRq to be output
+immediately, even if this causes large latencies.
+
+If PREEMPT_RT_FULL, printk() will not try to acquire the console lock
+when interrupts or preemption are disabled.  If the console lock is
+not acquired the printk() output will be buffered, but will not be
+output immediately. Some drivers call into the Magic SysRq code
+with interrupts or preemption disabled, so the output of Magic SysRq
+will be buffered instead of printing immediately if this option is
+not selected.
+
+Even with this option selected, Magic SysRq output will be delayed
+if the attempt to acquire the console lock fails.
+
+Signed-off-by: Frank Rowand <frank.rowand at am.sony.com>
+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 +++++
+ kernel/printk.c                             |    5 +++--
+ 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,
+ {
+ 	struct uart_cpm_port *pinfo = &cpm_uart_ports[co->index];
+ 	unsigned long flags;
+-	int nolock = oops_in_progress;
++	int nolock = oops_in_progress || sysrq_in_progress;
+ 
+ 	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)
+                 sysrq_key_table[i] = op_p;
+ }
+ 
++#ifdef CONFIG_MAGIC_SYSRQ_FORCE_PRINTK
++
++int sysrq_in_progress;
++
++static void set_sysrq_in_progress(int value)
++{
++	sysrq_in_progress = value;
++}
++
++#else
++
++static void set_sysrq_in_progress(int value)
++{
++}
++
++#endif
++
+ 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)
+ 	unsigned long flags;
+ 
+ 	spin_lock_irqsave(&sysrq_key_table_lock, flags);
++
++	set_sysrq_in_progress(1);
++
+ 	/*
+ 	 * 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)
+ 		printk("\n");
+ 		console_loglevel = orig_log_level;
+ 	}
++
++	set_sysrq_in_progress(0);
++
+ 	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 {
+ 	int enable_mask;
+ };
+ 
++#ifdef CONFIG_MAGIC_SYSRQ_FORCE_PRINTK
++extern int sysrq_in_progress;
++#else
++#define sysrq_in_progress 0
++#endif
+ #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 13ea6a9..9eabbbb 100644
+--- a/kernel/printk.c
++++ b/kernel/printk.c
+@@ -21,6 +21,7 @@
+ #include <linux/tty.h>
+ #include <linux/tty_driver.h>
+ #include <linux/console.h>
++#include <linux/sysrq.h>
+ #include <linux/init.h>
+ #include <linux/jiffies.h>
+ #include <linux/nmi.h>
+@@ -834,8 +835,8 @@ static int console_trylock_for_printk(unsigned int cpu, unsigned long flags)
+ {
+ 	int retval = 0, wake = 0;
+ #ifdef CONFIG_PREEMPT_RT_FULL
+-	int lock = !early_boot_irqs_disabled && !irqs_disabled_flags(flags) &&
+-		!preempt_count();
++	int lock = (!early_boot_irqs_disabled && !irqs_disabled_flags(flags) &&
++		!preempt_count()) || sysrq_in_progress;
+ #else
+ 	int lock = 1;
+ #endif
+diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
+index c347db3..13a937b 100644
+--- a/lib/Kconfig.debug
++++ b/lib/Kconfig.debug
+@@ -62,6 +62,28 @@ config MAGIC_SYSRQ
+ 	  Specifies the default mask for the allowed SysRq keys.  This can be
+ 	  used to disable several sensitive keys by default.
+ 
++config MAGIC_SYSRQ_FORCE_PRINTK
++	bool "Force printk from Magic SysRq"
++	depends on MAGIC_SYSRQ && PREEMPT_RT_FULL
++	default n
++	help
++	  Allow the output from Magic SysRq to be output immediately, even if
++	  this causes large latencies.  This can cause performance problems
++	  for real-time processes.
++
++	  If PREEMPT_RT_FULL, printk() will not try to acquire the console lock
++	  when interrupts or preemption are disabled.  If the console lock is
++	  not acquired the printk() output will be buffered, but will not be
++	  output immediately.  Some drivers call into the Magic SysRq code
++	  with interrupts or preemption disabled, so the output of Magic SysRq
++	  will be buffered instead of printing immediately if this option is
++	  not selected.
++
++	  Even with this option selected, Magic SysRq output will be delayed
++	  if the attempt to acquire the console lock fails.
++
++	  Don't say Y unless you really know what this hack does.
++
+ config STRIP_ASM_SYMS
+ 	bool "Strip assembler-generated symbols during link"
+ 	default n

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0245-x86-kvm-require-const-tsc-for-rt.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0245-x86-kvm-require-const-tsc-for-rt.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0245-x86-kvm-require-const-tsc-for-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0245-x86-kvm-require-const-tsc-for-rt.patch.patch)
@@ -0,0 +1,28 @@
+From 58b39f07df085aa713633f090212d577bf00040f Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Sun, 6 Nov 2011 12:26:18 +0100
+Subject: [PATCH 245/287] x86-kvm-require-const-tsc-for-rt.patch
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ arch/x86/kvm/x86.c |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
+index 4fc5323..18fc878 100644
+--- a/arch/x86/kvm/x86.c
++++ b/arch/x86/kvm/x86.c
+@@ -5210,6 +5210,13 @@ int kvm_arch_init(void *opaque)
+ 		goto out;
+ 	}
+ 
++#ifdef CONFIG_PREEMPT_RT_FULL
++	if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) {
++		printk(KERN_ERR "RT requires X86_FEATURE_CONSTANT_TSC\n");
++		return -EOPNOTSUPP;
++	}
++#endif
++
+ 	r = kvm_mmu_module_init();
+ 	if (r)
+ 		goto out;

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0246-scsi-fcoe-rt-aware.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0246-scsi-fcoe-rt-aware.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0246-scsi-fcoe-rt-aware.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0246-scsi-fcoe-rt-aware.patch.patch)
@@ -0,0 +1,113 @@
+From 185d8e165268c1babd10c64115dd9d9791a0a5a4 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Sat, 12 Nov 2011 14:00:48 +0100
+Subject: [PATCH 246/287] scsi-fcoe-rt-aware.patch
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ drivers/scsi/fcoe/fcoe.c      |   16 ++++++++--------
+ drivers/scsi/fcoe/fcoe_ctlr.c |    4 ++--
+ drivers/scsi/libfc/fc_exch.c  |    4 ++--
+ 3 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
+index 8d67467..4085187 100644
+--- a/drivers/scsi/fcoe/fcoe.c
++++ b/drivers/scsi/fcoe/fcoe.c
+@@ -1156,7 +1156,7 @@ static void fcoe_percpu_thread_destroy(unsigned int cpu)
+ 	struct sk_buff *skb;
+ #ifdef CONFIG_SMP
+ 	struct fcoe_percpu_s *p0;
+-	unsigned targ_cpu = get_cpu();
++	unsigned targ_cpu = get_cpu_light();
+ #endif /* CONFIG_SMP */
+ 
+ 	FCOE_DBG("Destroying receive thread for CPU %d\n", cpu);
+@@ -1212,7 +1212,7 @@ static void fcoe_percpu_thread_destroy(unsigned int cpu)
+ 			kfree_skb(skb);
+ 		spin_unlock_bh(&p->fcoe_rx_list.lock);
+ 	}
+-	put_cpu();
++	put_cpu_light();
+ #else
+ 	/*
+ 	 * This a non-SMP scenario where the singular Rx thread is
+@@ -1435,11 +1435,11 @@ err2:
+ static int fcoe_alloc_paged_crc_eof(struct sk_buff *skb, int tlen)
+ {
+ 	struct fcoe_percpu_s *fps;
+-	int rc;
++	int rc, cpu = get_cpu_light();
+ 
+-	fps = &get_cpu_var(fcoe_percpu);
++	fps = &per_cpu(fcoe_percpu, cpu);
+ 	rc = fcoe_get_paged_crc_eof(skb, tlen, fps);
+-	put_cpu_var(fcoe_percpu);
++	put_cpu_light();
+ 
+ 	return rc;
+ }
+@@ -1680,7 +1680,7 @@ static void fcoe_recv_frame(struct sk_buff *skb)
+ 	 */
+ 	hp = (struct fcoe_hdr *) skb_network_header(skb);
+ 
+-	stats = per_cpu_ptr(lport->dev_stats, get_cpu());
++	stats = per_cpu_ptr(lport->dev_stats, get_cpu_light());
+ 	if (unlikely(FC_FCOE_DECAPS_VER(hp) != FC_FCOE_VER)) {
+ 		if (stats->ErrorFrames < 5)
+ 			printk(KERN_WARNING "fcoe: FCoE version "
+@@ -1712,13 +1712,13 @@ static void fcoe_recv_frame(struct sk_buff *skb)
+ 		goto drop;
+ 
+ 	if (!fcoe_filter_frames(lport, fp)) {
+-		put_cpu();
++		put_cpu_light();
+ 		fc_exch_recv(lport, fp);
+ 		return;
+ 	}
+ drop:
+ 	stats->ErrorFrames++;
+-	put_cpu();
++	put_cpu_light();
+ 	kfree_skb(skb);
+ }
+ 
+diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c
+index e7522dc..bfb83c0 100644
+--- a/drivers/scsi/fcoe/fcoe_ctlr.c
++++ b/drivers/scsi/fcoe/fcoe_ctlr.c
+@@ -719,7 +719,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
+ 	unsigned long sel_time = 0;
+ 	struct fcoe_dev_stats *stats;
+ 
+-	stats = per_cpu_ptr(fip->lp->dev_stats, get_cpu());
++	stats = per_cpu_ptr(fip->lp->dev_stats, get_cpu_light());
+ 
+ 	list_for_each_entry_safe(fcf, next, &fip->fcfs, list) {
+ 		deadline = fcf->time + fcf->fka_period + fcf->fka_period / 2;
+@@ -752,7 +752,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
+ 				sel_time = fcf->time;
+ 		}
+ 	}
+-	put_cpu();
++	put_cpu_light();
+ 	if (sel_time && !fip->sel_fcf && !fip->sel_time) {
+ 		sel_time += msecs_to_jiffies(FCOE_CTLR_START_DELAY);
+ 		fip->sel_time = sel_time;
+diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
+index 9de9db2..340998f 100644
+--- a/drivers/scsi/libfc/fc_exch.c
++++ b/drivers/scsi/libfc/fc_exch.c
+@@ -724,10 +724,10 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport,
+ 	}
+ 	memset(ep, 0, sizeof(*ep));
+ 
+-	cpu = get_cpu();
++	cpu = get_cpu_light();
+ 	pool = per_cpu_ptr(mp->pool, cpu);
+ 	spin_lock_bh(&pool->lock);
+-	put_cpu();
++	put_cpu_light();
+ 
+ 	/* peek cache of free slot */
+ 	if (pool->left != FC_XID_UNKNOWN) {

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0247-x86-crypto-Reduce-preempt-disabled-regions.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0247-x86-crypto-Reduce-preempt-disabled-regions.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0247-x86-crypto-Reduce-preempt-disabled-regions.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0247-x86-crypto-Reduce-preempt-disabled-regions.patch)
@@ -0,0 +1,115 @@
+From e3ec10daa62fbf04687cc85da07031b3744325f9 Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz at infradead.org>
+Date: Mon, 14 Nov 2011 18:19:27 +0100
+Subject: [PATCH 247/287] x86: crypto: Reduce preempt disabled regions
+
+Restrict the preempt disabled regions to the actual floating point
+operations and enable preemption for the administrative actions.
+
+This is necessary on RT to avoid that kfree and other operations are
+called with preemption disabled.
+
+Reported-and-tested-by: Carsten Emde <cbe at osadl.org>
+Signed-off-by: Peter Zijlstra <peterz at infradead.org>
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ arch/x86/crypto/aesni-intel_glue.c |   24 +++++++++++++-----------
+ 1 file changed, 13 insertions(+), 11 deletions(-)
+
+diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c
+index 545d0ce..0c9eaf1 100644
+--- a/arch/x86/crypto/aesni-intel_glue.c
++++ b/arch/x86/crypto/aesni-intel_glue.c
+@@ -289,14 +289,14 @@ static int ecb_encrypt(struct blkcipher_desc *desc,
+ 	err = blkcipher_walk_virt(desc, &walk);
+ 	desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
+ 
+-	kernel_fpu_begin();
+ 	while ((nbytes = walk.nbytes)) {
++		kernel_fpu_begin();
+ 		aesni_ecb_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr,
+-			      nbytes & AES_BLOCK_MASK);
++				nbytes & AES_BLOCK_MASK);
++		kernel_fpu_end();
+ 		nbytes &= AES_BLOCK_SIZE - 1;
+ 		err = blkcipher_walk_done(desc, &walk, nbytes);
+ 	}
+-	kernel_fpu_end();
+ 
+ 	return err;
+ }
+@@ -313,14 +313,14 @@ static int ecb_decrypt(struct blkcipher_desc *desc,
+ 	err = blkcipher_walk_virt(desc, &walk);
+ 	desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
+ 
+-	kernel_fpu_begin();
+ 	while ((nbytes = walk.nbytes)) {
++		kernel_fpu_begin();
+ 		aesni_ecb_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr,
+ 			      nbytes & AES_BLOCK_MASK);
++		kernel_fpu_end();
+ 		nbytes &= AES_BLOCK_SIZE - 1;
+ 		err = blkcipher_walk_done(desc, &walk, nbytes);
+ 	}
+-	kernel_fpu_end();
+ 
+ 	return err;
+ }
+@@ -359,14 +359,14 @@ static int cbc_encrypt(struct blkcipher_desc *desc,
+ 	err = blkcipher_walk_virt(desc, &walk);
+ 	desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
+ 
+-	kernel_fpu_begin();
+ 	while ((nbytes = walk.nbytes)) {
++		kernel_fpu_begin();
+ 		aesni_cbc_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr,
+ 			      nbytes & AES_BLOCK_MASK, walk.iv);
++		kernel_fpu_end();
+ 		nbytes &= AES_BLOCK_SIZE - 1;
+ 		err = blkcipher_walk_done(desc, &walk, nbytes);
+ 	}
+-	kernel_fpu_end();
+ 
+ 	return err;
+ }
+@@ -383,14 +383,14 @@ static int cbc_decrypt(struct blkcipher_desc *desc,
+ 	err = blkcipher_walk_virt(desc, &walk);
+ 	desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
+ 
+-	kernel_fpu_begin();
+ 	while ((nbytes = walk.nbytes)) {
++		kernel_fpu_begin();
+ 		aesni_cbc_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr,
+ 			      nbytes & AES_BLOCK_MASK, walk.iv);
++		kernel_fpu_end();
+ 		nbytes &= AES_BLOCK_SIZE - 1;
+ 		err = blkcipher_walk_done(desc, &walk, nbytes);
+ 	}
+-	kernel_fpu_end();
+ 
+ 	return err;
+ }
+@@ -445,18 +445,20 @@ static int ctr_crypt(struct blkcipher_desc *desc,
+ 	err = blkcipher_walk_virt_block(desc, &walk, AES_BLOCK_SIZE);
+ 	desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
+ 
+-	kernel_fpu_begin();
+ 	while ((nbytes = walk.nbytes) >= AES_BLOCK_SIZE) {
++		kernel_fpu_begin();
+ 		aesni_ctr_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr,
+ 			      nbytes & AES_BLOCK_MASK, walk.iv);
++		kernel_fpu_end();
+ 		nbytes &= AES_BLOCK_SIZE - 1;
+ 		err = blkcipher_walk_done(desc, &walk, nbytes);
+ 	}
+ 	if (walk.nbytes) {
++		kernel_fpu_begin();
+ 		ctr_crypt_final(ctx, &walk);
++		kernel_fpu_end();
+ 		err = blkcipher_walk_done(desc, &walk, 0);
+ 	}
+-	kernel_fpu_end();
+ 
+ 	return err;
+ }

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0248-dm-Make-rt-aware.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0248-dm-Make-rt-aware.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0248-dm-Make-rt-aware.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0248-dm-Make-rt-aware.patch)
@@ -0,0 +1,37 @@
+From bad0800d5cab581521a1d6d619f4e2ef63dd3b54 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Mon, 14 Nov 2011 23:06:09 +0100
+Subject: [PATCH 248/287] dm: Make rt aware
+
+Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has
+interrupts legitimately enabled here as we cant deadlock against the
+irq thread due to the "sleeping spinlocks" conversion.
+
+Reported-by: Luis Claudio R. Goncalves <lclaudio at uudg.org>
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ drivers/md/dm.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/md/dm.c b/drivers/md/dm.c
+index 502dcf7..2dc72f3 100644
+--- a/drivers/md/dm.c
++++ b/drivers/md/dm.c
+@@ -1670,14 +1670,14 @@ static void dm_request_fn(struct request_queue *q)
+ 		if (map_request(ti, clone, md))
+ 			goto requeued;
+ 
+-		BUG_ON(!irqs_disabled());
++		BUG_ON_NONRT(!irqs_disabled());
+ 		spin_lock(q->queue_lock);
+ 	}
+ 
+ 	goto out;
+ 
+ requeued:
+-	BUG_ON(!irqs_disabled());
++	BUG_ON_NONRT(!irqs_disabled());
+ 	spin_lock(q->queue_lock);
+ 
+ delay_and_out:

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0249-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0249-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0249-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0249-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch)
@@ -0,0 +1,39 @@
+From 6a513aa68b0e7261462a4df008b680a1aa94bde5 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 14 Dec 2011 01:03:49 +0100
+Subject: [PATCH 249/287] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
+
+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.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ arch/x86/Kconfig |    2 +-
+ lib/Kconfig      |    1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
+index e084a73..c42146e 100644
+--- a/arch/x86/Kconfig
++++ b/arch/x86/Kconfig
+@@ -730,7 +730,7 @@ config IOMMU_HELPER
+ config MAXSMP
+ 	bool "Enable Maximum number of SMP Processors and NUMA Nodes"
+ 	depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL
+-	select CPUMASK_OFFSTACK
++	select CPUMASK_OFFSTACK if !PREEMPT_RT_FULL
+ 	---help---
+ 	  Enable maximum number of CPUS and NUMA Nodes for this architecture.
+ 	  If unsure, say N.
+diff --git a/lib/Kconfig b/lib/Kconfig
+index 32f3e5a..63d81e8 100644
+--- a/lib/Kconfig
++++ b/lib/Kconfig
+@@ -231,6 +231,7 @@ config CHECK_SIGNATURE
+ 
+ config CPUMASK_OFFSTACK
+ 	bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
++	depends on !PREEMPT_RT_FULL
+ 	help
+ 	  Use dynamic allocation for cpumask_var_t, instead of putting
+ 	  them on the stack.  This is a bit more expensive, but avoids

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0250-seqlock-Prevent-rt-starvation.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0250-seqlock-Prevent-rt-starvation.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0250-seqlock-Prevent-rt-starvation.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0250-seqlock-Prevent-rt-starvation.patch)
@@ -0,0 +1,168 @@
+From 254c7e75261331c7c457a4725cda75dbfe86f69e Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 22 Feb 2012 12:03:30 +0100
+Subject: [PATCH 250/287] seqlock: Prevent rt starvation
+
+If a low prio writer gets preempted while holding the seqlock write
+locked, a high prio reader spins forever on RT.
+
+To prevent this let the reader grab the spinlock, so it blocks and
+eventually boosts the writer. This way the writer can proceed and
+endless spinning is prevented.
+
+For seqcount writers we disable preemption over the update code
+path. Thaanks to Al Viro for distangling some VFS code to make that
+possible.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+---
+ include/linux/seqlock.h |   55 ++++++++++++++++++++++++++++++++++++++---------
+ include/net/neighbour.h |    2 +-
+ 2 files changed, 46 insertions(+), 11 deletions(-)
+
+diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h
+index cc7b65d..4ea1409 100644
+--- a/include/linux/seqlock.h
++++ b/include/linux/seqlock.h
+@@ -125,18 +125,30 @@ static inline int read_seqcount_retry(const seqcount_t *s, unsigned start)
+  * Sequence counter only version assumes that callers are using their
+  * own mutexing.
+  */
+-static inline void write_seqcount_begin(seqcount_t *s)
++static inline void __write_seqcount_begin(seqcount_t *s)
+ {
+ 	s->sequence++;
+ 	smp_wmb();
+ }
+ 
+-static inline void write_seqcount_end(seqcount_t *s)
++static inline void write_seqcount_begin(seqcount_t *s)
++{
++	preempt_disable_rt();
++	__write_seqcount_begin(s);
++}
++
++static inline void __write_seqcount_end(seqcount_t *s)
+ {
+ 	smp_wmb();
+ 	s->sequence++;
+ }
+ 
++static inline void write_seqcount_end(seqcount_t *s)
++{
++	__write_seqcount_end(s);
++	preempt_enable_rt();
++}
++
+ /**
+  * write_seqcount_barrier - invalidate in-progress read-side seq operations
+  * @s: pointer to seqcount_t
+@@ -177,10 +189,33 @@ typedef struct {
+ /*
+  * Read side functions for starting and finalizing a read side section.
+  */
++#ifndef CONFIG_PREEMPT_RT_FULL
+ static inline unsigned read_seqbegin(const seqlock_t *sl)
+ {
+ 	return read_seqcount_begin(&sl->seqcount);
+ }
++#else
++/*
++ * Starvation safe read side for RT
++ */
++static inline unsigned read_seqbegin(seqlock_t *sl)
++{
++	unsigned ret;
++
++repeat:
++	ret = sl->seqcount.sequence;
++	if (unlikely(ret & 1)) {
++		/*
++		 * Take the lock and let the writer proceed (i.e. evtl
++		 * boost it), otherwise we could loop here forever.
++		 */
++		spin_lock(&sl->lock);
++		spin_unlock(&sl->lock);
++		goto repeat;
++	}
++	return ret;
++}
++#endif
+ 
+ static inline unsigned read_seqretry(const seqlock_t *sl, unsigned start)
+ {
+@@ -195,36 +230,36 @@ static inline unsigned read_seqretry(const seqlock_t *sl, unsigned start)
+ static inline void write_seqlock(seqlock_t *sl)
+ {
+ 	spin_lock(&sl->lock);
+-	write_seqcount_begin(&sl->seqcount);
++	__write_seqcount_begin(&sl->seqcount);
+ }
+ 
+ static inline void write_sequnlock(seqlock_t *sl)
+ {
+-	write_seqcount_end(&sl->seqcount);
++	__write_seqcount_end(&sl->seqcount);
+ 	spin_unlock(&sl->lock);
+ }
+ 
+ static inline void write_seqlock_bh(seqlock_t *sl)
+ {
+ 	spin_lock_bh(&sl->lock);
+-	write_seqcount_begin(&sl->seqcount);
++	__write_seqcount_begin(&sl->seqcount);
+ }
+ 
+ static inline void write_sequnlock_bh(seqlock_t *sl)
+ {
+-	write_seqcount_end(&sl->seqcount);
++	__write_seqcount_end(&sl->seqcount);
+ 	spin_unlock_bh(&sl->lock);
+ }
+ 
+ static inline void write_seqlock_irq(seqlock_t *sl)
+ {
+ 	spin_lock_irq(&sl->lock);
+-	write_seqcount_begin(&sl->seqcount);
++	__write_seqcount_begin(&sl->seqcount);
+ }
+ 
+ static inline void write_sequnlock_irq(seqlock_t *sl)
+ {
+-	write_seqcount_end(&sl->seqcount);
++	__write_seqcount_end(&sl->seqcount);
+ 	spin_unlock_irq(&sl->lock);
+ }
+ 
+@@ -233,7 +268,7 @@ static inline unsigned long __write_seqlock_irqsave(seqlock_t *sl)
+ 	unsigned long flags;
+ 
+ 	spin_lock_irqsave(&sl->lock, flags);
+-	write_seqcount_begin(&sl->seqcount);
++	__write_seqcount_begin(&sl->seqcount);
+ 	return flags;
+ }
+ 
+@@ -243,7 +278,7 @@ static inline unsigned long __write_seqlock_irqsave(seqlock_t *sl)
+ static inline void
+ write_sequnlock_irqrestore(seqlock_t *sl, unsigned long flags)
+ {
+-	write_seqcount_end(&sl->seqcount);
++	__write_seqcount_end(&sl->seqcount);
+ 	spin_unlock_irqrestore(&sl->lock, flags);
+ }
+ 
+diff --git a/include/net/neighbour.h b/include/net/neighbour.h
+index 2720884..6fda9fa 100644
+--- a/include/net/neighbour.h
++++ b/include/net/neighbour.h
+@@ -385,7 +385,7 @@ struct neighbour_cb {
+ 
+ #define NEIGH_CB(skb)	((struct neighbour_cb *)(skb)->cb)
+ 
+-static inline void neigh_ha_snapshot(char *dst, const struct neighbour *n,
++static inline void neigh_ha_snapshot(char *dst, struct neighbour *n,
+ 				     const struct net_device *dev)
+ {
+ 	unsigned int seq;

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0251-timer-Fix-hotplug-for-rt.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0251-timer-Fix-hotplug-for-rt.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0251-timer-Fix-hotplug-for-rt.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0251-timer-Fix-hotplug-for-rt.patch)
@@ -0,0 +1,73 @@
+From c4555387cb7fe49f9ec75cdf5537f5c14a89d1fa Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt at goodmis.org>
+Date: Thu, 1 Mar 2012 13:55:28 -0500
+Subject: [PATCH 251/287] timer: Fix hotplug for -rt
+
+Revert the RT patch:
+    Author: Ingo Molnar <mingo at elte.hu>
+    Date:   Fri Jul 3 08:30:32 2009 -0500
+    timers: fix timer hotplug on -rt
+
+    Here we are in the CPU_DEAD notifier, and we must not sleep nor
+    enable interrupts.
+
+There's no problem with sleeping in this notifier.
+
+But the get_cpu_var() had to be converted to a get_local_var().
+
+Replace the previous fix with the get_local_var() convert.
+
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+Cc: Carsten Emde <C.Emde at osadl.org>
+Cc: John Kacur <jkacur at redhat.com>
+Cc: Peter Zijlstra <peterz at infradead.org>
+Cc: Clark Williams <clark.williams at gmail.com>
+Cc: stable-rt at vger.kernel.org
+Link: http://lkml.kernel.org/r/20120301190344.948157137@goodmis.org
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ kernel/timer.c |   16 +++++-----------
+ 1 file changed, 5 insertions(+), 11 deletions(-)
+
+diff --git a/kernel/timer.c b/kernel/timer.c
+index a791a43..c8c88d1 100644
+--- a/kernel/timer.c
++++ b/kernel/timer.c
+@@ -1743,21 +1743,17 @@ static void __cpuinit migrate_timers(int cpu)
+ {
+ 	struct tvec_base *old_base;
+ 	struct tvec_base *new_base;
+-	unsigned long flags;
+ 	int i;
+ 
+ 	BUG_ON(cpu_online(cpu));
+ 	old_base = per_cpu(tvec_bases, cpu);
+-	new_base = get_cpu_var(tvec_bases);
++	new_base = get_local_var(tvec_bases);
+ 	/*
+ 	 * The caller is globally serialized and nobody else
+ 	 * takes two locks at once, deadlock is not possible.
+ 	 */
+-	local_irq_save(flags);
+-	while (!spin_trylock(&new_base->lock))
+-		cpu_relax();
+-	while (!spin_trylock(&old_base->lock))
+-		cpu_relax();
++	spin_lock_irq(&new_base->lock);
++	spin_lock_nested(&old_base->lock, SINGLE_DEPTH_NESTING);
+ 
+ 	BUG_ON(old_base->running_timer);
+ 
+@@ -1771,10 +1767,8 @@ static void __cpuinit migrate_timers(int cpu)
+ 	}
+ 
+ 	spin_unlock(&old_base->lock);
+-	spin_unlock(&new_base->lock);
+-	local_irq_restore(flags);
+-
+-	put_cpu_var(tvec_bases);
++	spin_unlock_irq(&new_base->lock);
++	put_local_var(tvec_bases);
+ }
+ #endif /* CONFIG_HOTPLUG_CPU */
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0252-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0252-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0252-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0252-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch)
@@ -0,0 +1,45 @@
+From 5d077ea8fa156740eb398aadc5189cd0cb831d6f Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt at goodmis.org>
+Date: Thu, 1 Mar 2012 13:55:29 -0500
+Subject: [PATCH 252/287] futex/rt: Fix possible lockup when taking pi_lock in
+ proxy handler
+
+When taking the pi_lock, we must disable interrupts because the
+pi_lock can also be taken in an interrupt handler.
+
+Use raw_spin_lock_irq() instead of raw_spin_lock().
+
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+Cc: Carsten Emde <C.Emde at osadl.org>
+Cc: John Kacur <jkacur at redhat.com>
+Cc: Peter Zijlstra <peterz at infradead.org>
+Cc: Clark Williams <clark.williams at gmail.com>
+Cc: stable-rt at vger.kernel.org
+Link: http://lkml.kernel.org/r/20120301190345.165160680@goodmis.org
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ kernel/rtmutex.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/kernel/rtmutex.c b/kernel/rtmutex.c
+index 9850dc0..b525158 100644
+--- a/kernel/rtmutex.c
++++ b/kernel/rtmutex.c
+@@ -1373,14 +1373,14 @@ int rt_mutex_start_proxy_lock(struct rt_mutex *lock,
+ 	 * PI_REQUEUE_INPROGRESS, so that if the task is waking up
+ 	 * it will know that we are in the process of requeuing it.
+ 	 */
+-	raw_spin_lock(&task->pi_lock);
++	raw_spin_lock_irq(&task->pi_lock);
+ 	if (task->pi_blocked_on) {
+-		raw_spin_unlock(&task->pi_lock);
++		raw_spin_unlock_irq(&task->pi_lock);
+ 		raw_spin_unlock(&lock->wait_lock);
+ 		return -EAGAIN;
+ 	}
+ 	task->pi_blocked_on = PI_REQUEUE_INPROGRESS;
+-	raw_spin_unlock(&task->pi_lock);
++	raw_spin_unlock_irq(&task->pi_lock);
+ #endif
+ 
+ 	ret = task_blocks_on_rt_mutex(lock, waiter, task, detect_deadlock);

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0253-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0253-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0253-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0253-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch)
@@ -0,0 +1,35 @@
+From a45cb00b789786ef0203de598f548aef5fbfda0c Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt at goodmis.org>
+Date: Thu, 1 Mar 2012 13:55:32 -0500
+Subject: [PATCH 253/287] ring-buffer/rt: Check for irqs disabled before
+ grabbing reader lock
+
+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
+disabled. Add that check as well.
+
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+Cc: Carsten Emde <C.Emde at osadl.org>
+Cc: John Kacur <jkacur at redhat.com>
+Cc: Peter Zijlstra <peterz at infradead.org>
+Cc: Clark Williams <clark.williams at gmail.com>
+Cc: stable-rt at vger.kernel.org
+Link: http://lkml.kernel.org/r/20120301190345.786365803@goodmis.org
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ kernel/trace/ring_buffer.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
+index 354017f..c060f04 100644
+--- a/kernel/trace/ring_buffer.c
++++ b/kernel/trace/ring_buffer.c
+@@ -1054,7 +1054,7 @@ static inline int ok_to_lock(void)
+ 	if (in_nmi())
+ 		return 0;
+ #ifdef CONFIG_PREEMPT_RT_FULL
+-	if (in_atomic())
++	if (in_atomic() || irqs_disabled())
+ 		return 0;
+ #endif
+ 	return 1;

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0254-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0254-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0254-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0254-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch)
@@ -0,0 +1,50 @@
+From 75a36e6fb61ea260f940d2d53342e13138f085cd Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt at goodmis.org>
+Date: Thu, 1 Mar 2012 13:55:33 -0500
+Subject: [PATCH 254/287] sched/rt: Fix wait_task_interactive() to test
+ rt_spin_lock state
+
+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
+and can return with an incorrect result if the task it is waiting
+for is blocked on a rt_spin_lock() and is waking up.
+
+The rt_spin_locks save the tasks state in the saved_state field
+and the wait_task_interactive() must also test that state.
+
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+Cc: Carsten Emde <C.Emde at osadl.org>
+Cc: John Kacur <jkacur at redhat.com>
+Cc: Peter Zijlstra <peterz at infradead.org>
+Cc: Clark Williams <clark.williams at gmail.com>
+Cc: stable-rt at vger.kernel.org
+Link: http://lkml.kernel.org/r/20120301190345.979435764@goodmis.org
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ kernel/sched.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/sched.c b/kernel/sched.c
+index ba3ddde..0b263dd 100644
+--- a/kernel/sched.c
++++ b/kernel/sched.c
+@@ -2446,7 +2446,8 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
+ 		 * is actually now running somewhere else!
+ 		 */
+ 		while (task_running(rq, p)) {
+-			if (match_state && unlikely(p->state != match_state))
++			if (match_state && unlikely(p->state != match_state)
++			    && unlikely(p->saved_state != match_state))
+ 				return 0;
+ 			cpu_relax();
+ 		}
+@@ -2461,7 +2462,8 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
+ 		running = task_running(rq, p);
+ 		on_rq = p->on_rq;
+ 		ncsw = 0;
+-		if (!match_state || p->state == match_state)
++		if (!match_state || p->state == match_state
++		    || p->saved_state == match_state)
+ 			ncsw = p->nvcsw | LONG_MIN; /* sets MSB */
+ 		task_rq_unlock(rq, p, &flags);
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0255-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0255-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0255-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0255-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch)
@@ -0,0 +1,109 @@
+From ef222cafa766c6eb25b9b4fde2bd9d64f852c418 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt at goodmis.org>
+Date: Thu, 1 Mar 2012 13:55:30 -0500
+Subject: [PATCH 255/287] lglock/rt: Use non-rt for_each_cpu() in -rt code
+
+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
+mask for this, and for good reason.
+
+A task may grab a *_global_lock_online(), and in the mean time, one
+of the CPUs goes offline. Now when that task does a *_global_unlock_online()
+it releases all the locks *except* the one that went offline.
+
+Now if that CPU were to come back on line, its lock is now owned by a
+task that never released it when it should have.
+
+This causes all sorts of fun errors. Like owners of a lock no longer
+existing, or sleeping on IO, waiting to be woken up by a task that
+happens to be blocked on the lock it never released.
+
+Convert the RT versions to use the lglock specific cpumasks. As once
+a CPU comes on line, the mask is set, and never cleared even when the
+CPU goes offline. The locks for that CPU will still be taken and released.
+
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+Cc: Carsten Emde <C.Emde at osadl.org>
+Cc: John Kacur <jkacur at redhat.com>
+Cc: Peter Zijlstra <peterz at infradead.org>
+Cc: Clark Williams <clark.williams at gmail.com>
+Cc: stable-rt at vger.kernel.org
+Link: http://lkml.kernel.org/r/20120301190345.374756214@goodmis.org
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ include/linux/lglock.h |   35 ++++++++++++++++++++++++++++++++---
+ 1 file changed, 32 insertions(+), 3 deletions(-)
+
+diff --git a/include/linux/lglock.h b/include/linux/lglock.h
+index 52b289f..cdfcef3 100644
+--- a/include/linux/lglock.h
++++ b/include/linux/lglock.h
+@@ -203,9 +203,31 @@
+ #else /* !PREEMPT_RT_FULL */
+ #define DEFINE_LGLOCK(name)						\
+ 									\
+- DEFINE_PER_CPU(struct rt_mutex, name##_lock);					\
++ DEFINE_PER_CPU(struct rt_mutex, name##_lock);				\
++ DEFINE_SPINLOCK(name##_cpu_lock);					\
++ cpumask_t name##_cpus __read_mostly;					\
+  DEFINE_LGLOCK_LOCKDEP(name);						\
+ 									\
++ static int								\
++ name##_lg_cpu_callback(struct notifier_block *nb,			\
++				unsigned long action, void *hcpu)	\
++ {									\
++	switch (action & ~CPU_TASKS_FROZEN) {				\
++	case CPU_UP_PREPARE:						\
++		spin_lock(&name##_cpu_lock);				\
++		cpu_set((unsigned long)hcpu, name##_cpus);		\
++		spin_unlock(&name##_cpu_lock);				\
++		break;							\
++	case CPU_UP_CANCELED: case CPU_DEAD:				\
++		spin_lock(&name##_cpu_lock);				\
++		cpu_clear((unsigned long)hcpu, name##_cpus);		\
++		spin_unlock(&name##_cpu_lock);				\
++	}								\
++	return NOTIFY_OK;						\
++ }									\
++ static struct notifier_block name##_lg_cpu_notifier = {		\
++	.notifier_call = name##_lg_cpu_callback,			\
++ };									\
+  void name##_lock_init(void) {						\
+ 	int i;								\
+ 	LOCKDEP_INIT_MAP(&name##_lock_dep_map, #name, &name##_lock_key, 0); \
+@@ -214,6 +236,11 @@
+ 		lock = &per_cpu(name##_lock, i);			\
+ 		rt_mutex_init(lock);					\
+ 	}								\
++	register_hotcpu_notifier(&name##_lg_cpu_notifier);		\
++	get_online_cpus();						\
++	for_each_online_cpu(i)						\
++		cpu_set(i, name##_cpus);				\
++	put_online_cpus();						\
+  }									\
+  EXPORT_SYMBOL(name##_lock_init);					\
+ 									\
+@@ -254,7 +281,8 @@
+  void name##_global_lock_online(void) {					\
+ 	int i;								\
+ 	rwlock_acquire(&name##_lock_dep_map, 0, 0, _RET_IP_);		\
+-	for_each_online_cpu(i) {					\
++	spin_lock(&name##_cpu_lock);					\
++	for_each_cpu(i, &name##_cpus) {					\
+ 		struct rt_mutex *lock;					\
+ 		lock = &per_cpu(name##_lock, i);			\
+ 		__rt_spin_lock(lock);					\
+@@ -265,11 +293,12 @@
+  void name##_global_unlock_online(void) {				\
+ 	int i;								\
+ 	rwlock_release(&name##_lock_dep_map, 1, _RET_IP_);		\
+-	for_each_online_cpu(i) {					\
++	for_each_cpu(i, &name##_cpus) {					\
+ 		struct rt_mutex *lock;					\
+ 		lock = &per_cpu(name##_lock, i);			\
+ 		__rt_spin_unlock(lock);					\
+ 	}								\
++	spin_unlock(&name##_cpu_lock);					\
+  }									\
+  EXPORT_SYMBOL(name##_global_unlock_online);				\
+ 									\

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0256-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0256-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0256-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0256-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch)
@@ -0,0 +1,124 @@
+From a19fc36f92b52ee67ac5f4b4d9774e9a85f6c4f6 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt at goodmis.org>
+Date: Fri, 2 Mar 2012 10:36:57 -0500
+Subject: [PATCH 256/287] cpu: Make hotplug.lock a "sleeping" spinlock on RT
+
+Tasks can block on hotplug.lock in pin_current_cpu(), but their state
+might be != RUNNING. So the mutex wakeup will set the state
+unconditionally to RUNNING. That might cause spurious unexpected
+wakeups. We could provide a state preserving mutex_lock() function,
+but this is semantically backwards. So instead we convert the
+hotplug.lock() to a spinlock for RT, which has the state preserving
+semantics already.
+
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+Cc: Carsten Emde <C.Emde at osadl.org>
+Cc: John Kacur <jkacur at redhat.com>
+Cc: Peter Zijlstra <peterz at infradead.org>
+Cc: Clark Williams <clark.williams at gmail.com>
+Cc: stable-rt at vger.kernel.org
+Link: http://lkml.kernel.org/r/1330702617.25686.265.camel@gandalf.stny.rr.com
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ kernel/cpu.c |   35 ++++++++++++++++++++++++++---------
+ 1 file changed, 26 insertions(+), 9 deletions(-)
+
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index fa40834..66dfb74 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -46,7 +46,12 @@ static int cpu_hotplug_disabled;
+ 
+ static struct {
+ 	struct task_struct *active_writer;
++#ifdef CONFIG_PREEMPT_RT_FULL
++	/* Makes the lock keep the task's state */
++	spinlock_t lock;
++#else
+ 	struct mutex lock; /* Synchronizes accesses to refcount, */
++#endif
+ 	/*
+ 	 * Also blocks the new readers during
+ 	 * an ongoing cpu hotplug operation.
+@@ -54,10 +59,22 @@ static struct {
+ 	int refcount;
+ } cpu_hotplug = {
+ 	.active_writer = NULL,
++#ifdef CONFIG_PREEMPT_RT_FULL
++	.lock = __SPIN_LOCK_UNLOCKED(cpu_hotplug.lock),
++#else
+ 	.lock = __MUTEX_INITIALIZER(cpu_hotplug.lock),
++#endif
+ 	.refcount = 0,
+ };
+ 
++#ifdef CONFIG_PREEMPT_RT_FULL
++# define hotplug_lock() rt_spin_lock(&cpu_hotplug.lock)
++# define hotplug_unlock() rt_spin_unlock(&cpu_hotplug.lock)
++#else
++# define hotplug_lock() mutex_lock(&cpu_hotplug.lock)
++# define hotplug_unlock() mutex_unlock(&cpu_hotplug.lock)
++#endif
++
+ struct hotplug_pcp {
+ 	struct task_struct *unplug;
+ 	int refcount;
+@@ -87,8 +104,8 @@ retry:
+ 		return;
+ 	}
+ 	preempt_enable();
+-	mutex_lock(&cpu_hotplug.lock);
+-	mutex_unlock(&cpu_hotplug.lock);
++	hotplug_lock();
++	hotplug_unlock();
+ 	preempt_disable();
+ 	goto retry;
+ }
+@@ -161,9 +178,9 @@ void get_online_cpus(void)
+ 	might_sleep();
+ 	if (cpu_hotplug.active_writer == current)
+ 		return;
+-	mutex_lock(&cpu_hotplug.lock);
++	hotplug_lock();
+ 	cpu_hotplug.refcount++;
+-	mutex_unlock(&cpu_hotplug.lock);
++	hotplug_unlock();
+ 
+ }
+ EXPORT_SYMBOL_GPL(get_online_cpus);
+@@ -172,10 +189,10 @@ void put_online_cpus(void)
+ {
+ 	if (cpu_hotplug.active_writer == current)
+ 		return;
+-	mutex_lock(&cpu_hotplug.lock);
++	hotplug_lock();
+ 	if (!--cpu_hotplug.refcount && unlikely(cpu_hotplug.active_writer))
+ 		wake_up_process(cpu_hotplug.active_writer);
+-	mutex_unlock(&cpu_hotplug.lock);
++	hotplug_unlock();
+ 
+ }
+ EXPORT_SYMBOL_GPL(put_online_cpus);
+@@ -207,11 +224,11 @@ static void cpu_hotplug_begin(void)
+ 	cpu_hotplug.active_writer = current;
+ 
+ 	for (;;) {
+-		mutex_lock(&cpu_hotplug.lock);
++		hotplug_lock();
+ 		if (likely(!cpu_hotplug.refcount))
+ 			break;
+ 		__set_current_state(TASK_UNINTERRUPTIBLE);
+-		mutex_unlock(&cpu_hotplug.lock);
++		hotplug_unlock();
+ 		schedule();
+ 	}
+ }
+@@ -219,7 +236,7 @@ static void cpu_hotplug_begin(void)
+ static void cpu_hotplug_done(void)
+ {
+ 	cpu_hotplug.active_writer = NULL;
+-	mutex_unlock(&cpu_hotplug.lock);
++	hotplug_unlock();
+ }
+ 
+ #else /* #if CONFIG_HOTPLUG_CPU */

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0257-softirq-Check-preemption-after-reenabling-interrupts.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0257-softirq-Check-preemption-after-reenabling-interrupts.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0257-softirq-Check-preemption-after-reenabling-interrupts.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0257-softirq-Check-preemption-after-reenabling-interrupts.patch)
@@ -0,0 +1,155 @@
+From 11581a03a976f3abd93a81da0d5b75c25a2b81e6 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Sun, 13 Nov 2011 17:17:09 +0100
+Subject: [PATCH 257/287] softirq: Check preemption after reenabling
+ interrupts
+
+raise_softirq_irqoff() disables interrupts and wakes the softirq
+daemon, but after reenabling interrupts there is no preemption check,
+so the execution of the softirq thread might be delayed arbitrarily.
+
+In principle we could add that check to local_irq_enable/restore, but
+that's overkill as the rasie_softirq_irqoff() sections are the only
+ones which show this behaviour.
+
+Reported-by: Carsten Emde <cbe at osadl.org>
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+---
+ block/blk-iopoll.c      |    3 +++
+ block/blk-softirq.c     |    3 +++
+ include/linux/preempt.h |    3 +++
+ net/core/dev.c          |    6 ++++++
+ 4 files changed, 15 insertions(+)
+
+diff --git a/block/blk-iopoll.c b/block/blk-iopoll.c
+index 58916af..f7ca9b4 100644
+--- a/block/blk-iopoll.c
++++ b/block/blk-iopoll.c
+@@ -38,6 +38,7 @@ void blk_iopoll_sched(struct blk_iopoll *iop)
+ 	list_add_tail(&iop->list, &__get_cpu_var(blk_cpu_iopoll));
+ 	__raise_softirq_irqoff(BLOCK_IOPOLL_SOFTIRQ);
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ }
+ EXPORT_SYMBOL(blk_iopoll_sched);
+ 
+@@ -135,6 +136,7 @@ static void blk_iopoll_softirq(struct softirq_action *h)
+ 		__raise_softirq_irqoff(BLOCK_IOPOLL_SOFTIRQ);
+ 
+ 	local_irq_enable();
++	preempt_check_resched_rt();
+ }
+ 
+ /**
+@@ -204,6 +206,7 @@ static int __cpuinit blk_iopoll_cpu_notify(struct notifier_block *self,
+ 				 &__get_cpu_var(blk_cpu_iopoll));
+ 		__raise_softirq_irqoff(BLOCK_IOPOLL_SOFTIRQ);
+ 		local_irq_enable();
++		preempt_check_resched_rt();
+ 	}
+ 
+ 	return NOTIFY_OK;
+diff --git a/block/blk-softirq.c b/block/blk-softirq.c
+index 1366a89..60a88ab 100644
+--- a/block/blk-softirq.c
++++ b/block/blk-softirq.c
+@@ -50,6 +50,7 @@ static void trigger_softirq(void *data)
+ 		raise_softirq_irqoff(BLOCK_SOFTIRQ);
+ 
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ }
+ 
+ /*
+@@ -92,6 +93,7 @@ static int __cpuinit blk_cpu_notify(struct notifier_block *self,
+ 				 &__get_cpu_var(blk_cpu_done));
+ 		raise_softirq_irqoff(BLOCK_SOFTIRQ);
+ 		local_irq_enable();
++		preempt_check_resched_rt();
+ 	}
+ 
+ 	return NOTIFY_OK;
+@@ -150,6 +152,7 @@ do_local:
+ 		goto do_local;
+ 
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ }
+ 
+ /**
+diff --git a/include/linux/preempt.h b/include/linux/preempt.h
+index 6450c01..58d8982 100644
+--- a/include/linux/preempt.h
++++ b/include/linux/preempt.h
+@@ -56,8 +56,10 @@ do { \
+ 
+ #ifndef CONFIG_PREEMPT_RT_BASE
+ # define preempt_enable_no_resched()	__preempt_enable_no_resched()
++# define preempt_check_resched_rt()	do { } while (0)
+ #else
+ # define preempt_enable_no_resched()	preempt_enable()
++# define preempt_check_resched_rt()	preempt_check_resched()
+ #endif
+ 
+ #define preempt_enable() \
+@@ -105,6 +107,7 @@ do { \
+ #define preempt_disable_notrace()		do { } while (0)
+ #define preempt_enable_no_resched_notrace()	do { } while (0)
+ #define preempt_enable_notrace()		do { } while (0)
++#define preempt_check_resched_rt()	do { } while (0)
+ 
+ #endif /* CONFIG_PREEMPT_COUNT */
+ 
+diff --git a/net/core/dev.c b/net/core/dev.c
+index c09fc22..20fe9a8 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -1819,6 +1819,7 @@ static inline void __netif_reschedule(struct Qdisc *q)
+ 	sd->output_queue_tailp = &q->next_sched;
+ 	raise_softirq_irqoff(NET_TX_SOFTIRQ);
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ }
+ 
+ void __netif_schedule(struct Qdisc *q)
+@@ -1840,6 +1841,7 @@ void dev_kfree_skb_irq(struct sk_buff *skb)
+ 		sd->completion_queue = skb;
+ 		raise_softirq_irqoff(NET_TX_SOFTIRQ);
+ 		local_irq_restore(flags);
++		preempt_check_resched_rt();
+ 	}
+ }
+ EXPORT_SYMBOL(dev_kfree_skb_irq);
+@@ -2963,6 +2965,7 @@ enqueue:
+ 	rps_unlock(sd);
+ 
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ 
+ 	atomic_long_inc(&skb->dev->rx_dropped);
+ 	kfree_skb(skb);
+@@ -3784,6 +3787,7 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
+ 	} else
+ #endif
+ 		local_irq_enable();
++	preempt_check_resched_rt();
+ }
+ 
+ static int process_backlog(struct napi_struct *napi, int quota)
+@@ -3856,6 +3860,7 @@ void __napi_schedule(struct napi_struct *n)
+ 	local_irq_save(flags);
+ 	____napi_schedule(&__get_cpu_var(softnet_data), n);
+ 	local_irq_restore(flags);
++	preempt_check_resched_rt();
+ }
+ EXPORT_SYMBOL(__napi_schedule);
+ 
+@@ -6367,6 +6372,7 @@ static int dev_cpu_callback(struct notifier_block *nfb,
+ 
+ 	raise_softirq_irqoff(NET_TX_SOFTIRQ);
+ 	local_irq_enable();
++	preempt_check_resched_rt();
+ 
+ 	/* Process offline CPU's input_pkt_queue */
+ 	while ((skb = __skb_dequeue(&oldsd->process_queue))) {

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0258-rt-Introduce-cpu_chill.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0258-rt-Introduce-cpu_chill.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0258-rt-Introduce-cpu_chill.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0258-rt-Introduce-cpu_chill.patch)
@@ -0,0 +1,31 @@
+From 578ba04a14c3db2a03e53548ee014c3bab5fd64b Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 7 Mar 2012 20:51:03 +0100
+Subject: [PATCH 258/287] rt: Introduce cpu_chill()
+
+Retry loops on RT might loop forever when the modifying side was
+preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill()
+defaults to cpu_relax() for non RT. On RT it puts the looping task to
+sleep for a tick so the preempted task can make progress.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+---
+ include/linux/delay.h |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/include/linux/delay.h b/include/linux/delay.h
+index a6ecb34..e23a7c0 100644
+--- a/include/linux/delay.h
++++ b/include/linux/delay.h
+@@ -52,4 +52,10 @@ static inline void ssleep(unsigned int seconds)
+ 	msleep(seconds * 1000);
+ }
+ 
++#ifdef CONFIG_PREEMPT_RT_FULL
++# define cpu_chill()	msleep(1)
++#else
++# define cpu_chill()	cpu_relax()
++#endif
++
+ #endif /* defined(_LINUX_DELAY_H) */

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0259-fs-dcache-Use-cpu_chill-in-trylock-loops.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0259-fs-dcache-Use-cpu_chill-in-trylock-loops.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0259-fs-dcache-Use-cpu_chill-in-trylock-loops.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0259-fs-dcache-Use-cpu_chill-in-trylock-loops.patch)
@@ -0,0 +1,103 @@
+From c3015ab620b73dfcaa8b46bfc24041520b3d9569 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 7 Mar 2012 21:00:34 +0100
+Subject: [PATCH 259/287] fs: dcache: Use cpu_chill() in trylock loops
+
+Retry loops on RT might loop forever when the modifying side was
+preempted. Use cpu_chill() instead of cpu_relax() to let the system
+make progress.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+---
+ fs/autofs4/autofs_i.h |    1 +
+ fs/autofs4/expire.c   |    2 +-
+ fs/dcache.c           |    7 ++++---
+ fs/namespace.c        |    3 ++-
+ 4 files changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
+index 650d520..fb77639 100644
+--- a/fs/autofs4/autofs_i.h
++++ b/fs/autofs4/autofs_i.h
+@@ -34,6 +34,7 @@
+ #include <linux/sched.h>
+ #include <linux/mount.h>
+ #include <linux/namei.h>
++#include <linux/delay.h>
+ #include <asm/current.h>
+ #include <asm/uaccess.h>
+ 
+diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c
+index 450f529..43afbb0 100644
+--- a/fs/autofs4/expire.c
++++ b/fs/autofs4/expire.c
+@@ -170,7 +170,7 @@ again:
+ 			parent = p->d_parent;
+ 			if (!spin_trylock(&parent->d_lock)) {
+ 				spin_unlock(&p->d_lock);
+-				cpu_relax();
++				cpu_chill();
+ 				goto relock;
+ 			}
+ 			spin_unlock(&p->d_lock);
+diff --git a/fs/dcache.c b/fs/dcache.c
+index 63c0c6b..152184c 100644
+--- a/fs/dcache.c
++++ b/fs/dcache.c
+@@ -37,6 +37,7 @@
+ #include <linux/rculist_bl.h>
+ #include <linux/prefetch.h>
+ #include <linux/ratelimit.h>
++#include <linux/delay.h>
+ #include "internal.h"
+ 
+ /*
+@@ -410,7 +411,7 @@ static inline struct dentry *dentry_kill(struct dentry *dentry, int ref)
+ 	if (inode && !spin_trylock(&inode->i_lock)) {
+ relock:
+ 		spin_unlock(&dentry->d_lock);
+-		cpu_relax();
++		cpu_chill();
+ 		return dentry; /* try again with same dentry */
+ 	}
+ 	if (IS_ROOT(dentry))
+@@ -796,7 +797,7 @@ relock:
+ 
+ 		if (!spin_trylock(&dentry->d_lock)) {
+ 			spin_unlock(&dcache_lru_lock);
+-			cpu_relax();
++			cpu_chill();
+ 			goto relock;
+ 		}
+ 
+@@ -1979,7 +1980,7 @@ again:
+ 	if (dentry->d_count == 1) {
+ 		if (inode && !spin_trylock(&inode->i_lock)) {
+ 			spin_unlock(&dentry->d_lock);
+-			cpu_relax();
++			cpu_chill();
+ 			goto again;
+ 		}
+ 		dentry->d_flags &= ~DCACHE_CANT_MOUNT;
+diff --git a/fs/namespace.c b/fs/namespace.c
+index 644dbde..c45da77 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -31,6 +31,7 @@
+ #include <linux/idr.h>
+ #include <linux/fs_struct.h>
+ #include <linux/fsnotify.h>
++#include <linux/delay.h>
+ #include <asm/uaccess.h>
+ #include <asm/unistd.h>
+ #include "pnode.h"
+@@ -346,7 +347,7 @@ int mnt_want_write(struct vfsmount *mnt)
+ 	 */
+ 	while (mnt->mnt_flags & MNT_WRITE_HOLD) {
+ 		preempt_enable();
+-		cpu_relax();
++		cpu_chill();
+ 		preempt_disable();
+ 	}
+ 	/*

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0260-net-Use-cpu_chill-instead-of-cpu_relax.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0260-net-Use-cpu_chill-instead-of-cpu_relax.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0260-net-Use-cpu_chill-instead-of-cpu_relax.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0260-net-Use-cpu_chill-instead-of-cpu_relax.patch)
@@ -0,0 +1,67 @@
+From 7d13568e2939a446a4c9160d2c82958e543743b1 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 7 Mar 2012 21:10:04 +0100
+Subject: [PATCH 260/287] net: Use cpu_chill() instead of cpu_relax()
+
+Retry loops on RT might loop forever when the modifying side was
+preempted. Use cpu_chill() instead of cpu_relax() to let the system
+make progress.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+---
+ net/packet/af_packet.c |    5 +++--
+ net/rds/ib_rdma.c      |    3 ++-
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
+index 85afc13..684f510 100644
+--- a/net/packet/af_packet.c
++++ b/net/packet/af_packet.c
+@@ -89,6 +89,7 @@
+ #include <linux/virtio_net.h>
+ #include <linux/errqueue.h>
+ #include <linux/net_tstamp.h>
++#include <linux/delay.h>
+ 
+ #ifdef CONFIG_INET
+ #include <net/inet_common.h>
+@@ -673,7 +674,7 @@ static void prb_retire_rx_blk_timer_expired(unsigned long data)
+ 	if (BLOCK_NUM_PKTS(pbd)) {
+ 		while (atomic_read(&pkc->blk_fill_in_prog)) {
+ 			/* Waiting for skb_copy_bits to finish... */
+-			cpu_relax();
++			cpu_chill();
+ 		}
+ 	}
+ 
+@@ -928,7 +929,7 @@ static void prb_retire_current_block(struct tpacket_kbdq_core *pkc,
+ 		if (!(status & TP_STATUS_BLK_TMO)) {
+ 			while (atomic_read(&pkc->blk_fill_in_prog)) {
+ 				/* Waiting for skb_copy_bits to finish... */
+-				cpu_relax();
++				cpu_chill();
+ 			}
+ 		}
+ 		prb_close_block(pkc, pbd, po, status);
+diff --git a/net/rds/ib_rdma.c b/net/rds/ib_rdma.c
+index e8fdb17..5a44c6e 100644
+--- a/net/rds/ib_rdma.c
++++ b/net/rds/ib_rdma.c
+@@ -34,6 +34,7 @@
+ #include <linux/slab.h>
+ #include <linux/rculist.h>
+ #include <linux/llist.h>
++#include <linux/delay.h>
+ 
+ #include "rds.h"
+ #include "ib.h"
+@@ -286,7 +287,7 @@ static inline void wait_clean_list_grace(void)
+ 	for_each_online_cpu(cpu) {
+ 		flag = &per_cpu(clean_list_grace, cpu);
+ 		while (test_bit(CLEAN_LIST_BUSY_BIT, flag))
+-			cpu_relax();
++			cpu_chill();
+ 	}
+ }
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0261-kconfig-disable-a-few-options-rt.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0261-kconfig-disable-a-few-options-rt.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0261-kconfig-disable-a-few-options-rt.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0261-kconfig-disable-a-few-options-rt.patch.patch)
@@ -0,0 +1,51 @@
+From 4d8c1ca209189ac31652f50466a494d38722d2cf Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Sun, 24 Jul 2011 12:11:43 +0200
+Subject: [PATCH 261/287] kconfig-disable-a-few-options-rt.patch
+
+Disable stuff which is known to have issues on RT
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ arch/Kconfig        |    1 +
+ drivers/net/Kconfig |    1 +
+ mm/Kconfig          |    2 +-
+ 3 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/arch/Kconfig b/arch/Kconfig
+index 4b0669c..73fc7cd 100644
+--- a/arch/Kconfig
++++ b/arch/Kconfig
+@@ -6,6 +6,7 @@ config OPROFILE
+ 	tristate "OProfile system profiling"
+ 	depends on PROFILING
+ 	depends on HAVE_OPROFILE
++	depends on !PREEMPT_RT_FULL
+ 	select RING_BUFFER
+ 	select RING_BUFFER_ALLOW_SWAP
+ 	help
+diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
+index 654a5e9..0f5149d 100644
+--- a/drivers/net/Kconfig
++++ b/drivers/net/Kconfig
+@@ -154,6 +154,7 @@ config MACVTAP
+ 
+ config NETCONSOLE
+ 	tristate "Network console logging support"
++	depends on !PREEMPT_RT_FULL
+ 	---help---
+ 	If you want to log kernel messages over the network, enable this.
+ 	See <file:Documentation/networking/netconsole.txt> for details.
+diff --git a/mm/Kconfig b/mm/Kconfig
+index 011b110..0526445 100644
+--- a/mm/Kconfig
++++ b/mm/Kconfig
+@@ -307,7 +307,7 @@ config NOMMU_INITIAL_TRIM_EXCESS
+ 
+ config TRANSPARENT_HUGEPAGE
+ 	bool "Transparent Hugepage Support"
+-	depends on X86 && MMU
++	depends on X86 && MMU && !PREEMPT_RT_FULL
+ 	select COMPACTION
+ 	help
+ 	  Transparent Hugepages allows the kernel to use huge pages and

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0262-kconfig-preempt-rt-full.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0262-kconfig-preempt-rt-full.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0262-kconfig-preempt-rt-full.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0262-kconfig-preempt-rt-full.patch.patch)
@@ -0,0 +1,62 @@
+From 2a1667a9ef0acca20c3f803f7601b0b92bd4739f Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 29 Jun 2011 14:58:57 +0200
+Subject: [PATCH 262/287] kconfig-preempt-rt-full.patch
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ init/Makefile          |    2 +-
+ kernel/Kconfig.preempt |    7 +++++++
+ scripts/mkcompile_h    |    4 +++-
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/init/Makefile b/init/Makefile
+index 0bf677a..6b473cd 100644
+--- a/init/Makefile
++++ b/init/Makefile
+@@ -29,4 +29,4 @@ silent_chk_compile.h = :
+ include/generated/compile.h: FORCE
+ 	@$($(quiet)chk_compile.h)
+ 	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
+-	"$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)"
++	"$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CONFIG_PREEMPT_RT_FULL)" "$(CC) $(KBUILD_CFLAGS)"
+diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
+index 35c6f20..d0e9372 100644
+--- a/kernel/Kconfig.preempt
++++ b/kernel/Kconfig.preempt
+@@ -66,6 +66,13 @@ config PREEMPT_RTB
+ 	  enables changes which are preliminary for the full preemptiple
+ 	  RT kernel.
+ 
++config PREEMPT_RT_FULL
++	bool "Fully Preemptible Kernel (RT)"
++	depends on IRQ_FORCED_THREADING
++	select PREEMPT_RT_BASE
++	help
++	  All and everything
++
+ endchoice
+ 
+ config PREEMPT_COUNT
+diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
+index f221ddf..5f44009 100755
+--- a/scripts/mkcompile_h
++++ b/scripts/mkcompile_h
+@@ -4,7 +4,8 @@ TARGET=$1
+ ARCH=$2
+ SMP=$3
+ PREEMPT=$4
+-CC=$5
++RT=$5
++CC=$6
+ 
+ vecho() { [ "${quiet}" = "silent_" ] || echo "$@" ; }
+ 
+@@ -57,6 +58,7 @@ UTS_VERSION="#$VERSION"
+ CONFIG_FLAGS=""
+ if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi
+ if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi
++if [ -n "$RT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS RT"; fi
+ UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
+ 
+ # Truncate to maximum length

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0263-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0263-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0263-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0263-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch)
@@ -0,0 +1,51 @@
+From 525ccba6f921cd491a24e5e5d563c0e211ba5c35 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <srostedt at redhat.com>
+Date: Mon, 16 Apr 2012 21:51:54 -0400
+Subject: [PATCH 263/287] rt: Make migrate_disable/enable() and
+ __rt_mutex_init non-GPL only
+
+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,
+we are only being consistent.
+
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ kernel/rtmutex.c |    2 +-
+ kernel/sched.c   |    4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/kernel/rtmutex.c b/kernel/rtmutex.c
+index b525158..9c4f6e5 100644
+--- a/kernel/rtmutex.c
++++ b/kernel/rtmutex.c
+@@ -1290,7 +1290,7 @@ void __rt_mutex_init(struct rt_mutex *lock, const char *name)
+ 
+ 	debug_rt_mutex_init(lock, name);
+ }
+-EXPORT_SYMBOL_GPL(__rt_mutex_init);
++EXPORT_SYMBOL(__rt_mutex_init);
+ 
+ /**
+  * rt_mutex_init_proxy_locked - initialize and lock a rt_mutex on behalf of a
+diff --git a/kernel/sched.c b/kernel/sched.c
+index 0b263dd..91ddbd8 100644
+--- a/kernel/sched.c
++++ b/kernel/sched.c
+@@ -4618,7 +4618,7 @@ void migrate_disable(void)
+ 	p->migrate_disable = 1;
+ 	preempt_enable();
+ }
+-EXPORT_SYMBOL_GPL(migrate_disable);
++EXPORT_SYMBOL(migrate_disable);
+ 
+ void migrate_enable(void)
+ {
+@@ -4670,7 +4670,7 @@ void migrate_enable(void)
+ 	unpin_current_cpu();
+ 	preempt_enable();
+ }
+-EXPORT_SYMBOL_GPL(migrate_enable);
++EXPORT_SYMBOL(migrate_enable);
+ #else
+ static inline void update_migrate_disable(struct task_struct *p) { }
+ #define migrate_disabled_updated(p)		0

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0264-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0264-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0264-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0264-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch)
@@ -0,0 +1,52 @@
+From 78f23c489c16a125eb546f66fbc6516ece636d24 Mon Sep 17 00:00:00 2001
+From: John Kacur <jkacur at redhat.com>
+Date: Fri, 27 Apr 2012 12:48:46 +0200
+Subject: [PATCH 264/287] scsi: qla2xxx: Use local_irq_save_nort() in
+ qla2x00_poll
+
+RT triggers the following:
+
+[   11.307652]  [<ffffffff81077b27>] __might_sleep+0xe7/0x110
+[   11.307663]  [<ffffffff8150e524>] rt_spin_lock+0x24/0x60
+[   11.307670]  [<ffffffff8150da78>] ? rt_spin_lock_slowunlock+0x78/0x90
+[   11.307703]  [<ffffffffa0272d83>] qla24xx_intr_handler+0x63/0x2d0 [qla2xxx]
+[   11.307736]  [<ffffffffa0262307>] qla2x00_poll+0x67/0x90 [qla2xxx]
+
+Function qla2x00_poll does local_irq_save() before calling qla24xx_intr_handler
+which has a spinlock. Since spinlocks are sleepable on rt, it is not allowed
+to call them with interrupts disabled. Therefore we use local_irq_save_nort()
+instead which saves flags without disabling interrupts.
+
+This fix needs to be applied to v3.0-rt, v3.2-rt and v3.4-rt
+
+Suggested-by: Thomas Gleixner
+Signed-off-by: John Kacur <jkacur at redhat.com>
+Cc: Steven Rostedt <rostedt at goodmis.org>
+Cc: David Sommerseth <davids at redhat.com>
+Link: http://lkml.kernel.org/r/1335523726-10024-1-git-send-email-jkacur@redhat.com
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ drivers/scsi/qla2xxx/qla_inline.h |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/scsi/qla2xxx/qla_inline.h b/drivers/scsi/qla2xxx/qla_inline.h
+index 9902834..6d01db6 100644
+--- a/drivers/scsi/qla2xxx/qla_inline.h
++++ b/drivers/scsi/qla2xxx/qla_inline.h
+@@ -36,12 +36,12 @@ qla2x00_poll(struct rsp_que *rsp)
+ {
+ 	unsigned long flags;
+ 	struct qla_hw_data *ha = rsp->hw;
+-	local_irq_save(flags);
++	local_irq_save_nort(flags);
+ 	if (IS_QLA82XX(ha))
+ 		qla82xx_poll(0, rsp);
+ 	else
+ 		ha->isp_ops->intr_handler(0, rsp);
+-	local_irq_restore(flags);
++	local_irq_restore_nort(flags);
+ }
+ 
+ static inline uint8_t *

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0265-net-RT-REmove-preemption-disabling-in-netif_rx.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0265-net-RT-REmove-preemption-disabling-in-netif_rx.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0265-net-RT-REmove-preemption-disabling-in-netif_rx.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0265-net-RT-REmove-preemption-disabling-in-netif_rx.patch)
@@ -0,0 +1,67 @@
+From 0d2a5c1d7e8de1591bdb70114cd2a267f6e5e1f4 Mon Sep 17 00:00:00 2001
+From: Priyanka Jain <Priyanka.Jain at freescale.com>
+Date: Thu, 17 May 2012 09:35:11 +0530
+Subject: [PATCH 265/287] net,RT:REmove preemption disabling in netif_rx()
+
+1)enqueue_to_backlog() (called from netif_rx) should be
+  bind to a particluar CPU. This can be achieved by
+  disabling migration. No need to disable preemption
+
+2)Fixes crash "BUG: scheduling while atomic: ksoftirqd"
+  in case of RT.
+  If preemption is disabled, enqueue_to_backog() is called
+  in atomic context. And if backlog exceeds its count,
+  kfree_skb() is called. But in RT, kfree_skb() might
+  gets scheduled out, so it expects non atomic context.
+
+3)When CONFIG_PREEMPT_RT_FULL is not defined,
+ migrate_enable(), migrate_disable() maps to
+ preempt_enable() and preempt_disable(), so no
+ change in functionality in case of non-RT.
+
+-Replace preempt_enable(), preempt_disable() with
+ migrate_enable(), migrate_disable() respectively
+-Replace get_cpu(), put_cpu() with get_cpu_light(),
+ put_cpu_light() respectively
+
+Signed-off-by: Priyanka Jain <Priyanka.Jain at freescale.com>
+Acked-by: Rajan Srivastava <Rajan.Srivastava at freescale.com>
+Cc: <rostedt at goodmis.orgn>
+Link: http://lkml.kernel.org/r/1337227511-2271-1-git-send-email-Priyanka.Jain@freescale.com
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ net/core/dev.c |    8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/net/core/dev.c b/net/core/dev.c
+index 20fe9a8..cd1df6e 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -3004,7 +3004,7 @@ int netif_rx(struct sk_buff *skb)
+ 		struct rps_dev_flow voidflow, *rflow = &voidflow;
+ 		int cpu;
+ 
+-		preempt_disable();
++		migrate_disable();
+ 		rcu_read_lock();
+ 
+ 		cpu = get_rps_cpu(skb->dev, skb, &rflow);
+@@ -3014,13 +3014,13 @@ int netif_rx(struct sk_buff *skb)
+ 		ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail);
+ 
+ 		rcu_read_unlock();
+-		preempt_enable();
++		migrate_enable();
+ 	}
+ #else
+ 	{
+ 		unsigned int qtail;
+-		ret = enqueue_to_backlog(skb, get_cpu(), &qtail);
+-		put_cpu();
++		ret = enqueue_to_backlog(skb, get_cpu_light(), &qtail);
++		put_cpu_light();
+ 	}
+ #endif
+ 	return ret;

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0266-mips-remove-smp-reserve-lock.patch.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0266-mips-remove-smp-reserve-lock.patch.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0266-mips-remove-smp-reserve-lock.patch.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0266-mips-remove-smp-reserve-lock.patch.patch)
@@ -0,0 +1,45 @@
+From f7e37d2c23fd6aa10f4203fa3ba46d77932f692a Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Tue, 22 May 2012 21:15:10 +0200
+Subject: [PATCH 266/287] mips-remove-smp-reserve-lock.patch
+
+Instead of making the lock raw, remove it as it protects nothing.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ arch/mips/cavium-octeon/smp.c |    6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
+index efcfff4..86fce15 100644
+--- a/arch/mips/cavium-octeon/smp.c
++++ b/arch/mips/cavium-octeon/smp.c
+@@ -257,8 +257,6 @@ DEFINE_PER_CPU(int, cpu_state);
+ 
+ extern void fixup_irqs(void);
+ 
+-static DEFINE_SPINLOCK(smp_reserve_lock);
+-
+ static int octeon_cpu_disable(void)
+ {
+ 	unsigned int cpu = smp_processor_id();
+@@ -266,8 +264,6 @@ static int octeon_cpu_disable(void)
+ 	if (cpu == 0)
+ 		return -EBUSY;
+ 
+-	spin_lock(&smp_reserve_lock);
+-
+ 	cpu_clear(cpu, cpu_online_map);
+ 	cpu_clear(cpu, cpu_callin_map);
+ 	local_irq_disable();
+@@ -277,8 +273,6 @@ static int octeon_cpu_disable(void)
+ 	flush_cache_all();
+ 	local_flush_tlb_all();
+ 
+-	spin_unlock(&smp_reserve_lock);
+-
+ 	return 0;
+ }
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0267-Latency-histogramms-Cope-with-backwards-running-loca.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0267-Latency-histogramms-Cope-with-backwards-running-loca.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0267-Latency-histogramms-Cope-with-backwards-running-loca.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0267-Latency-histogramms-Cope-with-backwards-running-loca.patch)
@@ -0,0 +1,264 @@
+From 784ea91bc8c51d1cce1d946ca10143743bcf77e7 Mon Sep 17 00:00:00 2001
+From: Carsten Emde <C.Emde at osadl.org>
+Date: Wed, 11 Jul 2012 22:05:17 +0000
+Subject: [PATCH 267/287] Latency histogramms: Cope with backwards running
+ local trace clock
+
+Thanks to the wonders of modern technology, the local trace clock can
+now run backwards. Since this never happened before, the time difference
+between now and somewhat earlier was expected to never become negative
+and, thus, stored in an unsigned integer variable. Nowadays, we need a
+signed integer to ensure that the value is stored as underflow in the
+related histogram. (In cases where this is not a misfunction, bipolar
+histograms can be used.)
+
+This patch takes care that all latency variables are represented as
+signed integers and negative numbers are considered as histogram
+underflows.
+
+In one of the misbehaving processors switching to global clock solved
+the problem:
+  echo global >/sys/kernel/debug/tracing/trace_clock
+
+Signed-off-by: Carsten Emde <C.Emde at osadl.org>
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ include/linux/sched.h       |    2 +-
+ kernel/trace/latency_hist.c |   71 ++++++++++++++++++++++---------------------
+ 2 files changed, 38 insertions(+), 35 deletions(-)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 945d230..bcd4597 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -1589,7 +1589,7 @@ struct task_struct {
+ #ifdef CONFIG_WAKEUP_LATENCY_HIST
+ 	u64 preempt_timestamp_hist;
+ #ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
+-	unsigned long timer_offset;
++	long timer_offset;
+ #endif
+ #endif
+ #endif /* CONFIG_TRACING */
+diff --git a/kernel/trace/latency_hist.c b/kernel/trace/latency_hist.c
+index 9d49fcb..d514eef 100644
+--- a/kernel/trace/latency_hist.c
++++ b/kernel/trace/latency_hist.c
+@@ -27,6 +27,8 @@
+ #include "trace.h"
+ #include <trace/events/sched.h>
+ 
++#define NSECS_PER_USECS 1000L
++
+ #define CREATE_TRACE_POINTS
+ #include <trace/events/hist.h>
+ 
+@@ -46,11 +48,11 @@ enum {
+ struct hist_data {
+ 	atomic_t hist_mode; /* 0 log, 1 don't log */
+ 	long offset; /* set it to MAX_ENTRY_NUM/2 for a bipolar scale */
+-	unsigned long min_lat;
+-	unsigned long max_lat;
++	long min_lat;
++	long max_lat;
+ 	unsigned long long below_hist_bound_samples;
+ 	unsigned long long above_hist_bound_samples;
+-	unsigned long long accumulate_lat;
++	long long accumulate_lat;
+ 	unsigned long long total_samples;
+ 	unsigned long long hist_array[MAX_ENTRY_NUM];
+ };
+@@ -152,8 +154,8 @@ static struct enable_data timerandwakeup_enabled_data = {
+ static DEFINE_PER_CPU(struct maxlatproc_data, timerandwakeup_maxlatproc);
+ #endif
+ 
+-void notrace latency_hist(int latency_type, int cpu, unsigned long latency,
+-			  unsigned long timeroffset, cycle_t stop,
++void notrace latency_hist(int latency_type, int cpu, long latency,
++			  long timeroffset, cycle_t stop,
+ 			  struct task_struct *p)
+ {
+ 	struct hist_data *my_hist;
+@@ -224,7 +226,7 @@ void notrace latency_hist(int latency_type, int cpu, unsigned long latency,
+ 		my_hist->hist_array[latency]++;
+ 
+ 	if (unlikely(latency > my_hist->max_lat ||
+-	    my_hist->min_lat == ULONG_MAX)) {
++	    my_hist->min_lat == LONG_MAX)) {
+ #if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
+     defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
+ 		if (latency_type == WAKEUP_LATENCY ||
+@@ -263,15 +265,14 @@ static void *l_start(struct seq_file *m, loff_t *pos)
+ 		atomic_dec(&my_hist->hist_mode);
+ 
+ 		if (likely(my_hist->total_samples)) {
+-			unsigned long avg = (unsigned long)
+-			    div64_u64(my_hist->accumulate_lat,
++			long avg = (long) div64_s64(my_hist->accumulate_lat,
+ 			    my_hist->total_samples);
+ 			snprintf(minstr, sizeof(minstr), "%ld",
+-			    (long) my_hist->min_lat - my_hist->offset);
++			    my_hist->min_lat - my_hist->offset);
+ 			snprintf(avgstr, sizeof(avgstr), "%ld",
+-			    (long) avg - my_hist->offset);
++			    avg - my_hist->offset);
+ 			snprintf(maxstr, sizeof(maxstr), "%ld",
+-			    (long) my_hist->max_lat - my_hist->offset);
++			    my_hist->max_lat - my_hist->offset);
+ 		} else {
+ 			strcpy(minstr, "<undef>");
+ 			strcpy(avgstr, minstr);
+@@ -376,10 +377,10 @@ static void hist_reset(struct hist_data *hist)
+ 	memset(hist->hist_array, 0, sizeof(hist->hist_array));
+ 	hist->below_hist_bound_samples = 0ULL;
+ 	hist->above_hist_bound_samples = 0ULL;
+-	hist->min_lat = ULONG_MAX;
+-	hist->max_lat = 0UL;
++	hist->min_lat = LONG_MAX;
++	hist->max_lat = LONG_MIN;
+ 	hist->total_samples = 0ULL;
+-	hist->accumulate_lat = 0ULL;
++	hist->accumulate_lat = 0LL;
+ 
+ 	atomic_inc(&hist->hist_mode);
+ }
+@@ -790,9 +791,9 @@ static notrace void probe_preemptirqsoff_hist(void *v, int reason,
+ 
+ 			stop = ftrace_now(cpu);
+ 			time_set++;
+-			if (start && stop >= start) {
+-				unsigned long latency =
+-				    nsecs_to_usecs(stop - start);
++			if (start) {
++				long latency = ((long) (stop - start)) /
++				    NSECS_PER_USECS;
+ 
+ 				latency_hist(IRQSOFF_LATENCY, cpu, latency, 0,
+ 				    stop, NULL);
+@@ -808,9 +809,9 @@ static notrace void probe_preemptirqsoff_hist(void *v, int reason,
+ 
+ 			if (!(time_set++))
+ 				stop = ftrace_now(cpu);
+-			if (start && stop >= start) {
+-				unsigned long latency =
+-				    nsecs_to_usecs(stop - start);
++			if (start) {
++				long latency = ((long) (stop - start)) /
++				    NSECS_PER_USECS;
+ 
+ 				latency_hist(PREEMPTOFF_LATENCY, cpu, latency,
+ 				    0, stop, NULL);
+@@ -827,9 +828,10 @@ static notrace void probe_preemptirqsoff_hist(void *v, int reason,
+ 
+ 			if (!time_set)
+ 				stop = ftrace_now(cpu);
+-			if (start && stop >= start) {
+-				unsigned long latency =
+-				    nsecs_to_usecs(stop - start);
++			if (start) {
++				long latency = ((long) (stop - start)) /
++				    NSECS_PER_USECS;
++
+ 				latency_hist(PREEMPTIRQSOFF_LATENCY, cpu,
+ 				    latency, 0, stop, NULL);
+ 			}
+@@ -908,7 +910,7 @@ static notrace void probe_wakeup_latency_hist_stop(void *v,
+ {
+ 	unsigned long flags;
+ 	int cpu = task_cpu(next);
+-	unsigned long latency;
++	long latency;
+ 	cycle_t stop;
+ 	struct task_struct *cpu_wakeup_task;
+ 
+@@ -939,7 +941,8 @@ static notrace void probe_wakeup_latency_hist_stop(void *v,
+ 	 */
+ 	stop = ftrace_now(raw_smp_processor_id());
+ 
+-	latency = nsecs_to_usecs(stop - next->preempt_timestamp_hist);
++	latency = ((long) (stop - next->preempt_timestamp_hist)) /
++	    NSECS_PER_USECS;
+ 
+ 	if (per_cpu(wakeup_sharedprio, cpu)) {
+ 		latency_hist(WAKEUP_LATENCY_SHAREDPRIO, cpu, latency, 0, stop,
+@@ -975,7 +978,7 @@ static notrace void probe_hrtimer_interrupt(void *v, int cpu,
+ 	    (task->prio < curr->prio ||
+ 	    (task->prio == curr->prio &&
+ 	    !cpumask_test_cpu(cpu, &task->cpus_allowed)))) {
+-		unsigned long latency;
++		long latency;
+ 		cycle_t now;
+ 
+ 		if (missed_timer_offsets_pid) {
+@@ -985,7 +988,7 @@ static notrace void probe_hrtimer_interrupt(void *v, int cpu,
+ 		}
+ 
+ 		now = ftrace_now(cpu);
+-		latency = (unsigned long) div_s64(-latency_ns, 1000);
++		latency = (long) div_s64(-latency_ns, NSECS_PER_USECS);
+ 		latency_hist(MISSED_TIMER_OFFSETS, cpu, latency, latency, now,
+ 		    task);
+ #ifdef CONFIG_WAKEUP_LATENCY_HIST
+@@ -1026,7 +1029,7 @@ static __init int latency_hist_init(void)
+ 		    &per_cpu(irqsoff_hist, i), &latency_hist_fops);
+ 		my_hist = &per_cpu(irqsoff_hist, i);
+ 		atomic_set(&my_hist->hist_mode, 1);
+-		my_hist->min_lat = 0xFFFFFFFFUL;
++		my_hist->min_lat = LONG_MAX;
+ 	}
+ 	entry = debugfs_create_file("reset", 0644, dentry,
+ 	    (void *)IRQSOFF_LATENCY, &latency_hist_reset_fops);
+@@ -1041,7 +1044,7 @@ static __init int latency_hist_init(void)
+ 		    &per_cpu(preemptoff_hist, i), &latency_hist_fops);
+ 		my_hist = &per_cpu(preemptoff_hist, i);
+ 		atomic_set(&my_hist->hist_mode, 1);
+-		my_hist->min_lat = 0xFFFFFFFFUL;
++		my_hist->min_lat = LONG_MAX;
+ 	}
+ 	entry = debugfs_create_file("reset", 0644, dentry,
+ 	    (void *)PREEMPTOFF_LATENCY, &latency_hist_reset_fops);
+@@ -1056,7 +1059,7 @@ static __init int latency_hist_init(void)
+ 		    &per_cpu(preemptirqsoff_hist, i), &latency_hist_fops);
+ 		my_hist = &per_cpu(preemptirqsoff_hist, i);
+ 		atomic_set(&my_hist->hist_mode, 1);
+-		my_hist->min_lat = 0xFFFFFFFFUL;
++		my_hist->min_lat = LONG_MAX;
+ 	}
+ 	entry = debugfs_create_file("reset", 0644, dentry,
+ 	    (void *)PREEMPTIRQSOFF_LATENCY, &latency_hist_reset_fops);
+@@ -1081,14 +1084,14 @@ static __init int latency_hist_init(void)
+ 		    &latency_hist_fops);
+ 		my_hist = &per_cpu(wakeup_latency_hist, i);
+ 		atomic_set(&my_hist->hist_mode, 1);
+-		my_hist->min_lat = 0xFFFFFFFFUL;
++		my_hist->min_lat = LONG_MAX;
+ 
+ 		entry = debugfs_create_file(name, 0444, dentry_sharedprio,
+ 		    &per_cpu(wakeup_latency_hist_sharedprio, i),
+ 		    &latency_hist_fops);
+ 		my_hist = &per_cpu(wakeup_latency_hist_sharedprio, i);
+ 		atomic_set(&my_hist->hist_mode, 1);
+-		my_hist->min_lat = 0xFFFFFFFFUL;
++		my_hist->min_lat = LONG_MAX;
+ 
+ 		sprintf(name, cpufmt_maxlatproc, i);
+ 
+@@ -1122,7 +1125,7 @@ static __init int latency_hist_init(void)
+ 		    &per_cpu(missed_timer_offsets, i), &latency_hist_fops);
+ 		my_hist = &per_cpu(missed_timer_offsets, i);
+ 		atomic_set(&my_hist->hist_mode, 1);
+-		my_hist->min_lat = 0xFFFFFFFFUL;
++		my_hist->min_lat = LONG_MAX;
+ 
+ 		sprintf(name, cpufmt_maxlatproc, i);
+ 		mp = &per_cpu(missed_timer_offsets_maxlatproc, i);
+@@ -1150,7 +1153,7 @@ static __init int latency_hist_init(void)
+ 		    &latency_hist_fops);
+ 		my_hist = &per_cpu(timerandwakeup_latency_hist, i);
+ 		atomic_set(&my_hist->hist_mode, 1);
+-		my_hist->min_lat = 0xFFFFFFFFUL;
++		my_hist->min_lat = LONG_MAX;
+ 
+ 		sprintf(name, cpufmt_maxlatproc, i);
+ 		mp = &per_cpu(timerandwakeup_maxlatproc, i);

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0268-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0268-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0268-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0268-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch)
@@ -0,0 +1,70 @@
+From 596bfc07b6d514cf85ca4136153b53dca8fa445f Mon Sep 17 00:00:00 2001
+From: Carsten Emde <C.Emde at osadl.org>
+Date: Wed, 11 Jul 2012 22:05:18 +0000
+Subject: [PATCH 268/287] Latency histograms: Adjust timer, if already elapsed
+ when programmed
+
+Nothing prevents a programmer from calling clock_nanosleep() with an
+already elapsed wakeup time in absolute time mode or with a too small
+delay in relative time mode. Such timers cannot wake up in time and,
+thus, should be corrected when entered into the missed timers latency
+histogram (CONFIG_MISSED_TIMERS_HIST).
+
+This patch marks such timers and uses a corrected expiration time.
+
+Signed-off-by: Carsten Emde <C.Emde at osadl.org>
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ include/linux/hrtimer.h |    3 +++
+ kernel/hrtimer.c        |   16 ++++++++++++++--
+ 2 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
+index 26b008b..7259cd3 100644
+--- a/include/linux/hrtimer.h
++++ b/include/linux/hrtimer.h
+@@ -113,6 +113,9 @@ struct hrtimer {
+ 	unsigned long			state;
+ 	struct list_head		cb_entry;
+ 	int				irqsafe;
++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
++	ktime_t 			praecox;
++#endif
+ #ifdef CONFIG_TIMER_STATS
+ 	int				start_pid;
+ 	void				*start_site;
+diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
+index 3848761..bca6928 100644
+--- a/kernel/hrtimer.c
++++ b/kernel/hrtimer.c
+@@ -1031,6 +1031,17 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
+ #endif
+ 	}
+ 
++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
++	{
++		ktime_t now = new_base->get_time();
++
++		if (ktime_to_ns(tim) < ktime_to_ns(now))
++			timer->praecox = now;
++		else
++			timer->praecox = ktime_set(0, 0);
++	}
++#endif
++
+ 	hrtimer_set_expires_range_ns(timer, tim, delta_ns);
+ 
+ 	timer_stats_hrtimer_set_start_info(timer);
+@@ -1467,8 +1478,9 @@ retry:
+ 			timer = container_of(node, struct hrtimer, node);
+ 
+ 			trace_hrtimer_interrupt(raw_smp_processor_id(),
+-			    ktime_to_ns(ktime_sub(
+-				hrtimer_get_expires(timer), basenow)),
++			    ktime_to_ns(ktime_sub(ktime_to_ns(timer->praecox) ?
++				timer->praecox : hrtimer_get_expires(timer),
++				basenow)),
+ 			    current,
+ 			    timer->function == hrtimer_wakeup ?
+ 			    container_of(timer, struct hrtimer_sleeper,

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0269-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0269-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0269-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0269-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch)
@@ -0,0 +1,29 @@
+From 9bb7e9dca5ddc7c7f2b33325c1867d915c7c4e70 Mon Sep 17 00:00:00 2001
+From: Carsten Emde <C.Emde at osadl.org>
+Date: Wed, 11 Jul 2012 22:05:18 +0000
+Subject: [PATCH 269/287] Disable RT_GROUP_SCHED in PREEMPT_RT_FULL
+
+Strange CPU stalls have been observed in RT when RT_GROUP_SCHED
+was configured.
+
+Disable it for now.
+
+Signed-off-by: Carsten Emde <C.Emde at osadl.org>
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ init/Kconfig |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/init/Kconfig b/init/Kconfig
+index dbc82d0..720c182 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -731,6 +731,7 @@ config RT_GROUP_SCHED
+ 	bool "Group scheduling for SCHED_RR/FIFO"
+ 	depends on EXPERIMENTAL
+ 	depends on CGROUP_SCHED
++	depends on !PREEMPT_RT_FULL
+ 	default n
+ 	help
+ 	  This feature lets you explicitly allocate real CPU bandwidth

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0270-Latency-histograms-Detect-another-yet-overlooked-sha.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0270-Latency-histograms-Detect-another-yet-overlooked-sha.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0270-Latency-histograms-Detect-another-yet-overlooked-sha.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0270-Latency-histograms-Detect-another-yet-overlooked-sha.patch)
@@ -0,0 +1,35 @@
+From 7a54bf3e61e0f9250af3bb67292540cc951e28aa Mon Sep 17 00:00:00 2001
+From: Carsten Emde <C.Emde at osadl.org>
+Date: Wed, 11 Jul 2012 22:05:19 +0000
+Subject: [PATCH 270/287] Latency histograms: Detect another yet overlooked
+ sharedprio condition
+
+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
+becomes current. This condition was not correctly recognized and led to
+erroneously high latency recordings during periods of low CPU load.
+
+This patch correctly marks such latencies as sharedprio and prevents
+them from being recorded as actual system latency.
+
+Signed-off-by: Carsten Emde <C.Emde at osadl.org>
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ kernel/trace/latency_hist.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/kernel/trace/latency_hist.c b/kernel/trace/latency_hist.c
+index d514eef..6a4c869 100644
+--- a/kernel/trace/latency_hist.c
++++ b/kernel/trace/latency_hist.c
+@@ -935,6 +935,9 @@ static notrace void probe_wakeup_latency_hist_stop(void *v,
+ 		goto out;
+ 	}
+ 
++	if (current->prio == cpu_wakeup_task->prio)
++		per_cpu(wakeup_sharedprio, cpu) = 1;
++
+ 	/*
+ 	 * The task we are waiting for is about to be switched to.
+ 	 * Calculate latency and store it in histogram.

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0271-slab-Prevent-local-lock-deadlock.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0271-slab-Prevent-local-lock-deadlock.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0271-slab-Prevent-local-lock-deadlock.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0271-slab-Prevent-local-lock-deadlock.patch)
@@ -0,0 +1,74 @@
+From 83c10b873e0d155dfa278e2f08e217a6b4fd8ac2 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 11 Jul 2012 22:05:19 +0000
+Subject: [PATCH 271/287] slab: Prevent local lock deadlock
+
+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
+cpu which runs the code must use the proper local lock functions and
+not a simple spin_lock(). Otherwise it deadlocks later when trying to
+acquire the local lock with the proper function.
+
+Reported-and-tested-by: Chris Pringle <chris.pringle at miranda.com>
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ mm/slab.c |   26 ++++++++++++++++++++++----
+ 1 file changed, 22 insertions(+), 4 deletions(-)
+
+diff --git a/mm/slab.c b/mm/slab.c
+index 59b7e8c..7b2d343 100644
+--- a/mm/slab.c
++++ b/mm/slab.c
+@@ -739,8 +739,26 @@ slab_on_each_cpu(void (*func)(void *arg, int this_cpu), void *arg)
+ {
+ 	unsigned int i;
+ 
++	get_cpu_light();
+ 	for_each_online_cpu(i)
+ 		func(arg, i);
++	put_cpu_light();
++}
++
++static void lock_slab_on(unsigned int cpu)
++{
++	if (cpu == smp_processor_id())
++		local_lock_irq(slab_lock);
++	else
++		local_spin_lock_irq(slab_lock, &per_cpu(slab_lock, cpu).lock);
++}
++
++static void unlock_slab_on(unsigned int cpu)
++{
++	if (cpu == smp_processor_id())
++		local_unlock_irq(slab_lock);
++	else
++		local_spin_unlock_irq(slab_lock, &per_cpu(slab_lock, cpu).lock);
+ }
+ #endif
+ 
+@@ -2630,10 +2648,10 @@ static void do_drain(void *arg, int cpu)
+ {
+ 	LIST_HEAD(tmp);
+ 
+-	spin_lock_irq(&per_cpu(slab_lock, cpu).lock);
++	lock_slab_on(cpu);
+ 	__do_drain(arg, cpu);
+ 	list_splice_init(&per_cpu(slab_free_list, cpu), &tmp);
+-	spin_unlock_irq(&per_cpu(slab_lock, cpu).lock);
++	unlock_slab_on(cpu);
+ 	free_delayed(&tmp);
+ }
+ #endif
+@@ -4101,9 +4119,9 @@ static void do_ccupdate_local(void *info)
+ #else
+ static void do_ccupdate_local(void *info, int cpu)
+ {
+-	spin_lock_irq(&per_cpu(slab_lock, cpu).lock);
++	lock_slab_on(cpu);
+ 	__do_ccupdate_local(info, cpu);
+-	spin_unlock_irq(&per_cpu(slab_lock, cpu).lock);
++	unlock_slab_on(cpu);
+ }
+ #endif
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0272-fs-jbd-pull-your-plug-when-waiting-for-space.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0272-fs-jbd-pull-your-plug-when-waiting-for-space.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0272-fs-jbd-pull-your-plug-when-waiting-for-space.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0272-fs-jbd-pull-your-plug-when-waiting-for-space.patch)
@@ -0,0 +1,32 @@
+From 927ff414a6b86cd18512649d58d4aa92475c0eb6 Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <mgalbraith at suse.de>
+Date: Wed, 11 Jul 2012 22:05:20 +0000
+Subject: [PATCH 272/287] fs, jbd: pull your plug when waiting for space
+
+With an -rt kernel, and a heavy sync IO load, tasks can jam
+up on journal locks without unplugging, which can lead to
+terminal IO starvation.  Unplug and schedule when waiting for space.
+
+Signed-off-by: Mike Galbraith <mgalbraith at suse.de>
+Cc: Steven Rostedt <rostedt at goodmis.org>
+Cc: Theodore Tso <tytso at mit.edu>
+Link: http://lkml.kernel.org/r/1341812414.7370.73.camel@marge.simpson.net
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ fs/jbd/checkpoint.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/fs/jbd/checkpoint.c b/fs/jbd/checkpoint.c
+index 5c93ffc..ddbd223 100644
+--- a/fs/jbd/checkpoint.c
++++ b/fs/jbd/checkpoint.c
+@@ -129,6 +129,8 @@ void __log_wait_for_space(journal_t *journal)
+ 		if (journal->j_flags & JFS_ABORT)
+ 			return;
+ 		spin_unlock(&journal->j_state_lock);
++		if (current->plug)
++			io_schedule();
+ 		mutex_lock(&journal->j_checkpoint_mutex);
+ 
+ 		/*

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0273-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0273-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0273-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0273-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch)
@@ -0,0 +1,71 @@
+From 9914cf8b37c279166b1b7ee313b1c08d32979103 Mon Sep 17 00:00:00 2001
+From: Yong Zhang <yong.zhang at windriver.com>
+Date: Wed, 11 Jul 2012 22:05:21 +0000
+Subject: [PATCH 273/287] perf: Make swevent hrtimer run in irq instead of
+ softirq
+
+Otherwise we get a deadlock like below:
+
+[ 1044.042749] BUG: scheduling while atomic: ksoftirqd/21/141/0x00010003
+[ 1044.042752] INFO: lockdep is turned off.
+[ 1044.042754] Modules linked in:
+[ 1044.042757] Pid: 141, comm: ksoftirqd/21 Tainted: G        W    3.4.0-rc2-rt3-23676-ga723175-dirty #29
+[ 1044.042759] Call Trace:
+[ 1044.042761]  <IRQ>  [<ffffffff8107d8e5>] __schedule_bug+0x65/0x80
+[ 1044.042770]  [<ffffffff8168978c>] __schedule+0x83c/0xa70
+[ 1044.042775]  [<ffffffff8106bdd2>] ? prepare_to_wait+0x32/0xb0
+[ 1044.042779]  [<ffffffff81689a5e>] schedule+0x2e/0xa0
+[ 1044.042782]  [<ffffffff81071ebd>] hrtimer_wait_for_timer+0x6d/0xb0
+[ 1044.042786]  [<ffffffff8106bb30>] ? wake_up_bit+0x40/0x40
+[ 1044.042790]  [<ffffffff81071f20>] hrtimer_cancel+0x20/0x40
+[ 1044.042794]  [<ffffffff8111da0c>] perf_swevent_cancel_hrtimer+0x3c/0x50
+[ 1044.042798]  [<ffffffff8111da31>] task_clock_event_stop+0x11/0x40
+[ 1044.042802]  [<ffffffff8111da6e>] task_clock_event_del+0xe/0x10
+[ 1044.042805]  [<ffffffff8111c568>] event_sched_out+0x118/0x1d0
+[ 1044.042809]  [<ffffffff8111c649>] group_sched_out+0x29/0x90
+[ 1044.042813]  [<ffffffff8111ed7e>] __perf_event_disable+0x18e/0x200
+[ 1044.042817]  [<ffffffff8111c343>] remote_function+0x63/0x70
+[ 1044.042821]  [<ffffffff810b0aae>] generic_smp_call_function_single_interrupt+0xce/0x120
+[ 1044.042826]  [<ffffffff81022bc7>] smp_call_function_single_interrupt+0x27/0x40
+[ 1044.042831]  [<ffffffff8168d50c>] call_function_single_interrupt+0x6c/0x80
+[ 1044.042833]  <EOI>  [<ffffffff811275b0>] ? perf_event_overflow+0x20/0x20
+[ 1044.042840]  [<ffffffff8168b970>] ? _raw_spin_unlock_irq+0x30/0x70
+[ 1044.042844]  [<ffffffff8168b976>] ? _raw_spin_unlock_irq+0x36/0x70
+[ 1044.042848]  [<ffffffff810702e2>] run_hrtimer_softirq+0xc2/0x200
+[ 1044.042853]  [<ffffffff811275b0>] ? perf_event_overflow+0x20/0x20
+[ 1044.042857]  [<ffffffff81045265>] __do_softirq_common+0xf5/0x3a0
+[ 1044.042862]  [<ffffffff81045c3d>] __thread_do_softirq+0x15d/0x200
+[ 1044.042865]  [<ffffffff81045dda>] run_ksoftirqd+0xfa/0x210
+[ 1044.042869]  [<ffffffff81045ce0>] ? __thread_do_softirq+0x200/0x200
+[ 1044.042873]  [<ffffffff81045ce0>] ? __thread_do_softirq+0x200/0x200
+[ 1044.042877]  [<ffffffff8106b596>] kthread+0xb6/0xc0
+[ 1044.042881]  [<ffffffff8168b97b>] ? _raw_spin_unlock_irq+0x3b/0x70
+[ 1044.042886]  [<ffffffff8168d994>] kernel_thread_helper+0x4/0x10
+[ 1044.042889]  [<ffffffff8107d98c>] ? finish_task_switch+0x8c/0x110
+[ 1044.042894]  [<ffffffff8168b97b>] ? _raw_spin_unlock_irq+0x3b/0x70
+[ 1044.042897]  [<ffffffff8168bd5d>] ? retint_restore_args+0xe/0xe
+[ 1044.042900]  [<ffffffff8106b4e0>] ? kthreadd+0x1e0/0x1e0
+[ 1044.042902]  [<ffffffff8168d990>] ? gs_change+0xb/0xb
+
+Signed-off-by: Yong Zhang <yong.zhang0 at gmail.com>
+Cc: Peter Zijlstra <a.p.zijlstra at chello.nl>
+Cc: Steven Rostedt <rostedt at goodmis.org>
+Link: http://lkml.kernel.org/r/1341476476-5666-1-git-send-email-yong.zhang0@gmail.com
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ kernel/events/core.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/kernel/events/core.c b/kernel/events/core.c
+index 7d1f05e..7975149 100644
+--- a/kernel/events/core.c
++++ b/kernel/events/core.c
+@@ -5428,6 +5428,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;
++	hwc->hrtimer.irqsafe = 1;
+ 
+ 	/*
+ 	 * Since hrtimers have a fixed rate, we can do a static freq->period

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0274-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0274-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0274-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0274-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch)
@@ -0,0 +1,542 @@
+From f029edd2e56bc9adedf61acf7f33e34c97693d9b Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <srostedt at redhat.com>
+Date: Mon, 16 Jul 2012 08:07:43 +0000
+Subject: [PATCH 274/287] cpu/rt: Rework cpu down for PREEMPT_RT
+
+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
+order to handle per_cpu variables, tasks may be pinned to a CPU
+for a while, and even sleep. But these tasks need to be off the CPU
+if that CPU is going down.
+
+Several synchronization methods have been tried, but when stressed
+they failed. This is a new approach.
+
+A sync_tsk thread is still created and tasks may still block on a
+lock when the CPU is going down, but how that works is a bit different.
+When cpu_down() starts, it will create the sync_tsk and wait on it
+to inform that current tasks that are pinned on the CPU are no longer
+pinned. But new tasks that are about to be pinned will still be allowed
+to do so at this time.
+
+Then the notifiers are called. Several notifiers will bring down tasks
+that will enter these locations. Some of these tasks will take locks
+of other tasks that are on the CPU. If we don't let those other tasks
+continue, but make them block until CPU down is done, the tasks that
+the notifiers are waiting on will never complete as they are waiting
+for the locks held by the tasks that are blocked.
+
+Thus we still let the task pin the CPU until the notifiers are done.
+After the notifiers run, we then make new tasks entering the pinned
+CPU sections grab a mutex and wait. This mutex is now a per CPU mutex
+in the hotplug_pcp descriptor.
+
+To help things along, a new function in the scheduler code is created
+called migrate_me(). This function will try to migrate the current task
+off the CPU this is going down if possible. When the sync_tsk is created,
+all tasks will then try to migrate off the CPU going down. There are
+several cases that this wont work, but it helps in most cases.
+
+After the notifiers are called and if a task can't migrate off but enters
+the pin CPU sections, it will be forced to wait on the hotplug_pcp mutex
+until the CPU down is complete. Then the scheduler will force the migration
+anyway.
+
+Also, I found that THREAD_BOUND need to also be accounted for in the
+pinned CPU, and the migrate_disable no longer treats them special.
+This helps fix issues with ksoftirqd and workqueue that unbind on CPU down.
+
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ include/linux/sched.h |    7 ++
+ kernel/cpu.c          |  236 +++++++++++++++++++++++++++++++++++++++++--------
+ kernel/sched.c        |   82 ++++++++++++++++-
+ 3 files changed, 285 insertions(+), 40 deletions(-)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index bcd4597..03498cc 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -1937,6 +1937,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);
++int migrate_me(void);
++void tell_sched_cpu_down_begin(int cpu);
++void tell_sched_cpu_down_done(int cpu);
++
+ #else
+ static inline void do_set_cpus_allowed(struct task_struct *p,
+ 				      const struct cpumask *new_mask)
+@@ -1949,6 +1953,9 @@ static inline int set_cpus_allowed_ptr(struct task_struct *p,
+ 		return -EINVAL;
+ 	return 0;
+ }
++static inline int migrate_me(void) { return 0; }
++static inline void tell_sched_cpu_down_begin(int cpu) { }
++static inline void tell_sched_cpu_down_done(int cpu) { }
+ #endif
+ 
+ #ifdef CONFIG_NO_HZ
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index 66dfb74..0964e93 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -46,12 +46,7 @@ static int cpu_hotplug_disabled;
+ 
+ static struct {
+ 	struct task_struct *active_writer;
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-	/* Makes the lock keep the task's state */
+-	spinlock_t lock;
+-#else
+ 	struct mutex lock; /* Synchronizes accesses to refcount, */
+-#endif
+ 	/*
+ 	 * Also blocks the new readers during
+ 	 * an ongoing cpu hotplug operation.
+@@ -67,20 +62,42 @@ static struct {
+ 	.refcount = 0,
+ };
+ 
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-# define hotplug_lock() rt_spin_lock(&cpu_hotplug.lock)
+-# define hotplug_unlock() rt_spin_unlock(&cpu_hotplug.lock)
+-#else
+-# define hotplug_lock() mutex_lock(&cpu_hotplug.lock)
+-# define hotplug_unlock() mutex_unlock(&cpu_hotplug.lock)
+-#endif
+-
++/**
++ * hotplug_pcp - per cpu hotplug descriptor
++ * @unplug:	set when pin_current_cpu() needs to sync tasks
++ * @sync_tsk:	the task that waits for tasks to finish pinned sections
++ * @refcount:	counter of tasks in pinned sections
++ * @grab_lock:	set when the tasks entering pinned sections should wait
++ * @synced:	notifier for @sync_tsk to tell cpu_down it's finished
++ * @mutex:	the mutex to make tasks wait (used when @grab_lock is true)
++ * @mutex_init:	zero if the mutex hasn't been initialized yet.
++ *
++ * Although @unplug and @sync_tsk may point to the same task, the @unplug
++ * is used as a flag and still exists after @sync_tsk has exited and
++ * @sync_tsk set to NULL.
++ */
+ struct hotplug_pcp {
+ 	struct task_struct *unplug;
++	struct task_struct *sync_tsk;
+ 	int refcount;
++	int grab_lock;
+ 	struct completion synced;
++#ifdef CONFIG_PREEMPT_RT_FULL
++	spinlock_t lock;
++#else
++	struct mutex mutex;
++#endif
++	int mutex_init;
+ };
+ 
++#ifdef CONFIG_PREEMPT_RT_FULL
++# define hotplug_lock(hp) rt_spin_lock(&(hp)->lock)
++# define hotplug_unlock(hp) rt_spin_unlock(&(hp)->lock)
++#else
++# define hotplug_lock(hp) mutex_lock(&(hp)->mutex)
++# define hotplug_unlock(hp) mutex_unlock(&(hp)->mutex)
++#endif
++
+ static DEFINE_PER_CPU(struct hotplug_pcp, hotplug_pcp);
+ 
+ /**
+@@ -94,18 +111,40 @@ static DEFINE_PER_CPU(struct hotplug_pcp, hotplug_pcp);
+ void pin_current_cpu(void)
+ {
+ 	struct hotplug_pcp *hp;
++	int force = 0;
+ 
+ retry:
+ 	hp = &__get_cpu_var(hotplug_pcp);
+ 
+-	if (!hp->unplug || hp->refcount || preempt_count() > 1 ||
++	if (!hp->unplug || hp->refcount || force || preempt_count() > 1 ||
+ 	    hp->unplug == current || (current->flags & PF_STOMPER)) {
+ 		hp->refcount++;
+ 		return;
+ 	}
+-	preempt_enable();
+-	hotplug_lock();
+-	hotplug_unlock();
++
++	if (hp->grab_lock) {
++		preempt_enable();
++		hotplug_lock(hp);
++		hotplug_unlock(hp);
++	} else {
++		preempt_enable();
++		/*
++		 * Try to push this task off of this CPU.
++		 */
++		if (!migrate_me()) {
++			preempt_disable();
++			hp = &__get_cpu_var(hotplug_pcp);
++			if (!hp->grab_lock) {
++				/*
++				 * Just let it continue it's already pinned
++				 * or about to sleep.
++				 */
++				force = 1;
++				goto retry;
++			}
++			preempt_enable();
++		}
++	}
+ 	preempt_disable();
+ 	goto retry;
+ }
+@@ -127,26 +166,84 @@ void unpin_current_cpu(void)
+ 		wake_up_process(hp->unplug);
+ }
+ 
+-/*
+- * FIXME: Is this really correct under all circumstances ?
+- */
++static void wait_for_pinned_cpus(struct hotplug_pcp *hp)
++{
++	set_current_state(TASK_UNINTERRUPTIBLE);
++	while (hp->refcount) {
++		schedule_preempt_disabled();
++		set_current_state(TASK_UNINTERRUPTIBLE);
++	}
++}
++
+ static int sync_unplug_thread(void *data)
+ {
+ 	struct hotplug_pcp *hp = data;
+ 
+ 	preempt_disable();
+ 	hp->unplug = current;
++	wait_for_pinned_cpus(hp);
++
++	/*
++	 * This thread will synchronize the cpu_down() with threads
++	 * that have pinned the CPU. When the pinned CPU count reaches
++	 * zero, we inform the cpu_down code to continue to the next step.
++	 */
+ 	set_current_state(TASK_UNINTERRUPTIBLE);
+-	while (hp->refcount) {
+-		schedule_preempt_disabled();
++	preempt_enable();
++	complete(&hp->synced);
++
++	/*
++	 * If all succeeds, the next step will need tasks to wait till
++	 * the CPU is offline before continuing. To do this, the grab_lock
++	 * is set and tasks going into pin_current_cpu() will block on the
++	 * mutex. But we still need to wait for those that are already in
++	 * pinned CPU sections. If the cpu_down() failed, the kthread_should_stop()
++	 * will kick this thread out.
++	 */
++	while (!hp->grab_lock && !kthread_should_stop()) {
++		schedule();
++		set_current_state(TASK_UNINTERRUPTIBLE);
++	}
++
++	/* Make sure grab_lock is seen before we see a stale completion */
++	smp_mb();
++
++	/*
++	 * Now just before cpu_down() enters stop machine, we need to make
++	 * sure all tasks that are in pinned CPU sections are out, and new
++	 * tasks will now grab the lock, keeping them from entering pinned
++	 * CPU sections.
++	 */
++	if (!kthread_should_stop()) {
++		preempt_disable();
++		wait_for_pinned_cpus(hp);
++		preempt_enable();
++		complete(&hp->synced);
++	}
++
++	set_current_state(TASK_UNINTERRUPTIBLE);
++	while (!kthread_should_stop()) {
++		schedule();
+ 		set_current_state(TASK_UNINTERRUPTIBLE);
+ 	}
+ 	set_current_state(TASK_RUNNING);
+-	preempt_enable();
+-	complete(&hp->synced);
++
++	/*
++	 * Force this thread off this CPU as it's going down and
++	 * we don't want any more work on this CPU.
++	 */
++	current->flags &= ~PF_THREAD_BOUND;
++	do_set_cpus_allowed(current, cpu_present_mask);
++	migrate_me();
+ 	return 0;
+ }
+ 
++static void __cpu_unplug_sync(struct hotplug_pcp *hp)
++{
++	wake_up_process(hp->sync_tsk);
++	wait_for_completion(&hp->synced);
++}
++
+ /*
+  * Start the sync_unplug_thread on the target cpu and wait for it to
+  * complete.
+@@ -154,23 +251,83 @@ static int sync_unplug_thread(void *data)
+ static int cpu_unplug_begin(unsigned int cpu)
+ {
+ 	struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu);
+-	struct task_struct *tsk;
++	int err;
++
++	/* Protected by cpu_hotplug.lock */
++	if (!hp->mutex_init) {
++#ifdef CONFIG_PREEMPT_RT_FULL
++		spin_lock_init(&hp->lock);
++#else
++		mutex_init(&hp->mutex);
++#endif
++		hp->mutex_init = 1;
++	}
++
++	/* Inform the scheduler to migrate tasks off this CPU */
++	tell_sched_cpu_down_begin(cpu);
+ 
+ 	init_completion(&hp->synced);
+-	tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d", cpu);
+-	if (IS_ERR(tsk))
+-		return (PTR_ERR(tsk));
+-	kthread_bind(tsk, cpu);
+-	wake_up_process(tsk);
+-	wait_for_completion(&hp->synced);
++
++	hp->sync_tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d", cpu);
++	if (IS_ERR(hp->sync_tsk)) {
++		err = PTR_ERR(hp->sync_tsk);
++		hp->sync_tsk = NULL;
++		return err;
++	}
++	kthread_bind(hp->sync_tsk, cpu);
++
++	/*
++	 * Wait for tasks to get out of the pinned sections,
++	 * it's still OK if new tasks enter. Some CPU notifiers will
++	 * wait for tasks that are going to enter these sections and
++	 * we must not have them block.
++	 */
++	__cpu_unplug_sync(hp);
++
+ 	return 0;
+ }
+ 
++static void cpu_unplug_sync(unsigned int cpu)
++{
++	struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu);
++
++	init_completion(&hp->synced);
++	/* The completion needs to be initialzied before setting grab_lock */
++	smp_wmb();
++
++	/* Grab the mutex before setting grab_lock */
++	hotplug_lock(hp);
++	hp->grab_lock = 1;
++
++	/*
++	 * The CPU notifiers have been completed.
++	 * Wait for tasks to get out of pinned CPU sections and have new
++	 * tasks block until the CPU is completely down.
++	 */
++	__cpu_unplug_sync(hp);
++
++	/* All done with the sync thread */
++	kthread_stop(hp->sync_tsk);
++	hp->sync_tsk = NULL;
++}
++
+ static void cpu_unplug_done(unsigned int cpu)
+ {
+ 	struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu);
+ 
+ 	hp->unplug = NULL;
++	/* Let all tasks know cpu unplug is finished before cleaning up */
++	smp_wmb();
++
++	if (hp->sync_tsk)
++		kthread_stop(hp->sync_tsk);
++
++	if (hp->grab_lock) {
++		hotplug_unlock(hp);
++		/* protected by cpu_hotplug.lock */
++		hp->grab_lock = 0;
++	}
++	tell_sched_cpu_down_done(cpu);
+ }
+ 
+ void get_online_cpus(void)
+@@ -178,9 +335,9 @@ void get_online_cpus(void)
+ 	might_sleep();
+ 	if (cpu_hotplug.active_writer == current)
+ 		return;
+-	hotplug_lock();
++	mutex_lock(&cpu_hotplug.lock);
+ 	cpu_hotplug.refcount++;
+-	hotplug_unlock();
++	mutex_unlock(&cpu_hotplug.lock);
+ 
+ }
+ EXPORT_SYMBOL_GPL(get_online_cpus);
+@@ -189,10 +346,10 @@ void put_online_cpus(void)
+ {
+ 	if (cpu_hotplug.active_writer == current)
+ 		return;
+-	hotplug_lock();
++	mutex_lock(&cpu_hotplug.lock);
+ 	if (!--cpu_hotplug.refcount && unlikely(cpu_hotplug.active_writer))
+ 		wake_up_process(cpu_hotplug.active_writer);
+-	hotplug_unlock();
++	mutex_unlock(&cpu_hotplug.lock);
+ 
+ }
+ EXPORT_SYMBOL_GPL(put_online_cpus);
+@@ -224,11 +381,11 @@ static void cpu_hotplug_begin(void)
+ 	cpu_hotplug.active_writer = current;
+ 
+ 	for (;;) {
+-		hotplug_lock();
++		mutex_lock(&cpu_hotplug.lock);
+ 		if (likely(!cpu_hotplug.refcount))
+ 			break;
+ 		__set_current_state(TASK_UNINTERRUPTIBLE);
+-		hotplug_unlock();
++		mutex_unlock(&cpu_hotplug.lock);
+ 		schedule();
+ 	}
+ }
+@@ -236,7 +393,7 @@ static void cpu_hotplug_begin(void)
+ static void cpu_hotplug_done(void)
+ {
+ 	cpu_hotplug.active_writer = NULL;
+-	hotplug_unlock();
++	mutex_unlock(&cpu_hotplug.lock);
+ }
+ 
+ #else /* #if CONFIG_HOTPLUG_CPU */
+@@ -371,6 +528,9 @@ static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
+ 		goto out_release;
+ 	}
+ 
++	/* Notifiers are done. Don't let any more tasks pin this CPU. */
++	cpu_unplug_sync(cpu);
++
+ 	err = __stop_machine(take_cpu_down, &tcd_param, cpumask_of(cpu));
+ 	if (err) {
+ 		/* CPU didn't die: tell everyone.  Can't complain. */
+diff --git a/kernel/sched.c b/kernel/sched.c
+index 91ddbd8..87654e6 100644
+--- a/kernel/sched.c
++++ b/kernel/sched.c
+@@ -4596,7 +4596,7 @@ void migrate_disable(void)
+ {
+ 	struct task_struct *p = current;
+ 
+-	if (in_atomic() || p->flags & PF_THREAD_BOUND) {
++	if (in_atomic()) {
+ #ifdef CONFIG_SCHED_DEBUG
+ 		p->migrate_disable_atomic++;
+ #endif
+@@ -4627,7 +4627,7 @@ void migrate_enable(void)
+ 	unsigned long flags;
+ 	struct rq *rq;
+ 
+-	if (in_atomic() || p->flags & PF_THREAD_BOUND) {
++	if (in_atomic()) {
+ #ifdef CONFIG_SCHED_DEBUG
+ 		p->migrate_disable_atomic--;
+ #endif
+@@ -6553,6 +6553,84 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
+ 	cpumask_copy(&p->cpus_allowed, new_mask);
+ }
+ 
++static DEFINE_PER_CPU(struct cpumask, sched_cpumasks);
++static DEFINE_MUTEX(sched_down_mutex);
++static cpumask_t sched_down_cpumask;
++
++void tell_sched_cpu_down_begin(int cpu)
++{
++	mutex_lock(&sched_down_mutex);
++	cpumask_set_cpu(cpu, &sched_down_cpumask);
++	mutex_unlock(&sched_down_mutex);
++}
++
++void tell_sched_cpu_down_done(int cpu)
++{
++	mutex_lock(&sched_down_mutex);
++	cpumask_clear_cpu(cpu, &sched_down_cpumask);
++	mutex_unlock(&sched_down_mutex);
++}
++
++/**
++ * migrate_me - try to move the current task off this cpu
++ *
++ * Used by the pin_current_cpu() code to try to get tasks
++ * to move off the current CPU as it is going down.
++ * It will only move the task if the task isn't pinned to
++ * the CPU (with migrate_disable, affinity or THREAD_BOUND)
++ * and the task has to be in a RUNNING state. Otherwise the
++ * movement of the task will wake it up (change its state
++ * to running) when the task did not expect it.
++ *
++ * Returns 1 if it succeeded in moving the current task
++ *         0 otherwise.
++ */
++int migrate_me(void)
++{
++	struct task_struct *p = current;
++	struct migration_arg arg;
++	struct cpumask *cpumask;
++	struct cpumask *mask;
++	unsigned long flags;
++	unsigned int dest_cpu;
++	struct rq *rq;
++
++	/*
++	 * We can not migrate tasks bounded to a CPU or tasks not
++	 * running. The movement of the task will wake it up.
++	 */
++	if (p->flags & PF_THREAD_BOUND || p->state)
++		return 0;
++
++	mutex_lock(&sched_down_mutex);
++	rq = task_rq_lock(p, &flags);
++
++	cpumask = &__get_cpu_var(sched_cpumasks);
++	mask = &p->cpus_allowed;
++
++	cpumask_andnot(cpumask, mask, &sched_down_cpumask);
++
++	if (!cpumask_weight(cpumask)) {
++		/* It's only on this CPU? */
++		task_rq_unlock(rq, p, &flags);
++		mutex_unlock(&sched_down_mutex);
++		return 0;
++	}
++
++	dest_cpu = cpumask_any_and(cpu_active_mask, cpumask);
++
++	arg.task = p;
++	arg.dest_cpu = dest_cpu;
++
++	task_rq_unlock(rq, p, &flags);
++
++	stop_one_cpu(cpu_of(rq), migration_cpu_stop, &arg);
++	tlb_migrate_finish(p->mm);
++	mutex_unlock(&sched_down_mutex);
++
++	return 1;
++}
++
+ /*
+  * This is how migration works:
+  *

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0275-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0275-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0275-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0275-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch)
@@ -0,0 +1,32 @@
+From 6796047e3ae433fe2ea2dcc2738af99f7775e579 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <srostedt at redhat.com>
+Date: Tue, 17 Jul 2012 10:45:59 -0400
+Subject: [PATCH 275/287] cpu/rt: Fix cpu_hotplug variable initialization
+
+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
+mutex for non-RT, to just a mutex for both.  But the initialization of
+the variable was not updated to reflect this change.
+
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ kernel/cpu.c |    4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index 0964e93..8f87b72 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -54,11 +54,7 @@ static struct {
+ 	int refcount;
+ } cpu_hotplug = {
+ 	.active_writer = NULL,
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-	.lock = __SPIN_LOCK_UNLOCKED(cpu_hotplug.lock),
+-#else
+ 	.lock = __MUTEX_INITIALIZER(cpu_hotplug.lock),
+-#endif
+ 	.refcount = 0,
+ };
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0276-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0276-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0276-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0276-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch)
@@ -0,0 +1,66 @@
+From fe71f38c6e0adc9651f15b600e5993e1dacf853f Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt at goodmis.org>
+Date: Thu, 2 Aug 2012 18:56:52 -0400
+Subject: [PATCH 276/287] time/rt: Fix up leap-second backport for RT changes
+
+The leap-second backport broke RT, and a few changes had to be done.
+
+1) The second_overflow now encompasses ntp_leap_second, and since
+second_overflow is called with the xtime_lock held, we can not take that
+lock either.
+
+2) Change ktime_get_update_offsets() to use read_seqcount_begin() instead
+of read_seq_begin() (and retry).
+
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ kernel/time/ntp.c         |    6 ------
+ kernel/time/timekeeping.c |    4 ++--
+ 2 files changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
+index 09079b7..4b63943 100644
+--- a/kernel/time/ntp.c
++++ b/kernel/time/ntp.c
+@@ -362,9 +362,6 @@ int second_overflow(unsigned long secs)
+ 	int leap = 0;
+ 	s64 delta;
+ 
+-	raw_spin_lock(&xtime_lock);
+-	write_seqcount_begin(&xtime_seq);
+-
+ 	/*
+ 	 * Leap second processing. If in leap-insert state at the end of the
+ 	 * day, the system clock is set back one second; if in leap-delete
+@@ -405,9 +402,6 @@ int second_overflow(unsigned long secs)
+ 		break;
+ 	}
+ 
+-	write_seqcount_end(&xtime_seq);
+-	raw_spin_unlock(&xtime_lock);
+-
+ 	/* Bump the maxerror field */
+ 	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 7940c71..5147437 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)
+ 	u64 secs, nsecs;
+ 
+ 	do {
+-		seq = read_seqbegin(&xtime_lock);
++		seq = read_seqcount_begin(&xtime_seq);
+ 
+ 		secs = xtime.tv_sec;
+ 		nsecs = xtime.tv_nsec;
+@@ -1305,7 +1305,7 @@ ktime_t ktime_get_update_offsets(ktime_t *real, ktime_t *boot)
+ 
+ 		*real = offs_real;
+ 		*boot = offs_boot;
+-	} while (read_seqretry(&xtime_lock, seq));
++	} while (read_seqcount_retry(&xtime_seq, seq));
+ 
+ 	now = ktime_add_ns(ktime_set(secs, 0), nsecs);
+ 	now = ktime_sub(now, *real);

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0277-fix-printk-flush-of-messages.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0277-fix-printk-flush-of-messages.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0277-fix-printk-flush-of-messages.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0277-fix-printk-flush-of-messages.patch)
@@ -0,0 +1,55 @@
+From 2a77dcb59b3fe49c2598375adc2fafe447b986fc Mon Sep 17 00:00:00 2001
+From: Frank Rowand <frank.rowand at am.sony.com>
+Date: Wed, 16 May 2012 18:09:36 -0700
+Subject: [PATCH 277/287] fix printk flush of messages
+
+Updates console-make-rt-friendly.patch
+
+#ifdef CONFIG_PREEMPT_RT_FULL, printk() output is never flushed by
+printk() because:
+
+   # some liberties taken in this pseudo-code to make it easier to follow
+   printk()
+      vprintk()
+         raw_spin_lock(&logbuf_lock)
+            # increment preempt_count():
+            preempt_disable()
+      result = console_trylock_for_printk()
+         retval = 0
+         # lock will always be false, because preempt_count() will be >= 1
+         lock = ... && !preempt_count()
+         if (lock)
+            retval = 1
+         return retval
+      # result will always be false since lock will always be false
+      if (result)
+         console_unlock()
+            # this is where the printk() output would be flushed
+
+On system boot some printk() output is flushed because register_console()
+and tty_open() call console_unlock().
+
+This change also fixes the problem that was previously fixed by
+preempt-rt-allow-immediate-magic-sysrq-output-for-preempt_rt_full.patch
+
+Signed-off-by: Frank Rowand <frank.rowand at am.sony.com>
+Cc: Frank <Frank_Rowand at sonyusa.com>
+Link: http://lkml.kernel.org/r/4FB44FD0.4090800@am.sony.com
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ kernel/printk.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/printk.c b/kernel/printk.c
+index 9eabbbb..66e83e5 100644
+--- a/kernel/printk.c
++++ b/kernel/printk.c
+@@ -836,7 +836,7 @@ static int console_trylock_for_printk(unsigned int cpu, unsigned long flags)
+ 	int retval = 0, wake = 0;
+ #ifdef CONFIG_PREEMPT_RT_FULL
+ 	int lock = (!early_boot_irqs_disabled && !irqs_disabled_flags(flags) &&
+-		!preempt_count()) || sysrq_in_progress;
++		(preempt_count() <= 1)) || sysrq_in_progress;
+ #else
+ 	int lock = 1;
+ #endif

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0278-fix-printk-flush-of-messages.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0278-fix-printk-flush-of-messages.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0278-fix-printk-flush-of-messages.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0278-fix-printk-flush-of-messages.patch)
@@ -0,0 +1,145 @@
+From f0256598d049bd1e49255afa4563e62366387f4a Mon Sep 17 00:00:00 2001
+From: Frank Rowand <frank.rowand at am.sony.com>
+Date: Wed, 16 May 2012 18:05:53 -0700
+Subject: [PATCH 278/287] fix printk flush of messages
+
+Reverse preempt-rt-allow-immediate-magic-sysrq-output-for-preempt_rt_full.patch
+
+The problem addressed by that patch does not exist after applying
+console-make-rt-friendly-update.patch
+
+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 -----------------------
+ include/linux/sysrq.h                       |    5 -----
+ kernel/printk.c                             |    5 ++---
+ lib/Kconfig.debug                           |   22 ----------------------
+ 5 files changed, 3 insertions(+), 54 deletions(-)
+
+--- 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,
+ {
+ 	struct uart_cpm_port *pinfo = &cpm_uart_ports[co->index];
+ 	unsigned long flags;
+-	int nolock = oops_in_progress || sysrq_in_progress;
++	int nolock = oops_in_progress;
+ 
+ 	if (unlikely(nolock)) {
+ 		local_irq_save(flags);
+--- 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)
+                 sysrq_key_table[i] = op_p;
+ }
+ 
+-#ifdef CONFIG_MAGIC_SYSRQ_FORCE_PRINTK
+-
+-int sysrq_in_progress;
+-
+-static void set_sysrq_in_progress(int value)
+-{
+-	sysrq_in_progress = value;
+-}
+-
+-#else
+-
+-static void set_sysrq_in_progress(int value)
+-{
+-}
+-
+-#endif
+-
+ 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)
+ 	unsigned long flags;
+ 
+ 	spin_lock_irqsave(&sysrq_key_table_lock, flags);
+-
+-	set_sysrq_in_progress(1);
+-
+ 	/*
+ 	 * 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)
+ 		printk("\n");
+ 		console_loglevel = orig_log_level;
+ 	}
+-
+-	set_sysrq_in_progress(0);
+-
+ 	spin_unlock_irqrestore(&sysrq_key_table_lock, flags);
+ }
+ 
+--- a/include/linux/sysrq.h
++++ b/include/linux/sysrq.h
+@@ -38,11 +38,6 @@ struct sysrq_key_op {
+ 	int enable_mask;
+ };
+ 
+-#ifdef CONFIG_MAGIC_SYSRQ_FORCE_PRINTK
+-extern int sysrq_in_progress;
+-#else
+-#define sysrq_in_progress 0
+-#endif
+ #ifdef CONFIG_MAGIC_SYSRQ
+ 
+ /* Generic SysRq interface -- you may call it from any device driver, supplying
+--- a/kernel/printk.c
++++ b/kernel/printk.c
+@@ -21,7 +21,6 @@
+ #include <linux/tty.h>
+ #include <linux/tty_driver.h>
+ #include <linux/console.h>
+-#include <linux/sysrq.h>
+ #include <linux/init.h>
+ #include <linux/jiffies.h>
+ #include <linux/nmi.h>
+@@ -835,8 +834,8 @@ static int console_trylock_for_printk(unsigned int cpu, unsigned long flags)
+ {
+ 	int retval = 0, wake = 0;
+ #ifdef CONFIG_PREEMPT_RT_FULL
+-	int lock = (!early_boot_irqs_disabled && !irqs_disabled_flags(flags) &&
+-		(preempt_count() <= 1)) || sysrq_in_progress;
++	int lock = !early_boot_irqs_disabled && !irqs_disabled_flags(flags) &&
++		(preempt_count() <= 1);
+ #else
+ 	int lock = 1;
+ #endif
+--- a/lib/Kconfig.debug
++++ b/lib/Kconfig.debug
+@@ -62,28 +62,6 @@ config MAGIC_SYSRQ
+ 	  Specifies the default mask for the allowed SysRq keys.  This can be
+ 	  used to disable several sensitive keys by default.
+ 
+-config MAGIC_SYSRQ_FORCE_PRINTK
+-	bool "Force printk from Magic SysRq"
+-	depends on MAGIC_SYSRQ && PREEMPT_RT_FULL
+-	default n
+-	help
+-	  Allow the output from Magic SysRq to be output immediately, even if
+-	  this causes large latencies.  This can cause performance problems
+-	  for real-time processes.
+-
+-	  If PREEMPT_RT_FULL, printk() will not try to acquire the console lock
+-	  when interrupts or preemption are disabled.  If the console lock is
+-	  not acquired the printk() output will be buffered, but will not be
+-	  output immediately.  Some drivers call into the Magic SysRq code
+-	  with interrupts or preemption disabled, so the output of Magic SysRq
+-	  will be buffered instead of printing immediately if this option is
+-	  not selected.
+-
+-	  Even with this option selected, Magic SysRq output will be delayed
+-	  if the attempt to acquire the console lock fails.
+-
+-	  Don't say Y unless you really know what this hack does.
+-
+ config STRIP_ASM_SYMS
+ 	bool "Strip assembler-generated symbols during link"
+ 	default n

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0279-random-Make-it-work-on-rt.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0279-random-Make-it-work-on-rt.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0279-random-Make-it-work-on-rt.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0279-random-Make-it-work-on-rt.patch)
@@ -0,0 +1,125 @@
+From 48341cd4a27a0b73195ce7fbae0ff61116ced1be Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Tue, 21 Aug 2012 20:38:50 +0200
+Subject: [PATCH 279/287] random: Make it work on rt
+
+Delegate the random insertion to the forced threaded interrupt
+handler. Store the return IP of the hard interrupt handler in the irq
+descriptor and feed it into the random generator as a source of
+entropy.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ drivers/char/random.c   |   10 ++++++----
+ include/linux/irqdesc.h |    1 +
+ include/linux/random.h  |    2 +-
+ kernel/irq/handle.c     |    7 +++++--
+ kernel/irq/manage.c     |    6 ++++++
+ 5 files changed, 19 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/char/random.c b/drivers/char/random.c
+index d38af32..66c8a0f 100644
+--- a/drivers/char/random.c
++++ b/drivers/char/random.c
+@@ -767,18 +767,16 @@ EXPORT_SYMBOL_GPL(add_input_randomness);
+ 
+ static DEFINE_PER_CPU(struct fast_pool, irq_randomness);
+ 
+-void add_interrupt_randomness(int irq, int irq_flags)
++void add_interrupt_randomness(int irq, int irq_flags, __u64 ip)
+ {
+ 	struct entropy_store	*r;
+ 	struct fast_pool	*fast_pool = &__get_cpu_var(irq_randomness);
+-	struct pt_regs		*regs = get_irq_regs();
+ 	unsigned long		now = jiffies;
+ 	__u32			input[4], cycles = get_cycles();
+ 
+ 	input[0] = cycles ^ jiffies;
+ 	input[1] = irq;
+-	if (regs) {
+-		__u64 ip = instruction_pointer(regs);
++	if (ip) {
+ 		input[2] = ip;
+ 		input[3] = ip >> 32;
+ 	}
+@@ -792,7 +790,11 @@ void add_interrupt_randomness(int irq, int irq_flags)
+ 	fast_pool->last = now;
+ 
+ 	r = nonblocking_pool.initialized ? &input_pool : &nonblocking_pool;
++#ifndef CONFIG_PREEMPT_RT_FULL
+ 	__mix_pool_bytes(r, &fast_pool->pool, sizeof(fast_pool->pool), NULL);
++#else
++	mix_pool_bytes(r, &fast_pool->pool, sizeof(fast_pool->pool), NULL);
++#endif
+ 	/*
+ 	 * If we don't have a valid cycle counter, and we see
+ 	 * back-to-back timer interrupts, then skip giving credit for
+diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
+index f1e2527..5f4f091 100644
+--- a/include/linux/irqdesc.h
++++ b/include/linux/irqdesc.h
+@@ -53,6 +53,7 @@ struct irq_desc {
+ 	unsigned int		irq_count;	/* For detecting broken IRQs */
+ 	unsigned long		last_unhandled;	/* Aging timer for unhandled count */
+ 	unsigned int		irqs_unhandled;
++	u64			random_ip;
+ 	raw_spinlock_t		lock;
+ 	struct cpumask		*percpu_enabled;
+ #ifdef CONFIG_SMP
+diff --git a/include/linux/random.h b/include/linux/random.h
+index 29e217a..3995b33 100644
+--- a/include/linux/random.h
++++ b/include/linux/random.h
+@@ -53,7 +53,7 @@ extern void rand_initialize_irq(int irq);
+ extern void add_device_randomness(const void *, unsigned int);
+ extern void add_input_randomness(unsigned int type, unsigned int code,
+ 				 unsigned int value);
+-extern void add_interrupt_randomness(int irq, int irq_flags);
++extern void add_interrupt_randomness(int irq, int irq_flags, __u64 ip);
+ 
+ extern void get_random_bytes(void *buf, int nbytes);
+ extern void get_random_bytes_arch(void *buf, int nbytes);
+diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
+index a768885..f6b91bc 100644
+--- a/kernel/irq/handle.c
++++ b/kernel/irq/handle.c
+@@ -116,6 +116,8 @@ static void irq_wake_thread(struct irq_desc *desc, struct irqaction *action)
+ irqreturn_t
+ handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action)
+ {
++	struct pt_regs *regs = get_irq_regs();
++	u64 ip = regs ? instruction_pointer(regs) : 0;
+ 	irqreturn_t retval = IRQ_NONE;
+ 	unsigned int flags = 0, irq = desc->irq_data.irq;
+ 
+@@ -157,8 +159,9 @@ handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action)
+ 	} while (action);
+ 
+ #ifndef CONFIG_PREEMPT_RT_FULL
+-	/* FIXME: Can we unbreak that ? */
+-	add_interrupt_randomness(irq, flags);
++	add_interrupt_randomness(irq, flags, ip);
++#else
++	desc->random_ip = ip;
+ #endif
+ 
+ 	if (!noirqdebug)
+diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
+index 87dc053..2204340 100644
+--- a/kernel/irq/manage.c
++++ b/kernel/irq/manage.c
+@@ -816,6 +816,12 @@ static int irq_thread(void *data)
+ 			action_ret = handler_fn(desc, action);
+ 			if (!noirqdebug)
+ 				note_interrupt(action->irq, desc, action_ret);
++#ifdef CONFIG_PREEMPT_RT_FULL
++			migrate_disable();
++			add_interrupt_randomness(action->irq, 0,
++						 desc->random_ip ^ (u64) action);
++			migrate_enable();
++#endif
+ 		}
+ 
+ 		wake = atomic_dec_and_test(&desc->threads_active);

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0280-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0280-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0280-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0280-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch)
@@ -0,0 +1,137 @@
+From fd5702c8b3138449acdaf915dce98e38f8c59ced Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt at goodmis.org>
+Date: Thu, 4 Oct 2012 11:02:04 -0400
+Subject: [PATCH 280/287] softirq: Init softirq local lock after per cpu
+ section is set up
+
+I discovered this bug when booting 3.4-rt on my powerpc box. It crashed
+with the following report:
+
+------------[ cut here ]------------
+kernel BUG at /work/rt/stable-rt.git/kernel/rtmutex_common.h:75!
+Oops: Exception in kernel mode, sig: 5 [#1]
+PREEMPT SMP NR_CPUS=64 NUMA PA Semi PWRficient
+Modules linked in:
+NIP: c0000000004aa03c LR: c0000000004aa01c CTR: c00000000009b2ac
+REGS: c00000003e8d7950 TRAP: 0700   Not tainted  (3.4.11-test-rt19)
+MSR: 9000000000029032 <SF,HV,EE,ME,IR,DR,RI>  CR: 24000082  XER: 20000000
+SOFTE: 0
+TASK = c00000003e8fdcd0[11] 'ksoftirqd/1' THREAD: c00000003e8d4000 CPU: 1
+GPR00: 0000000000000001 c00000003e8d7bd0 c000000000d6cbb0 0000000000000000
+GPR04: c00000003e8fdcd0 0000000000000000 0000000024004082 c000000000011454
+GPR08: 0000000000000000 0000000080000001 c00000003e8fdcd1 0000000000000000
+GPR12: 0000000024000084 c00000000fff0280 ffffffffffffffff 000000003ffffad8
+GPR16: ffffffffffffffff 000000000072c798 0000000000000060 0000000000000000
+GPR20: 0000000000642741 000000000072c858 000000003ffffaf0 0000000000000417
+GPR24: 000000000072dcd0 c00000003e7ff990 0000000000000000 0000000000000001
+GPR28: 0000000000000000 c000000000792340 c000000000ccec78 c000000001182338
+NIP [c0000000004aa03c] .wakeup_next_waiter+0x44/0xb8
+LR [c0000000004aa01c] .wakeup_next_waiter+0x24/0xb8
+Call Trace:
+[c00000003e8d7bd0] [c0000000004aa01c] .wakeup_next_waiter+0x24/0xb8 (unreliable)
+[c00000003e8d7c60] [c0000000004a0320] .rt_spin_lock_slowunlock+0x8c/0xe4
+[c00000003e8d7ce0] [c0000000004a07cc] .rt_spin_unlock+0x54/0x64
+[c00000003e8d7d60] [c0000000000636bc] .__thread_do_softirq+0x130/0x174
+[c00000003e8d7df0] [c00000000006379c] .run_ksoftirqd+0x9c/0x1a4
+[c00000003e8d7ea0] [c000000000080b68] .kthread+0xa8/0xb4
+[c00000003e8d7f90] [c00000000001c2f8] .kernel_thread+0x54/0x70
+Instruction dump:
+60000000 e86d01c8 38630730 4bff7061 60000000 ebbf0008 7c7c1b78 e81d0040
+7fe00278 7c000074 7800d182 68000001 <0b000000> e88d01c8 387d0010 38840738
+
+The rtmutex_common.h:75 is:
+
+rt_mutex_top_waiter(struct rt_mutex *lock)
+{
+	struct rt_mutex_waiter *w;
+
+	w = plist_first_entry(&lock->wait_list, struct rt_mutex_waiter,
+			       list_entry);
+	BUG_ON(w->lock != lock);
+
+	return w;
+}
+
+Where the waiter->lock is corrupted. I saw various other random bugs
+that all had to with the softirq lock and plist. As plist needs to be
+initialized before it is used I investigated how this lock is
+initialized. It's initialized with:
+
+void __init softirq_early_init(void)
+{
+	local_irq_lock_init(local_softirq_lock);
+}
+
+Where:
+
+#define local_irq_lock_init(lvar)					\
+	do {								\
+		int __cpu;						\
+		for_each_possible_cpu(__cpu)				\
+			spin_lock_init(&per_cpu(lvar, __cpu).lock);	\
+	} while (0)
+
+As the softirq lock is a local_irq_lock, which is a per_cpu lock, the
+initialization is done to all per_cpu versions of the lock. But lets
+look at where the softirq_early_init() is called from.
+
+In init/main.c: start_kernel()
+
+/*
+ * Interrupts are still disabled. Do necessary setups, then
+ * enable them
+ */
+	softirq_early_init();
+	tick_init();
+	boot_cpu_init();
+	page_address_init();
+	printk(KERN_NOTICE "%s", linux_banner);
+	setup_arch(&command_line);
+	mm_init_owner(&init_mm, &init_task);
+	mm_init_cpumask(&init_mm);
+	setup_command_line(command_line);
+	setup_nr_cpu_ids();
+	setup_per_cpu_areas();
+	smp_prepare_boot_cpu();	/* arch-specific boot-cpu hooks */
+
+One of the first things that is called is the initialization of the
+softirq lock. But if you look further down, we see the per_cpu areas
+have not been set up yet. Thus initializing a local_irq_lock() before
+the per_cpu section is set up, may not work as it is initializing the
+per cpu locks before the per cpu exists.
+
+By moving the softirq_early_init() right after setup_per_cpu_areas(),
+the kernel boots fine.
+
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+Cc: Clark Williams <clark at redhat.com>
+Cc: John Kacur <jkacur at redhat.com>
+Cc: Carsten Emde <cbe at osadl.org>
+Cc: vomlehn at texas.net
+Cc: stable-rt at vger.kernel.org
+Link: http://lkml.kernel.org/r/1349362924.6755.18.camel@gandalf.local.home
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ init/main.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/init/main.c b/init/main.c
+index d432bea..6f96224 100644
+--- a/init/main.c
++++ b/init/main.c
+@@ -490,7 +490,6 @@ asmlinkage void __init start_kernel(void)
+  * Interrupts are still disabled. Do necessary setups, then
+  * enable them
+  */
+-	softirq_early_init();
+ 	tick_init();
+ 	boot_cpu_init();
+ 	page_address_init();
+@@ -501,6 +500,7 @@ asmlinkage void __init start_kernel(void)
+ 	setup_command_line(command_line);
+ 	setup_nr_cpu_ids();
+ 	setup_per_cpu_areas();
++	softirq_early_init();
+ 	smp_prepare_boot_cpu();	/* arch-specific boot-cpu hooks */
+ 
+ 	build_all_zonelists(NULL);

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0281-mm-slab-Fix-potential-deadlock.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0281-mm-slab-Fix-potential-deadlock.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0281-mm-slab-Fix-potential-deadlock.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0281-mm-slab-Fix-potential-deadlock.patch)
@@ -0,0 +1,124 @@
+From 040985c9ea3c05cfcf13eebe4dec93aa7dc3cdf5 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 26 Sep 2012 16:20:00 +0200
+Subject: [PATCH 281/287] mm: slab: Fix potential deadlock
+
+ =============================================
+[ INFO: possible recursive locking detected ]
+ 3.6.0-rt1+ #49 Not tainted
+ ---------------------------------------------
+ swapper/0/1 is trying to acquire lock:
+ lock_slab_on+0x72/0x77
+
+ but task is already holding lock:
+ __local_lock_irq+0x24/0x77
+
+ other info that might help us debug this:
+  Possible unsafe locking scenario:
+
+        CPU0
+        ----
+   lock(&per_cpu(slab_lock, __cpu).lock);
+   lock(&per_cpu(slab_lock, __cpu).lock);
+
+  *** DEADLOCK ***
+
+  May be due to missing lock nesting notation
+
+ 2 locks held by swapper/0/1:
+ kmem_cache_create+0x33/0x89
+ __local_lock_irq+0x24/0x77
+
+ stack backtrace:
+ Pid: 1, comm: swapper/0 Not tainted 3.6.0-rt1+ #49
+ Call Trace:
+ __lock_acquire+0x9a4/0xdc4
+ ? __local_lock_irq+0x24/0x77
+ ? lock_slab_on+0x72/0x77
+ lock_acquire+0xc4/0x108
+ ? lock_slab_on+0x72/0x77
+ ? unlock_slab_on+0x5b/0x5b
+ rt_spin_lock+0x36/0x3d
+ ? lock_slab_on+0x72/0x77
+ ? migrate_disable+0x85/0x93
+ lock_slab_on+0x72/0x77
+ do_ccupdate_local+0x19/0x44
+ slab_on_each_cpu+0x36/0x5a
+ do_tune_cpucache+0xc1/0x305
+ enable_cpucache+0x8c/0xb5
+ setup_cpu_cache+0x28/0x182
+ __kmem_cache_create+0x34b/0x380
+ ? shmem_mount+0x1a/0x1a
+ kmem_cache_create+0x4a/0x89
+ ? shmem_mount+0x1a/0x1a
+ shmem_init+0x3e/0xd4
+ kernel_init+0x11c/0x214
+ kernel_thread_helper+0x4/0x10
+ ? retint_restore_args+0x13/0x13
+ ? start_kernel+0x3bc/0x3bc
+ ? gs_change+0x13/0x13
+
+It's not a missing annotation. It's simply wrong code and needs to be
+fixed. Instead of nesting the local and the remote cpu lock simply
+acquire only the remote cpu lock, which is sufficient protection for
+this procedure.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ include/linux/locallock.h |    8 ++++++++
+ mm/slab.c                 |   10 ++--------
+ 2 files changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/include/linux/locallock.h b/include/linux/locallock.h
+index 8fbc393..0161fbb 100644
+--- a/include/linux/locallock.h
++++ b/include/linux/locallock.h
+@@ -96,6 +96,9 @@ static inline void __local_lock_irq(struct local_irq_lock *lv)
+ #define local_lock_irq(lvar)						\
+ 	do { __local_lock_irq(&get_local_var(lvar)); } while (0)
+ 
++#define local_lock_irq_on(lvar, cpu)					\
++	do { __local_lock_irq(&per_cpu(lvar, cpu)); } while (0)
++
+ static inline void __local_unlock_irq(struct local_irq_lock *lv)
+ {
+ 	LL_WARN(!lv->nestcnt);
+@@ -111,6 +114,11 @@ static inline void __local_unlock_irq(struct local_irq_lock *lv)
+ 		put_local_var(lvar);					\
+ 	} while (0)
+ 
++#define local_unlock_irq_on(lvar, cpu)					\
++	do {								\
++		__local_unlock_irq(&per_cpu(lvar, cpu));		\
++	} while (0)
++
+ static inline int __local_lock_irqsave(struct local_irq_lock *lv)
+ {
+ 	if (lv->owner != current) {
+diff --git a/mm/slab.c b/mm/slab.c
+index 7b2d343..81d3481 100644
+--- a/mm/slab.c
++++ b/mm/slab.c
+@@ -747,18 +747,12 @@ slab_on_each_cpu(void (*func)(void *arg, int this_cpu), void *arg)
+ 
+ static void lock_slab_on(unsigned int cpu)
+ {
+-	if (cpu == smp_processor_id())
+-		local_lock_irq(slab_lock);
+-	else
+-		local_spin_lock_irq(slab_lock, &per_cpu(slab_lock, cpu).lock);
++	local_lock_irq_on(slab_lock, cpu);
+ }
+ 
+ static void unlock_slab_on(unsigned int cpu)
+ {
+-	if (cpu == smp_processor_id())
+-		local_unlock_irq(slab_lock);
+-	else
+-		local_spin_unlock_irq(slab_lock, &per_cpu(slab_lock, cpu).lock);
++	local_unlock_irq_on(slab_lock, cpu);
+ }
+ #endif
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0282-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0282-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0282-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0282-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch)
@@ -0,0 +1,62 @@
+From 667218a8d4eee4b000a06788a63e6ced192edc56 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Thu, 27 Sep 2012 11:11:46 +0200
+Subject: [PATCH 282/287] mm: page_alloc: Use local_lock_on() instead of plain
+ spinlock
+
+The plain spinlock while sufficient does not update the local_lock
+internals. Use a proper local_lock function instead to ease debugging.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ include/linux/locallock.h |   11 +++++++++++
+ mm/page_alloc.c           |    4 ++--
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/locallock.h b/include/linux/locallock.h
+index 0161fbb..f1804a3 100644
+--- a/include/linux/locallock.h
++++ b/include/linux/locallock.h
+@@ -137,6 +137,12 @@ static inline int __local_lock_irqsave(struct local_irq_lock *lv)
+ 		_flags = __get_cpu_var(lvar).flags;			\
+ 	} while (0)
+ 
++#define local_lock_irqsave_on(lvar, _flags, cpu)			\
++	do {								\
++		__local_lock_irqsave(&per_cpu(lvar, cpu));		\
++		_flags = per_cpu(lvar, cpu).flags;			\
++	} while (0)
++
+ static inline int __local_unlock_irqrestore(struct local_irq_lock *lv,
+ 					    unsigned long flags)
+ {
+@@ -156,6 +162,11 @@ static inline int __local_unlock_irqrestore(struct local_irq_lock *lv,
+ 			put_local_var(lvar);				\
+ 	} while (0)
+ 
++#define local_unlock_irqrestore_on(lvar, flags, cpu)			\
++	do {								\
++		__local_unlock_irqrestore(&per_cpu(lvar, cpu), flags);	\
++	} while (0)
++
+ #define local_spin_trylock_irq(lvar, lock)				\
+ 	({								\
+ 		int __locked;						\
+diff --git a/mm/page_alloc.c b/mm/page_alloc.c
+index 67202bc..8678a7f 100644
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
+@@ -227,9 +227,9 @@ static DEFINE_LOCAL_IRQ_LOCK(pa_lock);
+ 
+ #ifdef CONFIG_PREEMPT_RT_BASE
+ # define cpu_lock_irqsave(cpu, flags)		\
+-	spin_lock_irqsave(&per_cpu(pa_lock, cpu).lock, flags)
++	local_lock_irqsave_on(pa_lock, flags, cpu)
+ # define cpu_unlock_irqrestore(cpu, flags)		\
+-	spin_unlock_irqrestore(&per_cpu(pa_lock, cpu).lock, flags)
++	local_unlock_irqrestore_on(pa_lock, flags, cpu)
+ #else
+ # define cpu_lock_irqsave(cpu, flags)		local_irq_save(flags)
+ # define cpu_unlock_irqrestore(cpu, flags)	local_irq_restore(flags)

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0283-rt-rwsem-rwlock-lockdep-annotations.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0283-rt-rwsem-rwlock-lockdep-annotations.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0283-rt-rwsem-rwlock-lockdep-annotations.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0283-rt-rwsem-rwlock-lockdep-annotations.patch)
@@ -0,0 +1,123 @@
+From 6ae7fdd1f609dc3938e50ffe7976534f31f3ee9d Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Fri, 28 Sep 2012 10:49:42 +0100
+Subject: [PATCH 283/287] rt: rwsem/rwlock: lockdep annotations
+
+rwlocks and rwsems on RT do not allow multiple readers. Annotate the
+lockdep acquire functions accordingly.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ kernel/rt.c |   46 +++++++++++++++++++++++++---------------------
+ 1 file changed, 25 insertions(+), 21 deletions(-)
+
+diff --git a/kernel/rt.c b/kernel/rt.c
+index 092d6b3..aa10504 100644
+--- a/kernel/rt.c
++++ b/kernel/rt.c
+@@ -216,15 +216,17 @@ int __lockfunc rt_read_trylock(rwlock_t *rwlock)
+ 	 * write locked.
+ 	 */
+ 	migrate_disable();
+-	if (rt_mutex_owner(lock) != current)
++	if (rt_mutex_owner(lock) != current) {
+ 		ret = rt_mutex_trylock(lock);
+-	else if (!rwlock->read_depth)
++		if (ret)
++			rwlock_acquire(&rwlock->dep_map, 0, 1, _RET_IP_);
++	} else if (!rwlock->read_depth) {
+ 		ret = 0;
++	}
+ 
+-	if (ret) {
++	if (ret)
+ 		rwlock->read_depth++;
+-		rwlock_acquire_read(&rwlock->dep_map, 0, 1, _RET_IP_);
+-	} else
++	else
+ 		migrate_enable();
+ 
+ 	return ret;
+@@ -242,13 +244,13 @@ void __lockfunc rt_read_lock(rwlock_t *rwlock)
+ {
+ 	struct rt_mutex *lock = &rwlock->lock;
+ 
+-	rwlock_acquire_read(&rwlock->dep_map, 0, 0, _RET_IP_);
+-
+ 	/*
+ 	 * recursive read locks succeed when current owns the lock
+ 	 */
+-	if (rt_mutex_owner(lock) != current)
++	if (rt_mutex_owner(lock) != current) {
++		rwlock_acquire(&rwlock->dep_map, 0, 0, _RET_IP_);
+ 		__rt_spin_lock(lock);
++	}
+ 	rwlock->read_depth++;
+ }
+ 
+@@ -264,11 +266,11 @@ EXPORT_SYMBOL(rt_write_unlock);
+ 
+ void __lockfunc rt_read_unlock(rwlock_t *rwlock)
+ {
+-	rwlock_release(&rwlock->dep_map, 1, _RET_IP_);
+-
+ 	/* Release the lock only when read_depth is down to 0 */
+-	if (--rwlock->read_depth == 0)
++	if (--rwlock->read_depth == 0) {
++		rwlock_release(&rwlock->dep_map, 1, _RET_IP_);
+ 		__rt_spin_unlock(&rwlock->lock);
++	}
+ }
+ EXPORT_SYMBOL(rt_read_unlock);
+ 
+@@ -315,9 +317,10 @@ EXPORT_SYMBOL(rt_up_write);
+ 
+ void  rt_up_read(struct rw_semaphore *rwsem)
+ {
+-	rwsem_release(&rwsem->dep_map, 1, _RET_IP_);
+-	if (--rwsem->read_depth == 0)
++	if (--rwsem->read_depth == 0) {
++		rwsem_release(&rwsem->dep_map, 1, _RET_IP_);
+ 		rt_mutex_unlock(&rwsem->lock);
++	}
+ }
+ EXPORT_SYMBOL(rt_up_read);
+ 
+@@ -366,15 +369,16 @@ int  rt_down_read_trylock(struct rw_semaphore *rwsem)
+ 	 * but not when read_depth == 0 which means that the rwsem is
+ 	 * write locked.
+ 	 */
+-	if (rt_mutex_owner(lock) != current)
++	if (rt_mutex_owner(lock) != current) {
+ 		ret = rt_mutex_trylock(&rwsem->lock);
+-	else if (!rwsem->read_depth)
++		if (ret)
++			rwsem_acquire(&rwsem->dep_map, 0, 1, _RET_IP_);
++	} else if (!rwsem->read_depth) {
+ 		ret = 0;
++	}
+ 
+-	if (ret) {
++	if (ret)
+ 		rwsem->read_depth++;
+-		rwsem_acquire(&rwsem->dep_map, 0, 1, _RET_IP_);
+-	}
+ 	return ret;
+ }
+ EXPORT_SYMBOL(rt_down_read_trylock);
+@@ -383,10 +387,10 @@ static void __rt_down_read(struct rw_semaphore *rwsem, int subclass)
+ {
+ 	struct rt_mutex *lock = &rwsem->lock;
+ 
+-	rwsem_acquire_read(&rwsem->dep_map, subclass, 0, _RET_IP_);
+-
+-	if (rt_mutex_owner(lock) != current)
++	if (rt_mutex_owner(lock) != current) {
++		rwsem_acquire(&rwsem->dep_map, subclass, 0, _RET_IP_);
+ 		rt_mutex_lock(&rwsem->lock);
++	}
+ 	rwsem->read_depth++;
+ }
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0284-sched-Better-debug-output-for-might-sleep.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0284-sched-Better-debug-output-for-might-sleep.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0284-sched-Better-debug-output-for-might-sleep.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0284-sched-Better-debug-output-for-might-sleep.patch)
@@ -0,0 +1,79 @@
+From a28f24a3217482ed429326b2a15cf95f1e3f7a6b Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Fri, 5 Oct 2012 08:56:15 +0100
+Subject: [PATCH 284/287] sched: Better debug output for might sleep
+
+might sleep can tell us where interrupts have been disabled, but we
+have no idea what disabled preemption. Add some debug infrastructure.
+
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ include/linux/sched.h |    4 ++++
+ kernel/sched.c        |   23 +++++++++++++++++++++--
+ 2 files changed, 25 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 03498cc..12317b6 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -1612,6 +1612,10 @@ struct task_struct {
+ 	int kmap_idx;
+ 	pte_t kmap_pte[KM_TYPE_NR];
+ #endif
++
++#ifdef CONFIG_DEBUG_PREEMPT
++	unsigned long preempt_disable_ip;
++#endif
+ };
+ 
+ #ifdef CONFIG_PREEMPT_RT_FULL
+diff --git a/kernel/sched.c b/kernel/sched.c
+index 87654e6..cdf9484 100644
+--- a/kernel/sched.c
++++ b/kernel/sched.c
+@@ -4487,8 +4487,13 @@ void __kprobes add_preempt_count(int val)
+ 	DEBUG_LOCKS_WARN_ON((preempt_count() & PREEMPT_MASK) >=
+ 				PREEMPT_MASK - 10);
+ #endif
+-	if (preempt_count() == val)
+-		trace_preempt_off(CALLER_ADDR0, get_parent_ip(CALLER_ADDR1));
++	if (preempt_count() == val) {
++		unsigned long ip = get_parent_ip(CALLER_ADDR1);
++#ifdef CONFIG_DEBUG_PREEMPT
++		current->preempt_disable_ip = ip;
++#endif
++		trace_preempt_off(CALLER_ADDR0, ip);
++	}
+ }
+ EXPORT_SYMBOL(add_preempt_count);
+ 
+@@ -4530,6 +4535,13 @@ static noinline void __schedule_bug(struct task_struct *prev)
+ 	print_modules();
+ 	if (irqs_disabled())
+ 		print_irqtrace_events(prev);
++#ifdef DEBUG_PREEMPT
++	if (in_atomic_preempt_off()) {
++		pr_err("Preemption disabled at:");
++		print_ip_sym(current->preempt_disable_ip);
++		pr_cont("\n");
++	}
++#endif
+ 
+ 	if (regs)
+ 		show_regs(regs);
+@@ -8912,6 +8924,13 @@ void __might_sleep(const char *file, int line, int preempt_offset)
+ 	debug_show_held_locks(current);
+ 	if (irqs_disabled())
+ 		print_irqtrace_events(current);
++#ifdef DEBUG_PREEMPT
++	if (!preempt_count_equals(preempt_offset)) {
++		pr_err("Preemption disabled at:");
++		print_ip_sym(current->preempt_disable_ip);
++		pr_cont("\n");
++	}
++#endif
+ 	dump_stack();
+ }
+ EXPORT_SYMBOL(__might_sleep);

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0285-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0285-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0285-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0285-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch)
@@ -0,0 +1,63 @@
+From b26582e21c43621814aaef6423036c4ae7725162 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx at linutronix.de>
+Date: Wed, 3 Oct 2012 17:21:53 +0100
+Subject: [PATCH 285/287] stomp_machine: Use mutex_trylock when called from
+ inactive cpu
+
+If the stop machinery is called from inactive CPU we cannot use
+mutex_lock, because some other stomp machine invokation might be in
+progress and the mutex can be contended. We cannot schedule from this
+context, so trylock and loop.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ kernel/stop_machine.c |   13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c
+index 561ba3a..e98c70b 100644
+--- a/kernel/stop_machine.c
++++ b/kernel/stop_machine.c
+@@ -158,7 +158,7 @@ static DEFINE_PER_CPU(struct cpu_stop_work, stop_cpus_work);
+ 
+ static void queue_stop_cpus_work(const struct cpumask *cpumask,
+ 				 cpu_stop_fn_t fn, void *arg,
+-				 struct cpu_stop_done *done)
++				 struct cpu_stop_done *done, bool inactive)
+ {
+ 	struct cpu_stop_work *work;
+ 	unsigned int cpu;
+@@ -175,7 +175,12 @@ static void queue_stop_cpus_work(const struct cpumask *cpumask,
+ 	 * Make sure that all work is queued on all cpus before we
+ 	 * any of the cpus can execute it.
+ 	 */
+-	mutex_lock(&stopper_lock);
++	if (!inactive) {
++		mutex_lock(&stopper_lock);
++	} else {
++		while (!mutex_trylock(&stopper_lock))
++			cpu_relax();
++	}
+ 	for_each_cpu(cpu, cpumask)
+ 		cpu_stop_queue_work(&per_cpu(cpu_stopper, cpu),
+ 				    &per_cpu(stop_cpus_work, cpu));
+@@ -188,7 +193,7 @@ static int __stop_cpus(const struct cpumask *cpumask,
+ 	struct cpu_stop_done done;
+ 
+ 	cpu_stop_init_done(&done, cpumask_weight(cpumask));
+-	queue_stop_cpus_work(cpumask, fn, arg, &done);
++	queue_stop_cpus_work(cpumask, fn, arg, &done, false);
+ 	wait_for_stop_done(&done);
+ 	return done.executed ? done.ret : -ENOENT;
+ }
+@@ -601,7 +606,7 @@ int stop_machine_from_inactive_cpu(int (*fn)(void *), void *data,
+ 	set_state(&smdata, STOPMACHINE_PREPARE);
+ 	cpu_stop_init_done(&done, num_active_cpus());
+ 	queue_stop_cpus_work(cpu_active_mask, stop_machine_cpu_stop, &smdata,
+-			     &done);
++			     &done, true);
+ 	ret = stop_machine_cpu_stop(&smdata);
+ 
+ 	/* Busy wait for completion. */

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0286-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0286-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0286-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0286-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch)
@@ -0,0 +1,36 @@
+From d52c71af7f8e2df934e6492edd7b56c38465ee26 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <srostedt at redhat.com>
+Date: Tue, 16 Oct 2012 17:00:19 -0400
+Subject: [PATCH 286/287] slab: Fix up stable merge of slab init_lock_keys()
+
+There was a stable fix that moved the init_lock_keys() to after
+the enable_cpucache(). But -rt changed this function to
+init_cachep_lock_keys(). This moves the init afterwards to
+match the stable fix.
+
+Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
+---
+ mm/slab.c |    5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/mm/slab.c b/mm/slab.c
+index 81d3481..fff347f 100644
+--- a/mm/slab.c
++++ b/mm/slab.c
+@@ -1747,15 +1747,12 @@ void __init kmem_cache_init_late(void)
+ 	/* 6) resize the head arrays to their final sizes */
+ 	mutex_lock(&cache_chain_mutex);
+ 	list_for_each_entry(cachep, &cache_chain, next) {
+-		init_cachep_lock_keys(cachep);
+ 		if (enable_cpucache(cachep, GFP_NOWAIT))
+ 			BUG();
++		init_cachep_lock_keys(cachep);
+ 	}
+ 	mutex_unlock(&cache_chain_mutex);
+ 
+-	/* Annotate slab for lockdep -- annotate the malloc caches */
+-	init_lock_keys();
+-
+ 	/* Done! */
+ 	g_cpucache_up = FULL;
+ 

Copied: dists/squeeze-backports/linux/debian/patches/features/all/rt/0287-Linux-3.2.32-rt48-REBASE.patch (from r19450, dists/sid/linux/debian/patches/features/all/rt/0287-Linux-3.2.32-rt48-REBASE.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/0287-Linux-3.2.32-rt48-REBASE.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/all/rt/0287-Linux-3.2.32-rt48-REBASE.patch)
@@ -0,0 +1,16 @@
+From 0e157007347ba63f366d16fe31f49241bd2cfd26 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <srostedt at redhat.com>
+Date: Tue, 16 Oct 2012 10:41:29 -0400
+Subject: [PATCH 287/287] Linux 3.2.32-rt48 REBASE
+
+---
+ localversion-rt |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/localversion-rt b/localversion-rt
+index b2111a2..2470798 100644
+--- a/localversion-rt
++++ b/localversion-rt
+@@ -1 +1 @@
+--rt24
++-rt48

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt/series
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt/series	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt/series	Tue Nov  6 04:48:05 2012	(r19482)
@@ -224,59 +224,64 @@
 0224-workqueue-use-get-cpu-light.patch.patch
 0225-epoll.patch.patch
 0226-mm-vmalloc.patch.patch
-0227-workqueue-Fix-cpuhotplug-trainwreck.patch
-0228-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
-0229-workqueue-Use-get_cpu_light-in-flush_gcwq.patch
-0230-hotplug-stuff.patch.patch
-0231-debugobjects-rt.patch.patch
-0232-jump-label-rt.patch.patch
-0233-skbufhead-raw-lock.patch.patch
-0234-x86-no-perf-irq-work-rt.patch.patch
-0235-console-make-rt-friendly.patch.patch
-0236-printk-Disable-migration-instead-of-preemption.patch
-0237-power-use-generic-rwsem-on-rt.patch
-0238-power-disable-highmem-on-rt.patch.patch
-0239-arm-disable-highmem-on-rt.patch.patch
-0240-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
-0241-mips-disable-highmem-on-rt.patch.patch
-0242-net-Avoid-livelock-in-net_tx_action-on-RT.patch
-0243-ping-sysrq.patch.patch
-0244-kgdb-serial-Short-term-workaround.patch
-0245-add-sys-kernel-realtime-entry.patch
-0246-mm-rt-kmap_atomic-scheduling.patch
-0247-ipc-sem-Rework-semaphore-wakeups.patch
-0248-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch
-0249-x86-kvm-require-const-tsc-for-rt.patch.patch
-0250-scsi-fcoe-rt-aware.patch.patch
-0251-x86-crypto-Reduce-preempt-disabled-regions.patch
-0252-dm-Make-rt-aware.patch
-0253-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
-0254-seqlock-Prevent-rt-starvation.patch
-0255-timer-Fix-hotplug-for-rt.patch
-0256-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
-0257-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
-0258-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
-0259-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
-0260-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
-0261-softirq-Check-preemption-after-reenabling-interrupts.patch
-0262-rt-Introduce-cpu_chill.patch
-0263-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
-0264-net-Use-cpu_chill-instead-of-cpu_relax.patch
-0265-kconfig-disable-a-few-options-rt.patch.patch
-0266-kconfig-preempt-rt-full.patch.patch
-0267-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch
-0268-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
-0269-net-RT-REmove-preemption-disabling-in-netif_rx.patch
-0270-mips-remove-smp-reserve-lock.patch.patch
-0271-Latency-histogramms-Cope-with-backwards-running-loca.patch
-0272-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
-0273-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
-0274-Latency-histograms-Detect-another-yet-overlooked-sha.patch
-0275-slab-Prevent-local-lock-deadlock.patch
-0276-fs-jbd-pull-your-plug-when-waiting-for-space.patch
-0277-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
-0278-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
-0279-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
-0280-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
-0281-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch
-0282-Linux-3.2.23-rt37-REBASE.patch
+0227-debugobjects-rt.patch.patch
+0228-jump-label-rt.patch.patch
+0229-skbufhead-raw-lock.patch.patch
+0230-x86-no-perf-irq-work-rt.patch.patch
+0231-console-make-rt-friendly.patch.patch
+0232-printk-Disable-migration-instead-of-preemption.patch
+0233-power-use-generic-rwsem-on-rt.patch
+0234-power-disable-highmem-on-rt.patch.patch
+0235-arm-disable-highmem-on-rt.patch.patch
+0236-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
+0237-mips-disable-highmem-on-rt.patch.patch
+0238-net-Avoid-livelock-in-net_tx_action-on-RT.patch
+0239-ping-sysrq.patch.patch
+0240-kgdb-serial-Short-term-workaround.patch
+0241-add-sys-kernel-realtime-entry.patch
+0242-mm-rt-kmap_atomic-scheduling.patch
+0243-ipc-sem-Rework-semaphore-wakeups.patch
+0244-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch
+0245-x86-kvm-require-const-tsc-for-rt.patch.patch
+0246-scsi-fcoe-rt-aware.patch.patch
+0247-x86-crypto-Reduce-preempt-disabled-regions.patch
+0248-dm-Make-rt-aware.patch
+0249-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
+0250-seqlock-Prevent-rt-starvation.patch
+0251-timer-Fix-hotplug-for-rt.patch
+0252-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
+0253-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
+0254-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
+0255-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
+0256-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
+0257-softirq-Check-preemption-after-reenabling-interrupts.patch
+0258-rt-Introduce-cpu_chill.patch
+0259-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
+0260-net-Use-cpu_chill-instead-of-cpu_relax.patch
+0261-kconfig-disable-a-few-options-rt.patch.patch
+0262-kconfig-preempt-rt-full.patch.patch
+0263-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch
+0264-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
+0265-net-RT-REmove-preemption-disabling-in-netif_rx.patch
+0266-mips-remove-smp-reserve-lock.patch.patch
+0267-Latency-histogramms-Cope-with-backwards-running-loca.patch
+0268-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
+0269-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
+0270-Latency-histograms-Detect-another-yet-overlooked-sha.patch
+0271-slab-Prevent-local-lock-deadlock.patch
+0272-fs-jbd-pull-your-plug-when-waiting-for-space.patch
+0273-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
+0274-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
+0275-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
+0276-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch
+0277-fix-printk-flush-of-messages.patch
+0278-fix-printk-flush-of-messages.patch
+0279-random-Make-it-work-on-rt.patch
+0280-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch
+0281-mm-slab-Fix-potential-deadlock.patch
+0282-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
+0283-rt-rwsem-rwlock-lockdep-annotations.patch
+0284-sched-Better-debug-output-for-might-sleep.patch
+0285-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch
+0286-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch
+0287-Linux-3.2.32-rt48-REBASE.patch

Modified: dists/squeeze-backports/linux/debian/patches/features/all/rt2x00-add-rt5372-chipset-support.patch
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/features/all/rt2x00-add-rt5372-chipset-support.patch	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/features/all/rt2x00-add-rt5372-chipset-support.patch	Tue Nov  6 04:48:05 2012	(r19482)
@@ -9,6 +9,7 @@
 Acked-by: Ivo van Doorn <IvDoorn at gmail.com>
 Signed-off-by: John W. Linville <linville at tuxdriver.com>
 Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
+[bwh: Adjust context to apply after 3.2.25]
 ---
  drivers/net/wireless/rt2x00/rt2800.h    |    1 +
  drivers/net/wireless/rt2x00/rt2800lib.c |  155 ++++++++++++++++++++++++++-----
@@ -17,8 +18,6 @@
  drivers/net/wireless/rt2x00/rt2x00.h    |    1 +
  5 files changed, 148 insertions(+), 26 deletions(-)
 
-diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
-index 4778620347c4..9efdaafb11e5 100644
 --- a/drivers/net/wireless/rt2x00/rt2800.h
 +++ b/drivers/net/wireless/rt2x00/rt2800.h
 @@ -68,6 +68,7 @@
@@ -29,11 +28,9 @@
  #define RF5390				0x5390
  
  /*
-diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
-index 1ff428ba060e..1896cbf912ad 100644
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -402,7 +402,8 @@ int rt2800_load_firmware(struct rt2x00_dev *rt2x00dev,
+@@ -402,7 +402,8 @@ int rt2800_load_firmware(struct rt2x00_d
  
  	if (rt2x00_is_pci(rt2x00dev)) {
  		if (rt2x00_rt(rt2x00dev, RT3572) ||
@@ -43,7 +40,7 @@
  			rt2800_register_read(rt2x00dev, AUX_CTRL, &reg);
  			rt2x00_set_field32(&reg, AUX_CTRL_FORCE_PCIE_CLK, 1);
  			rt2x00_set_field32(&reg, AUX_CTRL_WAKE_PCIE_EN, 1);
-@@ -1904,7 +1905,8 @@ static void rt2800_config_channel_rf53xx(struct rt2x00_dev *rt2x00dev,
+@@ -1904,7 +1905,8 @@ static void rt2800_config_channel_rf53xx
  						   r55_nonbt_rev[idx]);
  				rt2800_rfcsr_write(rt2x00dev, 59,
  						   r59_nonbt_rev[idx]);
@@ -53,7 +50,7 @@
  				static const char r59_non_bt[] = {0x8f, 0x8f,
  					0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8d,
  					0x8a, 0x88, 0x88, 0x87, 0x87, 0x86};
-@@ -1951,6 +1953,7 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
+@@ -1951,6 +1953,7 @@ static void rt2800_config_channel(struct
  	else if (rt2x00_rf(rt2x00dev, RF3052))
  		rt2800_config_channel_rf3052(rt2x00dev, conf, rf, info);
  	else if (rt2x00_rf(rt2x00dev, RF5370) ||
@@ -61,7 +58,7 @@
  		 rt2x00_rf(rt2x00dev, RF5390))
  		rt2800_config_channel_rf53xx(rt2x00dev, conf, rf, info);
  	else
-@@ -1965,7 +1968,8 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
+@@ -1965,7 +1968,8 @@ static void rt2800_config_channel(struct
  	rt2800_bbp_write(rt2x00dev, 86, 0);
  
  	if (rf->channel <= 14) {
@@ -71,7 +68,7 @@
  			if (test_bit(CAPABILITY_EXTERNAL_LNA_BG,
  				     &rt2x00dev->cap_flags)) {
  				rt2800_bbp_write(rt2x00dev, 82, 0x62);
-@@ -2495,7 +2499,8 @@ static u8 rt2800_get_default_vgc(struct rt2x00_dev *rt2x00dev)
+@@ -2495,7 +2499,8 @@ static u8 rt2800_get_default_vgc(struct
  		    rt2x00_rt(rt2x00dev, RT3071) ||
  		    rt2x00_rt(rt2x00dev, RT3090) ||
  		    rt2x00_rt(rt2x00dev, RT3390) ||
@@ -81,7 +78,7 @@
  			return 0x1c + (2 * rt2x00dev->lna_gain);
  		else
  			return 0x2e + rt2x00dev->lna_gain;
-@@ -2630,7 +2635,8 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
+@@ -2630,7 +2635,8 @@ static int rt2800_init_registers(struct
  	} else if (rt2x00_rt(rt2x00dev, RT3572)) {
  		rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000400);
  		rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
@@ -91,7 +88,7 @@
  		rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404);
  		rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
  		rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000);
-@@ -3006,7 +3012,8 @@ static int rt2800_init_bbp(struct rt2x00_dev *rt2x00dev)
+@@ -3006,7 +3012,8 @@ static int rt2800_init_bbp(struct rt2x00
  		     rt2800_wait_bbp_ready(rt2x00dev)))
  		return -EACCES;
  
@@ -101,7 +98,7 @@
  		rt2800_bbp_read(rt2x00dev, 4, &value);
  		rt2x00_set_field8(&value, BBP4_MAC_IF_CTRL, 1);
  		rt2800_bbp_write(rt2x00dev, 4, value);
-@@ -3014,19 +3021,22 @@ static int rt2800_init_bbp(struct rt2x00_dev *rt2x00dev)
+@@ -3014,19 +3021,22 @@ static int rt2800_init_bbp(struct rt2x00
  
  	if (rt2800_is_305x_soc(rt2x00dev) ||
  	    rt2x00_rt(rt2x00dev, RT3572) ||
@@ -127,7 +124,7 @@
  		rt2800_bbp_write(rt2x00dev, 69, 0x12);
  		rt2800_bbp_write(rt2x00dev, 73, 0x13);
  		rt2800_bbp_write(rt2x00dev, 75, 0x46);
-@@ -3044,7 +3054,8 @@ static int rt2800_init_bbp(struct rt2x00_dev *rt2x00dev)
+@@ -3044,7 +3054,8 @@ static int rt2800_init_bbp(struct rt2x00
  	    rt2x00_rt(rt2x00dev, RT3090) ||
  	    rt2x00_rt(rt2x00dev, RT3390) ||
  	    rt2x00_rt(rt2x00dev, RT3572) ||
@@ -137,7 +134,7 @@
  		rt2800_bbp_write(rt2x00dev, 79, 0x13);
  		rt2800_bbp_write(rt2x00dev, 80, 0x05);
  		rt2800_bbp_write(rt2x00dev, 81, 0x33);
-@@ -3056,64 +3067,88 @@ static int rt2800_init_bbp(struct rt2x00_dev *rt2x00dev)
+@@ -3056,64 +3067,88 @@ static int rt2800_init_bbp(struct rt2x00
  	}
  
  	rt2800_bbp_write(rt2x00dev, 82, 0x62);
@@ -234,7 +231,7 @@
  		rt2800_bbp_read(rt2x00dev, 138, &value);
  
  		rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC_CONF0, &eeprom);
-@@ -3125,7 +3160,8 @@ static int rt2800_init_bbp(struct rt2x00_dev *rt2x00dev)
+@@ -3125,7 +3160,8 @@ static int rt2800_init_bbp(struct rt2x00
  		rt2800_bbp_write(rt2x00dev, 138, value);
  	}
  
@@ -244,7 +241,7 @@
  		int ant, div_mode;
  
  		rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &eeprom);
-@@ -3251,13 +3287,15 @@ static int rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev)
+@@ -3251,13 +3287,15 @@ static int rt2800_init_rfcsr(struct rt2x
  	    !rt2x00_rt(rt2x00dev, RT3390) &&
  	    !rt2x00_rt(rt2x00dev, RT3572) &&
  	    !rt2x00_rt(rt2x00dev, RT5390) &&
@@ -261,7 +258,7 @@
  		rt2800_rfcsr_read(rt2x00dev, 2, &rfcsr);
  		rt2x00_set_field8(&rfcsr, RFCSR2_RESCAL_EN, 1);
  		rt2800_rfcsr_write(rt2x00dev, 2, rfcsr);
-@@ -3475,6 +3513,66 @@ static int rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev)
+@@ -3475,6 +3513,66 @@ static int rt2800_init_rfcsr(struct rt2x
  			rt2800_rfcsr_write(rt2x00dev, 61, 0xdd);
  		rt2800_rfcsr_write(rt2x00dev, 62, 0x00);
  		rt2800_rfcsr_write(rt2x00dev, 63, 0x00);
@@ -328,7 +325,7 @@
  	}
  
  	if (rt2x00_rt_rev_lt(rt2x00dev, RT3070, REV_RT3070F)) {
-@@ -3542,7 +3640,8 @@ static int rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev)
+@@ -3542,7 +3640,8 @@ static int rt2800_init_rfcsr(struct rt2x
  			rt2800_init_rx_filter(rt2x00dev, true, 0x27, 0x15);
  	}
  
@@ -338,7 +335,7 @@
  		/*
  		 * Set back to initial state
  		 */
-@@ -3570,7 +3669,8 @@ static int rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev)
+@@ -3570,7 +3669,8 @@ static int rt2800_init_rfcsr(struct rt2x
  	rt2x00_set_field32(&reg, OPT_14_CSR_BIT0, 1);
  	rt2800_register_write(rt2x00dev, OPT_14_CSR, reg);
  
@@ -348,7 +345,7 @@
  		rt2800_rfcsr_read(rt2x00dev, 17, &rfcsr);
  		rt2x00_set_field8(&rfcsr, RFCSR17_TX_LO1_EN, 0);
  		if (rt2x00_rt(rt2x00dev, RT3070) ||
-@@ -3638,7 +3738,8 @@ static int rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev)
+@@ -3638,7 +3738,8 @@ static int rt2800_init_rfcsr(struct rt2x
  		rt2800_rfcsr_write(rt2x00dev, 27, rfcsr);
  	}
  
@@ -358,7 +355,7 @@
  		rt2800_rfcsr_read(rt2x00dev, 38, &rfcsr);
  		rt2x00_set_field8(&rfcsr, RFCSR38_RX_LO1_EN, 0);
  		rt2800_rfcsr_write(rt2x00dev, 38, rfcsr);
-@@ -3922,7 +4023,8 @@ int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
+@@ -3922,7 +4023,8 @@ int rt2800_init_eeprom(struct rt2x00_dev
  	 * RT53xx: defined in "EEPROM_CHIP_ID" field
  	 */
  	rt2800_register_read(rt2x00dev, MAC_CSR0, &reg);
@@ -368,7 +365,7 @@
  		rt2x00_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &value);
  	else
  		value = rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RF_TYPE);
-@@ -3938,7 +4040,8 @@ int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
+@@ -3938,7 +4040,8 @@ int rt2800_init_eeprom(struct rt2x00_dev
  	    !rt2x00_rt(rt2x00dev, RT3090) &&
  	    !rt2x00_rt(rt2x00dev, RT3390) &&
  	    !rt2x00_rt(rt2x00dev, RT3572) &&
@@ -378,7 +375,7 @@
  		ERROR(rt2x00dev, "Invalid RT chipset 0x%04x detected.\n", rt2x00dev->chip.rt);
  		return -ENODEV;
  	}
-@@ -3955,6 +4058,7 @@ int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
+@@ -3955,6 +4058,7 @@ int rt2800_init_eeprom(struct rt2x00_dev
  	case RF3052:
  	case RF3320:
  	case RF5370:
@@ -386,7 +383,7 @@
  	case RF5390:
  		break;
  	default:
-@@ -4261,6 +4365,7 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
+@@ -4261,6 +4365,7 @@ int rt2800_probe_hw_mode(struct rt2x00_d
  		   rt2x00_rf(rt2x00dev, RF3022) ||
  		   rt2x00_rf(rt2x00dev, RF3320) ||
  		   rt2x00_rf(rt2x00dev, RF5370) ||
@@ -394,11 +391,9 @@
  		   rt2x00_rf(rt2x00dev, RF5390)) {
  		spec->num_channels = 14;
  		spec->channels = rf_vals_3x;
-diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
-index 837b460d4055..bf0f83cf3738 100644
 --- a/drivers/net/wireless/rt2x00/rt2800pci.c
 +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
-@@ -480,7 +480,8 @@ static int rt2800pci_init_registers(struct rt2x00_dev *rt2x00dev)
+@@ -480,7 +480,8 @@ static int rt2800pci_init_registers(stru
  
  	if (rt2x00_is_pcie(rt2x00dev) &&
  	    (rt2x00_rt(rt2x00dev, RT3572) ||
@@ -408,11 +403,9 @@
  		rt2x00pci_register_read(rt2x00dev, AUX_CTRL, &reg);
  		rt2x00_set_field32(&reg, AUX_CTRL_FORCE_PCIE_CLK, 1);
  		rt2x00_set_field32(&reg, AUX_CTRL_WAKE_PCIE_EN, 1);
-diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
-index 0ffa1119acd1..d241ac6d7477 100644
 --- a/drivers/net/wireless/rt2x00/rt2800usb.c
 +++ b/drivers/net/wireless/rt2x00/rt2800usb.c
-@@ -1119,12 +1119,26 @@ static struct usb_device_id rt2800usb_device_table[] = {
+@@ -1133,15 +1133,29 @@ static struct usb_device_id rt2800usb_de
  	{ USB_DEVICE(0x5a57, 0x0284) },
  #endif
  #ifdef CONFIG_RT2800USB_RT53XX
@@ -424,6 +417,9 @@
  	/* Azurewave */
  	{ USB_DEVICE(0x13d3, 0x3329) },
  	{ USB_DEVICE(0x13d3, 0x3365) },
+ 	/* D-Link */
+ 	{ USB_DEVICE(0x2001, 0x3c1c) },
+ 	{ USB_DEVICE(0x2001, 0x3c1d) },
 +	/* LG innotek */
 +	{ USB_DEVICE(0x043e, 0x7a22) },
 +	/* Panasonic */
@@ -439,8 +435,6 @@
  #endif
  #ifdef CONFIG_RT2800USB_UNKNOWN
  	/*
-diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
-index 99ff12d0c29d..845dce5c997a 100644
 --- a/drivers/net/wireless/rt2x00/rt2x00.h
 +++ b/drivers/net/wireless/rt2x00/rt2x00.h
 @@ -192,6 +192,7 @@ struct rt2x00_chip {
@@ -451,6 +445,3 @@
  
  	u16 rf;
  	u16 rev;
--- 
-1.7.10.2
-

Copied: dists/squeeze-backports/linux/debian/patches/features/arm/ahci-Add-JMicron-362-device-IDs.patch (from r19450, dists/sid/linux/debian/patches/features/arm/ahci-Add-JMicron-362-device-IDs.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/arm/ahci-Add-JMicron-362-device-IDs.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/arm/ahci-Add-JMicron-362-device-IDs.patch)
@@ -0,0 +1,33 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 10 Sep 2012 01:09:04 +0100
+Subject: ahci: Add JMicron 362 device IDs
+
+commit 1fefb8fdc6562057a0e4e4542f3d4323981c9686 upstream.
+
+The JMicron JMB362 controller supports AHCI only, but some revisions
+use the IDE class code.  These need to be matched by device ID.
+
+These additions have apparently been included by QNAP in their NAS
+devices using these controllers.
+
+References: http://bugs.debian.org/634180
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+Signed-off-by: Jeff Garzik <jgarzik at redhat.com>
+---
+ drivers/ata/ahci.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
+index 50d5dea..c3f52eb 100644
+--- a/drivers/ata/ahci.c
++++ b/drivers/ata/ahci.c
+@@ -268,6 +268,9 @@ static const struct pci_device_id ahci_pci_tbl[] = {
+ 	/* JMicron 360/1/3/5/6, match class to avoid IDE function */
+ 	{ PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
+ 	  PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci_ign_iferr },
++	/* JMicron 362B and 362C have an AHCI function with IDE class code */
++	{ PCI_VDEVICE(JMICRON, 0x2362), board_ahci_ign_iferr },
++	{ PCI_VDEVICE(JMICRON, 0x236f), board_ahci_ign_iferr },
+ 
+ 	/* ATI */
+ 	{ PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600 }, /* ATI SB600 */

Copied: dists/squeeze-backports/linux/debian/patches/features/x86/efi-stub/0018-efi-Build-EFI-stub-with-EFI-appropriate-options.patch (from r19450, dists/sid/linux/debian/patches/features/x86/efi-stub/0018-efi-Build-EFI-stub-with-EFI-appropriate-options.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze-backports/linux/debian/patches/features/x86/efi-stub/0018-efi-Build-EFI-stub-with-EFI-appropriate-options.patch	Tue Nov  6 04:48:05 2012	(r19482, copy of r19450, dists/sid/linux/debian/patches/features/x86/efi-stub/0018-efi-Build-EFI-stub-with-EFI-appropriate-options.patch)
@@ -0,0 +1,31 @@
+From: Matthew Garrett <mjg at redhat.com>
+Date: Thu, 26 Jul 2012 18:00:00 -0400
+Subject: efi: Build EFI stub with EFI-appropriate options
+
+commit 9dead5bbb825d7c25c0400e61de83075046322d0 upstream.
+
+We can't assume the presence of the red zone while we're still in a boot
+services environment, so we should build with -fno-red-zone to avoid
+problems. Change the size of wchar at the same time to make string handling
+simpler.
+
+Signed-off-by: Matthew Garrett <mjg at redhat.com>
+Signed-off-by: Matt Fleming <matt.fleming at intel.com>
+---
+ arch/x86/boot/compressed/Makefile |    3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
+index e398bb5..8a84501 100644
+--- a/arch/x86/boot/compressed/Makefile
++++ b/arch/x86/boot/compressed/Makefile
+@@ -28,6 +28,9 @@ VMLINUX_OBJS = $(obj)/vmlinux.lds $(obj)/head_$(BITS).o $(obj)/misc.o \
+ 	$(obj)/string.o $(obj)/cmdline.o $(obj)/early_serial_console.o \
+ 	$(obj)/piggy.o
+ 
++$(obj)/eboot.o: KBUILD_CFLAGS += -fshort-wchar -mno-red-zone
++$(obj)/efi_stub_$(BITS).o: KBUILD_CLFAGS += -fshort-wchar -mno-red-zone
++
+ ifeq ($(CONFIG_EFI_STUB), y)
+ 	VMLINUX_OBJS += $(obj)/eboot.o $(obj)/efi_stub_$(BITS).o
+ endif

Modified: dists/squeeze-backports/linux/debian/patches/series
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/series	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/series	Tue Nov  6 04:48:05 2012	(r19482)
@@ -19,7 +19,6 @@
 
 bugfix/ia64/hardcode-arch-script-output.patch
 bugfix/mips/disable-advansys.patch
-bugfix/arm/disable-scsi_acard.patch
 debian/mips-disable-werror.patch
 bugfix/powerpc/lpar-console.patch
 
@@ -62,15 +61,11 @@
 
 features/all/hwmon-it87-Add-IT8728F-support.patch
 
-bugfix/x86/drm-i915-do-not-enable-RC6p-on-Sandy-Bridge.patch
-bugfix/x86/drm-i915-fix-operator-precedence-when-enabling-RC6p.patch
-
-features/all/fs-symlink-restrictions-on-sticky-directories.patch
-features/all/fs-symlink-restrictions-on-sticky-directories-fix-2.patch
-features/all/fs-hardlink-creation-restrictions.patch
-features/all/fs-hardlink-creation-restrictions-fix.patch
-features/all/fs-hardlink-creation-restriction-cleanup.patch
-bugfix/all/kbuild-do-not-check-for-ancient-modutils-tools.patch
+# Add link security restrictions from 3.6
+features/all/fs-add-link-restrictions.patch
+features/all/fs-add-link-restriction-audit-reporting.patch
+features/all/fs-handle-failed-audit_log_start-properly.patch
+features/all/fs-prevent-use-after-free-in-auditing-when-symlink-f.patch
 
 # Update all Hyper-V drivers to 3.4-rc1 (no longer staging)
 features/x86/hyperv/0001-NLS-improve-UTF8-UTF16-string-conversion-routine.patch
@@ -170,11 +165,7 @@
 features/x86/efi-stub/0015-x86-efi-Fix-endian-issues-and-unaligned-accesses.patch
 features/x86/efi-stub/0016-x86-boot-Correct-CFLAGS-for-hostprogs.patch
 features/x86/efi-stub/0017-x86-efi-Add-dedicated-EFI-stub-entry-point.patch
-
-bugfix/all/brcmsmac-INTERMEDIATE-but-not-AMPDU-only-when-tracin.patch
-bugfix/all/NFSv4-Rate-limit-the-state-manager-for-lock-reclaim-.patch
-
-bugfix/all/ext4-Report-max_batch_time-option-correctly.patch
+features/x86/efi-stub/0018-efi-Build-EFI-stub-with-EFI-appropriate-options.patch
 
 # Update wacom driver to 3.5ish
 features/all/wacom/0001-Input-wacom-cleanup-feature-report-for-bamboos.patch
@@ -282,13 +273,12 @@
 features/all/codel/0005-net-codel-fix-build-errors.patch
 features/all/codel/0006-codel-use-u16-field-instead-of-31bits-for-rec_inv_sq.patch
 features/all/codel/0007-fq_codel-should-use-qdisc-backlog-as-threshold.patch
+features/all/codel/0008-codel-refine-one-condition-to-avoid-a-nul-rec_inv_sq.patch
 
 # AppArmor userland compatibility.  This had better be gone in wheezy+1!
 features/all/AppArmor-compatibility-patch-for-v5-interface.patch
 bugfix/all/apparmor-remove-advertising-the-support-of-network-r.patch
 
-bugfix/all/hugepages-fix-use-after-free-bug-in-quota-handling.patch
-
 # netdev features, probably useful for other backports but not needed yet
 #features/all/define-netdev_features_t.patch
 #features/all/filter-Allow-to-create-sk-unattached-filters.patch
@@ -299,17 +289,6 @@
 features/all/hidepid/0003-proc-fix-null-pointer-deref-in-proc_pid_permission.patch
 features/all/hidepid/0004-proc-fix-mount-t-proc-o-AAA.patch
 
-bugfix/all/NFSv4-Reduce-the-footprint-of-the-idmapper.patch
-bugfix/all/NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch
-
-bugfix/all/macvtap-zerocopy-fix-offset-calculation-when-buildin.patch
-bugfix/all/macvtap-zerocopy-fix-truesize-underestimation.patch
-bugfix/all/macvtap-zerocopy-put-page-when-fail-to-get-all-reque.patch
-bugfix/all/macvtap-zerocopy-set-SKBTX_DEV_ZEROCOPY-only-when-sk.patch
-bugfix/all/macvtap-zerocopy-validate-vectors-before-building-sk.patch
-
-bugfix/all/KVM-Fix-buffer-overflow-in-kvm_set_irq.patch
-
 # CPU sysdev removal from 3.3 and x86 CPU auto-loading from 3.4
 features/all/cpu-devices/driver-core-implement-sysdev-functionality-for-regul.patch
 features/all/cpu-devices/cpu-convert-cpu-and-machinecheck-sysdev_class-to-a-r.patch
@@ -362,13 +341,6 @@
 features/arm/ARM-fix-Kconfig-warning-for-HAVE_BPF_JIT.patch
 features/arm/net-drop-NET-dependency-from-HAVE_BPF_JIT.patch
 
-# Until next ABI bump
-debian/driver-core-avoid-ABI-change-for-removal-of-__must_check.patch
-
-bugfix/all/scsi-Silence-unnecessary-warnings-about-ioctl-to-par.patch
-bugfix/all/udf-Improve-table-length-check-to-avoid-possible-underflow.patch
-bugfix/all/epoll-clear-the-tfile_check_list-on-eloop.patch
-
 # nouveau update to support Fermi (NVC0+) acceleration
 features/all/fermi-accel/drm-nouveau-ttm-always-do-buffer-moves-on-kernel-cha.patch
 features/all/fermi-accel/drm-nouveau-remove-subchannel-names-from-places-wher.patch
@@ -381,10 +353,58 @@
 features/all/fermi-accel/drm-nouveau-bump-version-to-1.0.0.patch
 
 bugfix/all/net-e100-ucode-is-optional-in-some-cases.patch
-bugfix/x86/drm-i915-prefer-wide-slow-to-fast-narrow-in-DP-confi.patch
-bugfix/all/cipso-don-t-follow-a-NULL-pointer-when-setsockopt-is.patch
-bugfix/all/atl1c-fix-issue-of-transmit-queue-0-timed-out.patch
-bugfix/all/raid5-delayed-stripe-fix.patch
-bugfix/all/remove-easily-user-triggerable-bug-from-generic_setlease.patch
-bugfix/all/tcp-drop-syn-fin-messages.patch
-bugfix/all/fifo-do-not-restart-open-if-it-already-found-a-partner.patch
+
+features/all/debugfs-add-mode-uid-and-gid-options.patch
+debian/debugfs-set-default-mode-to-700.patch
+
+# Byte Queue Limits from 3.3; fixes and additional driver support from 3.4, 3.5
+features/all/bql/net-new-counter-for-tx_timeout-errors-in-sysfs.patch
+features/all/bql/dql-dynamic-queue-limits.patch
+features/all/bql/net-add-queue-state-xoff-flag-for-stack.patch
+features/all/bql/net-add-netdev-interfaces-for-recording-sends-comp.patch
+features/all/bql/xps-add-xps_queue_release-function.patch
+features/all/bql/bql-byte-queue-limits.patch
+features/all/bql/bql-fix-config_xps-n-build.patch
+features/all/bql/bql-fix-inconsistency-between-file-mode-and-attr-method.patch
+features/all/bql/dql-fix-undefined-jiffies.patch
+features/all/bql/bql-fix-posdiff-to-integer-overflow-aware.patch
+features/all/bql/bql-avoid-unneeded-limit-decrement.patch
+features/all/bql/bql-avoid-possible-inconsistent-calculation.patch
+features/all/bql/e1000e-support-for-byte-queue-limits.patch
+features/all/bql/e1000e-Change-wthresh-to-1-to-avoid-possible-Tx-stal.patch
+features/all/bql/forcedeth-support-for-byte-queue-limits.patch
+features/all/bql/forcedeath-fix-bql-support-for-forcedeath.patch
+features/all/bql/tg3-support-for-byte-queue-limits.patch
+features/all/bql/tg3-fix-to-use-multi-queue-bql-interfaces.patch
+features/all/bql/bnx2x-remove-unused-variable.patch
+features/all/bql/bnx2x-support-for-byte-queue-limits.patch
+features/all/bql/bnx2x-fix-crash-while-ethtool-t.patch
+features/all/bql/sfc-support-for-byte-queue-limits.patch
+features/all/bql/sfc-fix-race-in-efx_enqueue_skb_tso.patch
+features/all/bql/sky2-add-bql-support.patch
+features/all/bql/bnx2-support-for-byte-queue-limits.patch
+features/all/bql/igb-add-support-for-byte-queue-limits.patch
+features/all/bql/igb-fix-ethtool-offline-test.patch
+features/all/bql/net-fix-issue-with-netdev_tx_reset_queue-not-resetting-queue-from.patch
+features/all/bql/ixgbe-add-support-for-byte-queue-limits.patch
+features/all/bql/igb-ixgbe-netdev_tx_reset_queue-incorrectly-called-from-tx-init.patch
+features/all/bql/skge-add-byte-queue-limit-support.patch
+
+bugfix/all/PCI-PM-Runtime-make-PCI-traces-quieter.patch
+features/all/USB-add-USB_VENDOR_AND_INTERFACE_INFO-macro.patch
+bugfix/all/usb-Add-quirk-detection-based-on-interface-informati.patch
+bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch
+bugfix/alpha/alpha-use-large-data-model.diff
+bugfix/x86/drm-i915-i8xx-interrupt-handler.patch
+features/arm/ahci-Add-JMicron-362-device-IDs.patch
+bugfix/all/speakup-lower-default-software-speech-rate.patch
+debian/perf-hide-abi-change-in-3.2.30.patch
+bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch
+debian/iwlwifi-do-not-request-unreleased-firmware.patch
+debian/hid-avoid-ABI-change-in-3.2.31.patch
+debian/xfrm-avoid-ABI-change-in-3.2.31.patch
+bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch
+bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch
+bugfix/all/use-clamp_t-in-UNAME26-fix.patch
+bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch
+debian/fs-writeback-avoid-ABI-change-in-3.2.32.patch

Modified: dists/squeeze-backports/linux/debian/patches/series-rt
==============================================================================
--- dists/squeeze-backports/linux/debian/patches/series-rt	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/patches/series-rt	Tue Nov  6 04:48:05 2012	(r19482)
@@ -224,59 +224,64 @@
 features/all/rt/0224-workqueue-use-get-cpu-light.patch.patch
 features/all/rt/0225-epoll.patch.patch
 features/all/rt/0226-mm-vmalloc.patch.patch
-features/all/rt/0227-workqueue-Fix-cpuhotplug-trainwreck.patch
-features/all/rt/0228-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
-features/all/rt/0229-workqueue-Use-get_cpu_light-in-flush_gcwq.patch
-features/all/rt/0230-hotplug-stuff.patch.patch
-features/all/rt/0231-debugobjects-rt.patch.patch
-features/all/rt/0232-jump-label-rt.patch.patch
-features/all/rt/0233-skbufhead-raw-lock.patch.patch
-features/all/rt/0234-x86-no-perf-irq-work-rt.patch.patch
-features/all/rt/0235-console-make-rt-friendly.patch.patch
-features/all/rt/0236-printk-Disable-migration-instead-of-preemption.patch
-features/all/rt/0237-power-use-generic-rwsem-on-rt.patch
-features/all/rt/0238-power-disable-highmem-on-rt.patch.patch
-features/all/rt/0239-arm-disable-highmem-on-rt.patch.patch
-features/all/rt/0240-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
-features/all/rt/0241-mips-disable-highmem-on-rt.patch.patch
-features/all/rt/0242-net-Avoid-livelock-in-net_tx_action-on-RT.patch
-features/all/rt/0243-ping-sysrq.patch.patch
-features/all/rt/0244-kgdb-serial-Short-term-workaround.patch
-features/all/rt/0245-add-sys-kernel-realtime-entry.patch
-features/all/rt/0246-mm-rt-kmap_atomic-scheduling.patch
-features/all/rt/0247-ipc-sem-Rework-semaphore-wakeups.patch
-features/all/rt/0248-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch
-features/all/rt/0249-x86-kvm-require-const-tsc-for-rt.patch.patch
-features/all/rt/0250-scsi-fcoe-rt-aware.patch.patch
-features/all/rt/0251-x86-crypto-Reduce-preempt-disabled-regions.patch
-features/all/rt/0252-dm-Make-rt-aware.patch
-features/all/rt/0253-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
-features/all/rt/0254-seqlock-Prevent-rt-starvation.patch
-features/all/rt/0255-timer-Fix-hotplug-for-rt.patch
-features/all/rt/0256-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
-features/all/rt/0257-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
-features/all/rt/0258-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
-features/all/rt/0259-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
-features/all/rt/0260-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
-features/all/rt/0261-softirq-Check-preemption-after-reenabling-interrupts.patch
-features/all/rt/0262-rt-Introduce-cpu_chill.patch
-features/all/rt/0263-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
-features/all/rt/0264-net-Use-cpu_chill-instead-of-cpu_relax.patch
-features/all/rt/0265-kconfig-disable-a-few-options-rt.patch.patch
-features/all/rt/0266-kconfig-preempt-rt-full.patch.patch
-features/all/rt/0267-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch
-features/all/rt/0268-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
-features/all/rt/0269-net-RT-REmove-preemption-disabling-in-netif_rx.patch
-features/all/rt/0270-mips-remove-smp-reserve-lock.patch.patch
-features/all/rt/0271-Latency-histogramms-Cope-with-backwards-running-loca.patch
-features/all/rt/0272-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
-features/all/rt/0273-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
-features/all/rt/0274-Latency-histograms-Detect-another-yet-overlooked-sha.patch
-features/all/rt/0275-slab-Prevent-local-lock-deadlock.patch
-features/all/rt/0276-fs-jbd-pull-your-plug-when-waiting-for-space.patch
-features/all/rt/0277-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
-features/all/rt/0278-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
-features/all/rt/0279-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
-features/all/rt/0280-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
-features/all/rt/0281-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch
-features/all/rt/0282-Linux-3.2.23-rt37-REBASE.patch
+features/all/rt/0227-debugobjects-rt.patch.patch
+features/all/rt/0228-jump-label-rt.patch.patch
+features/all/rt/0229-skbufhead-raw-lock.patch.patch
+features/all/rt/0230-x86-no-perf-irq-work-rt.patch.patch
+features/all/rt/0231-console-make-rt-friendly.patch.patch
+features/all/rt/0232-printk-Disable-migration-instead-of-preemption.patch
+features/all/rt/0233-power-use-generic-rwsem-on-rt.patch
+features/all/rt/0234-power-disable-highmem-on-rt.patch.patch
+features/all/rt/0235-arm-disable-highmem-on-rt.patch.patch
+features/all/rt/0236-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
+features/all/rt/0237-mips-disable-highmem-on-rt.patch.patch
+features/all/rt/0238-net-Avoid-livelock-in-net_tx_action-on-RT.patch
+features/all/rt/0239-ping-sysrq.patch.patch
+features/all/rt/0240-kgdb-serial-Short-term-workaround.patch
+features/all/rt/0241-add-sys-kernel-realtime-entry.patch
+features/all/rt/0242-mm-rt-kmap_atomic-scheduling.patch
+features/all/rt/0243-ipc-sem-Rework-semaphore-wakeups.patch
+features/all/rt/0244-sysrq-Allow-immediate-Magic-SysRq-output-for-PREEMPT.patch
+features/all/rt/0245-x86-kvm-require-const-tsc-for-rt.patch.patch
+features/all/rt/0246-scsi-fcoe-rt-aware.patch.patch
+features/all/rt/0247-x86-crypto-Reduce-preempt-disabled-regions.patch
+features/all/rt/0248-dm-Make-rt-aware.patch
+features/all/rt/0249-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
+features/all/rt/0250-seqlock-Prevent-rt-starvation.patch
+features/all/rt/0251-timer-Fix-hotplug-for-rt.patch
+features/all/rt/0252-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
+features/all/rt/0253-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
+features/all/rt/0254-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
+features/all/rt/0255-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
+features/all/rt/0256-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
+features/all/rt/0257-softirq-Check-preemption-after-reenabling-interrupts.patch
+features/all/rt/0258-rt-Introduce-cpu_chill.patch
+features/all/rt/0259-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
+features/all/rt/0260-net-Use-cpu_chill-instead-of-cpu_relax.patch
+features/all/rt/0261-kconfig-disable-a-few-options-rt.patch.patch
+features/all/rt/0262-kconfig-preempt-rt-full.patch.patch
+features/all/rt/0263-rt-Make-migrate_disable-enable-and-__rt_mutex_init-n.patch
+features/all/rt/0264-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
+features/all/rt/0265-net-RT-REmove-preemption-disabling-in-netif_rx.patch
+features/all/rt/0266-mips-remove-smp-reserve-lock.patch.patch
+features/all/rt/0267-Latency-histogramms-Cope-with-backwards-running-loca.patch
+features/all/rt/0268-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
+features/all/rt/0269-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
+features/all/rt/0270-Latency-histograms-Detect-another-yet-overlooked-sha.patch
+features/all/rt/0271-slab-Prevent-local-lock-deadlock.patch
+features/all/rt/0272-fs-jbd-pull-your-plug-when-waiting-for-space.patch
+features/all/rt/0273-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
+features/all/rt/0274-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
+features/all/rt/0275-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
+features/all/rt/0276-time-rt-Fix-up-leap-second-backport-for-RT-changes.patch
+features/all/rt/0277-fix-printk-flush-of-messages.patch
+features/all/rt/0278-fix-printk-flush-of-messages.patch
+features/all/rt/0279-random-Make-it-work-on-rt.patch
+features/all/rt/0280-softirq-Init-softirq-local-lock-after-per-cpu-sectio.patch
+features/all/rt/0281-mm-slab-Fix-potential-deadlock.patch
+features/all/rt/0282-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch
+features/all/rt/0283-rt-rwsem-rwlock-lockdep-annotations.patch
+features/all/rt/0284-sched-Better-debug-output-for-might-sleep.patch
+features/all/rt/0285-stomp_machine-Use-mutex_trylock-when-called-from-ina.patch
+features/all/rt/0286-slab-Fix-up-stable-merge-of-slab-init_lock_keys.patch
+features/all/rt/0287-Linux-3.2.32-rt48-REBASE.patch

Modified: dists/squeeze-backports/linux/debian/rules.real
==============================================================================
--- dists/squeeze-backports/linux/debian/rules.real	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/rules.real	Tue Nov  6 04:48:05 2012	(r19482)
@@ -13,6 +13,11 @@
 MAINTAINER := $(shell sed -ne 's,^Maintainer: .[^<]*<\([^>]*\)>,\1,p' debian/control)
 DISTRIBUTION := $(shell dpkg-parsechangelog | sed -ne 's,^Distribution: ,,p')
 
+DISTRIBUTOR := $(shell lsb_release -is 2>/dev/null)
+ifeq ($(DISTRIBUTOR),)
+DISTRIBUTOR := Debian
+endif
+
 export PYTHONPATH = $(CURDIR)/debian/lib/python
 export DH_OPTIONS
 export DEB_HOST_ARCH DEB_HOST_GNU_TYPE DEB_BUILD_ARCH
@@ -33,7 +38,7 @@
 stamp = [ -d $(dir $@) ] || mkdir $(dir $@); touch $@
 
 setup_env := env -u ABINAME -u ABINAME_PART -u ARCH -u FEATURESET -u FLAVOUR -u VERSION -u LOCALVERSION
-setup_env += DISTRIBUTION_OFFICIAL_BUILD=1 DISTRIBUTION_MAINTAINER=$(MAINTAINER) DISTRIBUTION_VERSION="$(SOURCEVERSION)"
+setup_env += DISTRIBUTION_OFFICIAL_BUILD=1 DISTRIBUTOR="$(DISTRIBUTOR)" DISTRIBUTION_VERSION="$(SOURCEVERSION)" KBUILD_BUILD_TIMESTAMP="$(DISTRIBUTOR) $(SOURCEVERSION)" KBUILD_BUILD_USER="$(word 1,$(subst @, ,$(MAINTAINER)))" KBUILD_BUILD_HOST="$(word 2,$(subst @, ,$(MAINTAINER)))"
 
 MAKE_CLEAN = $(setup_env) $(MAKE)
 MAKE_SELF := $(MAKE) -f debian/rules.real $(MAKEOVERRIDES)

Modified: dists/squeeze-backports/linux/debian/templates/control.main.in
==============================================================================
--- dists/squeeze-backports/linux/debian/templates/control.main.in	Tue Nov  6 04:09:57 2012	(r19481)
+++ dists/squeeze-backports/linux/debian/templates/control.main.in	Tue Nov  6 04:48:05 2012	(r19482)
@@ -4,7 +4,7 @@
 Provides: linux-source
 Depends: binutils, bzip2, ${misc:Depends}
 Recommends: libc6-dev | libc-dev, gcc, make
-Suggests: libncurses-dev | ncurses-dev, libqt4-dev
+Suggests: libncurses-dev | ncurses-dev, libqt4-dev, pkg-config
 Multi-Arch: ${linux:Multi-Arch}
 Description: Linux kernel source for version @version@ with Debian patches
  This package provides source code for the Linux kernel version @version at .



More information about the Kernel-svn-changes mailing list