[kernel] r22098 - in dists/wheezy-backports/linux: . debian debian/bin debian/config debian/config/alpha debian/config/amd64 debian/config/arm64 debian/config/armhf debian/config/i386 debian/config/i386/none debian/config/kernelarch-mips debian/config/kernelarch-powerpc debian/config/kernelarch-x86 debian/installer/armhf/modules/armhf-armmp debian/installer/hppa/modules/hppa debian/installer/hppa/modules/hppa-parisc64-smp debian/installer/i386 debian/lib/python/debian_linux debian/patches debian/patches/bugfix/all debian/patches/bugfix/arm64 debian/patches/bugfix/mips debian/patches/bugfix/parisc debian/patches/bugfix/x86 debian/patches/debian debian/patches/features/all debian/patches/features/all/iwlwifi-debug debian/patches/features/all/r8723au debian/patches/features/arm debian/patches/features/arm64 debian/patches/features/mips debian/patches/features/x86 debian/patches/features/x86/apple-tb debian/templates debian/templates/image.plain.bug

Ben Hutchings benh at moszumanska.debian.org
Mon Dec 1 17:59:10 UTC 2014


Author: benh
Date: Mon Dec  1 17:59:10 2014
New Revision: 22098

Log:
Merge changes from sid up to 3.16.7-2

Added:
   dists/wheezy-backports/linux/debian/config/i386/config.586
      - copied unchanged from r22048, dists/sid/linux/debian/config/i386/config.586
   dists/wheezy-backports/linux/debian/installer/armhf/modules/armhf-armmp/mtd-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/armhf/modules/armhf-armmp/mtd-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/ata-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/ata-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/crc-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/crc-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/event-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/event-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/isofs-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/isofs-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/jfs-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/jfs-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/mouse-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/mouse-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-shared-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-shared-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-usb-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-usb-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/sata-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/sata-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/scsi-common-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/scsi-common-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/serial-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/serial-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/squashfs-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/squashfs-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/usb-serial-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/usb-serial-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/ata-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/ata-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/crc-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/crc-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/event-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/event-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/isofs-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/isofs-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/jfs-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/jfs-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/mouse-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/mouse-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/nic-shared-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/nic-shared-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/nic-usb-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/nic-usb-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/sata-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/sata-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/scsi-common-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/scsi-common-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/serial-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/serial-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/squashfs-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/squashfs-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/usb-serial-modules
      - copied unchanged from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/usb-serial-modules
   dists/wheezy-backports/linux/debian/patches/bugfix/all/HID-i2c-hid-call-the-hid-driver-s-suspend-and-resume.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/HID-i2c-hid-call-the-hid-driver-s-suspend-and-resume.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/SUNRPC-Don-t-wake-tasks-during-connection-abort.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/SUNRPC-Don-t-wake-tasks-during-connection-abort.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/drivers-net-Disable-UFO-through-virtio.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/drivers-net-Disable-UFO-through-virtio.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/drivers-net-ipv6-Select-IPv6-fragment-idents-for-vir.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/drivers-net-ipv6-Select-IPv6-fragment-idents-for-vir.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/fuse-honour-max_read-and-max_write-in-direct_io-mode.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/fuse-honour-max_read-and-max_write-in-direct_io-mode.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/lockd-Try-to-reconnect-if-statd-has-moved.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/lockd-Try-to-reconnect-if-statd-has-moved.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/mnt-Prevent-pivot_root-from-creating-a-loop-in-the-m.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/mnt-Prevent-pivot_root-from-creating-a-loop-in-the-m.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-m25p80-get-rid-of-spi_get_device_id.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-m25p80-get-rid-of-spi_get_device_id.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-m25p80-spi-nor-Fix-module-aliases-for-m25p80.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-m25p80-spi-nor-Fix-module-aliases-for-m25p80.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-move-support-for-struct-flash_platform_data-into.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-move-support-for-struct-flash_platform_data-into.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-spi-nor-make-spi_nor_scan-take-a-chip-type-name-.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-spi-nor-make-spi_nor_scan-take-a-chip-type-name-.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/net-mv643xx-disable-tso-by-default.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/net-mv643xx-disable-tso-by-default.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/net-sctp-fix-panic-on-duplicate-ASCONF-chunks.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/net-sctp-fix-panic-on-duplicate-ASCONF-chunks.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/net-sctp-fix-remote-memory-pressure-from-excessive-q.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/net-sctp-fix-remote-memory-pressure-from-excessive-q.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/net-sctp-fix-skb_over_panic-when-receiving-malformed.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/net-sctp-fix-skb_over_panic-when-receiving-malformed.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/switch-iov_iter_get_pages-to-passing-maximal-number-.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/all/switch-iov_iter_get_pages-to-passing-maximal-number-.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/mips/MIPS-cp1emu-Fix-ISA-restrictions-for-cop1x_op-instru.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/mips/MIPS-cp1emu-Fix-ISA-restrictions-for-cop1x_op-instru.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/mips/MIPS-tlbex-Properly-fix-HUGE-TLB-Refill-exception-ha.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/mips/MIPS-tlbex-Properly-fix-HUGE-TLB-Refill-exception-ha.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/parisc/parisc-reduce-sigrtmin-from-37-to-32-to-behave-like-.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/parisc/parisc-reduce-sigrtmin-from-37-to-32-to-behave-like-.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Check-non-canonical-addresses-upon-WRMSR.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Check-non-canonical-addresses-upon-WRMSR.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Emulator-fixes-for-eip-canonical-checks-on-n.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Emulator-fixes-for-eip-canonical-checks-on-n.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Fix-wrong-masking-on-relative-jump-call.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Fix-wrong-masking-on-relative-jump-call.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Handle-errors-when-RIP-is-set-during-far-jum.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Handle-errors-when-RIP-is-set-during-far-jum.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Improve-thread-safety-in-pit.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Improve-thread-safety-in-pit.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Prevent-host-from-panicking-on-shared-MSR-wr.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Prevent-host-from-panicking-on-shared-MSR-wr.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-Add-some-L3-registers-to-the-parser-whiteli.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-Add-some-L3-registers-to-the-parser-whiteli.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-initialise-userptr-mmu_notifier-serial-to-1.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-initialise-userptr-mmu_notifier-serial-to-1.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/kvm-vmx-handle-invvpid-vm-exit-gracefully.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/x86/kvm-vmx-handle-invvpid-vm-exit-gracefully.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/kvm-x86-fix-far-jump-to-non-canonical-check.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/bugfix/x86/kvm-x86-fix-far-jump-to-non-canonical-check.patch
   dists/wheezy-backports/linux/debian/patches/features/all/iwlwifi-debug/
      - copied from r22048, dists/sid/linux/debian/patches/features/all/iwlwifi-debug/
   dists/wheezy-backports/linux/debian/patches/features/all/mmc_block-increase-max_devices.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/features/all/mmc_block-increase-max_devices.patch
   dists/wheezy-backports/linux/debian/patches/features/all/r8723au/
      - copied from r22048, dists/sid/linux/debian/patches/features/all/r8723au/
   dists/wheezy-backports/linux/debian/patches/features/all/wireless-rt2x00-add-new-rt2800usb-device.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/features/all/wireless-rt2x00-add-new-rt2800usb-device.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME.patch
   dists/wheezy-backports/linux/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
   dists/wheezy-backports/linux/debian/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch
      - copied unchanged from r22048, dists/sid/linux/debian/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch
   dists/wheezy-backports/linux/debian/patches/features/x86/apple-tb/
      - copied from r22048, dists/sid/linux/debian/patches/features/x86/apple-tb/
Deleted:
   dists/wheezy-backports/linux/debian/config/i386/config.486
Modified:
   dists/wheezy-backports/linux/   (props changed)
   dists/wheezy-backports/linux/debian/bin/check-patches.sh
   dists/wheezy-backports/linux/debian/bin/gencontrol.py
   dists/wheezy-backports/linux/debian/changelog
   dists/wheezy-backports/linux/debian/config/alpha/config
   dists/wheezy-backports/linux/debian/config/amd64/defines
   dists/wheezy-backports/linux/debian/config/arm64/config
   dists/wheezy-backports/linux/debian/config/armhf/config.armmp
   dists/wheezy-backports/linux/debian/config/config
   dists/wheezy-backports/linux/debian/config/defines
   dists/wheezy-backports/linux/debian/config/i386/defines
   dists/wheezy-backports/linux/debian/config/i386/none/defines
   dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.4kc-malta
   dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.5kc-malta
   dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.octeon
   dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64
   dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64-be
   dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64-le
   dists/wheezy-backports/linux/debian/config/kernelarch-x86/config
   dists/wheezy-backports/linux/debian/installer/armhf/modules/armhf-armmp/usb-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/scsi-modules
   dists/wheezy-backports/linux/debian/installer/i386/kernel-versions
   dists/wheezy-backports/linux/debian/lib/python/debian_linux/gencontrol.py
   dists/wheezy-backports/linux/debian/patches/bugfix/all/disable-some-marvell-phys.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/firmware_class-return-specific-errors-from-file-read.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/arm64/arm64-crypto-fix-makefile-rule-for-aes-glue-.o.patch
   dists/wheezy-backports/linux/debian/patches/debian/i2o-disable-i2o_ext_adaptec-on-64bit.patch
   dists/wheezy-backports/linux/debian/patches/debian/revert-staging-sm7xxfb-remove-driver.patch
   dists/wheezy-backports/linux/debian/patches/features/all/sfc-Add-40G-link-capability-decoding.patch
   dists/wheezy-backports/linux/debian/patches/features/all/sfc-Adding-PCI-ID-for-Solarflare-7000-series-40G-net.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-Banana-Pi-board.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-spi0_pins_a-pinctrl-setting.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-uart3_pins_b-pinctrl-setting.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/dts-sunxi-Add-pins-for-IR-controller-on-A20-to-dtsi.patch
   dists/wheezy-backports/linux/debian/patches/features/arm64/drivers-net-Add-APM-X-Gene-SoC-ethernet-driver-suppo.patch
   dists/wheezy-backports/linux/debian/patches/features/arm64/drivers-net-NET_XGENE-should-depend-on-HAS_DMA.patch
   dists/wheezy-backports/linux/debian/patches/features/arm64/dts-Add-bindings-for-APM-X-Gene-SoC-ethernet-driver.patch
   dists/wheezy-backports/linux/debian/patches/features/arm64/net-xgene-Check-negative-return-value-of-xgene_enet_.patch
   dists/wheezy-backports/linux/debian/patches/features/arm64/net-xgene-fix-possible-NULL-dereference-in-xgene_ene.patch
   dists/wheezy-backports/linux/debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch
   dists/wheezy-backports/linux/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch
   dists/wheezy-backports/linux/debian/patches/series
   dists/wheezy-backports/linux/debian/rules.real
   dists/wheezy-backports/linux/debian/templates/control.image.type-plain.in
   dists/wheezy-backports/linux/debian/templates/image.plain.bug/presubj
   dists/wheezy-backports/linux/debian/templates/image.plain.bug/script

Modified: dists/wheezy-backports/linux/debian/bin/check-patches.sh
==============================================================================
--- dists/wheezy-backports/linux/debian/bin/check-patches.sh	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/bin/check-patches.sh	Mon Dec  1 17:59:10 2014	(r22098)
@@ -15,8 +15,12 @@
 echo "Patches without required headers"
 echo "================================"
 xargs egrep -l '^(Subject|Description):' < $TMPDIR/used | xargs egrep -l '^(From|Author|Origin):' > $TMPDIR/goodheaders || test $? = 1
-fgrep -v -f $TMPDIR/goodheaders $TMPDIR/used
+fgrep -v -f $TMPDIR/goodheaders $TMPDIR/used || test $? = 1
 echo
 echo "Patches without Origin or Forwarded header"
 echo "=========================================="
-xargs egrep -L '^(Origin|Forwarded):' < $TMPDIR/used || test $? = 1
+xargs egrep -L '^(Origin:|Forwarded: (no\b|not-needed|http))' < $TMPDIR/used || test $? = 1
+echo
+echo "Patches to be forwarded"
+echo "======================="
+xargs egrep -l '^Forwarded: no\b' < $TMPDIR/used || test $? = 1

Modified: dists/wheezy-backports/linux/debian/bin/gencontrol.py
==============================================================================
--- dists/wheezy-backports/linux/debian/bin/gencontrol.py	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/bin/gencontrol.py	Mon Dec  1 17:59:10 2014	(r22098)
@@ -60,8 +60,7 @@
         makeflags.update({
             'VERSION': self.version.linux_version,
             'UPSTREAMVERSION': self.version.linux_upstream,
-            'ABINAME': self.abiname,
-            'ABINAME_PART': self.abiname_part,
+            'ABINAME': self.abiname_version + self.abiname_part,
             'SOURCEVERSION': self.version.complete,
         })
 
@@ -130,8 +129,7 @@
             except KeyError:
                 abiname_part = self.abiname_part
             makeflags['ABINAME'] = vars['abiname'] = \
-                self.version.linux_upstream + abiname_part
-            makeflags['ABINAME_PART'] = abiname_part
+                self.abiname_version + abiname_part
 
         if foreign_kernel:
             packages_headers_arch = []
@@ -466,17 +464,21 @@
             self.abiname_part = ''
         else:
             self.abiname_part = '-%s' % self.config['abi', ]['abiname']
-        self.abiname = self.version.linux_upstream + self.abiname_part
+        # We need to keep at least three version components to avoid
+        # userland breakage (e.g. #742226, #745984).
+        self.abiname_version = re.sub('^(\d+\.\d+)(?=-|$)', r'\1.0',
+                                      self.version.linux_upstream)
         self.vars = {
             'upstreamversion': self.version.linux_upstream,
             'version': self.version.linux_version,
             'source_upstream': self.version.upstream,
             'source_package': self.changelog[0].source,
-            'abiname': self.abiname,
+            'abiname': self.abiname_version + self.abiname_part,
         }
         self.config['version', ] = {'source': self.version.complete,
                                     'upstream': self.version.linux_upstream,
-                                    'abiname': self.abiname}
+                                    'abiname': (self.abiname_version +
+                                                self.abiname_part)}
 
         distribution = self.changelog[0].distribution
         if distribution in ('unstable', ):

Modified: dists/wheezy-backports/linux/debian/changelog
==============================================================================
--- dists/wheezy-backports/linux/debian/changelog	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/changelog	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,12 +1,227 @@
-linux (3.16.5-1~bpo70+1) wheezy-backports; urgency=low
+linux (3.16.7-2~bpo70+1) wheezy-backports; urgency=low
 
   * Rebuild for wheezy:
     - Disable architectures that weren't part of wheezy
     - Use gcc-4.6 for all architectures
-    - Change ABI number to 0.bpo.3
+    - Change ABI number to 0.bpo.4
     - [arm] btrfs: Work around bug in gcc-4.6 (fixes FTBFS)
 
- -- Ben Hutchings <ben at decadent.org.uk>  Sun, 02 Nov 2014 01:07:24 +0000
+ -- Ben Hutchings <ben at decadent.org.uk>  Mon, 01 Dec 2014 17:35:29 +0000
+
+linux (3.16.7-2) unstable; urgency=medium
+
+  [ Ian Campbell ]
+  * Disable TSO in mv643xx_eth driver by default (Closes: #764162).
+
+  [ Aurelien Jarno ]
+  * [i386] Rename 486 flavour to 586 for udebs. (Closes: #768288)
+
+  [ Ben Hutchings ]
+  * [hppa] udeb: Fix modules in multiple packages (Closes: 768297)
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Thu, 06 Nov 2014 17:42:26 +0000
+
+linux (3.16.7-1) unstable; urgency=medium
+
+  * New upstream stable update:
+    https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.6
+    - rtnetlink: fix VF info size (regression in 3.11)
+    - myri10ge: check for DMA mapping errors
+    - Revert "macvlan: simplify the structure port" (regression in 3.16)
+    - tcp: don't use timestamp from repaired skb-s to calculate RTT (v2)
+      (regression in 3.15)
+    - tcp: fix tcp_release_cb() to dispatch via address family for
+      mtu_reduced()
+    - tipc: fix message importance range check (regression in 3.15)
+    - packet: handle too big packets for PACKET_V3
+    - bnx2x: Revert UNDI flushing mechanism (regression in 3.14)
+    - net: ipv6: fib: don't sleep inside atomic lock (regression in 3.15)
+    - openvswitch: fix panic with multiple vlan headers
+    - ipv6: fix rtnl locking in setsockopt for anycast and multicast
+    - l2tp: fix race while getting PMTU on PPP pseudo-wire (regression in 3.15)
+    - ipv6: restore the behavior of ipv6_sock_ac_drop()
+    - bonding: fix div by zero while enslaving and transmitting
+      (regression in 3.12)
+    - net: filter: fix possible use after free (regression in 3.15)
+    - net: allow macvlans to move to net namespace (regression in 3.13)
+    - macvlan: allow to enqueue broadcast pkt on virtual device
+      (regression in 3.16)
+    - xfrm: Generate blackhole routes only from route lookup functions
+    - xfrm: Generate queueing routes only from route lookup functions
+    - macvtap: Fix race between device delete and open.
+    - net/mlx4_core: Allow not to specify probe_vf in SRIOV IB mode
+      (regression in 3.15)
+    - net/mlx4: Correctly configure single ported VFs from the host
+      (regression in 3.15)
+    - gro: fix aggregation for skb using frag_list (regression in 3.13)
+    - hyperv: Fix bug in netvsc_start_xmit() (potential use-after-free)
+    - team: avoid race condition in scheduling delayed work
+    - hyperv: Fix bug in netvsc_send() (potential use-after-free)
+    - sctp: handle association restarts when the socket is closed.
+    - net_sched: copy exts->type in tcf_exts_change() (regression in 3.14)
+    - crypto: caam - fix addressing of struct member
+    - driver/base/node: remove unnecessary kfree of node struct from
+      unregister_one_node (regression in 3.15)
+    https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.7
+    - btrfs: wake up transaction thread from SYNC_FS ioctl
+    - Btrfs: fix up bounds checking in lseek
+    - Btrfs: don't do async reclaim during log replay
+    - Btrfs: cleanup error handling in build_backref_tree
+    - Btrfs: fix build_backref_tree issue with multiple shared blocks
+    - Btrfs: fix race in WAIT_SYNC ioctl
+    - fs: Add a missing permission check to do_umount (CVE-2014-7975)
+    - kvm: fix potentially corrupt mmio cache
+    - [x86] kvm,vmx: Preserve CR4 across VM entry (CVE-2014-3690)
+    - be2iscsi: check ip buffer before copying (stack buffer overflow)
+    - mptfusion: enable no_write_same for vmware scsi disks
+    - qla2xxx: fix kernel NULL pointer access (regression in 3.16)
+      (Closes: #764804)
+    - qla2xxx: Fix shost use-after-free on device removal (regression in 3.14)
+    - dmaengine: fix xor sources continuation
+    - [arm64] debug: don't re-enable debug exceptions on return from el1_dbg
+    - mei: bus: fix possible boundaries violation
+    - nfsv4: Fixing lease renewal (regression in 3.13)
+    - lzo: check for length overrun in variable length encoding.
+    - [armhf] tty: omap-serial: fix division by zero
+    - NFSv4: Fix lock recovery when CREATE_SESSION/SETCLIENTID_CONFIRM fails
+    - NFSv4: fix open/lock state recovery error handling
+    - NFSv4.1: Fix an NFSv4.1 state renewal regression
+    - nfsd4: reserve adequate space for LOCK op (regression in 3.16)
+    - NFS: Fix an uninitialised pointer Oops in the writeback error path
+    - NFS: Fix a bogus warning in nfs_generic_pgio (regression in 3.16.4)
+    - iwlwifi: mvm: disable BT Co-running by default
+    - [armel,armhf] PCI: mvebu: Fix uninitialized variable in
+      mvebu_get_tgt_attr()
+    - Revert "ath9k_hw: reduce ANI firstep range for older chips"
+      (regression in 3.15)
+    - fanotify: enable close-on-exec on events' fd when requested in
+      fanotify_init()
+    - futex: Ensure get_futex_key_refs() always implies a barrier
+      (regression in 3.14)
+    - [ppc64el] iommu/ddw: Fix endianness
+    - [arm64] compat: fix compat types affecting struct compat_elf_prpsinfo
+    - ALSA: emu10k1: Fix deadlock in synth voice lookup
+    - ALSA: hda - Add missing terminating entry to SND_HDA_PIN_QUIRK macro
+    - [armhf] mvebu: Netgear RN104: Use Hardware BCH ECC
+    - [armhf] mvebu: Netgear RN2120: Use Hardware BCH ECC
+    - [armhf] mvebu: Netgear RN102: Use Hardware BCH ECC
+    - ecryptfs: avoid to access NULL pointer when write metadata in xattr
+    - xfs: ensure WB_SYNC_ALL writeback handles partial pages correctly
+    - [sparc*] Do not disable interrupts in nmi_cpu_busy()
+    - [sparc*] Fix pcr_ops initialization and usage bugs.
+    - [sparc*] sun4v TLB error power off events
+    - [sparc*] Fix corrupted thread fault code.
+    - [sparc*] find_node adjustment
+    - [sparc*] Let memset return the address argument
+    - [sparc*] bpf_jit: fix support for ldx/stx mem and SKF_AD_VLAN_TAG
+    - [sparc*] bpf_jit: fix loads from negative offsets
+    - [sparc*] Fix FPU register corruption with AES crypto offload.
+    - [sparc*] Do not define thread fpregs save area as zero-length array.
+    - [sparc*] Fix hibernation code refrence to PAGE_OFFSET.
+    - [sparc*] correctly recognise M6 and M7 cpu type
+    - [sparc*] T5 PMU
+    - [sparc*] Switch to 4-level page tables.
+    - [sparc*] Adjust KTSB assembler to support larger physical addresses.
+    - [sparc*] Fix physical memory management regressions with large
+      max_phys_bits.
+    - [sparc*] Use kernel page tables for vmemmap.
+    - [sparc*] Increase MAX_PHYS_ADDRESS_BITS to 53.
+    - [sparc*] sparse irq
+    - [sparc*] Fix register corruption in top-most kernel stack frame during
+      boot.
+    - [sparc*] Implement __get_user_pages_fast().
+
+  [ Ben Hutchings ]
+  * [i386] Rename 486 flavour to 586, as it has not worked on 486 processors
+    since we enabled CC_STACKPROTECTOR (Closes: #766105)
+    - Select M586TSC instead of M486
+  * [x86] r8723au: Backport changes up to Linux 3.17 (Closes: #765685)
+  * mmc_block: Increase max_devices and set MMC_BLOCK_MINORS to 256
+    (Closes: #765621)
+  * [x86] drm/i915: Initialise userptr mmu_notifier serial to 1
+    (Closes: #765590)
+  * rtsx_usb_ms: Use msleep_interruptible() in polling loop (Closes: #765717)
+  * Bump ABI to 4
+  * Add '.0' to the kernel version string (Closes: #742226, #745984)
+  * vfs,fuse: Change iov_iter_get_pages() to take both maxsize and maxpages
+    parameters (Closes: #764285)
+  * lockd: Try to reconnect if statd has moved (Closes: #767219)
+  * m25p80: Fix module device ID table
+  * HID: i2c-hid: call the hid driver's suspend and resume callbacks
+    (Closes: #767204)
+  * [x86] drm/i915: Add some L3 registers to the parser whitelist
+    (Closes: #767148)
+  * wireless: rt2x00: add new rt2800usb device (thanks to Cyril Brulebois)
+    (Closes: #766802)
+  * drivers/net,ipv6: Fix virtio/IPv6 regression in 3.16:
+    - drivers/net: Disable UFO through virtio
+    - drivers/net,ipv6: Select IPv6 fragment idents for virtio UFO packets
+  * [x86] KVM: Check non-canonical addresses upon WRMSR (CVE-2014-3610)
+  * [x86] KVM: Prevent host from panicking on shared MSR writes.
+    (CVE-2014-3610)
+  * [x86] KVM: Improve thread safety in pit (CVE-2014-3611)
+  * [x86] kvm: vmx: handle invvpid vm exit gracefully (CVE-2014-3646)
+  * [x86] KVM: Fix wrong masking on relative jump/call
+  * [x86] KVM: Emulator fixes for eip canonical checks on near branches
+    (CVE-2014-3647)
+  * [x86] KVM: Handle errors when RIP is set during far jumps (CVE-2014-3647)
+  * [x86] KVM: Fix far-jump to non-canonical check
+  * net: sctp: fix skb_over_panic when receiving malformed ASCONF chunks
+    (CVE-2014-3673)
+  * net: sctp: fix panic on duplicate ASCONF chunks (CVE-2014-3687)
+  * net: sctp: fix remote memory pressure from excessive queueing
+    (CVE-2014-3688)
+  * mnt: Prevent pivot_root from creating a loop in the mount tree
+    (CVE-2014-7970)
+  * linux-image: Recommend irqbalance if CONFIG_SMP is enabled
+    (Closes: #577788)
+  * [armhf] leds: Enable LEDS_PWM as module (for Cubox-i)
+  * [x86] Backport Thunderbolt support on Apple computers from 3.17
+  * [x86] linux-image: Remove lilo from suggested boot loaders
+  * [amd64] linux-image: Add grub-efi to suggested boot loaders
+  * [hppa] Reduce SIGRTMIN from 37 to 32 to behave like other Linux
+    architectures (Closes: #766635)
+  * [hppa] udeb: Add many more module packages (Closes: #766793)
+  * iwlwifi: Backport firmware monitor from 3.17 (Closes: #767088)
+  * bug script: Warn if the running kernel matches the ABI name of the
+    package but is not the installed version
+
+  [ Mauricio Faria de Oliveira ]
+  * [ppc64el] Disable CONFIG_CMDLINE{,_BOOL} usage for setting consoles
+    (Closes: #764745)
+
+  [ Uwe Kleine-König ]
+  * [armhf] enable rtc driver for i.MX6 
+  * [armhf] add chipidea usb host driver to usb-modules-$version-armmmp-di
+    for i.MX6 
+  * [armhf] enable PCI and NAND driver for Armada 370
+  * [armhf] enable RTC, GPIO_PCA953X, SENSORS_G762 and watchdog driver for
+    Netgear ReadyNAS 102/104
+
+  [ Ian Campbell ]
+  * [armhf] Build i2c-s3c2410 statically, it is used by the arndale power
+    controller.
+  * [armhf] Backport device tree file for Olimex A20-OLinuXino-LIME. (Closes: #764967)
+  * [armhf] Enable various drivers for the Nokia N900. Patch from Sebastian
+    Reichel. (Closes: #766070)
+  * [arm64] Enable EHCI and OHCI platform USB HCD drivers.
+  * Enable MTD and MTDBLOCK in top-level config.
+  * [armhf] Add mtd-modules udeb. Patch from Uwe Kleine-Koenig.
+
+  [ Aurelien Jarno ]
+  * [mips*] Backport a hugetlb fix for Octeon from 3.18.
+  * [mips*] Backport math emulation fix for MIPS32r2 from 3.18.
+  * [mips*] Only define MAX_PHYSMEM_BITS on Loongson-3, until a better fix
+    is committed upstream. Fixes Loongson-2 kernel and maybe more. Closes:
+    #764223.
+  * [mips*/octeon] Add support for the UBNT E200 board (EdgeRouter/EdgeRouter
+    Pro 8 port).
+  * [mips*/octeon] Enable SERIAL_8250_DW. Disable KEYBOARD_ATKBD, MOUSE_PS2,
+    SERIO_I8042.
+  * [mips*/octeon] Really enable USB_OCTEON_EHCI and USB_OCTEON_OHCI. Closes: 
+    Closes: #762066.
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Tue, 04 Nov 2014 09:47:27 +0000
 
 linux (3.16.5-1) unstable; urgency=medium
 

Modified: dists/wheezy-backports/linux/debian/config/alpha/config
==============================================================================
--- dists/wheezy-backports/linux/debian/config/alpha/config	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/alpha/config	Mon Dec  1 17:59:10 2014	(r22098)
@@ -415,14 +415,11 @@
 ##
 ## file: drivers/mtd/Kconfig
 ##
-CONFIG_MTD=m
 CONFIG_MTD_REDBOOT_PARTS=y
 CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
 CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
 CONFIG_MTD_REDBOOT_PARTS_READONLY=y
 CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
 CONFIG_FTL=m
 CONFIG_NFTL=m
 CONFIG_NFTL_RW=y

Modified: dists/wheezy-backports/linux/debian/config/amd64/defines
==============================================================================
--- dists/wheezy-backports/linux/debian/config/amd64/defines	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/amd64/defines	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,7 +1,3 @@
-[abi]
-ignore-changes:
- module:arch/x86/kvm/*
-
 [base]
 featuresets:
  none
@@ -13,7 +9,7 @@
 image-file: arch/x86/boot/bzImage
 
 [image]
-bootloaders: grub-pc extlinux lilo
+bootloaders: grub-pc grub-efi extlinux
 configs:
 install-stem: vmlinuz
 

Modified: dists/wheezy-backports/linux/debian/config/arm64/config
==============================================================================
--- dists/wheezy-backports/linux/debian/config/arm64/config	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/arm64/config	Mon Dec  1 17:59:10 2014	(r22098)
@@ -114,6 +114,14 @@
 # CONFIG_SERIAL_8250_EM is not set
 
 ##
+## file: drivers/usb/host/Kconfig
+##
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+
+##
 ## file: drivers/virtio/Kconfig
 ##
 CONFIG_VIRTIO_MMIO=m

Modified: dists/wheezy-backports/linux/debian/config/armhf/config.armmp
==============================================================================
--- dists/wheezy-backports/linux/debian/config/armhf/config.armmp	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/armhf/config.armmp	Mon Dec  1 17:59:10 2014	(r22098)
@@ -181,6 +181,7 @@
 CONFIG_GPIO_SYSFS=y
 CONFIG_GPIO_DA9052=m
 CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_PCA953X=m
 CONFIG_GPIO_TWL4030=y
 CONFIG_GPIO_TWL6040=y
 
@@ -195,6 +196,11 @@
 CONFIG_DRM_I2C_NXP_TDA998X=m
 
 ##
+## file: drivers/gpu/drm/omapdrm/Kconfig
+##
+CONFIG_DRM_OMAP=m
+
+##
 ## file: drivers/gpu/drm/tilcdc/Kconfig
 ##
 CONFIG_DRM_TILCDC=m
@@ -205,6 +211,11 @@
 CONFIG_IMX_IPUV3_CORE=m
 
 ##
+## file: drivers/hwmon/Kconfig
+##
+CONFIG_SENSORS_G762=m
+
+##
 ## file: drivers/hwspinlock/Kconfig
 ##
 CONFIG_HWSPINLOCK_OMAP=m
@@ -222,7 +233,7 @@
 CONFIG_I2C_IMX=m
 CONFIG_I2C_MV64XXX=m
 CONFIG_I2C_OMAP=y
-CONFIG_I2C_S3C2410=m
+CONFIG_I2C_S3C2410=y
 CONFIG_I2C_VERSATILE=m
 
 ##
@@ -239,6 +250,7 @@
 ## file: drivers/iio/adc/Kconfig
 ##
 CONFIG_TI_AM335X_ADC=m
+CONFIG_TWL4030_MADC=m
 
 ##
 ## file: drivers/iio/light/Kconfig
@@ -288,6 +300,7 @@
 CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_LP5523=m
 CONFIG_LEDS_DA9052=m
+CONFIG_LEDS_PWM=m
 
 ##
 ## file: drivers/leds/trigger/Kconfig
@@ -385,6 +398,7 @@
 ##
 CONFIG_MTD_NAND=y
 CONFIG_MTD_NAND_OMAP2=m
+CONFIG_MTD_NAND_PXA3xx=m
 CONFIG_MTD_NAND_GPMI_NAND=m
 CONFIG_MTD_NAND_ORION=m
 CONFIG_MTD_NAND_MXC=m
@@ -549,6 +563,11 @@
 CONFIG_WLCORE_SDIO=m
 
 ##
+## file: drivers/pci/host/Kconfig
+##
+CONFIG_PCI_MVEBU=y
+
+##
 ## file: drivers/phy/Kconfig
 ##
 CONFIG_OMAP_CONTROL_PHY=m
@@ -574,6 +593,7 @@
 ##
 ## file: drivers/power/Kconfig
 ##
+CONFIG_CHARGER_BQ2415X=m
 CONFIG_BATTERY_BQ27x00=m
 CONFIG_CHARGER_ISP1704=m
 
@@ -612,6 +632,7 @@
 ##
 ## file: drivers/rtc/Kconfig
 ##
+CONFIG_RTC_DRV_ISL12057=y
 CONFIG_RTC_DRV_DA9052=y
 CONFIG_RTC_DRV_IMXDI=y
 CONFIG_RTC_DRV_OMAP=y
@@ -620,9 +641,11 @@
 CONFIG_RTC_DRV_VT8500=y
 CONFIG_RTC_DRV_S5M=y
 CONFIG_RTC_DRV_SUNXI=y
+CONFIG_RTC_DRV_TWL4030=y
 CONFIG_RTC_DRV_MV=y
 CONFIG_RTC_DRV_MC13XXX=y
 CONFIG_RTC_DRV_MXC=y
+CONFIG_RTC_DRV_SNVS=y
 
 ##
 ## file: drivers/scsi/Kconfig
@@ -643,6 +666,22 @@
 CONFIG_SPI_SPIDEV=y
 
 ##
+## file: drivers/hsi/Kconfig
+##
+CONFIG_HSI=m
+
+##
+## file: drivers/hsi/controllers/Kconfig
+##
+CONFIG_OMAP_SSI=m
+
+##
+## file: drivers/hsi/clients/Kconfig
+##
+CONFIG_NOKIA_MODEM=m
+CONFIG_SSI_PROTOCOL=m
+
+##
 ## file: drivers/staging/iio/accel/Kconfig
 ##
 CONFIG_LIS3L02DQ=m
@@ -793,6 +832,11 @@
 CONFIG_OMAP2_DSS_SDI=y
 
 ##
+## file: drivers/video/fbdev/omap2/displays-new/Kconfig
+##
+CONFIG_DISPLAY_PANEL_SONY_ACX565AKM=m
+
+##
 ## file: drivers/video/fbdev/omap2/omapfb/Kconfig
 ##
 CONFIG_FB_OMAP2=m
@@ -808,6 +852,7 @@
 CONFIG_DA9052_WATCHDOG=m
 CONFIG_ARM_SP805_WATCHDOG=m
 CONFIG_OMAP_WATCHDOG=m
+CONFIG_ORION_WATCHDOG=m
 CONFIG_SUNXI_WATCHDOG=m
 CONFIG_TWL4030_WATCHDOG=m
 CONFIG_IMX2_WDT=m

Modified: dists/wheezy-backports/linux/debian/config/config
==============================================================================
--- dists/wheezy-backports/linux/debian/config/config	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/config	Mon Dec  1 17:59:10 2014	(r22098)
@@ -2189,7 +2189,7 @@
 ##
 ## file: drivers/mmc/card/Kconfig
 ##
-CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_MINORS=256
 CONFIG_MMC_BLOCK_BOUNCE=y
 CONFIG_SDIO_UART=m
 # CONFIG_MMC_TEST is not set
@@ -2221,6 +2221,9 @@
 ##
 ## file: drivers/mtd/Kconfig
 ##
+CONFIG_MTD=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
 # CONFIG_MTD_TESTS is not set
 CONFIG_MTD_AR7_PARTS=m
 CONFIG_RFD_FTL=m

Modified: dists/wheezy-backports/linux/debian/config/defines
==============================================================================
--- dists/wheezy-backports/linux/debian/config/defines	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/defines	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,5 +1,5 @@
 [abi]
-abiname: 0.bpo.3
+abiname: 0.bpo.4
 
 [base]
 arches:

Copied: dists/wheezy-backports/linux/debian/config/i386/config.586 (from r22048, dists/sid/linux/debian/config/i386/config.586)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/config/i386/config.586	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/config/i386/config.586)
@@ -0,0 +1,121 @@
+##
+## file: arch/x86/Kconfig
+##
+# CONFIG_SMP is not set
+CONFIG_X86_32_IRIS=m
+CONFIG_X86_UP_APIC=y
+CONFIG_X86_UP_IOAPIC=y
+# CONFIG_X86_MCE is not set
+CONFIG_MATH_EMULATION=y
+CONFIG_EISA=y
+CONFIG_OLPC=y
+CONFIG_OLPC_XO1_PM=y
+CONFIG_OLPC_XO1_RTC=y
+CONFIG_OLPC_XO1_SCI=y
+CONFIG_OLPC_XO15_SCI=y
+
+##
+## file: arch/x86/Kconfig.cpu
+##
+## choice: Processor family
+CONFIG_M586TSC=y
+# CONFIG_M686 is not set
+## end choice
+
+##
+## file: drivers/eisa/Kconfig
+##
+CONFIG_EISA_VLB_PRIMING=y
+CONFIG_EISA_PCI_EISA=y
+CONFIG_EISA_VIRTUAL_ROOT=y
+CONFIG_EISA_NAMES=y
+
+##
+## file: drivers/i2c/Kconfig
+##
+CONFIG_I2C_STUB=m
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_ELEKTOR=m
+
+##
+## file: drivers/idle/Kconfig
+##
+# CONFIG_INTEL_IDLE is not set
+
+##
+## file: drivers/input/mouse/Kconfig
+##
+CONFIG_MOUSE_PS2_OLPC=y
+
+##
+## file: drivers/mtd/chips/Kconfig
+##
+# CONFIG_MTD_XIP is not set
+
+##
+## file: drivers/net/ethernet/8390/Kconfig
+##
+CONFIG_NET_VENDOR_8390=y
+
+##
+## file: drivers/net/ethernet/i825xx/Kconfig
+##
+CONFIG_NET_VENDOR_I825XX=y
+
+##
+## file: drivers/net/ethernet/natsemi/Kconfig
+##
+CONFIG_NET_VENDOR_NATSEMI=y
+
+##
+## file: drivers/net/hamradio/Kconfig
+##
+CONFIG_DMASCC=m
+
+##
+## file: drivers/pci/hotplug/Kconfig
+##
+CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y
+
+##
+## file: drivers/platform/x86/Kconfig
+##
+CONFIG_XO1_RFKILL=m
+CONFIG_XO15_EBOOK=m
+
+##
+## file: drivers/power/Kconfig
+##
+CONFIG_BATTERY_OLPC=m
+
+##
+## file: drivers/scsi/Kconfig
+##
+CONFIG_SCSI_NCR_D700=m
+CONFIG_SCSI_NCR_Q720=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=4
+CONFIG_SCSI_NCR53C8XX_SYNC=5
+CONFIG_SCSI_SIM710=m
+
+##
+## file: drivers/tty/Kconfig
+##
+CONFIG_MOXA_INTELLIO=m
+
+##
+## file: drivers/video/fbdev/geode/Kconfig
+##
+CONFIG_FB_GEODE=y
+CONFIG_FB_GEODE_LX=m
+CONFIG_FB_GEODE_GX=m
+CONFIG_FB_GEODE_GX1=m
+
+##
+## file: mm/Kconfig
+##
+# CONFIG_TRANSPARENT_HUGEPAGE is not set
+

Modified: dists/wheezy-backports/linux/debian/config/i386/defines
==============================================================================
--- dists/wheezy-backports/linux/debian/config/i386/defines	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/i386/defines	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,7 +1,3 @@
-[abi]
-ignore-changes:
- module:arch/x86/kvm/*
-
 [base]
 featuresets:
  none
@@ -18,22 +14,22 @@
  Turion or Phenom; Transmeta Efficeon; VIA C7; and some other processors.
 
 [image]
-bootloaders: grub-pc extlinux lilo
+bootloaders: grub-pc extlinux
 configs:
 install-stem: vmlinuz
 
 [relations]
 headers%gcc-4.6: linux-compiler-gcc-4.6-x86
 
-[486_description]
+[586_description]
 hardware: older PCs
 hardware-long: PCs with a single processor not supporting PAE
 parts: up
 
-[486_image]
+[586_image]
 configs:
  kernelarch-x86/config-arch-32
- i386/config.486
+ i386/config.586
 
 [686-pae_build]
 debug-info: true

Modified: dists/wheezy-backports/linux/debian/config/i386/none/defines
==============================================================================
--- dists/wheezy-backports/linux/debian/config/i386/none/defines	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/i386/none/defines	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,6 +1,6 @@
 [base]
 flavours:
- 486
+ 586
  686-pae
  amd64
 

Modified: dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.4kc-malta
==============================================================================
--- dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.4kc-malta	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.4kc-malta	Mon Dec  1 17:59:10 2014	(r22098)
@@ -186,10 +186,7 @@
 ##
 ## file: drivers/mtd/Kconfig
 ##
-CONFIG_MTD=m
 CONFIG_MTD_REDBOOT_PARTS=y
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
 CONFIG_FTL=m
 CONFIG_NFTL=m
 CONFIG_NFTL_RW=y

Modified: dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.5kc-malta
==============================================================================
--- dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.5kc-malta	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.5kc-malta	Mon Dec  1 17:59:10 2014	(r22098)
@@ -189,10 +189,7 @@
 ##
 ## file: drivers/mtd/Kconfig
 ##
-CONFIG_MTD=m
 CONFIG_MTD_REDBOOT_PARTS=y
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
 CONFIG_FTL=m
 CONFIG_NFTL=m
 CONFIG_NFTL_RW=y

Modified: dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.octeon
==============================================================================
--- dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.octeon	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/kernelarch-mips/config.octeon	Mon Dec  1 17:59:10 2014	(r22098)
@@ -53,13 +53,18 @@
 ## file: drivers/input/keyboard/Kconfig
 ##
 CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_ATKBD is not set
 
 ##
 ## file: drivers/input/mouse/Kconfig
 ##
 CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
+# CONFIG_MOUSE_PS2 is not set
+
+##
+## file: drivers/input/serio/Kconfig
+##
+# CONFIG_SERIO_I8042 is not set
 
 ##
 ## file: drivers/input/touchscreen/Kconfig
@@ -116,13 +121,14 @@
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_NR_UARTS=2
 CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+CONFIG_SERIAL_8250_DW=y
 
 ##
 ## file: drivers/usb/host/Kconfig
 ##
 CONFIG_USB_EHCI_HCD=m
-CONFIG_USB_OCTEON_EHCI=m
-CONFIG_USB_OCTEON_OHCI=m
+CONFIG_USB_OCTEON_EHCI=y
+CONFIG_USB_OCTEON_OHCI=y
 CONFIG_USB_OHCI_HCD=m
 
 ##

Modified: dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64
==============================================================================
--- dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64	Mon Dec  1 17:59:10 2014	(r22098)
@@ -9,7 +9,6 @@
 CONFIG_PPC_64K_PAGES=y
 ## end choice
 CONFIG_SCHED_SMT=y
-CONFIG_CMDLINE="console=hvsi0 console=hvc0 console=ttyS0,9600 console=tty0"
 CONFIG_KERNEL_START=0xc000000000000000
 
 ##

Modified: dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64-be
==============================================================================
--- dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64-be	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64-be	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,4 +1,9 @@
 ##
+## file: arch/powerpc/Kconfig
+##
+CONFIG_CMDLINE="console=hvsi0 console=hvc0 console=ttyS0,9600 console=tty0"
+
+##
 ## file: arch/powerpc/platforms/cell/Kconfig
 ##
 CONFIG_PPC_IBM_CELL_BLADE=y

Modified: dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64-le
==============================================================================
--- dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64-le	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/kernelarch-powerpc/config-arch-64-le	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,4 +1,9 @@
 ##
+## file: arch/powerpc/Kconfig
+##
+# CONFIG_CMDLINE_BOOL is not set
+
+##
 ## file: arch/powerpc/platforms/Kconfig.cputype
 ##
 CONFIG_NR_CPUS=2048

Modified: dists/wheezy-backports/linux/debian/config/kernelarch-x86/config
==============================================================================
--- dists/wheezy-backports/linux/debian/config/kernelarch-x86/config	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/config/kernelarch-x86/config	Mon Dec  1 17:59:10 2014	(r22098)
@@ -799,14 +799,11 @@
 ##
 ## file: drivers/mtd/Kconfig
 ##
-CONFIG_MTD=m
 CONFIG_MTD_REDBOOT_PARTS=y
 CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
 # CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
 # CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
 # CONFIG_MTD_CMDLINE_PARTS is not set
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
 CONFIG_FTL=m
 CONFIG_NFTL=m
 CONFIG_NFTL_RW=y

Copied: dists/wheezy-backports/linux/debian/installer/armhf/modules/armhf-armmp/mtd-modules (from r22048, dists/sid/linux/debian/installer/armhf/modules/armhf-armmp/mtd-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/armhf/modules/armhf-armmp/mtd-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/armhf/modules/armhf-armmp/mtd-modules)
@@ -0,0 +1,3 @@
+#include <mtd-modules>
+mxc_nand
+pxa3xx_nand

Modified: dists/wheezy-backports/linux/debian/installer/armhf/modules/armhf-armmp/usb-modules
==============================================================================
--- dists/wheezy-backports/linux/debian/installer/armhf/modules/armhf-armmp/usb-modules	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/installer/armhf/modules/armhf-armmp/usb-modules	Mon Dec  1 17:59:10 2014	(r22098)
@@ -4,3 +4,4 @@
 ohci-exynos
 ehci-exynos
 phy-exynos-usb2
+ci_hdrc_imx

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/ata-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/ata-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/ata-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/ata-modules)
@@ -0,0 +1 @@
+#include "../hppa/ata-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/crc-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/crc-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/crc-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/crc-modules)
@@ -0,0 +1 @@
+#include "../hppa/crc-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/event-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/event-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/event-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/event-modules)
@@ -0,0 +1 @@
+#include "../hppa/event-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/isofs-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/isofs-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/isofs-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/isofs-modules)
@@ -0,0 +1 @@
+#include "../hppa/isofs-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/jfs-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/jfs-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/jfs-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/jfs-modules)
@@ -0,0 +1 @@
+#include "../hppa/jfs-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/mouse-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/mouse-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/mouse-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/mouse-modules)
@@ -0,0 +1 @@
+#include "../hppa/mouse-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-shared-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-shared-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-shared-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-shared-modules)
@@ -0,0 +1 @@
+#include "../hppa/nic-shared-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-usb-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-usb-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-usb-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/nic-usb-modules)
@@ -0,0 +1 @@
+#include "../hppa/nic-usb-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/sata-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/sata-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/sata-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/sata-modules)
@@ -0,0 +1 @@
+#include "../hppa/sata-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/scsi-common-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/scsi-common-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/scsi-common-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/scsi-common-modules)
@@ -0,0 +1 @@
+#include "../hppa/scsi-common-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/serial-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/serial-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/serial-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/serial-modules)
@@ -0,0 +1 @@
+#include "../hppa/serial-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/squashfs-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/squashfs-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/squashfs-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/squashfs-modules)
@@ -0,0 +1 @@
+#include "../hppa/squashfs-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/usb-serial-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/usb-serial-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/usb-serial-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/usb-serial-modules)
@@ -0,0 +1 @@
+#include "../hppa/usb-serial-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/ata-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/ata-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/ata-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/ata-modules)
@@ -0,0 +1 @@
+#include <ata-modules>

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/crc-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/crc-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/crc-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/crc-modules)
@@ -0,0 +1 @@
+#include <crc-modules>

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/event-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/event-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/event-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/event-modules)
@@ -0,0 +1 @@
+#include <event-modules>

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/isofs-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/isofs-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/isofs-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/isofs-modules)
@@ -0,0 +1 @@
+#include <isofs-modules>

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/jfs-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/jfs-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/jfs-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/jfs-modules)
@@ -0,0 +1 @@
+#include <jfs-modules>

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/mouse-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/mouse-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/mouse-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/mouse-modules)
@@ -0,0 +1 @@
+#include <mouse-modules>

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/nic-shared-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/nic-shared-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/nic-shared-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/nic-shared-modules)
@@ -0,0 +1 @@
+#include <nic-shared-modules>

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/nic-usb-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/nic-usb-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/nic-usb-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/nic-usb-modules)
@@ -0,0 +1 @@
+#include <nic-usb-modules>

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/sata-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/sata-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/sata-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/sata-modules)
@@ -0,0 +1,2 @@
+#include <sata-modules>
+

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/scsi-common-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/scsi-common-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/scsi-common-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/scsi-common-modules)
@@ -0,0 +1,2 @@
+#include <scsi-common-modules>
+

Modified: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/scsi-modules
==============================================================================
--- dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/scsi-modules	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/scsi-modules	Mon Dec  1 17:59:10 2014	(r22098)
@@ -4,7 +4,6 @@
 osst
 sg
 st
-sym53c8xx
 zalon7xx
 megaraid ?
 megaraid_mbox ?

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/serial-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/serial-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/serial-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/serial-modules)
@@ -0,0 +1 @@
+#include <serial-modules>

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/squashfs-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/squashfs-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/squashfs-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/squashfs-modules)
@@ -0,0 +1 @@
+#include <squashfs-modules>

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/usb-serial-modules (from r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/usb-serial-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/usb-serial-modules	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/installer/hppa/modules/hppa/usb-serial-modules)
@@ -0,0 +1 @@
+#include <usb-serial-modules>

Modified: dists/wheezy-backports/linux/debian/installer/i386/kernel-versions
==============================================================================
--- dists/wheezy-backports/linux/debian/installer/i386/kernel-versions	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/installer/i386/kernel-versions	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,3 +1,3 @@
 # arch version flavour installedname suffix build-depends
-i386   -       486     -             -      -
+i386   -       586     -             -      -
 i386   -       686-pae -             -      -

Modified: dists/wheezy-backports/linux/debian/lib/python/debian_linux/gencontrol.py
==============================================================================
--- dists/wheezy-backports/linux/debian/lib/python/debian_linux/gencontrol.py	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/lib/python/debian_linux/gencontrol.py	Mon Dec  1 17:59:10 2014	(r22098)
@@ -275,7 +275,7 @@
         def subst(match):
             return vars[match.group(1)]
 
-        return re.sub(r'@([-_a-z]+)@', subst, six.text_type(s))
+        return re.sub(r'@([-_a-z0-9]+)@', subst, six.text_type(s))
 
     def write(self, packages, makefile):
         self.write_control(packages.values())

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/HID-i2c-hid-call-the-hid-driver-s-suspend-and-resume.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/HID-i2c-hid-call-the-hid-driver-s-suspend-and-resume.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/HID-i2c-hid-call-the-hid-driver-s-suspend-and-resume.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/HID-i2c-hid-call-the-hid-driver-s-suspend-and-resume.patch)
@@ -0,0 +1,69 @@
+From: Andrew Duggan <aduggan at synaptics.com>
+Date: Fri, 11 Jul 2014 16:34:18 -0700
+Subject: HID: i2c-hid: call the hid driver's suspend and resume callbacks
+Origin: https://git.kernel.org/linus/109571cf3ec78a39477eedd6b11927f52cbcb1e8
+
+Currently, the i2c-hid driver does not call the suspend, resume, and
+reset_resume callbacks in the hid_driver struct when those events occur.
+This means that HID drivers for i2c-hid devices will not be able to execute
+commands which may be needed during suspend or resume. One example is when a
+touchpad using the hid-multitouch driver gets reset by i2c-hid coming out of
+resume. Since the reset_resume callback never gets called the device is never
+put back into the correct input mode. This patch calls the suspend and resume
+callbacks and tries to duplicate the functionality of the usb-hid driver.
+
+Signed-off-by: Andrew Duggan <aduggan at synaptics.com>
+Signed-off-by: Vincent Huang <vincent.huang at tw.synaptics.com>
+Reviewed-by: Benjamin Tissoires <benjamin.tissoires at redhat.com>
+Signed-off-by: Jiri Kosina <jkosina at suse.cz>
+---
+ drivers/hid/i2c-hid/i2c-hid.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/hid/i2c-hid/i2c-hid.c b/drivers/hid/i2c-hid/i2c-hid.c
+index 21aafc8..747d544 100644
+--- a/drivers/hid/i2c-hid/i2c-hid.c
++++ b/drivers/hid/i2c-hid/i2c-hid.c
+@@ -1054,21 +1054,29 @@ static int i2c_hid_remove(struct i2c_client *client)
+ static int i2c_hid_suspend(struct device *dev)
+ {
+ 	struct i2c_client *client = to_i2c_client(dev);
++	struct i2c_hid *ihid = i2c_get_clientdata(client);
++	struct hid_device *hid = ihid->hid;
++	int ret = 0;
+ 
+ 	disable_irq(client->irq);
+ 	if (device_may_wakeup(&client->dev))
+ 		enable_irq_wake(client->irq);
+ 
++	if (hid->driver && hid->driver->suspend)
++		ret = hid->driver->suspend(hid, PMSG_SUSPEND);
++
+ 	/* Save some power */
+ 	i2c_hid_set_power(client, I2C_HID_PWR_SLEEP);
+ 
+-	return 0;
++	return ret;
+ }
+ 
+ static int i2c_hid_resume(struct device *dev)
+ {
+ 	int ret;
+ 	struct i2c_client *client = to_i2c_client(dev);
++	struct i2c_hid *ihid = i2c_get_clientdata(client);
++	struct hid_device *hid = ihid->hid;
+ 
+ 	enable_irq(client->irq);
+ 	ret = i2c_hid_hwreset(client);
+@@ -1078,6 +1086,11 @@ static int i2c_hid_resume(struct device *dev)
+ 	if (device_may_wakeup(&client->dev))
+ 		disable_irq_wake(client->irq);
+ 
++	if (hid->driver && hid->driver->reset_resume) {
++		ret = hid->driver->reset_resume(hid);
++		return ret;
++	}
++
+ 	return 0;
+ }
+ #endif

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/SUNRPC-Don-t-wake-tasks-during-connection-abort.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/SUNRPC-Don-t-wake-tasks-during-connection-abort.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/SUNRPC-Don-t-wake-tasks-during-connection-abort.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/SUNRPC-Don-t-wake-tasks-during-connection-abort.patch)
@@ -0,0 +1,52 @@
+From: Benjamin Coddington <bcodding at redhat.com>
+Date: Tue, 23 Sep 2014 12:26:19 -0400
+Subject: [1/2] SUNRPC: Don't wake tasks during connection abort
+Origin: https://git.kernel.org/linus/a743419f420a64d442280845c0377a915b76644f
+Bug-Debian: https://bugs.debian.org/767219
+
+When aborting a connection to preserve source ports, don't wake the task in
+xs_error_report.  This allows tasks with RPC_TASK_SOFTCONN to succeed if the
+connection needs to be re-established since it preserves the task's status
+instead of setting it to the status of the aborting kernel_connect().
+
+This may also avoid a potential conflict on the socket's lock.
+
+Signed-off-by: Benjamin Coddington <bcodding at redhat.com>
+Cc: stable at vger.kernel.org # 3.14+
+Signed-off-by: Trond Myklebust <trond.myklebust at primarydata.com>
+---
+ include/linux/sunrpc/xprt.h | 1 +
+ net/sunrpc/xprtsock.c       | 4 ++++
+ 2 files changed, 5 insertions(+)
+
+--- a/include/linux/sunrpc/xprt.h
++++ b/include/linux/sunrpc/xprt.h
+@@ -357,6 +357,7 @@ int			xs_swapper(struct rpc_xprt *xprt,
+ #define XPRT_CONNECTION_ABORT	(7)
+ #define XPRT_CONNECTION_CLOSE	(8)
+ #define XPRT_CONGESTED		(9)
++#define XPRT_CONNECTION_REUSE	(10)
+ 
+ static inline void xprt_set_connected(struct rpc_xprt *xprt)
+ {
+--- a/net/sunrpc/xprtsock.c
++++ b/net/sunrpc/xprtsock.c
+@@ -842,6 +842,8 @@ static void xs_error_report(struct sock
+ 	dprintk("RPC:       xs_error_report client %p, error=%d...\n",
+ 			xprt, -err);
+ 	trace_rpc_socket_error(xprt, sk->sk_socket, err);
++	if (test_bit(XPRT_CONNECTION_REUSE, &xprt->state))
++		goto out;
+ 	xprt_wake_pending_tasks(xprt, err);
+  out:
+ 	read_unlock_bh(&sk->sk_callback_lock);
+@@ -2241,7 +2243,9 @@ static void xs_tcp_setup_socket(struct w
+ 		abort_and_exit = test_and_clear_bit(XPRT_CONNECTION_ABORT,
+ 				&xprt->state);
+ 		/* "close" the socket, preserving the local port */
++		set_bit(XPRT_CONNECTION_REUSE, &xprt->state);
+ 		xs_tcp_reuse_connection(transport);
++		clear_bit(XPRT_CONNECTION_REUSE, &xprt->state);
+ 
+ 		if (abort_and_exit)
+ 			goto out_eagain;

Modified: dists/wheezy-backports/linux/debian/patches/bugfix/all/disable-some-marvell-phys.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/bugfix/all/disable-some-marvell-phys.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/disable-some-marvell-phys.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -2,6 +2,7 @@
 Subject: phy/marvell: disable 4-port phys
 Date: Wed, 20 Nov 2013 08:30:14 +0000
 Bug-Debian: https://bugs.debian.org/723177
+Forwarded: http://thread.gmane.org/gmane.linux.debian.devel.bugs.general/1107774/
 
 The Marvell PHY was originally disabled because it can cause networking
 failures on some systems. According to Lennert Buytenhek this is because some

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/drivers-net-Disable-UFO-through-virtio.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/drivers-net-Disable-UFO-through-virtio.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/drivers-net-Disable-UFO-through-virtio.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/drivers-net-Disable-UFO-through-virtio.patch)
@@ -0,0 +1,212 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Thu, 30 Oct 2014 18:27:12 +0000
+Subject: [1/2] drivers/net: Disable UFO through virtio
+Origin: https://git.kernel.org/cgit/linux/kernel/git/davem/net.git/commit?id=3d0ad09412ffe00c9afa201d01effdb6023d09b4
+
+IPv6 does not allow fragmentation by routers, so there is no
+fragmentation ID in the fixed header.  UFO for IPv6 requires the ID to
+be passed separately, but there is no provision for this in the virtio
+net protocol.
+
+Until recently our software implementation of UFO/IPv6 generated a new
+ID, but this was a bug.  Now we will use ID=0 for any UFO/IPv6 packet
+passed through a tap, which is even worse.
+
+Unfortunately there is no distinction between UFO/IPv4 and v6
+features, so disable UFO on taps and virtio_net completely until we
+have a proper solution.
+
+We cannot depend on VM managers respecting the tap feature flags, so
+keep accepting UFO packets but log a warning the first time we do
+this.
+
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+Fixes: 916e4cf46d02 ("ipv6: reuse ip6_frag_id from ip6_ufo_append_data")
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ drivers/net/macvtap.c    | 13 +++++--------
+ drivers/net/tun.c        | 19 +++++++++++--------
+ drivers/net/virtio_net.c | 24 ++++++++++++++----------
+ 3 files changed, 30 insertions(+), 26 deletions(-)
+
+--- a/drivers/net/macvtap.c
++++ b/drivers/net/macvtap.c
+@@ -65,7 +65,7 @@ static struct cdev macvtap_cdev;
+ static const struct proto_ops macvtap_socket_ops;
+ 
+ #define TUN_OFFLOADS (NETIF_F_HW_CSUM | NETIF_F_TSO_ECN | NETIF_F_TSO | \
+-		      NETIF_F_TSO6 | NETIF_F_UFO)
++		      NETIF_F_TSO6)
+ #define RX_OFFLOADS (NETIF_F_GRO | NETIF_F_LRO)
+ #define TAP_FEATURES (NETIF_F_GSO | NETIF_F_SG)
+ 
+@@ -569,6 +569,8 @@ static int macvtap_skb_from_vnet_hdr(str
+ 			gso_type = SKB_GSO_TCPV6;
+ 			break;
+ 		case VIRTIO_NET_HDR_GSO_UDP:
++			pr_warn_once("macvtap: %s: using disabled UFO feature; please fix this program\n",
++				     current->comm);
+ 			gso_type = SKB_GSO_UDP;
+ 			break;
+ 		default:
+@@ -614,8 +616,6 @@ static void macvtap_skb_to_vnet_hdr(cons
+ 			vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_TCPV4;
+ 		else if (sinfo->gso_type & SKB_GSO_TCPV6)
+ 			vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_TCPV6;
+-		else if (sinfo->gso_type & SKB_GSO_UDP)
+-			vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_UDP;
+ 		else
+ 			BUG();
+ 		if (sinfo->gso_type & SKB_GSO_TCP_ECN)
+@@ -950,9 +950,6 @@ static int set_offload(struct macvtap_qu
+ 			if (arg & TUN_F_TSO6)
+ 				feature_mask |= NETIF_F_TSO6;
+ 		}
+-
+-		if (arg & TUN_F_UFO)
+-			feature_mask |= NETIF_F_UFO;
+ 	}
+ 
+ 	/* tun/tap driver inverts the usage for TSO offloads, where
+@@ -963,7 +960,7 @@ static int set_offload(struct macvtap_qu
+ 	 * When user space turns off TSO, we turn off GSO/LRO so that
+ 	 * user-space will not receive TSO frames.
+ 	 */
+-	if (feature_mask & (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_UFO))
++	if (feature_mask & (NETIF_F_TSO | NETIF_F_TSO6))
+ 		features |= RX_OFFLOADS;
+ 	else
+ 		features &= ~RX_OFFLOADS;
+@@ -1064,7 +1061,7 @@ static long macvtap_ioctl(struct file *f
+ 	case TUNSETOFFLOAD:
+ 		/* let the user check for future flags */
+ 		if (arg & ~(TUN_F_CSUM | TUN_F_TSO4 | TUN_F_TSO6 |
+-			    TUN_F_TSO_ECN | TUN_F_UFO))
++			    TUN_F_TSO_ECN))
+ 			return -EINVAL;
+ 
+ 		rtnl_lock();
+--- a/drivers/net/tun.c
++++ b/drivers/net/tun.c
+@@ -174,7 +174,7 @@ struct tun_struct {
+ 	struct net_device	*dev;
+ 	netdev_features_t	set_features;
+ #define TUN_USER_FEATURES (NETIF_F_HW_CSUM|NETIF_F_TSO_ECN|NETIF_F_TSO| \
+-			  NETIF_F_TSO6|NETIF_F_UFO)
++			  NETIF_F_TSO6)
+ 
+ 	int			vnet_hdr_sz;
+ 	int			sndbuf;
+@@ -1149,8 +1149,18 @@ static ssize_t tun_get_user(struct tun_s
+ 			skb_shinfo(skb)->gso_type = SKB_GSO_TCPV6;
+ 			break;
+ 		case VIRTIO_NET_HDR_GSO_UDP:
++		{
++			static bool warned;
++
++			if (!warned) {
++				warned = true;
++				netdev_warn(tun->dev,
++					    "%s: using disabled UFO feature; please fix this program\n",
++					    current->comm);
++			}
+ 			skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
+ 			break;
++		}
+ 		default:
+ 			tun->dev->stats.rx_frame_errors++;
+ 			kfree_skb(skb);
+@@ -1251,8 +1261,6 @@ static ssize_t tun_put_user(struct tun_s
+ 				gso.gso_type = VIRTIO_NET_HDR_GSO_TCPV4;
+ 			else if (sinfo->gso_type & SKB_GSO_TCPV6)
+ 				gso.gso_type = VIRTIO_NET_HDR_GSO_TCPV6;
+-			else if (sinfo->gso_type & SKB_GSO_UDP)
+-				gso.gso_type = VIRTIO_NET_HDR_GSO_UDP;
+ 			else {
+ 				pr_err("unexpected GSO type: "
+ 				       "0x%x, gso_size %d, hdr_len %d\n",
+@@ -1761,11 +1769,6 @@ static int set_offload(struct tun_struct
+ 				features |= NETIF_F_TSO6;
+ 			arg &= ~(TUN_F_TSO4|TUN_F_TSO6);
+ 		}
+-
+-		if (arg & TUN_F_UFO) {
+-			features |= NETIF_F_UFO;
+-			arg &= ~TUN_F_UFO;
+-		}
+ 	}
+ 
+ 	/* This gives the user a way to test for new features in future by
+--- a/drivers/net/virtio_net.c
++++ b/drivers/net/virtio_net.c
+@@ -496,8 +496,17 @@ static void receive_buf(struct receive_q
+ 			skb_shinfo(skb)->gso_type = SKB_GSO_TCPV4;
+ 			break;
+ 		case VIRTIO_NET_HDR_GSO_UDP:
++		{
++			static bool warned;
++
++			if (!warned) {
++				warned = true;
++				netdev_warn(dev,
++					    "host using disabled UFO feature; please fix it\n");
++			}
+ 			skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
+ 			break;
++		}
+ 		case VIRTIO_NET_HDR_GSO_TCPV6:
+ 			skb_shinfo(skb)->gso_type = SKB_GSO_TCPV6;
+ 			break;
+@@ -836,8 +845,6 @@ static int xmit_skb(struct send_queue *s
+ 			hdr->hdr.gso_type = VIRTIO_NET_HDR_GSO_TCPV4;
+ 		else if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6)
+ 			hdr->hdr.gso_type = VIRTIO_NET_HDR_GSO_TCPV6;
+-		else if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP)
+-			hdr->hdr.gso_type = VIRTIO_NET_HDR_GSO_UDP;
+ 		else
+ 			BUG();
+ 		if (skb_shinfo(skb)->gso_type & SKB_GSO_TCP_ECN)
+@@ -1657,7 +1664,7 @@ static int virtnet_probe(struct virtio_d
+ 			dev->features |= NETIF_F_HW_CSUM|NETIF_F_SG|NETIF_F_FRAGLIST;
+ 
+ 		if (virtio_has_feature(vdev, VIRTIO_NET_F_GSO)) {
+-			dev->hw_features |= NETIF_F_TSO | NETIF_F_UFO
++			dev->hw_features |= NETIF_F_TSO
+ 				| NETIF_F_TSO_ECN | NETIF_F_TSO6;
+ 		}
+ 		/* Individual feature bits: what can host handle? */
+@@ -1667,11 +1674,9 @@ static int virtnet_probe(struct virtio_d
+ 			dev->hw_features |= NETIF_F_TSO6;
+ 		if (virtio_has_feature(vdev, VIRTIO_NET_F_HOST_ECN))
+ 			dev->hw_features |= NETIF_F_TSO_ECN;
+-		if (virtio_has_feature(vdev, VIRTIO_NET_F_HOST_UFO))
+-			dev->hw_features |= NETIF_F_UFO;
+ 
+ 		if (gso)
+-			dev->features |= dev->hw_features & (NETIF_F_ALL_TSO|NETIF_F_UFO);
++			dev->features |= dev->hw_features & NETIF_F_ALL_TSO;
+ 		/* (!csum && gso) case will be fixed by register_netdev() */
+ 	}
+ 	if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_CSUM))
+@@ -1711,8 +1716,7 @@ static int virtnet_probe(struct virtio_d
+ 	/* If we can receive ANY GSO packets, we must allocate large ones. */
+ 	if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) ||
+ 	    virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) ||
+-	    virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN) ||
+-	    virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_UFO))
++	    virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN))
+ 		vi->big_packets = true;
+ 
+ 	if (virtio_has_feature(vdev, VIRTIO_NET_F_MRG_RXBUF))
+@@ -1910,9 +1914,9 @@ static struct virtio_device_id id_table[
+ static unsigned int features[] = {
+ 	VIRTIO_NET_F_CSUM, VIRTIO_NET_F_GUEST_CSUM,
+ 	VIRTIO_NET_F_GSO, VIRTIO_NET_F_MAC,
+-	VIRTIO_NET_F_HOST_TSO4, VIRTIO_NET_F_HOST_UFO, VIRTIO_NET_F_HOST_TSO6,
++	VIRTIO_NET_F_HOST_TSO4, VIRTIO_NET_F_HOST_TSO6,
+ 	VIRTIO_NET_F_HOST_ECN, VIRTIO_NET_F_GUEST_TSO4, VIRTIO_NET_F_GUEST_TSO6,
+-	VIRTIO_NET_F_GUEST_ECN, VIRTIO_NET_F_GUEST_UFO,
++	VIRTIO_NET_F_GUEST_ECN,
+ 	VIRTIO_NET_F_MRG_RXBUF, VIRTIO_NET_F_STATUS, VIRTIO_NET_F_CTRL_VQ,
+ 	VIRTIO_NET_F_CTRL_RX, VIRTIO_NET_F_CTRL_VLAN,
+ 	VIRTIO_NET_F_GUEST_ANNOUNCE, VIRTIO_NET_F_MQ,

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/drivers-net-ipv6-Select-IPv6-fragment-idents-for-vir.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/drivers-net-ipv6-Select-IPv6-fragment-idents-for-vir.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/drivers-net-ipv6-Select-IPv6-fragment-idents-for-vir.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/drivers-net-ipv6-Select-IPv6-fragment-idents-for-vir.patch)
@@ -0,0 +1,135 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Thu, 30 Oct 2014 18:27:17 +0000
+Subject: [2/2] drivers/net, ipv6: Select IPv6 fragment idents for virtio UFO
+ packets
+Origin: https://git.kernel.org/cgit/linux/kernel/git/davem/net.git/commit?id=5188cd44c55db3e92cd9e77a40b5baa7ed4340f7
+
+UFO is now disabled on all drivers that work with virtio net headers,
+but userland may try to send UFO/IPv6 packets anyway.  Instead of
+sending with ID=0, we should select identifiers on their behalf (as we
+used to).
+
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+Fixes: 916e4cf46d02 ("ipv6: reuse ip6_frag_id from ip6_ufo_append_data")
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ drivers/net/macvtap.c  |  3 +++
+ drivers/net/tun.c      |  6 +++++-
+ include/net/ipv6.h     |  2 ++
+ net/ipv6/output_core.c | 34 ++++++++++++++++++++++++++++++++++
+ 4 files changed, 44 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/macvtap.c
++++ b/drivers/net/macvtap.c
+@@ -16,6 +16,7 @@
+ #include <linux/idr.h>
+ #include <linux/fs.h>
+ 
++#include <net/ipv6.h>
+ #include <net/net_namespace.h>
+ #include <net/rtnetlink.h>
+ #include <net/sock.h>
+@@ -572,6 +573,8 @@ static int macvtap_skb_from_vnet_hdr(str
+ 			pr_warn_once("macvtap: %s: using disabled UFO feature; please fix this program\n",
+ 				     current->comm);
+ 			gso_type = SKB_GSO_UDP;
++			if (skb->protocol == htons(ETH_P_IPV6))
++				ipv6_proxy_select_ident(skb);
+ 			break;
+ 		default:
+ 			return -EINVAL;
+--- a/drivers/net/tun.c
++++ b/drivers/net/tun.c
+@@ -65,6 +65,7 @@
+ #include <linux/nsproxy.h>
+ #include <linux/virtio_net.h>
+ #include <linux/rcupdate.h>
++#include <net/ipv6.h>
+ #include <net/net_namespace.h>
+ #include <net/netns/generic.h>
+ #include <net/rtnetlink.h>
+@@ -1139,6 +1140,8 @@ static ssize_t tun_get_user(struct tun_s
+ 		break;
+ 	}
+ 
++	skb_reset_network_header(skb);
++
+ 	if (gso.gso_type != VIRTIO_NET_HDR_GSO_NONE) {
+ 		pr_debug("GSO!\n");
+ 		switch (gso.gso_type & ~VIRTIO_NET_HDR_GSO_ECN) {
+@@ -1159,6 +1162,8 @@ static ssize_t tun_get_user(struct tun_s
+ 					    current->comm);
+ 			}
+ 			skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
++			if (skb->protocol == htons(ETH_P_IPV6))
++				ipv6_proxy_select_ident(skb);
+ 			break;
+ 		}
+ 		default:
+@@ -1189,7 +1194,6 @@ static ssize_t tun_get_user(struct tun_s
+ 		skb_shinfo(skb)->tx_flags |= SKBTX_SHARED_FRAG;
+ 	}
+ 
+-	skb_reset_network_header(skb);
+ 	skb_probe_transport_header(skb, 0);
+ 
+ 	rxhash = skb_get_hash(skb);
+--- a/include/net/ipv6.h
++++ b/include/net/ipv6.h
+@@ -668,6 +668,8 @@ static inline int ipv6_addr_diff(const s
+ 	return __ipv6_addr_diff(a1, a2, sizeof(struct in6_addr));
+ }
+ 
++void ipv6_proxy_select_ident(struct sk_buff *skb);
++
+ int ip6_dst_hoplimit(struct dst_entry *dst);
+ 
+ static inline int ip6_sk_dst_hoplimit(struct ipv6_pinfo *np, struct flowi6 *fl6,
+--- a/net/ipv6/output_core.c
++++ b/net/ipv6/output_core.c
+@@ -3,11 +3,45 @@
+  * not configured or static.  These functions are needed by GSO/GRO implementation.
+  */
+ #include <linux/export.h>
++#include <net/ip.h>
+ #include <net/ipv6.h>
+ #include <net/ip6_fib.h>
+ #include <net/addrconf.h>
+ #include <net/secure_seq.h>
+ 
++/* This function exists only for tap drivers that must support broken
++ * clients requesting UFO without specifying an IPv6 fragment ID.
++ *
++ * This is similar to ipv6_select_ident() but we use an independent hash
++ * seed to limit information leakage.
++ *
++ * The network header must be set before calling this.
++ */
++void ipv6_proxy_select_ident(struct sk_buff *skb)
++{
++	static u32 ip6_proxy_idents_hashrnd __read_mostly;
++	struct in6_addr buf[2];
++	struct in6_addr *addrs;
++	u32 hash, id;
++
++	addrs = skb_header_pointer(skb,
++				   skb_network_offset(skb) +
++				   offsetof(struct ipv6hdr, saddr),
++				   sizeof(buf), buf);
++	if (!addrs)
++		return;
++
++	net_get_random_once(&ip6_proxy_idents_hashrnd,
++			    sizeof(ip6_proxy_idents_hashrnd));
++
++	hash = __ipv6_addr_jhash(&addrs[1], ip6_proxy_idents_hashrnd);
++	hash = __ipv6_addr_jhash(&addrs[0], hash);
++
++	id = ip_idents_reserve(hash, 1);
++	skb_shinfo(skb)->ip6_frag_id = htonl(id);
++}
++EXPORT_SYMBOL_GPL(ipv6_proxy_select_ident);
++
+ int ip6_find_1stfragopt(struct sk_buff *skb, u8 **nexthdr)
+ {
+ 	u16 offset = sizeof(struct ipv6hdr);

Modified: dists/wheezy-backports/linux/debian/patches/bugfix/all/firmware_class-return-specific-errors-from-file-read.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/bugfix/all/firmware_class-return-specific-errors-from-file-read.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/firmware_class-return-specific-errors-from-file-read.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,6 +1,7 @@
 From: Ben Hutchings <ben at decadent.org.uk>
 Date: Sat, 14 Dec 2013 17:14:39 +0000
 Subject: firmware_class: Return specific errors from file read
+Forwarded: no
 
 Currently several failure cases are not distinguished and are
 incorrectly reported as -EINVAL or -ENOENT.

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/fuse-honour-max_read-and-max_write-in-direct_io-mode.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/fuse-honour-max_read-and-max_write-in-direct_io-mode.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/fuse-honour-max_read-and-max_write-in-direct_io-mode.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/fuse-honour-max_read-and-max_write-in-direct_io-mode.patch)
@@ -0,0 +1,123 @@
+From: Miklos Szeredi <mszeredi at suse.cz>
+Date: Wed, 24 Sep 2014 17:09:11 +0200
+Subject: fuse: honour max_read and max_write in direct_io mode
+Origin: https://git.kernel.org/linus/2c80929c4c4d54e568b07ab85877d5fd38f4b02f
+
+The third argument of fuse_get_user_pages() "nbytesp" refers to the number of
+bytes a caller asked to pack into fuse request. This value may be lesser
+than capacity of fuse request or iov_iter.  So fuse_get_user_pages() must
+ensure that *nbytesp won't grow.
+
+Now, when helper iov_iter_get_pages() performs all hard work of extracting
+pages from iov_iter, it can be done by passing properly calculated
+"maxsize" to the helper.
+
+The other caller of iov_iter_get_pages() (dio_refill_pages()) doesn't need
+this capability, so pass LONG_MAX as the maxsize argument here.
+
+Fixes: c9c37e2e6378 ("fuse: switch to iov_iter_get_pages()")
+Reported-by: Werner Baumann <werner.baumann at onlinehome.de>
+Tested-by: Maxim Patlasov <mpatlasov at parallels.com>
+Signed-off-by: Miklos Szeredi <mszeredi at suse.cz>
+Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
+---
+ fs/direct-io.c      |  2 +-
+ fs/fuse/file.c      |  1 +
+ include/linux/uio.h |  2 +-
+ mm/iov_iter.c       | 14 +++++++++-----
+ 4 files changed, 12 insertions(+), 7 deletions(-)
+
+diff --git a/fs/direct-io.c b/fs/direct-io.c
+index c311640..e181b6b 100644
+--- a/fs/direct-io.c
++++ b/fs/direct-io.c
+@@ -158,7 +158,7 @@ static inline int dio_refill_pages(struct dio *dio, struct dio_submit *sdio)
+ {
+ 	ssize_t ret;
+ 
+-	ret = iov_iter_get_pages(sdio->iter, dio->pages, DIO_PAGES,
++	ret = iov_iter_get_pages(sdio->iter, dio->pages, LONG_MAX, DIO_PAGES,
+ 				&sdio->from);
+ 
+ 	if (ret < 0 && sdio->blocks_available && (dio->rw & WRITE)) {
+diff --git a/fs/fuse/file.c b/fs/fuse/file.c
+index 912061a..caa8d95 100644
+--- a/fs/fuse/file.c
++++ b/fs/fuse/file.c
+@@ -1305,6 +1305,7 @@ static int fuse_get_user_pages(struct fuse_req *req, struct iov_iter *ii,
+ 		size_t start;
+ 		ssize_t ret = iov_iter_get_pages(ii,
+ 					&req->pages[req->num_pages],
++					*nbytesp - nbytes,
+ 					req->max_pages - req->num_pages,
+ 					&start);
+ 		if (ret < 0)
+diff --git a/include/linux/uio.h b/include/linux/uio.h
+index 48d64e6..290fbf0 100644
+--- a/include/linux/uio.h
++++ b/include/linux/uio.h
+@@ -84,7 +84,7 @@ unsigned long iov_iter_alignment(const struct iov_iter *i);
+ void iov_iter_init(struct iov_iter *i, int direction, const struct iovec *iov,
+ 			unsigned long nr_segs, size_t count);
+ ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages,
+-			unsigned maxpages, size_t *start);
++			size_t maxsize, unsigned maxpages, size_t *start);
+ ssize_t iov_iter_get_pages_alloc(struct iov_iter *i, struct page ***pages,
+ 			size_t maxsize, size_t *start);
+ int iov_iter_npages(const struct iov_iter *i, int maxpages);
+diff --git a/mm/iov_iter.c b/mm/iov_iter.c
+index ab88dc0..9a09f20 100644
+--- a/mm/iov_iter.c
++++ b/mm/iov_iter.c
+@@ -310,7 +310,7 @@ void iov_iter_init(struct iov_iter *i, int direction,
+ EXPORT_SYMBOL(iov_iter_init);
+ 
+ static ssize_t get_pages_iovec(struct iov_iter *i,
+-		   struct page **pages, unsigned maxpages,
++		   struct page **pages, size_t maxsize, unsigned maxpages,
+ 		   size_t *start)
+ {
+ 	size_t offset = i->iov_offset;
+@@ -323,6 +323,8 @@ static ssize_t get_pages_iovec(struct iov_iter *i,
+ 	len = iov->iov_len - offset;
+ 	if (len > i->count)
+ 		len = i->count;
++	if (len > maxsize)
++		len = maxsize;
+ 	addr = (unsigned long)iov->iov_base + offset;
+ 	len += *start = addr & (PAGE_SIZE - 1);
+ 	if (len > maxpages * PAGE_SIZE)
+@@ -588,13 +590,15 @@ static unsigned long alignment_bvec(const struct iov_iter *i)
+ }
+ 
+ static ssize_t get_pages_bvec(struct iov_iter *i,
+-		   struct page **pages, unsigned maxpages,
++		   struct page **pages, size_t maxsize, unsigned maxpages,
+ 		   size_t *start)
+ {
+ 	const struct bio_vec *bvec = i->bvec;
+ 	size_t len = bvec->bv_len - i->iov_offset;
+ 	if (len > i->count)
+ 		len = i->count;
++	if (len > maxsize)
++		len = maxsize;
+ 	/* can't be more than PAGE_SIZE */
+ 	*start = bvec->bv_offset + i->iov_offset;
+ 
+@@ -711,13 +715,13 @@ unsigned long iov_iter_alignment(const struct iov_iter *i)
+ EXPORT_SYMBOL(iov_iter_alignment);
+ 
+ ssize_t iov_iter_get_pages(struct iov_iter *i,
+-		   struct page **pages, unsigned maxpages,
++		   struct page **pages, size_t maxsize, unsigned maxpages,
+ 		   size_t *start)
+ {
+ 	if (i->type & ITER_BVEC)
+-		return get_pages_bvec(i, pages, maxpages, start);
++		return get_pages_bvec(i, pages, maxsize, maxpages, start);
+ 	else
+-		return get_pages_iovec(i, pages, maxpages, start);
++		return get_pages_iovec(i, pages, maxsize, maxpages, start);
+ }
+ EXPORT_SYMBOL(iov_iter_get_pages);
+ 

Modified: dists/wheezy-backports/linux/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -3,7 +3,7 @@
 Subject: kbuild: Use -nostdinc in compile tests
 Bug-Debian: https://bugs.debian.org/726861
 Bug-Debian: https://bugs.debian.org/717557
-Forwarded: no
+Forwarded: http://mid.gmane.org/1415235534.3398.35.camel@decadent.org.uk
 
 Debian's gcc 4.8 pre-includes <stdc-predef.h> by default, which in
 turn includes <bits/predefs.h>.  This fails when building a 64-bit

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/lockd-Try-to-reconnect-if-statd-has-moved.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/lockd-Try-to-reconnect-if-statd-has-moved.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/lockd-Try-to-reconnect-if-statd-has-moved.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/lockd-Try-to-reconnect-if-statd-has-moved.patch)
@@ -0,0 +1,34 @@
+From: Benjamin Coddington <bcodding at redhat.com>
+Date: Tue, 23 Sep 2014 12:26:20 -0400
+Subject: [2/2] lockd: Try to reconnect if statd has moved
+Origin: https://git.kernel.org/linus/173b3afceebe76fa2205b2c8808682d5b541fe3c
+Bug-Debian: https://bugs.debian.org/767219
+
+If rpc.statd is restarted, upcalls to monitor hosts can fail with
+ECONNREFUSED.  In that case force a lookup of statd's new port and retry the
+upcall.
+
+Signed-off-by: Benjamin Coddington <bcodding at redhat.com>
+Cc: stable at vger.kernel.org
+Signed-off-by: Trond Myklebust <trond.myklebust at primarydata.com>
+---
+ fs/lockd/mon.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c
+index daa8e75..9106f42 100644
+--- a/fs/lockd/mon.c
++++ b/fs/lockd/mon.c
+@@ -159,6 +159,12 @@ static int nsm_mon_unmon(struct nsm_handle *nsm, u32 proc, struct nsm_res *res,
+ 
+ 	msg.rpc_proc = &clnt->cl_procinfo[proc];
+ 	status = rpc_call_sync(clnt, &msg, RPC_TASK_SOFTCONN);
++	if (status == -ECONNREFUSED) {
++		dprintk("lockd:	NSM upcall RPC failed, status=%d, forcing rebind\n",
++				status);
++		rpc_force_rebind(clnt);
++		status = rpc_call_sync(clnt, &msg, RPC_TASK_SOFTCONN);
++	}
+ 	if (status < 0)
+ 		dprintk("lockd: NSM upcall RPC failed, status=%d\n",
+ 				status);

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/mnt-Prevent-pivot_root-from-creating-a-loop-in-the-m.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/mnt-Prevent-pivot_root-from-creating-a-loop-in-the-m.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/mnt-Prevent-pivot_root-from-creating-a-loop-in-the-m.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/mnt-Prevent-pivot_root-from-creating-a-loop-in-the-m.patch)
@@ -0,0 +1,42 @@
+From: "Eric W. Biederman" <ebiederm at xmission.com>
+Date: Wed, 8 Oct 2014 10:42:27 -0700
+Subject: mnt: Prevent pivot_root from creating a loop in the mount tree
+Origin: https://git.kernel.org/linus/0d0826019e529f21c84687521d03f60cd241ca7d
+
+Andy Lutomirski recently demonstrated that when chroot is used to set
+the root path below the path for the new ``root'' passed to pivot_root
+the pivot_root system call succeeds and leaks mounts.
+
+In examining the code I see that starting with a new root that is
+below the current root in the mount tree will result in a loop in the
+mount tree after the mounts are detached and then reattached to one
+another.  Resulting in all kinds of ugliness including a leak of that
+mounts involved in the leak of the mount loop.
+
+Prevent this problem by ensuring that the new mount is reachable from
+the current root of the mount tree.
+
+[Added stable cc.  Fixes CVE-2014-7970.  --Andy]
+
+Cc: stable at vger.kernel.org
+Reported-by: Andy Lutomirski <luto at amacapital.net>
+Reviewed-by: Andy Lutomirski <luto at amacapital.net>
+Link: http://lkml.kernel.org/r/87bnpmihks.fsf@x220.int.ebiederm.org
+Signed-off-by: "Eric W. Biederman" <ebiederm at xmission.com>
+Signed-off-by: Andy Lutomirski <luto at amacapital.net>
+---
+ fs/namespace.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -2842,6 +2842,9 @@ SYSCALL_DEFINE2(pivot_root, const char _
+ 	/* make sure we can reach put_old from new_root */
+ 	if (!is_path_reachable(old_mnt, old.dentry, &new))
+ 		goto out4;
++	/* make certain new is below the root */
++	if (!is_path_reachable(new_mnt, new.dentry, &root))
++		goto out4;
+ 	root_mp->m_count++; /* pin it so it won't go away */
+ 	lock_mount_hash();
+ 	detach_mnt(new_mnt, &parent_path);

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-m25p80-get-rid-of-spi_get_device_id.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-m25p80-get-rid-of-spi_get_device_id.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-m25p80-get-rid-of-spi_get_device_id.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-m25p80-get-rid-of-spi_get_device_id.patch)
@@ -0,0 +1,46 @@
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5 at gmail.com>
+Date: Mon, 29 Sep 2014 11:47:53 +0200
+Subject: [2/4] mtd: m25p80: get rid of spi_get_device_id
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+Origin: http://git.infradead.org/l2-mtd.git/commit/90e55b3812a1245bb674afcc4410ddba7db402f6
+
+This simplifies the way we use spi_nor framework and will allow us to
+drop spi_nor_match_id.
+
+Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
+Signed-off-by: Brian Norris <computersforpeace at gmail.com>
+---
+ drivers/mtd/devices/m25p80.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
+index dcda628..822209d 100644
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -197,6 +197,7 @@ static int m25p_probe(struct spi_device *spi)
+ 	struct m25p *flash;
+ 	struct spi_nor *nor;
+ 	enum read_mode mode = SPI_NOR_NORMAL;
++	char *flash_name = NULL;
+ 	int ret;
+ 
+ 	data = dev_get_platdata(&spi->dev);
+@@ -236,12 +237,11 @@ static int m25p_probe(struct spi_device *spi)
+ 	 * If that's the case, respect "type" and ignore a "name".
+ 	 */
+ 	if (data && data->type)
+-		id = spi_nor_match_id(data->type);
+-
+-	/* If we didn't get name from platform, simply use "modalias". */
+-	if (!id)
+-		id = spi_get_device_id(spi);
++		flash_name = data->type;
++	else
++		flash_name = spi->modalias;
+ 
++	id = spi_nor_match_id(flash_name);
+ 	ret = spi_nor_scan(nor, id, mode);
+ 	if (ret)
+ 		return ret;

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-m25p80-spi-nor-Fix-module-aliases-for-m25p80.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-m25p80-spi-nor-Fix-module-aliases-for-m25p80.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-m25p80-spi-nor-Fix-module-aliases-for-m25p80.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-m25p80-spi-nor-Fix-module-aliases-for-m25p80.patch)
@@ -0,0 +1,125 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Tue, 30 Sep 2014 03:14:55 +0100
+Subject: [4/4] mtd: m25p80,spi-nor: Fix module aliases for m25p80
+Origin: http://git.infradead.org/l2-mtd.git/commit/a5b7616c55e188fe3d6ef686bef402d4703ecb62
+
+m25p80's device ID table is now spi_nor_ids, defined in spi-nor.  The
+MODULE_DEVICE_TABLE() macro doesn't work with extern definitions, but
+its use was also removed at the same time.  Now if m25p80 is built as
+a module it doesn't get the necessary aliases to be loaded
+automatically.
+
+A clean solution to this will involve defining the list of device
+IDs in spi-nor.h and removing struct spi_device_id from the spi-nor
+API, but this is quite a large change.
+
+As a quick fix suitable for stable, copy the device IDs back into
+m25p80.
+
+Fixes: 03e296f613af ("mtd: m25p80: use the SPI nor framework")
+Cc: <stable at vger.kernel.org> # 3.16.x: 32f1b7c8352f: mtd: move support for struct flash_platform_data into m25p80
+Cc: <stable at vger.kernel.org> # 3.16.x: 90e55b3812a1: mtd: m25p80: get rid of spi_get_device_id
+Cc: <stable at vger.kernel.org> # 3.16.x: 70f3ce0510af: mtd: spi-nor: make spi_nor_scan() take a chip type name, not spi_device_id
+Cc: <stable at vger.kernel.org> # 3.16.x
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+Signed-off-by: Brian Norris <computersforpeace at gmail.com>
+---
+ drivers/mtd/devices/m25p80.c  | 52 ++++++++++++++++++++++++++++++++++++++++++-
+ drivers/mtd/spi-nor/spi-nor.c |  3 +--
+ include/linux/mtd/spi-nor.h   |  1 -
+ 3 files changed, 52 insertions(+), 4 deletions(-)
+
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -261,12 +261,62 @@ static int m25p_remove(struct spi_device
+ }
+ 
+ 
++/*
++ * XXX This needs to be kept in sync with spi_nor_ids.  We can't share
++ * it with spi-nor, because if this is built as a module then modpost
++ * won't be able to read it and add appropriate aliases.
++ */
++static const struct spi_device_id m25p_ids[] = {
++	{"at25fs010"},	{"at25fs040"},	{"at25df041a"},	{"at25df321a"},
++	{"at25df641"},	{"at26f004"},	{"at26df081a"},	{"at26df161a"},
++	{"at26df321"},	{"at45db081d"},
++	{"en25f32"},	{"en25p32"},	{"en25q32b"},	{"en25p64"},
++	{"en25q64"},	{"en25qh128"},	{"en25qh256"},
++	{"f25l32pa"},
++	{"mr25h256"},	{"mr25h10"},
++	{"gd25q32"},	{"gd25q64"},
++	{"160s33b"},	{"320s33b"},	{"640s33b"},
++	{"mx25l2005a"},	{"mx25l4005a"},	{"mx25l8005"},	{"mx25l1606e"},
++	{"mx25l3205d"},	{"mx25l3255e"},	{"mx25l6405d"},	{"mx25l12805d"},
++	{"mx25l12855e"},{"mx25l25635e"},{"mx25l25655e"},{"mx66l51235l"},
++	{"mx66l1g55g"},
++	{"n25q064"},	{"n25q128a11"},	{"n25q128a13"},	{"n25q256a"},
++	{"n25q512a"},	{"n25q512ax3"},	{"n25q00"},
++	{"pm25lv512"},	{"pm25lv010"},	{"pm25lq032"},
++	{"s25sl032p"},	{"s25sl064p"},	{"s25fl256s0"},	{"s25fl256s1"},
++	{"s25fl512s"},	{"s70fl01gs"},	{"s25sl12800"},	{"s25sl12801"},
++	{"s25fl129p0"},	{"s25fl129p1"},	{"s25sl004a"},	{"s25sl008a"},
++	{"s25sl016a"},	{"s25sl032a"},	{"s25sl064a"},	{"s25fl008k"},
++	{"s25fl016k"},	{"s25fl064k"},
++	{"sst25vf040b"},{"sst25vf080b"},{"sst25vf016b"},{"sst25vf032b"},
++	{"sst25vf064c"},{"sst25wf512"},	{"sst25wf010"},	{"sst25wf020"},
++	{"sst25wf040"},
++	{"m25p05"},	{"m25p10"},	{"m25p20"},	{"m25p40"},
++	{"m25p80"},	{"m25p16"},	{"m25p32"},	{"m25p64"},
++	{"m25p128"},	{"n25q032"},
++	{"m25p05-nonjedec"},	{"m25p10-nonjedec"},	{"m25p20-nonjedec"},
++	{"m25p40-nonjedec"},	{"m25p80-nonjedec"},	{"m25p16-nonjedec"},
++	{"m25p32-nonjedec"},	{"m25p64-nonjedec"},	{"m25p128-nonjedec"},
++	{"m45pe10"},	{"m45pe80"},	{"m45pe16"},
++	{"m25pe20"},	{"m25pe80"},	{"m25pe16"},
++	{"m25px16"},	{"m25px32"},	{"m25px32-s0"},	{"m25px32-s1"},
++	{"m25px64"},
++	{"w25x10"},	{"w25x20"},	{"w25x40"},	{"w25x80"},
++	{"w25x16"},	{"w25x32"},	{"w25q32"},	{"w25q32dw"},
++	{"w25x64"},	{"w25q64"},	{"w25q128"},	{"w25q80"},
++	{"w25q80bl"},	{"w25q128"},	{"w25q256"},	{"cat25c11"},
++	{"cat25c03"},	{"cat25c09"},	{"cat25c17"},	{"cat25128"},
++	{ },
++};
++MODULE_DEVICE_TABLE(spi, m25p_ids);
++
++
+ static struct spi_driver m25p80_driver = {
+ 	.driver = {
+ 		.name	= "m25p80",
+ 		.owner	= THIS_MODULE,
+ 	},
+-	.id_table	= spi_nor_ids,
++	.id_table	= m25p_ids,
+ 	.probe	= m25p_probe,
+ 	.remove	= m25p_remove,
+ 
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -429,7 +429,7 @@ struct flash_info {
+  * more nor chips.  This current list focusses on newer chips, which
+  * have been converging on command sets which including JEDEC ID.
+  */
+-const struct spi_device_id spi_nor_ids[] = {
++static const struct spi_device_id spi_nor_ids[] = {
+ 	/* Atmel -- some are (confusingly) marketed as "DataFlash" */
+ 	{ "at25fs010",  INFO(0x1f6601, 0, 32 * 1024,   4, SECT_4K) },
+ 	{ "at25fs040",  INFO(0x1f6604, 0, 64 * 1024,   8, SECT_4K) },
+@@ -590,7 +590,6 @@ const struct spi_device_id spi_nor_ids[]
+ 	{ "cat25128", CAT25_INFO(2048, 8, 64, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) },
+ 	{ },
+ };
+-EXPORT_SYMBOL_GPL(spi_nor_ids);
+ 
+ static const struct spi_device_id *spi_nor_read_id(struct spi_nor *nor)
+ {
+--- a/include/linux/mtd/spi-nor.h
++++ b/include/linux/mtd/spi-nor.h
+@@ -195,6 +195,5 @@ struct spi_nor {
+  * Return: 0 for success, others for failure.
+  */
+ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode);
+-extern const struct spi_device_id spi_nor_ids[];
+ 
+ #endif

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-move-support-for-struct-flash_platform_data-into.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-move-support-for-struct-flash_platform_data-into.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-move-support-for-struct-flash_platform_data-into.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-move-support-for-struct-flash_platform_data-into.patch)
@@ -0,0 +1,119 @@
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5 at gmail.com>
+Date: Sun, 28 Sep 2014 22:36:54 +0200
+Subject: [1/4] mtd: move support for struct flash_platform_data into m25p80
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+Origin: http://git.infradead.org/l2-mtd.git/commit/32f1b7c8352fd33d41bcec3cfb054ccdcfd40a42
+
+This "type" seems to be an extra hint for m25p80 about the flash. Some
+archs register flash_platform_data with "name" set to "m25p80" and then
+with a real flash name set in "type". It seems to be a trick specific
+to the m25p80 so let's move it out of spi-nor.
+Btw switch to the spi_nor_match_id instead of iterating spi_nor_ids.
+
+Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
+Signed-off-by: Brian Norris <computersforpeace at gmail.com>
+---
+ drivers/mtd/devices/m25p80.c  | 22 ++++++++++++++++++++--
+ drivers/mtd/spi-nor/spi-nor.c | 28 +---------------------------
+ 2 files changed, 21 insertions(+), 29 deletions(-)
+
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -193,11 +193,14 @@ static int m25p_probe(struct spi_device
+ {
+ 	struct mtd_part_parser_data	ppdata;
+ 	struct flash_platform_data	*data;
++	const struct spi_device_id *id = NULL;
+ 	struct m25p *flash;
+ 	struct spi_nor *nor;
+ 	enum read_mode mode = SPI_NOR_NORMAL;
+ 	int ret;
+ 
++	data = dev_get_platdata(&spi->dev);
++
+ 	flash = devm_kzalloc(&spi->dev, sizeof(*flash), GFP_KERNEL);
+ 	if (!flash)
+ 		return -ENOMEM;
+@@ -223,11 +226,26 @@ static int m25p_probe(struct spi_device
+ 		mode = SPI_NOR_QUAD;
+ 	else if (spi->mode & SPI_RX_DUAL)
+ 		mode = SPI_NOR_DUAL;
+-	ret = spi_nor_scan(nor, spi_get_device_id(spi), mode);
++
++	if (data && data->name)
++		flash->mtd.name = data->name;
++
++	/* For some (historical?) reason many platforms provide two different
++	 * names in flash_platform_data: "name" and "type". Quite often name is
++	 * set to "m25p80" and then "type" provides a real chip name.
++	 * If that's the case, respect "type" and ignore a "name".
++	 */
++	if (data && data->type)
++		id = spi_nor_match_id(data->type);
++
++	/* If we didn't get name from platform, simply use "modalias". */
++	if (!id)
++		id = spi_get_device_id(spi);
++
++	ret = spi_nor_scan(nor, id, mode);
+ 	if (ret)
+ 		return ret;
+ 
+-	data = dev_get_platdata(&spi->dev);
+ 	ppdata.of_node = spi->dev.of_node;
+ 
+ 	return mtd_device_parse_register(&flash->mtd, NULL, &ppdata,
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -871,7 +871,6 @@ int spi_nor_scan(struct spi_nor *nor, co
+ 			enum read_mode mode)
+ {
+ 	struct flash_info		*info;
+-	struct flash_platform_data	*data;
+ 	struct device *dev = nor->dev;
+ 	struct mtd_info *mtd = nor->mtd;
+ 	struct device_node *np = dev->of_node;
+@@ -882,28 +881,6 @@ int spi_nor_scan(struct spi_nor *nor, co
+ 	if (ret)
+ 		return ret;
+ 
+-	/* Platform data helps sort out which chip type we have, as
+-	 * well as how this board partitions it.  If we don't have
+-	 * a chip ID, try the JEDEC id commands; they'll work for most
+-	 * newer chips, even if we don't recognize the particular chip.
+-	 */
+-	data = dev_get_platdata(dev);
+-	if (data && data->type) {
+-		const struct spi_device_id *plat_id;
+-
+-		for (i = 0; i < ARRAY_SIZE(spi_nor_ids) - 1; i++) {
+-			plat_id = &spi_nor_ids[i];
+-			if (strcmp(data->type, plat_id->name))
+-				continue;
+-			break;
+-		}
+-
+-		if (i < ARRAY_SIZE(spi_nor_ids) - 1)
+-			id = plat_id;
+-		else
+-			dev_warn(dev, "unrecognized id %s\n", data->type);
+-	}
+-
+ 	info = (void *)id->driver_data;
+ 
+ 	if (info->jedec_id) {
+@@ -941,11 +918,8 @@ int spi_nor_scan(struct spi_nor *nor, co
+ 		write_sr(nor, 0);
+ 	}
+ 
+-	if (data && data->name)
+-		mtd->name = data->name;
+-	else
++	if (!mtd->name)
+ 		mtd->name = dev_name(dev);
+-
+ 	mtd->type = MTD_NORFLASH;
+ 	mtd->writesize = 1;
+ 	mtd->flags = MTD_CAP_NORFLASH;

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-spi-nor-make-spi_nor_scan-take-a-chip-type-name-.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-spi-nor-make-spi_nor_scan-take-a-chip-type-name-.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/mtd-spi-nor-make-spi_nor_scan-take-a-chip-type-name-.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/mtd-spi-nor-make-spi_nor_scan-take-a-chip-type-name-.patch)
@@ -0,0 +1,162 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 29 Sep 2014 11:47:54 +0200
+Subject: [3/4] mtd: spi-nor: make spi_nor_scan() take a chip type name, not
+ spi_device_id
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+Origin: http://git.infradead.org/l2-mtd.git/commit/70f3ce0510afdad7cbaf27ab7ab961377205c782
+
+Drivers currently call spi_nor_match_id() and then spi_nor_scan().
+This adds a dependency on struct spi_device_id which we want to
+avoid.  Make spi_nor_scan() do it for them.
+
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
+Signed-off-by: Brian Norris <computersforpeace at gmail.com>
+---
+ drivers/mtd/devices/m25p80.c      |  4 +---
+ drivers/mtd/spi-nor/fsl-quadspi.c |  7 +------
+ drivers/mtd/spi-nor/spi-nor.c     | 13 +++++++++----
+ include/linux/mtd/spi-nor.h       | 20 +++-----------------
+ 4 files changed, 14 insertions(+), 30 deletions(-)
+
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -193,7 +193,6 @@ static int m25p_probe(struct spi_device
+ {
+ 	struct mtd_part_parser_data	ppdata;
+ 	struct flash_platform_data	*data;
+-	const struct spi_device_id *id = NULL;
+ 	struct m25p *flash;
+ 	struct spi_nor *nor;
+ 	enum read_mode mode = SPI_NOR_NORMAL;
+@@ -241,8 +240,7 @@ static int m25p_probe(struct spi_device
+ 	else
+ 		flash_name = spi->modalias;
+ 
+-	id = spi_nor_match_id(flash_name);
+-	ret = spi_nor_scan(nor, id, mode);
++	ret = spi_nor_scan(nor, flash_name, mode);
+ 	if (ret)
+ 		return ret;
+ 
+--- a/drivers/mtd/spi-nor/fsl-quadspi.c
++++ b/drivers/mtd/spi-nor/fsl-quadspi.c
+@@ -881,7 +881,6 @@ static int fsl_qspi_probe(struct platfor
+ 
+ 	/* iterate the subnodes. */
+ 	for_each_available_child_of_node(dev->of_node, np) {
+-		const struct spi_device_id *id;
+ 		char modalias[40];
+ 
+ 		/* skip the holes */
+@@ -909,10 +908,6 @@ static int fsl_qspi_probe(struct platfor
+ 		if (of_modalias_node(np, modalias, sizeof(modalias)) < 0)
+ 			goto map_failed;
+ 
+-		id = spi_nor_match_id(modalias);
+-		if (!id)
+-			goto map_failed;
+-
+ 		ret = of_property_read_u32(np, "spi-max-frequency",
+ 				&q->clk_rate);
+ 		if (ret < 0)
+@@ -921,7 +916,7 @@ static int fsl_qspi_probe(struct platfor
+ 		/* set the chip address for READID */
+ 		fsl_qspi_set_base_addr(q, nor);
+ 
+-		ret = spi_nor_scan(nor, id, SPI_NOR_QUAD);
++		ret = spi_nor_scan(nor, modalias, SPI_NOR_QUAD);
+ 		if (ret)
+ 			goto map_failed;
+ 
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -28,6 +28,8 @@
+ 
+ #define JEDEC_MFR(_jedec_id)	((_jedec_id) >> 16)
+ 
++static const struct spi_device_id *spi_nor_match_id(const char *name);
++
+ /*
+  * Read the status register, returning its value in the location
+  * Return the status register value.
+@@ -867,9 +869,9 @@ static int spi_nor_check(struct spi_nor
+ 	return 0;
+ }
+ 
+-int spi_nor_scan(struct spi_nor *nor, const struct spi_device_id *id,
+-			enum read_mode mode)
++int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode)
+ {
++	const struct spi_device_id	*id = NULL;
+ 	struct flash_info		*info;
+ 	struct device *dev = nor->dev;
+ 	struct mtd_info *mtd = nor->mtd;
+@@ -881,6 +883,10 @@ int spi_nor_scan(struct spi_nor *nor, co
+ 	if (ret)
+ 		return ret;
+ 
++	id = spi_nor_match_id(name);
++	if (!id)
++		return -ENOENT;
++
+ 	info = (void *)id->driver_data;
+ 
+ 	if (info->jedec_id) {
+@@ -1062,7 +1068,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+ }
+ EXPORT_SYMBOL_GPL(spi_nor_scan);
+ 
+-const struct spi_device_id *spi_nor_match_id(char *name)
++static const struct spi_device_id *spi_nor_match_id(const char *name)
+ {
+ 	const struct spi_device_id *id = spi_nor_ids;
+ 
+@@ -1073,7 +1079,6 @@ const struct spi_device_id *spi_nor_matc
+ 	}
+ 	return NULL;
+ }
+-EXPORT_SYMBOL_GPL(spi_nor_match_id);
+ 
+ MODULE_LICENSE("GPL");
+ MODULE_AUTHOR("Huang Shijie <shijie8 at gmail.com>");
+--- a/include/linux/mtd/spi-nor.h
++++ b/include/linux/mtd/spi-nor.h
+@@ -183,32 +183,18 @@ struct spi_nor {
+ /**
+  * spi_nor_scan() - scan the SPI NOR
+  * @nor:	the spi_nor structure
+- * @id:		the spi_device_id provided by the driver
++ * @name:	the chip type name
+  * @mode:	the read mode supported by the driver
+  *
+  * The drivers can use this fuction to scan the SPI NOR.
+  * In the scanning, it will try to get all the necessary information to
+  * fill the mtd_info{} and the spi_nor{}.
+  *
+- * The board may assigns a spi_device_id with @id which be used to compared with
+- * the spi_device_id detected by the scanning.
++ * The chip type name can be provided through the @name parameter.
+  *
+  * Return: 0 for success, others for failure.
+  */
+-int spi_nor_scan(struct spi_nor *nor, const struct spi_device_id *id,
+-			enum read_mode mode);
++int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode);
+ extern const struct spi_device_id spi_nor_ids[];
+ 
+-/**
+- * spi_nor_match_id() - find the spi_device_id by the name
+- * @name:	the name of the spi_device_id
+- *
+- * The drivers use this function to find the spi_device_id
+- * specified by the @name.
+- *
+- * Return: returns the right spi_device_id pointer on success,
+- *         and returns NULL on failure.
+- */
+-const struct spi_device_id *spi_nor_match_id(char *name);
+-
+ #endif

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/net-mv643xx-disable-tso-by-default.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/net-mv643xx-disable-tso-by-default.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/net-mv643xx-disable-tso-by-default.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/net-mv643xx-disable-tso-by-default.patch)
@@ -0,0 +1,42 @@
+Subject: [1/1] net: mv643xx_eth: Make TSO disabled by default
+From: Ezequiel Garcia <ezequiel.garcia at free-electrons.com>
+Date: Sat,  1 Nov 2014 12:30:20 -0300
+Origin: http://patchwork.ozlabs.org/patch/405792/
+
+Data corruption has been observed to be produced by TSO. For instance,
+accessing files on a NFS-server with TSO enabled results in different data
+transferred each time.
+
+This has been observed only on Kirkwood platforms, i.e. with the mv643xx_eth
+driver. Same tests on platforms using the mvneta ethernet driver have
+passed without errors.
+
+Make TSO disabled by default for now, until we can found a proper fix
+for the regression.
+
+Fixes: 3ae8f4e0b98 ('net: mv643xx_eth: Implement software TSO')
+Reported-by: Slawomir Gajzner <slawomir.gajzner at gmail.com>
+Reported-by: Julien D'Ascenzio <jdascenzio at yahoo.fr>
+Signed-off-by: Ezequiel Garcia <ezequiel.garcia at free-electrons.com>
+---
+ drivers/net/ethernet/marvell/mv643xx_eth.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
+index b151a94..8b72780 100644
+--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
++++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
+@@ -3110,11 +3110,11 @@ static int mv643xx_eth_probe(struct platform_device *pdev)
+ 	dev->watchdog_timeo = 2 * HZ;
+ 	dev->base_addr = 0;
+ 
+-	dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO;
++	dev->features = NETIF_F_SG | NETIF_F_IP_CSUM;
+ 	dev->vlan_features = dev->features;
+ 
+ 	dev->features |= NETIF_F_RXCSUM;
+-	dev->hw_features = dev->features;
++	dev->hw_features = dev->features  | NETIF_F_TSO;
+ 
+ 	dev->priv_flags |= IFF_UNICAST_FLT;
+ 	dev->gso_max_segs = MV643XX_MAX_TSO_SEGS;

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/net-sctp-fix-panic-on-duplicate-ASCONF-chunks.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/net-sctp-fix-panic-on-duplicate-ASCONF-chunks.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/net-sctp-fix-panic-on-duplicate-ASCONF-chunks.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/net-sctp-fix-panic-on-duplicate-ASCONF-chunks.patch)
@@ -0,0 +1,87 @@
+From: Daniel Borkmann <dborkman at redhat.com>
+Date: Thu, 9 Oct 2014 22:55:32 +0200
+Subject: net: sctp: fix panic on duplicate ASCONF chunks
+Origin: https://git.kernel.org/linus/b69040d8e39f20d5215a03502a8e8b4c6ab78395
+
+When receiving a e.g. semi-good formed connection scan in the
+form of ...
+
+  -------------- INIT[ASCONF; ASCONF_ACK] ------------->
+  <----------- INIT-ACK[ASCONF; ASCONF_ACK] ------------
+  -------------------- COOKIE-ECHO -------------------->
+  <-------------------- COOKIE-ACK ---------------------
+  ---------------- ASCONF_a; ASCONF_b ----------------->
+
+... where ASCONF_a equals ASCONF_b chunk (at least both serials
+need to be equal), we panic an SCTP server!
+
+The problem is that good-formed ASCONF chunks that we reply with
+ASCONF_ACK chunks are cached per serial. Thus, when we receive a
+same ASCONF chunk twice (e.g. through a lost ASCONF_ACK), we do
+not need to process them again on the server side (that was the
+idea, also proposed in the RFC). Instead, we know it was cached
+and we just resend the cached chunk instead. So far, so good.
+
+Where things get nasty is in SCTP's side effect interpreter, that
+is, sctp_cmd_interpreter():
+
+While incoming ASCONF_a (chunk = event_arg) is being marked
+!end_of_packet and !singleton, and we have an association context,
+we do not flush the outqueue the first time after processing the
+ASCONF_ACK singleton chunk via SCTP_CMD_REPLY. Instead, we keep it
+queued up, although we set local_cork to 1. Commit 2e3216cd54b1
+changed the precedence, so that as long as we get bundled, incoming
+chunks we try possible bundling on outgoing queue as well. Before
+this commit, we would just flush the output queue.
+
+Now, while ASCONF_a's ASCONF_ACK sits in the corked outq, we
+continue to process the same ASCONF_b chunk from the packet. As
+we have cached the previous ASCONF_ACK, we find it, grab it and
+do another SCTP_CMD_REPLY command on it. So, effectively, we rip
+the chunk->list pointers and requeue the same ASCONF_ACK chunk
+another time. Since we process ASCONF_b, it's correctly marked
+with end_of_packet and we enforce an uncork, and thus flush, thus
+crashing the kernel.
+
+Fix it by testing if the ASCONF_ACK is currently pending and if
+that is the case, do not requeue it. When flushing the output
+queue we may relink the chunk for preparing an outgoing packet,
+but eventually unlink it when it's copied into the skb right
+before transmission.
+
+Joint work with Vlad Yasevich.
+
+Fixes: 2e3216cd54b1 ("sctp: Follow security requirement of responding with 1 packet")
+Signed-off-by: Daniel Borkmann <dborkman at redhat.com>
+Signed-off-by: Vlad Yasevich <vyasevich at gmail.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ include/net/sctp/sctp.h | 5 +++++
+ net/sctp/associola.c    | 2 ++
+ 2 files changed, 7 insertions(+)
+
+--- a/include/net/sctp/sctp.h
++++ b/include/net/sctp/sctp.h
+@@ -433,6 +433,11 @@ static inline void sctp_assoc_pending_pm
+ 	asoc->pmtu_pending = 0;
+ }
+ 
++static inline bool sctp_chunk_pending(const struct sctp_chunk *chunk)
++{
++	return !list_empty(&chunk->list);
++}
++
+ /* Walk through a list of TLV parameters.  Don't trust the
+  * individual parameter lengths and instead depend on
+  * the chunk length to indicate when to stop.  Make sure
+--- a/net/sctp/associola.c
++++ b/net/sctp/associola.c
+@@ -1670,6 +1670,8 @@ struct sctp_chunk *sctp_assoc_lookup_asc
+ 	 * ack chunk whose serial number matches that of the request.
+ 	 */
+ 	list_for_each_entry(ack, &asoc->asconf_ack_list, transmitted_list) {
++		if (sctp_chunk_pending(ack))
++			continue;
+ 		if (ack->subh.addip_hdr->serial == serial) {
+ 			sctp_chunk_hold(ack);
+ 			return ack;

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/net-sctp-fix-remote-memory-pressure-from-excessive-q.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/net-sctp-fix-remote-memory-pressure-from-excessive-q.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/net-sctp-fix-remote-memory-pressure-from-excessive-q.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/net-sctp-fix-remote-memory-pressure-from-excessive-q.patch)
@@ -0,0 +1,149 @@
+From: Daniel Borkmann <dborkman at redhat.com>
+Date: Thu, 9 Oct 2014 22:55:33 +0200
+Subject: net: sctp: fix remote memory pressure from excessive queueing
+Origin: https://git.kernel.org/linus/26b87c7881006311828bb0ab271a551a62dcceb4
+
+This scenario is not limited to ASCONF, just taken as one
+example triggering the issue. When receiving ASCONF probes
+in the form of ...
+
+  -------------- INIT[ASCONF; ASCONF_ACK] ------------->
+  <----------- INIT-ACK[ASCONF; ASCONF_ACK] ------------
+  -------------------- COOKIE-ECHO -------------------->
+  <-------------------- COOKIE-ACK ---------------------
+  ---- ASCONF_a; [ASCONF_b; ...; ASCONF_n;] JUNK ------>
+  [...]
+  ---- ASCONF_m; [ASCONF_o; ...; ASCONF_z;] JUNK ------>
+
+... where ASCONF_a, ASCONF_b, ..., ASCONF_z are good-formed
+ASCONFs and have increasing serial numbers, we process such
+ASCONF chunk(s) marked with !end_of_packet and !singleton,
+since we have not yet reached the SCTP packet end. SCTP does
+only do verification on a chunk by chunk basis, as an SCTP
+packet is nothing more than just a container of a stream of
+chunks which it eats up one by one.
+
+We could run into the case that we receive a packet with a
+malformed tail, above marked as trailing JUNK. All previous
+chunks are here goodformed, so the stack will eat up all
+previous chunks up to this point. In case JUNK does not fit
+into a chunk header and there are no more other chunks in
+the input queue, or in case JUNK contains a garbage chunk
+header, but the encoded chunk length would exceed the skb
+tail, or we came here from an entirely different scenario
+and the chunk has pdiscard=1 mark (without having had a flush
+point), it will happen, that we will excessively queue up
+the association's output queue (a correct final chunk may
+then turn it into a response flood when flushing the
+queue ;)): I ran a simple script with incremental ASCONF
+serial numbers and could see the server side consuming
+excessive amount of RAM [before/after: up to 2GB and more].
+
+The issue at heart is that the chunk train basically ends
+with !end_of_packet and !singleton markers and since commit
+2e3216cd54b1 ("sctp: Follow security requirement of responding
+with 1 packet") therefore preventing an output queue flush
+point in sctp_do_sm() -> sctp_cmd_interpreter() on the input
+chunk (chunk = event_arg) even though local_cork is set,
+but its precedence has changed since then. In the normal
+case, the last chunk with end_of_packet=1 would trigger the
+queue flush to accommodate possible outgoing bundling.
+
+In the input queue, sctp_inq_pop() seems to do the right thing
+in terms of discarding invalid chunks. So, above JUNK will
+not enter the state machine and instead be released and exit
+the sctp_assoc_bh_rcv() chunk processing loop. It's simply
+the flush point being missing at loop exit. Adding a try-flush
+approach on the output queue might not work as the underlying
+infrastructure might be long gone at this point due to the
+side-effect interpreter run.
+
+One possibility, albeit a bit of a kludge, would be to defer
+invalid chunk freeing into the state machine in order to
+possibly trigger packet discards and thus indirectly a queue
+flush on error. It would surely be better to discard chunks
+as in the current, perhaps better controlled environment, but
+going back and forth, it's simply architecturally not possible.
+I tried various trailing JUNK attack cases and it seems to
+look good now.
+
+Joint work with Vlad Yasevich.
+
+Fixes: 2e3216cd54b1 ("sctp: Follow security requirement of responding with 1 packet")
+Signed-off-by: Daniel Borkmann <dborkman at redhat.com>
+Signed-off-by: Vlad Yasevich <vyasevich at gmail.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ net/sctp/inqueue.c      | 33 +++++++--------------------------
+ net/sctp/sm_statefuns.c |  3 +++
+ 2 files changed, 10 insertions(+), 26 deletions(-)
+
+diff --git a/net/sctp/inqueue.c b/net/sctp/inqueue.c
+index 4de12af..7e8a16c 100644
+--- a/net/sctp/inqueue.c
++++ b/net/sctp/inqueue.c
+@@ -140,18 +140,9 @@ struct sctp_chunk *sctp_inq_pop(struct sctp_inq *queue)
+ 		} else {
+ 			/* Nothing to do. Next chunk in the packet, please. */
+ 			ch = (sctp_chunkhdr_t *) chunk->chunk_end;
+-
+ 			/* Force chunk->skb->data to chunk->chunk_end.  */
+-			skb_pull(chunk->skb,
+-				 chunk->chunk_end - chunk->skb->data);
+-
+-			/* Verify that we have at least chunk headers
+-			 * worth of buffer left.
+-			 */
+-			if (skb_headlen(chunk->skb) < sizeof(sctp_chunkhdr_t)) {
+-				sctp_chunk_free(chunk);
+-				chunk = queue->in_progress = NULL;
+-			}
++			skb_pull(chunk->skb, chunk->chunk_end - chunk->skb->data);
++			/* We are guaranteed to pull a SCTP header. */
+ 		}
+ 	}
+ 
+@@ -187,24 +178,14 @@ struct sctp_chunk *sctp_inq_pop(struct sctp_inq *queue)
+ 	skb_pull(chunk->skb, sizeof(sctp_chunkhdr_t));
+ 	chunk->subh.v = NULL; /* Subheader is no longer valid.  */
+ 
+-	if (chunk->chunk_end < skb_tail_pointer(chunk->skb)) {
++	if (chunk->chunk_end + sizeof(sctp_chunkhdr_t) <
++	    skb_tail_pointer(chunk->skb)) {
+ 		/* This is not a singleton */
+ 		chunk->singleton = 0;
+ 	} else if (chunk->chunk_end > skb_tail_pointer(chunk->skb)) {
+-		/* RFC 2960, Section 6.10  Bundling
+-		 *
+-		 * Partial chunks MUST NOT be placed in an SCTP packet.
+-		 * If the receiver detects a partial chunk, it MUST drop
+-		 * the chunk.
+-		 *
+-		 * Since the end of the chunk is past the end of our buffer
+-		 * (which contains the whole packet, we can freely discard
+-		 * the whole packet.
+-		 */
+-		sctp_chunk_free(chunk);
+-		chunk = queue->in_progress = NULL;
+-
+-		return NULL;
++		/* Discard inside state machine. */
++		chunk->pdiscard = 1;
++		chunk->chunk_end = skb_tail_pointer(chunk->skb);
+ 	} else {
+ 		/* We are at the end of the packet, so mark the chunk
+ 		 * in case we need to send a SACK.
+diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
+index bdea3df..3ee27b7 100644
+--- a/net/sctp/sm_statefuns.c
++++ b/net/sctp/sm_statefuns.c
+@@ -170,6 +170,9 @@ sctp_chunk_length_valid(struct sctp_chunk *chunk,
+ {
+ 	__u16 chunk_length = ntohs(chunk->chunk_hdr->length);
+ 
++	/* Previously already marked? */
++	if (unlikely(chunk->pdiscard))
++		return 0;
+ 	if (unlikely(chunk_length < required_length))
+ 		return 0;
+ 

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/net-sctp-fix-skb_over_panic-when-receiving-malformed.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/net-sctp-fix-skb_over_panic-when-receiving-malformed.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/net-sctp-fix-skb_over_panic-when-receiving-malformed.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/net-sctp-fix-skb_over_panic-when-receiving-malformed.patch)
@@ -0,0 +1,336 @@
+From: Daniel Borkmann <dborkman at redhat.com>
+Date: Thu, 9 Oct 2014 22:55:31 +0200
+Subject: net: sctp: fix skb_over_panic when receiving malformed ASCONF chunks
+Origin: https://git.kernel.org/linus/9de7922bc709eee2f609cd01d98aaedc4cf5ea74
+
+Commit 6f4c618ddb0 ("SCTP : Add paramters validity check for
+ASCONF chunk") added basic verification of ASCONF chunks, however,
+it is still possible to remotely crash a server by sending a
+special crafted ASCONF chunk, even up to pre 2.6.12 kernels:
+
+skb_over_panic: text:ffffffffa01ea1c3 len:31056 put:30768
+ head:ffff88011bd81800 data:ffff88011bd81800 tail:0x7950
+ end:0x440 dev:<NULL>
+ ------------[ cut here ]------------
+kernel BUG at net/core/skbuff.c:129!
+[...]
+Call Trace:
+ <IRQ>
+ [<ffffffff8144fb1c>] skb_put+0x5c/0x70
+ [<ffffffffa01ea1c3>] sctp_addto_chunk+0x63/0xd0 [sctp]
+ [<ffffffffa01eadaf>] sctp_process_asconf+0x1af/0x540 [sctp]
+ [<ffffffff8152d025>] ? _read_unlock_bh+0x15/0x20
+ [<ffffffffa01e0038>] sctp_sf_do_asconf+0x168/0x240 [sctp]
+ [<ffffffffa01e3751>] sctp_do_sm+0x71/0x1210 [sctp]
+ [<ffffffff8147645d>] ? fib_rules_lookup+0xad/0xf0
+ [<ffffffffa01e6b22>] ? sctp_cmp_addr_exact+0x32/0x40 [sctp]
+ [<ffffffffa01e8393>] sctp_assoc_bh_rcv+0xd3/0x180 [sctp]
+ [<ffffffffa01ee986>] sctp_inq_push+0x56/0x80 [sctp]
+ [<ffffffffa01fcc42>] sctp_rcv+0x982/0xa10 [sctp]
+ [<ffffffffa01d5123>] ? ipt_local_in_hook+0x23/0x28 [iptable_filter]
+ [<ffffffff8148bdc9>] ? nf_iterate+0x69/0xb0
+ [<ffffffff81496d10>] ? ip_local_deliver_finish+0x0/0x2d0
+ [<ffffffff8148bf86>] ? nf_hook_slow+0x76/0x120
+ [<ffffffff81496d10>] ? ip_local_deliver_finish+0x0/0x2d0
+ [<ffffffff81496ded>] ip_local_deliver_finish+0xdd/0x2d0
+ [<ffffffff81497078>] ip_local_deliver+0x98/0xa0
+ [<ffffffff8149653d>] ip_rcv_finish+0x12d/0x440
+ [<ffffffff81496ac5>] ip_rcv+0x275/0x350
+ [<ffffffff8145c88b>] __netif_receive_skb+0x4ab/0x750
+ [<ffffffff81460588>] netif_receive_skb+0x58/0x60
+
+This can be triggered e.g., through a simple scripted nmap
+connection scan injecting the chunk after the handshake, for
+example, ...
+
+  -------------- INIT[ASCONF; ASCONF_ACK] ------------->
+  <----------- INIT-ACK[ASCONF; ASCONF_ACK] ------------
+  -------------------- COOKIE-ECHO -------------------->
+  <-------------------- COOKIE-ACK ---------------------
+  ------------------ ASCONF; UNKNOWN ------------------>
+
+... where ASCONF chunk of length 280 contains 2 parameters ...
+
+  1) Add IP address parameter (param length: 16)
+  2) Add/del IP address parameter (param length: 255)
+
+... followed by an UNKNOWN chunk of e.g. 4 bytes. Here, the
+Address Parameter in the ASCONF chunk is even missing, too.
+This is just an example and similarly-crafted ASCONF chunks
+could be used just as well.
+
+The ASCONF chunk passes through sctp_verify_asconf() as all
+parameters passed sanity checks, and after walking, we ended
+up successfully at the chunk end boundary, and thus may invoke
+sctp_process_asconf(). Parameter walking is done with
+WORD_ROUND() to take padding into account.
+
+In sctp_process_asconf()'s TLV processing, we may fail in
+sctp_process_asconf_param() e.g., due to removal of the IP
+address that is also the source address of the packet containing
+the ASCONF chunk, and thus we need to add all TLVs after the
+failure to our ASCONF response to remote via helper function
+sctp_add_asconf_response(), which basically invokes a
+sctp_addto_chunk() adding the error parameters to the given
+skb.
+
+When walking to the next parameter this time, we proceed
+with ...
+
+  length = ntohs(asconf_param->param_hdr.length);
+  asconf_param = (void *)asconf_param + length;
+
+... instead of the WORD_ROUND()'ed length, thus resulting here
+in an off-by-one that leads to reading the follow-up garbage
+parameter length of 12336, and thus throwing an skb_over_panic
+for the reply when trying to sctp_addto_chunk() next time,
+which implicitly calls the skb_put() with that length.
+
+Fix it by using sctp_walk_params() [ which is also used in
+INIT parameter processing ] macro in the verification *and*
+in ASCONF processing: it will make sure we don't spill over,
+that we walk parameters WORD_ROUND()'ed. Moreover, we're being
+more defensive and guard against unknown parameter types and
+missized addresses.
+
+Joint work with Vlad Yasevich.
+
+Fixes: b896b82be4ae ("[SCTP] ADDIP: Support for processing incoming ASCONF_ACK chunks.")
+Signed-off-by: Daniel Borkmann <dborkman at redhat.com>
+Signed-off-by: Vlad Yasevich <vyasevich at gmail.com>
+Acked-by: Neil Horman <nhorman at tuxdriver.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ include/net/sctp/sm.h    |  6 +--
+ net/sctp/sm_make_chunk.c | 99 +++++++++++++++++++++++++++---------------------
+ net/sctp/sm_statefuns.c  | 18 +--------
+ 3 files changed, 60 insertions(+), 63 deletions(-)
+
+diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
+index 7f4eeb3..72a31db 100644
+--- a/include/net/sctp/sm.h
++++ b/include/net/sctp/sm.h
+@@ -248,9 +248,9 @@ struct sctp_chunk *sctp_make_asconf_update_ip(struct sctp_association *,
+ 					      int, __be16);
+ struct sctp_chunk *sctp_make_asconf_set_prim(struct sctp_association *asoc,
+ 					     union sctp_addr *addr);
+-int sctp_verify_asconf(const struct sctp_association *asoc,
+-		       struct sctp_paramhdr *param_hdr, void *chunk_end,
+-		       struct sctp_paramhdr **errp);
++bool sctp_verify_asconf(const struct sctp_association *asoc,
++			struct sctp_chunk *chunk, bool addr_param_needed,
++			struct sctp_paramhdr **errp);
+ struct sctp_chunk *sctp_process_asconf(struct sctp_association *asoc,
+ 				       struct sctp_chunk *asconf);
+ int sctp_process_asconf_ack(struct sctp_association *asoc,
+diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
+index ae0e616..ab734be 100644
+--- a/net/sctp/sm_make_chunk.c
++++ b/net/sctp/sm_make_chunk.c
+@@ -3110,50 +3110,63 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
+ 	return SCTP_ERROR_NO_ERROR;
+ }
+ 
+-/* Verify the ASCONF packet before we process it.  */
+-int sctp_verify_asconf(const struct sctp_association *asoc,
+-		       struct sctp_paramhdr *param_hdr, void *chunk_end,
+-		       struct sctp_paramhdr **errp) {
+-	sctp_addip_param_t *asconf_param;
++/* Verify the ASCONF packet before we process it. */
++bool sctp_verify_asconf(const struct sctp_association *asoc,
++			struct sctp_chunk *chunk, bool addr_param_needed,
++			struct sctp_paramhdr **errp)
++{
++	sctp_addip_chunk_t *addip = (sctp_addip_chunk_t *) chunk->chunk_hdr;
+ 	union sctp_params param;
+-	int length, plen;
+-
+-	param.v = (sctp_paramhdr_t *) param_hdr;
+-	while (param.v <= chunk_end - sizeof(sctp_paramhdr_t)) {
+-		length = ntohs(param.p->length);
+-		*errp = param.p;
++	bool addr_param_seen = false;
+ 
+-		if (param.v > chunk_end - length ||
+-		    length < sizeof(sctp_paramhdr_t))
+-			return 0;
++	sctp_walk_params(param, addip, addip_hdr.params) {
++		size_t length = ntohs(param.p->length);
+ 
++		*errp = param.p;
+ 		switch (param.p->type) {
++		case SCTP_PARAM_ERR_CAUSE:
++			break;
++		case SCTP_PARAM_IPV4_ADDRESS:
++			if (length != sizeof(sctp_ipv4addr_param_t))
++				return false;
++			addr_param_seen = true;
++			break;
++		case SCTP_PARAM_IPV6_ADDRESS:
++			if (length != sizeof(sctp_ipv6addr_param_t))
++				return false;
++			addr_param_seen = true;
++			break;
+ 		case SCTP_PARAM_ADD_IP:
+ 		case SCTP_PARAM_DEL_IP:
+ 		case SCTP_PARAM_SET_PRIMARY:
+-			asconf_param = (sctp_addip_param_t *)param.v;
+-			plen = ntohs(asconf_param->param_hdr.length);
+-			if (plen < sizeof(sctp_addip_param_t) +
+-			    sizeof(sctp_paramhdr_t))
+-				return 0;
++			/* In ASCONF chunks, these need to be first. */
++			if (addr_param_needed && !addr_param_seen)
++				return false;
++			length = ntohs(param.addip->param_hdr.length);
++			if (length < sizeof(sctp_addip_param_t) +
++				     sizeof(sctp_paramhdr_t))
++				return false;
+ 			break;
+ 		case SCTP_PARAM_SUCCESS_REPORT:
+ 		case SCTP_PARAM_ADAPTATION_LAYER_IND:
+ 			if (length != sizeof(sctp_addip_param_t))
+-				return 0;
+-
++				return false;
+ 			break;
+ 		default:
+-			break;
++			/* This is unkown to us, reject! */
++			return false;
+ 		}
+-
+-		param.v += WORD_ROUND(length);
+ 	}
+ 
+-	if (param.v != chunk_end)
+-		return 0;
++	/* Remaining sanity checks. */
++	if (addr_param_needed && !addr_param_seen)
++		return false;
++	if (!addr_param_needed && addr_param_seen)
++		return false;
++	if (param.v != chunk->chunk_end)
++		return false;
+ 
+-	return 1;
++	return true;
+ }
+ 
+ /* Process an incoming ASCONF chunk with the next expected serial no. and
+@@ -3162,16 +3175,17 @@ int sctp_verify_asconf(const struct sctp_association *asoc,
+ struct sctp_chunk *sctp_process_asconf(struct sctp_association *asoc,
+ 				       struct sctp_chunk *asconf)
+ {
++	sctp_addip_chunk_t *addip = (sctp_addip_chunk_t *) asconf->chunk_hdr;
++	bool all_param_pass = true;
++	union sctp_params param;
+ 	sctp_addiphdr_t		*hdr;
+ 	union sctp_addr_param	*addr_param;
+ 	sctp_addip_param_t	*asconf_param;
+ 	struct sctp_chunk	*asconf_ack;
+-
+ 	__be16	err_code;
+ 	int	length = 0;
+ 	int	chunk_len;
+ 	__u32	serial;
+-	int	all_param_pass = 1;
+ 
+ 	chunk_len = ntohs(asconf->chunk_hdr->length) - sizeof(sctp_chunkhdr_t);
+ 	hdr = (sctp_addiphdr_t *)asconf->skb->data;
+@@ -3199,9 +3213,14 @@ struct sctp_chunk *sctp_process_asconf(struct sctp_association *asoc,
+ 		goto done;
+ 
+ 	/* Process the TLVs contained within the ASCONF chunk. */
+-	while (chunk_len > 0) {
++	sctp_walk_params(param, addip, addip_hdr.params) {
++		/* Skip preceeding address parameters. */
++		if (param.p->type == SCTP_PARAM_IPV4_ADDRESS ||
++		    param.p->type == SCTP_PARAM_IPV6_ADDRESS)
++			continue;
++
+ 		err_code = sctp_process_asconf_param(asoc, asconf,
+-						     asconf_param);
++						     param.addip);
+ 		/* ADDIP 4.1 A7)
+ 		 * If an error response is received for a TLV parameter,
+ 		 * all TLVs with no response before the failed TLV are
+@@ -3209,28 +3228,20 @@ struct sctp_chunk *sctp_process_asconf(struct sctp_association *asoc,
+ 		 * the failed response are considered unsuccessful unless
+ 		 * a specific success indication is present for the parameter.
+ 		 */
+-		if (SCTP_ERROR_NO_ERROR != err_code)
+-			all_param_pass = 0;
+-
++		if (err_code != SCTP_ERROR_NO_ERROR)
++			all_param_pass = false;
+ 		if (!all_param_pass)
+-			sctp_add_asconf_response(asconf_ack,
+-						 asconf_param->crr_id, err_code,
+-						 asconf_param);
++			sctp_add_asconf_response(asconf_ack, param.addip->crr_id,
++						 err_code, param.addip);
+ 
+ 		/* ADDIP 4.3 D11) When an endpoint receiving an ASCONF to add
+ 		 * an IP address sends an 'Out of Resource' in its response, it
+ 		 * MUST also fail any subsequent add or delete requests bundled
+ 		 * in the ASCONF.
+ 		 */
+-		if (SCTP_ERROR_RSRC_LOW == err_code)
++		if (err_code == SCTP_ERROR_RSRC_LOW)
+ 			goto done;
+-
+-		/* Move to the next ASCONF param. */
+-		length = ntohs(asconf_param->param_hdr.length);
+-		asconf_param = (void *)asconf_param + length;
+-		chunk_len -= length;
+ 	}
+-
+ done:
+ 	asoc->peer.addip_serial++;
+ 
+diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
+index c8f6063..bdea3df 100644
+--- a/net/sctp/sm_statefuns.c
++++ b/net/sctp/sm_statefuns.c
+@@ -3591,9 +3591,7 @@ sctp_disposition_t sctp_sf_do_asconf(struct net *net,
+ 	struct sctp_chunk	*asconf_ack = NULL;
+ 	struct sctp_paramhdr	*err_param = NULL;
+ 	sctp_addiphdr_t		*hdr;
+-	union sctp_addr_param	*addr_param;
+ 	__u32			serial;
+-	int			length;
+ 
+ 	if (!sctp_vtag_verify(chunk, asoc)) {
+ 		sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_BAD_TAG,
+@@ -3618,17 +3616,8 @@ sctp_disposition_t sctp_sf_do_asconf(struct net *net,
+ 	hdr = (sctp_addiphdr_t *)chunk->skb->data;
+ 	serial = ntohl(hdr->serial);
+ 
+-	addr_param = (union sctp_addr_param *)hdr->params;
+-	length = ntohs(addr_param->p.length);
+-	if (length < sizeof(sctp_paramhdr_t))
+-		return sctp_sf_violation_paramlen(net, ep, asoc, type, arg,
+-			   (void *)addr_param, commands);
+-
+ 	/* Verify the ASCONF chunk before processing it. */
+-	if (!sctp_verify_asconf(asoc,
+-			    (sctp_paramhdr_t *)((void *)addr_param + length),
+-			    (void *)chunk->chunk_end,
+-			    &err_param))
++	if (!sctp_verify_asconf(asoc, chunk, true, &err_param))
+ 		return sctp_sf_violation_paramlen(net, ep, asoc, type, arg,
+ 						  (void *)err_param, commands);
+ 
+@@ -3745,10 +3734,7 @@ sctp_disposition_t sctp_sf_do_asconf_ack(struct net *net,
+ 	rcvd_serial = ntohl(addip_hdr->serial);
+ 
+ 	/* Verify the ASCONF-ACK chunk before processing it. */
+-	if (!sctp_verify_asconf(asoc,
+-	    (sctp_paramhdr_t *)addip_hdr->params,
+-	    (void *)asconf_ack->chunk_end,
+-	    &err_param))
++	if (!sctp_verify_asconf(asoc, asconf_ack, false, &err_param))
+ 		return sctp_sf_violation_paramlen(net, ep, asoc, type, arg,
+ 			   (void *)err_param, commands);
+ 

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch)
@@ -0,0 +1,29 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Sun, 26 Oct 2014 03:39:42 +0000
+Subject: rtsx_usb_ms: Use msleep_interruptible() in polling loop
+Bug-Debian: https://bugs.debian.org/765717
+Forwarded: http://mid.gmane.org/1415237557.3398.41.camel@decadent.org.uk
+
+rtsx_usb_ms creates a task that mostly sleeps, but tasks in
+uninterruptible sleep still contribute to the load average (for
+bug-compatibility with Unix).  A load average of ~1 on a system that
+should be idle is somewhat alarming.
+
+Change the sleep to be interruptible, but still ignore signals.
+
+A better fix might be to replace this loop with a delayed work item.
+
+diff --git a/drivers/memstick/host/rtsx_usb_ms.c b/drivers/memstick/host/rtsx_usb_ms.c
+index a7282b7..7356780 100644
+--- a/drivers/memstick/host/rtsx_usb_ms.c
++++ b/drivers/memstick/host/rtsx_usb_ms.c
+@@ -706,7 +706,8 @@ poll_again:
+ 		if (host->eject)
+ 			break;
+ 
+-		msleep(1000);
++		if (msleep_interruptible(1000))
++			flush_signals(current);
+ 	}
+ 
+ 	complete(&host->detect_ms_exit);

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/switch-iov_iter_get_pages-to-passing-maximal-number-.patch (from r22048, dists/sid/linux/debian/patches/bugfix/all/switch-iov_iter_get_pages-to-passing-maximal-number-.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/switch-iov_iter_get_pages-to-passing-maximal-number-.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/all/switch-iov_iter_get_pages-to-passing-maximal-number-.patch)
@@ -0,0 +1,119 @@
+From: Al Viro <viro at zeniv.linux.org.uk>
+Date: Wed, 18 Jun 2014 20:34:33 -0400
+Subject: switch iov_iter_get_pages() to passing maximal number of pages
+Origin: https://git.kernel.org/linus/c7f3888ad7f0932a87fb76e6e4edff2a90cc7920
+
+... instead of maximal size.
+
+Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
+---
+ fs/direct-io.c      |  2 +-
+ fs/fuse/file.c      |  4 ++--
+ include/linux/uio.h |  2 +-
+ mm/iov_iter.c       | 17 ++++++++---------
+ 4 files changed, 12 insertions(+), 13 deletions(-)
+
+diff --git a/fs/direct-io.c b/fs/direct-io.c
+index 17e39b0..c311640 100644
+--- a/fs/direct-io.c
++++ b/fs/direct-io.c
+@@ -158,7 +158,7 @@ static inline int dio_refill_pages(struct dio *dio, struct dio_submit *sdio)
+ {
+ 	ssize_t ret;
+ 
+-	ret = iov_iter_get_pages(sdio->iter, dio->pages, DIO_PAGES * PAGE_SIZE,
++	ret = iov_iter_get_pages(sdio->iter, dio->pages, DIO_PAGES,
+ 				&sdio->from);
+ 
+ 	if (ret < 0 && sdio->blocks_available && (dio->rw & WRITE)) {
+diff --git a/fs/fuse/file.c b/fs/fuse/file.c
+index 40ac262..912061a 100644
+--- a/fs/fuse/file.c
++++ b/fs/fuse/file.c
+@@ -1303,10 +1303,10 @@ static int fuse_get_user_pages(struct fuse_req *req, struct iov_iter *ii,
+ 	while (nbytes < *nbytesp && req->num_pages < req->max_pages) {
+ 		unsigned npages;
+ 		size_t start;
+-		unsigned n = req->max_pages - req->num_pages;
+ 		ssize_t ret = iov_iter_get_pages(ii,
+ 					&req->pages[req->num_pages],
+-					n * PAGE_SIZE, &start);
++					req->max_pages - req->num_pages,
++					&start);
+ 		if (ret < 0)
+ 			return ret;
+ 
+diff --git a/include/linux/uio.h b/include/linux/uio.h
+index 09a7cff..48d64e6 100644
+--- a/include/linux/uio.h
++++ b/include/linux/uio.h
+@@ -84,7 +84,7 @@ unsigned long iov_iter_alignment(const struct iov_iter *i);
+ void iov_iter_init(struct iov_iter *i, int direction, const struct iovec *iov,
+ 			unsigned long nr_segs, size_t count);
+ ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages,
+-			size_t maxsize, size_t *start);
++			unsigned maxpages, size_t *start);
+ ssize_t iov_iter_get_pages_alloc(struct iov_iter *i, struct page ***pages,
+ 			size_t maxsize, size_t *start);
+ int iov_iter_npages(const struct iov_iter *i, int maxpages);
+diff --git a/mm/iov_iter.c b/mm/iov_iter.c
+index 7b5dbd1..ab88dc0 100644
+--- a/mm/iov_iter.c
++++ b/mm/iov_iter.c
+@@ -310,7 +310,7 @@ void iov_iter_init(struct iov_iter *i, int direction,
+ EXPORT_SYMBOL(iov_iter_init);
+ 
+ static ssize_t get_pages_iovec(struct iov_iter *i,
+-		   struct page **pages, size_t maxsize,
++		   struct page **pages, unsigned maxpages,
+ 		   size_t *start)
+ {
+ 	size_t offset = i->iov_offset;
+@@ -323,10 +323,10 @@ static ssize_t get_pages_iovec(struct iov_iter *i,
+ 	len = iov->iov_len - offset;
+ 	if (len > i->count)
+ 		len = i->count;
+-	if (len > maxsize)
+-		len = maxsize;
+ 	addr = (unsigned long)iov->iov_base + offset;
+ 	len += *start = addr & (PAGE_SIZE - 1);
++	if (len > maxpages * PAGE_SIZE)
++		len = maxpages * PAGE_SIZE;
+ 	addr &= ~(PAGE_SIZE - 1);
+ 	n = (len + PAGE_SIZE - 1) / PAGE_SIZE;
+ 	res = get_user_pages_fast(addr, n, (i->type & WRITE) != WRITE, pages);
+@@ -588,15 +588,14 @@ static unsigned long alignment_bvec(const struct iov_iter *i)
+ }
+ 
+ static ssize_t get_pages_bvec(struct iov_iter *i,
+-		   struct page **pages, size_t maxsize,
++		   struct page **pages, unsigned maxpages,
+ 		   size_t *start)
+ {
+ 	const struct bio_vec *bvec = i->bvec;
+ 	size_t len = bvec->bv_len - i->iov_offset;
+ 	if (len > i->count)
+ 		len = i->count;
+-	if (len > maxsize)
+-		len = maxsize;
++	/* can't be more than PAGE_SIZE */
+ 	*start = bvec->bv_offset + i->iov_offset;
+ 
+ 	get_page(*pages = bvec->bv_page);
+@@ -712,13 +711,13 @@ unsigned long iov_iter_alignment(const struct iov_iter *i)
+ EXPORT_SYMBOL(iov_iter_alignment);
+ 
+ ssize_t iov_iter_get_pages(struct iov_iter *i,
+-		   struct page **pages, size_t maxsize,
++		   struct page **pages, unsigned maxpages,
+ 		   size_t *start)
+ {
+ 	if (i->type & ITER_BVEC)
+-		return get_pages_bvec(i, pages, maxsize, start);
++		return get_pages_bvec(i, pages, maxpages, start);
+ 	else
+-		return get_pages_iovec(i, pages, maxsize, start);
++		return get_pages_iovec(i, pages, maxpages, start);
+ }
+ EXPORT_SYMBOL(iov_iter_get_pages);
+ 

Modified: dists/wheezy-backports/linux/debian/patches/bugfix/arm64/arm64-crypto-fix-makefile-rule-for-aes-glue-.o.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/bugfix/arm64/arm64-crypto-fix-makefile-rule-for-aes-glue-.o.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/arm64/arm64-crypto-fix-makefile-rule-for-aes-glue-.o.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,7 +1,7 @@
-From 7c2105fbe9658d6cee18751568e29579bb58bfec Mon Sep 17 00:00:00 2001
 From: Andreas Schwab <schwab at suse.de>
 Date: Thu, 24 Jul 2014 17:03:26 +0100
 Subject: [PATCH] arm64/crypto: fix makefile rule for aes-glue-%.o
+Origin: https://git.kernel.org/linus/7c2105fbe9658d6cee18751568e29579bb58bfec
 
 This fixes the following build failure when building with CONFIG_MODVERSIONS
 enabled:

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/mips/MIPS-cp1emu-Fix-ISA-restrictions-for-cop1x_op-instru.patch (from r22048, dists/sid/linux/debian/patches/bugfix/mips/MIPS-cp1emu-Fix-ISA-restrictions-for-cop1x_op-instru.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/mips/MIPS-cp1emu-Fix-ISA-restrictions-for-cop1x_op-instru.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/mips/MIPS-cp1emu-Fix-ISA-restrictions-for-cop1x_op-instru.patch)
@@ -0,0 +1,50 @@
+From: Markos Chandras <markos.chandras at imgtec.com>
+Date: Tue, 21 Oct 2014 10:21:54 +0100
+Subject: MIPS: cp1emu: Fix ISA restrictions for cop1x_op instructions
+Origin: https://git.kernel.org/linus/a5466d7bba9af83a82cc7c081b2a7d557cde3204
+
+Commit 08a07904e1828 ("MIPS: math-emu: Remove most ifdefery") removed
+the #ifdef ISA conditions and switched to runtime detection. However,
+according to the instruction set manual, the cop1x_op instructions are
+available in >=MIPS32r2 as well. This fixes a problem on MIPS32r2
+with the ntpd package which failed to execute with a SIGILL exit code due
+to the fact that a madd.d instruction was not being emulated.
+
+Signed-off-by: Markos Chandras <markos.chandras at imgtec.com>
+Fixes: 08a07904e1828 ("MIPS: math-emu: Remove most ifdefery")
+Cc: <stable at vger.kernel.org> # v3.16+
+Cc: linux-mips at linux-mips.org
+Reviewed-by: Paul Burton <paul.burton at imgtec.com>
+Reviewed-by: James Hogan <james.hogan at imgtec.com>
+Cc: Markos Chandras <markos.chandras at imgtec.com>
+Patchwork: https://patchwork.linux-mips.org/patch/8173/
+Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
+---
+ arch/mips/math-emu/cp1emu.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/mips/math-emu/cp1emu.c b/arch/mips/math-emu/cp1emu.c
+index 7a47277..51a0fde 100644
+--- a/arch/mips/math-emu/cp1emu.c
++++ b/arch/mips/math-emu/cp1emu.c
+@@ -1023,7 +1023,7 @@ emul:
+ 					goto emul;
+ 
+ 				case cop1x_op:
+-					if (cpu_has_mips_4_5 || cpu_has_mips64)
++					if (cpu_has_mips_4_5 || cpu_has_mips64 || cpu_has_mips32r2)
+ 						/* its one of ours */
+ 						goto emul;
+ 
+@@ -1068,7 +1068,7 @@ emul:
+ 		break;
+ 
+ 	case cop1x_op:
+-		if (!cpu_has_mips_4_5 && !cpu_has_mips64)
++		if (!cpu_has_mips_4_5 && !cpu_has_mips64 && !cpu_has_mips32r2)
+ 			return SIGILL;
+ 
+ 		sig = fpux_emu(xcp, ctx, ir, fault_addr);
+-- 
+2.1.1
+

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/mips/MIPS-tlbex-Properly-fix-HUGE-TLB-Refill-exception-ha.patch (from r22048, dists/sid/linux/debian/patches/bugfix/mips/MIPS-tlbex-Properly-fix-HUGE-TLB-Refill-exception-ha.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/mips/MIPS-tlbex-Properly-fix-HUGE-TLB-Refill-exception-ha.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/mips/MIPS-tlbex-Properly-fix-HUGE-TLB-Refill-exception-ha.patch)
@@ -0,0 +1,90 @@
+From: David Daney <david.daney at cavium.com>
+Date: Mon, 20 Oct 2014 15:34:23 -0700
+Subject: MIPS: tlbex: Properly fix HUGE TLB Refill exception handler
+Origin: https://git.kernel.org/linus/9e0f162a36914937a937358fcb45e0609ef2bfc4
+
+In commit 8393c524a25609 (MIPS: tlbex: Fix a missing statement for
+HUGETLB), the TLB Refill handler was fixed so that non-OCTEON targets
+would work properly with huge pages.  The change was incorrect in that
+it broke the OCTEON case.
+
+The problem is shown here:
+
+    xxx0:	df7a0000 	ld	k0,0(k1)
+    .
+    .
+    .
+    xxxc0:	df610000 	ld	at,0(k1)
+    xxxc4:	335a0ff0 	andi	k0,k0,0xff0
+    xxxc8:	e825ffcd 	bbit1	at,0x5,0x0
+    xxxcc:	003ad82d 	daddu	k1,at,k0
+    .
+    .
+    .
+
+In the non-octeon case there is a destructive test for the huge PTE
+bit, and then at 0, $k0 is reloaded (that is what the 8393c524a25609
+patch added).
+
+In the octeon case, we modify k1 in the branch delay slot, but we
+never need k0 again, so the new load is not needed, but since k1 is
+modified, if we do the load, we load from a garbage location and then
+get a nested TLB Refill, which is seen in userspace as either SIGBUS
+or SIGSEGV (depending on the garbage).
+
+The real fix is to only do this reloading if it is needed, and never
+where it is harmful.
+
+Signed-off-by: David Daney <david.daney at cavium.com>
+Cc: Huacai Chen <chenhc at lemote.com>
+Cc: Fuxin Zhang <zhangfx at lemote.com>
+Cc: Zhangjin Wu <wuzhangjin at gmail.com>
+Cc: stable at vger.kernel.org
+Cc: linux-mips at linux-mips.org
+Patchwork: https://patchwork.linux-mips.org/patch/8151/
+Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
+---
+ arch/mips/mm/tlbex.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
+index a08dd53..b5f228e 100644
+--- a/arch/mips/mm/tlbex.c
++++ b/arch/mips/mm/tlbex.c
+@@ -1062,6 +1062,7 @@ static void build_update_entries(u32 **p, unsigned int tmp, unsigned int ptep)
+ struct mips_huge_tlb_info {
+ 	int huge_pte;
+ 	int restore_scratch;
++	bool need_reload_pte;
+ };
+ 
+ static struct mips_huge_tlb_info
+@@ -1076,6 +1077,7 @@ build_fast_tlb_refill_handler (u32 **p, struct uasm_label **l,
+ 
+ 	rv.huge_pte = scratch;
+ 	rv.restore_scratch = 0;
++	rv.need_reload_pte = false;
+ 
+ 	if (check_for_high_segbits) {
+ 		UASM_i_MFC0(p, tmp, C0_BADVADDR);
+@@ -1264,6 +1266,7 @@ static void build_r4000_tlb_refill_handler(void)
+ 	} else {
+ 		htlb_info.huge_pte = K0;
+ 		htlb_info.restore_scratch = 0;
++		htlb_info.need_reload_pte = true;
+ 		vmalloc_mode = refill_noscratch;
+ 		/*
+ 		 * create the plain linear handler
+@@ -1300,7 +1303,8 @@ static void build_r4000_tlb_refill_handler(void)
+ 	}
+ #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT
+ 	uasm_l_tlb_huge_update(&l, p);
+-	UASM_i_LW(&p, K0, 0, K1);
++	if (htlb_info.need_reload_pte)
++		UASM_i_LW(&p, htlb_info.huge_pte, 0, K1);
+ 	build_huge_update_entries(&p, htlb_info.huge_pte, K1);
+ 	build_huge_tlb_write_entry(&p, &l, &r, K0, tlb_random,
+ 				   htlb_info.restore_scratch);
+-- 
+2.1.1
+

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/parisc/parisc-reduce-sigrtmin-from-37-to-32-to-behave-like-.patch (from r22048, dists/sid/linux/debian/patches/bugfix/parisc/parisc-reduce-sigrtmin-from-37-to-32-to-behave-like-.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/parisc/parisc-reduce-sigrtmin-from-37-to-32-to-behave-like-.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/parisc/parisc-reduce-sigrtmin-from-37-to-32-to-behave-like-.patch)
@@ -0,0 +1,100 @@
+From: Helge Deller <deller at gmx.de>
+Date: Fri, 10 Oct 2014 22:20:17 +0200
+Subject: parisc: Reduce SIGRTMIN from 37 to 32 to behave like other Linux
+ architectures
+Origin: https://git.kernel.org/linus/1f25df2eff5b25f52c139d3ff31bc883eee9a0ab
+Bug-Debian: https://bugs.debian.org/766635
+
+This patch reduces the value of SIGRTMIN on PARISC from 37 to 32, thus
+increasing the number of available RT signals and bring it in sync with other
+Linux architectures.
+
+Historically we wanted to natively support HP-UX 32bit binaries with the
+PA-RISC Linux port.  Because of that we carried the various available signals
+from HP-UX (e.g. SIGEMT and SIGLOST) and folded them in between the native
+Linux signals.  Although this was the right decision at that time, this
+required us to increase SIGRTMIN to at least 37 which left us with 27 (64-37)
+RT signals.
+
+Those 27 RT signals haven't been a problem in the past, but with the upcoming
+importance of systemd we now got the problem that systemd alloctes (hardcoded)
+signals up to SIGRTMIN+29 which is beyond our NSIG of 64. Because of that we
+have not been able to use systemd on the PARISC Linux port yet.
+
+Of course we could ask the systemd developers to not use those hardcoded
+values, but this change is very unlikely, esp. with PA-RISC being a niche
+architecture.
+
+The other possibility would be to increase NSIG to e.g. 128, but this would
+mean to duplicate most of the existing Linux signal handling code into the
+parisc specific Linux kernel tree which would most likely introduce lots of new
+bugs beside the code duplication.
+
+The third option is to drop some HP-UX signals and shuffle some other signals
+around to bring SIGRTMIN to 32.  This is of course an ABI change, but testing
+has shown that existing Linux installations are not visibly affected by this
+change - most likely because we move those signals around which are rarely used
+and move them to slots which haven't been used in Linux yet. In an existing
+installation I was able to exchange either the Linux kernel or glibc (or both)
+without affecting the boot process and installed applications.
+
+Dropping the HP-UX signals isn't an issue either, since support for HP-UX was
+basically dropped a few months back with Kernel 3.14 in commit
+f5a408d53edef3af07ac7697b8bc54a755628450 already, when we changed EWOULDBLOCK
+to be equal to EAGAIN.
+
+So, even if this is an ABI change, it's better to change it now and thus bring
+PARISC Linux in sync with other architectures to avoid other issues in the
+future.
+
+Signed-off-by: Helge Deller <deller at gmx.de>
+Cc: Carlos O'Donell <carlos at systemhalted.org>
+Cc: John David Anglin <dave.anglin at bell.net>
+Cc: James Bottomley <James.Bottomley at HansenPartnership.com>
+Cc: Aaro Koskinen <aaro.koskinen at iki.fi>
+Cc: PARISC Linux Kernel Mailinglist <linux-parisc at vger.kernel.org>
+Tested-by: Aaro Koskinen <aaro.koskinen at iki.fi>
+---
+ arch/parisc/include/uapi/asm/signal.h | 16 ++++++----------
+ 1 file changed, 6 insertions(+), 10 deletions(-)
+
+diff --git a/arch/parisc/include/uapi/asm/signal.h b/arch/parisc/include/uapi/asm/signal.h
+index f5645d6..10df707 100644
+--- a/arch/parisc/include/uapi/asm/signal.h
++++ b/arch/parisc/include/uapi/asm/signal.h
+@@ -8,12 +8,12 @@
+ #define SIGTRAP		 5
+ #define SIGABRT		 6
+ #define SIGIOT		 6
+-#define SIGEMT		 7
++#define SIGSTKFLT	 7
+ #define SIGFPE		 8
+ #define SIGKILL		 9
+ #define SIGBUS		10
+ #define SIGSEGV		11
+-#define SIGSYS		12 /* Linux doesn't use this */
++#define SIGXCPU		12
+ #define SIGPIPE		13
+ #define SIGALRM		14
+ #define SIGTERM		15
+@@ -32,16 +32,12 @@
+ #define SIGTTIN		27
+ #define SIGTTOU		28
+ #define SIGURG		29
+-#define SIGLOST		30 /* Linux doesn't use this either */
+-#define	SIGUNUSED	31
+-#define SIGRESERVE	SIGUNUSED
+-
+-#define SIGXCPU		33
+-#define SIGXFSZ		34
+-#define SIGSTKFLT	36
++#define SIGXFSZ		30
++#define SIGUNUSED	31
++#define SIGSYS		31 /* Linux doesn't use this */
+ 
+ /* These should not be considered constants from userland.  */
+-#define SIGRTMIN	37
++#define SIGRTMIN	32
+ #define SIGRTMAX	_NSIG /* it's 44 under HP/UX */
+ 
+ /*

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Check-non-canonical-addresses-upon-WRMSR.patch (from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Check-non-canonical-addresses-upon-WRMSR.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Check-non-canonical-addresses-upon-WRMSR.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Check-non-canonical-addresses-upon-WRMSR.patch)
@@ -0,0 +1,135 @@
+From: Nadav Amit <namit at cs.technion.ac.il>
+Date: Tue, 16 Sep 2014 03:24:05 +0300
+Subject: KVM: x86: Check non-canonical addresses upon WRMSR
+Origin: https://git.kernel.org/linus/854e8bb1aa06c578c2c9145fa6bfe3680ef63b23
+
+Upon WRMSR, the CPU should inject #GP if a non-canonical value (address) is
+written to certain MSRs. The behavior is "almost" identical for AMD and Intel
+(ignoring MSRs that are not implemented in either architecture since they would
+anyhow #GP). However, IA32_SYSENTER_ESP and IA32_SYSENTER_EIP cause #GP if
+non-canonical address is written on Intel but not on AMD (which ignores the top
+32-bits).
+
+Accordingly, this patch injects a #GP on the MSRs which behave identically on
+Intel and AMD.  To eliminate the differences between the architecutres, the
+value which is written to IA32_SYSENTER_ESP and IA32_SYSENTER_EIP is turned to
+canonical value before writing instead of injecting a #GP.
+
+Some references from Intel and AMD manuals:
+
+According to Intel SDM description of WRMSR instruction #GP is expected on
+WRMSR "If the source register contains a non-canonical address and ECX
+specifies one of the following MSRs: IA32_DS_AREA, IA32_FS_BASE, IA32_GS_BASE,
+IA32_KERNEL_GS_BASE, IA32_LSTAR, IA32_SYSENTER_EIP, IA32_SYSENTER_ESP."
+
+According to AMD manual instruction manual:
+LSTAR/CSTAR (SYSCALL): "The WRMSR instruction loads the target RIP into the
+LSTAR and CSTAR registers.  If an RIP written by WRMSR is not in canonical
+form, a general-protection exception (#GP) occurs."
+IA32_GS_BASE and IA32_FS_BASE (WRFSBASE/WRGSBASE): "The address written to the
+base field must be in canonical form or a #GP fault will occur."
+IA32_KERNEL_GS_BASE (SWAPGS): "The address stored in the KernelGSbase MSR must
+be in canonical form."
+
+This patch fixes CVE-2014-3610.
+
+Cc: stable at vger.kernel.org
+Signed-off-by: Nadav Amit <namit at cs.technion.ac.il>
+Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
+---
+ arch/x86/include/asm/kvm_host.h | 14 ++++++++++++++
+ arch/x86/kvm/svm.c              |  2 +-
+ arch/x86/kvm/vmx.c              |  2 +-
+ arch/x86/kvm/x86.c              | 27 ++++++++++++++++++++++++++-
+ 4 files changed, 42 insertions(+), 3 deletions(-)
+
+--- a/arch/x86/include/asm/kvm_host.h
++++ b/arch/x86/include/asm/kvm_host.h
+@@ -989,6 +989,20 @@ static inline void kvm_inject_gp(struct
+ 	kvm_queue_exception_e(vcpu, GP_VECTOR, error_code);
+ }
+ 
++static inline u64 get_canonical(u64 la)
++{
++	return ((int64_t)la << 16) >> 16;
++}
++
++static inline bool is_noncanonical_address(u64 la)
++{
++#ifdef CONFIG_X86_64
++	return get_canonical(la) != la;
++#else
++	return false;
++#endif
++}
++
+ #define TSS_IOPB_BASE_OFFSET 0x66
+ #define TSS_BASE_SIZE 0x68
+ #define TSS_IOPB_SIZE (65536 / 8)
+--- a/arch/x86/kvm/svm.c
++++ b/arch/x86/kvm/svm.c
+@@ -3228,7 +3228,7 @@ static int wrmsr_interception(struct vcp
+ 	msr.host_initiated = false;
+ 
+ 	svm->next_rip = kvm_rip_read(&svm->vcpu) + 2;
+-	if (svm_set_msr(&svm->vcpu, &msr)) {
++	if (kvm_set_msr(&svm->vcpu, &msr)) {
+ 		trace_kvm_msr_write_ex(ecx, data);
+ 		kvm_inject_gp(&svm->vcpu, 0);
+ 	} else {
+--- a/arch/x86/kvm/vmx.c
++++ b/arch/x86/kvm/vmx.c
+@@ -5246,7 +5246,7 @@ static int handle_wrmsr(struct kvm_vcpu
+ 	msr.data = data;
+ 	msr.index = ecx;
+ 	msr.host_initiated = false;
+-	if (vmx_set_msr(vcpu, &msr) != 0) {
++	if (kvm_set_msr(vcpu, &msr) != 0) {
+ 		trace_kvm_msr_write_ex(ecx, data);
+ 		kvm_inject_gp(vcpu, 0);
+ 		return 1;
+--- a/arch/x86/kvm/x86.c
++++ b/arch/x86/kvm/x86.c
+@@ -948,7 +948,6 @@ void kvm_enable_efer_bits(u64 mask)
+ }
+ EXPORT_SYMBOL_GPL(kvm_enable_efer_bits);
+ 
+-
+ /*
+  * Writes msr value into into the appropriate "register".
+  * Returns 0 on success, non-0 otherwise.
+@@ -956,8 +955,34 @@ EXPORT_SYMBOL_GPL(kvm_enable_efer_bits);
+  */
+ int kvm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr)
+ {
++	switch (msr->index) {
++	case MSR_FS_BASE:
++	case MSR_GS_BASE:
++	case MSR_KERNEL_GS_BASE:
++	case MSR_CSTAR:
++	case MSR_LSTAR:
++		if (is_noncanonical_address(msr->data))
++			return 1;
++		break;
++	case MSR_IA32_SYSENTER_EIP:
++	case MSR_IA32_SYSENTER_ESP:
++		/*
++		 * IA32_SYSENTER_ESP and IA32_SYSENTER_EIP cause #GP if
++		 * non-canonical address is written on Intel but not on
++		 * AMD (which ignores the top 32-bits, because it does
++		 * not implement 64-bit SYSENTER).
++		 *
++		 * 64-bit code should hence be able to write a non-canonical
++		 * value on AMD.  Making the address canonical ensures that
++		 * vmentry does not fail on Intel after writing a non-canonical
++		 * value, and that something deterministic happens if the guest
++		 * invokes 64-bit SYSENTER.
++		 */
++		msr->data = get_canonical(msr->data);
++	}
+ 	return kvm_x86_ops->set_msr(vcpu, msr);
+ }
++EXPORT_SYMBOL_GPL(kvm_set_msr);
+ 
+ /*
+  * Adapt set_msr() to msr_io()'s calling convention

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Emulator-fixes-for-eip-canonical-checks-on-n.patch (from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Emulator-fixes-for-eip-canonical-checks-on-n.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Emulator-fixes-for-eip-canonical-checks-on-n.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Emulator-fixes-for-eip-canonical-checks-on-n.patch)
@@ -0,0 +1,229 @@
+From: Nadav Amit <namit at cs.technion.ac.il>
+Date: Thu, 18 Sep 2014 22:39:38 +0300
+Subject: KVM: x86: Emulator fixes for eip canonical checks on near branches
+Origin: https://git.kernel.org/linus/234f3ce485d54017f15cf5e0699cff4100121601
+
+Before changing rip (during jmp, call, ret, etc.) the target should be asserted
+to be canonical one, as real CPUs do.  During sysret, both target rsp and rip
+should be canonical. If any of these values is noncanonical, a #GP exception
+should occur.  The exception to this rule are syscall and sysenter instructions
+in which the assigned rip is checked during the assignment to the relevant
+MSRs.
+
+This patch fixes the emulator to behave as real CPUs do for near branches.
+Far branches are handled by the next patch.
+
+This fixes CVE-2014-3647.
+
+Cc: stable at vger.kernel.org
+Signed-off-by: Nadav Amit <namit at cs.technion.ac.il>
+Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
+---
+ arch/x86/kvm/emulate.c | 78 ++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 54 insertions(+), 24 deletions(-)
+
+--- a/arch/x86/kvm/emulate.c
++++ b/arch/x86/kvm/emulate.c
+@@ -572,7 +572,8 @@ static int emulate_nm(struct x86_emulate
+ 	return emulate_exception(ctxt, NM_VECTOR, 0, false);
+ }
+ 
+-static inline void assign_eip_near(struct x86_emulate_ctxt *ctxt, ulong dst)
++static inline int assign_eip_far(struct x86_emulate_ctxt *ctxt, ulong dst,
++			       int cs_l)
+ {
+ 	switch (ctxt->op_bytes) {
+ 	case 2:
+@@ -582,16 +583,25 @@ static inline void assign_eip_near(struc
+ 		ctxt->_eip = (u32)dst;
+ 		break;
+ 	case 8:
++		if ((cs_l && is_noncanonical_address(dst)) ||
++		    (!cs_l && (dst & ~(u32)-1)))
++			return emulate_gp(ctxt, 0);
+ 		ctxt->_eip = dst;
+ 		break;
+ 	default:
+ 		WARN(1, "unsupported eip assignment size\n");
+ 	}
++	return X86EMUL_CONTINUE;
++}
++
++static inline int assign_eip_near(struct x86_emulate_ctxt *ctxt, ulong dst)
++{
++	return assign_eip_far(ctxt, dst, ctxt->mode == X86EMUL_MODE_PROT64);
+ }
+ 
+-static inline void jmp_rel(struct x86_emulate_ctxt *ctxt, int rel)
++static inline int jmp_rel(struct x86_emulate_ctxt *ctxt, int rel)
+ {
+-	assign_eip_near(ctxt, ctxt->_eip + rel);
++	return assign_eip_near(ctxt, ctxt->_eip + rel);
+ }
+ 
+ static u16 get_segment_selector(struct x86_emulate_ctxt *ctxt, unsigned seg)
+@@ -1986,13 +1996,15 @@ static int em_grp45(struct x86_emulate_c
+ 	case 2: /* call near abs */ {
+ 		long int old_eip;
+ 		old_eip = ctxt->_eip;
+-		ctxt->_eip = ctxt->src.val;
++		rc = assign_eip_near(ctxt, ctxt->src.val);
++		if (rc != X86EMUL_CONTINUE)
++			break;
+ 		ctxt->src.val = old_eip;
+ 		rc = em_push(ctxt);
+ 		break;
+ 	}
+ 	case 4: /* jmp abs */
+-		ctxt->_eip = ctxt->src.val;
++		rc = assign_eip_near(ctxt, ctxt->src.val);
+ 		break;
+ 	case 5: /* jmp far */
+ 		rc = em_jmp_far(ctxt);
+@@ -2024,10 +2036,14 @@ static int em_cmpxchg8b(struct x86_emula
+ 
+ static int em_ret(struct x86_emulate_ctxt *ctxt)
+ {
+-	ctxt->dst.type = OP_REG;
+-	ctxt->dst.addr.reg = &ctxt->_eip;
+-	ctxt->dst.bytes = ctxt->op_bytes;
+-	return em_pop(ctxt);
++	int rc;
++	unsigned long eip;
++
++	rc = emulate_pop(ctxt, &eip, ctxt->op_bytes);
++	if (rc != X86EMUL_CONTINUE)
++		return rc;
++
++	return assign_eip_near(ctxt, eip);
+ }
+ 
+ static int em_ret_far(struct x86_emulate_ctxt *ctxt)
+@@ -2305,7 +2321,7 @@ static int em_sysexit(struct x86_emulate
+ {
+ 	const struct x86_emulate_ops *ops = ctxt->ops;
+ 	struct desc_struct cs, ss;
+-	u64 msr_data;
++	u64 msr_data, rcx, rdx;
+ 	int usermode;
+ 	u16 cs_sel = 0, ss_sel = 0;
+ 
+@@ -2321,6 +2337,9 @@ static int em_sysexit(struct x86_emulate
+ 	else
+ 		usermode = X86EMUL_MODE_PROT32;
+ 
++	rcx = reg_read(ctxt, VCPU_REGS_RCX);
++	rdx = reg_read(ctxt, VCPU_REGS_RDX);
++
+ 	cs.dpl = 3;
+ 	ss.dpl = 3;
+ 	ops->get_msr(ctxt, MSR_IA32_SYSENTER_CS, &msr_data);
+@@ -2338,6 +2357,9 @@ static int em_sysexit(struct x86_emulate
+ 		ss_sel = cs_sel + 8;
+ 		cs.d = 0;
+ 		cs.l = 1;
++		if (is_noncanonical_address(rcx) ||
++		    is_noncanonical_address(rdx))
++			return emulate_gp(ctxt, 0);
+ 		break;
+ 	}
+ 	cs_sel |= SELECTOR_RPL_MASK;
+@@ -2346,8 +2368,8 @@ static int em_sysexit(struct x86_emulate
+ 	ops->set_segment(ctxt, cs_sel, &cs, 0, VCPU_SREG_CS);
+ 	ops->set_segment(ctxt, ss_sel, &ss, 0, VCPU_SREG_SS);
+ 
+-	ctxt->_eip = reg_read(ctxt, VCPU_REGS_RDX);
+-	*reg_write(ctxt, VCPU_REGS_RSP) = reg_read(ctxt, VCPU_REGS_RCX);
++	ctxt->_eip = rdx;
++	*reg_write(ctxt, VCPU_REGS_RSP) = rcx;
+ 
+ 	return X86EMUL_CONTINUE;
+ }
+@@ -2888,10 +2910,13 @@ static int em_aad(struct x86_emulate_ctx
+ 
+ static int em_call(struct x86_emulate_ctxt *ctxt)
+ {
++	int rc;
+ 	long rel = ctxt->src.val;
+ 
+ 	ctxt->src.val = (unsigned long)ctxt->_eip;
+-	jmp_rel(ctxt, rel);
++	rc = jmp_rel(ctxt, rel);
++	if (rc != X86EMUL_CONTINUE)
++		return rc;
+ 	return em_push(ctxt);
+ }
+ 
+@@ -2923,11 +2948,12 @@ static int em_call_far(struct x86_emulat
+ static int em_ret_near_imm(struct x86_emulate_ctxt *ctxt)
+ {
+ 	int rc;
++	unsigned long eip;
+ 
+-	ctxt->dst.type = OP_REG;
+-	ctxt->dst.addr.reg = &ctxt->_eip;
+-	ctxt->dst.bytes = ctxt->op_bytes;
+-	rc = emulate_pop(ctxt, &ctxt->dst.val, ctxt->op_bytes);
++	rc = emulate_pop(ctxt, &eip, ctxt->op_bytes);
++	if (rc != X86EMUL_CONTINUE)
++		return rc;
++	rc = assign_eip_near(ctxt, eip);
+ 	if (rc != X86EMUL_CONTINUE)
+ 		return rc;
+ 	rsp_increment(ctxt, ctxt->src.val);
+@@ -3257,20 +3283,24 @@ static int em_lmsw(struct x86_emulate_ct
+ 
+ static int em_loop(struct x86_emulate_ctxt *ctxt)
+ {
++	int rc = X86EMUL_CONTINUE;
++
+ 	register_address_increment(ctxt, reg_rmw(ctxt, VCPU_REGS_RCX), -1);
+ 	if ((address_mask(ctxt, reg_read(ctxt, VCPU_REGS_RCX)) != 0) &&
+ 	    (ctxt->b == 0xe2 || test_cc(ctxt->b ^ 0x5, ctxt->eflags)))
+-		jmp_rel(ctxt, ctxt->src.val);
++		rc = jmp_rel(ctxt, ctxt->src.val);
+ 
+-	return X86EMUL_CONTINUE;
++	return rc;
+ }
+ 
+ static int em_jcxz(struct x86_emulate_ctxt *ctxt)
+ {
++	int rc = X86EMUL_CONTINUE;
++
+ 	if (address_mask(ctxt, reg_read(ctxt, VCPU_REGS_RCX)) == 0)
+-		jmp_rel(ctxt, ctxt->src.val);
++		rc = jmp_rel(ctxt, ctxt->src.val);
+ 
+-	return X86EMUL_CONTINUE;
++	return rc;
+ }
+ 
+ static int em_in(struct x86_emulate_ctxt *ctxt)
+@@ -4671,7 +4701,7 @@ special_insn:
+ 		break;
+ 	case 0x70 ... 0x7f: /* jcc (short) */
+ 		if (test_cc(ctxt->b, ctxt->eflags))
+-			jmp_rel(ctxt, ctxt->src.val);
++			rc = jmp_rel(ctxt, ctxt->src.val);
+ 		break;
+ 	case 0x8d: /* lea r16/r32, m */
+ 		ctxt->dst.val = ctxt->src.addr.mem.ea;
+@@ -4700,7 +4730,7 @@ special_insn:
+ 		break;
+ 	case 0xe9: /* jmp rel */
+ 	case 0xeb: /* jmp rel short */
+-		jmp_rel(ctxt, ctxt->src.val);
++		rc = jmp_rel(ctxt, ctxt->src.val);
+ 		ctxt->dst.type = OP_NONE; /* Disable writeback. */
+ 		break;
+ 	case 0xf4:              /* hlt */
+@@ -4820,7 +4850,7 @@ twobyte_insn:
+ 		break;
+ 	case 0x80 ... 0x8f: /* jnz rel, etc*/
+ 		if (test_cc(ctxt->b, ctxt->eflags))
+-			jmp_rel(ctxt, ctxt->src.val);
++			rc = jmp_rel(ctxt, ctxt->src.val);
+ 		break;
+ 	case 0x90 ... 0x9f:     /* setcc r/m8 */
+ 		ctxt->dst.val = test_cc(ctxt->b, ctxt->eflags);

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Fix-wrong-masking-on-relative-jump-call.patch (from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Fix-wrong-masking-on-relative-jump-call.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Fix-wrong-masking-on-relative-jump-call.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Fix-wrong-masking-on-relative-jump-call.patch)
@@ -0,0 +1,60 @@
+From: Nadav Amit <namit at cs.technion.ac.il>
+Date: Thu, 18 Sep 2014 22:39:37 +0300
+Subject: KVM: x86: Fix wrong masking on relative jump/call
+Origin: https://git.kernel.org/linus/05c83ec9b73c8124555b706f6af777b10adf0862
+
+Relative jumps and calls do the masking according to the operand size, and not
+according to the address size as the KVM emulator does today.
+
+This patch fixes KVM behavior.
+
+Cc: stable at vger.kernel.org
+Signed-off-by: Nadav Amit <namit at cs.technion.ac.il>
+Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
+---
+ arch/x86/kvm/emulate.c | 27 ++++++++++++++++++++++-----
+ 1 file changed, 22 insertions(+), 5 deletions(-)
+
+--- a/arch/x86/kvm/emulate.c
++++ b/arch/x86/kvm/emulate.c
+@@ -499,11 +499,6 @@ static void rsp_increment(struct x86_emu
+ 	masked_increment(reg_rmw(ctxt, VCPU_REGS_RSP), stack_mask(ctxt), inc);
+ }
+ 
+-static inline void jmp_rel(struct x86_emulate_ctxt *ctxt, int rel)
+-{
+-	register_address_increment(ctxt, &ctxt->_eip, rel);
+-}
+-
+ static u32 desc_limit_scaled(struct desc_struct *desc)
+ {
+ 	u32 limit = get_desc_limit(desc);
+@@ -577,6 +572,28 @@ static int emulate_nm(struct x86_emulate
+ 	return emulate_exception(ctxt, NM_VECTOR, 0, false);
+ }
+ 
++static inline void assign_eip_near(struct x86_emulate_ctxt *ctxt, ulong dst)
++{
++	switch (ctxt->op_bytes) {
++	case 2:
++		ctxt->_eip = (u16)dst;
++		break;
++	case 4:
++		ctxt->_eip = (u32)dst;
++		break;
++	case 8:
++		ctxt->_eip = dst;
++		break;
++	default:
++		WARN(1, "unsupported eip assignment size\n");
++	}
++}
++
++static inline void jmp_rel(struct x86_emulate_ctxt *ctxt, int rel)
++{
++	assign_eip_near(ctxt, ctxt->_eip + rel);
++}
++
+ static u16 get_segment_selector(struct x86_emulate_ctxt *ctxt, unsigned seg)
+ {
+ 	u16 selector;

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Handle-errors-when-RIP-is-set-during-far-jum.patch (from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Handle-errors-when-RIP-is-set-during-far-jum.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Handle-errors-when-RIP-is-set-during-far-jum.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Handle-errors-when-RIP-is-set-during-far-jum.patch)
@@ -0,0 +1,246 @@
+From: Nadav Amit <namit at cs.technion.ac.il>
+Date: Thu, 18 Sep 2014 22:39:39 +0300
+Subject: KVM: x86: Handle errors when RIP is set during far jumps
+Origin: https://git.kernel.org/linus/d1442d85cc30ea75f7d399474ca738e0bc96f715
+
+Far jmp/call/ret may fault while loading a new RIP.  Currently KVM does not
+handle this case, and may result in failed vm-entry once the assignment is
+done.  The tricky part of doing so is that loading the new CS affects the
+VMCS/VMCB state, so if we fail during loading the new RIP, we are left in
+unconsistent state.  Therefore, this patch saves on 64-bit the old CS
+descriptor and restores it if loading RIP failed.
+
+This fixes CVE-2014-3647.
+
+Cc: stable at vger.kernel.org
+Signed-off-by: Nadav Amit <namit at cs.technion.ac.il>
+Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
+[bwh: Backported to 3.16: Adjust context]
+---
+ arch/x86/kvm/emulate.c | 118 ++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 88 insertions(+), 30 deletions(-)
+
+--- a/arch/x86/kvm/emulate.c
++++ b/arch/x86/kvm/emulate.c
+@@ -1439,7 +1439,9 @@ static int write_segment_descriptor(stru
+ 
+ /* Does not support long mode */
+ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt,
+-				     u16 selector, int seg, u8 cpl, bool in_task_switch)
++				     u16 selector, int seg, u8 cpl,
++				     bool in_task_switch,
++				     struct desc_struct *desc)
+ {
+ 	struct desc_struct seg_desc, old_desc;
+ 	u8 dpl, rpl;
+@@ -1568,6 +1570,8 @@ static int __load_segment_descriptor(str
+ 	}
+ load:
+ 	ctxt->ops->set_segment(ctxt, selector, &seg_desc, 0, seg);
++	if (desc)
++		*desc = seg_desc;
+ 	return X86EMUL_CONTINUE;
+ exception:
+ 	emulate_exception(ctxt, err_vec, err_code, true);
+@@ -1578,7 +1582,7 @@ static int load_segment_descriptor(struc
+ 				   u16 selector, int seg)
+ {
+ 	u8 cpl = ctxt->ops->cpl(ctxt);
+-	return __load_segment_descriptor(ctxt, selector, seg, cpl, false);
++	return __load_segment_descriptor(ctxt, selector, seg, cpl, false, NULL);
+ }
+ 
+ static void write_register_operand(struct operand *op)
+@@ -1975,17 +1979,31 @@ static int em_iret(struct x86_emulate_ct
+ static int em_jmp_far(struct x86_emulate_ctxt *ctxt)
+ {
+ 	int rc;
+-	unsigned short sel;
++	unsigned short sel, old_sel;
++	struct desc_struct old_desc, new_desc;
++	const struct x86_emulate_ops *ops = ctxt->ops;
++	u8 cpl = ctxt->ops->cpl(ctxt);
++
++	/* Assignment of RIP may only fail in 64-bit mode */
++	if (ctxt->mode == X86EMUL_MODE_PROT64)
++		ops->get_segment(ctxt, &old_sel, &old_desc, NULL,
++				 VCPU_SREG_CS);
+ 
+ 	memcpy(&sel, ctxt->src.valptr + ctxt->op_bytes, 2);
+ 
+-	rc = load_segment_descriptor(ctxt, sel, VCPU_SREG_CS);
++	rc = __load_segment_descriptor(ctxt, sel, VCPU_SREG_CS, cpl, false,
++				       &new_desc);
+ 	if (rc != X86EMUL_CONTINUE)
+ 		return rc;
+ 
+-	ctxt->_eip = 0;
+-	memcpy(&ctxt->_eip, ctxt->src.valptr, ctxt->op_bytes);
+-	return X86EMUL_CONTINUE;
++	rc = assign_eip_far(ctxt, ctxt->src.val, new_desc.l);
++	if (rc != X86EMUL_CONTINUE) {
++		WARN_ON(!ctxt->mode != X86EMUL_MODE_PROT64);
++		/* assigning eip failed; restore the old cs */
++		ops->set_segment(ctxt, old_sel, &old_desc, 0, VCPU_SREG_CS);
++		return rc;
++	}
++	return rc;
+ }
+ 
+ static int em_grp45(struct x86_emulate_ctxt *ctxt)
+@@ -2049,21 +2067,34 @@ static int em_ret(struct x86_emulate_ctx
+ static int em_ret_far(struct x86_emulate_ctxt *ctxt)
+ {
+ 	int rc;
+-	unsigned long cs;
++	unsigned long eip, cs;
++	u16 old_cs;
+ 	int cpl = ctxt->ops->cpl(ctxt);
++	struct desc_struct old_desc, new_desc;
++	const struct x86_emulate_ops *ops = ctxt->ops;
++
++	if (ctxt->mode == X86EMUL_MODE_PROT64)
++		ops->get_segment(ctxt, &old_cs, &old_desc, NULL,
++				 VCPU_SREG_CS);
+ 
+-	rc = emulate_pop(ctxt, &ctxt->_eip, ctxt->op_bytes);
++	rc = emulate_pop(ctxt, &eip, ctxt->op_bytes);
+ 	if (rc != X86EMUL_CONTINUE)
+ 		return rc;
+-	if (ctxt->op_bytes == 4)
+-		ctxt->_eip = (u32)ctxt->_eip;
+ 	rc = emulate_pop(ctxt, &cs, ctxt->op_bytes);
+ 	if (rc != X86EMUL_CONTINUE)
+ 		return rc;
+ 	/* Outer-privilege level return is not implemented */
+ 	if (ctxt->mode >= X86EMUL_MODE_PROT16 && (cs & 3) > cpl)
+ 		return X86EMUL_UNHANDLEABLE;
+-	rc = load_segment_descriptor(ctxt, (u16)cs, VCPU_SREG_CS);
++	rc = __load_segment_descriptor(ctxt, (u16)cs, VCPU_SREG_CS, 0, false,
++				       &new_desc);
++	if (rc != X86EMUL_CONTINUE)
++		return rc;
++	rc = assign_eip_far(ctxt, eip, new_desc.l);
++	if (rc != X86EMUL_CONTINUE) {
++		WARN_ON(!ctxt->mode != X86EMUL_MODE_PROT64);
++		ops->set_segment(ctxt, old_cs, &old_desc, 0, VCPU_SREG_CS);
++	}
+ 	return rc;
+ }
+ 
+@@ -2487,19 +2518,24 @@ static int load_state_from_tss16(struct
+ 	 * Now load segment descriptors. If fault happens at this stage
+ 	 * it is handled in a context of new task
+ 	 */
+-	ret = __load_segment_descriptor(ctxt, tss->ldt, VCPU_SREG_LDTR, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->ldt, VCPU_SREG_LDTR, cpl,
++					true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+-	ret = __load_segment_descriptor(ctxt, tss->es, VCPU_SREG_ES, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->es, VCPU_SREG_ES, cpl,
++					true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+-	ret = __load_segment_descriptor(ctxt, tss->cs, VCPU_SREG_CS, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->cs, VCPU_SREG_CS, cpl,
++					true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+-	ret = __load_segment_descriptor(ctxt, tss->ss, VCPU_SREG_SS, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->ss, VCPU_SREG_SS, cpl,
++					true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+-	ret = __load_segment_descriptor(ctxt, tss->ds, VCPU_SREG_DS, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->ds, VCPU_SREG_DS, cpl,
++					true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+ 
+@@ -2624,25 +2660,32 @@ static int load_state_from_tss32(struct
+ 	 * Now load segment descriptors. If fault happenes at this stage
+ 	 * it is handled in a context of new task
+ 	 */
+-	ret = __load_segment_descriptor(ctxt, tss->ldt_selector, VCPU_SREG_LDTR, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->ldt_selector, VCPU_SREG_LDTR,
++					cpl, true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+-	ret = __load_segment_descriptor(ctxt, tss->es, VCPU_SREG_ES, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->es, VCPU_SREG_ES, cpl,
++					true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+-	ret = __load_segment_descriptor(ctxt, tss->cs, VCPU_SREG_CS, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->cs, VCPU_SREG_CS, cpl,
++					true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+-	ret = __load_segment_descriptor(ctxt, tss->ss, VCPU_SREG_SS, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->ss, VCPU_SREG_SS, cpl,
++					true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+-	ret = __load_segment_descriptor(ctxt, tss->ds, VCPU_SREG_DS, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->ds, VCPU_SREG_DS, cpl,
++					true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+-	ret = __load_segment_descriptor(ctxt, tss->fs, VCPU_SREG_FS, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->fs, VCPU_SREG_FS, cpl,
++					true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+-	ret = __load_segment_descriptor(ctxt, tss->gs, VCPU_SREG_GS, cpl, true);
++	ret = __load_segment_descriptor(ctxt, tss->gs, VCPU_SREG_GS, cpl,
++					true, NULL);
+ 	if (ret != X86EMUL_CONTINUE)
+ 		return ret;
+ 
+@@ -2925,24 +2968,39 @@ static int em_call_far(struct x86_emulat
+ 	u16 sel, old_cs;
+ 	ulong old_eip;
+ 	int rc;
++	struct desc_struct old_desc, new_desc;
++	const struct x86_emulate_ops *ops = ctxt->ops;
++	int cpl = ctxt->ops->cpl(ctxt);
+ 
+-	old_cs = get_segment_selector(ctxt, VCPU_SREG_CS);
+ 	old_eip = ctxt->_eip;
++	ops->get_segment(ctxt, &old_cs, &old_desc, NULL, VCPU_SREG_CS);
+ 
+ 	memcpy(&sel, ctxt->src.valptr + ctxt->op_bytes, 2);
+-	if (load_segment_descriptor(ctxt, sel, VCPU_SREG_CS))
++	rc = __load_segment_descriptor(ctxt, sel, VCPU_SREG_CS, cpl, false,
++				       &new_desc);
++	if (rc != X86EMUL_CONTINUE)
+ 		return X86EMUL_CONTINUE;
+ 
+-	ctxt->_eip = 0;
+-	memcpy(&ctxt->_eip, ctxt->src.valptr, ctxt->op_bytes);
++	rc = assign_eip_far(ctxt, ctxt->src.val, new_desc.l);
++	if (rc != X86EMUL_CONTINUE)
++		goto fail;
+ 
+ 	ctxt->src.val = old_cs;
+ 	rc = em_push(ctxt);
+ 	if (rc != X86EMUL_CONTINUE)
+-		return rc;
++		goto fail;
+ 
+ 	ctxt->src.val = old_eip;
+-	return em_push(ctxt);
++	rc = em_push(ctxt);
++	/* If we failed, we tainted the memory, but the very least we should
++	   restore cs */
++	if (rc != X86EMUL_CONTINUE)
++		goto fail;
++	return rc;
++fail:
++	ops->set_segment(ctxt, old_cs, &old_desc, 0, VCPU_SREG_CS);
++	return rc;
++
+ }
+ 
+ static int em_ret_near_imm(struct x86_emulate_ctxt *ctxt)

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Improve-thread-safety-in-pit.patch (from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Improve-thread-safety-in-pit.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Improve-thread-safety-in-pit.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Improve-thread-safety-in-pit.patch)
@@ -0,0 +1,34 @@
+From: Andy Honig <ahonig at google.com>
+Date: Wed, 27 Aug 2014 14:42:54 -0700
+Subject: KVM: x86: Improve thread safety in pit
+Origin: https://git.kernel.org/linus/2febc839133280d5a5e8e1179c94ea674489dae2
+
+There's a race condition in the PIT emulation code in KVM.  In
+__kvm_migrate_pit_timer the pit_timer object is accessed without
+synchronization.  If the race condition occurs at the wrong time this
+can crash the host kernel.
+
+This fixes CVE-2014-3611.
+
+Cc: stable at vger.kernel.org
+Signed-off-by: Andrew Honig <ahonig at google.com>
+Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
+---
+ arch/x86/kvm/i8254.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c
+index 518d864..298781d 100644
+--- a/arch/x86/kvm/i8254.c
++++ b/arch/x86/kvm/i8254.c
+@@ -262,8 +262,10 @@ void __kvm_migrate_pit_timer(struct kvm_vcpu *vcpu)
+ 		return;
+ 
+ 	timer = &pit->pit_state.timer;
++	mutex_lock(&pit->pit_state.lock);
+ 	if (hrtimer_cancel(timer))
+ 		hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
++	mutex_unlock(&pit->pit_state.lock);
+ }
+ 
+ static void destroy_pit_timer(struct kvm_pit *pit)

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Prevent-host-from-panicking-on-shared-MSR-wr.patch (from r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Prevent-host-from-panicking-on-shared-MSR-wr.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/KVM-x86-Prevent-host-from-panicking-on-shared-MSR-wr.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/x86/KVM-x86-Prevent-host-from-panicking-on-shared-MSR-wr.patch)
@@ -0,0 +1,81 @@
+From: Andy Honig <ahonig at google.com>
+Date: Wed, 27 Aug 2014 11:16:44 -0700
+Subject: KVM: x86: Prevent host from panicking on shared MSR writes.
+Origin: https://git.kernel.org/linus/8b3c3104c3f4f706e99365c3e0d2aa61b95f969f
+
+The previous patch blocked invalid writes directly when the MSR
+is written.  As a precaution, prevent future similar mistakes by
+gracefulling handle GPs caused by writes to shared MSRs.
+
+Cc: stable at vger.kernel.org
+Signed-off-by: Andrew Honig <ahonig at google.com>
+[Remove parts obsoleted by Nadav's patch. - Paolo]
+Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
+---
+ arch/x86/include/asm/kvm_host.h |  2 +-
+ arch/x86/kvm/vmx.c              |  7 +++++--
+ arch/x86/kvm/x86.c              | 11 ++++++++---
+ 3 files changed, 14 insertions(+), 6 deletions(-)
+
+--- a/arch/x86/include/asm/kvm_host.h
++++ b/arch/x86/include/asm/kvm_host.h
+@@ -1061,7 +1061,7 @@ int kvm_cpu_get_interrupt(struct kvm_vcp
+ void kvm_vcpu_reset(struct kvm_vcpu *vcpu);
+ 
+ void kvm_define_shared_msr(unsigned index, u32 msr);
+-void kvm_set_shared_msr(unsigned index, u64 val, u64 mask);
++int kvm_set_shared_msr(unsigned index, u64 val, u64 mask);
+ 
+ bool kvm_is_linear_rip(struct kvm_vcpu *vcpu, unsigned long linear_rip);
+ 
+--- a/arch/x86/kvm/vmx.c
++++ b/arch/x86/kvm/vmx.c
+@@ -2615,12 +2615,15 @@ static int vmx_set_msr(struct kvm_vcpu *
+ 	default:
+ 		msr = find_msr_entry(vmx, msr_index);
+ 		if (msr) {
++			u64 old_msr_data = msr->data;
+ 			msr->data = data;
+ 			if (msr - vmx->guest_msrs < vmx->save_nmsrs) {
+ 				preempt_disable();
+-				kvm_set_shared_msr(msr->index, msr->data,
+-						   msr->mask);
++				ret = kvm_set_shared_msr(msr->index, msr->data,
++							 msr->mask);
+ 				preempt_enable();
++				if (ret)
++					msr->data = old_msr_data;
+ 			}
+ 			break;
+ 		}
+--- a/arch/x86/kvm/x86.c
++++ b/arch/x86/kvm/x86.c
+@@ -227,20 +227,25 @@ static void kvm_shared_msr_cpu_online(vo
+ 		shared_msr_update(i, shared_msrs_global.msrs[i]);
+ }
+ 
+-void kvm_set_shared_msr(unsigned slot, u64 value, u64 mask)
++int kvm_set_shared_msr(unsigned slot, u64 value, u64 mask)
+ {
+ 	unsigned int cpu = smp_processor_id();
+ 	struct kvm_shared_msrs *smsr = per_cpu_ptr(shared_msrs, cpu);
++	int err;
+ 
+ 	if (((value ^ smsr->values[slot].curr) & mask) == 0)
+-		return;
++		return 0;
+ 	smsr->values[slot].curr = value;
+-	wrmsrl(shared_msrs_global.msrs[slot], value);
++	err = wrmsrl_safe(shared_msrs_global.msrs[slot], value);
++	if (err)
++		return 1;
++
+ 	if (!smsr->registered) {
+ 		smsr->urn.on_user_return = kvm_on_user_return;
+ 		user_return_notifier_register(&smsr->urn);
+ 		smsr->registered = true;
+ 	}
++	return 0;
+ }
+ EXPORT_SYMBOL_GPL(kvm_set_shared_msr);
+ 

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-Add-some-L3-registers-to-the-parser-whiteli.patch (from r22048, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-Add-some-L3-registers-to-the-parser-whiteli.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-Add-some-L3-registers-to-the-parser-whiteli.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-Add-some-L3-registers-to-the-parser-whiteli.patch)
@@ -0,0 +1,38 @@
+From: Brad Volkin <bradley.d.volkin at intel.com>
+Date: Tue, 17 Jun 2014 14:10:34 -0700
+Subject: drm/i915: Add some L3 registers to the parser whitelist
+Origin: https://git.kernel.org/linus/c9224faa59c3071ecfa2d4b24592f4eb61e57069
+
+Beignet needs these in order to program the L3 cache config for
+OpenCL workloads, particularly when using SLM.
+
+Signed-off-by: Brad Volkin <bradley.d.volkin at intel.com>
+Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
+---
+ drivers/gpu/drm/i915/i915_cmd_parser.c | 3 +++
+ drivers/gpu/drm/i915/i915_reg.h        | 2 ++
+ 2 files changed, 5 insertions(+)
+
+--- a/drivers/gpu/drm/i915/i915_cmd_parser.c
++++ b/drivers/gpu/drm/i915/i915_cmd_parser.c
+@@ -426,6 +426,9 @@ static const u32 gen7_render_regs[] = {
+ 	GEN7_SO_WRITE_OFFSET(1),
+ 	GEN7_SO_WRITE_OFFSET(2),
+ 	GEN7_SO_WRITE_OFFSET(3),
++	GEN7_L3SQCREG1,
++	GEN7_L3CNTLREG2,
++	GEN7_L3CNTLREG3,
+ };
+ 
+ static const u32 gen7_blt_regs[] = {
+--- a/drivers/gpu/drm/i915/i915_reg.h
++++ b/drivers/gpu/drm/i915/i915_reg.h
+@@ -4630,6 +4630,8 @@ enum punit_power_well {
+ #define GEN7_L3CNTLREG1				0xB01C
+ #define  GEN7_WA_FOR_GEN7_L3_CONTROL			0x3C47FF8C
+ #define  GEN7_L3AGDIS				(1<<19)
++#define GEN7_L3CNTLREG2				0xB020
++#define GEN7_L3CNTLREG3				0xB024
+ 
+ #define GEN7_L3_CHICKEN_MODE_REGISTER		0xB030
+ #define  GEN7_WA_L3_CHICKEN_MODE				0x20000000

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-initialise-userptr-mmu_notifier-serial-to-1.patch (from r22048, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-initialise-userptr-mmu_notifier-serial-to-1.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-initialise-userptr-mmu_notifier-serial-to-1.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-initialise-userptr-mmu_notifier-serial-to-1.patch)
@@ -0,0 +1,39 @@
+From: Chris Wilson <chris at chris-wilson.co.uk>
+Date: Fri, 11 Jul 2014 11:28:01 +0100
+Subject: drm/i915: Initialise userptr mmu_notifier serial to 1
+Origin: https://git.kernel.org/linus/6c308fecb4d1f928d52f9586d976f79b37149388
+Bug-Debian: https://bugs.debian.org/765590
+
+During the range invalidate, we walk the list of buffers associated with
+the mmu_notifer and find the ones that overlap the range. An
+optimisation is made to speed up the iteration by assuming the previous
+iter is still valid whilst the tree is unmodified. This exposes a bug
+when a range invalidate is triggered after we have just created the
+mmu_notifier, but before attaching any buffers. In that case, we presume
+we have an unmodified list and start walking from the last iter which is
+NULL. Oops.
+
+The easiest fix is then to initialise the serial of the tree to 1.
+
+Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
+Cc: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
+Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
+Testecase: igt/gem_userptr_blts/stress-mm
+Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
+---
+ drivers/gpu/drm/i915/i915_gem_userptr.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c b/drivers/gpu/drm/i915/i915_gem_userptr.c
+index 21ea928..b41614d 100644
+--- a/drivers/gpu/drm/i915/i915_gem_userptr.c
++++ b/drivers/gpu/drm/i915/i915_gem_userptr.c
+@@ -150,7 +150,7 @@ i915_mmu_notifier_get(struct drm_device *dev, struct mm_struct *mm)
+ 	mmu->mm = mm;
+ 	mmu->objects = RB_ROOT;
+ 	mmu->count = 0;
+-	mmu->serial = 0;
++	mmu->serial = 1;
+ 
+ 	/* Protected by mmap_sem (write-lock) */
+ 	ret = __mmu_notifier_register(&mmu->mn, mm);

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/kvm-vmx-handle-invvpid-vm-exit-gracefully.patch (from r22048, dists/sid/linux/debian/patches/bugfix/x86/kvm-vmx-handle-invvpid-vm-exit-gracefully.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/kvm-vmx-handle-invvpid-vm-exit-gracefully.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/x86/kvm-vmx-handle-invvpid-vm-exit-gracefully.patch)
@@ -0,0 +1,72 @@
+From: Petr Matousek <pmatouse at redhat.com>
+Date: Tue, 23 Sep 2014 20:22:30 +0200
+Subject: kvm: vmx: handle invvpid vm exit gracefully
+Origin: https://git.kernel.org/linus/a642fc305053cc1c6e47e4f4df327895747ab485
+
+On systems with invvpid instruction support (corresponding bit in
+IA32_VMX_EPT_VPID_CAP MSR is set) guest invocation of invvpid
+causes vm exit, which is currently not handled and results in
+propagation of unknown exit to userspace.
+
+Fix this by installing an invvpid vm exit handler.
+
+This is CVE-2014-3646.
+
+Cc: stable at vger.kernel.org
+Signed-off-by: Petr Matousek <pmatouse at redhat.com>
+Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
+---
+ arch/x86/include/uapi/asm/vmx.h | 2 ++
+ arch/x86/kvm/vmx.c              | 9 ++++++++-
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+
+--- a/arch/x86/include/uapi/asm/vmx.h
++++ b/arch/x86/include/uapi/asm/vmx.h
+@@ -67,6 +67,7 @@
+ #define EXIT_REASON_EPT_MISCONFIG       49
+ #define EXIT_REASON_INVEPT              50
+ #define EXIT_REASON_PREEMPTION_TIMER    52
++#define EXIT_REASON_INVVPID             53
+ #define EXIT_REASON_WBINVD              54
+ #define EXIT_REASON_XSETBV              55
+ #define EXIT_REASON_APIC_WRITE          56
+@@ -114,6 +115,7 @@
+ 	{ EXIT_REASON_EOI_INDUCED,           "EOI_INDUCED" }, \
+ 	{ EXIT_REASON_INVALID_STATE,         "INVALID_STATE" }, \
+ 	{ EXIT_REASON_INVD,                  "INVD" }, \
++	{ EXIT_REASON_INVVPID,               "INVVPID" }, \
+ 	{ EXIT_REASON_INVPCID,               "INVPCID" }
+ 
+ #endif /* _UAPIVMX_H */
+--- a/arch/x86/kvm/vmx.c
++++ b/arch/x86/kvm/vmx.c
+@@ -6618,6 +6618,12 @@ static int handle_invept(struct kvm_vcpu
+ 	return 1;
+ }
+ 
++static int handle_invvpid(struct kvm_vcpu *vcpu)
++{
++	kvm_queue_exception(vcpu, UD_VECTOR);
++	return 1;
++}
++
+ /*
+  * The exit handlers return 1 if the exit was handled fully and guest execution
+  * may resume.  Otherwise they set the kvm_run parameter to indicate what needs
+@@ -6663,6 +6669,7 @@ static int (*const kvm_vmx_exit_handlers
+ 	[EXIT_REASON_MWAIT_INSTRUCTION]	      = handle_mwait,
+ 	[EXIT_REASON_MONITOR_INSTRUCTION]     = handle_monitor,
+ 	[EXIT_REASON_INVEPT]                  = handle_invept,
++	[EXIT_REASON_INVVPID]                 = handle_invvpid,
+ };
+ 
+ static const int kvm_vmx_max_exit_handlers =
+@@ -6896,7 +6903,7 @@ static bool nested_vmx_exit_handled(stru
+ 	case EXIT_REASON_VMPTRST: case EXIT_REASON_VMREAD:
+ 	case EXIT_REASON_VMRESUME: case EXIT_REASON_VMWRITE:
+ 	case EXIT_REASON_VMOFF: case EXIT_REASON_VMON:
+-	case EXIT_REASON_INVEPT:
++	case EXIT_REASON_INVEPT: case EXIT_REASON_INVVPID:
+ 		/*
+ 		 * VMX instructions trap unconditionally. This allows L1 to
+ 		 * emulate them for its L2 guest, i.e., allows 3-level nesting!

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/kvm-x86-fix-far-jump-to-non-canonical-check.patch (from r22048, dists/sid/linux/debian/patches/bugfix/x86/kvm-x86-fix-far-jump-to-non-canonical-check.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/kvm-x86-fix-far-jump-to-non-canonical-check.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/bugfix/x86/kvm-x86-fix-far-jump-to-non-canonical-check.patch)
@@ -0,0 +1,58 @@
+From: Nadav Amit <namit at cs.technion.ac.il>
+Date: Tue, 28 Oct 2014 00:03:43 +0200
+Subject: KVM: x86: Fix far-jump to non-canonical check
+Origin: https://git.kernel.org/linus/7e46dddd6f6cd5dbf3c7bd04a7e75d19475ac9f2
+
+Commit d1442d85cc30 ("KVM: x86: Handle errors when RIP is set during far
+jumps") introduced a bug that caused the fix to be incomplete.  Due to
+incorrect evaluation, far jump to segment with L bit cleared (i.e., 32-bit
+segment) and RIP with any of the high bits set (i.e, RIP[63:32] != 0) set may
+not trigger #GP.  As we know, this imposes a security problem.
+
+In addition, the condition for two warnings was incorrect.
+
+Fixes: d1442d85cc30ea75f7d399474ca738e0bc96f715
+Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
+Signed-off-by: Nadav Amit <namit at cs.technion.ac.il>
+[Add #ifdef CONFIG_X86_64 to avoid complaints of undefined behavior. - Paolo]
+Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
+---
+ arch/x86/kvm/emulate.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+--- a/arch/x86/kvm/emulate.c
++++ b/arch/x86/kvm/emulate.c
+@@ -582,12 +582,14 @@ static inline int assign_eip_far(struct
+ 	case 4:
+ 		ctxt->_eip = (u32)dst;
+ 		break;
++#ifdef CONFIG_X86_64
+ 	case 8:
+ 		if ((cs_l && is_noncanonical_address(dst)) ||
+-		    (!cs_l && (dst & ~(u32)-1)))
++		    (!cs_l && (dst >> 32) != 0))
+ 			return emulate_gp(ctxt, 0);
+ 		ctxt->_eip = dst;
+ 		break;
++#endif
+ 	default:
+ 		WARN(1, "unsupported eip assignment size\n");
+ 	}
+@@ -1998,7 +2000,7 @@ static int em_jmp_far(struct x86_emulate
+ 
+ 	rc = assign_eip_far(ctxt, ctxt->src.val, new_desc.l);
+ 	if (rc != X86EMUL_CONTINUE) {
+-		WARN_ON(!ctxt->mode != X86EMUL_MODE_PROT64);
++		WARN_ON(ctxt->mode != X86EMUL_MODE_PROT64);
+ 		/* assigning eip failed; restore the old cs */
+ 		ops->set_segment(ctxt, old_sel, &old_desc, 0, VCPU_SREG_CS);
+ 		return rc;
+@@ -2092,7 +2094,7 @@ static int em_ret_far(struct x86_emulate
+ 		return rc;
+ 	rc = assign_eip_far(ctxt, eip, new_desc.l);
+ 	if (rc != X86EMUL_CONTINUE) {
+-		WARN_ON(!ctxt->mode != X86EMUL_MODE_PROT64);
++		WARN_ON(ctxt->mode != X86EMUL_MODE_PROT64);
+ 		ops->set_segment(ctxt, old_cs, &old_desc, 0, VCPU_SREG_CS);
+ 	}
+ 	return rc;

Modified: dists/wheezy-backports/linux/debian/patches/debian/i2o-disable-i2o_ext_adaptec-on-64bit.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/debian/i2o-disable-i2o_ext_adaptec-on-64bit.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/debian/i2o-disable-i2o_ext_adaptec-on-64bit.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,6 +1,7 @@
 From: Ben Hutchings <ben at decadent.org.uk>
 Date: Fri, 12 Sep 2014 13:24:26 +0100
 Subject: i2o: Disable I2O_EXT_ADAPTEC on 64-bit
+Forwarded: no
 
 The code it enables works uses 32-bit numbers for userland virtual
 addresses:

Modified: dists/wheezy-backports/linux/debian/patches/debian/revert-staging-sm7xxfb-remove-driver.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/debian/revert-staging-sm7xxfb-remove-driver.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/debian/revert-staging-sm7xxfb-remove-driver.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,7 +1,7 @@
-From db0cf7f2156da3cd1b6570f939f355eb20dca69b Mon Sep 17 00:00:00 2001
 From: Ben Hutchings <ben at decadent.org.uk>
 Date: Sun, 7 Sep 2014 20:31:52 +0100
 Subject: [PATCH] Revert "staging: sm7xxfb: remove driver"
+Forwarded: not-needed
 
 This reverts commit dc93c85235efa5201e9a3c116bc3fbd1afc1a182.
 We're still attempting to support the Loongson 2F platform which

Copied: dists/wheezy-backports/linux/debian/patches/features/all/mmc_block-increase-max_devices.patch (from r22048, dists/sid/linux/debian/patches/features/all/mmc_block-increase-max_devices.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/mmc_block-increase-max_devices.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/features/all/mmc_block-increase-max_devices.patch)
@@ -0,0 +1,49 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Sun, 26 Oct 2014 02:09:23 +0000
+Subject: mmc_block: Increase max_devices
+Bug-Debian: https://bugs.debian.org/765621
+Forwarded: http://mid.gmane.org/1415244909.3398.51.camel@decadent.org.uk
+
+Currently the driver imposes a limit of 256 total minor numbers,
+apparently based on the historic Unix/Linux limit.  This is quite
+restrictive, particularly if we raise the maximum number of
+partitions per card to 256 to match sd.
+
+In order to make the full minor number space available we would
+have to replace the static dev_use and name_use arrays with struct
+ida.  But we can at least allow use of 256 cards rather than just
+256 minors, with only a small change.
+
+---
+--- a/drivers/mmc/card/block.c
++++ b/drivers/mmc/card/block.c
+@@ -78,13 +78,16 @@ static int perdev_minors = CONFIG_MMC_BL
+ 
+ /*
+  * We've only got one major, so number of mmcblk devices is
+- * limited to 256 / number of minors per device.
++ * limited to (1 << 20) / number of minors per device.  It is also
++ * currently limited by the size of the static bitmaps below.
+  */
+ static int max_devices;
+ 
+-/* 256 minors, so at most 256 separate devices */
+-static DECLARE_BITMAP(dev_use, 256);
+-static DECLARE_BITMAP(name_use, 256);
++#define MAX_DEVICES 256
++
++/* TODO: Replace these with struct ida */
++static DECLARE_BITMAP(dev_use, MAX_DEVICES);
++static DECLARE_BITMAP(name_use, MAX_DEVICES);
+ 
+ /*
+  * There is one mmc_blk_data per slot.
+@@ -2558,7 +2561,7 @@ static int __init mmc_blk_init(void)
+ 	if (perdev_minors != CONFIG_MMC_BLOCK_MINORS)
+ 		pr_info("mmcblk: using %d minors per device\n", perdev_minors);
+ 
+-	max_devices = 256 / perdev_minors;
++	max_devices = min(MAX_DEVICES, (1 << MINORBITS) / perdev_minors);
+ 
+ 	res = register_blkdev(MMC_BLOCK_MAJOR, "mmc");
+ 	if (res)

Modified: dists/wheezy-backports/linux/debian/patches/features/all/sfc-Add-40G-link-capability-decoding.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/all/sfc-Add-40G-link-capability-decoding.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/all/sfc-Add-40G-link-capability-decoding.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,7 +1,7 @@
-From ac331e948346f2706cd82b2d259800621b9db04f Mon Sep 17 00:00:00 2001
 From: Edward Cree <ecree at solarflare.com>
 Date: Mon, 14 Jul 2014 08:39:07 +0100
 Subject: [PATCH 2/2] sfc: Add 40G link capability decoding
+Origin: https://git.kernel.org/linus/ac331e948346f2706cd82b2d259800621b9db04f
 
 Needed to select 40G mode on a 10G/40G capable card.
 

Modified: dists/wheezy-backports/linux/debian/patches/features/all/sfc-Adding-PCI-ID-for-Solarflare-7000-series-40G-net.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/all/sfc-Adding-PCI-ID-for-Solarflare-7000-series-40G-net.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/all/sfc-Adding-PCI-ID-for-Solarflare-7000-series-40G-net.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,8 +1,8 @@
-From 3b06a00e65fbb5c526371143beaaa2221d39d577 Mon Sep 17 00:00:00 2001
 From: Mateusz Wrzesinski <mwrzesinski at solarflare.com>
 Date: Mon, 14 Jul 2014 08:38:49 +0100
 Subject: [PATCH 1/2] sfc: Adding PCI ID for Solarflare 7000 series 40G network
  adapter.
+Origin: https://git.kernel.org/linus/3b06a00e65fbb5c526371143beaaa2221d39d577
 
 Signed-off-by: Shradha Shah <sshah at solarflare.com>
 Signed-off-by: David S. Miller <davem at davemloft.net>

Copied: dists/wheezy-backports/linux/debian/patches/features/all/wireless-rt2x00-add-new-rt2800usb-device.patch (from r22048, dists/sid/linux/debian/patches/features/all/wireless-rt2x00-add-new-rt2800usb-device.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/wireless-rt2x00-add-new-rt2800usb-device.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/features/all/wireless-rt2x00-add-new-rt2800usb-device.patch)
@@ -0,0 +1,26 @@
+From: Cyril Brulebois <kibi at debian.org>
+Date: Sun, 26 Oct 2014 12:33:38 +0100
+Subject: wireless: rt2x00: add new rt2800usb device
+Bug-Debian: https://bugs.debian.org/766802
+Forwarded: http://article.gmane.org/gmane.linux.kernel/1815824
+
+0x1b75 0xa200 AirLive WN-200USB wireless 11b/g/n dongle
+
+References: https://bugs.debian.org/766802
+Reported-by: Martin Mokrejs <mmokrejs at fold.natur.cuni.cz>
+Cc: stable at vger.kernel.org
+Signed-off-by: Cyril Brulebois <kibi at debian.org>
+---
+ drivers/net/wireless/rt2x00/rt2800usb.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/wireless/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/rt2x00/rt2800usb.c
+@@ -1111,6 +1111,7 @@ static struct usb_device_id rt2800usb_de
+ 	/* Ovislink */
+ 	{ USB_DEVICE(0x1b75, 0x3071) },
+ 	{ USB_DEVICE(0x1b75, 0x3072) },
++	{ USB_DEVICE(0x1b75, 0xa200) },
+ 	/* Para */
+ 	{ USB_DEVICE(0x20b8, 0x8888) },
+ 	/* Pegatron */

Modified: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-Banana-Pi-board.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-Banana-Pi-board.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-Banana-Pi-board.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,6 +1,7 @@
 From: Hans de Goede <hdegoede at redhat.com>
 Subject: [PATCH v2 3/3] ARM: dts: sun7i: Add Banana Pi board
 Date: Wed,  1 Oct 2014 09:26:06 +0200
+Origin: https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=8a5b272fbf446ce475bb434b956a45a666936af4
 
 The Banana Pi is an A20 based development board using Raspberry Pi compatible
 IO headers. It comes with 1 GB RAM, 1 Gb ethernet, 2x USB host, sata, hdmi
@@ -9,6 +10,7 @@
 http://www.lemaker.org/
 
 Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
 ---
  arch/arm/boot/dts/Makefile               |   1 +
  arch/arm/boot/dts/sun7i-a20-bananapi.dts | 214 +++++++++++++++++++++++++++++++

Modified: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-spi0_pins_a-pinctrl-setting.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-spi0_pins_a-pinctrl-setting.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-spi0_pins_a-pinctrl-setting.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,8 +1,10 @@
 From: Hans de Goede <hdegoede at redhat.com>
 Subject: [PATCH v2 1/3] ARM: dts: sun7i: Add spi0_pins_a pinctrl setting
 Date: Wed,  1 Oct 2014 09:26:04 +0200
+Origin: https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=a99eb770b4ab561434c9049b7b09cf40e27d3a55
 
 Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
 ---
  arch/arm/boot/dts/sun7i-a20.dtsi | 7 +++++++
  1 file changed, 7 insertions(+)

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME.patch (from r22048, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME.patch)
@@ -0,0 +1,165 @@
+From: FUKAUMI Naoki <naobsd at gmail.com>
+Date: Wed, 20 Aug 2014 14:25:03 +0900
+Subject: [PATCH] ARM: sun7i: Add support for Olimex A20-OLinuXino-LIME
+Origin: https://git.kernel.org/linus/a71b4438af8242f383906071205db95a8b8e7b6d
+
+This patch adds support for Olimex A20-OLinuXino-LIME board.
+
+Signed-off-by: FUKAUMI Naoki <naobsd at gmail.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+---
+ arch/arm/boot/dts/Makefile                     |   1 +
+ arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts | 137 +++++++++++++++++++++++++
+ 2 files changed, 138 insertions(+)
+ create mode 100644 arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
+
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -380,6 +380,7 @@
+ 	sun7i-a20-cubieboard2.dtb \
+ 	sun7i-a20-cubietruck.dtb \
+ 	sun7i-a20-i12-tvbox.dtb \
++	sun7i-a20-olinuxino-lime.dtb \
+ 	sun7i-a20-olinuxino-micro.dtb
+ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
+ 	tegra20-iris-512.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
+@@ -0,0 +1,137 @@
++/*
++ * This is based on sun4i-a10-olinuxino-lime.dts
++ *
++ * Copyright 2014 - Hans de Goede <hdegoede at redhat.com>
++ * Copyright (c) 2014 FUKAUMI Naoki <naobsd at gmail.com>
++ *
++ * The code contained herein is licensed under the GNU General Public
++ * License. You may obtain a copy of the GNU General Public License
++ * Version 2 or later at the following locations:
++ *
++ * http://www.opensource.org/licenses/gpl-license.html
++ * http://www.gnu.org/copyleft/gpl.html
++ */
++
++/dts-v1/;
++/include/ "sun7i-a20.dtsi"
++/include/ "sunxi-common-regulators.dtsi"
++
++/ {
++	model = "Olimex A20-OLinuXino-LIME";
++	compatible = "olimex,a20-olinuxino-lime", "allwinner,sun7i-a20";
++
++	soc at 01c00000 {
++		mmc0: mmc at 01c0f000 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
++			vmmc-supply = <&reg_vcc3v3>;
++			bus-width = <4>;
++			cd-gpios = <&pio 7 1 0>; /* PH1 */
++			cd-inverted;
++			status = "okay";
++		};
++
++		usbphy: phy at 01c13400 {
++			usb1_vbus-supply = <&reg_usb1_vbus>;
++			usb2_vbus-supply = <&reg_usb2_vbus>;
++			status = "okay";
++		};
++
++		ehci0: usb at 01c14000 {
++			status = "okay";
++		};
++
++		ohci0: usb at 01c14400 {
++			status = "okay";
++		};
++
++		ahci: sata at 01c18000 {
++			target-supply = <&reg_ahci_5v>;
++			status = "okay";
++		};
++
++		ehci1: usb at 01c1c000 {
++			status = "okay";
++		};
++
++		ohci1: usb at 01c1c400 {
++			status = "okay";
++		};
++
++		pinctrl at 01c20800 {
++			ahci_pwr_pin_olinuxinolime: ahci_pwr_pin at 1 {
++				allwinner,pins = "PC3";
++				allwinner,function = "gpio_out";
++				allwinner,drive = <0>;
++				allwinner,pull = <0>;
++			};
++
++			led_pins_olinuxinolime: led_pins at 0 {
++				allwinner,pins = "PH2";
++				allwinner,function = "gpio_out";
++				allwinner,drive = <1>;
++				allwinner,pull = <0>;
++			};
++		};
++
++		uart0: serial at 01c28000 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&uart0_pins_a>;
++			status = "okay";
++		};
++
++		i2c0: i2c at 01c2ac00 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&i2c0_pins_a>;
++			status = "okay";
++
++			axp209: pmic at 34 {
++				compatible = "x-powers,axp209";
++				reg = <0x34>;
++				interrupt-parent = <&nmi_intc>;
++				interrupts = <0 8>;
++
++				interrupt-controller;
++				#interrupt-cells = <1>;
++			};
++		};
++
++		gmac: ethernet at 01c50000 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&gmac_pins_mii_a>;
++			phy = <&phy1>;
++			phy-mode = "mii";
++			status = "okay";
++
++			phy1: ethernet-phy at 1 {
++				reg = <1>;
++			};
++		};
++	};
++
++	leds {
++		compatible = "gpio-leds";
++		pinctrl-names = "default";
++		pinctrl-0 = <&led_pins_olinuxinolime>;
++
++		green {
++			label = "a20-olinuxino-lime:green:usr";
++			gpios = <&pio 7 2 0>;
++			default-state = "on";
++		};
++	};
++
++	reg_ahci_5v: ahci-5v {
++		pinctrl-0 = <&ahci_pwr_pin_olinuxinolime>;
++		gpio = <&pio 2 3 0>;
++		status = "okay";
++	};
++
++	reg_usb1_vbus: usb1-vbus {
++		status = "okay";
++	};
++
++	reg_usb2_vbus: usb2-vbus {
++		status = "okay";
++	};
++};

Modified: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-uart3_pins_b-pinctrl-setting.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-uart3_pins_b-pinctrl-setting.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-uart3_pins_b-pinctrl-setting.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,11 +1,13 @@
 From: Hans de Goede <hdegoede at redhat.com>
 Subject: [PATCH v2 2/3] ARM: dts: sun7i: Add uart3_pins_b pinctrl setting
 Date: Wed,  1 Oct 2014 09:26:05 +0200
+Origin: https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?id=46e9fd407fad0e9442d0feb9b678d81839ea29a1
 
 The uart3_pins_a multiplexes the uart3 pins to port G, add a pinctrl entry
 for mapping them to port H (as used on the Bananapi).
 
 Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
 ---
  arch/arm/boot/dts/sun7i-a20.dtsi | 7 +++++++
  1 file changed, 7 insertions(+)

Modified: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sunxi-Add-pins-for-IR-controller-on-A20-to-dtsi.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/arm/dts-sunxi-Add-pins-for-IR-controller-on-A20-to-dtsi.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sunxi-Add-pins-for-IR-controller-on-A20-to-dtsi.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,7 +1,7 @@
-From 0fc2b7af8cd5918c0101dfb178b5a3a4b021a50b Mon Sep 17 00:00:00 2001
 From: Alexander Bersenev <bay at hackerdom.ru>
 Date: Mon, 9 Jun 2014 00:08:11 +0600
 Subject: ARM: sunxi: Add pins for IR controller on A20 to dtsi
+Origin: https://git.kernel.org/linus/0fc2b7af8cd5918c0101dfb178b5a3a4b021a50b
 
 This patch adds pins for two IR controllers on A20
 

Modified: dists/wheezy-backports/linux/debian/patches/features/arm64/drivers-net-Add-APM-X-Gene-SoC-ethernet-driver-suppo.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/arm64/drivers-net-Add-APM-X-Gene-SoC-ethernet-driver-suppo.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/arm64/drivers-net-Add-APM-X-Gene-SoC-ethernet-driver-suppo.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,8 +1,8 @@
-From 6444ac4cf1506db36fb0ffb8d5c8b57cdb12adf7 Mon Sep 17 00:00:00 2001
 From: Iyappan Subramanian <isubramanian at apm.com>
 Date: Thu, 7 Aug 2014 15:14:28 -0700
 Subject: [PATCH 1/4] drivers: net: Add APM X-Gene SoC ethernet driver
  support.
+Origin: https://git.kernel.org/linus/e6ad767305eb6ea80ce06c1eaa1b0977e8361998
 
 This patch adds network driver for APM X-Gene SoC ethernet.
 

Modified: dists/wheezy-backports/linux/debian/patches/features/arm64/drivers-net-NET_XGENE-should-depend-on-HAS_DMA.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/arm64/drivers-net-NET_XGENE-should-depend-on-HAS_DMA.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/arm64/drivers-net-NET_XGENE-should-depend-on-HAS_DMA.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,7 +1,7 @@
-From e7af4b1e854cdf88fa37241061352fb5b99dbb7f Mon Sep 17 00:00:00 2001
 From: Geert Uytterhoeven <geert at linux-m68k.org>
 Date: Fri, 29 Aug 2014 18:21:41 +0200
 Subject: [PATCH 4/4] drivers: net: NET_XGENE should depend on HAS_DMA
+Origin: https://git.kernel.org/linus/e148e1bf6fcdecb19015c63ba8c6c25ed5dc3a2a
 
 If NO_DMA=y:
 

Modified: dists/wheezy-backports/linux/debian/patches/features/arm64/dts-Add-bindings-for-APM-X-Gene-SoC-ethernet-driver.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/arm64/dts-Add-bindings-for-APM-X-Gene-SoC-ethernet-driver.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/arm64/dts-Add-bindings-for-APM-X-Gene-SoC-ethernet-driver.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,7 +1,7 @@
-From ad56b94346519e510355624dc2f88a11ee0fe07a Mon Sep 17 00:00:00 2001
 From: Iyappan Subramanian <isubramanian at apm.com>
 Date: Thu, 7 Aug 2014 15:14:27 -0700
 Subject: [PATCH] dts: Add bindings for APM X-Gene SoC ethernet driver
+Origin: https://git.kernel.org/linus/3d390425a649b9eb739e53d34cd891c1631b37cd
 
 This patch adds bindings for APM X-Gene SoC ethernet driver.
 

Modified: dists/wheezy-backports/linux/debian/patches/features/arm64/net-xgene-Check-negative-return-value-of-xgene_enet_.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/arm64/net-xgene-Check-negative-return-value-of-xgene_enet_.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/arm64/net-xgene-Check-negative-return-value-of-xgene_enet_.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,8 +1,8 @@
-From 42113901e335c5431e11e33711f5cdcc8e033955 Mon Sep 17 00:00:00 2001
 From: Tobias Klauser <tklauser at distanz.ch>
 Date: Thu, 14 Aug 2014 13:59:42 +0200
 Subject: [PATCH 2/4] net: xgene: Check negative return value of
  xgene_enet_get_ring_size()
+Origin: https://git.kernel.org/linus/9b9ba821b6c47b6d1a711b8f6fff931277217bab
 
 xgene_enet_get_ring_size() returns a negative value in case of an error,
 but its only caller in xgene_enet_create_desc_ring() currently uses the

Modified: dists/wheezy-backports/linux/debian/patches/features/arm64/net-xgene-fix-possible-NULL-dereference-in-xgene_ene.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/arm64/net-xgene-fix-possible-NULL-dereference-in-xgene_ene.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/arm64/net-xgene-fix-possible-NULL-dereference-in-xgene_ene.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,8 +1,8 @@
-From c04bbc2b1df7034f463ef512c34010b71c12c257 Mon Sep 17 00:00:00 2001
 From: Iyappan Subramanian <isubramanian at apm.com>
 Date: Thu, 21 Aug 2014 13:44:48 -0700
 Subject: [PATCH 3/4] net: xgene: fix possible NULL dereference in
  xgene_enet_free_desc_rings()
+Origin: https://git.kernel.org/linus/c10e4cafa2698dedb9b61bbf6d68f209e779cb19
 
 A NULL pointer dereference is possible for the argument ring->buf_pool
 which is passed to xgene_enet_free_desc_ring(), as ring could be NULL.

Modified: dists/wheezy-backports/linux/debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -1,7 +1,7 @@
 From: Aurelien Jarno <aurelien at aurel32.net>
 Date: Sun, 20 Jul 2014 19:16:31 +0200
 Subject: MIPS: Loongson 3: Add Loongson LS3A RS780E 1-way machine definition
-Forwarded: not yet
+Forwarded: no
 
 Add a Loongson LS3A RS780E 1-way machine definition, which only differs
 from other Loongson 3 based machines by the UART base clock speed.

Copied: dists/wheezy-backports/linux/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch (from r22048, dists/sid/linux/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch)
@@ -0,0 +1,29 @@
+From: Aurelien Jarno <aurelien at aurel32.net>
+Subject: MIPS: increase MAX_PHYSMEM_BITS on Loongson 3 only
+Bug-Debian: https://bugs.debian.org/764223
+Forwarded: no
+
+Commit c4617318 broke Loongson-2 support and maybe even more by increasing
+the value of MAX_PHYSMEM_BITS. At it is currently only needed on
+Loongson-3, define it conditionally.
+
+Note: this should be replace by upstream fix when available.
+
+diff --git a/arch/mips/include/asm/sparsemem.h b/arch/mips/include/asm/sparsemem.h
+index b1071c1..778dca7 100644
+--- a/arch/mips/include/asm/sparsemem.h
++++ b/arch/mips/include/asm/sparsemem.h
+@@ -11,7 +11,12 @@
+ #else
+ # define SECTION_SIZE_BITS	28
+ #endif
+-#define MAX_PHYSMEM_BITS	48
++
++#if defined(CONFIG_CPU_LOONGSON3)
++# define MAX_PHYSMEM_BITS	48
++#else
++# define MAX_PHYSMEM_BITS	35
++#endif
+ 
+ #endif /* CONFIG_SPARSEMEM */
+ #endif /* _MIPS_SPARSEMEM_H */

Copied: dists/wheezy-backports/linux/debian/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch (from r22048, dists/sid/linux/debian/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch	Mon Dec  1 17:59:10 2014	(r22098, copy of r22048, dists/sid/linux/debian/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch)
@@ -0,0 +1,76 @@
+From: Markos Chandras <markos.chandras at imgtec.com>
+Date: Fri, 28 Mar 2014 17:22:52 +0000
+Subject: [PATCH 01/12] MIPS: octeon: Add support for the UBNT E200 board
+Origin: not submitted yet
+
+Add support for the UBNT E200 board (EdgeRouter/EdgeRouter Pro 8 port).
+
+Signed-off-by: Markos Chandras <markos.chandras at imgtec.com>
+---
+ arch/mips/cavium-octeon/executive/cvmx-helper-board.c | 3 +++
+ arch/mips/include/asm/octeon/cvmx-bootinfo.h          | 2 ++
+ arch/mips/include/asm/octeon/octeon-model.h           | 3 +++
+ 3 files changed, 8 insertions(+)
+
+diff --git a/arch/mips/cavium-octeon/executive/cvmx-helper-board.c b/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
+index b764df6..04e2226 100644
+--- a/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
++++ b/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
+@@ -186,6 +186,8 @@ int cvmx_helper_board_get_mii_address(int ipd_port)
+ 			return 7 - ipd_port;
+ 		else
+ 			return -1;
++	case CVMX_BOARD_TYPE_UBNT_E200:
++		return -1;
+ 	}
+ 
+ 	/* Some unknown board. Somebody forgot to update this function... */
+@@ -738,6 +740,7 @@ enum cvmx_helper_board_usb_clock_types __cvmx_helper_board_usb_get_clock_type(vo
+ 	case CVMX_BOARD_TYPE_LANAI2_G:
+ 	case CVMX_BOARD_TYPE_NIC10E_66:
+ 	case CVMX_BOARD_TYPE_UBNT_E100:
++	case CVMX_BOARD_TYPE_UBNT_E200:
+ 		return USB_CLOCK_TYPE_CRYSTAL_12;
+ 	case CVMX_BOARD_TYPE_NIC10E:
+ 		return USB_CLOCK_TYPE_REF_12;
+diff --git a/arch/mips/include/asm/octeon/cvmx-bootinfo.h b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
+index 7b7818d..13c3bbb 100644
+--- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h
++++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
+@@ -228,6 +228,7 @@ enum cvmx_board_types_enum {
+ 	 */
+ 	CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001,
+ 	CVMX_BOARD_TYPE_UBNT_E100 = 20002,
++	CVMX_BOARD_TYPE_UBNT_E200 = 20003,
+ 	CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000,
+ 
+ 	/* The remaining range is reserved for future use. */
+@@ -327,6 +328,7 @@ static inline const char *cvmx_board_type_to_string(enum
+ 		    /* Customer private range */
+ 		ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN)
+ 		ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E100)
++		ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E200)
+ 		ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX)
+ 	}
+ 	return "Unsupported Board";
+diff --git a/arch/mips/include/asm/octeon/octeon-model.h b/arch/mips/include/asm/octeon/octeon-model.h
+index e2c122c..adc8fad 100644
+--- a/arch/mips/include/asm/octeon/octeon-model.h
++++ b/arch/mips/include/asm/octeon/octeon-model.h
+@@ -105,10 +105,13 @@
+ #define OCTEON_CN63XX_PASS2_X	(OCTEON_CN63XX_PASS2_0 | OM_IGNORE_MINOR_REVISION)
+ 
+ #define OCTEON_CN61XX_PASS1_0	0x000d9300
++#define OCTEON_CN61XX_PASS1_1	0x000d9301
+ 
+ #define OCTEON_CN61XX		(OCTEON_CN61XX_PASS1_0 | OM_IGNORE_REVISION)
+ #define OCTEON_CN61XX_PASS1_X	(OCTEON_CN61XX_PASS1_0 | OM_IGNORE_MINOR_REVISION)
+ 
++#define OCTEON_UBNT_E200	(OCTEON_CN61XX_PASS1_1 | OM_IGNORE_REVISION)
++
+ /*
+  * CN5XXX models with new revision encoding
+  */
+-- 
+2.1.0
+

Modified: dists/wheezy-backports/linux/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch	Mon Dec  1 17:59:10 2014	(r22098)
@@ -2,6 +2,7 @@
 Date: Fri, 25 Jul 2014 01:16:15 +0100
 Subject: x86: Make x32 syscall support conditional on a kernel parameter
 Bug-Debian: https://bugs.debian.org/708070
+Forwarded: http://mid.gmane.org/1415245982.3398.53.camel@decadent.org.uk
 
 Enabling x32 in the standard amd64 kernel would increase its attack
 surface while provide no benefit to the vast majority of its users.

Modified: dists/wheezy-backports/linux/debian/patches/series
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/series	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/patches/series	Mon Dec  1 17:59:10 2014	(r22098)
@@ -55,17 +55,33 @@
 bugfix/s390/s390-3215-fix-hanging-console-issue.patch
 bugfix/arm64/arm64-crypto-fix-makefile-rule-for-aes-glue-.o.patch
 debian/btrfs-work-around-compiler-bug-on-arm.patch
+bugfix/mips/MIPS-cp1emu-Fix-ISA-restrictions-for-cop1x_op-instru.patch
+bugfix/mips/MIPS-tlbex-Properly-fix-HUGE-TLB-Refill-exception-ha.patch
+bugfix/s390/s390-3215-fix-tty-output-containing-tabs.patch
+bugfix/x86/drm-i915-initialise-userptr-mmu_notifier-serial-to-1.patch
+bugfix/x86/drm-i915-Add-some-L3-registers-to-the-parser-whiteli.patch
+bugfix/x86/KVM-x86-Check-non-canonical-addresses-upon-WRMSR.patch
+bugfix/x86/KVM-x86-Prevent-host-from-panicking-on-shared-MSR-wr.patch
+bugfix/x86/KVM-x86-Improve-thread-safety-in-pit.patch
+bugfix/x86/KVM-x86-Fix-wrong-masking-on-relative-jump-call.patch
+bugfix/x86/kvm-vmx-handle-invvpid-vm-exit-gracefully.patch
+bugfix/x86/KVM-x86-Emulator-fixes-for-eip-canonical-checks-on-n.patch
+bugfix/x86/KVM-x86-Handle-errors-when-RIP-is-set-during-far-jum.patch
+bugfix/x86/kvm-x86-fix-far-jump-to-non-canonical-check.patch
+bugfix/parisc/parisc-reduce-sigrtmin-from-37-to-32-to-behave-like-.patch
 
 # Arch features
 features/mips/MIPS-Support-hard-limit-of-cpu-count-nr_cpu_ids.patch
 features/mips/MIPS-Support-CPU-topology-files-in-sysfs.patch
 features/mips/MIPS-Loongson-Modify-ChipConfig-register-definition.patch
 features/mips/MIPS-Add-NUMA-support-for-Loongson-3.patch
+features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
 features/mips/MIPS-Add-numa-api-support.patch
 features/mips/MIPS-Add-Loongson-3B-support.patch
 features/mips/MIPS-Loongson-3-Enable-the-COP2-usage.patch
 features/mips/MIPS-Loongson-Rename-CONFIG_LEMOTE_MACH3A-to-CONFIG_.patch
 features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch
+features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch
 features/powerpc/KVM-prepare-for-KVM_-S-G-ET_MP_STATE-on-other-archit.patch
 features/powerpc/KVM-PPC-Book3s-PR-Disable-AIL-mode-with-OPAL.patch
 features/powerpc/KVM-PPC-Book3s-HV-Fix-tlbie-compile-error.patch
@@ -98,6 +114,7 @@
 features/arm/dts-sun7i-Add-spi0_pins_a-pinctrl-setting.patch
 features/arm/dts-sun7i-Add-uart3_pins_b-pinctrl-setting.patch
 features/arm/dts-sun7i-Add-Banana-Pi-board.patch
+features/arm/dts-sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME.patch
 features/arm64/drivers-net-Add-APM-X-Gene-SoC-ethernet-driver-suppo.patch
 features/arm64/drivers-net-NET_XGENE-should-depend-on-HAS_DMA.patch
 features/arm64/net-xgene-Check-negative-return-value-of-xgene_enet_.patch
@@ -111,6 +128,25 @@
 debian/i2o-disable-i2o_ext_adaptec-on-64bit.patch
 bugfix/all/aic94xx-remove-broken-fallback-for-missing-ctrl-a.patch
 bugfix/all/builddeb-put-the-dbg-files-into-the-correct-director.patch
+bugfix/all/fold-swapping-d_name.hash-into-switch_names.patch
+bugfix/all/vfs-Don-t-exchange-short-filenames-unconditionally.patch
+bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch
+bugfix/all/switch-iov_iter_get_pages-to-passing-maximal-number-.patch
+bugfix/all/fuse-honour-max_read-and-max_write-in-direct_io-mode.patch
+bugfix/all/SUNRPC-Don-t-wake-tasks-during-connection-abort.patch
+bugfix/all/lockd-Try-to-reconnect-if-statd-has-moved.patch
+bugfix/all/mtd-move-support-for-struct-flash_platform_data-into.patch
+bugfix/all/mtd-m25p80-get-rid-of-spi_get_device_id.patch
+bugfix/all/mtd-spi-nor-make-spi_nor_scan-take-a-chip-type-name-.patch
+bugfix/all/mtd-m25p80-spi-nor-Fix-module-aliases-for-m25p80.patch
+bugfix/all/HID-i2c-hid-call-the-hid-driver-s-suspend-and-resume.patch
+bugfix/all/drivers-net-Disable-UFO-through-virtio.patch
+bugfix/all/drivers-net-ipv6-Select-IPv6-fragment-idents-for-vir.patch
+bugfix/all/net-sctp-fix-skb_over_panic-when-receiving-malformed.patch
+bugfix/all/net-sctp-fix-panic-on-duplicate-ASCONF-chunks.patch
+bugfix/all/net-sctp-fix-remote-memory-pressure-from-excessive-q.patch
+bugfix/all/mnt-Prevent-pivot_root-from-creating-a-loop-in-the-m.patch
+bugfix/all/net-mv643xx-disable-tso-by-default.patch
 
 # memfd_create() & kdbus backport
 features/all/kdbus/mm-allow-drivers-to-prevent-new-writable-mappings.patch
@@ -135,6 +171,295 @@
 debian/revert-staging-sm7xxfb-remove-driver.patch
 features/all/sfc-Adding-PCI-ID-for-Solarflare-7000-series-40G-net.patch
 features/all/sfc-Add-40G-link-capability-decoding.patch
-bugfix/s390/s390-3215-fix-tty-output-containing-tabs.patch
-bugfix/all/fold-swapping-d_name.hash-into-switch_names.patch
-bugfix/all/vfs-Don-t-exchange-short-filenames-unconditionally.patch
+features/all/mmc_block-increase-max_devices.patch
+features/all/wireless-rt2x00-add-new-rt2800usb-device.patch
+
+# Update r8723au to 3.17
+features/all/r8723au/0001-staging-rtl8723au-rtw_get_wps_ie23a-Remove-unused-de.patch
+features/all/r8723au/0002-staging-rtl8723au-rtw_mlme_ext.c-Convert-rtw_get_wps.patch
+features/all/r8723au/0003-staging-rtl8723au-rtw_mlme.c-Convert-rtw_get_wps_ie2.patch
+features/all/r8723au/0004-staging-rtl8723au-ioctl_cfg80211.c-Convert-rtw_get_w.patch
+features/all/r8723au/0005-staging-rtl8723au-rtw_ap.c-Convert-from-rtw_get_wps_.patch
+features/all/r8723au/0006-staging-rtl8723au-Remove-obsolete-rtw_get_wps_ie23a.patch
+features/all/r8723au/0009-staging-rtl8723au-rtw_mlme_ext.c-Fix-up-some-of-the-.patch
+features/all/r8723au/0010-staging-rtl8723au-rtw_mlme.c-Remove-some-tab-and-par.patch
+features/all/r8723au/0011-staging-rtl8723au-Use-struct-ieee80211_mcs_info-to-d.patch
+features/all/r8723au/0012-staging-rtl8723au-Use-struct-ieee80211_ht_cap-and-as.patch
+features/all/r8723au/0013-staging-rtl8723au-Use-correct-struct-for-WLAN_EID_HT.patch
+features/all/r8723au/0014-staging-rtl8723au-Eliminate-struct-HT_info_element.patch
+features/all/r8723au/0015-staging-rtl8723au-Don-t-carry-ht_cap_info-and-ht_par.patch
+features/all/r8723au/0016-staging-rtl8723au-rtw_check_bcn_info23a-Use-capabili.patch
+features/all/r8723au/0017-staging-rtl8723au-Remmove-buddy-adapter-linking.patch
+features/all/r8723au/0018-staging-rtl8723au-Rewrite-update_beacon23a_info-tto-.patch
+features/all/r8723au/0019-staging-rtl8723au-collect_bss_info23a-Collect-beacon.patch
+features/all/r8723au/0020-staging-rtl8723au-collect_bss_info23a-ieee80211_mgmt.patch
+features/all/r8723au/0021-staging-rtl8723au-rtw_update_ht_cap23a-Use-correct-m.patch
+features/all/r8723au/0022-staging-rtl8723au-rtw_get_bcn_info23a-Use-cfg80211_-.patch
+features/all/r8723au/0023-staging-rtl8723au-rtw_wlan_util.c-Use-cfg80211_-to-d.patch
+features/all/r8723au/0024-staging-rtl8723au-Remove-obsolete-rtw_get_sec_ie23a.patch
+features/all/r8723au/0025-staging-rtl8723au-Declare-rtw_get_wpa-2-_cipher_suit.patch
+features/all/r8723au/0026-staging-rtl8723au-Make-WMM_param_handler23a-and-HT_c.patch
+features/all/r8723au/0027-staging-rtl8723au-OnAssocRsp23a-Use-cfg80211_-to-par.patch
+features/all/r8723au/0028-staging-rtl8723au-Remove-WMM_-defines.patch
+features/all/r8723au/0029-staging-rtl8723au-Make-struct-ht_priv.ht_option-a-bo.patch
+features/all/r8723au/0030-staging-rtl8723au-Be-consistent-in-how-htpriv.ht_opt.patch
+features/all/r8723au/0031-staging-rtl8723au-Make-struct-htpriv.ampdu_enable-a-.patch
+features/all/r8723au/0032-staging-rtl8723au-issue_auth-Convert-to-using-struct.patch
+features/all/r8723au/0033-staging-rtl8723au-issue_assocrsp-Use-struct-ieee8021.patch
+features/all/r8723au/0034-staging-rtl8723au-_issue_deauth-Use-struct-ieee80211.patch
+features/all/r8723au/0035-staging-rtl8723au-issue_action_spct_ch_switch23a-Use.patch
+features/all/r8723au/0036-staging-rtl8723au-issue_action_BSSCoexistPacket-Use-.patch
+features/all/r8723au/0037-staging-rtl8723au-Do-not-xmit-BSS-Coexistence-manage.patch
+features/all/r8723au/0038-staging-rtl8723au-Let-cfg80211-handle-public-action-.patch
+features/all/r8723au/0039-staging-rtl8723au-ioctl_cfg80211.c-Use-struct-ieee80.patch
+features/all/r8723au/0040-staging-rtl8723au-issue_action_BA23a-Use-struct-ieee.patch
+features/all/r8723au/0041-staging-rtl8723au-Remove-obsolete-rtw_set_fixed_ie23.patch
+features/all/r8723au/0042-staging-rtl8723au-Remove-duplicate-defines-of-IEEE80.patch
+features/all/r8723au/0043-staging-rtl8723au-Remove-unused-defines-WEP_KEY_LEN-.patch
+features/all/r8723au/0044-staging-rtl8723au-Remove-some-unused-80211-header-pa.patch
+features/all/r8723au/0045-staging-rtl8723au-rtw_check_bcn_info23a-Use-ether_ad.patch
+features/all/r8723au/0046-staging-rtl8723au-rtw_check_bcn_info23a-Don-t-make-a.patch
+features/all/r8723au/0047-staging-rtl8723au-rtw_check_bcn_info23a-Don-t-search.patch
+features/all/r8723au/0048-staging-rtl8723au-Declare-rtw_update_scanned_network.patch
+features/all/r8723au/0049-staging-rtl8723au-rtw_survey_event_cb23a-Use-the-cor.patch
+features/all/r8723au/0050-staging-rtl8723au-Do-not-embed-struct-wlan_bssid_ex-.patch
+features/all/r8723au/0051-staging-rtl8723au-Allocate-struct-wlan_bssid_ex-in-c.patch
+features/all/r8723au/0052-staging-rtl8723au-collect_bss_info-Don-t-memset-what.patch
+features/all/r8723au/0053-staging-rtl8723au-free_scanqueue-Use-_rtw_free_netwo.patch
+features/all/r8723au/0054-staging-rtl8723au-rtw_stadel_event_callback23a-Remov.patch
+features/all/r8723au/0055-staging-rtl8723au-OnAuth23a-Use-ether_addr_copy.patch
+features/all/r8723au/0056-staging-rtl8723au-Get-rid-of-IW_ESSID_MAX_SIZE.patch
+features/all/r8723au/0057-staging-rtl8723au-Make-rtw_is_same_ibss23a-return-bo.patch
+features/all/r8723au/0058-staging-rtl8723au-cfg80211_rtw_connect-Check-correct.patch
+features/all/r8723au/0059-staging-rtl8723au-Fold-rtw_set_802_11_authentication.patch
+features/all/r8723au/0060-staging-rtl8723au-Move-rtw_set_802_11_ssid23a-to-ioc.patch
+features/all/r8723au/0061-staging-rtl8723au-cfg80211_rtw_connect-Clean-up-vari.patch
+features/all/r8723au/0062-staging-rtl8723au-cfg80211_rtw_connect-Remove-obfusc.patch
+features/all/r8723au/0063-staging-rtl8723au-cfg80211_rtw_connect-Simplify-ssid.patch
+features/all/r8723au/0064-staging-rtl8723au-Pass-a-struct-wlan_network-to-rtw_.patch
+features/all/r8723au/0065-staging-rtl8723au-rtw_set_ssid-This-is-never-called-.patch
+features/all/r8723au/0066-staging-rtl8723au-rtw_cfg80211_add_wep-Use-WLAN_KEY_.patch
+features/all/r8723au/0067-staging-rtl8723au-rtw_do_join23a-Use-correct-error-r.patch
+features/all/r8723au/0068-staging-rtl8723au-Minor-debug-message-fixup.patch
+features/all/r8723au/0069-staging-rtl8723au-Don-t-prepend-debug-console-messag.patch
+features/all/r8723au/0070-staging-rtl8723au-Introduce-rtw_select_candidate_fro.patch
+features/all/r8723au/0071-staging-rtl8723au-Introduce-rtw_do_join_network.patch
+features/all/r8723au/0072-staging-rtl8723au-rtw_do_join23a-Use-__func__-to-get.patch
+features/all/r8723au/0073-staging-rtl8723au-rtw_surveydone_event_callback23a-R.patch
+features/all/r8723au/0074-staging-rtl8723au-Consolidate-duplicate-adhoc-joinin.patch
+features/all/r8723au/0075-staging-rtl8723au-Remove-no-op-rtw_get_encrypt_decry.patch
+features/all/r8723au/0076-staging-rtl8723au-to_join-will-no-be-true-if-_FW_LIN.patch
+features/all/r8723au/0077-staging-rtl8723au-rtw_surveydone_event_callback23a-W.patch
+features/all/r8723au/0078-staging-rtl8723au-rtw_select_and_join_from_scanned_q.patch
+features/all/r8723au/0079-staging-rtl8723au-rtw_set_ssid-Use-rtw_do_join_netwo.patch
+features/all/r8723au/0080-staging-rtl8723au-rtw_do_join23a-Don-t-start-scannin.patch
+features/all/r8723au/0081-staging-rtl8723au-Move-rtw_do_join23a-to-rtw_mlme.c-.patch
+features/all/r8723au/0082-staging-rtl8723au-rtw_get_cur_max_rate23a-Remove-dup.patch
+features/all/r8723au/0083-staging-rtl8723au-rtw_get_cur_max_rate23a-We-are-in-.patch
+features/all/r8723au/0084-staging-rtl8723au-Move-rtw_get_cur_max_rate23a-to-io.patch
+features/all/r8723au/0085-staging-rtl8723au-rtw_set_802_11_bssid23a_list_scan-.patch
+features/all/r8723au/0086-staging-rtl8723au-Don-t-run-regular-scans-in-the-dri.patch
+features/all/r8723au/0087-staging-rtl8723au-Quiet-unused-variable-warning-when.patch
+features/all/r8723au/0088-staging-rtl8723au-Move-FillH2CCmd-prototype-to-rtl87.patch
+features/all/r8723au/0089-staging-rtl8723au-rtw_cfg80211_set_wpa_ie-Avoid-poin.patch
+features/all/r8723au/0090-staging-rtl8723au-Add-compiler-check-for-Wtype-limit.patch
+features/all/r8723au/0091-staging-rtl8723au-Remove-redundant-casting-in-rtw_ml.patch
+features/all/r8723au/0092-staging-rtl8723au-Remove-redundant-casting-in-rtw_ml.patch
+features/all/r8723au/0093-staging-rtl8723au-rtw_cfg80211_inform_bss-timestamp-.patch
+features/all/r8723au/0094-staging-rtl8723au-rtw_cfg80211_inform_bss-Use-cfg802.patch
+features/all/r8723au/0095-staging-rtl8723au-Save-timestamp-for-network-in-coll.patch
+features/all/r8723au/0096-staging-rtl8723au-rtw_cfg80211_inform_bss-Report-the.patch
+features/all/r8723au/0097-staging-rtl8723au-collect_bss_info-Save-capability-i.patch
+features/all/r8723au/0098-staging-rtl8723au-rtw_cfg80211_inform_bss-Use-the-ca.patch
+features/all/r8723au/0099-staging-rtl8723au-struct-wlan_bssid_ex-Rename-Beacon.patch
+features/all/r8723au/0100-staging-rtl8723au-rtw_add_beacon-Replace-magic-const.patch
+features/all/r8723au/0101-staging-rtl8723au-Update-bss-beacon-info-in-rtw_add_.patch
+features/all/r8723au/0102-staging-rtl8723au-is_same_network23a-Use-the-capabil.patch
+features/all/r8723au/0103-staging-rtl8723au-ConstructBeacon-Use-struct-ieee802.patch
+features/all/r8723au/0104-staging-rtl8723au-issue_beacon23a-Do-not-copy-IEs-in.patch
+features/all/r8723au/0105-staging-rtl8723au-issue_beacon23a-Use-struct-ieee802.patch
+features/all/r8723au/0106-staging-rtl8723au-issue_probersp-Do-not-copy-the-IEs.patch
+features/all/r8723au/0107-staging-rtl8723au-issue_assocrsp-Use-capability-from.patch
+features/all/r8723au/0108-staging-rtl8723au-issue_assocreq-Use-struct-ieee8021.patch
+features/all/r8723au/0109-staging-rtl8723au-rtw_get_bcn_info23a-Use-capability.patch
+features/all/r8723au/0110-staging-rtl8723au-rtw_get_bcn_info23a-Use-__func__-i.patch
+features/all/r8723au/0111-staging-rtl8723au-Remove-last-users-of-rtw_get_capab.patch
+features/all/r8723au/0112-staging-rtl8723au-Eliminate-last-rtw_get_beacon_inte.patch
+features/all/r8723au/0113-staging-rtl8723au-struct-mlme_priv-wps_beacon_ie-is-.patch
+features/all/r8723au/0114-staging-rtl8723au-Remove-unused-mlme_priv-wps_assoc_.patch
+features/all/r8723au/0115-staging-rtl8723au-Remove-unused-struct-mlme_priv-wps.patch
+features/all/r8723au/0116-staging-rtl8723au-Remove-obsolete-mlme_priv-p2p_-ent.patch
+features/all/r8723au/0117-staging-rtl8723au-Remove-unused-struct-mlme_priv-wfd.patch
+features/all/r8723au/0118-staging-rtl8723au-Remove-write-only-struct-security_.patch
+features/all/r8723au/0119-staging-rtl8723au-Remove-hopefully-last-duplicate-de.patch
+features/all/r8723au/0120-staging-rtl8723au-rtw_survey_event_cb23a-Remember-to.patch
+features/all/r8723au/0121-staging-rtl8723au-rtw_joinbss_update_network23a-upda.patch
+features/all/r8723au/0122-staging-rtl8723au-issue_probersp-Don-t-insert-beacon.patch
+features/all/r8723au/0123-staging-rtl8723au-issue_probersp-No-need-to-calculat.patch
+features/all/r8723au/0124-staging-rtl8723au-Remove-unused-size-defines-for-mgm.patch
+features/all/r8723au/0125-staging-rtl8723au-Remove-usage-of-_-RE-ASOCREQ_IE_OF.patch
+features/all/r8723au/0126-staging-rtl8723au-Remove-unused-IE-offset-defines.patch
+features/all/r8723au/0127-staging-rtl8723au-rtw_get_cur_max_rate-Use-_FIXED_IE.patch
+features/all/r8723au/0128-staging-rtl8723au-rtw_add_beacon-Construct-a-full-be.patch
+features/all/r8723au/0129-staging-rtl8723au-rtw_check_beacon_data23a-Capabilit.patch
+features/all/r8723au/0130-staging-rtl8723au-Use-_FIXED_IE_LEN_-instead-of-hard.patch
+features/all/r8723au/0131-staging-rtl8723au-ConstructProbeRsp-Use-struct-ieee8.patch
+features/all/r8723au/0132-staging-rtl8723au-Remove-no-op-CheckFwRsvdPageConten.patch
+features/all/r8723au/0133-staging-rtl8723au-Remove-unused-dump_txrpt_ccx_8723a.patch
+features/all/r8723au/0134-staging-rtl8723au-issue_beacon23a-Fix-another-case-i.patch
+features/all/r8723au/0135-staging-rtl8723au-issue_beacon23a-Determine-ie-buffe.patch
+features/all/r8723au/0136-staging-rtl8723au-rtw_generate_ie23a-update-network-.patch
+features/all/r8723au/0137-staging-rtl8723au-Stop-carrying-half-the-beacon-fram.patch
+features/all/r8723au/0138-staging-rtl8723au-Get-rid-of-obsolete-_FIXED_IE_LENG.patch
+features/all/r8723au/0139-staging-rtl8723au-Remove-unused-define-EID_BSSIntole.patch
+features/all/r8723au/0140-staging-rtl8723au-Remove-unused-define-P80211CAPTURE.patch
+features/all/r8723au/0141-staging-rtl8723au-rtw_get_wps_attr_content23a-Remove.patch
+features/all/r8723au/0142-staging-rtl8723au-Remove-unused-RSN_VERSION_BSD23A.patch
+features/all/r8723au/0143-staging-rtl8723au-rtw_cfg80211_ap_set_encryption-Use.patch
+features/all/r8723au/0144-staging-rtl8723au-rtw_cfg80211_ap_set_encryption-is-.patch
+features/all/r8723au/0145-staging-rtl8723au-rtw_cfg80211_ap_set_encryption-Use.patch
+features/all/r8723au/0146-staging-rtl8723au-rtw_cfg80211_ap_set_encryption-Sto.patch
+features/all/r8723au/0147-staging-rtl8723au-rtw_cfg80211_ap_set_encryption-Use.patch
+features/all/r8723au/0148-staging-rtl8723au-rtw_cfg80211_set_encryption-Pass-a.patch
+features/all/r8723au/0149-staging-rtl8723au-rtw_cfg80211_set_encryption-Obtain.patch
+features/all/r8723au/0150-staging-rtl8723au-rtw_cfg80211_set_encryption-Use-ke.patch
+features/all/r8723au/0151-staging-rtl8723au-rtw_cfg80211_set_encryption-Obtain.patch
+features/all/r8723au/0152-staging-rtl8723au-rtw_cfg80211_set_encryption-Pass-k.patch
+features/all/r8723au/0153-staging-rtl8723au-rtw_cfg80211_ap_set_encryption-Pas.patch
+features/all/r8723au/0154-staging-rtl8723au-rtw_cfg80211_ap_set_encryption-obt.patch
+features/all/r8723au/0155-staging-rtl8723au-rtw_cfg80211_-ap_-set_encryption-A.patch
+features/all/r8723au/0156-staging-rtl8723au-Stop-setting-ieee_parm-arguments-t.patch
+features/all/r8723au/0157-staging-rtl8723au-rtw_cfg80211_-ap_-set_encryption-N.patch
+features/all/r8723au/0158-staging-rtl8723au-rtw_cfg80211_-ap_-set_encryption-A.patch
+features/all/r8723au/0159-staging-rtl8723au-rtw_cfg80211_-ap_-set_encryption-S.patch
+features/all/r8723au/0160-staging-rtl8723au-Remove-obsolete-struct-ieee_parm.patch
+features/all/r8723au/0161-staging-rtl8723au-Validate-keys-in-cfg80211_rtw_add_.patch
+features/all/r8723au/0162-staging-rtl8723au-Eliminate-set_wep_key-and-call-set.patch
+features/all/r8723au/0163-staging-rtl8723au-rtw_restruct_wmm_ie23a-Use-cfg8021.patch
+features/all/r8723au/0164-staging-rtl8723au-rtw_append_pmkid-Adjust-for-IEs-ar.patch
+features/all/r8723au/0165-staging-rtl8723au-Only-validate-vendor-specific-ies-.patch
+features/all/r8723au/0166-staging-rtl8723au-OnAssocReq23a-Use-cfg80211_find_ve.patch
+features/all/r8723au/0167-staging-rtl8723au-fix-sparse-warning.patch
+features/all/r8723au/0168-staging-rtl8723au-usb_ops_linux.c-Add-blank-line-bet.patch
+features/all/r8723au/0169-staging-rtl8723au-rtw_sta_mgt.c-Use-ether_addr_-copy.patch
+features/all/r8723au/0170-staging-rtl8723au-rtw_sta_mgt.c-One-copy-of-the-broa.patch
+features/all/r8723au/0171-staging-rtl8723au-rtw_allow_stainfo23a-Make-hwaddr-a.patch
+features/all/r8723au/0172-staging-rtl8723au-Remove-unused-rtw_sreset_get_wifi_.patch
+features/all/r8723au/0173-staging-rtl8723au-Wifi_Error_Status-isn-t-used-for-a.patch
+features/all/r8723au/0174-staging-rtl8723au-sreset_priv-dbg_trigger_point-is-n.patch
+features/all/r8723au/0175-staging-rtl8723au-Remove-no-op-rtl8723a_sreset_linke.patch
+features/all/r8723au/0176-staging-rtl8723au-Remove-unused-rtw_pwr_wakeup_ex.patch
+features/all/r8723au/0177-staging-rtl8723au-Clean-up-rtw_pm_set_ips23a.patch
+features/all/r8723au/0178-staging-rtl8723au-Fold-power_saving_wk_hdl-into-rtw_.patch
+features/all/r8723au/0179-staging-rtl8723au-Remove-unused-pwrctrl_priv-brfoffb.patch
+features/all/r8723au/0180-staging-rtl8723au-Remove-unused-variables-from-struc.patch
+features/all/r8723au/0181-staging-rtl8723au-pnp_bstop_trx-is-never-set.patch
+features/all/r8723au/0182-staging-rtl8723au-pwrctrl_priv-ps_flag-is-never-set.patch
+features/all/r8723au/0183-staging-rtl8723au-Remove-never-set-struct-rtw_adapte.patch
+features/all/r8723au/0184-staging-rtl8723au-Sanitize-USB-read-write-functions.patch
+features/all/r8723au/0185-staging-rtl8723au-Simplify-_BlockWrite-based-on-sane.patch
+features/all/r8723au/0186-staging-rtl8723au-Remove-unnecessary-null-test-befor.patch
+features/all/r8723au/0187-staging-rtl8723au-Remove-horrendous-code-obfuscation.patch
+features/all/r8723au/0188-staging-rtl8723au-Call-to-ODM_ConfigRFWithHeaderFile.patch
+features/all/r8723au/0189-staging-rtl8723au-Eliminate-wrapper-ODM_ConfigRFWith.patch
+features/all/r8723au/0190-staging-rtl8723au-Remove-zero-value-calculation-adde.patch
+features/all/r8723au/0191-staging-rtl8723au-Remove-pointless-wrappers-for-call.patch
+features/all/r8723au/0192-staging-rtl8723au-Remove-unused-ODM_ReadAndConfig_PH.patch
+features/all/r8723au/0193-staging-rtl8723au-Remove-ugly-wrapper-ODM_ConfigBBWi.patch
+features/all/r8723au/0194-staging-rtl8723au-Remove-unused-ODM_MacStatusQuery23.patch
+features/all/r8723au/0195-staging-rtl8723au-Remove-obfuscating-wrapper-ODM_Con.patch
+features/all/r8723au/0196-staging-rtl8723au-Remove-unncessary-wrapper-PHY_RFCo.patch
+features/all/r8723au/0197-staging-rtl8723au-Eliminate-Set_MSR-wrapper-call.patch
+features/all/r8723au/0198-staging-rtl8723au-Reduce-number-of-duplicate-defines.patch
+features/all/r8723au/0199-staging-rtl8723au-Use-rtl8723au_set_media_status-to-.patch
+features/all/r8723au/0200-staging-rtl8723au-Corrections-in-the-coding-style.patch
+features/all/r8723au/0201-staging-rtl8723au-Remove-write-only-variable-UsbRxHi.patch
+features/all/r8723au/0202-staging-rtl8723au-Remove-no-op-usb_AggSetting.patch
+features/all/r8723au/0203-staging-rtl8723au-Remove-no-op-_InitOperation_mode-f.patch
+features/all/r8723au/0204-staging-rtl8723au-Remove-RegBcnCtrlVal.patch
+features/all/r8723au/0205-staging-rtl8723au-Use-proper-name-REG_CAMCMD-and-rem.patch
+features/all/r8723au/0206-staging-rtl8723au-rtl8723a_InitBeaconParameters-Remo.patch
+features/all/r8723au/0207-staging-rtl8723au-ODM_IC_11N_SERIES-is-always-true-f.patch
+features/all/r8723au/0208-staging-rtl8723au-Remove-unused-odm_RegDefine11AC.h.patch
+features/all/r8723au/0209-staging-rtl8723au-Remove-pointless-IS_STA_VALID-macr.patch
+features/all/r8723au/0210-staging-rtl8723au-Fold-odm_EdcaTurboCheck23aCE23a-in.patch
+features/all/r8723au/0211-staging-rtl8723au-Declare-odm_EdcaTurbo-functions-st.patch
+features/all/r8723au/0212-staging-rtl8723au-bDMInitialGainEnable-is-always-tru.patch
+features/all/r8723au/0213-staging-rtl8723au-Remove-unused-DefaultInitialGain-a.patch
+features/all/r8723au/0214-staging-rtl8723au-Remove-some-redundant-check-for-hw.patch
+features/all/r8723au/0215-staging-rtl8723au-Remove-no-op-rtl8723a_deinit_dm_pr.patch
+features/all/r8723au/0216-staging-rtl8723au-Remove-no-op-function-dm_CheckStat.patch
+features/all/r8723au/0217-staging-rtl8723au-Remove-write-only-struct-dm_priv-D.patch
+features/all/r8723au/0218-staging-rtl8723au-Remove-write-only-variables-struct.patch
+features/all/r8723au/0219-staging-rtl8723au-Remove-ODM_CMNINFO_-RT-X_UNI-and-r.patch
+features/all/r8723au/0220-staging-rtl8723au-Remove-useless-ODM_CMNINFO_-WM_MOD.patch
+features/all/r8723au/0221-staging-rtl8723au-Remove-another-pile-of-useless-ODM.patch
+features/all/r8723au/0222-staging-rtl8723au-Remove-another-pile-of-awful-unuse.patch
+features/all/r8723au/0223-staging-rtl8723au-We-don-t-need-two-APIs-to-set-pHal.patch
+features/all/r8723au/0224-staging-rtl8723au-ODM_DMWatchdog23a-Take-a-struct-ha.patch
+features/all/r8723au/0225-staging-rtl8723au-Eliminate-ugly-ODM_CMNINFO_SEC_CHN.patch
+features/all/r8723au/0226-staging-rtl8723au-Eliminate-ODM_CMNINFO_BW-usage.patch
+features/all/r8723au/0227-staging-rtl8723au-Eliminate-ODM_CMNINFO_CHNL-usage.patch
+features/all/r8723au/0228-staging-rtl8723au-Eliminate-ODM_CMNINFO_SCAN-related.patch
+features/all/r8723au/0229-staging-rtl8723au-Eliminate-ODM_CMNINFO_POWER_SAVING.patch
+features/all/r8723au/0230-staging-rtl8723au-Eliminate-obsolete-odm_CmnInfoHook.patch
+features/all/r8723au/0231-staging-rtl8723au-Remove-obsolete-ODM23a_CmnInfoHook.patch
+features/all/r8723au/0232-staging-rtl8723au-Merge-Init_ODM_ComInfo_8723a-into-.patch
+features/all/r8723au/0233-staging-rtl8723au-odm_CommonInfoSelfInit23a-Use-prop.patch
+features/all/r8723au/0234-staging-rtl8723au-Remove-a-pile-of-fluff-for-calling.patch
+features/all/r8723au/0235-staging-rtl8723au-Fold-rtl8723a_set_nav_upper-into-r.patch
+features/all/r8723au/0236-staging-rtl8723au-Reduce-wrapper-layers-around-hal_-.patch
+features/all/r8723au/0237-staging-rtl8723au-Fold-rtw_resume_process23a-into-rt.patch
+features/all/r8723au/0239-staging-rtl8723au-Fix-typo-in-rtw_mlme_ext.c.patch
+features/all/r8723au/0240-staging-rtl8723au-Fix-typo-in-rtw_mlme.c.patch
+features/all/r8723au/0241-staging-rtl8723au-Fix-typo-in-rtw_xmit.c.patch
+features/all/r8723au/0242-staging-rtl8723au-Fix-typo-in-rtw_ap.c.patch
+features/all/r8723au/0243-staging-rtl8723au-Fix-typo-in-rtl8723au-core.patch
+features/all/r8723au/0244-staging-rtl8723au-RSSI_test-is-never-set.patch
+features/all/r8723au/0245-staging-rtl8723au-Remove-two-never-set-variables.patch
+features/all/r8723au/0246-staging-rtl8723au-Remove-never-set-struct-pwrctrl_pr.patch
+features/all/r8723au/0247-staging-rtl8723au-Do-not-duplicate-kernel-provided-U.patch
+features/all/r8723au/0248-staging-rtl8723au-usb_dvobj_init-Remove-unused-varia.patch
+features/all/r8723au/0249-staging-rtl8723au-Fix-static-symbol-sparse-warning.patch
+
+# Add Apple Thunderbolt driver from 3.17
+features/x86/apple-tb/0001-thunderbolt-Add-initial-cactus-ridge-NHI-support.patch
+features/x86/apple-tb/0002-thunderbolt-Add-control-channel-interface.patch
+features/x86/apple-tb/0003-thunderbolt-Setup-control-channel.patch
+features/x86/apple-tb/0004-thunderbolt-Add-tb_regs.h.patch
+features/x86/apple-tb/0005-thunderbolt-Initialize-root-switch-and-ports.patch
+features/x86/apple-tb/0006-thunderbolt-Add-thunderbolt-capability-handling.patch
+features/x86/apple-tb/0007-thunderbolt-Enable-plug-events.patch
+features/x86/apple-tb/0008-thunderbolt-Scan-for-downstream-switches.patch
+features/x86/apple-tb/0009-thunderbolt-Handle-hotplug-events.patch
+features/x86/apple-tb/0010-thunderbolt-Add-path-setup-code.patch
+features/x86/apple-tb/0011-thunderbolt-Add-support-for-simple-pci-tunnels.patch
+features/x86/apple-tb/0012-thunderbolt-Read-switch-uid-from-EEPROM.patch
+features/x86/apple-tb/0013-thunderbolt-Add-suspend-hibernate-support.patch
+features/x86/apple-tb/0014-thunderbolt-Read-port-configuration-from-eeprom.patch
+features/x86/apple-tb/0015-thunderbolt-Fix-nontrivial-endpoint-devices.patch
+features/x86/apple-tb/0016-thunderbolt-Fix-build-error-in-eeprom.c.patch
+features/x86/apple-tb/0017-thunderbolt-Fix-build-error-in-switch.c.patch
+features/x86/apple-tb/0018-thunderbolt-Use-NULL-instead-of-0-in-switch.c.patch
+features/x86/apple-tb/0019-thunderbolt-Use-NULL-instead-of-0-in-ctl.c.patch
+features/x86/apple-tb/0020-thunderbolt-Use-NULL-instead-of-0-in-nhi.c.patch
+features/x86/apple-tb/0021-thunderbolt-Staticize-nhi_ids.patch
+features/x86/apple-tb/0022-thunderbolt-add-PCI-dependency.patch
+features/x86/apple-tb/0023-thunderbolt-fix-format-string-for-size_t.patch
+features/x86/apple-tb/0024-thunderbolt-Add-casts-to-prevent-endianness-warnings.patch
+features/x86/apple-tb/0025-thunderbolt-Fix-header-declaration-of-tb_find_cap.patch
+features/x86/apple-tb/0026-thunderbolt-Make-enum-tb_drom_entry_type-unsigned.patch
+features/x86/apple-tb/0027-thunderbolt-Make-tb_eeprom_get_drom_offset-static.patch
+features/x86/apple-tb/0028-thunderbolt-select-CRC32-in-Kconfig.patch
+features/x86/apple-tb/0029-thunderbolt-Correct-the-size-argument-to-devm_kzallo.patch
+features/x86/apple-tb/0030-thunderbolt-Use-kcalloc.patch
+features/x86/apple-tb/0031-thunderbolt-Clear-hops-before-overwriting.patch
+
+# Add iwlwifi firmware monitor from 3.17
+features/all/iwlwifi-debug/iwlwifi-add-device-firmware-to-fw-error-dump-file.patch
+features/all/iwlwifi-debug/iwlwifi-rename-iwl_mvm_fw_error_next_data.patch
+features/all/iwlwifi-debug/iwlwifi-pcie-add-firmware-monitor-capabilities.patch
+features/all/iwlwifi-debug/iwlwifi-remove-wrong-comment-about-alignment-in-iwl-fw-error-dump.h.patch
+features/all/iwlwifi-debug/iwlwifi-mvm-don-t-collect-logs-in-the-interrupt-thread.patch
+features/all/iwlwifi-debug/iwlwifi-mvm-kill-iwl_mvm_fw_error_rxf_dump.patch
+features/all/iwlwifi-debug/iwlwifi-mvm-update-layout-of-firmware-error-dump.patch

Modified: dists/wheezy-backports/linux/debian/rules.real
==============================================================================
--- dists/wheezy-backports/linux/debian/rules.real	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/rules.real	Mon Dec  1 17:59:10 2014	(r22098)
@@ -6,10 +6,12 @@
 # expected to be available (need to be exported from the parent process).
 #
 SHELL  := bash -e
+ifdef ARCH
 DEB_HOST_ARCH     := $(shell dpkg-architecture -a'$(ARCH)' -qDEB_HOST_ARCH)
 DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -a'$(ARCH)' -qDEB_HOST_GNU_TYPE)
 DEB_HOST_MULTIARCH:= $(shell dpkg-architecture -a'$(ARCH)' -qDEB_HOST_MULTIARCH)
 DEB_BUILD_ARCH    := $(shell dpkg-architecture -a'$(ARCH)' -qDEB_BUILD_ARCH)
+endif
 MAINTAINER := $(shell sed -ne 's,^Maintainer: .[^<]*<\([^>]*\)>,\1,p' debian/control)
 DISTRIBUTION := $(shell dpkg-parsechangelog | sed -ne 's,^Distribution: ,,p')
 SOURCE_DATE := $(shell dpkg-parsechangelog | sed -ne 's,^Date: ,,p')
@@ -36,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 := env -u ABINAME -u ARCH -u FEATURESET -u FLAVOUR -u VERSION -u LOCALVERSION
 setup_env += DISTRIBUTION_OFFICIAL_BUILD=1 DISTRIBUTOR="$(DISTRIBUTOR)" DISTRIBUTION_VERSION="$(SOURCEVERSION)" KBUILD_BUILD_TIMESTAMP="$(DISTRIBUTOR) $(SOURCEVERSION) ($(SOURCE_DATE_UTC_ISO))" KBUILD_BUILD_USER="$(word 1,$(subst @, ,$(MAINTAINER)))" KBUILD_BUILD_HOST="$(word 2,$(subst @, ,$(MAINTAINER)))"
 
 MAKE_CLEAN = $(setup_env) $(MAKE)
@@ -366,7 +368,10 @@
 	+$(MAKE_SELF) \
 	  install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_bug \
 	  PACKAGE_DIR='$(PACKAGE_DIR)' PACKAGE_NAME='$(PACKAGE_NAME)' REAL_VERSION='$(REAL_VERSION)'
-	+$(MAKE_SELF) install-base
+	+$(MAKE_SELF) install-base GENCONTROL_ARGS='-Vkernel:Recommends='"$$( \
+		if grep -q '^CONFIG_SMP=y' $(DIR)/.config; then \
+			printf irqbalance,; \
+		fi)"
 
 install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_dt: DT_INSTALL_DIR = $(PACKAGE_DIR)/usr/lib/linux-image-$(REAL_VERSION)
 install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_dt:
@@ -387,7 +392,7 @@
 	dh_installdirs usr/share/bug/$(PACKAGE_NAME)
 	dh_install debian/templates/image.plain.bug/* usr/share/bug/$(PACKAGE_NAME)
 	chmod 755 $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/script
-	echo "RELEASE='$(REAL_VERSION)'" > $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/info
+	printf "RELEASE='$(REAL_VERSION)'\nDISTRIBUTOR='$(DISTRIBUTOR)'\nSOURCEVERSION='$(SOURCEVERSION)'\n" > $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/info
 
 install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION)
 install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = linux-image-$(REAL_VERSION)-dbg

Modified: dists/wheezy-backports/linux/debian/templates/control.image.type-plain.in
==============================================================================
--- dists/wheezy-backports/linux/debian/templates/control.image.type-plain.in	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/templates/control.image.type-plain.in	Mon Dec  1 17:59:10 2014	(r22098)
@@ -2,7 +2,7 @@
 Provides: linux-modules- at abiname@@localversion@
 Pre-Depends: debconf | debconf-2.0
 Depends: kmod | module-init-tools, linux-base (>= 3~), ${misc:Depends}
-Recommends: firmware-linux-free (>= 3~)
+Recommends: firmware-linux-free (>= 3~), ${kernel:Recommends}
 Suggests: linux-doc- at version@, debian-kernel-handbook
 Breaks: at (<< 3.1.12-1+squeeze1)
 Description: Linux @upstreamversion@ for @class@

Modified: dists/wheezy-backports/linux/debian/templates/image.plain.bug/presubj
==============================================================================
--- dists/wheezy-backports/linux/debian/templates/image.plain.bug/presubj	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/templates/image.plain.bug/presubj	Mon Dec  1 17:59:10 2014	(r22098)
@@ -6,9 +6,3 @@
 camera, serial console or netconsole to record the boot messages and
 attach these to your report.  You can use the kernel parameter
 'boot_delay=1000' to slow down the boot messages.
-
-If you are reporting a crash on a system that boots using EFI, it may
-be useful to mount the 'pstore' filesystem so that a crash log can be
-retrieved from flash memory.  You can do this by running (as root):
-
-    mount -t pstore pstore /sys/fs/pstore

Modified: dists/wheezy-backports/linux/debian/templates/image.plain.bug/script
==============================================================================
--- dists/wheezy-backports/linux/debian/templates/image.plain.bug/script	Mon Dec  1 10:49:11 2014	(r22097)
+++ dists/wheezy-backports/linux/debian/templates/image.plain.bug/script	Mon Dec  1 17:59:10 2014	(r22098)
@@ -14,6 +14,26 @@
 done
 
 if [ "$RELEASE" == "$(uname -r)" ]; then
+  running_ver="$(uname -v)"
+  running_ver="${running_ver#* $DISTRIBUTOR }"
+  running_ver="${running_ver%% *}"
+  if [ "$running_ver" != "$SOURCEVERSION" ]; then
+    cat <<EOF
+You have installed version $SOURCEVERSION of
+linux-image-$RELEASE, but version $running_ver is currently
+running.
+
+You should reboot to complete the upgrade.  Until you do this, some
+modules may fail to load.  This is NOT a bug.
+
+If you have already rebooted, check your boot loader configuration.
+
+EOF
+    yesno "Do you still want to report a bug? " nop
+    if [ "$REPLY" = nop ]; then
+      exit 1
+    fi
+  fi
   for hook in ${hooks[@]}; do
     add_$hook
   done



More information about the Kernel-svn-changes mailing list