[kernel] r22488 - in dists/wheezy-backports/linux: . debian debian/config debian/config/alpha debian/config/armhf debian/config/kernelarch-x86 debian/installer/alpha debian/installer/hppa/modules/hppa debian/installer/hppa/modules/hppa-parisc64-smp debian/patches debian/patches/bugfix/all debian/patches/bugfix/arm64 debian/patches/bugfix/sh4 debian/patches/bugfix/x86 debian/patches/debian debian/patches/features/all debian/patches/features/all/arcmsr debian/patches/features/all/aufs3 debian/patches/features/all/kdbus debian/patches/features/arm debian/patches/features/x86/apple-tb
Ben Hutchings
benh at moszumanska.debian.org
Tue Apr 7 21:44:06 UTC 2015
Author: benh
Date: Tue Apr 7 21:44:05 2015
New Revision: 22488
Log:
Merge changes from sid up to 3.16.7-ckt7-1
Added:
dists/wheezy-backports/linux/debian/installer/alpha/
- copied from r22440, dists/sid/linux/debian/installer/alpha/
dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules
- copied unchanged from r22440, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules
dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/virtio-modules
- copied unchanged from r22440, dists/sid/linux/debian/installer/hppa/modules/hppa/virtio-modules
dists/wheezy-backports/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch
dists/wheezy-backports/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch
dists/wheezy-backports/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch
dists/wheezy-backports/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch
dists/wheezy-backports/linux/debian/patches/debian/no-clean.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/debian/no-clean.patch
dists/wheezy-backports/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch
dists/wheezy-backports/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch
dists/wheezy-backports/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch
dists/wheezy-backports/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch
dists/wheezy-backports/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch
dists/wheezy-backports/linux/debian/patches/features/all/arcmsr/
- copied from r22440, dists/sid/linux/debian/patches/features/all/arcmsr/
dists/wheezy-backports/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch
dists/wheezy-backports/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch
dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch
dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch
dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch
dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch
dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch
dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch
dists/wheezy-backports/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch
dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch
dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch
dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch
dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch
dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch
dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch
dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch
dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch
dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch
dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch
dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch
dists/wheezy-backports/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch
- copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch
Deleted:
dists/wheezy-backports/linux/debian/config/alpha/config.alpha-legacy
dists/wheezy-backports/linux/debian/patches/bugfix/all/Revert-swiotlb-xen-pass-dev_addr-to-swiotlb_tbl_unma.patch
dists/wheezy-backports/linux/debian/patches/bugfix/all/crypto-add-missing-crypto-module-aliases.patch
dists/wheezy-backports/linux/debian/patches/bugfix/all/crypto-include-crypto-module-prefix-in-template.patch
dists/wheezy-backports/linux/debian/patches/bugfix/all/crypto-prefix-module-autoloading-with-crypto.patch
dists/wheezy-backports/linux/debian/patches/bugfix/all/net-sctp-fix-slab-corruption-from-use-after-free-on-.patch
dists/wheezy-backports/linux/debian/patches/bugfix/all/netfilter-conntrack-disable-generic-tracking-for-kno.patch
dists/wheezy-backports/linux/debian/patches/bugfix/arm64/clocksource-arch_timer-Only-use-the-virtual-counter-.patch
dists/wheezy-backports/linux/debian/patches/bugfix/sh4/scripts-recordmcount.pl-there-is-no-m32-option-on-super-h.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/kvm-x86-sysenter-emulation-is-broken.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-tls-interpret-an-all-zero-struct-user_desc-as-no.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-tls-ldt-stop-checking-lm-in-ldt_empty.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-vdso-use-asm-volatile-in-__getcpu.patch
dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86_64-vdso-fix-the-vdso-address-randomization-algor.patch
Modified:
dists/wheezy-backports/linux/ (props changed)
dists/wheezy-backports/linux/debian/changelog
dists/wheezy-backports/linux/debian/config/alpha/defines
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/kernelarch-x86/config
dists/wheezy-backports/linux/debian/patches/features/all/aufs3/aufs3-mmap.patch
dists/wheezy-backports/linux/debian/patches/features/x86/apple-tb/pci-suspend-resume-quirks-for-apple-thunderbolt.patch
dists/wheezy-backports/linux/debian/patches/series
Modified: dists/wheezy-backports/linux/debian/changelog
==============================================================================
--- dists/wheezy-backports/linux/debian/changelog Mon Apr 6 23:38:13 2015 (r22487)
+++ dists/wheezy-backports/linux/debian/changelog Tue Apr 7 21:44:05 2015 (r22488)
@@ -1,10 +1,222 @@
-linux (3.16.7-ckt4-3~bpo70+2) UNRELEASED; urgency=medium
+linux (3.16.7-ckt7-1~bpo70+1) UNRELEASED; urgency=medium
- * linux-image: Depend on initramfs-tools without any alternatives,
- as apt still tries to install a broken version of dracut
+ * Rebuild for wheezy:
+ - Disable architectures that weren't part of wheezy
+ - Use gcc-4.6 for all architectures
+ - Change ABI number to 0.bpo.4
+ - [arm] btrfs: Work around bug in gcc-4.6 (fixes FTBFS)
+ - linux-image: Depend on initramfs-tools without any alternatives, so
+ that neither apt nor aptitude will automatically switch to dracut
+ (Closes: #771379)
-- Ben Hutchings <ben at decadent.org.uk> Wed, 25 Feb 2015 02:17:23 +0000
+linux (3.16.7-ckt7-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt5
+ - [x86] vdso: Use asm volatile in __getcpu
+ - SCSI: fix regression in scsi_send_eh_cmnd() (regression in 3.16)
+ - Btrfs: don't delay inode ref updates during log replay
+ (regression in 3.16.7)
+ - mm: propagate error from stack expansion even for guard page
+ - vfio-pci: Fix the check on pci device type in vfio_pci_probe()
+ - rpc: fix xdr_truncate_encode to handle buffer ending on page boundary
+ (regression in 3.16)
+ - [arm64] efi: add missing call to early_ioremap_reset()
+ (regression in 3.16)
+ - exit: fix race between wait_consider_task() and wait_task_zombie()
+ (regression in 3.15)
+ - mm: prevent endless growth of anon_vma hierarchy
+ - mm: protect set_page_dirty() from ongoing truncation
+ - mm, vmscan: prevent kswapd livelock due to pfmemalloc-throttled process
+ being killed
+ - sched/deadline: Fix migration of SCHED_DEADLINE tasks
+ - HID: roccat: potential out of bounds in pyra_sysfs_write_settings()
+ - mm: Don't count the stack guard page towards RLIMIT_STACK
+ - mm: fix corner case in anon_vma endless growing prevention
+ - [arm*][xen] introduce xen_arch_need_swiotlb
+ - fsnotify: next_i is freed during fsnotify_unmount_inodes.
+ - [armhf] ASoC: eukrea-tlv320: Fix of_node_put() call with uninitialized
+ object (regression in 3.15)
+ - HID: i2c-hid: Do not free buffers in i2c_hid_stop() (regression in 3.15)
+ - ALSA: fireworks: fix an endianness bug for transaction length
+ (regression in 3.16)
+ - [armhf] mtd: nand: omap: Fix NAND enumeration on 3430 LDP
+ (regression in 3.13)
+ - ocfs2: fix the wrong directory passed to ocfs2_lookup_ino_from_name()
+ when link file (regression in 3.14)
+ - [powerpc*] Fix bad NULL pointer check in udbg_uart_getc_poll()
+ (regression in 3.12)
+ - nilfs2: fix the nilfs_iget() vs. nilfs_new_inode() races
+ - [armhf] OMAP4: PM: Only do static dependency configuration in
+ omap4_init_static_deps (regression in 3.11)
+ - [armel,armhf] Revert "ARM: 7830/1: delay: don't bother reporting bogomips
+ in /proc/cpuinfo" (regression in 3.12)
+ - gre: fix the inner mac header in nbma tunnel xmit path
+ (regression in 3.16.7-ckt3)
+ - netlink: Always copy on mmap TX.
+ - netlink: Don't reorder loads/stores before marking mmap netlink frame as
+ available
+ - batman-adv: Unify fragment size calculation (regression in 3.13)
+ - batman-adv: avoid NULL dereferences and fix if check (regression in 3.13)
+ - net: Fix stacked vlan offload features computation
+ - net: Reset secmark when scrubbing packet
+ - xen-netback: fixing the propagation of the transmit shaper timeout
+ (regression in 3.16)
+ - team: avoid possible underflow of count_pending value for notify_peers
+ and mcast_rejoin (regression in 3.12)
+ - usb: gadget: gadgetfs: Free memory allocated by memdup_user()
+ (regression in 3.15)
+ - iwlwifi: mvm: fix Rx with both chains (regression in 3.16)
+ - LOCKD: Fix a race when initialising nlmsvc_timeout (regression in 3.11)
+ - NFSv4.1: Fix client id trunking on Linux
+ - vhost-scsi: Add missing virtio-scsi -> TCM attribute conversion
+ - xhci: Check if slot is already in default state before moving it there
+ (regression in 3.14)
+ - USB: console: fix uninitialised ldisc semaphore (regression in 3.12)
+ - USB: console: fix potential use after free
+ - [armhf] usb: dwc3: gadget: Fix TRB preparation during SG
+ - [x86] ftrace/jprobes: Fix conflict between jprobes and function graph
+ tracing
+ - clk: Don't try to use a struct clk* after it could have been freed
+ - [x86] drm/i915: Evict CS TLBs between batches
+ - [xen] Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single"
+ (regression in 3.16.7-ckt4)
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt6
+ - ipvs: uninitialized data with IP_VS_IPV6
+ - netfilter: nfnetlink: validate nfnetlink header from batch
+ - time: settimeofday: Validate the values of tv from user
+ - drm/radeon: fix VM flush on cayman/aruba (v3)
+ - drm/radeon: fix VM flush on SI (v3)
+ - drm/radeon: fix VM flush on CIK (v3)
+ - drm/radeon: add a dpm quirk list (regression around 3.14)
+ - can: dev: fix crtlmode_supported check
+ - can: kvaser_usb: Don't free packets when tight on URBs
+ - drm/radeon: use rv515_ring_start on r5xx (regression in 3.12)
+ - PCI: Mark Atheros AR93xx to avoid bus reset (regression in 3.14)
+ - [x86] PCI: Clip bridge windows to fit in upstream windows
+ (regression in 3.16)
+ - [armhf] mvebu: completely disable hardware I/O coherency
+ - cifs: fix deadlock in cifs_ioctl_clone()
+ - ipr: wait for aborted command responses
+ - libata: allow sata_sil24 to opt-out of tag ordered submission
+ (regression in 3.14.4, 3.15)
+ - [media] vb2: fix vb2_thread_stop race conditions
+ - [i386/586] apic: Re-enable PCI_MSI support for non-SMP X86_32
+ (regression in 3.12)
+ - dm cache: share cache-metadata object across inactive and active DM
+ tables
+ - dm cache: fix problematic dual use of a single migration count variable
+ - Input: evdev - fix EVIOCG{type} ioctl
+ - tty: Fix pty master poll() after slave closes v2 (regression in 3.12)
+ - [armhf] bus: omap_l3_noc: Add resume hook to restore context
+ (regression in 3.16)
+ - decompress_bunzip2: off by one in get_next_block()
+ - kbuild: Fix removal of the debian/ directory (regression in 3.16)
+ - mm: get rid of radix tree gfp mask for pagecache_get_page
+ (regression in 3.16)
+ - regulator: core: fix race condition in regulator_put()
+ - ASoC: simple-card: Fix crash in asoc_simple_card_unref()
+ (regression in 3.15)
+ - [ppc64el] xmon: Fix another endiannes issue in RTAS call from xmon
+ - nfs: fix dio deadlock when O_DIRECT flag is flipped
+ - mac80211: properly set CCK flag in radiotap (regression in 3.12)
+ - [x86] drm/i915: Only fence tiled region of object.
+ - can: kvaser_usb: Do not sleep in atomic context
+ - can: kvaser_usb: Send correct context to URB completion
+ - rbd: fix rbd_dev_parent_get() when parent_overlap == 0
+ - rbd: drop parent_ref in rbd_dev_unprobe() unconditionally
+ - dm cache: fix missing ERR_PTR returns and handling
+ - dm thin: don't allow messages to be sent to a pool target in READ_ONLY
+ or FAIL mode
+ - [armhf] mvebu: don't set the PL310 in I/O coherency mode when I/O
+ coherency is disabled
+ - vm: add VM_FAULT_SIGSEGV handling support
+ - vm: make stack guard page errors return VM_FAULT_SIGSEGV rather than
+ SIGBUS
+ - perf: Tighten (and fix) the grouping condition
+ - iwlwifi: mvm: drop non VO frames when flushing (regression in 3.16)
+ - memcg: remove extra newlines from memcg oom kill log (regression in 3.15)
+ - ipv4: try to cache dst_entries which would cause a redirect
+ (regression in 3.16) (CVE-2015-1465)
+ http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt7
+ - [ppc64el] powerpc: add little endian flag to syscall_get_arch()
+ - [arm64] Fix up /proc/cpuinfo
+ - cifs: Complete oplock break jobs before closing file handle
+ (regression in 3.15)
+ - [arm64,or1k] lib/checksum.c: fix carry in csum_tcpudp_nofold
+ - [mips*] Fix kernel lockup or crash after CPU offline/online
+ - md/raid5: fix another livelock caused by non-aligned writes.
+ (regression in 3.16)
+ - drm/radeon: fix PLLs on RS880 and older v2 (regression in 3.15)
+ (Closes: #770790)
+ - [armhf/armmp-lpae] 8299/1: mm: ensure local active ASID is marked as
+ allocated on rollover
+ - PCI: Handle read-only BARs on AMD CS553x devices
+ (regression in 3.16.7-ckt4)
+ - mm: pagewalk: call pte_hole() for VM_PFNMAP during walk_page_range
+ - nilfs2: fix deadlock of segment constructor over I_SYNC flag
+ - ip: zero sockaddr returned on error queue
+ - net: rps: fix cpu unplug
+ - ipv6: stop sending PTB packets for MTU < 1280
+ - udp_diag: Fix socket skipping within chain
+ - ping: Fix race in free in receive path
+ - net: don't OOPS on socket aio
+ - ipv4: tcp: get rid of ugly unicast_sock
+ - ppp: deflate: never return len larger than output buffer
+ - [x86] hyperv: Fix the error processing in netvsc_send()
+ - Bluetooth: ath3k: workaround the compatibility issue with xHCI controller
+ - ceph: introduce global empty snap context
+ - drm/vmwgfx: Don't use memory accounting for kernel-side fence objects
+ - net:socket: set msg_namelen to 0 if msg_name is passed as NULL in msghdr
+ struct from userland.
+ - virtio_pci: defer kfree until release callback
+
+ [ Ian Campbell ]
+ * [armhf] Add DTB for Olimex A20-OLinuXino-LIME2. (Closes: #777455)
+ * [armhf] Enable CONFIG_BACKLIGHT_GPIO as a module. (Closes: #778783)
+ * [armhf] Enable FB_SIMPLE on sunxi platform, backporting fixes and DTS
+ entries.
+
+ [ Ben Hutchings ]
+ * shm: add memfd.h to UAPI export list, so kdbus will build
+ * [x86] HPET force enable for e6xx based systems (Closes: #772951)
+ * vfs: read file_handle only once in handle_to_path (CVE-2015-1420)
+ * ASLR: fix stack randomization on 64-bit systems (CVE-2015-1593)
+ * Revert "quota: Switch ->get_dqblk() and ->set_dqblk() to use bytes as
+ space units" to avoid ABI change
+ * rmap: Fix ABI change in 3.16.7-ckt5
+ * perf: Fix ABI change in 3.16.7-ckt6
+ * mm: Fix pagecache_get_page() ABI change in 3.16.7-ckt6
+ * tcp: Fix ABI change in 3.16.7-ckt7
+ * [x86] ACPI / video: Add disable_native_backlight quirk for various
+ Samsung models and Dell XPS15 L521X (Closes: #772440)
+ * [x86] ALSA: Enable SND_SOC, SND_SOC_INTEL_SST, SND_SOC_INTEL_HASWELL_MACH,
+ SND_SOC_INTEL_BYT_RT5640_MACH, SND_SOC_INTEL_BYT_MAX98090_MACH as modules
+ (Closes: #773835)
+ * arcmsr: Backport changes up to Linux 3.18 (Closes: #698821)
+ * [x86] drm/i915: Quietly reject attempts to create non-pagealigned stolen
+ objects (Closes: #763155)
+ * KEYS: request_key() should reget expired keys rather than give EKEYEXPIRED
+ (Closes: #758870)
+ * drm: Enable DRM_BOCHS, DRM_QXL as modules
+ - qxl: Disable by default, as it is incompatible with wheezy's
+ xserver-xorg-video-qxl. It can be forced to load with module
+ parameter modeset=1.
+ * of.h: Keep extern declaration of of_* variables when !CONFIG_OF
+ (for simplefb)
+
+ [ Helge Deller ]
+ * [alpha] build debian-installer udeb packages
+ * [hppa] build virtio udeb packages
+
+ [ Uwe Kleine-König ]
+ * Add support for Bananapro board, thanks Karsten Merker for the patch.
+ (Closes: 779311)
+
+ -- Ben Hutchings <ben at decadent.org.uk> Sun, 01 Mar 2015 15:13:40 +0000
+
linux (3.16.7-ckt4-3~bpo70+1) wheezy-backports; urgency=low
* Rebuild for wheezy:
Modified: dists/wheezy-backports/linux/debian/config/alpha/defines
==============================================================================
--- dists/wheezy-backports/linux/debian/config/alpha/defines Mon Apr 6 23:38:13 2015 (r22487)
+++ dists/wheezy-backports/linux/debian/config/alpha/defines Tue Apr 7 21:44:05 2015 (r22488)
@@ -1,5 +1,5 @@
[base]
-flavours: alpha-generic alpha-smp alpha-legacy
+flavours: alpha-generic alpha-smp
kernel-arch: alpha
[build]
@@ -16,7 +16,3 @@
[alpha-smp_description]
hardware: Alpha SMP
hardware-long: DEC Alpha SMP systems with extended kernel start address (Wildfire, Titan, Marvel)
-
-[alpha-legacy_description]
-hardware: Alpha Legacy
-hardware-long: DEC Alpha systems with legacy kernel start address
Modified: dists/wheezy-backports/linux/debian/config/armhf/config.armmp
==============================================================================
--- dists/wheezy-backports/linux/debian/config/armhf/config.armmp Mon Apr 6 23:38:13 2015 (r22487)
+++ dists/wheezy-backports/linux/debian/config/armhf/config.armmp Tue Apr 7 21:44:05 2015 (r22488)
@@ -832,6 +832,11 @@
CONFIG_USB_MXS_PHY=m
##
+## file: drivers/video/backlight/Kconfig
+##
+CONFIG_BACKLIGHT_GPIO=m
+
+##
## file: drivers/video/console/Kconfig
##
CONFIG_FRAMEBUFFER_CONSOLE=y
Modified: dists/wheezy-backports/linux/debian/config/config
==============================================================================
--- dists/wheezy-backports/linux/debian/config/config Mon Apr 6 23:38:13 2015 (r22487)
+++ dists/wheezy-backports/linux/debian/config/config Tue Apr 7 21:44:05 2015 (r22488)
@@ -500,6 +500,11 @@
# CONFIG_DRM_AST is not set
##
+## file: drivers/gpu/drm/bochs/Kconfig
+##
+CONFIG_DRM_BOCHS=m
+
+##
## file: drivers/gpu/drm/bridge/Kconfig
##
# CONFIG_DRM_PTN3460 is not set
@@ -530,6 +535,11 @@
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
##
+## file: drivers/gpu/drm/qxl/Kconfig
+##
+CONFIG_DRM_QXL=m
+
+##
## file: drivers/gpu/drm/radeon/Kconfig
##
# CONFIG_DRM_RADEON_UMS is not set
Modified: dists/wheezy-backports/linux/debian/config/defines
==============================================================================
--- dists/wheezy-backports/linux/debian/config/defines Mon Apr 6 23:38:13 2015 (r22487)
+++ dists/wheezy-backports/linux/debian/config/defines Tue Apr 7 21:44:05 2015 (r22488)
@@ -5,6 +5,8 @@
module:arch/x86/kvm/kvm
module:drivers/mtd/spi-nor/spi-nor
module:drivers/net/wireless/iwlwifi/iwlwifi
+ module:sound/i2c/other/snd-ak4113
+ module:sound/i2c/other/snd-ak4114
# Apparently not used OOT
__add_pages
__remove_pages
Modified: dists/wheezy-backports/linux/debian/config/kernelarch-x86/config
==============================================================================
--- dists/wheezy-backports/linux/debian/config/kernelarch-x86/config Mon Apr 6 23:38:13 2015 (r22487)
+++ dists/wheezy-backports/linux/debian/config/kernelarch-x86/config Tue Apr 7 21:44:05 2015 (r22488)
@@ -1914,3 +1914,16 @@
##
CONFIG_SND_HDA_INTEL=m
+##
+## file: sound/soc/Kconfig
+##
+CONFIG_SND_SOC=m
+
+##
+## file: sound/soc/intel/Kconfig
+##
+CONFIG_SND_SOC_INTEL_SST=m
+CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
+
Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules (from r22440, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules)
@@ -0,0 +1 @@
+#include "../hppa/virtio-modules"
Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/virtio-modules (from r22440, dists/sid/linux/debian/installer/hppa/modules/hppa/virtio-modules)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/virtio-modules Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/installer/hppa/modules/hppa/virtio-modules)
@@ -0,0 +1 @@
+#include <virtio-modules>
Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch (from r22440, dists/sid/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch)
@@ -0,0 +1,98 @@
+From: Hector Marco-Gisbert <hecmargi at upv.es>
+Date: Sat, 14 Feb 2015 09:33:50 -0800
+Subject: ASLR: fix stack randomization on 64-bit systems
+Origin: http://article.gmane.org/gmane.linux.kernel/1888210
+
+The issue is that the stack for processes is not properly randomized on 64 bit
+architectures due to an integer overflow.
+
+The affected function is randomize_stack_top() in file "fs/binfmt_elf.c":
+
+static unsigned long randomize_stack_top(unsigned long stack_top)
+{
+ unsigned int random_variable = 0;
+
+ if ((current->flags & PF_RANDOMIZE) &&
+ !(current->personality & ADDR_NO_RANDOMIZE)) {
+ random_variable = get_random_int() & STACK_RND_MASK;
+ random_variable <<= PAGE_SHIFT;
+ }
+ return PAGE_ALIGN(stack_top) + random_variable;
+ return PAGE_ALIGN(stack_top) - random_variable;
+}
+
+Note that, it declares the "random_variable" variable as "unsigned int". Since
+the result of the shifting operation between STACK_RND_MASK (which is
+0x3fffff on x86_64, 22 bits) and PAGE_SHIFT (which is 12 on x86_64):
+
+random_variable <<= PAGE_SHIFT;
+
+then the two leftmost bits are dropped when storing the result in the
+"random_variable". This variable shall be at least 34 bits long to hold the
+(22+12) result.
+
+These two dropped bits have an impact on the entropy of process stack.
+Concretely, the total stack entropy is reduced by four: from 2^28 to 2^30 (One
+fourth of expected entropy).
+
+This patch restores back the entropy by correcting the types involved in the
+operations in the functions randomize_stack_top() and stack_maxrandom_size().
+
+The successful fix can be tested with:
+$ for i in `seq 1 10`; do cat /proc/self/maps | grep stack; done
+7ffeda566000-7ffeda587000 rw-p 00000000 00:00 0 [stack]
+7fff5a332000-7fff5a353000 rw-p 00000000 00:00 0 [stack]
+7ffcdb7a1000-7ffcdb7c2000 rw-p 00000000 00:00 0 [stack]
+7ffd5e2c4000-7ffd5e2e5000 rw-p 00000000 00:00 0 [stack]
+...
+
+Once corrected, the leading bytes should be between 7ffc and 7fff, rather
+than always being 7fff.
+
+CVE-2015-1593
+
+Signed-off-by: Hector Marco-Gisbert <hecmargi at upv.es>
+Signed-off-by: Ismael Ripoll <iripoll at upv.es>
+[kees: rebase, fix 80 char, clean up commit message, add test example, cve]
+Signed-off-by: Kees Cook <keescook at chromium.org>
+Cc: stable at vger.kernel.org
+---
+ arch/x86/mm/mmap.c | 6 +++---
+ fs/binfmt_elf.c | 5 +++--
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+--- a/arch/x86/mm/mmap.c
++++ b/arch/x86/mm/mmap.c
+@@ -35,12 +35,12 @@ struct __read_mostly va_alignment va_ali
+ .flags = -1,
+ };
+
+-static unsigned int stack_maxrandom_size(void)
++static unsigned long stack_maxrandom_size(void)
+ {
+- unsigned int max = 0;
++ unsigned long max = 0;
+ if ((current->flags & PF_RANDOMIZE) &&
+ !(current->personality & ADDR_NO_RANDOMIZE)) {
+- max = ((-1U) & STACK_RND_MASK) << PAGE_SHIFT;
++ max = ((-1UL) & STACK_RND_MASK) << PAGE_SHIFT;
+ }
+
+ return max;
+--- a/fs/binfmt_elf.c
++++ b/fs/binfmt_elf.c
+@@ -554,11 +554,12 @@ out:
+
+ static unsigned long randomize_stack_top(unsigned long stack_top)
+ {
+- unsigned int random_variable = 0;
++ unsigned long random_variable = 0;
+
+ if ((current->flags & PF_RANDOMIZE) &&
+ !(current->personality & ADDR_NO_RANDOMIZE)) {
+- random_variable = get_random_int() & STACK_RND_MASK;
++ random_variable = (unsigned long) get_random_int();
++ random_variable &= STACK_RND_MASK;
+ random_variable <<= PAGE_SHIFT;
+ }
+ #ifdef CONFIG_STACK_GROWSUP
Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch (from r22440, dists/sid/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch)
@@ -0,0 +1,102 @@
+From: David Howells <dhowells at redhat.com>
+Date: Mon, 1 Dec 2014 22:52:53 +0000
+Subject: KEYS: request_key() should reget expired keys rather than give
+ EKEYEXPIRED
+Origin: https://git.kernel.org/linus/0b0a84154eff56913e91df29de5c3a03a0029e38
+
+Since the keyring facility can be viewed as a cache (at least in some
+applications), the local expiration time on the key should probably be viewed
+as a 'needs updating after this time' property rather than an absolute 'anyone
+now wanting to use this object is out of luck' property.
+
+Since request_key() is the main interface for the usage of keys, this should
+update or replace an expired key rather than issuing EKEYEXPIRED if the local
+expiration has been reached (ie. it should refresh the cache).
+
+For absolute conditions where refreshing the cache probably doesn't help, the
+key can be negatively instantiated using KEYCTL_REJECT_KEY with EKEYEXPIRED
+given as the error to issue. This will still cause request_key() to return
+EKEYEXPIRED as that was explicitly set.
+
+In the future, if the key type has an update op available, we might want to
+upcall with the expired key and allow the upcall to update it. We would pass
+a different operation name (the first column in /etc/request-key.conf) to the
+request-key program.
+
+request_key() returning EKEYEXPIRED is causing an NFS problem which Chuck
+Lever describes thusly:
+
+ After about 10 minutes, my NFSv4 functional tests fail because the
+ ownership of the test files goes to "-2". Looking at /proc/keys
+ shows that the id_resolv keys that map to my test user ID have
+ expired. The ownership problem persists until the expired keys are
+ purged from the keyring, and fresh keys are obtained.
+
+ I bisected the problem to 3.13 commit b2a4df200d57 ("KEYS: Expand
+ the capacity of a keyring"). This commit inadvertantly changes the
+ API contract of the internal function keyring_search_aux().
+
+ The root cause appears to be that b2a4df200d57 made "no state check"
+ the default behavior. "No state check" means the keyring search
+ iterator function skips checking the key's expiry timeout, and
+ returns expired keys. request_key_and_link() depends on getting
+ an -EAGAIN result code to know when to perform an upcall to refresh
+ an expired key.
+
+This patch can be tested directly by:
+
+ keyctl request2 user debug:fred a @s
+ keyctl timeout %user:debug:fred 3
+ sleep 4
+ keyctl request2 user debug:fred a @s
+
+Without the patch, the last command gives error EKEYEXPIRED, but with the
+command it gives a new key.
+
+Reported-by: Carl Hetherington <cth at carlh.net>
+Reported-by: Chuck Lever <chuck.lever at oracle.com>
+Signed-off-by: David Howells <dhowells at redhat.com>
+Tested-by: Chuck Lever <chuck.lever at oracle.com>
+[bwh: Backported to 3.16:
+ - Renumber KEYRING_SEARCH_SKIP_EXPIRED
+ - Adjust context]
+---
+ security/keys/internal.h | 1 +
+ security/keys/keyring.c | 3 ++-
+ security/keys/request_key.c | 3 ++-
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+--- a/security/keys/internal.h
++++ b/security/keys/internal.h
+@@ -121,6 +121,7 @@ struct keyring_search_context {
+ #define KEYRING_SEARCH_NO_UPDATE_TIME 0x0008 /* Don't update times */
+ #define KEYRING_SEARCH_NO_CHECK_PERM 0x0010 /* Don't check permissions */
+ #define KEYRING_SEARCH_DETECT_TOO_DEEP 0x0020 /* Give an error on excessive depth */
++#define KEYRING_SEARCH_SKIP_EXPIRED 0x0040 /* Ignore expired keys (intention to replace) */
+
+ int (*iterator)(const void *object, void *iterator_data);
+
+--- a/security/keys/keyring.c
++++ b/security/keys/keyring.c
+@@ -526,7 +526,8 @@ static int keyring_search_iterator(const
+ }
+
+ if (key->expiry && ctx->now.tv_sec >= key->expiry) {
+- ctx->result = ERR_PTR(-EKEYEXPIRED);
++ if (!(ctx->flags & KEYRING_SEARCH_SKIP_EXPIRED))
++ ctx->result = ERR_PTR(-EKEYEXPIRED);
+ kleave(" = %d [expire]", ctx->skipped_ret);
+ goto skipped;
+ }
+--- a/security/keys/request_key.c
++++ b/security/keys/request_key.c
+@@ -533,7 +533,8 @@ struct key *request_key_and_link(struct
+ .cred = current_cred(),
+ .match = type->match,
+ .match_data = description,
+- .flags = KEYRING_SEARCH_LOOKUP_DIRECT,
++ .flags = (KEYRING_SEARCH_LOOKUP_DIRECT |
++ KEYRING_SEARCH_SKIP_EXPIRED),
+ };
+ struct key *key;
+ key_ref_t key_ref;
Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch (from r22440, dists/sid/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch)
@@ -0,0 +1,37 @@
+From: Sasha Levin <sasha.levin at oracle.com>
+Subject: vfs: read file_handle only once in handle_to_path
+Date: Wed, 28 Jan 2015 15:30:43 -0500
+Origin: http://article.gmane.org/gmane.linux.file-systems/92438
+
+We used to read file_handle twice. Once to get the amount of extra bytes, and
+once to fetch the entire structure.
+
+This may be problematic since we do size verifications only after the first
+read, so if the number of extra bytes changes in userspace between the first
+and second calls, we'll have an incoherent view of file_handle.
+
+Instead, read the constant size once, and copy that over to the final
+structure without having to re-read it again.
+
+Signed-off-by: Sasha Levin <sasha.levin at oracle.com>
+---
+Change in v2:
+ - Use the f_handle pointer rather than size of struct
+
+ fs/fhandle.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/fs/fhandle.c
++++ b/fs/fhandle.c
+@@ -195,8 +195,9 @@ static int handle_to_path(int mountdirfd
+ goto out_err;
+ }
+ /* copy the full handle */
+- if (copy_from_user(handle, ufh,
+- sizeof(struct file_handle) +
++ *handle = f_handle;
++ if (copy_from_user(&handle->f_handle,
++ &ufh->f_handle,
+ f_handle.handle_bytes)) {
+ retval = -EFAULT;
+ goto out_handle;
Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch)
@@ -0,0 +1,34 @@
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Mon, 5 Jan 2015 08:57:04 +0100
+Subject: ACPI / video: Add disable_native_backlight quirk for Dell XPS15 L521X
+Origin: https://git.kernel.org/linus/6a3ef10bacb08860805e9053f919786dc34760ba
+
+The L521X variant of the Dell XPS15 has integrated nvidia graphics, and
+backlight control does not work properly when using the native interfaces.
+
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=1163574
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
+---
+ drivers/acpi/video.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -711,6 +711,16 @@ static struct dmi_system_id video_dmi_ta
+ DMI_MATCH(DMI_PRODUCT_NAME, "370R4E/370R4V/370R5E/3570RE/370R5V"),
+ },
+ },
++
++ {
++ /* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */
++ .callback = video_disable_native_backlight,
++ .ident = "Dell XPS15 L521X",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "XPS L521X"),
++ },
++ },
+ {}
+ };
+
Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch)
@@ -0,0 +1,35 @@
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Sat, 7 Feb 2015 09:53:53 +0100
+Subject: ACPI / video: Add disable_native_backlight quirk for Samsung 510R
+Origin: https://git.kernel.org/linus/e77a16355a29230b99bafe55834a8252e55308ec
+
+Backlight control through the native intel interface does not work properly
+on the Samsung 510R, where as using the acpi_video interface does work, add
+a quirk for this.
+
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=1186097
+Cc: All applicable <stable at vger.kernel.org>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
+---
+ drivers/acpi/video.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -712,6 +712,15 @@ static struct dmi_system_id video_dmi_ta
+ },
+ },
+ {
++ /* https://bugzilla.redhat.com/show_bug.cgi?id=1186097 */
++ .callback = video_disable_native_backlight,
++ .ident = "SAMSUNG 3570R/370R/470R/450R/510R/4450RV",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "3570R/370R/470R/450R/510R/4450RV"),
++ },
++ },
++ {
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1094948 */
+ .callback = video_disable_native_backlight,
+ .ident = "SAMSUNG 730U3E/740U3E",
Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch)
@@ -0,0 +1,34 @@
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 9 Jan 2015 16:22:57 +0100
+Subject: ACPI / video: Add disable_native_backlight quirk for Samsung
+ 730U3E/740U3E
+Origin: https://git.kernel.org/linus/3295d73002f4be341069a000aec4b8d7e5ea8d2c
+
+The Samsung 730U3E/740U3E has integrated ATI Radeon graphics, and backlight
+control does not work properly when using the native interfaces.
+
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=1094948
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
+---
+ drivers/acpi/video.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -711,6 +711,15 @@ static struct dmi_system_id video_dmi_ta
+ DMI_MATCH(DMI_PRODUCT_NAME, "370R4E/370R4V/370R5E/3570RE/370R5V"),
+ },
+ },
++ {
++ /* https://bugzilla.redhat.com/show_bug.cgi?id=1094948 */
++ .callback = video_disable_native_backlight,
++ .ident = "SAMSUNG 730U3E/740U3E",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "730U3E/740U3E"),
++ },
++ },
+
+ {
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */
Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch)
@@ -0,0 +1,52 @@
+From: Aaron Lu <aaron.lu at intel.com>
+Date: Mon, 22 Dec 2014 15:18:05 +0800
+Subject: ACPI / video: Add some Samsung models to disable_native_backlight
+ list
+Origin: https://git.kernel.org/linus/7d0b93499f4879ddbc75d594f4ea216ba964f78e
+
+Several Samsung laptop models (SAMSUNG 870Z5E/880Z5E/680Z5E and
+SAMSUNG 370R4E/370R4V/370R5E/3570RE/370R5V) do not have a working
+native backlight control interface so restore their acpi_videoX
+interface.
+
+Link: https://bugzilla.kernel.org/show_bug.cgi?id=84221
+Link: https://bugzilla.kernel.org/show_bug.cgi?id=84651
+For SAMSUNG 870Z5E/880Z5E/680Z5E:
+Reported-and-tested-by: Brent Saner <brent.saner at gmail.com>
+Reported-by: Vitaliy Filippov <vitalif at yourcmc.ru>
+Reported-by: Laszlo KREKACS <laszlo.krekacs.list at gmail.com>
+For SAMSUNG 370R4E/370R4V/370R5E/3570RE/370R5V:
+Reported-by: Vladimir Perepechin <vovochka13 at gmail.com>
+Cc: 3.17+ <stable at vger.kernel.org> # 3.17+
+Signed-off-by: Aaron Lu <aaron.lu at intel.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
+---
+ drivers/acpi/video.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -694,6 +694,23 @@ static struct dmi_system_id video_dmi_ta
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP ENVY 15 Notebook PC"),
+ },
+ },
++
++ {
++ .callback = video_disable_native_backlight,
++ .ident = "SAMSUNG 870Z5E/880Z5E/680Z5E",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "870Z5E/880Z5E/680Z5E"),
++ },
++ },
++ {
++ .callback = video_disable_native_backlight,
++ .ident = "SAMSUNG 370R4E/370R4V/370R5E/3570RE/370R5V",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "370R4E/370R4V/370R5E/3570RE/370R5V"),
++ },
++ },
+ {}
+ };
+
Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch)
@@ -0,0 +1,46 @@
+From: Jens Reyer <jens.reyer at gmail.com>
+Date: Tue, 17 Feb 2015 19:07:29 +0100
+Subject: ACPI / video: Disable native backlight on Samsung Series 9 laptops
+Origin: https://git.kernel.org/linus/3120d03cf64d7f9fd71231827af2c1550aa4caa7
+
+Add video_disable_native_backlight quirk for SAMSUNG 900X3C/900X3D/
+900X3E/900X4C/900X4D laptops.
+
+The native intel backlight controls do not work correctly on SAMSUNG
+Series 9 (900X3C/900X3D/900X3E/900X4C/900X4D) laptops:
+One machine has an completely dimmed (= black) display after boot at the
+GDM login screen and brightness controls work only between 0 and 5%
+(= no effect).
+Another machine has the same brightness control issues if an external
+HDMI monitor is or gets connected, although the initial brightness is
+ok.
+After login to Gnome both machines always work fine.
+
+Tested on both machines.
+
+Link: https://bugs.freedesktop.org/show_bug.cgi?id=87286
+Link: https://bugs.debian.org/772440
+Signed-off-by: Jens Reyer <jens.reyer at gmail.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
+---
+ drivers/acpi/video.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -729,6 +729,15 @@ static struct dmi_system_id video_dmi_ta
+ DMI_MATCH(DMI_PRODUCT_NAME, "730U3E/740U3E"),
+ },
+ },
++ {
++ /* https://bugs.freedesktop.org/show_bug.cgi?id=87286 */
++ .callback = video_disable_native_backlight,
++ .ident = "SAMSUNG 900X3C/900X3D/900X3E/900X4C/900X4D",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "900X3C/900X3D/900X3E/900X4C/900X4D"),
++ },
++ },
+
+ {
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */
Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch)
@@ -0,0 +1,52 @@
+Subject: drm/i915: Quietly reject attempts to create non-pagealigned stolen
+ objects
+From: Chris Wilson <chris at chris-wilson.co.uk>
+Date: Wed, 10 Dec 2014 08:17:11 +0000
+Origin: http://patchwork.freedesktop.org/patch/38659/
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=86883
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763155
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764528
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=768027
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771227
+
+This added as a BUG_ON as it considered that no one would ever request
+an unaligned object. However, it turns out that some BIOSes will
+allocate a scanout that is offset from 0 and not aligned to a page
+boundary, and we were passing this through and hitting the BUG_ON during
+boot.
+
+Quietly reject such a request to reserve the unaligned stolen object and
+let the boot continue, restoring previous behaviour (i.e. no BIOS
+framebuffer preservation).
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86883
+Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
+Cc: stable at vger.kernel.org
+Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he at intel.com)
+Tested-by: Johannes W <jargon <at> molb.org>
+---
+drivers/gpu/drm/i915/i915_gem_stolen.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+--- a/drivers/gpu/drm/i915/i915_gem_stolen.c
++++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
+@@ -431,13 +431,15 @@ i915_gem_object_create_stolen_for_preall
+ DRM_DEBUG_KMS("creating preallocated stolen object: stolen_offset=%x, gtt_offset=%x, size=%x\n",
+ stolen_offset, gtt_offset, size);
+
+- /* KISS and expect everything to be page-aligned */
+- BUG_ON(stolen_offset & 4095);
+- BUG_ON(size & 4095);
+-
+ if (WARN_ON(size == 0))
+ return NULL;
+
++ /* KISS and expect everything to be GTT page-aligned */
++ if ((stolen_offset | size) & 4095) {
++ DRM_DEBUG_KMS("request for unaligned stolen object, denied\n");
++ return NULL;
++ }
++
+ stolen = kzalloc(sizeof(*stolen), GFP_KERNEL);
+ if (!stolen)
+ return NULL;
Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch)
@@ -0,0 +1,63 @@
+From: Peter Neubauer <pneubauer at bluerwhite.org>
+Date: Fri, 12 Sep 2014 13:06:13 +0200
+Subject: x86: HPET force enable for e6xx based systems
+Origin: https://git.kernel.org/linus/2e151c70dfb0075ff83bec305c52a9da1ba49089
+
+As the Soekris net6501 and other e6xx based systems do not have
+any ACPI implementation, HPET won't get enabled.
+This patch enables HPET on such platforms.
+
+[ 0.430149] pci 0000:00:01.0: Force enabled HPET at 0xfed00000
+[ 0.644838] HPET: 3 timers in total, 0 timers will be used for per-cpu timer
+
+Original patch by Peter Neubauer (http://www.mail-archive.com/soekris-tech@lists.soekris.com/msg06462.html)
+slightly modified by Conrad Kostecki <ck at conrad-kostecki.de> and massaged
+accoring to Thomas Gleixners <tglx at linutronix.de> by me.
+
+Suggested-by: Conrad Kostecki <ck at conrad-kostecki.de>
+Signed-off-by: Eric Sesterhenn <eric.sesterhenn at lsexperts.de>
+Cc: Peter Neubauer <pneubauer at bluerwhite.org>
+Link: http://lkml.kernel.org/r/5412D3A5.2030909@lsexperts.de
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ arch/x86/kernel/quirks.c | 18 ++++++++++++++++++
+ include/linux/pci_ids.h | 1 +
+ 2 files changed, 19 insertions(+)
+
+--- a/arch/x86/kernel/quirks.c
++++ b/arch/x86/kernel/quirks.c
+@@ -498,6 +498,24 @@ void force_hpet_resume(void)
+ }
+
+ /*
++ * According to the datasheet e6xx systems have the HPET hardwired to
++ * 0xfed00000
++ */
++static void e6xx_force_enable_hpet(struct pci_dev *dev)
++{
++ if (hpet_address || force_hpet_address)
++ return;
++
++ force_hpet_address = 0xFED00000;
++ force_hpet_resume_type = NONE_FORCE_HPET_RESUME;
++ dev_printk(KERN_DEBUG, &dev->dev, "Force enabled HPET at "
++ "0x%lx\n", force_hpet_address);
++ return;
++}
++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E6XX_CU,
++ e6xx_force_enable_hpet);
++
++/*
+ * HPET MSI on some boards (ATI SB700/SB800) has side effect on
+ * floppy DMA. Disable HPET MSI on such platforms.
+ * See erratum #27 (Misinterpreted MSI Requests May Result in
+--- a/include/linux/pci_ids.h
++++ b/include/linux/pci_ids.h
+@@ -2859,6 +2859,7 @@
+ #define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601
+ #define PCI_DEVICE_ID_INTEL_SCH_LPC 0x8119
+ #define PCI_DEVICE_ID_INTEL_SCH_IDE 0x811a
++#define PCI_DEVICE_ID_INTEL_E6XX_CU 0x8183
+ #define PCI_DEVICE_ID_INTEL_ITC_LPC 0x8186
+ #define PCI_DEVICE_ID_INTEL_82454GX 0x84c4
+ #define PCI_DEVICE_ID_INTEL_82450GX 0x84c5
Copied: dists/wheezy-backports/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch (from r22440, dists/sid/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch)
@@ -0,0 +1,46 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Tue, 24 Feb 2015 20:05:05 +0000
+Subject: mm: Fix pagecache_get_page() ABI change in 3.16.7-ckt6
+Forwarded: not-needed
+
+The last parameter to pagecache_get_page() was dropped, as some
+callers passed the wrong value and it is really redundant.
+
+As most filesystems need this function, we should keep the old
+function signature for OOT modules. Rename the function, add a
+wrapper with the old name and parameters, and add a macro to make all
+new callers use the new function.
+
+---
+--- a/include/linux/pagemap.h
++++ b/include/linux/pagemap.h
+@@ -267,7 +267,12 @@ pgoff_t page_cache_prev_hole(struct addr
+ #define FGP_NOWAIT 0x00000020
+
+ struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset,
+- int fgp_flags, gfp_t cache_gfp_mask);
++ int fgp_flags, gfp_t cache_gfp_mask,
++ gfp_t radix_gfp_mask);
++struct page *
++pagecache_get_page_fixed(struct address_space *mapping, pgoff_t offset,
++ int fgp_flags, gfp_t cache_gfp_mask);
++#define pagecache_get_page pagecache_get_page_fixed
+
+ /**
+ * find_get_page - find and get a page reference
+--- a/mm/filemap.c
++++ b/mm/filemap.c
+@@ -2674,3 +2674,13 @@ int try_to_release_page(struct page *pag
+ }
+
+ EXPORT_SYMBOL(try_to_release_page);
++
++#undef pagecache_get_page
++struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset,
++ int fgp_flags, gfp_t cache_gfp_mask,
++ gfp_t radix_gfp_mask __always_unused)
++{
++ return pagecache_get_page_fixed(mapping, offset, fgp_flags,
++ cache_gfp_mask);
++}
++EXPORT_SYMBOL(pagecache_get_page);
Copied: dists/wheezy-backports/linux/debian/patches/debian/no-clean.patch (from r22440, dists/sid/linux/debian/patches/debian/no-clean.patch)
==============================================================================
Copied: dists/wheezy-backports/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch (from r22440, dists/sid/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch)
@@ -0,0 +1,32 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Tue, 24 Feb 2015 09:53:48 +0000
+Subject: perf: Fix ABI change in 3.16.7-ckt6
+Forwarded: not-needed
+
+Commit c3c87e770458 ('perf: Tighten (and fix) the grouping condition')
+removed perf_event_context::type and its type definition. Add them
+back.
+
+--- a/include/linux/perf_event.h
++++ b/include/linux/perf_event.h
+@@ -453,6 +453,12 @@ struct perf_event {
+ #endif /* CONFIG_PERF_EVENTS */
+ };
+
++/* now unused */
++enum perf_event_context_type {
++ task_context,
++ cpu_context,
++};
++
+ /**
+ * struct perf_event_context - event context structure
+ *
+@@ -460,6 +466,7 @@ struct perf_event {
+ */
+ struct perf_event_context {
+ struct pmu *pmu;
++ enum perf_event_context_type type; /* now unused */
+ /*
+ * Protect the states of the events in the list,
+ * nr_active, and the list:
Copied: dists/wheezy-backports/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch (from r22440, dists/sid/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch)
@@ -0,0 +1,20 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: qxl: Disable by default
+Forwarded: not-needed
+
+This kernel driver is incompatible with older versions of
+xserver-xorg-video-qxl, so do not enable it by default. It should be
+enabled by a modprobe configuration file installed by
+xserver-xorg-video-qxl in jessie.
+
+--- a/drivers/gpu/drm/qxl/qxl_drv.c
++++ b/drivers/gpu/drm/qxl/qxl_drv.c
+@@ -47,7 +47,7 @@ static DEFINE_PCI_DEVICE_TABLE(pciidlist
+ };
+ MODULE_DEVICE_TABLE(pci, pciidlist);
+
+-static int qxl_modeset = -1;
++static int qxl_modeset = 0;
+ int qxl_num_crtc = 4;
+
+ MODULE_PARM_DESC(modeset, "Disable/Enable modesetting");
Copied: dists/wheezy-backports/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch (from r22440, dists/sid/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch)
@@ -0,0 +1,940 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Tue, 24 Feb 2015 06:11:44 +0000
+Subject: Revert "quota: Switch ->get_dqblk() and ->set_dqblk() to use bytes as space units"
+Forwarded: not-needed
+
+This reverts commit e5c1cda088832f58c8477ac993ed70ec98fa1221. based
+on commit 14bf61ffe6ac54afcd1e888a4407fe16054483db upstream. It makes
+a module ABI change and doesn't seem worth the trouble. We can
+probably fix the issue later in a somewhat uglier way without the ABI
+change.
+---
+ fs/gfs2/quota.c | 49 +++++++-------
+ fs/quota/dquot.c | 83 ++++++++++++------------
+ fs/quota/quota.c | 162 ++++++++---------------------------------------
+ fs/xfs/xfs_qm.h | 4 +-
+ fs/xfs/xfs_qm_syscalls.c | 156 ++++++++++++++++++++++++++-------------------
+ fs/xfs/xfs_quotaops.c | 8 +--
+ include/linux/quota.h | 47 +-------------
+ include/linux/quotaops.h | 4 +-
+ 8 files changed, 195 insertions(+), 318 deletions(-)
+
+diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
+index dc482ff..64b29f7 100644
+--- a/fs/gfs2/quota.c
++++ b/fs/gfs2/quota.c
+@@ -667,7 +667,7 @@ static void do_qc(struct gfs2_quota_data *qd, s64 change)
+
+ static int gfs2_adjust_quota(struct gfs2_inode *ip, loff_t loc,
+ s64 change, struct gfs2_quota_data *qd,
+- struct qc_dqblk *fdq)
++ struct fs_disk_quota *fdq)
+ {
+ struct inode *inode = &ip->i_inode;
+ struct gfs2_sbd *sdp = GFS2_SB(inode);
+@@ -697,16 +697,16 @@ static int gfs2_adjust_quota(struct gfs2_inode *ip, loff_t loc,
+ be64_add_cpu(&q.qu_value, change);
+ qd->qd_qb.qb_value = q.qu_value;
+ if (fdq) {
+- if (fdq->d_fieldmask & QC_SPC_SOFT) {
+- q.qu_warn = cpu_to_be64(fdq->d_spc_softlimit >> sdp->sd_sb.sb_bsize_shift);
++ if (fdq->d_fieldmask & FS_DQ_BSOFT) {
++ q.qu_warn = cpu_to_be64(fdq->d_blk_softlimit >> sdp->sd_fsb2bb_shift);
+ qd->qd_qb.qb_warn = q.qu_warn;
+ }
+- if (fdq->d_fieldmask & QC_SPC_HARD) {
+- q.qu_limit = cpu_to_be64(fdq->d_spc_hardlimit >> sdp->sd_sb.sb_bsize_shift);
++ if (fdq->d_fieldmask & FS_DQ_BHARD) {
++ q.qu_limit = cpu_to_be64(fdq->d_blk_hardlimit >> sdp->sd_fsb2bb_shift);
+ qd->qd_qb.qb_limit = q.qu_limit;
+ }
+- if (fdq->d_fieldmask & QC_SPACE) {
+- q.qu_value = cpu_to_be64(fdq->d_space >> sdp->sd_sb.sb_bsize_shift);
++ if (fdq->d_fieldmask & FS_DQ_BCOUNT) {
++ q.qu_value = cpu_to_be64(fdq->d_bcount >> sdp->sd_fsb2bb_shift);
+ qd->qd_qb.qb_value = q.qu_value;
+ }
+ }
+@@ -1502,7 +1502,7 @@ static int gfs2_quota_get_xstate(struct super_block *sb,
+ }
+
+ static int gfs2_get_dqblk(struct super_block *sb, struct kqid qid,
+- struct qc_dqblk *fdq)
++ struct fs_disk_quota *fdq)
+ {
+ struct gfs2_sbd *sdp = sb->s_fs_info;
+ struct gfs2_quota_lvb *qlvb;
+@@ -1510,7 +1510,7 @@ static int gfs2_get_dqblk(struct super_block *sb, struct kqid qid,
+ struct gfs2_holder q_gh;
+ int error;
+
+- memset(fdq, 0, sizeof(*fdq));
++ memset(fdq, 0, sizeof(struct fs_disk_quota));
+
+ if (sdp->sd_args.ar_quota == GFS2_QUOTA_OFF)
+ return -ESRCH; /* Crazy XFS error code */
+@@ -1527,9 +1527,12 @@ static int gfs2_get_dqblk(struct super_block *sb, struct kqid qid,
+ goto out;
+
+ qlvb = (struct gfs2_quota_lvb *)qd->qd_gl->gl_lksb.sb_lvbptr;
+- fdq->d_spc_hardlimit = be64_to_cpu(qlvb->qb_limit) << sdp->sd_sb.sb_bsize_shift;
+- fdq->d_spc_softlimit = be64_to_cpu(qlvb->qb_warn) << sdp->sd_sb.sb_bsize_shift;
+- fdq->d_space = be64_to_cpu(qlvb->qb_value) << sdp->sd_sb.sb_bsize_shift;
++ fdq->d_version = FS_DQUOT_VERSION;
++ fdq->d_flags = (qid.type == USRQUOTA) ? FS_USER_QUOTA : FS_GROUP_QUOTA;
++ fdq->d_id = from_kqid_munged(current_user_ns(), qid);
++ fdq->d_blk_hardlimit = be64_to_cpu(qlvb->qb_limit) << sdp->sd_fsb2bb_shift;
++ fdq->d_blk_softlimit = be64_to_cpu(qlvb->qb_warn) << sdp->sd_fsb2bb_shift;
++ fdq->d_bcount = be64_to_cpu(qlvb->qb_value) << sdp->sd_fsb2bb_shift;
+
+ gfs2_glock_dq_uninit(&q_gh);
+ out:
+@@ -1538,10 +1541,10 @@ out:
+ }
+
+ /* GFS2 only supports a subset of the XFS fields */
+-#define GFS2_FIELDMASK (QC_SPC_SOFT|QC_SPC_HARD|QC_SPACE)
++#define GFS2_FIELDMASK (FS_DQ_BSOFT|FS_DQ_BHARD|FS_DQ_BCOUNT)
+
+ static int gfs2_set_dqblk(struct super_block *sb, struct kqid qid,
+- struct qc_dqblk *fdq)
++ struct fs_disk_quota *fdq)
+ {
+ struct gfs2_sbd *sdp = sb->s_fs_info;
+ struct gfs2_inode *ip = GFS2_I(sdp->sd_quota_inode);
+@@ -1585,17 +1588,17 @@ static int gfs2_set_dqblk(struct super_block *sb, struct kqid qid,
+ goto out_i;
+
+ /* If nothing has changed, this is a no-op */
+- if ((fdq->d_fieldmask & QC_SPC_SOFT) &&
+- ((fdq->d_spc_softlimit >> sdp->sd_sb.sb_bsize_shift) == be64_to_cpu(qd->qd_qb.qb_warn)))
+- fdq->d_fieldmask ^= QC_SPC_SOFT;
++ if ((fdq->d_fieldmask & FS_DQ_BSOFT) &&
++ ((fdq->d_blk_softlimit >> sdp->sd_fsb2bb_shift) == be64_to_cpu(qd->qd_qb.qb_warn)))
++ fdq->d_fieldmask ^= FS_DQ_BSOFT;
+
+- if ((fdq->d_fieldmask & QC_SPC_HARD) &&
+- ((fdq->d_spc_hardlimit >> sdp->sd_sb.sb_bsize_shift) == be64_to_cpu(qd->qd_qb.qb_limit)))
+- fdq->d_fieldmask ^= QC_SPC_HARD;
++ if ((fdq->d_fieldmask & FS_DQ_BHARD) &&
++ ((fdq->d_blk_hardlimit >> sdp->sd_fsb2bb_shift) == be64_to_cpu(qd->qd_qb.qb_limit)))
++ fdq->d_fieldmask ^= FS_DQ_BHARD;
+
+- if ((fdq->d_fieldmask & QC_SPACE) &&
+- ((fdq->d_space >> sdp->sd_sb.sb_bsize_shift) == be64_to_cpu(qd->qd_qb.qb_value)))
+- fdq->d_fieldmask ^= QC_SPACE;
++ if ((fdq->d_fieldmask & FS_DQ_BCOUNT) &&
++ ((fdq->d_bcount >> sdp->sd_fsb2bb_shift) == be64_to_cpu(qd->qd_qb.qb_value)))
++ fdq->d_fieldmask ^= FS_DQ_BCOUNT;
+
+ if (fdq->d_fieldmask == 0)
+ goto out_i;
+diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
+index 6a35035..f56a357 100644
+--- a/fs/quota/dquot.c
++++ b/fs/quota/dquot.c
+@@ -2407,25 +2407,30 @@ static inline qsize_t stoqb(qsize_t space)
+ }
+
+ /* Generic routine for getting common part of quota structure */
+-static void do_get_dqblk(struct dquot *dquot, struct qc_dqblk *di)
++static void do_get_dqblk(struct dquot *dquot, struct fs_disk_quota *di)
+ {
+ struct mem_dqblk *dm = &dquot->dq_dqb;
+
+ memset(di, 0, sizeof(*di));
++ di->d_version = FS_DQUOT_VERSION;
++ di->d_flags = dquot->dq_id.type == USRQUOTA ?
++ FS_USER_QUOTA : FS_GROUP_QUOTA;
++ di->d_id = from_kqid_munged(current_user_ns(), dquot->dq_id);
++
+ spin_lock(&dq_data_lock);
+- di->d_spc_hardlimit = dm->dqb_bhardlimit;
+- di->d_spc_softlimit = dm->dqb_bsoftlimit;
++ di->d_blk_hardlimit = stoqb(dm->dqb_bhardlimit);
++ di->d_blk_softlimit = stoqb(dm->dqb_bsoftlimit);
+ di->d_ino_hardlimit = dm->dqb_ihardlimit;
+ di->d_ino_softlimit = dm->dqb_isoftlimit;
+- di->d_space = dm->dqb_curspace + dm->dqb_rsvspace;
+- di->d_ino_count = dm->dqb_curinodes;
+- di->d_spc_timer = dm->dqb_btime;
+- di->d_ino_timer = dm->dqb_itime;
++ di->d_bcount = dm->dqb_curspace + dm->dqb_rsvspace;
++ di->d_icount = dm->dqb_curinodes;
++ di->d_btimer = dm->dqb_btime;
++ di->d_itimer = dm->dqb_itime;
+ spin_unlock(&dq_data_lock);
+ }
+
+ int dquot_get_dqblk(struct super_block *sb, struct kqid qid,
+- struct qc_dqblk *di)
++ struct fs_disk_quota *di)
+ {
+ struct dquot *dquot;
+
+@@ -2439,70 +2444,70 @@ int dquot_get_dqblk(struct super_block *sb, struct kqid qid,
+ }
+ EXPORT_SYMBOL(dquot_get_dqblk);
+
+-#define VFS_QC_MASK \
+- (QC_SPACE | QC_SPC_SOFT | QC_SPC_HARD | \
+- QC_INO_COUNT | QC_INO_SOFT | QC_INO_HARD | \
+- QC_SPC_TIMER | QC_INO_TIMER)
++#define VFS_FS_DQ_MASK \
++ (FS_DQ_BCOUNT | FS_DQ_BSOFT | FS_DQ_BHARD | \
++ FS_DQ_ICOUNT | FS_DQ_ISOFT | FS_DQ_IHARD | \
++ FS_DQ_BTIMER | FS_DQ_ITIMER)
+
+ /* Generic routine for setting common part of quota structure */
+-static int do_set_dqblk(struct dquot *dquot, struct qc_dqblk *di)
++static int do_set_dqblk(struct dquot *dquot, struct fs_disk_quota *di)
+ {
+ struct mem_dqblk *dm = &dquot->dq_dqb;
+ int check_blim = 0, check_ilim = 0;
+ struct mem_dqinfo *dqi = &sb_dqopt(dquot->dq_sb)->info[dquot->dq_id.type];
+
+- if (di->d_fieldmask & ~VFS_QC_MASK)
++ if (di->d_fieldmask & ~VFS_FS_DQ_MASK)
+ return -EINVAL;
+
+- if (((di->d_fieldmask & QC_SPC_SOFT) &&
+- stoqb(di->d_spc_softlimit) > dqi->dqi_maxblimit) ||
+- ((di->d_fieldmask & QC_SPC_HARD) &&
+- stoqb(di->d_spc_hardlimit) > dqi->dqi_maxblimit) ||
+- ((di->d_fieldmask & QC_INO_SOFT) &&
++ if (((di->d_fieldmask & FS_DQ_BSOFT) &&
++ (di->d_blk_softlimit > dqi->dqi_maxblimit)) ||
++ ((di->d_fieldmask & FS_DQ_BHARD) &&
++ (di->d_blk_hardlimit > dqi->dqi_maxblimit)) ||
++ ((di->d_fieldmask & FS_DQ_ISOFT) &&
+ (di->d_ino_softlimit > dqi->dqi_maxilimit)) ||
+- ((di->d_fieldmask & QC_INO_HARD) &&
++ ((di->d_fieldmask & FS_DQ_IHARD) &&
+ (di->d_ino_hardlimit > dqi->dqi_maxilimit)))
+ return -ERANGE;
+
+ spin_lock(&dq_data_lock);
+- if (di->d_fieldmask & QC_SPACE) {
+- dm->dqb_curspace = di->d_space - dm->dqb_rsvspace;
++ if (di->d_fieldmask & FS_DQ_BCOUNT) {
++ dm->dqb_curspace = di->d_bcount - dm->dqb_rsvspace;
+ check_blim = 1;
+ set_bit(DQ_LASTSET_B + QIF_SPACE_B, &dquot->dq_flags);
+ }
+
+- if (di->d_fieldmask & QC_SPC_SOFT)
+- dm->dqb_bsoftlimit = di->d_spc_softlimit;
+- if (di->d_fieldmask & QC_SPC_HARD)
+- dm->dqb_bhardlimit = di->d_spc_hardlimit;
+- if (di->d_fieldmask & (QC_SPC_SOFT | QC_SPC_HARD)) {
++ if (di->d_fieldmask & FS_DQ_BSOFT)
++ dm->dqb_bsoftlimit = qbtos(di->d_blk_softlimit);
++ if (di->d_fieldmask & FS_DQ_BHARD)
++ dm->dqb_bhardlimit = qbtos(di->d_blk_hardlimit);
++ if (di->d_fieldmask & (FS_DQ_BSOFT | FS_DQ_BHARD)) {
+ check_blim = 1;
+ set_bit(DQ_LASTSET_B + QIF_BLIMITS_B, &dquot->dq_flags);
+ }
+
+- if (di->d_fieldmask & QC_INO_COUNT) {
+- dm->dqb_curinodes = di->d_ino_count;
++ if (di->d_fieldmask & FS_DQ_ICOUNT) {
++ dm->dqb_curinodes = di->d_icount;
+ check_ilim = 1;
+ set_bit(DQ_LASTSET_B + QIF_INODES_B, &dquot->dq_flags);
+ }
+
+- if (di->d_fieldmask & QC_INO_SOFT)
++ if (di->d_fieldmask & FS_DQ_ISOFT)
+ dm->dqb_isoftlimit = di->d_ino_softlimit;
+- if (di->d_fieldmask & QC_INO_HARD)
++ if (di->d_fieldmask & FS_DQ_IHARD)
+ dm->dqb_ihardlimit = di->d_ino_hardlimit;
+- if (di->d_fieldmask & (QC_INO_SOFT | QC_INO_HARD)) {
++ if (di->d_fieldmask & (FS_DQ_ISOFT | FS_DQ_IHARD)) {
+ check_ilim = 1;
+ set_bit(DQ_LASTSET_B + QIF_ILIMITS_B, &dquot->dq_flags);
+ }
+
+- if (di->d_fieldmask & QC_SPC_TIMER) {
+- dm->dqb_btime = di->d_spc_timer;
++ if (di->d_fieldmask & FS_DQ_BTIMER) {
++ dm->dqb_btime = di->d_btimer;
+ check_blim = 1;
+ set_bit(DQ_LASTSET_B + QIF_BTIME_B, &dquot->dq_flags);
+ }
+
+- if (di->d_fieldmask & QC_INO_TIMER) {
+- dm->dqb_itime = di->d_ino_timer;
++ if (di->d_fieldmask & FS_DQ_ITIMER) {
++ dm->dqb_itime = di->d_itimer;
+ check_ilim = 1;
+ set_bit(DQ_LASTSET_B + QIF_ITIME_B, &dquot->dq_flags);
+ }
+@@ -2512,7 +2517,7 @@ static int do_set_dqblk(struct dquot *dquot, struct qc_dqblk *di)
+ dm->dqb_curspace < dm->dqb_bsoftlimit) {
+ dm->dqb_btime = 0;
+ clear_bit(DQ_BLKS_B, &dquot->dq_flags);
+- } else if (!(di->d_fieldmask & QC_SPC_TIMER))
++ } else if (!(di->d_fieldmask & FS_DQ_BTIMER))
+ /* Set grace only if user hasn't provided his own... */
+ dm->dqb_btime = get_seconds() + dqi->dqi_bgrace;
+ }
+@@ -2521,7 +2526,7 @@ static int do_set_dqblk(struct dquot *dquot, struct qc_dqblk *di)
+ dm->dqb_curinodes < dm->dqb_isoftlimit) {
+ dm->dqb_itime = 0;
+ clear_bit(DQ_INODES_B, &dquot->dq_flags);
+- } else if (!(di->d_fieldmask & QC_INO_TIMER))
++ } else if (!(di->d_fieldmask & FS_DQ_ITIMER))
+ /* Set grace only if user hasn't provided his own... */
+ dm->dqb_itime = get_seconds() + dqi->dqi_igrace;
+ }
+@@ -2537,7 +2542,7 @@ static int do_set_dqblk(struct dquot *dquot, struct qc_dqblk *di)
+ }
+
+ int dquot_set_dqblk(struct super_block *sb, struct kqid qid,
+- struct qc_dqblk *di)
++ struct fs_disk_quota *di)
+ {
+ struct dquot *dquot;
+ int rc;
+diff --git a/fs/quota/quota.c b/fs/quota/quota.c
+index 47bd897..ff3f0b3 100644
+--- a/fs/quota/quota.c
++++ b/fs/quota/quota.c
+@@ -115,27 +115,17 @@ static int quota_setinfo(struct super_block *sb, int type, void __user *addr)
+ return sb->s_qcop->set_info(sb, type, &info);
+ }
+
+-static inline qsize_t qbtos(qsize_t blocks)
+-{
+- return blocks << QIF_DQBLKSIZE_BITS;
+-}
+-
+-static inline qsize_t stoqb(qsize_t space)
+-{
+- return (space + QIF_DQBLKSIZE - 1) >> QIF_DQBLKSIZE_BITS;
+-}
+-
+-static void copy_to_if_dqblk(struct if_dqblk *dst, struct qc_dqblk *src)
++static void copy_to_if_dqblk(struct if_dqblk *dst, struct fs_disk_quota *src)
+ {
+ memset(dst, 0, sizeof(*dst));
+- dst->dqb_bhardlimit = stoqb(src->d_spc_hardlimit);
+- dst->dqb_bsoftlimit = stoqb(src->d_spc_softlimit);
+- dst->dqb_curspace = src->d_space;
++ dst->dqb_bhardlimit = src->d_blk_hardlimit;
++ dst->dqb_bsoftlimit = src->d_blk_softlimit;
++ dst->dqb_curspace = src->d_bcount;
+ dst->dqb_ihardlimit = src->d_ino_hardlimit;
+ dst->dqb_isoftlimit = src->d_ino_softlimit;
+- dst->dqb_curinodes = src->d_ino_count;
+- dst->dqb_btime = src->d_spc_timer;
+- dst->dqb_itime = src->d_ino_timer;
++ dst->dqb_curinodes = src->d_icount;
++ dst->dqb_btime = src->d_btimer;
++ dst->dqb_itime = src->d_itimer;
+ dst->dqb_valid = QIF_ALL;
+ }
+
+@@ -143,7 +133,7 @@ static int quota_getquota(struct super_block *sb, int type, qid_t id,
+ void __user *addr)
+ {
+ struct kqid qid;
+- struct qc_dqblk fdq;
++ struct fs_disk_quota fdq;
+ struct if_dqblk idq;
+ int ret;
+
+@@ -161,36 +151,36 @@ static int quota_getquota(struct super_block *sb, int type, qid_t id,
+ return 0;
+ }
+
+-static void copy_from_if_dqblk(struct qc_dqblk *dst, struct if_dqblk *src)
++static void copy_from_if_dqblk(struct fs_disk_quota *dst, struct if_dqblk *src)
+ {
+- dst->d_spc_hardlimit = qbtos(src->dqb_bhardlimit);
+- dst->d_spc_softlimit = qbtos(src->dqb_bsoftlimit);
+- dst->d_space = src->dqb_curspace;
++ dst->d_blk_hardlimit = src->dqb_bhardlimit;
++ dst->d_blk_softlimit = src->dqb_bsoftlimit;
++ dst->d_bcount = src->dqb_curspace;
+ dst->d_ino_hardlimit = src->dqb_ihardlimit;
+ dst->d_ino_softlimit = src->dqb_isoftlimit;
+- dst->d_ino_count = src->dqb_curinodes;
+- dst->d_spc_timer = src->dqb_btime;
+- dst->d_ino_timer = src->dqb_itime;
++ dst->d_icount = src->dqb_curinodes;
++ dst->d_btimer = src->dqb_btime;
++ dst->d_itimer = src->dqb_itime;
+
+ dst->d_fieldmask = 0;
+ if (src->dqb_valid & QIF_BLIMITS)
+- dst->d_fieldmask |= QC_SPC_SOFT | QC_SPC_HARD;
++ dst->d_fieldmask |= FS_DQ_BSOFT | FS_DQ_BHARD;
+ if (src->dqb_valid & QIF_SPACE)
+- dst->d_fieldmask |= QC_SPACE;
++ dst->d_fieldmask |= FS_DQ_BCOUNT;
+ if (src->dqb_valid & QIF_ILIMITS)
+- dst->d_fieldmask |= QC_INO_SOFT | QC_INO_HARD;
++ dst->d_fieldmask |= FS_DQ_ISOFT | FS_DQ_IHARD;
+ if (src->dqb_valid & QIF_INODES)
+- dst->d_fieldmask |= QC_INO_COUNT;
++ dst->d_fieldmask |= FS_DQ_ICOUNT;
+ if (src->dqb_valid & QIF_BTIME)
+- dst->d_fieldmask |= QC_SPC_TIMER;
++ dst->d_fieldmask |= FS_DQ_BTIMER;
+ if (src->dqb_valid & QIF_ITIME)
+- dst->d_fieldmask |= QC_INO_TIMER;
++ dst->d_fieldmask |= FS_DQ_ITIMER;
+ }
+
+ static int quota_setquota(struct super_block *sb, int type, qid_t id,
+ void __user *addr)
+ {
+- struct qc_dqblk fdq;
++ struct fs_disk_quota fdq;
+ struct if_dqblk idq;
+ struct kqid qid;
+
+@@ -254,78 +244,10 @@ static int quota_getxstatev(struct super_block *sb, void __user *addr)
+ return ret;
+ }
+
+-/*
+- * XFS defines BBTOB and BTOBB macros inside fs/xfs/ and we cannot move them
+- * out of there as xfsprogs rely on definitions being in that header file. So
+- * just define same functions here for quota purposes.
+- */
+-#define XFS_BB_SHIFT 9
+-
+-static inline u64 quota_bbtob(u64 blocks)
+-{
+- return blocks << XFS_BB_SHIFT;
+-}
+-
+-static inline u64 quota_btobb(u64 bytes)
+-{
+- return (bytes + (1 << XFS_BB_SHIFT) - 1) >> XFS_BB_SHIFT;
+-}
+-
+-static void copy_from_xfs_dqblk(struct qc_dqblk *dst, struct fs_disk_quota *src)
+-{
+- dst->d_spc_hardlimit = quota_bbtob(src->d_blk_hardlimit);
+- dst->d_spc_softlimit = quota_bbtob(src->d_blk_softlimit);
+- dst->d_ino_hardlimit = src->d_ino_hardlimit;
+- dst->d_ino_softlimit = src->d_ino_softlimit;
+- dst->d_space = quota_bbtob(src->d_bcount);
+- dst->d_ino_count = src->d_icount;
+- dst->d_ino_timer = src->d_itimer;
+- dst->d_spc_timer = src->d_btimer;
+- dst->d_ino_warns = src->d_iwarns;
+- dst->d_spc_warns = src->d_bwarns;
+- dst->d_rt_spc_hardlimit = quota_bbtob(src->d_rtb_hardlimit);
+- dst->d_rt_spc_softlimit = quota_bbtob(src->d_rtb_softlimit);
+- dst->d_rt_space = quota_bbtob(src->d_rtbcount);
+- dst->d_rt_spc_timer = src->d_rtbtimer;
+- dst->d_rt_spc_warns = src->d_rtbwarns;
+- dst->d_fieldmask = 0;
+- if (src->d_fieldmask & FS_DQ_ISOFT)
+- dst->d_fieldmask |= QC_INO_SOFT;
+- if (src->d_fieldmask & FS_DQ_IHARD)
+- dst->d_fieldmask |= QC_INO_HARD;
+- if (src->d_fieldmask & FS_DQ_BSOFT)
+- dst->d_fieldmask |= QC_SPC_SOFT;
+- if (src->d_fieldmask & FS_DQ_BHARD)
+- dst->d_fieldmask |= QC_SPC_HARD;
+- if (src->d_fieldmask & FS_DQ_RTBSOFT)
+- dst->d_fieldmask |= QC_RT_SPC_SOFT;
+- if (src->d_fieldmask & FS_DQ_RTBHARD)
+- dst->d_fieldmask |= QC_RT_SPC_HARD;
+- if (src->d_fieldmask & FS_DQ_BTIMER)
+- dst->d_fieldmask |= QC_SPC_TIMER;
+- if (src->d_fieldmask & FS_DQ_ITIMER)
+- dst->d_fieldmask |= QC_INO_TIMER;
+- if (src->d_fieldmask & FS_DQ_RTBTIMER)
+- dst->d_fieldmask |= QC_RT_SPC_TIMER;
+- if (src->d_fieldmask & FS_DQ_BWARNS)
+- dst->d_fieldmask |= QC_SPC_WARNS;
+- if (src->d_fieldmask & FS_DQ_IWARNS)
+- dst->d_fieldmask |= QC_INO_WARNS;
+- if (src->d_fieldmask & FS_DQ_RTBWARNS)
+- dst->d_fieldmask |= QC_RT_SPC_WARNS;
+- if (src->d_fieldmask & FS_DQ_BCOUNT)
+- dst->d_fieldmask |= QC_SPACE;
+- if (src->d_fieldmask & FS_DQ_ICOUNT)
+- dst->d_fieldmask |= QC_INO_COUNT;
+- if (src->d_fieldmask & FS_DQ_RTBCOUNT)
+- dst->d_fieldmask |= QC_RT_SPACE;
+-}
+-
+ static int quota_setxquota(struct super_block *sb, int type, qid_t id,
+ void __user *addr)
+ {
+ struct fs_disk_quota fdq;
+- struct qc_dqblk qdq;
+ struct kqid qid;
+
+ if (copy_from_user(&fdq, addr, sizeof(fdq)))
+@@ -335,44 +257,13 @@ static int quota_setxquota(struct super_block *sb, int type, qid_t id,
+ qid = make_kqid(current_user_ns(), type, id);
+ if (!qid_valid(qid))
+ return -EINVAL;
+- copy_from_xfs_dqblk(&qdq, &fdq);
+- return sb->s_qcop->set_dqblk(sb, qid, &qdq);
+-}
+-
+-static void copy_to_xfs_dqblk(struct fs_disk_quota *dst, struct qc_dqblk *src,
+- int type, qid_t id)
+-{
+- memset(dst, 0, sizeof(*dst));
+- dst->d_version = FS_DQUOT_VERSION;
+- dst->d_id = id;
+- if (type == USRQUOTA)
+- dst->d_flags = FS_USER_QUOTA;
+- else if (type == PRJQUOTA)
+- dst->d_flags = FS_PROJ_QUOTA;
+- else
+- dst->d_flags = FS_GROUP_QUOTA;
+- dst->d_blk_hardlimit = quota_btobb(src->d_spc_hardlimit);
+- dst->d_blk_softlimit = quota_btobb(src->d_spc_softlimit);
+- dst->d_ino_hardlimit = src->d_ino_hardlimit;
+- dst->d_ino_softlimit = src->d_ino_softlimit;
+- dst->d_bcount = quota_btobb(src->d_space);
+- dst->d_icount = src->d_ino_count;
+- dst->d_itimer = src->d_ino_timer;
+- dst->d_btimer = src->d_spc_timer;
+- dst->d_iwarns = src->d_ino_warns;
+- dst->d_bwarns = src->d_spc_warns;
+- dst->d_rtb_hardlimit = quota_btobb(src->d_rt_spc_hardlimit);
+- dst->d_rtb_softlimit = quota_btobb(src->d_rt_spc_softlimit);
+- dst->d_rtbcount = quota_btobb(src->d_rt_space);
+- dst->d_rtbtimer = src->d_rt_spc_timer;
+- dst->d_rtbwarns = src->d_rt_spc_warns;
++ return sb->s_qcop->set_dqblk(sb, qid, &fdq);
+ }
+
+ static int quota_getxquota(struct super_block *sb, int type, qid_t id,
+ void __user *addr)
+ {
+ struct fs_disk_quota fdq;
+- struct qc_dqblk qdq;
+ struct kqid qid;
+ int ret;
+
+@@ -381,11 +272,8 @@ static int quota_getxquota(struct super_block *sb, int type, qid_t id,
+ qid = make_kqid(current_user_ns(), type, id);
+ if (!qid_valid(qid))
+ return -EINVAL;
+- ret = sb->s_qcop->get_dqblk(sb, qid, &qdq);
+- if (ret)
+- return ret;
+- copy_to_xfs_dqblk(&fdq, &qdq, type, id);
+- if (copy_to_user(addr, &fdq, sizeof(fdq)))
++ ret = sb->s_qcop->get_dqblk(sb, qid, &fdq);
++ if (!ret && copy_to_user(addr, &fdq, sizeof(fdq)))
+ return -EFAULT;
+ return ret;
+ }
+diff --git a/fs/xfs/xfs_qm.h b/fs/xfs/xfs_qm.h
+index f251bed..797fd46 100644
+--- a/fs/xfs/xfs_qm.h
++++ b/fs/xfs/xfs_qm.h
+@@ -167,9 +167,9 @@ extern void xfs_qm_dqrele_all_inodes(struct xfs_mount *, uint);
+ /* quota ops */
+ extern int xfs_qm_scall_trunc_qfiles(struct xfs_mount *, uint);
+ extern int xfs_qm_scall_getquota(struct xfs_mount *, xfs_dqid_t,
+- uint, struct qc_dqblk *);
++ uint, struct fs_disk_quota *);
+ extern int xfs_qm_scall_setqlim(struct xfs_mount *, xfs_dqid_t, uint,
+- struct qc_dqblk *);
++ struct fs_disk_quota *);
+ extern int xfs_qm_scall_getqstat(struct xfs_mount *,
+ struct fs_quota_stat *);
+ extern int xfs_qm_scall_getqstatv(struct xfs_mount *,
+diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c
+index 670882e..bbc813c 100644
+--- a/fs/xfs/xfs_qm_syscalls.c
++++ b/fs/xfs/xfs_qm_syscalls.c
+@@ -40,6 +40,7 @@ STATIC int xfs_qm_log_quotaoff(xfs_mount_t *, xfs_qoff_logitem_t **, uint);
+ STATIC int xfs_qm_log_quotaoff_end(xfs_mount_t *, xfs_qoff_logitem_t *,
+ uint);
+ STATIC uint xfs_qm_export_flags(uint);
++STATIC uint xfs_qm_export_qtype_flags(uint);
+
+ /*
+ * Turn off quota accounting and/or enforcement for all udquots and/or
+@@ -573,8 +574,8 @@ xfs_qm_scall_getqstatv(
+ return 0;
+ }
+
+-#define XFS_QC_MASK \
+- (QC_LIMIT_MASK | QC_TIMER_MASK | QC_WARNS_MASK)
++#define XFS_DQ_MASK \
++ (FS_DQ_LIMIT_MASK | FS_DQ_TIMER_MASK | FS_DQ_WARNS_MASK)
+
+ /*
+ * Adjust quota limits, and start/stop timers accordingly.
+@@ -584,7 +585,7 @@ xfs_qm_scall_setqlim(
+ struct xfs_mount *mp,
+ xfs_dqid_t id,
+ uint type,
+- struct qc_dqblk *newlim)
++ fs_disk_quota_t *newlim)
+ {
+ struct xfs_quotainfo *q = mp->m_quotainfo;
+ struct xfs_disk_dquot *ddq;
+@@ -593,9 +594,9 @@ xfs_qm_scall_setqlim(
+ int error;
+ xfs_qcnt_t hard, soft;
+
+- if (newlim->d_fieldmask & ~XFS_QC_MASK)
++ if (newlim->d_fieldmask & ~XFS_DQ_MASK)
+ return EINVAL;
+- if ((newlim->d_fieldmask & XFS_QC_MASK) == 0)
++ if ((newlim->d_fieldmask & XFS_DQ_MASK) == 0)
+ return 0;
+
+ /*
+@@ -633,11 +634,11 @@ xfs_qm_scall_setqlim(
+ /*
+ * Make sure that hardlimits are >= soft limits before changing.
+ */
+- hard = (newlim->d_fieldmask & QC_SPC_HARD) ?
+- (xfs_qcnt_t) XFS_B_TO_FSB(mp, newlim->d_spc_hardlimit) :
++ hard = (newlim->d_fieldmask & FS_DQ_BHARD) ?
++ (xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_blk_hardlimit) :
+ be64_to_cpu(ddq->d_blk_hardlimit);
+- soft = (newlim->d_fieldmask & QC_SPC_SOFT) ?
+- (xfs_qcnt_t) XFS_B_TO_FSB(mp, newlim->d_spc_softlimit) :
++ soft = (newlim->d_fieldmask & FS_DQ_BSOFT) ?
++ (xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_blk_softlimit) :
+ be64_to_cpu(ddq->d_blk_softlimit);
+ if (hard == 0 || hard >= soft) {
+ ddq->d_blk_hardlimit = cpu_to_be64(hard);
+@@ -650,11 +651,11 @@ xfs_qm_scall_setqlim(
+ } else {
+ xfs_debug(mp, "blkhard %Ld < blksoft %Ld", hard, soft);
+ }
+- hard = (newlim->d_fieldmask & QC_RT_SPC_HARD) ?
+- (xfs_qcnt_t) XFS_B_TO_FSB(mp, newlim->d_rt_spc_hardlimit) :
++ hard = (newlim->d_fieldmask & FS_DQ_RTBHARD) ?
++ (xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_rtb_hardlimit) :
+ be64_to_cpu(ddq->d_rtb_hardlimit);
+- soft = (newlim->d_fieldmask & QC_RT_SPC_SOFT) ?
+- (xfs_qcnt_t) XFS_B_TO_FSB(mp, newlim->d_rt_spc_softlimit) :
++ soft = (newlim->d_fieldmask & FS_DQ_RTBSOFT) ?
++ (xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_rtb_softlimit) :
+ be64_to_cpu(ddq->d_rtb_softlimit);
+ if (hard == 0 || hard >= soft) {
+ ddq->d_rtb_hardlimit = cpu_to_be64(hard);
+@@ -667,10 +668,10 @@ xfs_qm_scall_setqlim(
+ xfs_debug(mp, "rtbhard %Ld < rtbsoft %Ld", hard, soft);
+ }
+
+- hard = (newlim->d_fieldmask & QC_INO_HARD) ?
++ hard = (newlim->d_fieldmask & FS_DQ_IHARD) ?
+ (xfs_qcnt_t) newlim->d_ino_hardlimit :
+ be64_to_cpu(ddq->d_ino_hardlimit);
+- soft = (newlim->d_fieldmask & QC_INO_SOFT) ?
++ soft = (newlim->d_fieldmask & FS_DQ_ISOFT) ?
+ (xfs_qcnt_t) newlim->d_ino_softlimit :
+ be64_to_cpu(ddq->d_ino_softlimit);
+ if (hard == 0 || hard >= soft) {
+@@ -687,12 +688,12 @@ xfs_qm_scall_setqlim(
+ /*
+ * Update warnings counter(s) if requested
+ */
+- if (newlim->d_fieldmask & QC_SPC_WARNS)
+- ddq->d_bwarns = cpu_to_be16(newlim->d_spc_warns);
+- if (newlim->d_fieldmask & QC_INO_WARNS)
+- ddq->d_iwarns = cpu_to_be16(newlim->d_ino_warns);
+- if (newlim->d_fieldmask & QC_RT_SPC_WARNS)
+- ddq->d_rtbwarns = cpu_to_be16(newlim->d_rt_spc_warns);
++ if (newlim->d_fieldmask & FS_DQ_BWARNS)
++ ddq->d_bwarns = cpu_to_be16(newlim->d_bwarns);
++ if (newlim->d_fieldmask & FS_DQ_IWARNS)
++ ddq->d_iwarns = cpu_to_be16(newlim->d_iwarns);
++ if (newlim->d_fieldmask & FS_DQ_RTBWARNS)
++ ddq->d_rtbwarns = cpu_to_be16(newlim->d_rtbwarns);
+
+ if (id == 0) {
+ /*
+@@ -702,24 +703,24 @@ xfs_qm_scall_setqlim(
+ * soft and hard limit values (already done, above), and
+ * for warnings.
+ */
+- if (newlim->d_fieldmask & QC_SPC_TIMER) {
+- q->qi_btimelimit = newlim->d_spc_timer;
+- ddq->d_btimer = cpu_to_be32(newlim->d_spc_timer);
++ if (newlim->d_fieldmask & FS_DQ_BTIMER) {
++ q->qi_btimelimit = newlim->d_btimer;
++ ddq->d_btimer = cpu_to_be32(newlim->d_btimer);
+ }
+- if (newlim->d_fieldmask & QC_INO_TIMER) {
+- q->qi_itimelimit = newlim->d_ino_timer;
+- ddq->d_itimer = cpu_to_be32(newlim->d_ino_timer);
++ if (newlim->d_fieldmask & FS_DQ_ITIMER) {
++ q->qi_itimelimit = newlim->d_itimer;
++ ddq->d_itimer = cpu_to_be32(newlim->d_itimer);
+ }
+- if (newlim->d_fieldmask & QC_RT_SPC_TIMER) {
+- q->qi_rtbtimelimit = newlim->d_rt_spc_timer;
+- ddq->d_rtbtimer = cpu_to_be32(newlim->d_rt_spc_timer);
++ if (newlim->d_fieldmask & FS_DQ_RTBTIMER) {
++ q->qi_rtbtimelimit = newlim->d_rtbtimer;
++ ddq->d_rtbtimer = cpu_to_be32(newlim->d_rtbtimer);
+ }
+- if (newlim->d_fieldmask & QC_SPC_WARNS)
+- q->qi_bwarnlimit = newlim->d_spc_warns;
+- if (newlim->d_fieldmask & QC_INO_WARNS)
+- q->qi_iwarnlimit = newlim->d_ino_warns;
+- if (newlim->d_fieldmask & QC_RT_SPC_WARNS)
+- q->qi_rtbwarnlimit = newlim->d_rt_spc_warns;
++ if (newlim->d_fieldmask & FS_DQ_BWARNS)
++ q->qi_bwarnlimit = newlim->d_bwarns;
++ if (newlim->d_fieldmask & FS_DQ_IWARNS)
++ q->qi_iwarnlimit = newlim->d_iwarns;
++ if (newlim->d_fieldmask & FS_DQ_RTBWARNS)
++ q->qi_rtbwarnlimit = newlim->d_rtbwarns;
+ } else {
+ /*
+ * If the user is now over quota, start the timelimit.
+@@ -830,7 +831,7 @@ xfs_qm_scall_getquota(
+ struct xfs_mount *mp,
+ xfs_dqid_t id,
+ uint type,
+- struct qc_dqblk *dst)
++ struct fs_disk_quota *dst)
+ {
+ struct xfs_dquot *dqp;
+ int error;
+@@ -854,25 +855,28 @@ xfs_qm_scall_getquota(
+ }
+
+ memset(dst, 0, sizeof(*dst));
+- dst->d_spc_hardlimit =
+- XFS_FSB_TO_B(mp, be64_to_cpu(dqp->q_core.d_blk_hardlimit));
+- dst->d_spc_softlimit =
+- XFS_FSB_TO_B(mp, be64_to_cpu(dqp->q_core.d_blk_softlimit));
++ dst->d_version = FS_DQUOT_VERSION;
++ dst->d_flags = xfs_qm_export_qtype_flags(dqp->q_core.d_flags);
++ dst->d_id = be32_to_cpu(dqp->q_core.d_id);
++ dst->d_blk_hardlimit =
++ XFS_FSB_TO_BB(mp, be64_to_cpu(dqp->q_core.d_blk_hardlimit));
++ dst->d_blk_softlimit =
++ XFS_FSB_TO_BB(mp, be64_to_cpu(dqp->q_core.d_blk_softlimit));
+ dst->d_ino_hardlimit = be64_to_cpu(dqp->q_core.d_ino_hardlimit);
+ dst->d_ino_softlimit = be64_to_cpu(dqp->q_core.d_ino_softlimit);
+- dst->d_space = XFS_FSB_TO_B(mp, dqp->q_res_bcount);
+- dst->d_ino_count = dqp->q_res_icount;
+- dst->d_spc_timer = be32_to_cpu(dqp->q_core.d_btimer);
+- dst->d_ino_timer = be32_to_cpu(dqp->q_core.d_itimer);
+- dst->d_ino_warns = be16_to_cpu(dqp->q_core.d_iwarns);
+- dst->d_spc_warns = be16_to_cpu(dqp->q_core.d_bwarns);
+- dst->d_rt_spc_hardlimit =
+- XFS_FSB_TO_B(mp, be64_to_cpu(dqp->q_core.d_rtb_hardlimit));
+- dst->d_rt_spc_softlimit =
+- XFS_FSB_TO_B(mp, be64_to_cpu(dqp->q_core.d_rtb_softlimit));
+- dst->d_rt_space = XFS_FSB_TO_B(mp, dqp->q_res_rtbcount);
+- dst->d_rt_spc_timer = be32_to_cpu(dqp->q_core.d_rtbtimer);
+- dst->d_rt_spc_warns = be16_to_cpu(dqp->q_core.d_rtbwarns);
++ dst->d_bcount = XFS_FSB_TO_BB(mp, dqp->q_res_bcount);
++ dst->d_icount = dqp->q_res_icount;
++ dst->d_btimer = be32_to_cpu(dqp->q_core.d_btimer);
++ dst->d_itimer = be32_to_cpu(dqp->q_core.d_itimer);
++ dst->d_iwarns = be16_to_cpu(dqp->q_core.d_iwarns);
++ dst->d_bwarns = be16_to_cpu(dqp->q_core.d_bwarns);
++ dst->d_rtb_hardlimit =
++ XFS_FSB_TO_BB(mp, be64_to_cpu(dqp->q_core.d_rtb_hardlimit));
++ dst->d_rtb_softlimit =
++ XFS_FSB_TO_BB(mp, be64_to_cpu(dqp->q_core.d_rtb_softlimit));
++ dst->d_rtbcount = XFS_FSB_TO_BB(mp, dqp->q_res_rtbcount);
++ dst->d_rtbtimer = be32_to_cpu(dqp->q_core.d_rtbtimer);
++ dst->d_rtbwarns = be16_to_cpu(dqp->q_core.d_rtbwarns);
+
+ /*
+ * Internally, we don't reset all the timers when quota enforcement
+@@ -885,23 +889,23 @@ xfs_qm_scall_getquota(
+ dqp->q_core.d_flags == XFS_DQ_GROUP) ||
+ (!XFS_IS_PQUOTA_ENFORCED(mp) &&
+ dqp->q_core.d_flags == XFS_DQ_PROJ)) {
+- dst->d_spc_timer = 0;
+- dst->d_ino_timer = 0;
+- dst->d_rt_spc_timer = 0;
++ dst->d_btimer = 0;
++ dst->d_itimer = 0;
++ dst->d_rtbtimer = 0;
+ }
+
+ #ifdef DEBUG
+- if (((XFS_IS_UQUOTA_ENFORCED(mp) && type == XFS_DQ_USER) ||
+- (XFS_IS_GQUOTA_ENFORCED(mp) && type == XFS_DQ_GROUP) ||
+- (XFS_IS_PQUOTA_ENFORCED(mp) && type == XFS_DQ_PROJ)) &&
+- id != 0) {
+- if ((dst->d_space > dst->d_spc_softlimit) &&
+- (dst->d_spc_softlimit > 0)) {
+- ASSERT(dst->d_spc_timer != 0);
++ if (((XFS_IS_UQUOTA_ENFORCED(mp) && dst->d_flags == FS_USER_QUOTA) ||
++ (XFS_IS_GQUOTA_ENFORCED(mp) && dst->d_flags == FS_GROUP_QUOTA) ||
++ (XFS_IS_PQUOTA_ENFORCED(mp) && dst->d_flags == FS_PROJ_QUOTA)) &&
++ dst->d_id != 0) {
++ if ((dst->d_bcount > dst->d_blk_softlimit) &&
++ (dst->d_blk_softlimit > 0)) {
++ ASSERT(dst->d_btimer != 0);
+ }
+- if ((dst->d_ino_count > dst->d_ino_softlimit) &&
++ if ((dst->d_icount > dst->d_ino_softlimit) &&
+ (dst->d_ino_softlimit > 0)) {
+- ASSERT(dst->d_ino_timer != 0);
++ ASSERT(dst->d_itimer != 0);
+ }
+ }
+ #endif
+@@ -911,6 +915,26 @@ out_put:
+ }
+
+ STATIC uint
++xfs_qm_export_qtype_flags(
++ uint flags)
++{
++ /*
++ * Can't be more than one, or none.
++ */
++ ASSERT((flags & (FS_PROJ_QUOTA | FS_USER_QUOTA)) !=
++ (FS_PROJ_QUOTA | FS_USER_QUOTA));
++ ASSERT((flags & (FS_PROJ_QUOTA | FS_GROUP_QUOTA)) !=
++ (FS_PROJ_QUOTA | FS_GROUP_QUOTA));
++ ASSERT((flags & (FS_USER_QUOTA | FS_GROUP_QUOTA)) !=
++ (FS_USER_QUOTA | FS_GROUP_QUOTA));
++ ASSERT((flags & (FS_PROJ_QUOTA|FS_USER_QUOTA|FS_GROUP_QUOTA)) != 0);
++
++ return (flags & XFS_DQ_USER) ?
++ FS_USER_QUOTA : (flags & XFS_DQ_PROJ) ?
++ FS_PROJ_QUOTA : FS_GROUP_QUOTA;
++}
++
++STATIC uint
+ xfs_qm_export_flags(
+ uint flags)
+ {
+diff --git a/fs/xfs/xfs_quotaops.c b/fs/xfs/xfs_quotaops.c
+index ece0f31..2ad1b98 100644
+--- a/fs/xfs/xfs_quotaops.c
++++ b/fs/xfs/xfs_quotaops.c
+@@ -133,7 +133,7 @@ STATIC int
+ xfs_fs_get_dqblk(
+ struct super_block *sb,
+ struct kqid qid,
+- struct qc_dqblk *qdq)
++ struct fs_disk_quota *fdq)
+ {
+ struct xfs_mount *mp = XFS_M(sb);
+
+@@ -143,14 +143,14 @@ xfs_fs_get_dqblk(
+ return -ESRCH;
+
+ return -xfs_qm_scall_getquota(mp, from_kqid(&init_user_ns, qid),
+- xfs_quota_type(qid.type), qdq);
++ xfs_quota_type(qid.type), fdq);
+ }
+
+ STATIC int
+ xfs_fs_set_dqblk(
+ struct super_block *sb,
+ struct kqid qid,
+- struct qc_dqblk *qdq)
++ struct fs_disk_quota *fdq)
+ {
+ struct xfs_mount *mp = XFS_M(sb);
+
+@@ -162,7 +162,7 @@ xfs_fs_set_dqblk(
+ return -ESRCH;
+
+ return -xfs_qm_scall_setqlim(mp, from_kqid(&init_user_ns, qid),
+- xfs_quota_type(qid.type), qdq);
++ xfs_quota_type(qid.type), fdq);
+ }
+
+ const struct quotactl_ops xfs_quotactl_operations = {
+diff --git a/include/linux/quota.h b/include/linux/quota.h
+index 6724c12..0f3c5d3 100644
+--- a/include/linux/quota.h
++++ b/include/linux/quota.h
+@@ -316,49 +316,6 @@ struct dquot_operations {
+
+ struct path;
+
+-/* Structure for communicating via ->get_dqblk() & ->set_dqblk() */
+-struct qc_dqblk {
+- int d_fieldmask; /* mask of fields to change in ->set_dqblk() */
+- u64 d_spc_hardlimit; /* absolute limit on used space */
+- u64 d_spc_softlimit; /* preferred limit on used space */
+- u64 d_ino_hardlimit; /* maximum # allocated inodes */
+- u64 d_ino_softlimit; /* preferred inode limit */
+- u64 d_space; /* Space owned by the user */
+- u64 d_ino_count; /* # inodes owned by the user */
+- s64 d_ino_timer; /* zero if within inode limits */
+- /* if not, we refuse service */
+- s64 d_spc_timer; /* similar to above; for space */
+- int d_ino_warns; /* # warnings issued wrt num inodes */
+- int d_spc_warns; /* # warnings issued wrt used space */
+- u64 d_rt_spc_hardlimit; /* absolute limit on realtime space */
+- u64 d_rt_spc_softlimit; /* preferred limit on RT space */
+- u64 d_rt_space; /* realtime space owned */
+- s64 d_rt_spc_timer; /* similar to above; for RT space */
+- int d_rt_spc_warns; /* # warnings issued wrt RT space */
+-};
+-
+-/* Field specifiers for ->set_dqblk() in struct qc_dqblk */
+-#define QC_INO_SOFT (1<<0)
+-#define QC_INO_HARD (1<<1)
+-#define QC_SPC_SOFT (1<<2)
+-#define QC_SPC_HARD (1<<3)
+-#define QC_RT_SPC_SOFT (1<<4)
+-#define QC_RT_SPC_HARD (1<<5)
+-#define QC_LIMIT_MASK (QC_INO_SOFT | QC_INO_HARD | QC_SPC_SOFT | QC_SPC_HARD | \
+- QC_RT_SPC_SOFT | QC_RT_SPC_HARD)
+-#define QC_SPC_TIMER (1<<6)
+-#define QC_INO_TIMER (1<<7)
+-#define QC_RT_SPC_TIMER (1<<8)
+-#define QC_TIMER_MASK (QC_SPC_TIMER | QC_INO_TIMER | QC_RT_SPC_TIMER)
+-#define QC_SPC_WARNS (1<<9)
+-#define QC_INO_WARNS (1<<10)
+-#define QC_RT_SPC_WARNS (1<<11)
+-#define QC_WARNS_MASK (QC_SPC_WARNS | QC_INO_WARNS | QC_RT_SPC_WARNS)
+-#define QC_SPACE (1<<12)
+-#define QC_INO_COUNT (1<<13)
+-#define QC_RT_SPACE (1<<14)
+-#define QC_ACCT_MASK (QC_SPACE | QC_INO_COUNT | QC_RT_SPACE)
+-
+ /* Operations handling requests from userspace */
+ struct quotactl_ops {
+ int (*quota_on)(struct super_block *, int, int, struct path *);
+@@ -367,8 +324,8 @@ struct quotactl_ops {
+ int (*quota_sync)(struct super_block *, int);
+ int (*get_info)(struct super_block *, int, struct if_dqinfo *);
+ int (*set_info)(struct super_block *, int, struct if_dqinfo *);
+- int (*get_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
+- int (*set_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
++ int (*get_dqblk)(struct super_block *, struct kqid, struct fs_disk_quota *);
++ int (*set_dqblk)(struct super_block *, struct kqid, struct fs_disk_quota *);
+ int (*get_xstate)(struct super_block *, struct fs_quota_stat *);
+ int (*set_xstate)(struct super_block *, unsigned int, int);
+ int (*get_xstatev)(struct super_block *, struct fs_quota_statv *);
+diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h
+index bfaf713..1d3eee5 100644
+--- a/include/linux/quotaops.h
++++ b/include/linux/quotaops.h
+@@ -98,9 +98,9 @@ int dquot_quota_sync(struct super_block *sb, int type);
+ int dquot_get_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii);
+ int dquot_set_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii);
+ int dquot_get_dqblk(struct super_block *sb, struct kqid id,
+- struct qc_dqblk *di);
++ struct fs_disk_quota *di);
+ int dquot_set_dqblk(struct super_block *sb, struct kqid id,
+- struct qc_dqblk *di);
++ struct fs_disk_quota *di);
+
+ int __dquot_transfer(struct inode *inode, struct dquot **transfer_to);
+ int dquot_transfer(struct inode *inode, struct iattr *iattr);
Copied: dists/wheezy-backports/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch (from r22440, dists/sid/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch)
@@ -0,0 +1,50 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 23 Feb 2015 05:09:41 +0000
+Subject: rmap: Fix ABI change in 3.16.7-ckt5
+Forwarded: not-needed
+
+'mm: prevent endless growth of anon_vma hierarchy' in 3.16.7-ckt5
+added two new members to struct anon_vma.
+
+This structure is always allocated by anon_vma_alloc() so it is OK to
+add members, but we need to add them at the end and hide them from
+genksyms.
+
+--- a/include/linux/rmap.h
++++ b/include/linux/rmap.h
+@@ -37,16 +37,6 @@ struct anon_vma {
+ atomic_t refcount;
+
+ /*
+- * Count of child anon_vmas and VMAs which points to this anon_vma.
+- *
+- * This counter is used for making decision about reusing anon_vma
+- * instead of forking new one. See comments in function anon_vma_clone.
+- */
+- unsigned degree;
+-
+- struct anon_vma *parent; /* Parent of this anon_vma */
+-
+- /*
+ * NOTE: the LSB of the rb_root.rb_node is set by
+ * mm_take_all_locks() _after_ taking the above lock. So the
+ * rb_root must only be read/written after taking the above lock
+@@ -55,6 +45,18 @@ struct anon_vma {
+ * mm_take_all_locks() (mm_all_locks_mutex).
+ */
+ struct rb_root rb_root; /* Interval tree of private "related" vmas */
++
++#ifndef __GENKSYMS__
++ /*
++ * Count of child anon_vmas and VMAs which points to this anon_vma.
++ *
++ * This counter is used for making decision about reusing anon_vma
++ * instead of forking new one. See comments in function anon_vma_clone.
++ */
++ unsigned degree;
++
++ struct anon_vma *parent; /* Parent of this anon_vma */
++#endif
+ };
+
+ /*
Copied: dists/wheezy-backports/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch (from r22440, dists/sid/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch)
@@ -0,0 +1,84 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Wed, 25 Feb 2015 00:29:03 +0000
+Subject: tcp: Fix ABI change in 3.16.7-ckt7
+Forwarded: not-needed
+
+Commit bdbbb8527b6f ('ipv4: tcp: get rid of ugly unicast_sock')
+added netns_ipv4::tcp_sk. As struct netns_ipv4 is embedded in
+struct net, we can't add any members there. Instead, move it
+to the end of the containing structure and adjust its users
+accordingly.
+
+---
+--- a/include/net/net_namespace.h
++++ b/include/net/net_namespace.h
+@@ -130,6 +130,9 @@ struct net {
+ #endif
+ struct sock *diag_nlsk;
+ atomic_t fnhe_genid;
++#ifndef __GENKSYMS__
++ struct sock * __percpu *tcp_sk;
++#endif
+ };
+
+ #include <linux/seq_file_net.h>
+--- a/include/net/netns/ipv4.h
++++ b/include/net/netns/ipv4.h
+@@ -52,7 +52,6 @@ struct netns_ipv4 {
+ struct inet_peer_base *peers;
+ struct tcpm_hash_bucket *tcp_metrics_hash;
+ unsigned int tcp_metrics_hash_log;
+- struct sock * __percpu *tcp_sk;
+ struct netns_frags frags;
+ #ifdef CONFIG_NETFILTER
+ struct xt_table *iptable_filter;
+--- a/net/ipv4/tcp_ipv4.c
++++ b/net/ipv4/tcp_ipv4.c
+@@ -684,7 +684,7 @@ static void tcp_v4_send_reset(struct soc
+
+ net = dev_net(skb_dst(skb)->dev);
+ arg.tos = ip_hdr(skb)->tos;
+- ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk),
++ ip_send_unicast_reply(*this_cpu_ptr(net->tcp_sk),
+ skb, ip_hdr(skb)->saddr,
+ ip_hdr(skb)->daddr, &arg, arg.iov[0].iov_len);
+
+@@ -768,7 +768,7 @@ static void tcp_v4_send_ack(struct sk_bu
+ if (oif)
+ arg.bound_dev_if = oif;
+ arg.tos = tos;
+- ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk),
++ ip_send_unicast_reply(*this_cpu_ptr(net->tcp_sk),
+ skb, ip_hdr(skb)->saddr,
+ ip_hdr(skb)->daddr, &arg, arg.iov[0].iov_len);
+
+@@ -2539,16 +2539,16 @@ static void __net_exit tcp_sk_exit(struc
+ int cpu;
+
+ for_each_possible_cpu(cpu)
+- inet_ctl_sock_destroy(*per_cpu_ptr(net->ipv4.tcp_sk, cpu));
+- free_percpu(net->ipv4.tcp_sk);
++ inet_ctl_sock_destroy(*per_cpu_ptr(net->tcp_sk, cpu));
++ free_percpu(net->tcp_sk);
+ }
+
+ static int __net_init tcp_sk_init(struct net *net)
+ {
+ int res, cpu;
+
+- net->ipv4.tcp_sk = alloc_percpu(struct sock *);
+- if (!net->ipv4.tcp_sk)
++ net->tcp_sk = alloc_percpu(struct sock *);
++ if (!net->tcp_sk)
+ return -ENOMEM;
+
+ for_each_possible_cpu(cpu) {
+@@ -2558,7 +2558,7 @@ static int __net_init tcp_sk_init(struct
+ IPPROTO_TCP, net);
+ if (res)
+ goto fail;
+- *per_cpu_ptr(net->ipv4.tcp_sk, cpu) = sk;
++ *per_cpu_ptr(net->tcp_sk, cpu) = sk;
+ }
+ net->ipv4.sysctl_tcp_ecn = 2;
+ return 0;
Modified: dists/wheezy-backports/linux/debian/patches/features/all/aufs3/aufs3-mmap.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/all/aufs3/aufs3-mmap.patch Mon Apr 6 23:38:13 2015 (r22487)
+++ dists/wheezy-backports/linux/debian/patches/features/all/aufs3/aufs3-mmap.patch Tue Apr 7 21:44:05 2015 (r22488)
@@ -8,11 +8,9 @@
aufs3.16 mmap patch
-diff --git a/fs/buffer.c b/fs/buffer.c
-index eba6e4f..31f0b2d 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
-@@ -2460,7 +2460,7 @@ int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
+@@ -2470,7 +2470,7 @@ int block_page_mkwrite(struct vm_area_st
* Update file times before taking page lock. We may end up failing the
* fault so this update may be superfluous but who really cares...
*/
@@ -21,11 +19,9 @@
ret = __block_page_mkwrite(vma, vmf, get_block);
sb_end_pagefault(sb);
-diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
-index d4a3574..1397181 100644
--- a/fs/proc/nommu.c
+++ b/fs/proc/nommu.c
-@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
+@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_
file = region->vm_file;
if (file) {
@@ -37,11 +33,9 @@
dev = inode->i_sb->s_dev;
ino = inode->i_ino;
}
-diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index cfa63ee..bf4919e 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
-@@ -265,7 +265,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
+@@ -265,7 +265,10 @@ show_map_vma(struct seq_file *m, struct
const char *name = NULL;
if (file) {
@@ -53,7 +47,7 @@
dev = inode->i_sb->s_dev;
ino = inode->i_ino;
pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
-@@ -1390,7 +1393,7 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
+@@ -1390,7 +1393,7 @@ static int show_numa_map(struct seq_file
struct proc_maps_private *proc_priv = &numa_priv->proc_maps;
struct vm_area_struct *vma = v;
struct numa_maps *md = &numa_priv->md;
@@ -62,11 +56,9 @@
struct task_struct *task = proc_priv->task;
struct mm_struct *mm = vma->vm_mm;
struct mm_walk walk = {};
-diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
-index 678455d..0ef7ef4 100644
--- a/fs/proc/task_nommu.c
+++ b/fs/proc/task_nommu.c
-@@ -141,7 +141,10 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
+@@ -141,7 +141,10 @@ static int nommu_vma_show(struct seq_fil
file = vma->vm_file;
if (file) {
@@ -78,11 +70,9 @@
dev = inode->i_sb->s_dev;
ino = inode->i_ino;
pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
-diff --git a/include/linux/mm.h b/include/linux/mm.h
-index e03dd29..dd32624 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
-@@ -1184,6 +1184,28 @@ static inline int fixup_user_fault(struct task_struct *tsk,
+@@ -1187,6 +1187,28 @@ static inline int fixup_user_fault(struc
}
#endif
@@ -111,8 +101,6 @@
extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
void *buf, int len, int write);
-diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 96c5750..a087ecd 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -232,6 +232,7 @@ struct vm_region {
@@ -131,11 +119,9 @@
void * vm_private_data; /* was vm_pte (shared mem) */
#ifndef CONFIG_MMU
-diff --git a/kernel/fork.c b/kernel/fork.c
-index 6a13c46..714302c 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -416,7 +416,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+@@ -416,7 +416,7 @@ static int dup_mmap(struct mm_struct *mm
struct inode *inode = file_inode(file);
struct address_space *mapping = file->f_mapping;
@@ -144,11 +130,9 @@
if (tmp->vm_flags & VM_DENYWRITE)
atomic_dec(&inode->i_writecount);
mutex_lock(&mapping->i_mmap_mutex);
-diff --git a/mm/Makefile b/mm/Makefile
-index 4064f3e..0003fdf 100644
--- a/mm/Makefile
+++ b/mm/Makefile
-@@ -18,7 +18,7 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \
+@@ -18,7 +18,7 @@ obj-y := filemap.o mempool.o oom_kill.
mm_init.o mmu_context.o percpu.o slab_common.o \
compaction.o balloon_compaction.o vmacache.o \
interval_tree.o list_lru.o workingset.o \
@@ -157,11 +141,9 @@
obj-y += init-mm.o
-diff --git a/mm/filemap.c b/mm/filemap.c
-index 900edfa..f4dda0c 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
-@@ -2040,7 +2040,7 @@ int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
+@@ -2036,7 +2036,7 @@ int filemap_page_mkwrite(struct vm_area_
int ret = VM_FAULT_LOCKED;
sb_start_pagefault(inode->i_sb);
@@ -170,8 +152,6 @@
lock_page(page);
if (page->mapping != inode->i_mapping) {
unlock_page(page);
-diff --git a/mm/fremap.c b/mm/fremap.c
-index 72b8fa3..a00bbf0 100644
--- a/mm/fremap.c
+++ b/mm/fremap.c
@@ -224,16 +224,28 @@ get_write_lock:
@@ -205,11 +185,9 @@
err = 0;
}
goto out_freed;
-diff --git a/mm/madvise.c b/mm/madvise.c
-index a402f8f..134e15d 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
-@@ -327,12 +327,12 @@ static long madvise_remove(struct vm_area_struct *vma,
+@@ -327,12 +327,12 @@ static long madvise_remove(struct vm_are
* vma's reference to the file) can go away as soon as we drop
* mmap_sem.
*/
@@ -224,12 +202,10 @@
down_read(¤t->mm->mmap_sem);
return error;
}
-diff --git a/mm/memory.c b/mm/memory.c
-index 8b44f76..69a72bf 100644
--- a/mm/memory.c
+++ b/mm/memory.c
-@@ -2161,7 +2161,7 @@ reuse:
- set_page_dirty_balance(dirty_page);
+@@ -2168,7 +2168,7 @@ reuse:
+
/* file_update_time outside page_lock */
if (vma->vm_file)
- file_update_time(vma->vm_file);
@@ -237,11 +213,9 @@
}
put_page(dirty_page);
if (page_mkwrite) {
-diff --git a/mm/mmap.c b/mm/mmap.c
-index 129b847..869d1d7 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
-@@ -253,7 +253,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
+@@ -253,7 +253,7 @@ static struct vm_area_struct *remove_vma
if (vma->vm_ops && vma->vm_ops->close)
vma->vm_ops->close(vma);
if (vma->vm_file)
@@ -250,7 +224,7 @@
mpol_put(vma_policy(vma));
kmem_cache_free(vm_area_cachep, vma);
return next;
-@@ -863,7 +863,7 @@ again: remove_next = 1 + (end > next->vm_end);
+@@ -868,7 +868,7 @@ again: remove_next = 1 + (end > next->
if (remove_next) {
if (file) {
uprobe_munmap(next, next->vm_start, next->vm_end);
@@ -259,7 +233,7 @@
}
if (next->anon_vma)
anon_vma_merge(vma, next);
-@@ -1643,8 +1643,8 @@ out:
+@@ -1648,8 +1648,8 @@ out:
unmap_and_free_vma:
if (vm_flags & VM_DENYWRITE)
allow_write_access(file);
@@ -269,7 +243,7 @@
/* Undo any partial mapping done by a device driver. */
unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
-@@ -2434,7 +2434,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2443,7 +2443,7 @@ static int __split_vma(struct mm_struct
goto out_free_mpol;
if (new->vm_file)
@@ -278,7 +252,7 @@
if (new->vm_ops && new->vm_ops->open)
new->vm_ops->open(new);
-@@ -2453,7 +2453,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2462,7 +2462,7 @@ static int __split_vma(struct mm_struct
if (new->vm_ops && new->vm_ops->close)
new->vm_ops->close(new);
if (new->vm_file)
@@ -287,7 +261,7 @@
unlink_anon_vmas(new);
out_free_mpol:
mpol_put(vma_policy(new));
-@@ -2842,7 +2842,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -2851,7 +2851,7 @@ struct vm_area_struct *copy_vma(struct v
if (anon_vma_clone(new_vma, vma))
goto out_free_mempol;
if (new_vma->vm_file)
@@ -296,11 +270,9 @@
if (new_vma->vm_ops && new_vma->vm_ops->open)
new_vma->vm_ops->open(new_vma);
vma_link(mm, new_vma, prev, rb_link, rb_parent);
-diff --git a/mm/msync.c b/mm/msync.c
-index 992a167..ce1915b 100644
--- a/mm/msync.c
+++ b/mm/msync.c
-@@ -84,13 +84,13 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags)
+@@ -84,13 +84,13 @@ SYSCALL_DEFINE3(msync, unsigned long, st
start = vma->vm_end;
if ((flags & MS_SYNC) && file &&
(vma->vm_flags & VM_SHARED)) {
@@ -316,11 +288,9 @@
if (error || start >= end)
goto out;
down_read(&mm->mmap_sem);
-diff --git a/mm/nommu.c b/mm/nommu.c
-index 4a852f6..b369644 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
-@@ -658,7 +658,7 @@ static void __put_nommu_region(struct vm_region *region)
+@@ -658,7 +658,7 @@ static void __put_nommu_region(struct vm
up_write(&nommu_region_sem);
if (region->vm_file)
@@ -329,7 +299,7 @@
/* IO memory and memory shared directly out of the pagecache
* from ramfs/tmpfs mustn't be released here */
-@@ -823,7 +823,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -823,7 +823,7 @@ static void delete_vma(struct mm_struct
if (vma->vm_ops && vma->vm_ops->close)
vma->vm_ops->close(vma);
if (vma->vm_file)
@@ -338,7 +308,7 @@
put_nommu_region(vma->vm_region);
kmem_cache_free(vm_area_cachep, vma);
}
-@@ -1385,7 +1385,7 @@ unsigned long do_mmap_pgoff(struct file *file,
+@@ -1385,7 +1385,7 @@ unsigned long do_mmap_pgoff(struct file
goto error_just_free;
}
}
@@ -360,9 +330,6 @@
kmem_cache_free(vm_area_cachep, vma);
kleave(" = %d", ret);
return ret;
-diff --git a/mm/prfile.c b/mm/prfile.c
-new file mode 100644
-index 0000000..fc708d2
--- /dev/null
+++ b/mm/prfile.c
@@ -0,0 +1,86 @@
Copied: dists/wheezy-backports/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch (from r22440, dists/sid/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch)
@@ -0,0 +1,27 @@
+From: David Drysdale <drysdale at google.com>
+Date: Tue, 9 Sep 2014 14:50:57 -0700
+Subject: shm: add memfd.h to UAPI export list
+Origin: https://git.kernel.org/linus/b01d072065b6f36550f486fe77f05b092225ba1b
+
+The new header file memfd.h from commit 9183df25fe7b ("shm: add
+memfd_create() syscall") should be exported.
+
+Signed-off-by: David Drysdale <drysdale at google.com>
+Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
+Cc: Hugh Dickins <hughd at google.com>
+Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+ include/uapi/linux/Kbuild | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/include/uapi/linux/Kbuild
++++ b/include/uapi/linux/Kbuild
+@@ -241,6 +241,7 @@ header-y += matroxfb.h
+ header-y += mdio.h
+ header-y += media.h
+ header-y += mei.h
++header-y += memfd.h
+ header-y += mempolicy.h
+ header-y += meye.h
+ header-y += mic_common.h
Copied: dists/wheezy-backports/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch (from r22440, dists/sid/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch)
@@ -0,0 +1,39 @@
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 13:26:52 +0100
+Subject: of.h: Keep extern declaration of of_* variables when !CONFIG_OF
+Origin: https://git.kernel.org/linus/6d09dc6b74caaca83e32e67f2454406041d58fb0
+
+Keep the extern declaration of of_allnodes and friends, when building without
+of support, this way code using them can be written like this:
+
+ if (IS_ENABLED(CONFIG_OF_PLATFORM) && of_chosen) {
+ for_each_child_of_node(of_chosen, np)
+ ...
+ }
+
+And rely on the compiler optimizing it away, avoiding the need for #ifdef-ery.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ include/linux/of.h | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/include/linux/of.h
++++ b/include/linux/of.h
+@@ -107,14 +107,13 @@ static inline struct device_node *of_nod
+ static inline void of_node_put(struct device_node *node) { }
+ #endif /* !CONFIG_OF_DYNAMIC */
+
+-#ifdef CONFIG_OF
+-
+ /* Pointer for first entry in chain of all nodes. */
+ extern struct device_node *of_allnodes;
+ extern struct device_node *of_chosen;
+ extern struct device_node *of_aliases;
+ extern raw_spinlock_t devtree_lock;
+
++#ifdef CONFIG_OF
+ static inline bool of_have_populated_dt(void)
+ {
+ return of_allnodes != NULL;
Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch)
@@ -0,0 +1,60 @@
+From f819ccbe992cfec6081acef7c5a06d770178b03e Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 13:26:53 +0100
+Subject: [PATCH 04/15] simplefb: Add support for enumerating simplefb dt nodes
+ in /chosen
+Origin: https://git.kernel.org/linus/89c95001c00089836415aa7a78848ec2dec9f922
+
+Update simplefb to support the new preferred location for simplefb dt nodes
+under /chosen.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ drivers/video/fbdev/simplefb.c | 23 ++++++++++++++++++++++-
+ 1 file changed, 22 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index d192946..74c5edd 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -27,6 +27,7 @@
+ #include <linux/platform_data/simplefb.h>
+ #include <linux/platform_device.h>
+ #include <linux/clk-provider.h>
++#include <linux/of_platform.h>
+
+ static struct fb_fix_screeninfo simplefb_fix = {
+ .id = "simple",
+@@ -392,7 +393,27 @@ static struct platform_driver simplefb_driver = {
+ .probe = simplefb_probe,
+ .remove = simplefb_remove,
+ };
+-module_platform_driver(simplefb_driver);
++
++static int __init simplefb_init(void)
++{
++ int ret;
++ struct device_node *np;
++
++ ret = platform_driver_register(&simplefb_driver);
++ if (ret)
++ return ret;
++
++ if (IS_ENABLED(CONFIG_OF) && of_chosen) {
++ for_each_child_of_node(of_chosen, np) {
++ if (of_device_is_compatible(np, "simple-framebuffer"))
++ of_platform_device_create(np, NULL, NULL);
++ }
++ }
++
++ return 0;
++}
++
++module_init(simplefb_init);
+
+ MODULE_AUTHOR("Stephen Warren <swarren at wwwdotorg.org>");
+ MODULE_DESCRIPTION("Simple framebuffer driver");
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch)
@@ -0,0 +1,36 @@
+From 4fe57f1608272587892d50c524d98f96d311b115 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 13:26:55 +0100
+Subject: [PATCH 05/15] simplefb: Change simplefb_init from module_init to
+ fs_initcall
+Origin: https://git.kernel.org/linus/0c5b240c7e0a7af56afd24db6570fa84d67728c2
+
+One of the reasons for having the simplefb nodes in /chosen, and doing
+explicit enumeration of the nodes there, is too allow enumerating them sooner,
+so that we get a console earlier on.
+
+Doing this earlier then fs_initcall is not useful, since the fb only turns
+into a console when fbcon intializes, which is a fs_initcall too.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ drivers/video/fbdev/simplefb.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index 74c5edd..8be9754 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -413,7 +413,7 @@ static int __init simplefb_init(void)
+ return 0;
+ }
+
+-module_init(simplefb_init);
++fs_initcall(simplefb_init);
+
+ MODULE_AUTHOR("Stephen Warren <swarren at wwwdotorg.org>");
+ MODULE_DESCRIPTION("Simple framebuffer driver");
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch)
@@ -0,0 +1,39 @@
+From b516039bf5ce5464bc9a6eefac50c87415c9f318 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Tue, 25 Nov 2014 12:13:30 +0100
+Subject: [PATCH 06/15] simplefb: Fix build errors when CONFIG_COMMON_CLK is
+ not defined
+Origin: https://git.kernel.org/linus/8284731eb59e843a0608baf18828e0ad0d7f9d79
+
+Both CONFIG_OF and CONFIG_COMMON_CLK must be defined to be able to use of
+clocks.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ drivers/video/fbdev/simplefb.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index 8be9754..b2ae925 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -169,13 +169,13 @@ static int simplefb_parse_pd(struct platform_device *pdev,
+
+ struct simplefb_par {
+ u32 palette[PSEUDO_PALETTE_SIZE];
+-#ifdef CONFIG_OF
++#if defined CONFIG_OF && defined CONFIG_COMMON_CLK
+ int clk_count;
+ struct clk **clks;
+ #endif
+ };
+
+-#ifdef CONFIG_OF
++#if defined CONFIG_OF && defined CONFIG_COMMON_CLK
+ /*
+ * Clock handling code.
+ *
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch)
@@ -0,0 +1,33 @@
+From 28f3658954b8a749d9c7109b20f69019dd671252 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Mon, 5 Jan 2015 09:15:16 +0100
+Subject: [PATCH 07/15] simplefb: Fix build failure on Sparc
+Origin: https://git.kernel.org/linus/d9e020197d371c90ad56cc4be388fc95e0c08e6f
+
+of_platform_device_create is only defined when CONFIG_OF_ADDRESS is set,
+which is normally always the case when CONFIG_OF is defined, except on Sparc,
+so explicitly check for CONFIG_OF_ADDRESS rather then for CONFIG_OF.
+
+Reported-by: kbuild test robot <fengguang.wu at intel.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ drivers/video/fbdev/simplefb.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index b2ae925..c90503c 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -403,7 +403,7 @@ static int __init simplefb_init(void)
+ if (ret)
+ return ret;
+
+- if (IS_ENABLED(CONFIG_OF) && of_chosen) {
++ if (IS_ENABLED(CONFIG_OF_ADDRESS) && of_chosen) {
+ for_each_child_of_node(of_chosen, np) {
+ if (of_device_is_compatible(np, "simple-framebuffer"))
+ of_platform_device_create(np, NULL, NULL);
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch)
@@ -0,0 +1,185 @@
+From 26007c1238d7923f0ef8ff7aed10ed89ee5ef5c5 Mon Sep 17 00:00:00 2001
+From: Luc Verhaegen <libv at skynet.be>
+Date: Fri, 14 Nov 2014 13:26:50 +0100
+Subject: [PATCH 03/15] simplefb: add clock handling code
+Origin: https://git.kernel.org/linus/fc219bfd5b2e488e3c246990869cfde5ca235c89
+
+This claims and enables clocks listed in the simple framebuffer dt node.
+This is needed so that the display engine, in case the required clocks
+are known by the kernel code and are described in the dt, will remain
+properly enabled.
+
+Signed-off-by: Luc Verhaegen <libv at skynet.be>
+[hdegoede at redhat.com: Change clks from list to dynamic array]
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Acked-by: Geert Uytterhoeven <geert at linux-m68k.org>
+Reviewed-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
+Acked-by: Grant Likely <grant.likely at linaro.org>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+
+---
+ drivers/video/fbdev/simplefb.c | 108 ++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 107 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index cdcf1fe..d192946 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -26,6 +26,7 @@
+ #include <linux/module.h>
+ #include <linux/platform_data/simplefb.h>
+ #include <linux/platform_device.h>
++#include <linux/clk-provider.h>
+
+ static struct fb_fix_screeninfo simplefb_fix = {
+ .id = "simple",
+@@ -167,8 +168,105 @@ static int simplefb_parse_pd(struct platform_device *pdev,
+
+ struct simplefb_par {
+ u32 palette[PSEUDO_PALETTE_SIZE];
++#ifdef CONFIG_OF
++ int clk_count;
++ struct clk **clks;
++#endif
+ };
+
++#ifdef CONFIG_OF
++/*
++ * Clock handling code.
++ *
++ * Here we handle the clocks property of our "simple-framebuffer" dt node.
++ * This is necessary so that we can make sure that any clocks needed by
++ * the display engine that the bootloader set up for us (and for which it
++ * provided a simplefb dt node), stay up, for the life of the simplefb
++ * driver.
++ *
++ * When the driver unloads, we cleanly disable, and then release the clocks.
++ *
++ * We only complain about errors here, no action is taken as the most likely
++ * error can only happen due to a mismatch between the bootloader which set
++ * up simplefb, and the clock definitions in the device tree. Chances are
++ * that there are no adverse effects, and if there are, a clean teardown of
++ * the fb probe will not help us much either. So just complain and carry on,
++ * and hope that the user actually gets a working fb at the end of things.
++ */
++static int simplefb_clocks_init(struct simplefb_par *par,
++ struct platform_device *pdev)
++{
++ struct device_node *np = pdev->dev.of_node;
++ struct clk *clock;
++ int i, ret;
++
++ if (dev_get_platdata(&pdev->dev) || !np)
++ return 0;
++
++ par->clk_count = of_clk_get_parent_count(np);
++ if (par->clk_count <= 0)
++ return 0;
++
++ par->clks = kcalloc(par->clk_count, sizeof(struct clk *), GFP_KERNEL);
++ if (!par->clks)
++ return -ENOMEM;
++
++ for (i = 0; i < par->clk_count; i++) {
++ clock = of_clk_get(np, i);
++ if (IS_ERR(clock)) {
++ if (PTR_ERR(clock) == -EPROBE_DEFER) {
++ while (--i >= 0) {
++ if (par->clks[i])
++ clk_put(par->clks[i]);
++ }
++ kfree(par->clks);
++ return -EPROBE_DEFER;
++ }
++ dev_err(&pdev->dev, "%s: clock %d not found: %ld\n",
++ __func__, i, PTR_ERR(clock));
++ continue;
++ }
++ par->clks[i] = clock;
++ }
++
++ for (i = 0; i < par->clk_count; i++) {
++ if (par->clks[i]) {
++ ret = clk_prepare_enable(par->clks[i]);
++ if (ret) {
++ dev_err(&pdev->dev,
++ "%s: failed to enable clock %d: %d\n",
++ __func__, i, ret);
++ clk_put(par->clks[i]);
++ par->clks[i] = NULL;
++ }
++ }
++ }
++
++ return 0;
++}
++
++static void simplefb_clocks_destroy(struct simplefb_par *par)
++{
++ int i;
++
++ if (!par->clks)
++ return;
++
++ for (i = 0; i < par->clk_count; i++) {
++ if (par->clks[i]) {
++ clk_disable_unprepare(par->clks[i]);
++ clk_put(par->clks[i]);
++ }
++ }
++
++ kfree(par->clks);
++}
++#else
++static int simplefb_clocks_init(struct simplefb_par *par,
++ struct platform_device *pdev) { return 0; }
++static void simplefb_clocks_destroy(struct simplefb_par *par) { }
++#endif
++
+ static int simplefb_probe(struct platform_device *pdev)
+ {
+ int ret;
+@@ -236,6 +334,10 @@ static int simplefb_probe(struct platform_device *pdev)
+ }
+ info->pseudo_palette = par->palette;
+
++ ret = simplefb_clocks_init(par, pdev);
++ if (ret < 0)
++ goto error_unmap;
++
+ dev_info(&pdev->dev, "framebuffer at 0x%lx, 0x%x bytes, mapped to 0x%p\n",
+ info->fix.smem_start, info->fix.smem_len,
+ info->screen_base);
+@@ -247,13 +349,15 @@ static int simplefb_probe(struct platform_device *pdev)
+ ret = register_framebuffer(info);
+ if (ret < 0) {
+ dev_err(&pdev->dev, "Unable to register simplefb: %d\n", ret);
+- goto error_unmap;
++ goto error_clocks;
+ }
+
+ dev_info(&pdev->dev, "fb%d: simplefb registered!\n", info->node);
+
+ return 0;
+
++error_clocks:
++ simplefb_clocks_destroy(par);
+ error_unmap:
+ iounmap(info->screen_base);
+ error_fb_release:
+@@ -264,8 +368,10 @@ error_fb_release:
+ static int simplefb_remove(struct platform_device *pdev)
+ {
+ struct fb_info *info = platform_get_drvdata(pdev);
++ struct simplefb_par *par = info->par;
+
+ unregister_framebuffer(info);
++ simplefb_clocks_destroy(par);
+ framebuffer_release(info);
+
+ return 0;
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch)
@@ -0,0 +1,75 @@
+From e57f8f9adc3d2924c8bf312a66786885c84cd06c Mon Sep 17 00:00:00 2001
+From: Luc Verhaegen <libv at skynet.be>
+Date: Fri, 14 Nov 2014 13:26:49 +0100
+Subject: [PATCH 02/15] simplefb: add goto error path to probe
+Origin: https://git.kernel.org/linus/bf2fda157a9ab50f65da60a365ede3a5b529d025
+
+Use the usual kernel style of goto error_foo to free resources on probe
+error. This is a preparation patch for adding clocks support.
+
+While at it also update ioremap_wc error return from ENODEV to ENOMEM.
+
+Signed-off-by: Luc Verhaegen <libv at skynet.be>
+Acked-by: Stephen Warren <swarren at nvidia.com>
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Acked-by: Geert Uytterhoeven <geert at linux-m68k.org>
+Reviewed-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
+Acked-by: Grant Likely <grant.likely at linaro.org>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ drivers/video/fbdev/simplefb.c | 18 +++++++++++-------
+ 1 file changed, 11 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index ec112c1..cdcf1fe 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -220,8 +220,8 @@ static int simplefb_probe(struct platform_device *pdev)
+
+ info->apertures = alloc_apertures(1);
+ if (!info->apertures) {
+- framebuffer_release(info);
+- return -ENOMEM;
++ ret = -ENOMEM;
++ goto error_fb_release;
+ }
+ info->apertures->ranges[0].base = info->fix.smem_start;
+ info->apertures->ranges[0].size = info->fix.smem_len;
+@@ -231,8 +231,8 @@ static int simplefb_probe(struct platform_device *pdev)
+ info->screen_base = ioremap_wc(info->fix.smem_start,
+ info->fix.smem_len);
+ if (!info->screen_base) {
+- framebuffer_release(info);
+- return -ENODEV;
++ ret = -ENOMEM;
++ goto error_fb_release;
+ }
+ info->pseudo_palette = par->palette;
+
+@@ -247,14 +247,18 @@ static int simplefb_probe(struct platform_device *pdev)
+ ret = register_framebuffer(info);
+ if (ret < 0) {
+ dev_err(&pdev->dev, "Unable to register simplefb: %d\n", ret);
+- iounmap(info->screen_base);
+- framebuffer_release(info);
+- return ret;
++ goto error_unmap;
+ }
+
+ dev_info(&pdev->dev, "fb%d: simplefb registered!\n", info->node);
+
+ return 0;
++
++error_unmap:
++ iounmap(info->screen_base);
++error_fb_release:
++ framebuffer_release(info);
++ return ret;
+ }
+
+ static int simplefb_remove(struct platform_device *pdev)
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch)
@@ -0,0 +1,90 @@
+From a3bf3921e8e032943cf39f17daa30d35f412e365 Mon Sep 17 00:00:00 2001
+From: Luc Verhaegen <libv at skynet.be>
+Date: Fri, 14 Nov 2014 13:26:48 +0100
+Subject: [PATCH 01/15] simplefb: formalize pseudo palette handling
+Origin: https://git.kernel.org/linus/1270be4a4fb852630280638cbb169b67c485b3e3
+
+Add a proper struct describing simplefb private data, with the palette in there,
+instead of directly storing the palette in the fb_info->par pointer.
+
+Signed-off-by: Luc Verhaegen <libv at skynet.be>
+Acked-by: Stephen Warren <swarren at nvidia.com>
+[hdegoede at redhat.com: drop unnecessary void * cast]
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Acked-by: Geert Uytterhoeven <geert at linux-m68k.org>
+Reviewed-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
+Acked-by: Grant Likely <grant.likely at linaro.org>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+
+---
+ drivers/video/fbdev/simplefb.c | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index 210f3a0..ec112c1 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -41,6 +41,8 @@ static struct fb_var_screeninfo simplefb_var = {
+ .vmode = FB_VMODE_NONINTERLACED,
+ };
+
++#define PSEUDO_PALETTE_SIZE 16
++
+ static int simplefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
+ u_int transp, struct fb_info *info)
+ {
+@@ -50,7 +52,7 @@ static int simplefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
+ u32 cb = blue >> (16 - info->var.blue.length);
+ u32 value;
+
+- if (regno >= 16)
++ if (regno >= PSEUDO_PALETTE_SIZE)
+ return -EINVAL;
+
+ value = (cr << info->var.red.offset) |
+@@ -163,11 +165,16 @@ static int simplefb_parse_pd(struct platform_device *pdev,
+ return 0;
+ }
+
++struct simplefb_par {
++ u32 palette[PSEUDO_PALETTE_SIZE];
++};
++
+ static int simplefb_probe(struct platform_device *pdev)
+ {
+ int ret;
+ struct simplefb_params params;
+ struct fb_info *info;
++ struct simplefb_par *par;
+ struct resource *mem;
+
+ if (fb_get_options("simplefb", NULL))
+@@ -188,11 +195,13 @@ static int simplefb_probe(struct platform_device *pdev)
+ return -EINVAL;
+ }
+
+- info = framebuffer_alloc(sizeof(u32) * 16, &pdev->dev);
++ info = framebuffer_alloc(sizeof(struct simplefb_par), &pdev->dev);
+ if (!info)
+ return -ENOMEM;
+ platform_set_drvdata(pdev, info);
+
++ par = info->par;
++
+ info->fix = simplefb_fix;
+ info->fix.smem_start = mem->start;
+ info->fix.smem_len = resource_size(mem);
+@@ -225,7 +234,7 @@ static int simplefb_probe(struct platform_device *pdev)
+ framebuffer_release(info);
+ return -ENODEV;
+ }
+- info->pseudo_palette = (void *)(info + 1);
++ info->pseudo_palette = par->palette;
+
+ dev_info(&pdev->dev, "framebuffer at 0x%lx, 0x%x bytes, mapped to 0x%p\n",
+ info->fix.smem_start, info->fix.smem_len,
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch)
@@ -0,0 +1,44 @@
+From 5429cd33ae8abeada683b08bab6d13f6227e2734 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Mon, 19 Jan 2015 14:01:17 +0100
+Subject: [PATCH 14/15] ARM: dts: sun4i: Add simplefb node with
+ de_fe0-de_be0-lcd0-hdmi pipeline
+Origin: https://git.kernel.org/linus/8cedd6628472aa2d8f2f54dfcc36633e46a59db8
+
+Testing has shown that on sun4i the display backend engine does not have
+deep enough fifo-s causing flickering / tearing in full-hd mode due to
+fifo underruns. This can be avoided by letting the display frontend engine
+do the dma from memory, and then letting it feed the data directly into
+the backend unmodified, as the frontend does have deep enough fifo-s.
+
+Note since u-boot-v2015.01 has been released using the de_be0-lcd0-hdmi
+pipeline on sun4i, we need to keep that one around too (unfortunately).
+
+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/sun4i-a10.dtsi | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
+index a9a657c..7e3e5dd 100644
+--- a/arch/arm/boot/dts/sun4i-a10.dtsi
++++ b/arch/arm/boot/dts/sun4i-a10.dtsi
+@@ -39,6 +39,14 @@
+ <&ahb_gates 44>;
+ status = "disabled";
+ };
++
++ framebuffer at 1 {
++ compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
++ allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi";
++ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
++ <&ahb_gates 44>, <&ahb_gates 46>;
++ status = "disabled";
++ };
+ };
+
+ cpus {
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch)
@@ -0,0 +1,40 @@
+From 1924660efb8ad8b0dfe6c16e3f9b865489617bc1 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 16:34:34 +0100
+Subject: [PATCH 08/15] ARM: dts: sun4i: Add simplefb node
+Origin: https://git.kernel.org/linus/5790d4ee1e425fefef0e012d1415c25baeb9dae8
+
+Add a simplefb template node for u-boot to further fill and activate.
+
+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/sun4i-a10.dtsi | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
+index d96e179..8aa412f 100644
+--- a/arch/arm/boot/dts/sun4i-a10.dtsi
++++ b/arch/arm/boot/dts/sun4i-a10.dtsi
+@@ -27,6 +27,18 @@
+ serial7 = &uart7;
+ };
+
++ chosen {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ ranges;
++
++ framebuffer0-hdmi {
++ compatible = "simple-framebuffer";
++ clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++ status = "disabled";
++ };
++ };
++
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch)
@@ -0,0 +1,40 @@
+From 8b6ded18e0b025919bf6f99f2ec0cb579a40e099 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 16:34:35 +0100
+Subject: [PATCH 09/15] ARM: dts: sun5i: Add simplefb node
+Origin: https://git.kernel.org/linus/d501841fc42a97a8b69449135eadf6e9c4589a87
+
+Add a simplefb template node for u-boot to further fill and activate.
+
+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/sun5i-a10s.dtsi | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
+index b64f705..3b0ea26 100644
+--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
++++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
+@@ -24,6 +24,18 @@
+ serial3 = &uart3;
+ };
+
++ chosen {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ ranges;
++
++ framebuffer0-hdmi {
++ compatible = "simple-framebuffer";
++ clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++ status = "disabled";
++ };
++ };
++
+ cpus {
+ cpu at 0 {
+ compatible = "arm,cortex-a8";
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch)
@@ -0,0 +1,38 @@
+From 81d90d6cc2132414c9af30c49b487651a03f4c82 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 16:34:36 +0100
+Subject: [PATCH 10/15] ARM: dts: sun6i: Add simplefb node
+Origin: https://git.kernel.org/linus/e53a8b2201384ee1a2cfd1609c9ffdf951b041a1
+
+Add a simplefb template node for u-boot to further fill and activate.
+
+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/sun6i-a31.dtsi | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
+index a9dfa12..eedb1e0 100644
+--- a/arch/arm/boot/dts/sun6i-a31.dtsi
++++ b/arch/arm/boot/dts/sun6i-a31.dtsi
+@@ -25,6 +25,16 @@
+ serial5 = &uart5;
+ };
+
++ chosen {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ ranges;
++
++ framebuffer0-hdmi {
++ compatible = "simple-framebuffer";
++ status = "disabled";
++ };
++ };
+
+ cpus {
+ enable-method = "allwinner,sun6i-a31";
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch)
@@ -0,0 +1,40 @@
+From 0c484cbb0f590f457abbe6616d817cd623b382fa Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 16:34:37 +0100
+Subject: [PATCH 11/15] ARM: dts: sun7i: Add simplefb node
+Origin: https://git.kernel.org/linus/8efc5c2be5b29f7ceec83bb471da81690273e141
+
+Add a simplefb template node for u-boot to further fill and activate.
+
+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 | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
+index 01e9466..bb01f9b 100644
+--- a/arch/arm/boot/dts/sun7i-a20.dtsi
++++ b/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -28,6 +28,18 @@
+ serial7 = &uart7;
+ };
+
++ chosen {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ ranges;
++
++ framebuffer0-hdmi {
++ compatible = "simple-framebuffer";
++ clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++ status = "disabled";
++ };
++ };
++
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch)
@@ -0,0 +1,80 @@
+From 0c9c7408537a543b10035434d79842651f540d7d Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Sun, 16 Nov 2014 17:09:32 +0100
+Subject: [PATCH 12/15] ARM: dts: sunxi: Add de_be0 clk parent pll to simplefb
+ node
+Origin: https://git.kernel.org/linus/678e75d3e5526bee1b09f0e916096ec7f7d35c8e
+
+Avoid the parent pll for the mod-clk for de_be0 getting disabled when non of
+the other users are enabled (which can happen when none of i2c, spi and mmc
+are in use).
+
+Note for now we point directly to the parent rather then to the de_be0 mod-clk
+as that is not modelled in our devicetree yet.
+
+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/sun4i-a10.dtsi | 3 ++-
+ arch/arm/boot/dts/sun5i-a10s.dtsi | 3 ++-
+ arch/arm/boot/dts/sun6i-a31.dtsi | 1 +
+ arch/arm/boot/dts/sun7i-a20.dtsi | 3 ++-
+ 4 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
+index 8aa412f..e6aaad6 100644
+--- a/arch/arm/boot/dts/sun4i-a10.dtsi
++++ b/arch/arm/boot/dts/sun4i-a10.dtsi
+@@ -34,7 +34,8 @@
+
+ framebuffer0-hdmi {
+ compatible = "simple-framebuffer";
+- clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
++ <&ahb_gates 44>;
+ status = "disabled";
+ };
+ };
+diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
+index 3b0ea26..7b9bb3f 100644
+--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
++++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
+@@ -31,7 +31,8 @@
+
+ framebuffer0-hdmi {
+ compatible = "simple-framebuffer";
+- clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
++ <&ahb_gates 44>;
+ status = "disabled";
+ };
+ };
+diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
+index eedb1e0..842d2e6 100644
+--- a/arch/arm/boot/dts/sun6i-a31.dtsi
++++ b/arch/arm/boot/dts/sun6i-a31.dtsi
+@@ -32,6 +32,7 @@
+
+ framebuffer0-hdmi {
+ compatible = "simple-framebuffer";
++ clocks = <&pll6 0>;
+ status = "disabled";
+ };
+ };
+diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
+index bb01f9b..c120b4f 100644
+--- a/arch/arm/boot/dts/sun7i-a20.dtsi
++++ b/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -35,7 +35,8 @@
+
+ framebuffer0-hdmi {
+ compatible = "simple-framebuffer";
+- clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
++ <&ahb_gates 44>;
+ status = "disabled";
+ };
+ };
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch)
@@ -0,0 +1,149 @@
+From fc020448ed2abd7d649153e248e3ec08d17ae1f5 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Mon, 19 Jan 2015 14:05:12 +0100
+Subject: [PATCH 15/15] ARM: dts: sunxi: Add simplefb nodes for de_be0-lcd0,
+ de_be0-lcd0-tve0 pipelines
+Origin: https://git.kernel.org/linus/fd18c7eac03540654abdbfedd52e6dfb3718b489
+
+Add simplefb nodes for "[de_fe0-]de_be0-lcd0" and "[de_fe0-]de_be0-lcd0-tve0"
+display pipelines for when u-boot has set up a pipeline to drive a LCD panel /
+VGA output rather then the HDMI output.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+
+Conflicts:
+ arch/arm/boot/dts/sun8i-a23.dtsi
+
+[ ijc -- dropped arch/arm/boot/dts/sun8i-a23.dtsi changes, not in baseline ]
+---
+ arch/arm/boot/dts/sun4i-a10.dtsi | 18 ++++++++++++++++++
+ arch/arm/boot/dts/sun5i-a10s.dtsi | 8 ++++++++
+ arch/arm/boot/dts/sun5i-a13.dtsi | 14 ++++++++++++++
+ arch/arm/boot/dts/sun6i-a31.dtsi | 8 ++++++++
+ arch/arm/boot/dts/sun7i-a20.dtsi | 17 +++++++++++++++++
+ 5 files changed, 65 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
+index 7e3e5dd..eae8bfd 100644
+--- a/arch/arm/boot/dts/sun4i-a10.dtsi
++++ b/arch/arm/boot/dts/sun4i-a10.dtsi
+@@ -47,6 +47,24 @@
+ <&ahb_gates 44>, <&ahb_gates 46>;
+ status = "disabled";
+ };
++
++ framebuffer at 2 {
++ compatible = "allwinner,simple-framebuffer",
++ "simple-framebuffer";
++ allwinner,pipeline = "de_fe0-de_be0-lcd0";
++ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>,
++ <&ahb_gates 46>;
++ status = "disabled";
++ };
++
++ framebuffer at 3 {
++ compatible = "allwinner,simple-framebuffer",
++ "simple-framebuffer";
++ allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0";
++ clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>,
++ <&ahb_gates 44>, <&ahb_gates 46>;
++ status = "disabled";
++ };
+ };
+
+ cpus {
+diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
+index 245a25b..95bbfea 100644
+--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
++++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
+@@ -36,6 +36,14 @@
+ <&ahb_gates 44>;
+ status = "disabled";
+ };
++
++ framebuffer at 1 {
++ compatible = "allwinner,simple-framebuffer",
++ "simple-framebuffer";
++ allwinner,pipeline = "de_be0-lcd0";
++ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
++ status = "disabled";
++ };
+ };
+
+ cpus {
+diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
+index 3b2a94c..a194c1e 100644
+--- a/arch/arm/boot/dts/sun5i-a13.dtsi
++++ b/arch/arm/boot/dts/sun5i-a13.dtsi
+@@ -21,6 +21,20 @@
+ serial1 = &uart3;
+ };
+
++ chosen {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ ranges;
++
++ framebuffer at 0 {
++ compatible = "allwinner,simple-framebuffer",
++ "simple-framebuffer";
++ allwinner,pipeline = "de_be0-lcd0";
++ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
++ status = "disabled";
++ };
++ };
++
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
+index fe2c938..90cc322 100644
+--- a/arch/arm/boot/dts/sun6i-a31.dtsi
++++ b/arch/arm/boot/dts/sun6i-a31.dtsi
+@@ -36,6 +36,14 @@
+ clocks = <&pll6 0>;
+ status = "disabled";
+ };
++
++ framebuffer at 1 {
++ compatible = "allwinner,simple-framebuffer",
++ "simple-framebuffer";
++ allwinner,pipeline = "de_be0-lcd0";
++ clocks = <&pll6 0>;
++ status = "disabled";
++ };
+ };
+
+ cpus {
+diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
+index e31ae3a..7d47914 100644
+--- a/arch/arm/boot/dts/sun7i-a20.dtsi
++++ b/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -40,6 +40,23 @@
+ <&ahb_gates 44>;
+ status = "disabled";
+ };
++
++ framebuffer at 1 {
++ compatible = "allwinner,simple-framebuffer",
++ "simple-framebuffer";
++ allwinner,pipeline = "de_be0-lcd0";
++ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
++ status = "disabled";
++ };
++
++ framebuffer at 2 {
++ compatible = "allwinner,simple-framebuffer",
++ "simple-framebuffer";
++ allwinner,pipeline = "de_be0-lcd0-tve0";
++ clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>,
++ <&ahb_gates 44>;
++ status = "disabled";
++ };
+ };
+
+ cpus {
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch)
@@ -0,0 +1,93 @@
+From cba654240791a0ac72310f0ba840f48a377277a3 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Tue, 18 Nov 2014 12:07:13 +0100
+Subject: [PATCH 13/15] ARM: dts: sunxi: Update simplefb nodes so that u-boot
+ can find them
+Origin: https://git.kernel.org/linus/a9f8cda32a3acc3150755fe973f7fa1867a7a5d6
+
+Review of the u-boot sunxi simplefb patches has led to the decision that
+u-boot should not use a specific path to find the nodes as this goes contrary
+to how devicetree usually works.
+
+Instead a platform specific compatible + properties should be used for this.
+
+The simplefb bindings have already been updated to reflect this, this patch
+brings the sunxi devicetree files in line with the new binding, and the
+actual u-boot implementation as it is going upstream.
+
+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/sun4i-a10.dtsi | 5 +++--
+ arch/arm/boot/dts/sun5i-a10s.dtsi | 5 +++--
+ arch/arm/boot/dts/sun6i-a31.dtsi | 5 +++--
+ arch/arm/boot/dts/sun7i-a20.dtsi | 5 +++--
+ 4 files changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
+index e6aaad6..a9a657c 100644
+--- a/arch/arm/boot/dts/sun4i-a10.dtsi
++++ b/arch/arm/boot/dts/sun4i-a10.dtsi
+@@ -32,8 +32,9 @@
+ #size-cells = <1>;
+ ranges;
+
+- framebuffer0-hdmi {
+- compatible = "simple-framebuffer";
++ framebuffer at 0 {
++ compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
++ allwinner,pipeline = "de_be0-lcd0-hdmi";
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
+ <&ahb_gates 44>;
+ status = "disabled";
+diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
+index 7b9bb3f..245a25b 100644
+--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
++++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
+@@ -29,8 +29,9 @@
+ #size-cells = <1>;
+ ranges;
+
+- framebuffer0-hdmi {
+- compatible = "simple-framebuffer";
++ framebuffer at 0 {
++ compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
++ allwinner,pipeline = "de_be0-lcd0-hdmi";
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
+ <&ahb_gates 44>;
+ status = "disabled";
+diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
+index 842d2e6..fe2c938 100644
+--- a/arch/arm/boot/dts/sun6i-a31.dtsi
++++ b/arch/arm/boot/dts/sun6i-a31.dtsi
+@@ -30,8 +30,9 @@
+ #size-cells = <1>;
+ ranges;
+
+- framebuffer0-hdmi {
+- compatible = "simple-framebuffer";
++ framebuffer at 0 {
++ compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
++ allwinner,pipeline = "de_be0-lcd0-hdmi";
+ clocks = <&pll6 0>;
+ status = "disabled";
+ };
+diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
+index c120b4f..e31ae3a 100644
+--- a/arch/arm/boot/dts/sun7i-a20.dtsi
++++ b/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -33,8 +33,9 @@
+ #size-cells = <1>;
+ ranges;
+
+- framebuffer0-hdmi {
+- compatible = "simple-framebuffer";
++ framebuffer at 0 {
++ compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
++ allwinner,pipeline = "de_be0-lcd0-hdmi";
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
+ <&ahb_gates 44>;
+ status = "disabled";
+--
+2.1.4
+
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch (from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch)
@@ -0,0 +1,296 @@
+From 10662a33dcd97f27004779df7e9188c124bc7076 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Sun, 18 Jan 2015 13:08:19 +0100
+Subject: ARM: dts: sun7i: Add dts file for Bananapro board
+Origin: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=10662a33dcd97f27004779df7e9188c124bc7076
+
+Add support for the new Bananapro A20 development board from lemaker.org.
+This board features 1G RAM, 2 USB A receptacles, 1 micro USB receptacle for
+OTG, 1 micro USB receptacle for power, HDMI, sata, Gbit ethernet, ir receiver,
+3.5 mm jack for a/v out, on board microphone, 40 gpio pins and sdio wifi.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+[Karsten Merker: replace SUN4I_PINCTRL_10_MA, SUN4I_PINCTRL_NO_PULL and
+SUN4I_PINCTRL_PULL_UP with their corresponding values as these symbols are not
+yet defined in 3.16.]
+
+Index: linux-3.16.7-ckt7/arch/arm/boot/dts/Makefile
+===================================================================
+--- linux-3.16.7-ckt7.orig/arch/arm/boot/dts/Makefile
++++ linux-3.16.7-ckt7/arch/arm/boot/dts/Makefile
+@@ -377,6 +377,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
+ sun6i-a31-m9.dtb
+ dtb-$(CONFIG_MACH_SUN7I) += \
+ sun7i-a20-bananapi.dtb \
++ sun7i-a20-bananapro.dtb \
+ sun7i-a20-cubieboard2.dtb \
+ sun7i-a20-cubietruck.dtb \
+ sun7i-a20-i12-tvbox.dtb \
+Index: linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20-bananapro.dts
+===================================================================
+--- /dev/null
++++ linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20-bananapro.dts
+@@ -0,0 +1,262 @@
++/*
++ * Copyright 2015 Hans de Goede <hdegoede at redhat.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this file; if not, write to the Free
++ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
++ * MA 02110-1301 USA
++ *
++ * Or, alternatively,
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use,
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/dts-v1/;
++#include "sun7i-a20.dtsi"
++#include "sunxi-common-regulators.dtsi"
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/interrupt-controller/arm-gic.h>
++
++/ {
++ model = "LeMaker Banana Pro";
++ compatible = "lemaker,bananapro", "allwinner,sun7i-a20";
++
++ leds {
++ compatible = "gpio-leds";
++ pinctrl-names = "default";
++ pinctrl-0 = <&led_pins_bananapro>;
++
++ blue {
++ label = "bananapro:blue:usr";
++ gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>;
++ };
++
++ green {
++ label = "bananapro:green:usr";
++ gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
++ };
++ };
++
++ reg_gmac_3v3: gmac-3v3 {
++ compatible = "regulator-fixed";
++ pinctrl-names = "default";
++ pinctrl-0 = <&gmac_power_pin_bananapro>;
++ regulator-name = "gmac-3v3";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ startup-delay-us = <100000>;
++ enable-active-high;
++ gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>;
++ };
++
++ reg_vmmc3: vmmc3 {
++ compatible = "regulator-fixed";
++ pinctrl-names = "default";
++ pinctrl-0 = <&vmmc3_pin_bananapro>;
++ regulator-name = "vmmc3";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ enable-active-high;
++ gpio = <&pio 7 22 GPIO_ACTIVE_HIGH>;
++ };
++};
++
++&ahci {
++ status = "okay";
++};
++
++&ehci0 {
++ status = "okay";
++};
++
++&ehci1 {
++ status = "okay";
++};
++
++&gmac {
++ pinctrl-names = "default";
++ pinctrl-0 = <&gmac_pins_rgmii_a>;
++ phy = <&phy1>;
++ phy-mode = "rgmii";
++ phy-supply = <®_gmac_3v3>;
++ status = "okay";
++
++ phy1: ethernet-phy at 1 {
++ reg = <1>;
++ };
++};
++
++&i2c0 {
++ 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 IRQ_TYPE_LEVEL_LOW>;
++
++ interrupt-controller;
++ #interrupt-cells = <1>;
++ };
++};
++
++&i2c2 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&i2c2_pins_a>;
++ status = "okay";
++};
++
++&ir0 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&ir0_pins_a>;
++ status = "okay";
++};
++
++&mmc0 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bananapro>;
++ vmmc-supply = <®_vcc3v3>;
++ bus-width = <4>;
++ cd-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */
++ cd-inverted;
++ status = "okay";
++};
++
++&mmc3 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&mmc3_pins_a>;
++ vmmc-supply = <®_vmmc3>;
++ bus-width = <4>;
++ non-removable;
++ status = "okay";
++};
++
++&ohci0 {
++ status = "okay";
++};
++
++&ohci1 {
++ status = "okay";
++};
++
++&pio {
++ gmac_power_pin_bananapro: gmac_power_pin at 0 {
++ allwinner,pins = "PH23";
++ allwinner,function = "gpio_out";
++ allwinner,drive = <0>;
++ allwinner,pull = <0>;
++ };
++
++ led_pins_bananapro: led_pins at 0 {
++ allwinner,pins = "PH24", "PG2";
++ allwinner,function = "gpio_out";
++ allwinner,drive = <0>;
++ allwinner,pull = <0>;
++ };
++
++ mmc0_cd_pin_bananapro: mmc0_cd_pin at 0 {
++ allwinner,pins = "PH10";
++ allwinner,function = "gpio_in";
++ allwinner,drive = <0>;
++ allwinner,pull = <1>;
++ };
++
++ usb1_vbus_pin_bananapro: usb1_vbus_pin at 0 {
++ allwinner,pins = "PH0";
++ allwinner,function = "gpio_out";
++ allwinner,drive = <0>;
++ allwinner,pull = <0>;
++ };
++
++ usb2_vbus_pin_bananapro: usb2_vbus_pin at 0 {
++ allwinner,pins = "PH1";
++ allwinner,function = "gpio_out";
++ allwinner,drive = <0>;
++ allwinner,pull = <0>;
++ };
++
++ vmmc3_pin_bananapro: vmmc3_pin at 0 {
++ allwinner,pins = "PH22";
++ allwinner,function = "gpio_out";
++ allwinner,drive = <0>;
++ allwinner,pull = <0>;
++ };
++};
++
++®_usb1_vbus {
++ pinctrl-0 = <&usb1_vbus_pin_bananapro>;
++ gpio = <&pio 7 0 GPIO_ACTIVE_HIGH>; /* PH0 */
++ status = "okay";
++};
++
++®_usb2_vbus {
++ pinctrl-0 = <&usb2_vbus_pin_bananapro>;
++ gpio = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
++ status = "okay";
++};
++
++&spi0 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&spi0_pins_a>;
++ status = "okay";
++};
++
++&uart0 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart0_pins_a>;
++ status = "okay";
++};
++
++&uart2 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart2_pins_a>;
++ status = "okay";
++};
++
++&uart7 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart7_pins_a>;
++ status = "okay";
++};
++
++&usbphy {
++ usb1_vbus-supply = <®_usb1_vbus>;
++ usb2_vbus-supply = <®_usb2_vbus>;
++ status = "okay";
++};
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch (from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.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-A20-OLinuXino-Lime2.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch)
@@ -0,0 +1,255 @@
+From 518478811c95fafcbef64cf20172a3d6c8dceb27 Mon Sep 17 00:00:00 2001
+From: Iain Paton <ipaton0 at gmail.com>
+Date: Fri, 10 Oct 2014 14:15:24 +0100
+Subject: ARM: sun7i: add support for A20-OLinuXino-Lime2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=518478811c95fafcbef64cf20172a3d6c8dceb27
+
+This adds support for the Olimex A20-OLinuXino-Lime2
+https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2
+
+Differences to previous Lime boards are 1GB RAM and gigabit ethernet
+
+Signed-off-by: Iain Paton <ipaton0 at gmail.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -381,6 +381,7 @@
+ sun7i-a20-cubietruck.dtb \
+ sun7i-a20-i12-tvbox.dtb \
+ sun7i-a20-olinuxino-lime.dtb \
++ sun7i-a20-olinuxino-lime2.dtb \
+ sun7i-a20-olinuxino-micro.dtb \
+ sun7i-a20-pcduino3.dtb
+ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
+@@ -0,0 +1,228 @@
++/*
++ * Copyright 2014 - Iain Paton <ipaton0 at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this library; if not, write to the Free
++ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
++ * MA 02110-1301 USA
++ *
++ * Or, alternatively,
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use,
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/dts-v1/;
++/include/ "sun7i-a20.dtsi"
++/include/ "sunxi-common-regulators.dtsi"
++
++/ {
++ model = "Olimex A20-OLinuXino-LIME2";
++ compatible = "olimex,a20-olinuxino-lime2", "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 = <®_vcc3v3>;
++ bus-width = <4>;
++ cd-gpios = <&pio 7 1 0>; /* PH1 */
++ cd-inverted;
++ status = "okay";
++ };
++
++ usbphy: phy at 01c13400 {
++ usb1_vbus-supply = <®_usb1_vbus>;
++ usb2_vbus-supply = <®_usb2_vbus>;
++ status = "okay";
++ };
++
++ ehci0: usb at 01c14000 {
++ status = "okay";
++ };
++
++ ohci0: usb at 01c14400 {
++ status = "okay";
++ };
++
++ ahci: sata at 01c18000 {
++ target-supply = <®_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>;
++
++ acin-supply = <®_axp_ipsout>;
++ vin2-supply = <®_axp_ipsout>;
++ vin3-supply = <®_axp_ipsout>;
++ ldo24in-supply = <®_axp_ipsout>;
++ ldo3in-supply = <®_axp_ipsout>;
++
++ regulators {
++ vdd_rtc: ldo1 {
++ regulator-min-microvolt = <1300000>;
++ regulator-max-microvolt = <1300000>;
++ regulator-always-on;
++ };
++
++ avcc: ldo2 {
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <3300000>;
++ regulator-always-on;
++ };
++
++ vcc_csi0: ldo3 {
++ regulator-min-microvolt = <700000>;
++ regulator-max-microvolt = <3500000>;
++ regulator-always-on;
++ };
++
++ vcc_csi1: ldo4 {
++ regulator-min-microvolt = <1250000>;
++ regulator-max-microvolt = <3300000>;
++ regulator-always-on;
++ };
++
++ vdd_cpu: dcdc2 {
++ regulator-min-microvolt = <700000>;
++ regulator-max-microvolt = <2275000>;
++ regulator-always-on;
++ };
++
++ vdd_int: dcdc3 {
++ regulator-min-microvolt = <700000>;
++ regulator-max-microvolt = <3500000>;
++ regulator-always-on;
++ };
++ };
++ };
++ };
++
++ i2c1: i2c at 01c2b000 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&i2c1_pins_a>;
++ status = "okay";
++ };
++
++ gmac: ethernet at 01c50000 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&gmac_pins_rgmii_a>;
++ phy = <&phy1>;
++ phy-mode = "rgmii";
++ 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-lime2: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";
++ };
++
++ reg_axp_ipsout: axp_ipsout {
++ compatible = "regulator-fixed";
++ regulator-name = "axp-ipsout";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ regulator-always-on;
++ };
++};
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch (from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch)
@@ -0,0 +1,39 @@
+From 1715a389949a4a3f03192268dfb3ac5710f2dd3c Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Mon, 30 Jun 2014 23:57:54 +0200
+Subject: ARM: dts: sun7i: Rename sun7i-a20-ir to sun4i-a10-ir
+Origin: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=1715a389949a4a3f03192268dfb3ac5710f2dd3c
+
+The sun7i block is the same as the one in the sun4i, rename the compatible
+to reflect this.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+
+--
+
+I've already included the matching change to sunxi-cir.c in my pull-req to
+Mauro.
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+
+Index: linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20.dtsi
+===================================================================
+--- linux-3.16.7-ckt7.orig/arch/arm/boot/dts/sun7i-a20.dtsi
++++ linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -800,7 +800,7 @@
+ };
+
+ ir0: ir at 01c21800 {
+- compatible = "allwinner,sun7i-a20-ir";
++ compatible = "allwinner,sun4i-a10-ir";
+ clocks = <&apb0_gates 6>, <&ir0_clk>;
+ clock-names = "apb", "ir";
+ interrupts = <0 5 4>;
+@@ -809,7 +809,7 @@
+ };
+
+ ir1: ir at 01c21c00 {
+- compatible = "allwinner,sun7i-a20-ir";
++ compatible = "allwinner,sun4i-a10-ir";
+ clocks = <&apb0_gates 7>, <&ir1_clk>;
+ clock-names = "apb", "ir";
+ interrupts = <0 6 4>;
Copied: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch (from r22440, dists/sid/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch Tue Apr 7 21:44:05 2015 (r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch)
@@ -0,0 +1,41 @@
+From c1a0ee3d5322d488c539e20d40db88b181628670 Mon Sep 17 00:00:00 2001
+From: Alexander Bersenev <bay at hackerdom.ru>
+Date: Sat, 21 Jun 2014 17:04:05 +0600
+Subject: ARM: sunxi: Add IR controllers on A20 to dtsi
+Origin: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=c1a0ee3d5322d488c539e20d40db88b181628670
+
+This patch adds records for two IR controllers on A20
+
+Signed-off-by: Alexander Bersenev <bay at hackerdom.ru>
+Signed-off-by: Alexsey Shestacov <wingrime at linux-sunxi.org>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+
+Index: linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20.dtsi
+===================================================================
+--- linux-3.16.7-ckt7.orig/arch/arm/boot/dts/sun7i-a20.dtsi
++++ linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -799,6 +799,24 @@
+ status = "disabled";
+ };
+
++ ir0: ir at 01c21800 {
++ compatible = "allwinner,sun7i-a20-ir";
++ clocks = <&apb0_gates 6>, <&ir0_clk>;
++ clock-names = "apb", "ir";
++ interrupts = <0 5 4>;
++ reg = <0x01c21800 0x40>;
++ status = "disabled";
++ };
++
++ ir1: ir at 01c21c00 {
++ compatible = "allwinner,sun7i-a20-ir";
++ clocks = <&apb0_gates 7>, <&ir1_clk>;
++ clock-names = "apb", "ir";
++ interrupts = <0 6 4>;
++ reg = <0x01c21c00 0x40>;
++ status = "disabled";
++ };
++
+ sid: eeprom at 01c23800 {
+ compatible = "allwinner,sun7i-a20-sid";
+ reg = <0x01c23800 0x200>;
Modified: dists/wheezy-backports/linux/debian/patches/features/x86/apple-tb/pci-suspend-resume-quirks-for-apple-thunderbolt.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/x86/apple-tb/pci-suspend-resume-quirks-for-apple-thunderbolt.patch Mon Apr 6 23:38:13 2015 (r22487)
+++ dists/wheezy-backports/linux/debian/patches/features/x86/apple-tb/pci-suspend-resume-quirks-for-apple-thunderbolt.patch Tue Apr 7 21:44:05 2015 (r22488)
@@ -30,9 +30,9 @@
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -3006,6 +3006,103 @@ DECLARE_PCI_FIXUP_HEADER(0x1814, 0x0601,
- DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_REALTEK, 0x8169,
- quirk_broken_intx_masking);
+@@ -3020,6 +3020,103 @@ static void quirk_no_bus_reset(struct pc
+ */
+ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0030, quirk_no_bus_reset);
+#ifdef CONFIG_ACPI
+/*
@@ -136,7 +136,7 @@
{
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
-@@ -1485,7 +1485,9 @@ enum pci_fixup_pass {
+@@ -1489,7 +1489,9 @@ enum pci_fixup_pass {
pci_fixup_resume, /* pci_device_resume() */
pci_fixup_suspend, /* pci_device_suspend() */
pci_fixup_resume_early, /* pci_device_resume_early() */
Modified: dists/wheezy-backports/linux/debian/patches/series
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/series Mon Apr 6 23:38:13 2015 (r22487)
+++ dists/wheezy-backports/linux/debian/patches/series Tue Apr 7 21:44:05 2015 (r22488)
@@ -45,6 +45,7 @@
debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch
debian/snd-pcsp-disable-autoload.patch
bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch
+debian/qxl-disable-modeset-by-default.patch
# Arch bug fixes
bugfix/arm/omap-musb-choice.patch
@@ -57,8 +58,14 @@
bugfix/parisc/parisc-reduce-sigrtmin-from-37-to-32-to-behave-like-.patch
bugfix/arm64/arm64-add-missing-dts-entry-for-X-Gene-platform.patch
bugfix/arm64/arm64-removed-using-of-the-mask-attribute-in-the-dts.patch
-bugfix/arm64/clocksource-arch_timer-Only-use-the-virtual-counter-.patch
bugfix/x86/acpi-video-run-_bcl-before-deciding-registering-back.patch
+bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch
+bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch
+bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch
+bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch
+bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch
+bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch
+bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch
# Arch features
features/mips/MIPS-Support-hard-limit-of-cpu-count-nr_cpu_ids.patch
@@ -108,6 +115,18 @@
features/arm/dts-sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME.patch
features/arm/dts-sun7i-Add-board-support-for-LinkSprite-pcDuino-V3.patch
features/arm/dts-sun7i-pcduino3-Relicense-the-device-tree-under-GPLv2-X11.patch
+features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch
+features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch
+features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch
+features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch
+features/arm/ARM-dts-sun4i-Add-simplefb-node.patch
+features/arm/ARM-dts-sun5i-Add-simplefb-node.patch
+features/arm/ARM-dts-sun6i-Add-simplefb-node.patch
+features/arm/ARM-dts-sun7i-Add-simplefb-node.patch
+features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch
+features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch
+features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch
+features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.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
@@ -154,9 +173,11 @@
bugfix/all/xen-netback-support-frontends-without-feature-rx-not.patch
bugfix/all/aufs-move-d_rcu-from-overlapping-d_child-to-overlapping-d.patch
bugfix/all/net-mv643xx-disable-tso-by-default.patch
-bugfix/all/Revert-swiotlb-xen-pass-dev_addr-to-swiotlb_tbl_unma.patch
bugfix/all/xen-balloon-cancel-ballooning-if-adding-new-memory-f.patch
bugfix/all/xen-balloon-Don-t-continue-ballooning-when-BP_ECANCE.patch
+bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch
+bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch
+bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch
# memfd_create() & kdbus backport
features/all/kdbus/mm-allow-drivers-to-prevent-new-writable-mappings.patch
@@ -174,6 +195,7 @@
features/all/kdbus/m68k-Wire-up-memfd_create.patch
features/all/kdbus/MIPS-Wire-up-new-syscalls-getrandom-and-memfd_create.patch
features/all/kdbus/powerpc-Wire-up-sys_seccomp-sys_getrandom-and-sys_me.patch
+features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch
# Miscellaneous features
features/all/efi-autoload-efivars.patch
@@ -189,6 +211,14 @@
features/all/of-add-optional-options-parameter-to-of_find_node_by.patch
features/all/of-support-passing-console-options-with-stdout-path.patch
features/all/efi-expose-underlying-uefi-firmware-platform-size-to.patch
+features/all/simplefb-formalize-pseudo-palette-handling.patch
+features/all/simplefb-add-goto-error-path-to-probe.patch
+features/all/simplefb-add-clock-handling-code.patch
+features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch
+features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch
+features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch
+features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch
+features/all/simplefb-Fix-build-failure-on-Sparc.patch
# Update r8723au to 3.17
features/all/r8723au/0001-staging-rtl8723au-rtw_get_wps_ie23a-Remove-unused-de.patch
@@ -482,6 +512,27 @@
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
+# Update arcmsr to 3.18
+features/all/arcmsr/0001-arcmsr-fix-command-timeout-under-heavy-load.patch
+features/all/arcmsr/0002-arcmsr-add-code-to-support-msi-x-and-msi-interrupt.patch
+features/all/arcmsr/0003-arcmsr-add-code-to-support-hibernation.patch
+features/all/arcmsr/0004-arcmsr-limit-max.-number-of-scsi-command-request.patch
+features/all/arcmsr/0005-arcmsr-return-status-of-abort-command.patch
+features/all/arcmsr/0006-arcmsr-store-adapter-type-in-pci-id-table.patch
+features/all/arcmsr/0007-arcmsr-revise-message_isr_bh_fn-to-remove-duplicate-.patch
+features/all/arcmsr/0008-arcmsr-remove-calling-arcmsr_hbb_enable_driver_mode.patch
+features/all/arcmsr/0009-arcmsr-modify-printing-adapter-model-number-and-f-w-.patch
+features/all/arcmsr/0010-arcmsr-clear-outbound-doorbell-buffer-completely.patch
+features/all/arcmsr/0011-arcmsr-rename-functions-and-variables.patch
+features/all/arcmsr/0012-arcmsr-revise-allocation-of-second-dma_coherent_hand.patch
+features/all/arcmsr/0013-arcmsr-fix-ioctl-data-read-write-error-for-adapter-t.patch
+features/all/arcmsr/0014-arcmsr-fix-sparse-warnings-and-errors.patch
+features/all/arcmsr/0015-arcmsr-modify-some-character-strings.patch
+features/all/arcmsr/0016-arcmsr-add-support-new-adapter-arc12x4-series.patch
+features/all/arcmsr/0017-arcmsr-call-scsi_scan_host-at-the-end-of-host-initia.patch
+features/all/arcmsr/0018-arcmsr-simplify-of-updating-doneq_index-and-postq_in.patch
+features/all/arcmsr/0019-arcmsr-simplify-ioctl-data-read-write.patch
+
# Fix ABI changes
debian/of-fix-abi-changes.patch
debian/iovec-fix-abi-change-in-3.16.7-ckt1.patch
@@ -491,14 +542,8 @@
debian/pci-fix-abi-change-in-3.16.7-ckt3.patch
debian/vfs-avoid-abi-change-for-dentry-union-changes.patch
debian/userns-fix-abi-change-in-3.16.7-ckt4.patch
-bugfix/all/netfilter-conntrack-disable-generic-tracking-for-kno.patch
-bugfix/x86/x86_64-vdso-fix-the-vdso-address-randomization-algor.patch
-bugfix/x86/x86-vdso-use-asm-volatile-in-__getcpu.patch
-bugfix/all/crypto-prefix-module-autoloading-with-crypto.patch
-bugfix/all/crypto-include-crypto-module-prefix-in-template.patch
-bugfix/all/crypto-add-missing-crypto-module-aliases.patch
-bugfix/x86/kvm-x86-sysenter-emulation-is-broken.patch
-bugfix/sh4/scripts-recordmcount.pl-there-is-no-m32-option-on-super-h.patch
-bugfix/x86/x86-tls-ldt-stop-checking-lm-in-ldt_empty.patch
-bugfix/x86/x86-tls-interpret-an-all-zero-struct-user_desc-as-no.patch
-bugfix/all/net-sctp-fix-slab-corruption-from-use-after-free-on-.patch
+debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch
+debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch
+debian/perf-fix-abi-change-in-3.16.7-ckt6.patch
+debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch
+debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch
More information about the Kernel-svn-changes
mailing list