Update to 4.6.2
This commit is contained in:
parent
0111b51fe6
commit
1537ff1314
|
@ -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:
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
[abi]
|
||||
ignore-changes:
|
||||
# Should not be used from OOT
|
||||
module:drivers/gpu/drm/imx/*
|
||||
|
||||
[base]
|
||||
flavours:
|
||||
armmp
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
[abi]
|
||||
abiname: 1
|
||||
ignore-changes:
|
||||
# Should not be used from OOT
|
||||
module:drivers/net/wireless/realtek/rtlwifi/*
|
||||
|
||||
[base]
|
||||
arches:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
||||
/*
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue