diff options
author | Ben Hutchings <ben@decadent.org.uk> | 2016-06-09 03:20:18 +0100 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2016-06-09 17:44:47 +0100 |
commit | 1537ff1314d59911dcca25c5527431c1b9939ebf (patch) | |
tree | 22fc7d4e225f039260ed8c7af8f88b31ccae9cf3 | |
parent | 0111b51fe649c06a79c9ae462cd298f67a3d534e (diff) | |
download | kernel_replicant_linux-1537ff1314d59911dcca25c5527431c1b9939ebf.tar.gz kernel_replicant_linux-1537ff1314d59911dcca25c5527431c1b9939ebf.tar.bz2 kernel_replicant_linux-1537ff1314d59911dcca25c5527431c1b9939ebf.zip |
Update to 4.6.2
-rw-r--r-- | debian/changelog | 118 | ||||
-rw-r--r-- | debian/config/armhf/defines | 5 | ||||
-rw-r--r-- | debian/config/defines | 3 | ||||
-rw-r--r-- | debian/config/mips/defines | 6 | ||||
-rw-r--r-- | debian/config/mips64el/defines | 6 | ||||
-rw-r--r-- | debian/config/mipsel/defines | 6 | ||||
-rw-r--r-- | debian/patches/bugfix/mips/MIPS-Disable-preemption-during-prctl-PR_SET_FP_MODE.patch | 42 | ||||
-rw-r--r-- | debian/patches/bugfix/mips/MIPS-Force-CPUs-to-lose-FP-context-during-mode-switc.patch | 101 | ||||
-rw-r--r-- | debian/patches/debian/kernelvariables.patch | 2 | ||||
-rw-r--r-- | debian/patches/series | 2 |
10 files changed, 145 insertions, 146 deletions
diff --git a/debian/changelog b/debian/changelog index e8fea13bc010..52c22263195a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,121 @@ +linux (4.6.2-1) UNRELEASED; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.6.2 + - f2fs: fix deadlock when flush inline data + - [mips*] math-emu: Fix jalr emulation when rd == $0 + - [mips*] Avoid using unwind_stack() with usermode + - [mips*] Fix siginfo.h to use strict posix types + - [mips*] Fix uapi include in exported asm/siginfo.h + - [mips*] Fix watchpoint restoration + - [mips*] Flush highmem pages in __flush_dcache_page + - [mips*] Handle highmem pages in __update_cache + - [mips*] Sync icache & dcache in set_pte_at + - [mips*] Reserve nosave data for hibernation + - [mips*el/loongson-3] Reserve 32MB for RS780E integrated GPU + - [mips*] Use copy_s.fmt rather than copy_u.fmt + - [mips*] Prevent "restoration" of MSA context in non-MSA kernels + - [mips*] ptrace: Fix FP context restoration FCSR regression + - [mips*] ptrace: Prevent writes to read-only FCSR bits + - [mips*] lib: Mark intrinsics notrace + - [mips*] VDSO: Build with `-fno-strict-aliasing' + - affs: fix remount failure when there are no options changed + - ASoC: ak4642: Enable cache usage to fix crashes on resume + - Input: uinput - handle compat ioctl for UI_SET_PHYS + - Input: xpad - move pending clear to the correct location + - Input: xpad - prevent spurious input from wired Xbox 360 controllers + - [armhf] sun4i: dt: Enable dram gate 5 (tve0 clock) for simplefb TV output + - [armhf] sun7i: dt: Enable dram gate 5 (tve0 clock) for simplefb TV output + - [armhf] mvebu: fix GPIO config on the Linksys boards + - [armhf] dts: exynos: Add interrupt line to MAX8997 PMIC on + exynos4210-trats + - ath9k: Fix LED polarity for some Mini PCI AR9220 MB92 cards. + - ath10k: fix firmware assert in monitor mode + - ath10k: fix rx_channel during hw reconfigure + - ath10k: fix kernel panic, move arvifs list head init before htt init + - ath5k: Change led pin configuration for compaq c700 laptop + - [armhf] hwrng: exynos - Fix unbalanced PM runtime put on timeout + error path + - rtlwifi: Fix logic error in enter/exit power-save mode + - rtlwifi: pci: use dev_kfree_skb_irq instead of kfree_skb in + rtl_pci_reset_trx_ring + - Revert "lpfc: Delete unnecessary checks before the function call + mempool_destroy" + - aacraid: Start adapter after updating number of MSIX vectors + - aacraid: Relinquish CPU during timeout wait + - aacraid: Fix for aac_command_thread hang + - aacraid: Fix for KDUMP driver hang + - regulator: Try to resolve regulators supplies on registration + - hwmon: (ads7828) Enable internal reference + - [x86] mfd: intel_quark_i2c_gpio: Remove clock tree on error path + - [x86] mfd: intel-lpss: Save register context on suspend + - [x86] mfd: intel_soc_pmic_core: Terminate panel control GPIO lookup + table correctly + - PM / Runtime: Fix error path in pm_runtime_force_resume() + - cpuidle: Indicate when a device has been unregistered + - cpuidle: Fix cpuidle_state_is_coupled() argument in cpuidle_enter() + - [armhf] clk: bcm2835: Fix PLL poweron + - [armhf] clk: bcm2835: pll_off should only update CM_PLL_ANARST + - [armhf] clk: bcm2835: divider value has to be 1 or more + - [armhf] clk: bcm2835: correctly enable fractional clock support + - [armhf] pinctrl: exynos5440: Use off-stack memory for pinctrl_gpio_range + - PCI: Disable all BAR sizing for devices with non-compliant BARs + - media: v4l2-compat-ioctl32: fix missing reserved field copy in + put_v4l2_create32 + - PKCS#7: fix missing break on OID_sha224 case + - mm: use phys_addr_t for reserve_bootmem_region() arguments + - mm/compaction.c: fix zoneindex in kcompactd() + - wait/ptrace: assume __WALL if the child is traced + - batman-adv: Fix double neigh_node_put in batadv_v_ogm_route_update + - [powerpc*] book3s64: Fix branching to OOL handlers in relocatable kernel + - [powerpc*] eeh: Don't report error in eeh_pe_reset_and_recover() + - [powerpc*] Revert "powerpc/eeh: Fix crash in eeh_add_device_early() + on Cell" + - [powerpc*] eeh: Restore initial state in eeh_pe_reset_and_recover() + - xen/events: Don't move disabled irqs + - xen: use same main loop for counting and remapping pages + - sunrpc: fix stripping of padded MIC tokens + - [x86] drm/gma500: Fix possible out of bounds read + - [x86] drm/vmwgfx: Kill some lockdep warnings + - [x86] drm/amdgpu: use drm_mode_vrefresh() rather than mode->vrefresh + - [x86] drm/amdgpu: Fix hdmi deep color support. + - [x86] drm/i915/fbdev: Fix num_connector references in + intel_fb_initial_config() + - drm/fb_helper: Fix references to dev->mode_config.num_connector + - [x86] drm/i915: Discard previous atomic state on resume if connectors + change + - drm/atomic: Verify connector->funcs != NULL when clearing states + - Bluetooth: 6lowpan: Fix memory corruption of ipv6 destination address + - [x86] drm/i915/psr: Try to program link training times correctly + - [x86] drm/i915: Respect DP++ adaptor TMDS clock limit + - [x86] drm/i915: Enable/disable TMDS output buffers in DP++ adaptor + as needed + - [x86] drm/i915: Don't leave old junk in ilk active watermarks on readout + - [x86] drm/i915: Fix watermarks for VLV/CHV + - [armhf] drm/imx: Match imx-ipuv3-crtc components using device node in + platform data + - [x86] drm/i915: Pass the correct crtc state to .update_plane() + - ext4: fix data exposure after a crash + - ext4: fix hang when processing corrupted orphaned inode list + - ext4: clean up error handling when orphan list is corrupted + - ext4: fix check of dqget() return value in ext4_ioctl_setproject() + - ext4: fix oops on corrupted filesystem + - ext4: address UBSAN warning in mb_find_order_for_block() + - nfs: avoid race that crashes nfs_init_commit + - PM / sleep: Handle failures in device_suspend_late() consistently + - mm: thp: avoid false positive VM_BUG_ON_PAGE in page_move_anon_rmap() + - xfs: disallow rw remount on fs with unknown ro-compat features + - xfs: Don't wrap growfs AGFL indexes + - xfs: remove xfs_fs_evict_inode() + - xfs: xfs_iflush_cluster fails to abort on error + - xfs: fix inode validity check in xfs_iflush_cluster + - xfs: skip stale inodes in xfs_iflush_cluster + - [armhf] drm: msm: remove unused variable + - IB/hfi1: Fix hard lockup due to not using save/restore spin lock + - regulator: Fix deadlock during regulator registration + + -- Ben Hutchings <ben@decadent.org.uk> Thu, 09 Jun 2016 02:56:01 +0100 + linux (4.6.1-1) unstable; urgency=medium * New upstream stable update: diff --git a/debian/config/armhf/defines b/debian/config/armhf/defines index 23da73e117b9..b9334d1a8192 100644 --- a/debian/config/armhf/defines +++ b/debian/config/armhf/defines @@ -1,3 +1,8 @@ +[abi] +ignore-changes: +# Should not be used from OOT + module:drivers/gpu/drm/imx/* + [base] flavours: armmp diff --git a/debian/config/defines b/debian/config/defines index b91430046cac..17ae3236ffbf 100644 --- a/debian/config/defines +++ b/debian/config/defines @@ -1,5 +1,8 @@ [abi] abiname: 1 +ignore-changes: +# Should not be used from OOT + module:drivers/net/wireless/realtek/rtlwifi/* [base] arches: diff --git a/debian/config/mips/defines b/debian/config/mips/defines index 720a05112b3a..5f082a19b068 100644 --- a/debian/config/mips/defines +++ b/debian/config/mips/defines @@ -1,3 +1,9 @@ +[abi] +ignore-changes: +# Was called by inline function flush_icache_page, which doesn't seem +# to be used OOT + __flush_icache_page + [base] flavours: 4kc-malta diff --git a/debian/config/mips64el/defines b/debian/config/mips64el/defines index ec3b0eb484c3..4ed87cee3371 100644 --- a/debian/config/mips64el/defines +++ b/debian/config/mips64el/defines @@ -1,3 +1,9 @@ +[abi] +ignore-changes: +# Was called by inline function flush_icache_page, which doesn't seem +# to be used OOT + __flush_icache_page + [base] flavours: 5kc-malta diff --git a/debian/config/mipsel/defines b/debian/config/mipsel/defines index 77cca86fea7b..213469060466 100644 --- a/debian/config/mipsel/defines +++ b/debian/config/mipsel/defines @@ -1,3 +1,9 @@ +[abi] +ignore-changes: +# Was called by inline function flush_icache_page, which doesn't seem +# to be used OOT + __flush_icache_page + [base] flavours: 4kc-malta diff --git a/debian/patches/bugfix/mips/MIPS-Disable-preemption-during-prctl-PR_SET_FP_MODE.patch b/debian/patches/bugfix/mips/MIPS-Disable-preemption-during-prctl-PR_SET_FP_MODE.patch deleted file mode 100644 index ec9086fd0170..000000000000 --- a/debian/patches/bugfix/mips/MIPS-Disable-preemption-during-prctl-PR_SET_FP_MODE.patch +++ /dev/null @@ -1,42 +0,0 @@ -From: Paul Burton <paul.burton@imgtec.com> -Date: Thu, 21 Apr 2016 12:43:57 +0100 -Subject: [1/2] MIPS: Disable preemption during prctl(PR_SET_FP_MODE, ...) -Origin: https://git.kernel.org/linus/bd239f1e1429e7781096bf3884bdb1b2b1bb4f28 - -Whilst a PR_SET_FP_MODE prctl is performed there are decisions made -based upon whether the task is executing on the current CPU. This may -change if we're preempted, so disable preemption to avoid such changes -for the lifetime of the mode switch. - -Signed-off-by: Paul Burton <paul.burton@imgtec.com> -Fixes: 9791554b45a2 ("MIPS,prctl: add PR_[GS]ET_FP_MODE prctl options for MIPS") -Cc: stable <stable@vger.kernel.org> # v4.0+ ---- - arch/mips/kernel/process.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c -index 92880ce..ce55ea0 100644 ---- a/arch/mips/kernel/process.c -+++ b/arch/mips/kernel/process.c -@@ -601,6 +601,9 @@ int mips_set_process_fp_mode(struct task_struct *task, unsigned int value) - if (!(value & PR_FP_MODE_FR) && cpu_has_fpu && cpu_has_mips_r6) - return -EOPNOTSUPP; - -+ /* Proceed with the mode switch */ -+ preempt_disable(); -+ - /* Save FP & vector context, then disable FPU & MSA */ - if (task->signal == current->signal) - lose_fpu(1); -@@ -659,6 +662,7 @@ int mips_set_process_fp_mode(struct task_struct *task, unsigned int value) - - /* Allow threads to use FP again */ - atomic_set(&task->mm->context.fp_mode_switching, 0); -+ preempt_enable(); - - return 0; - } --- -2.8.1 - diff --git a/debian/patches/bugfix/mips/MIPS-Force-CPUs-to-lose-FP-context-during-mode-switc.patch b/debian/patches/bugfix/mips/MIPS-Force-CPUs-to-lose-FP-context-during-mode-switc.patch deleted file mode 100644 index 301e2e000ca8..000000000000 --- a/debian/patches/bugfix/mips/MIPS-Force-CPUs-to-lose-FP-context-during-mode-switc.patch +++ /dev/null @@ -1,101 +0,0 @@ -From: Paul Burton <paul.burton@imgtec.com> -Date: Thu, 21 Apr 2016 12:43:58 +0100 -Subject: [2/2] MIPS: Force CPUs to lose FP context during mode switches -Origin: https://git.kernel.org/linus/6b8322576e9d325b65c54fbef64e4e8690ad70ce - -Commit 9791554b45a2 ("MIPS,prctl: add PR_[GS]ET_FP_MODE prctl options -for MIPS") added support for the PR_SET_FP_MODE prctl, which allows a -userland program to modify its FP mode at runtime. This is most notably -required if dynamic linking leads to the FP mode requirement changing at -runtime from that indicated in the initial executable's ELF header. In -order to avoid overhead in the general FP context restore code, it aimed -to have threads in the process become unable to enable the FPU during a -mode switch & have the thread calling the prctl syscall wait for all -other threads in the process to be context switched at least once. Once -that happens we can know that no thread in the process whose mode will -be switched has live FP context, and it's safe to perform the mode -switch. However in the (rare) case of modeswitches occurring in -multithreaded programs this can lead to indeterminate delays for the -thread invoking the prctl syscall, and the code monitoring for those -context switches was woefully inadequate for all but the simplest cases. - -Fix this by broadcasting an IPI if other CPUs may have live FP context -for an affected thread, with a handler causing those CPUs to relinquish -their FPU ownership. Threads will then be allowed to continue running -but will stall on the wait_on_atomic_t in enable_restore_fp_context if -they attempt to use FP again whilst the mode switch is still in -progress. The end result is less fragile poking at scheduler context -switch counts & a more expedient completion of the mode switch. - -Signed-off-by: Paul Burton <paul.burton@imgtec.com> -Fixes: 9791554b45a2 ("MIPS,prctl: add PR_[GS]ET_FP_MODE prctl options for MIPS") -Cc: stable <stable@vger.kernel.org> # v4.0+ ---- - arch/mips/kernel/process.c | 40 +++++++++++++++++----------------------- - 1 file changed, 17 insertions(+), 23 deletions(-) - -diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c -index ce55ea0..e1b36a4 100644 ---- a/arch/mips/kernel/process.c -+++ b/arch/mips/kernel/process.c -@@ -580,11 +580,19 @@ int mips_get_process_fp_mode(struct task_struct *task) - return value; - } - -+static void prepare_for_fp_mode_switch(void *info) -+{ -+ struct mm_struct *mm = info; -+ -+ if (current->mm == mm) -+ lose_fpu(1); -+} -+ - int mips_set_process_fp_mode(struct task_struct *task, unsigned int value) - { - const unsigned int known_bits = PR_FP_MODE_FR | PR_FP_MODE_FRE; -- unsigned long switch_count; - struct task_struct *t; -+ int max_users; - - /* Check the value is valid */ - if (value & ~known_bits) -@@ -613,31 +621,17 @@ int mips_set_process_fp_mode(struct task_struct *task, unsigned int value) - smp_mb__after_atomic(); - - /* -- * If there are multiple online CPUs then wait until all threads whose -- * FP mode is about to change have been context switched. This approach -- * allows us to only worry about whether an FP mode switch is in -- * progress when FP is first used in a tasks time slice. Pretty much all -- * of the mode switch overhead can thus be confined to cases where mode -- * switches are actually occurring. That is, to here. However for the -- * thread performing the mode switch it may take a while... -+ * If there are multiple online CPUs then force any which are running -+ * threads in this process to lose their FPU context, which they can't -+ * regain until fp_mode_switching is cleared later. - */ - if (num_online_cpus() > 1) { -- spin_lock_irq(&task->sighand->siglock); -- -- for_each_thread(task, t) { -- if (t == current) -- continue; -- -- switch_count = t->nvcsw + t->nivcsw; -- -- do { -- spin_unlock_irq(&task->sighand->siglock); -- cond_resched(); -- spin_lock_irq(&task->sighand->siglock); -- } while ((t->nvcsw + t->nivcsw) == switch_count); -- } -+ /* No need to send an IPI for the local CPU */ -+ max_users = (task->mm == current->mm) ? 1 : 0; - -- spin_unlock_irq(&task->sighand->siglock); -+ if (atomic_read(¤t->mm->mm_users) > max_users) -+ smp_call_function(prepare_for_fp_mode_switch, -+ (void *)current->mm, 1); - } - - /* diff --git a/debian/patches/debian/kernelvariables.patch b/debian/patches/debian/kernelvariables.patch index 1b6ee17d0c84..4d6a6c99110a 100644 --- a/debian/patches/debian/kernelvariables.patch +++ b/debian/patches/debian/kernelvariables.patch @@ -58,7 +58,7 @@ use of $(ARCH) needs to be moved after this. export KCONFIG_CONFIG @@ -367,6 +331,44 @@ AFLAGS_KERNEL = - CFLAGS_GCOV = -fprofile-arcs -ftest-coverage + CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im CFLAGS_KCOV = -fsanitize-coverage=trace-pc +-include $(obj)/.kernelvariables diff --git a/debian/patches/series b/debian/patches/series index 1ce10f959bc1..fdfc4209f37b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -45,8 +45,6 @@ bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch # Arch bug fixes bugfix/mips/MIPS-Allow-emulation-for-unaligned-LSDXC1-instructions.patch -bugfix/mips/MIPS-Disable-preemption-during-prctl-PR_SET_FP_MODE.patch -bugfix/mips/MIPS-Force-CPUs-to-lose-FP-context-during-mode-switc.patch bugfix/powerpc/powerpc-fix-sstep-compile-on-powerpcspe.patch bugfix/arm/dwc3-exynos-fix-deferred-probing-storm.patch |