aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Hutchings <benh@debian.org>2014-06-16 12:24:52 +0000
committerBen Hutchings <benh@debian.org>2014-06-16 12:24:52 +0000
commita50e53cccf15983094c416fc51991880e87d2d78 (patch)
tree87e3246c1cbfadcf11b66faf5e3f2287041844d3
parent88eeb109ecb9bfa1406d9a4e88ba7dbddf990a62 (diff)
parentf66cd3322f51b30a7c65e5dc2012f5af3f5ee01f (diff)
downloadkernel_replicant_linux-a50e53cccf15983094c416fc51991880e87d2d78.tar.gz
kernel_replicant_linux-a50e53cccf15983094c416fc51991880e87d2d78.tar.bz2
kernel_replicant_linux-a50e53cccf15983094c416fc51991880e87d2d78.zip
Merge changes from sid up to 3.14.7-1
Replace 'powerpc/powernv: Add calls to support little endian host' with the version committed upstream. Drop the ABI-preserving changes. svn path=/dists/trunk/linux/; revision=21452
-rw-r--r--debian/changelog238
-rw-r--r--debian/config/arm64/config11
-rw-r--r--debian/config/armel/config.ixp4xx6
-rw-r--r--debian/config/armel/config.kirkwood6
-rw-r--r--debian/config/armel/config.mv78xx06
-rw-r--r--debian/config/armel/config.orion5x6
-rw-r--r--debian/config/armhf/config.armmp1
-rw-r--r--debian/config/config2
-rw-r--r--debian/config/featureset-rt/config5
-rw-r--r--debian/config/kernelarch-arm/config6
-rw-r--r--debian/config/kernelarch-powerpc/config-arch-6486
-rw-r--r--debian/config/kernelarch-powerpc/config-arch-64-be96
-rw-r--r--debian/config/kernelarch-powerpc/config-arch-64-le34
-rw-r--r--debian/config/kernelarch-x86/config1
-rw-r--r--debian/config/mips/config.4kc-malta5
-rw-r--r--debian/config/mips/config.5kc-malta5
-rw-r--r--debian/config/mips/config.octeon1
-rw-r--r--debian/config/powerpc/defines2
-rw-r--r--debian/config/ppc64/defines2
-rw-r--r--debian/config/ppc64el/defines18
-rw-r--r--debian/installer/arm64/modules/arm64/nic-modules1
-rw-r--r--debian/installer/arm64/modules/arm64/scsi-modules4
-rw-r--r--debian/installer/modules/virtio-modules1
-rw-r--r--debian/installer/ppc64el/kernel-versions2
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/ata-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/btrfs-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/cdrom-core-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/core-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/crc-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/crypto-dm-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/crypto-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/event-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/ext4-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/fancontrol-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/fat-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/firewire-core-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/fuse-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/hypervisor-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/input-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/isofs-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/jfs-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/kernel-image1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/loop-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/md-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/mouse-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/multipath-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/nbd-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/nic-modules5
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/nic-shared-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/ppp-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/sata-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/scsi-common-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/scsi-core-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/scsi-extra-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/scsi-modules3
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/serial-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/squashfs-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/udf-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/uinput-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/usb-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/usb-serial-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/usb-storage-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/virtio-modules1
-rw-r--r--debian/installer/ppc64el/modules/ppc64el/xfs-modules1
l---------debian/installer/ppc64el/package-list1
-rw-r--r--debian/patches/bugfix/all/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch33
-rw-r--r--debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch80
-rw-r--r--debian/patches/bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch191
-rw-r--r--debian/patches/bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch105
-rw-r--r--debian/patches/debian/ppc64el-disable-zImage.patch49
-rw-r--r--debian/patches/series6
-rw-r--r--debian/templates/image.plain.bug/include-model2
72 files changed, 944 insertions, 114 deletions
diff --git a/debian/changelog b/debian/changelog
index 126ca85e391d..d8d641354a37 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -60,6 +60,244 @@ linux (3.15~rc5-1~exp1) experimental; urgency=medium
-- maximilian attems <maks@debian.org> Fri, 16 May 2014 14:33:57 +0200
+linux (3.14.7-1) unstable; urgency=medium
+
+ * New upstream stable update:
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.6
+ - [mipsel] loongson2_cpufreq: Fix CPU clock rate setting
+ (regression in 3.14)
+ - rtmutex: Fix deadlock detector for real
+ - kernfs: add back missing error check in kernfs_fop_mmap()
+ (regression in 3.14)
+ - coredump: fix va_list corruption (regression in 3.11)
+ - mm: make fixup_user_fault() check the vma access rights too
+ - serial: 8250: Fix thread unsafe __dma_tx_complete function
+ - 8250_core: Fix unwanted TX chars write
+ - iwlwifi: 7000: bump API to 9
+ - timer: Prevent overflow in apply_slack
+ - cfg80211: free sme on connection failures (regression in 3.11)
+ - cfg80211: add cfg80211_sched_scan_stopped_rtnl (regression in 3.14)
+ - mac80211: fix nested rtnl locking on ieee80211_reconfig
+ (regression in 3.14)
+ - mm, thp: close race between mremap() and split_huge_page()
+ - [x86] mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow()
+ - hwpoison, hugetlb: lock_page/unlock_page does not match for handling a
+ free hugepage
+ - iwlwifi: mvm: delay enabling smart FIFO until after beacon RX
+ (regression in 3.14)
+ - aio: fix potential leak in aio_run_iocb().
+ - Revert "hwmon: (coretemp) Refine TjMax detection"
+ - hrtimer: Prevent remote enqueue of leftmost timers
+ - hrtimer: Set expiry time before switch_hrtimer_base()
+ - dm verity: fix biovecs hash calculation regression (regression in 3.14)
+ - dm cache: fix writethrough mode quiescing in cache_map
+ (regression in 3.13)
+ - md/raid10: call wait_barrier() for each request submitted.
+ (regression in 3.14)
+ - PNP / ACPI: Do not return errors if _DIS or _SRS are not present
+ (regression in 3.14)
+ - ACPI / EC: Process rather than discard events in acpi_ec_clear
+ (regression in 3.13.7, 3.14)
+ - irqchip: armada-370-xp: fix invalid cast of signed value into unsigned
+ variable (regression in 3.13)
+ - irqchip: armada-370-xp: implement the ->check_device() msi_chip
+ operation (regression in 3.13)
+ - irqchip: armada-370-xp: Fix releasing of MSIs (regression in 3.13)
+ - [x86] drm/i915: Allow user modes to exceed DVI 165MHz limit
+ (regression in 3.14)
+ - [x86] drm/i915: Don't check gmch state on inherited configs
+ (regression in 3.13?)
+ - [x86] drm/i915: Don't WARN nor handle unexpected hpd interrupts on gmch
+ platforms (regression in 3.13)
+ - [x86] drm/radeon: fix runpm handling on APUs (v4) (regression in 3.13)
+ - drm/radeon: disable mclk dpm on R7 260X (regression in 3.14)
+ - drm/radeon: add support for newer mc ucode on SI (v2)
+ - drm/radeon: add support for newer mc ucode on CI (v2)
+ - drm/radeon: re-enable mclk dpm on R7 260X asics
+ - drm/radeon/uvd: use lower clocks on old UVD to boot v2
+ (regression in 3.13)
+ - drm/radeon: check buffer relocation offset
+ - USB: Nokia 305 should be treated as unusual dev
+ - USB: Nokia 5300 should be treated as unusual dev
+ - Revert "Bluetooth: Enable autosuspend for Intel Bluetooth device"
+ (regression in 3.14)
+ - posix_acl: handle NULL ACL in posix_acl_equiv_mode
+ - fs/affs/super.c: bugfix / double free (regression in 3.14)
+ - [armel/orion5x] fix target ID for crypto SRAM window
+ (regression in 3.12)
+ - [armel/kirkwood]: dts: fix mislocated pcie-controller nodes
+ (regression in 3.12)
+ - [armhf/armmp-lpae] 8012/1: kdump: Avoid overflow when converting pfn to
+ physaddr
+ - drm/nouveau: fix another lock unbalance in nouveau_crtc_page_flip
+ (regression in 3.11)
+ - drm/i915/vlv: reset VLV media force wake request register
+ (regression in 3.14?)
+ - i40e: potential array underflow in i40e_vc_process_vf_msg()
+ - igb: Fix Null-pointer dereference in igb_reset_q_vector
+ (regression in 3.14)
+ - igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only
+ (regression in 3.14)
+ - leds: leds-pwm: properly clean up after probe failure
+ - device_cgroup: rework device access check and exception checking
+ - device_cgroup: check if exception removal is allowed
+ - media: media-device: fix infoleak in ioctl media_enum_entities()
+ (CVE-2014-1739)
+ - Input: Add INPUT_PROP_TOPBUTTONPAD device property
+ - Input: synaptics - report INPUT_PROP_TOPBUTTONPAD property
+ - e1000e: Fix no connectivity when driver loaded with cable out
+ (regression in 3.12)
+ - autofs: fix lockref lookup
+ - vfs: fix races between __d_instantiate() and checks of dentry flags
+ - ALSA: hda - hdmi: Set converter channel count even without sink
+ (regression in 3.13)
+ - NFSd: Move default initialisers from create_client() to alloc_client()
+ - NFSd: call rpc_destroy_wait_queue() from free_client()
+ - NFSD: Call ->set_acl with a NULL ACL structure if no entries
+ - nfsd4: remove lockowner when removing lock stateid
+ - workqueue: fix bugs in wq_update_unbound_numa() failure path
+ - workqueue: fix a possible race condition between rescuer and pwq-release
+ - [arm] mvebu: mvebu-soc-id: add missing clk_put() call
+ (regression in 3.14)
+ - [arm] mvebu: mvebu-soc-id: keep clock enabled if PCIe unit is enabled
+ (regression in 3.14)
+ - ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets()
+ (regression in 3.14)
+ - [hppa] ratelimit userspace segfault printing
+ - [amd64] modify_ldt: Make support for 16-bit segments a runtime option
+ - sysfs: make sure read buffer is zeroed (possible regression in 3.13)
+ - Target/iser: Fix wrong connection requests list addition
+ - Target/iser: Fix iscsit_accept_np and rdma_cm racy flow
+ - iscsi-target: Change BUG_ON to REJECT in iscsit_process_nop_out
+ (regression in 3.11)
+ - target: fix memory leak on XCOPY
+ - [x86] drm/i915: Disable self-refresh for untiled fbs on i915gm
+ (regression in 3.14)
+ - [x86] drm/i915: move power domain init earlier during system resume
+ (regression in 3.14?)
+ - [x86] drm/i915: Fix unsafe loop iteration over vma whilst unbinding them
+ (regression in 3.12)
+ - iwlwifi: mvm: BT Coex - fix Look Up Table (regression in 3.13)
+ - PCI: Wrong register used to check pending traffic (regression in 3.14)
+ - dm crypt: fix cpu hotplug crash by removing per-cpu structure
+ - dm thin: allow metadata commit if pool is in PM_OUT_OF_DATA_SPACE mode
+ (regression in 3.14)
+ - dm thin: add timeout to stop out-of-data-space mode holding IO forever
+ - dmaengine: fix dmaengine_unmap failure
+ - dma: mv_xor: Flush descriptors before activating a channel
+ - tcm_fc: Fix free-after-use regression in ft_free_cmd
+ (regression in 3.13)
+ - ACPICA: Tables: Restore old behavor to favor 32-bit FADT addresses.
+ (regression in 3.14)
+ - ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c"
+ (regression in 3.13)
+ - ACPI: Revert "ACPI / Battery: Remove battery's proc directory"
+ (regression in 3.13)
+ - [x86] ACPI / video: Add use_native_backlight quirks for more systems
+ - ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus"
+ (regression in 3.13)
+ - [x86] ACPI / TPM: Fix resume regression on Chromebooks
+ (regression in 3.14)
+ - i2c: s3c2410: resume race fix
+ - [x86] intel_pstate: Set turbo VID for BayTrail
+ - [s390] crypto: fix aes,des ctr mode concurrency finding.
+ - clk: Fix double free due to devm_clk_register()
+ - clk: Fix slab corruption in clk_unregister()
+ - [powerpc] powernv: Reset root port in firmware (regression in 3.14)
+ - [powerpc] irq work racing with timer interrupt can result in timer
+ interrupt hang (regression in 3.14)
+ - [powerpc] kexec: Fix "Processor X is stuck" issue during kexec from ST
+ mode (regression in 3.13)
+ - spi: core: Ignore unsupported Dual/Quad Transfer Mode bits
+ (regression in 3.12)
+ - libceph: fix corruption when using page_count 0 page in rbd
+ - media: V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel
+ from user-space
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.7
+ - perf: Limit perf_event_attr::sample_period to 63 bits
+ - perf: Fix race in removing an event
+ - SCSI: scsi_transport_sas: move bsg destructor into sas_rphy_remove
+ (regression in 3.13)
+ - [arm] 8051/1: put_user: fix possible data corruption in put_user
+ - [arm] 8064/1: fix v7-M signal return (regression in 3.11)
+ - cpufreq: remove race while accessing cur_policy
+ - firewire: revert to 4 GB RDMA, fix protocols using Memory Space
+ (regression in 3.14)
+ - [mips] Fix typo when reporting cache and ftlb errors for ImgTec cores
+ (regression in 3.14)
+ - dm cache: always split discards on cache block boundaries
+ - virtio_blk: fix race between start and stop queue
+ - sched/deadline: Restrict user params max value to 2^63 ns
+ - sched/dl: Fix race in dl_task_timer()
+ - drm/radeon: avoid crash if VM command submission isn't available
+ - [x86] drm/i915: Only copy back the modified fields to userspace from
+ execbuffer
+ - drm/radeon/dpm: resume fixes for some systems (regression in 3.14)
+ - libata: Blacklist queued trim for Crucial M500 (regression in 3.14.4)
+ - md: always set MD_RECOVERY_INTR when aborting a reshape or other
+ "resync".
+ - md: always set MD_RECOVERY_INTR when interrupting a reshape thread.
+ (regression in 3.12.9, 3.13)
+ - xhci: delete endpoints from bandwidth list before freeing whole device
+ - staging: comedi: ni_daq_700: add mux settling delay
+ - staging: r8192e_pci: fix htons error (regression in 3.14)
+ - ALSA: hda/analog - Fix silent output on ASUS A8JN (regression in 3.12)
+ - USB: io_ti: fix firmware download on big-endian machines (part 2)
+ - usb: pci-quirks: Prevent Sony VAIO t-series from switching usb ports
+ (regression in 3.12)
+ - percpu-refcount: fix usage of this_cpu_ops
+ - [x86] intel_pstate: Remove C0 tracking (regression in 3.14)
+ - [x86] intel_pstate: Correct rounding in busy calculation
+ (regression in 3.14)
+ - [x86] intel_pstate: add sample time scaling
+ - [x86] intel_pstate: Improve initial busy calculation
+ - mm: add !pte_present() check on existing hugetlb_entry callbacks
+ (CVE-2014-3940)
+ - mm: rmap: fix use-after-free in __put_anon_vma
+ - iser-target: Add missing target_put_sess_cmd for ImmedateData failure
+ - iscsi-target: Fix wrong buffer / buffer overrun in
+ iscsi_change_param_value()
+ - target: Fix alua_access_state attribute OOPs for un-configured devices
+ - netfilter: Fix potential use after free in ip6_route_me_harder()
+ - netfilter: nfnetlink: Fix use after free when it fails to process batch
+ - [x86] iommu/vt-d: Fix missing IOTLB flush in intel_iommu_unmap()
+
+ [ Ian Campbell ]
+ * [armhf] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742)
+ * [arm64] Update modules included in installer udebs.
+ * Include virtio_mmio in virtio-modules udeb when available.
+
+ [ Aurelien Jarno ]
+ * topconfig: Enable modular HW_RANDOM.
+ * [kernelarch-powerpc] Remove HW_RANDOM.
+ * [kernelarch-x86] Remove HW_RANDOM.
+ * [mips/4kc-malta] Remove HW_RANDOM.
+ * [mips/5kc-malta] Remove HW_RANDOM.
+ * [mips/octeon] Remove HW_RANDOM.
+ * [arm64] Enable modular RTC_DRV_PL031.
+
+ [ Ben Hutchings ]
+ * [ppc64el] Add kernel image, thanks to Mauricio Faria de Oliveira:
+ - Split common/big-endian powerpc64 options
+ - Add little-endian powerpc64 options
+ - Temporarily disable zImage
+ - powerpc/powernv: Add calls to support little endian host
+ - Add 'ppc64le' (uname output) to bug/include-model script
+ - udeb: Add packages based on ppc64 configuration
+ * netfilter: ipv4: defrag: set local_df flag on defragmented skb
+ (regression in 3.14.5)
+ * [mips] seccomp: Check system calls whenever seccomp is enabled,
+ even if audit and trace are disabled (Closes: #751417)
+ * auditsc: audit_krule mask accesses need bounds checking (CVE-2014-3917)
+ * fs,userns: Change inode_capable to capable_wrt_inode_uidgid
+ (CVE-2014-4014)
+ * SCSI: Fix spurious request sense in error handling (regression in 3.14)
+ * PCI/MSI: Fix memory leak in free_msi_irqs() (regression in 3.14)
+ * [rt] hrtimer: Disable MISSED_TIMER_OFFSETS_HIST as it will currently
+ result in a panic
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 16 Jun 2014 09:51:49 +0100
+
linux (3.14.5-1) unstable; urgency=high
* New upstream stable update:
diff --git a/debian/config/arm64/config b/debian/config/arm64/config
index 877106627e84..94d894b7fb31 100644
--- a/debian/config/arm64/config
+++ b/debian/config/arm64/config
@@ -7,6 +7,12 @@ CONFIG_SMP=y
CONFIG_XEN=y
##
+## file: drivers/input/misc/Kconfig
+##
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_UINPUT=m
+
+##
## file: drivers/mmc/Kconfig
##
CONFIG_MMC=y
@@ -47,6 +53,11 @@ CONFIG_POWER_RESET_VEXPRESS=y
CONFIG_POWER_RESET_XGENE=y
##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_PL031=m
+
+##
## file: drivers/tty/serial/Kconfig
##
CONFIG_SERIAL_AMBA_PL010=y
diff --git a/debian/config/armel/config.ixp4xx b/debian/config/armel/config.ixp4xx
index 9a9db1dbf3c7..0708096cda52 100644
--- a/debian/config/armel/config.ixp4xx
+++ b/debian/config/armel/config.ixp4xx
@@ -785,3 +785,9 @@ CONFIG_SND_PCXHR=m
##
# CONFIG_SND_HDA_INTEL is not set
+##
+## file: drivers/virtio/Kconfig
+##
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_BALLOON is not set
+
diff --git a/debian/config/armel/config.kirkwood b/debian/config/armel/config.kirkwood
index bc9800a989bd..c183e2fec5c3 100644
--- a/debian/config/armel/config.kirkwood
+++ b/debian/config/armel/config.kirkwood
@@ -690,6 +690,12 @@ CONFIG_SND_KIRKWOOD_SOC_OPENRD=m
CONFIG_SND_KIRKWOOD_SOC_T5325=m
##
+## file: drivers/virtio/Kconfig
+##
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_BALLOON is not set
+
+##
## file: unknown
##
#. This is replaced by CONFIG_MACH_DB88F628X_BP_DT but we don't use DT here yet
diff --git a/debian/config/armel/config.mv78xx0 b/debian/config/armel/config.mv78xx0
index b7cfb981f5f8..bdbac762f992 100644
--- a/debian/config/armel/config.mv78xx0
+++ b/debian/config/armel/config.mv78xx0
@@ -544,3 +544,9 @@ CONFIG_AX25=m
CONFIG_NETROM=m
CONFIG_ROSE=m
+##
+## file: drivers/virtio/Kconfig
+##
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_BALLOON is not set
+
diff --git a/debian/config/armel/config.orion5x b/debian/config/armel/config.orion5x
index 06726aad2448..305c5c7971a4 100644
--- a/debian/config/armel/config.orion5x
+++ b/debian/config/armel/config.orion5x
@@ -566,6 +566,12 @@ CONFIG_NETROM=m
CONFIG_ROSE=m
##
+## file: drivers/virtio/Kconfig
+##
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_BALLOON is not set
+
+##
## file: unknown
##
#. This is replaced by CONFIG_MACH_EDMINI_V2_DT but we don't use DT here yet
diff --git a/debian/config/armhf/config.armmp b/debian/config/armhf/config.armmp
index 8a704d3536ee..d1b54014230e 100644
--- a/debian/config/armhf/config.armmp
+++ b/debian/config/armhf/config.armmp
@@ -138,7 +138,6 @@ CONFIG_OMAP_INTERCONNECT=m
##
## file: drivers/char/hw_random/Kconfig
##
-CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_OMAP=m
##
diff --git a/debian/config/config b/debian/config/config
index 48d19737c0da..a2007143051b 100644
--- a/debian/config/config
+++ b/debian/config/config
@@ -335,7 +335,7 @@ CONFIG_TELCLOCK=m
##
## file: drivers/char/hw_random/Kconfig
##
-# CONFIG_HW_RANDOM is not set
+CONFIG_HW_RANDOM=m
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM_TPM=m
diff --git a/debian/config/featureset-rt/config b/debian/config/featureset-rt/config
index 247fe31b60e5..1610bdc4989a 100644
--- a/debian/config/featureset-rt/config
+++ b/debian/config/featureset-rt/config
@@ -1,7 +1,10 @@
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT_RT_FULL=y
CONFIG_SCHED_TRACER=y
-CONFIG_MISSED_TIMER_OFFSETS_HIST=y
+#. This option is broken after commit 84ea7fe37908
+#. ('hrtimer: Set expiry time before switch_hrtimer_base()') but should be
+#. enabled when this is resolved
+# CONFIG_MISSED_TIMER_OFFSETS_HIST is not set
CONFIG_WAKEUP_LATENCY_HIST=y
## disable aufs as it's not needed on rt and conflicts with fs-dentry-use-seqlock.patch
diff --git a/debian/config/kernelarch-arm/config b/debian/config/kernelarch-arm/config
index 8dca5ef817ed..99ac4908bcf9 100644
--- a/debian/config/kernelarch-arm/config
+++ b/debian/config/kernelarch-arm/config
@@ -108,12 +108,6 @@ CONFIG_THERMAL=y
CONFIG_CPU_THERMAL=y
##
-## file: drivers/virtio/Kconfig
-##
-# CONFIG_VIRTIO_PCI is not set
-# CONFIG_VIRTIO_BALLOON is not set
-
-##
## file: lib/xz/Kconfig
##
CONFIG_XZ_DEC_ARM=y
diff --git a/debian/config/kernelarch-powerpc/config-arch-64 b/debian/config/kernelarch-powerpc/config-arch-64
index 269ddb03c820..0748ce68e4fc 100644
--- a/debian/config/kernelarch-powerpc/config-arch-64
+++ b/debian/config/kernelarch-powerpc/config-arch-64
@@ -10,6 +10,7 @@ CONFIG_NUMA=y
CONFIG_SCHED_SMT=y
CONFIG_CMDLINE="console=hvsi0 console=hvc0 console=ttyS0,9600 console=tty0"
CONFIG_KERNEL_START=0xc000000000000000
+CONFIG_PPC_TRANSACTIONAL_MEM=y
##
## file: arch/powerpc/platforms/Kconfig
@@ -19,49 +20,12 @@ CONFIG_RTAS_FLASH=m
CONFIG_IBMEBUS=y
##
-## file: arch/powerpc/platforms/cell/Kconfig
-##
-CONFIG_PPC_IBM_CELL_BLADE=y
-# CONFIG_PPC_CELLEB is not set
-CONFIG_SPU_FS=m
-CONFIG_SPU_FS_64K_LS=y
-CONFIG_CBE_RAS=y
-CONFIG_CBE_THERM=m
-
-##
## file: arch/powerpc/platforms/Kconfig.cputype
##
CONFIG_PPC64=y
# CONFIG_TUNE_CELL is not set
CONFIG_ALTIVEC=y
CONFIG_SMP=y
-CONFIG_NR_CPUS=32
-
-##
-## file: arch/powerpc/platforms/maple/Kconfig
-##
-CONFIG_PPC_MAPLE=y
-
-##
-## file: arch/powerpc/platforms/pasemi/Kconfig
-##
-CONFIG_PPC_PASEMI=y
-CONFIG_PPC_PASEMI_MDIO=m
-
-##
-## file: arch/powerpc/platforms/ps3/Kconfig
-##
-CONFIG_PPC_PS3=y
-CONFIG_PS3_ADVANCED=y
-CONFIG_PS3_HTAB_SIZE=20
-# CONFIG_PS3_DYNAMIC_DMA is not set
-CONFIG_PS3_PS3AV=y
-CONFIG_PS3_SYS_MANAGER=y
-CONFIG_PS3_DISK=m
-CONFIG_PS3_ROM=m
-CONFIG_PS3_FLASH=m
-CONFIG_PS3_VRAM=m
-CONFIG_PS3_LPM=m
##
## file: arch/powerpc/platforms/pseries/Kconfig
@@ -90,29 +54,6 @@ CONFIG_BLK_DEV_RSXX=m
##
## file: drivers/char/hw_random/Kconfig
##
-CONFIG_HW_RANDOM=m
-CONFIG_HW_RANDOM_PASEMI=m
-
-##
-## file: drivers/cpufreq/Kconfig.powerpc
-##
-CONFIG_CPU_FREQ_CBE=m
-CONFIG_CPU_FREQ_PMAC64=y
-#. It's a bool
-CONFIG_PPC_PASEMI_CPUFREQ=y
-
-##
-## file: drivers/i2c/busses/Kconfig
-##
-CONFIG_I2C_PASEMI=m
-
-##
-## file: drivers/macintosh/Kconfig
-##
-CONFIG_WINDFARM=m
-CONFIG_WINDFARM_PM81=m
-CONFIG_WINDFARM_PM91=m
-CONFIG_WINDFARM_PM112=m
##
## file: drivers/net/ethernet/ibm/Kconfig
@@ -137,28 +78,11 @@ CONFIG_IBM_EMAC_RX_SKB_HEADROOM=0
# CONFIG_MV643XX_ETH is not set
##
-## file: drivers/net/ethernet/pasemi/Kconfig
-##
-CONFIG_PASEMI_MAC=m
-
-##
-## file: drivers/net/ethernet/toshiba/Kconfig
-##
-CONFIG_GELIC_NET=m
-CONFIG_GELIC_WIRELESS=y
-CONFIG_SPIDER_NET=m
-
-##
## file: drivers/pci/hotplug/Kconfig
##
# CONFIG_HOTPLUG_PCI is not set
##
-## file: drivers/rtc/Kconfig
-##
-CONFIG_RTC_DRV_PS3=m
-
-##
## file: drivers/scsi/Kconfig
##
CONFIG_SCSI_IBMVSCSI=m
@@ -189,8 +113,6 @@ CONFIG_HVCS=m
# CONFIG_FB_VALKYRIE is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_ATY128 is not set
-CONFIG_FB_PS3=y
-CONFIG_FB_PS3_DEFAULT_SIZE_M=9
##
## file: drivers/watchdog/Kconfig
@@ -207,9 +129,3 @@ CONFIG_SPARSEMEM_MANUAL=y
## end choice
CONFIG_SPARSEMEM_VMEMMAP=y
-##
-## file: sound/ppc/Kconfig
-##
-CONFIG_SND_PS3=m
-CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
-
diff --git a/debian/config/kernelarch-powerpc/config-arch-64-be b/debian/config/kernelarch-powerpc/config-arch-64-be
new file mode 100644
index 000000000000..486c347b3a08
--- /dev/null
+++ b/debian/config/kernelarch-powerpc/config-arch-64-be
@@ -0,0 +1,96 @@
+##
+## file: arch/powerpc/platforms/Kconfig.cputype
+##
+CONFIG_NR_CPUS=32
+
+##
+## file: arch/powerpc/platforms/cell/Kconfig
+##
+CONFIG_PPC_IBM_CELL_BLADE=y
+# CONFIG_PPC_CELLEB is not set
+CONFIG_SPU_FS=m
+CONFIG_SPU_FS_64K_LS=y
+CONFIG_CBE_RAS=y
+CONFIG_CBE_THERM=m
+
+##
+## file: arch/powerpc/platforms/maple/Kconfig
+##
+CONFIG_PPC_MAPLE=y
+
+##
+## file: arch/powerpc/platforms/pasemi/Kconfig
+##
+CONFIG_PPC_PASEMI=y
+CONFIG_PPC_PASEMI_MDIO=m
+
+##
+## file: arch/powerpc/platforms/ps3/Kconfig
+##
+CONFIG_PPC_PS3=y
+CONFIG_PS3_ADVANCED=y
+CONFIG_PS3_HTAB_SIZE=20
+# CONFIG_PS3_DYNAMIC_DMA is not set
+CONFIG_PS3_PS3AV=y
+CONFIG_PS3_SYS_MANAGER=y
+CONFIG_PS3_DISK=m
+CONFIG_PS3_ROM=m
+CONFIG_PS3_FLASH=m
+CONFIG_PS3_VRAM=m
+CONFIG_PS3_LPM=m
+
+##
+## file: drivers/char/hw_random/Kconfig
+##
+CONFIG_HW_RANDOM_PASEMI=m
+
+##
+## file: drivers/cpufreq/Kconfig.powerpc
+##
+CONFIG_CPU_FREQ_CBE=m
+CONFIG_CPU_FREQ_PMAC64=y
+#. It's a bool
+CONFIG_PPC_PASEMI_CPUFREQ=y
+
+##
+## file: drivers/i2c/busses/Kconfig
+##
+CONFIG_I2C_PASEMI=m
+
+##
+## file: drivers/macintosh/Kconfig
+##
+CONFIG_WINDFARM=m
+CONFIG_WINDFARM_PM81=m
+CONFIG_WINDFARM_PM91=m
+CONFIG_WINDFARM_PM112=m
+
+##
+## file: drivers/net/ethernet/pasemi/Kconfig
+##
+CONFIG_PASEMI_MAC=m
+
+##
+## file: drivers/net/ethernet/toshiba/Kconfig
+##
+CONFIG_GELIC_NET=m
+CONFIG_GELIC_WIRELESS=y
+CONFIG_SPIDER_NET=m
+
+##
+## file: drivers/rtc/Kconfig
+##
+CONFIG_RTC_DRV_PS3=m
+
+##
+## file: drivers/video/Kconfig
+##
+CONFIG_FB_PS3=y
+CONFIG_FB_PS3_DEFAULT_SIZE_M=9
+
+##
+## file: sound/ppc/Kconfig
+##
+CONFIG_SND_PS3=m
+CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
+
diff --git a/debian/config/kernelarch-powerpc/config-arch-64-le b/debian/config/kernelarch-powerpc/config-arch-64-le
new file mode 100644
index 000000000000..367001a0bfad
--- /dev/null
+++ b/debian/config/kernelarch-powerpc/config-arch-64-le
@@ -0,0 +1,34 @@
+##
+## file: arch/powerpc/Kconfig
+##
+## choice: Page size
+# CONFIG_PPC_4K_PAGES is not set
+CONFIG_PPC_64K_PAGES=y
+## end choice
+
+##
+## file: arch/powerpc/platforms/Kconfig.cputype
+##
+## choice: Endianness selection
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+## end choice
+CONFIG_NR_CPUS=2048
+
+##
+## file: arch/powerpc/platforms/powermac/Kconfig
+##
+#. This needs to be explicitly disabled currently (3.15)
+# CONFIG_PPC_PMAC is not set
+
+##
+## file: drivers/cpufreq/Kconfig
+##
+## choice: Default CPUFreq governor
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+## end choice
+
diff --git a/debian/config/kernelarch-x86/config b/debian/config/kernelarch-x86/config
index 234d65d08d05..812a5398ee72 100644
--- a/debian/config/kernelarch-x86/config
+++ b/debian/config/kernelarch-x86/config
@@ -310,7 +310,6 @@ CONFIG_AGP_VIA=y
##
## file: drivers/char/hw_random/Kconfig
##
-CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_GEODE=m
diff --git a/debian/config/mips/config.4kc-malta b/debian/config/mips/config.4kc-malta
index 3410aace949b..b3cc474d3737 100644
--- a/debian/config/mips/config.4kc-malta
+++ b/debian/config/mips/config.4kc-malta
@@ -167,11 +167,6 @@ CONFIG_R3964=m
CONFIG_APPLICOM=m
##
-## file: drivers/char/hw_random/Kconfig
-##
-CONFIG_HW_RANDOM=m
-
-##
## file: drivers/char/ipmi/Kconfig
##
CONFIG_IPMI_HANDLER=m
diff --git a/debian/config/mips/config.5kc-malta b/debian/config/mips/config.5kc-malta
index 83a35a092285..70bda5b9dfac 100644
--- a/debian/config/mips/config.5kc-malta
+++ b/debian/config/mips/config.5kc-malta
@@ -170,11 +170,6 @@ CONFIG_R3964=m
CONFIG_APPLICOM=m
##
-## file: drivers/char/hw_random/Kconfig
-##
-CONFIG_HW_RANDOM=m
-
-##
## file: drivers/char/ipmi/Kconfig
##
CONFIG_IPMI_HANDLER=m
diff --git a/debian/config/mips/config.octeon b/debian/config/mips/config.octeon
index da9b9f1f93ee..f0273903f5a8 100644
--- a/debian/config/mips/config.octeon
+++ b/debian/config/mips/config.octeon
@@ -37,7 +37,6 @@ CONFIG_PATA_OCTEON_CF=y
##
## file: drivers/char/hw_random/Kconfig
##
-CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_OCTEON=m
##
diff --git a/debian/config/powerpc/defines b/debian/config/powerpc/defines
index 32fbcf74d2db..53c8d89ffd49 100644
--- a/debian/config/powerpc/defines
+++ b/debian/config/powerpc/defines
@@ -30,4 +30,4 @@ configs: powerpc/config.powerpc powerpc/config.powerpc-smp
hardware: 64-bit PowerPC
[powerpc64_image]
-configs: kernelarch-powerpc/config-arch-64
+configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-be
diff --git a/debian/config/ppc64/defines b/debian/config/ppc64/defines
index 3f0afd9e5d74..dd85eb03911a 100644
--- a/debian/config/ppc64/defines
+++ b/debian/config/ppc64/defines
@@ -19,4 +19,4 @@ gcc-4.8: gcc-4.8 (>= 4.8.2-21)
hardware: 64-bit PowerPC
[powerpc64_image]
-configs: kernelarch-powerpc/config-arch-64
+configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-be
diff --git a/debian/config/ppc64el/defines b/debian/config/ppc64el/defines
index 11fd73a97782..b5ec5ed6739d 100644
--- a/debian/config/ppc64el/defines
+++ b/debian/config/ppc64el/defines
@@ -1,4 +1,18 @@
[base]
+flavours:
+ powerpc64le
kernel-arch: powerpc
-featuresets:
-# empty
+
+[build]
+image-file: vmlinux
+
+[image]
+configs:
+suggests: mkvmlinuz
+install-stem: vmlinux
+
+[powerpc64le_description]
+hardware: Little-endian 64-bit PowerPC
+
+[powerpc64le_image]
+configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-le
diff --git a/debian/installer/arm64/modules/arm64/nic-modules b/debian/installer/arm64/modules/arm64/nic-modules
index a530f19fd917..83a95ea841cc 100644
--- a/debian/installer/arm64/modules/arm64/nic-modules
+++ b/debian/installer/arm64/modules/arm64/nic-modules
@@ -1,3 +1,2 @@
-#include <nic-modules>
smc91x
smsc911x
diff --git a/debian/installer/arm64/modules/arm64/scsi-modules b/debian/installer/arm64/modules/arm64/scsi-modules
index 675462a141fa..fa172f59fec6 100644
--- a/debian/installer/arm64/modules/arm64/scsi-modules
+++ b/debian/installer/arm64/modules/arm64/scsi-modules
@@ -1,2 +1,2 @@
-#include <scsi-modules>
-
+sg
+xen-blkfront
diff --git a/debian/installer/modules/virtio-modules b/debian/installer/modules/virtio-modules
index 04ae7e89b2d9..01c6997e8365 100644
--- a/debian/installer/modules/virtio-modules
+++ b/debian/installer/modules/virtio-modules
@@ -5,3 +5,4 @@ virtio_scsi
# Some architectures do not have PCI bus
virtio_pci ?
+virtio_mmio ?
diff --git a/debian/installer/ppc64el/kernel-versions b/debian/installer/ppc64el/kernel-versions
new file mode 100644
index 000000000000..5f0d460d3eb3
--- /dev/null
+++ b/debian/installer/ppc64el/kernel-versions
@@ -0,0 +1,2 @@
+# arch version flavour installedname suffix build-depends
+ppc64el - powerpc64le - - -
diff --git a/debian/installer/ppc64el/modules/ppc64el/ata-modules b/debian/installer/ppc64el/modules/ppc64el/ata-modules
new file mode 100644
index 000000000000..77a471d2f780
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/ata-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/ata-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/btrfs-modules b/debian/installer/ppc64el/modules/ppc64el/btrfs-modules
new file mode 100644
index 000000000000..4ab00bed8c25
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/btrfs-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/btrfs-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/cdrom-core-modules b/debian/installer/ppc64el/modules/ppc64el/cdrom-core-modules
new file mode 100644
index 000000000000..ab06dbd9b92b
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/cdrom-core-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/cdrom-core-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/core-modules b/debian/installer/ppc64el/modules/ppc64el/core-modules
new file mode 100644
index 000000000000..b5c598d2a5b8
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/core-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/core-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/crc-modules b/debian/installer/ppc64el/modules/ppc64el/crc-modules
new file mode 100644
index 000000000000..faf2d628d40c
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/crc-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/crc-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/crypto-dm-modules b/debian/installer/ppc64el/modules/ppc64el/crypto-dm-modules
new file mode 100644
index 000000000000..2c530b3d41e8
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/crypto-dm-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/crypto-dm-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/crypto-modules b/debian/installer/ppc64el/modules/ppc64el/crypto-modules
new file mode 100644
index 000000000000..c6170b1d3e8d
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/crypto-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/crypto-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/event-modules b/debian/installer/ppc64el/modules/ppc64el/event-modules
new file mode 100644
index 000000000000..b0e5f5626264
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/event-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/event-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/ext4-modules b/debian/installer/ppc64el/modules/ppc64el/ext4-modules
new file mode 100644
index 000000000000..ac5f4c066d3c
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/ext4-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/ext4-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/fancontrol-modules b/debian/installer/ppc64el/modules/ppc64el/fancontrol-modules
new file mode 100644
index 000000000000..55cde68adfb7
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/fancontrol-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/fancontrol-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/fat-modules b/debian/installer/ppc64el/modules/ppc64el/fat-modules
new file mode 100644
index 000000000000..9ef0e07a2f47
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/fat-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/fat-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/firewire-core-modules b/debian/installer/ppc64el/modules/ppc64el/firewire-core-modules
new file mode 100644
index 000000000000..30b2c4c7c663
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/firewire-core-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/firewire-core-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/fuse-modules b/debian/installer/ppc64el/modules/ppc64el/fuse-modules
new file mode 100644
index 000000000000..73597f9e752e
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/fuse-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/fuse-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/hypervisor-modules b/debian/installer/ppc64el/modules/ppc64el/hypervisor-modules
new file mode 100644
index 000000000000..f2edc4b77578
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/hypervisor-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/hypervisor-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/input-modules b/debian/installer/ppc64el/modules/ppc64el/input-modules
new file mode 100644
index 000000000000..e4625ac77928
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/input-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/input-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/isofs-modules b/debian/installer/ppc64el/modules/ppc64el/isofs-modules
new file mode 100644
index 000000000000..18fb993d20ef
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/isofs-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/isofs-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/jfs-modules b/debian/installer/ppc64el/modules/ppc64el/jfs-modules
new file mode 100644
index 000000000000..193513f5ff76
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/jfs-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/jfs-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/kernel-image b/debian/installer/ppc64el/modules/ppc64el/kernel-image
new file mode 100644
index 000000000000..93f4a3702a4d
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/kernel-image
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/kernel-image"
diff --git a/debian/installer/ppc64el/modules/ppc64el/loop-modules b/debian/installer/ppc64el/modules/ppc64el/loop-modules
new file mode 100644
index 000000000000..fac3d38d4436
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/loop-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/loop-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/md-modules b/debian/installer/ppc64el/modules/ppc64el/md-modules
new file mode 100644
index 000000000000..03b10183f0ee
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/md-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/md-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/mouse-modules b/debian/installer/ppc64el/modules/ppc64el/mouse-modules
new file mode 100644
index 000000000000..163e3bab08dc
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/mouse-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/mouse-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/multipath-modules b/debian/installer/ppc64el/modules/ppc64el/multipath-modules
new file mode 100644
index 000000000000..cb7afcb659c8
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/multipath-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/multipath-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/nbd-modules b/debian/installer/ppc64el/modules/ppc64el/nbd-modules
new file mode 100644
index 000000000000..6540c0af63b8
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/nbd-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/nbd-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/nic-modules b/debian/installer/ppc64el/modules/ppc64el/nic-modules
new file mode 100644
index 000000000000..8ef5be22711c
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/nic-modules
@@ -0,0 +1,5 @@
+#include "../../../ppc64/modules/ppc64/nic-modules"
+
+airport -
+ps3_gelic -
+spidernet -
diff --git a/debian/installer/ppc64el/modules/ppc64el/nic-shared-modules b/debian/installer/ppc64el/modules/ppc64el/nic-shared-modules
new file mode 100644
index 000000000000..13812a869972
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/nic-shared-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/nic-shared-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/ppp-modules b/debian/installer/ppc64el/modules/ppc64el/ppp-modules
new file mode 100644
index 000000000000..626201967584
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/ppp-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/ppp-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/sata-modules b/debian/installer/ppc64el/modules/ppc64el/sata-modules
new file mode 100644
index 000000000000..6907d272eba4
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/sata-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/sata-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/scsi-common-modules b/debian/installer/ppc64el/modules/ppc64el/scsi-common-modules
new file mode 100644
index 000000000000..a52a3c900509
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/scsi-common-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/scsi-common-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/scsi-core-modules b/debian/installer/ppc64el/modules/ppc64el/scsi-core-modules
new file mode 100644
index 000000000000..dd496f79b5ca
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/scsi-core-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/scsi-core-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/scsi-extra-modules b/debian/installer/ppc64el/modules/ppc64el/scsi-extra-modules
new file mode 100644
index 000000000000..ccfa60b5ab38
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/scsi-extra-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/scsi-extra-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/scsi-modules b/debian/installer/ppc64el/modules/ppc64el/scsi-modules
new file mode 100644
index 000000000000..da4567b84af7
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/scsi-modules
@@ -0,0 +1,3 @@
+#include "../../../ppc64/modules/ppc64/scsi-modules"
+
+ps3rom -
diff --git a/debian/installer/ppc64el/modules/ppc64el/serial-modules b/debian/installer/ppc64el/modules/ppc64el/serial-modules
new file mode 100644
index 000000000000..22548f450aeb
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/serial-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/serial-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/squashfs-modules b/debian/installer/ppc64el/modules/ppc64el/squashfs-modules
new file mode 100644
index 000000000000..8c0c6d1c2b8b
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/squashfs-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/squashfs-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/udf-modules b/debian/installer/ppc64el/modules/ppc64el/udf-modules
new file mode 100644
index 000000000000..9ab96e02600f
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/udf-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/udf-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/uinput-modules b/debian/installer/ppc64el/modules/ppc64el/uinput-modules
new file mode 100644
index 000000000000..3d3929e24acc
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/uinput-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/uinput-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/usb-modules b/debian/installer/ppc64el/modules/ppc64el/usb-modules
new file mode 100644
index 000000000000..45ac3cf89c08
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/usb-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/usb-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/usb-serial-modules b/debian/installer/ppc64el/modules/ppc64el/usb-serial-modules
new file mode 100644
index 000000000000..63a8412e7ea0
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/usb-serial-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/usb-serial-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/usb-storage-modules b/debian/installer/ppc64el/modules/ppc64el/usb-storage-modules
new file mode 100644
index 000000000000..1679b922b3a7
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/usb-storage-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/usb-storage-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/virtio-modules b/debian/installer/ppc64el/modules/ppc64el/virtio-modules
new file mode 100644
index 000000000000..cbfbd1137421
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/virtio-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/virtio-modules"
diff --git a/debian/installer/ppc64el/modules/ppc64el/xfs-modules b/debian/installer/ppc64el/modules/ppc64el/xfs-modules
new file mode 100644
index 000000000000..5e8a7ce69d9e
--- /dev/null
+++ b/debian/installer/ppc64el/modules/ppc64el/xfs-modules
@@ -0,0 +1 @@
+#include "../../../ppc64/modules/ppc64/xfs-modules"
diff --git a/debian/installer/ppc64el/package-list b/debian/installer/ppc64el/package-list
new file mode 120000
index 000000000000..a872ee13ea72
--- /dev/null
+++ b/debian/installer/ppc64el/package-list
@@ -0,0 +1 @@
+../ppc64/package-list \ No newline at end of file
diff --git a/debian/patches/bugfix/all/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch b/debian/patches/bugfix/all/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch
new file mode 100644
index 000000000000..c3a90d88bc2b
--- /dev/null
+++ b/debian/patches/bugfix/all/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch
@@ -0,0 +1,33 @@
+From: Alexei Starovoitov <ast@plumgrid.com>
+Date: Wed, 4 Jun 2014 15:49:50 -0700
+Subject: PCI/MSI: Fix memory leak in free_msi_irqs()
+Origin: https://git.kernel.org/linus/b701c0b1fe819a2083fc6ec5332e0e4492b9516d
+
+free_msi_irqs() is leaking memory, since list_for_each_entry(entry,
+&dev->msi_list, list) {...} is never executed, because dev->msi_list is
+made empty by the loop just above this one.
+
+Fix it by relying on zero termination of attribute array like
+populate_msi_sysfs() does.
+
+Fixes: 1c51b50c2995 ("PCI/MSI: Export MSI mode using attributes, not kobjects")
+Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Neil Horman <nhorman@tuxdriver.com>
+Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+CC: stable@vger.kernel.org # v3.14+
+---
+ drivers/pci/msi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/pci/msi.c
++++ b/drivers/pci/msi.c
+@@ -414,7 +414,7 @@ static void free_msi_irqs(struct pci_dev
+ if (dev->msi_irq_groups) {
+ sysfs_remove_groups(&dev->dev.kobj, dev->msi_irq_groups);
+ msi_attrs = dev->msi_irq_groups[0]->attrs;
+- list_for_each_entry(entry, &dev->msi_list, list) {
++ while (msi_attrs[count]) {
+ dev_attr = container_of(msi_attrs[count],
+ struct device_attribute, attr);
+ kfree(dev_attr->attr.name);
diff --git a/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch b/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch
new file mode 100644
index 000000000000..b5c10893cacf
--- /dev/null
+++ b/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch
@@ -0,0 +1,80 @@
+From: Andy Lutomirski <luto@amacapital.net>
+Date: Wed, 28 May 2014 23:09:58 -0400
+Subject: auditsc: audit_krule mask accesses need bounds checking
+Origin: https://git.kernel.org/linus/a3c54931199565930d6d84f4c3456f6440aefd41
+
+Fixes an easy DoS and possible information disclosure.
+
+This does nothing about the broken state of x32 auditing.
+
+eparis: If the admin has enabled auditd and has specifically loaded
+audit rules. This bug has been around since before git. Wow...
+
+Cc: stable@vger.kernel.org
+Signed-off-by: Andy Lutomirski <luto@amacapital.net>
+Signed-off-by: Eric Paris <eparis@redhat.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+---
+ kernel/auditsc.c | 27 ++++++++++++++++++---------
+ 1 file changed, 18 insertions(+), 9 deletions(-)
+
+--- a/kernel/auditsc.c
++++ b/kernel/auditsc.c
+@@ -720,6 +720,22 @@ static enum audit_state audit_filter_tas
+ return AUDIT_BUILD_CONTEXT;
+ }
+
++static int audit_in_mask(const struct audit_krule *rule, unsigned long val)
++{
++ int word, bit;
++
++ if (val > 0xffffffff)
++ return false;
++
++ word = AUDIT_WORD(val);
++ if (word >= AUDIT_BITMASK_SIZE)
++ return false;
++
++ bit = AUDIT_BIT(val);
++
++ return rule->mask[word] & bit;
++}
++
+ /* At syscall entry and exit time, this filter is called if the
+ * audit_state is not low enough that auditing cannot take place, but is
+ * also not high enough that we already know we have to write an audit
+@@ -737,11 +753,8 @@ static enum audit_state audit_filter_sys
+
+ rcu_read_lock();
+ if (!list_empty(list)) {
+- int word = AUDIT_WORD(ctx->major);
+- int bit = AUDIT_BIT(ctx->major);
+-
+ list_for_each_entry_rcu(e, list, list) {
+- if ((e->rule.mask[word] & bit) == bit &&
++ if (audit_in_mask(&e->rule, ctx->major) &&
+ audit_filter_rules(tsk, &e->rule, ctx, NULL,
+ &state, false)) {
+ rcu_read_unlock();
+@@ -761,20 +774,16 @@ static enum audit_state audit_filter_sys
+ static int audit_filter_inode_name(struct task_struct *tsk,
+ struct audit_names *n,
+ struct audit_context *ctx) {
+- int word, bit;
+ int h = audit_hash_ino((u32)n->ino);
+ struct list_head *list = &audit_inode_hash[h];
+ struct audit_entry *e;
+ enum audit_state state;
+
+- word = AUDIT_WORD(ctx->major);
+- bit = AUDIT_BIT(ctx->major);
+-
+ if (list_empty(list))
+ return 0;
+
+ list_for_each_entry_rcu(e, list, list) {
+- if ((e->rule.mask[word] & bit) == bit &&
++ if (audit_in_mask(&e->rule, ctx->major) &&
+ audit_filter_rules(tsk, &e->rule, ctx, n, &state, false)) {
+ ctx->current_state = state;
+ return 1;
diff --git a/debian/patches/bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch b/debian/patches/bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch
new file mode 100644
index 000000000000..2a6460a426b7
--- /dev/null
+++ b/debian/patches/bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch
@@ -0,0 +1,191 @@
+From: Andy Lutomirski <luto@amacapital.net>
+Date: Tue, 10 Jun 2014 12:45:42 -0700
+Subject: fs,userns: Change inode_capable to capable_wrt_inode_uidgid
+Origin: https://git.kernel.org/linus/23adbe12ef7d3d4195e80800ab36b37bee28cd03
+
+The kernel has no concept of capabilities with respect to inodes; inodes
+exist independently of namespaces. For example, inode_capable(inode,
+CAP_LINUX_IMMUTABLE) would be nonsense.
+
+This patch changes inode_capable to check for uid and gid mappings and
+renames it to capable_wrt_inode_uidgid, which should make it more
+obvious what it does.
+
+Fixes CVE-2014-4014.
+
+Cc: Theodore Ts'o <tytso@mit.edu>
+Cc: Serge Hallyn <serge.hallyn@ubuntu.com>
+Cc: "Eric W. Biederman" <ebiederm@xmission.com>
+Cc: Dave Chinner <david@fromorbit.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Andy Lutomirski <luto@amacapital.net>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+---
+ fs/attr.c | 8 ++++----
+ fs/inode.c | 10 +++++++---
+ fs/namei.c | 11 ++++++-----
+ fs/xfs/xfs_ioctl.c | 2 +-
+ include/linux/capability.h | 2 +-
+ kernel/capability.c | 20 ++++++++------------
+ 6 files changed, 27 insertions(+), 26 deletions(-)
+
+--- a/fs/attr.c
++++ b/fs/attr.c
+@@ -50,14 +50,14 @@ int inode_change_ok(const struct inode *
+ if ((ia_valid & ATTR_UID) &&
+ (!uid_eq(current_fsuid(), inode->i_uid) ||
+ !uid_eq(attr->ia_uid, inode->i_uid)) &&
+- !inode_capable(inode, CAP_CHOWN))
++ !capable_wrt_inode_uidgid(inode, CAP_CHOWN))
+ return -EPERM;
+
+ /* Make sure caller can chgrp. */
+ if ((ia_valid & ATTR_GID) &&
+ (!uid_eq(current_fsuid(), inode->i_uid) ||
+ (!in_group_p(attr->ia_gid) && !gid_eq(attr->ia_gid, inode->i_gid))) &&
+- !inode_capable(inode, CAP_CHOWN))
++ !capable_wrt_inode_uidgid(inode, CAP_CHOWN))
+ return -EPERM;
+
+ /* Make sure a caller can chmod. */
+@@ -67,7 +67,7 @@ int inode_change_ok(const struct inode *
+ /* Also check the setgid bit! */
+ if (!in_group_p((ia_valid & ATTR_GID) ? attr->ia_gid :
+ inode->i_gid) &&
+- !inode_capable(inode, CAP_FSETID))
++ !capable_wrt_inode_uidgid(inode, CAP_FSETID))
+ attr->ia_mode &= ~S_ISGID;
+ }
+
+@@ -160,7 +160,7 @@ void setattr_copy(struct inode *inode, c
+ umode_t mode = attr->ia_mode;
+
+ if (!in_group_p(inode->i_gid) &&
+- !inode_capable(inode, CAP_FSETID))
++ !capable_wrt_inode_uidgid(inode, CAP_FSETID))
+ mode &= ~S_ISGID;
+ inode->i_mode = mode;
+ }
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -1842,14 +1842,18 @@ EXPORT_SYMBOL(inode_init_owner);
+ * inode_owner_or_capable - check current task permissions to inode
+ * @inode: inode being checked
+ *
+- * Return true if current either has CAP_FOWNER to the inode, or
+- * owns the file.
++ * Return true if current either has CAP_FOWNER in a namespace with the
++ * inode owner uid mapped, or owns the file.
+ */
+ bool inode_owner_or_capable(const struct inode *inode)
+ {
++ struct user_namespace *ns;
++
+ if (uid_eq(current_fsuid(), inode->i_uid))
+ return true;
+- if (inode_capable(inode, CAP_FOWNER))
++
++ ns = current_user_ns();
++ if (ns_capable(ns, CAP_FOWNER) && kuid_has_mapping(ns, inode->i_uid))
+ return true;
+ return false;
+ }
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -332,10 +332,11 @@ int generic_permission(struct inode *ino
+
+ if (S_ISDIR(inode->i_mode)) {
+ /* DACs are overridable for directories */
+- if (inode_capable(inode, CAP_DAC_OVERRIDE))
++ if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
+ return 0;
+ if (!(mask & MAY_WRITE))
+- if (inode_capable(inode, CAP_DAC_READ_SEARCH))
++ if (capable_wrt_inode_uidgid(inode,
++ CAP_DAC_READ_SEARCH))
+ return 0;
+ return -EACCES;
+ }
+@@ -345,7 +346,7 @@ int generic_permission(struct inode *ino
+ * at least one exec bit set.
+ */
+ if (!(mask & MAY_EXEC) || (inode->i_mode & S_IXUGO))
+- if (inode_capable(inode, CAP_DAC_OVERRIDE))
++ if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
+ return 0;
+
+ /*
+@@ -353,7 +354,7 @@ int generic_permission(struct inode *ino
+ */
+ mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
+ if (mask == MAY_READ)
+- if (inode_capable(inode, CAP_DAC_READ_SEARCH))
++ if (capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
+ return 0;
+
+ return -EACCES;
+@@ -2370,7 +2371,7 @@ static inline int check_sticky(struct in
+ return 0;
+ if (uid_eq(dir->i_uid, fsuid))
+ return 0;
+- return !inode_capable(inode, CAP_FOWNER);
++ return !capable_wrt_inode_uidgid(inode, CAP_FOWNER);
+ }
+
+ /*
+--- a/fs/xfs/xfs_ioctl.c
++++ b/fs/xfs/xfs_ioctl.c
+@@ -1241,7 +1241,7 @@ xfs_ioctl_setattr(
+ * cleared upon successful return from chown()
+ */
+ if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) &&
+- !inode_capable(VFS_I(ip), CAP_FSETID))
++ !capable_wrt_inode_uidgid(VFS_I(ip), CAP_FSETID))
+ ip->i_d.di_mode &= ~(S_ISUID|S_ISGID);
+
+ /*
+--- a/include/linux/capability.h
++++ b/include/linux/capability.h
+@@ -210,7 +210,7 @@ extern bool has_ns_capability_noaudit(st
+ struct user_namespace *ns, int cap);
+ extern bool capable(int cap);
+ extern bool ns_capable(struct user_namespace *ns, int cap);
+-extern bool inode_capable(const struct inode *inode, int cap);
++extern bool capable_wrt_inode_uidgid(const struct inode *inode, int cap);
+ extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap);
+
+ /* audit system wants to get cap info from files as well */
+--- a/kernel/capability.c
++++ b/kernel/capability.c
+@@ -433,23 +433,19 @@ bool capable(int cap)
+ EXPORT_SYMBOL(capable);
+
+ /**
+- * inode_capable - Check superior capability over inode
++ * capable_wrt_inode_uidgid - Check nsown_capable and uid and gid mapped
+ * @inode: The inode in question
+ * @cap: The capability in question
+ *
+- * Return true if the current task has the given superior capability
+- * targeted at it's own user namespace and that the given inode is owned
+- * by the current user namespace or a child namespace.
+- *
+- * Currently we check to see if an inode is owned by the current
+- * user namespace by seeing if the inode's owner maps into the
+- * current user namespace.
+- *
++ * Return true if the current task has the given capability targeted at
++ * its own user namespace and that the given inode's uid and gid are
++ * mapped into the current user namespace.
+ */
+-bool inode_capable(const struct inode *inode, int cap)
++bool capable_wrt_inode_uidgid(const struct inode *inode, int cap)
+ {
+ struct user_namespace *ns = current_user_ns();
+
+- return ns_capable(ns, cap) && kuid_has_mapping(ns, inode->i_uid);
++ return ns_capable(ns, cap) && kuid_has_mapping(ns, inode->i_uid) &&
++ kgid_has_mapping(ns, inode->i_gid);
+ }
+-EXPORT_SYMBOL(inode_capable);
++EXPORT_SYMBOL(capable_wrt_inode_uidgid);
diff --git a/debian/patches/bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch b/debian/patches/bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch
new file mode 100644
index 000000000000..547fc44c8aa9
--- /dev/null
+++ b/debian/patches/bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch
@@ -0,0 +1,105 @@
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date: Tue, 20 May 2014 11:01:28 +1000
+Subject: powerpc/powernv: Add calls to support little endian host
+Origin: https://git.kernel.org/linus/4926616c77435e735c59288f838e7761baec4a6c
+
+When running as a powernv "host" system on P8, we need to switch
+the endianness of interrupt handlers. This does it via the appropriate
+call to the OPAL firmware which may result in just switching HID0:HILE
+but depending on the processor version might need to do a few more
+things. This call must be done early before any other processor has
+been brought out of firmware.
+
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Andy Whitcroft <apw@canonical.com>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+---
+ arch/powerpc/include/asm/opal.h | 7 +++++++
+ arch/powerpc/platforms/powernv/opal-wrappers.S | 1 +
+ arch/powerpc/platforms/powernv/opal.c | 22 ++++++++++++++++++++++
+ 3 files changed, 30 insertions(+)
+
+diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
+index 81720ff..ea8bba7 100644
+--- a/arch/powerpc/include/asm/opal.h
++++ b/arch/powerpc/include/asm/opal.h
+@@ -154,6 +154,7 @@ extern int opal_enter_rtas(struct rtas_args *args,
+ #define OPAL_LPC_READ 67
+ #define OPAL_LPC_WRITE 68
+ #define OPAL_RETURN_CPU 69
++#define OPAL_REINIT_CPUS 70
+ #define OPAL_ELOG_READ 71
+ #define OPAL_ELOG_WRITE 72
+ #define OPAL_ELOG_ACK 73
+@@ -725,6 +726,11 @@ struct OpalIoPhb3ErrorData {
+ uint64_t pestB[OPAL_PHB3_NUM_PEST_REGS];
+ };
+
++enum {
++ OPAL_REINIT_CPUS_HILE_BE = (1 << 0),
++ OPAL_REINIT_CPUS_HILE_LE = (1 << 1),
++};
++
+ typedef struct oppanel_line {
+ const char * line;
+ uint64_t line_len;
+@@ -849,6 +855,7 @@ int64_t opal_pci_next_error(uint64_t phb_id, uint64_t *first_frozen_pe,
+ uint16_t *pci_error_type, uint16_t *severity);
+ int64_t opal_pci_poll(uint64_t phb_id);
+ int64_t opal_return_cpu(void);
++int64_t opal_reinit_cpus(uint64_t flags);
+
+ int64_t opal_xscom_read(uint32_t gcid, uint64_t pcb_addr, __be64 *val);
+ int64_t opal_xscom_write(uint32_t gcid, uint64_t pcb_addr, uint64_t val);
+diff --git a/arch/powerpc/platforms/powernv/opal-wrappers.S b/arch/powerpc/platforms/powernv/opal-wrappers.S
+index b5ebc54..4abbff2 100644
+--- a/arch/powerpc/platforms/powernv/opal-wrappers.S
++++ b/arch/powerpc/platforms/powernv/opal-wrappers.S
+@@ -124,6 +124,7 @@ OPAL_CALL(opal_xscom_write, OPAL_XSCOM_WRITE);
+ OPAL_CALL(opal_lpc_read, OPAL_LPC_READ);
+ OPAL_CALL(opal_lpc_write, OPAL_LPC_WRITE);
+ OPAL_CALL(opal_return_cpu, OPAL_RETURN_CPU);
++OPAL_CALL(opal_reinit_cpus, OPAL_REINIT_CPUS);
+ OPAL_CALL(opal_read_elog, OPAL_ELOG_READ);
+ OPAL_CALL(opal_send_ack_elog, OPAL_ELOG_ACK);
+ OPAL_CALL(opal_get_elog_size, OPAL_ELOG_SIZE);
+diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
+index 360ad80c..539243e 100644
+--- a/arch/powerpc/platforms/powernv/opal.c
++++ b/arch/powerpc/platforms/powernv/opal.c
+@@ -57,6 +57,21 @@ static DEFINE_SPINLOCK(opal_notifier_lock);
+ static uint64_t last_notified_mask = 0x0ul;
+ static atomic_t opal_notifier_hold = ATOMIC_INIT(0);
+
++static void opal_reinit_cores(void)
++{
++ /* Do the actual re-init, This will clobber all FPRs, VRs, etc...
++ *
++ * It will preserve non volatile GPRs and HSPRG0/1. It will
++ * also restore HIDs and other SPRs to their original value
++ * but it might clobber a bunch.
++ */
++#ifdef __BIG_ENDIAN__
++ opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_BE);
++#else
++ opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_LE);
++#endif
++}
++
+ int __init early_init_dt_scan_opal(unsigned long node,
+ const char *uname, int depth, void *data)
+ {
+@@ -96,6 +111,13 @@ int __init early_init_dt_scan_opal(unsigned long node,
+ printk("OPAL V1 detected !\n");
+ }
+
++ /* Reinit all cores with the right endian */
++ opal_reinit_cores();
++
++ /* Restore some bits */
++ if (cur_cpu_spec->cpu_restore)
++ cur_cpu_spec->cpu_restore();
++
+ return 1;
+ }
+
diff --git a/debian/patches/debian/ppc64el-disable-zImage.patch b/debian/patches/debian/ppc64el-disable-zImage.patch
new file mode 100644
index 000000000000..a234961ea07d
--- /dev/null
+++ b/debian/patches/debian/ppc64el-disable-zImage.patch
@@ -0,0 +1,49 @@
+From: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
+Date: Wed, 4 Jun 2014 09:06:27 -0300
+Subject: ppc64el: kernel: patch: temporarily disable zImage
+
+Debian ppc64el will wait for the 'powerpc/boot: 64bit little endian wrapper'
+(zImage) patches upstream rather than shipping 32-bit tools for zImage. The
+patches are currently in Ben Herrenschmidt's linux-next tree [1].
+
+The patches are not being carried over instead of this workaround because,
+even without both, the build process does produces vmlinux, only failing for
+zImage. So, it's ok to just work-around this for now, as we pick vmlinux.
+
+The workaround patch just avoids this build error:
+
+ [...]
+ LD vmlinux
+ SYSMAP System.map
+ [...]
+ WRAP arch/powerpc/boot/zImage.pseries
+ ld: unrecognised emulation mode: elf32ppc
+ Supported emulations: elf64lppc elf32lppc elf32lppclinux elf32lppcsim
+ make[6]: *** [arch/powerpc/boot/zImage.pseries] Error 1
+ make[5]: *** [zImage] Error 2
+
+[1] https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/log/?qt=grep&q=powerpc%2Fboot
+ (15 commits with message prefix 'powerpc/boot:' dated of 2014-04-28)
+
+Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
+---
+Index: linux-3.14.2/arch/powerpc/boot/Makefile
+===================================================================
+--- linux-3.14.2.orig/arch/powerpc/boot/Makefile 2014-05-02 16:52:37.000000000 -0300
++++ linux-3.14.2/arch/powerpc/boot/Makefile 2014-05-07 09:39:11.000000000 -0300
+@@ -344,6 +344,15 @@
+ $(obj)/%.dtb: $(src)/dts/%.dts FORCE
+ $(call if_changed_dep,dtc)
+
++# Debian ppc64el will wait for the 'powerpc/boot: 64bit little endian wrapper'
++# (zImage) patches upstream rather than shipping 32-bit tools for zImage.
++# This makes the next conditional block to pick vmlinux.strip as image-y.
++ifdef CONFIG_PPC64
++ifdef CONFIG_CPU_LITTLE_ENDIAN
++image-y :=
++endif
++endif
++
+ # If there isn't a platform selected then just strip the vmlinux.
+ ifeq (,$(image-y))
+ image-y := vmlinux.strip
diff --git a/debian/patches/series b/debian/patches/series
index eff37f9f19f9..793713aef381 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,6 +6,7 @@ debian/ia64-hardcode-arch-script-output.patch
debian/mips-disable-werror.patch
debian/arch-sh4-fix-uimage-build.patch
debian/powerpcspe-omit-uimage.patch
+debian/ppc64el-disable-zImage.patch
features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch
# Fixes/improvements to firmware loading
@@ -57,6 +58,7 @@ bugfix/arm/omap-musb-choice.patch
bugfix/mips/disable-advansys.patch
bugfix/arm/ixp4xx_iobe.patch
bugfix/m68k/ethernat-kconfig.patch
+bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch
# Miscellaneous bug fixes
bugfix/all/misc-bmp085-Enable-building-as-a-module.patch
@@ -94,3 +96,7 @@ features/arm/ARM-dts-sun7i-Add-reg_vcc3v3-to-sun7i-board-mmc-node.patch
features/arm/ARM-dts-sun7i-cubietruck-set-mmc3-bus-width-property.patch
features/arm/ARM-dts-imx6qdl-wandboard-Add-HDMI-support.patch
features/arm/ARM-imx-add-HDMI-support-for-SolidRun-HummingBoard-a.patch
+
+bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch
+bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch
+bugfix/all/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch
diff --git a/debian/templates/image.plain.bug/include-model b/debian/templates/image.plain.bug/include-model
index 40f80213382d..532ac5717f32 100644
--- a/debian/templates/image.plain.bug/include-model
+++ b/debian/templates/image.plain.bug/include-model
@@ -23,7 +23,7 @@ grep_model() {
parisc|parisc64)
egrep '^(model|[hs]version)\b' /proc/cpuinfo
;;
- ppc|ppc64)
+ ppc|ppc64|ppc64le)
egrep -i '^(board|machine|model|motherboard|platform|revision|vendor)\b' /proc/cpuinfo
;;
s390|s390x)