Update to 3.14.12

Drop x86 ptrace patch which is included in it.

Ignore or work around various ABI changes.

svn path=/dists/sid/linux/; revision=21525
This commit is contained in:
Ben Hutchings 2014-07-11 16:44:49 +00:00
parent 73b7435404
commit 521ed14531
7 changed files with 140 additions and 76 deletions

80
debian/changelog vendored
View File

@ -1,5 +1,83 @@
linux (3.14.10-2) UNRELEASED; urgency=medium
linux (3.14.12-1) UNRELEASED; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.11
- iscsi-target: Avoid rejecting incorrect ITT for Data-Out
- iscsi-target: Explicily clear login response PDU in exception path
(regression in 3.10)
- iscsi-target: fix iscsit_del_np deadlock on unload (regression in 3.13)
- Input: synaptics - fix resolution for manually provided min/max
(regression in 3.14)
- [mips] MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region
- UBIFS: fix an mmap and fsync race condition
- UBIFS: Remove incorrect assertion in shrink_tnc()
- IB/ipath: Translate legacy diagpkt into newer extended diagpkt
- IB/srp: Fix a sporadic crash triggered by cable pulling
- IB/umad: Fix error handling
- IB/umad: Fix use-after-free on close
- nfsd4: fix FREE_STATEID lockowner leak (regression in 3.14.6)
- nfsd: getattr for FATTR4_WORD0_FILES_AVAIL needs the statfs buffer
- NFS: Don't declare inode uptodate unless all attributes were checked
- nfs: Fix cache_validity check in nfs_write_pageuptodate()
- [powerpc] mm: Check paca psize is up to date for huge mappings
- [powerpc] perf: Ensure all EBB register state is cleared on fork()
- xfs: xfs_readsb needs to check for magic numbers (regression in 3.14)
- reiserfs: call truncate_setsize under tailpack mutex
- ipvs: Fix panic due to non-linear skb
- tracing: Fix syscall_*regfunc() vs copy_process() race
- ALSA: usb-audio: Fix races at disconnection and PCM closing
https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.12
- [powerpc] ibmvscsi: Abort init sequence during error recovery
- [powerpc] ibmvscsi: Add memory barriers for send / receive
- virtio-scsi: avoid cancelling uninitialized work items
- scsi_error: fix invalid setting of host byte
- virtio-scsi: fix various bad behavior on aborted requests
- xhci: Use correct SLOT ID when handling a reset device command
(regression in 3.13)
- usb: chipidea: udc: delete td from req's td list at ep_dequeue
- mtd: eLBC NAND: fix subpage write support (regression in 3.10)
- mtd: nand: omap: fix BCHx ecc.correct to return detected bit-flips in
erased-page
- [x86] drm/i915: Avoid div-by-zero when pixel_multiplier is zero
(regression in 3.13)
- [x86] drm/i915: set backlight duty cycle after backlight enable for gen4
(regression in 3.14)
- Bluetooth: Fix SSP acceptor just-works confirmation without MITM
- Bluetooth: Fix check for connection encryption
- rbd: use reference counts for image requests
- rbd: handle parent_overlap on writes correctly
- mac80211: fix a memory leak on sta rate selection table
(regression in 3.10)
- hugetlb: fix copy_hugetlb_page_range() to handle migration/hwpoisoned
entry
- [arm64] mm: Make icache synchronisation logic huge page aware
- [arm64] Bug fix in stack alignment exception
- fs/cifs: fix regression in cifs_create_mf_symlink() (regression in 3.14)
- blkcg: fix use-after-free in __blkg_release_rcu() by making
blkcg_gq refcnt an atomic_t
- ext4: Fix buffer double free in ext4_alloc_branch()
- ext4: Fix hole punching for files with indirect blocks
- [x86] KVM: preserve the high 32-bits of the PAT register
- [x86] kvm: fix wrong address when writing Hyper-V tsc page
- nfsd: fix rare symlink decoding bug
- tracing: Remove ftrace_stop/start() from reading the trace file
- md: flush writes before starting a recovery.
- mlx4_core: Fix incorrect FLAGS1 bitmap test in mlx4_QUERY_FUNC_CAP
(regression in 3.14)
- netfilter: nf_nat: fix oops on netns removal
- brcmfmac: Fix brcmf_chip_ai_coredisable not applying reset bits to
BCMA_IOCTL (regression in 3.14)
- mmc: rtsx: add R1-no-CRC mmc command type handle (regression in 3.13)
- aio: block io_destroy() until all context requests are completed
(regression in 3.11)
- audit: remove superfluous new- prefix in AUDIT_LOGIN messages
(regression in 3.14)
- mm/numa: Remove BUG_ON() in __handle_mm_fault() (regression in 3.13)
- slab: fix oops when reading /proc/slab_allocators
- sym53c8xx_2: Set DID_REQUEUE return code when aborting squeue
- mm: fix crashes from mbind() merging vmas
[ Ben Hutchings ]
* [rt] Update to 3.14.10-rt7:
- random: Do not add randomness from threaded interrupts
- rtmutex: Resolve conflicts with changes in 3.14.10

View File

@ -1,3 +1,7 @@
[abi]
ignore-changes:
module:arch/x86/kvm/*
[base]
featuresets:
none

View File

@ -1,3 +1,7 @@
[abi]
ignore-changes:
module:arch/x86/kvm/*
[base]
featuresets:
none

View File

@ -1,74 +0,0 @@
From: Tejun Heo <tj@kernel.org>
Date: Thu, 3 Jul 2014 15:43:15 -0400
Subject: ptrace,x86: force IRET path after a ptrace_stop()
Origin: https://git.kernel.org/linus/b9cd18de4db3c9ffa7e17b0dc0ca99ed5aa4d43a
The 'sysret' fastpath does not correctly restore even all regular
registers, much less any segment registers or reflags values. That is
very much part of why it's faster than 'iret'.
Normally that isn't a problem, because the normal ptrace() interface
catches the process using the signal handler infrastructure, which
always returns with an iret.
However, some paths can get caught using ptrace_event() instead of the
signal path, and for those we need to make sure that we aren't going to
return to user space using 'sysret'. Otherwise the modifications that
may have been done to the register set by the tracer wouldn't
necessarily take effect.
Fix it by forcing IRET path by setting TIF_NOTIFY_RESUME from
arch_ptrace_stop_needed() which is invoked from ptrace_stop().
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Andy Lutomirski <luto@amacapital.net>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
---
arch/x86/include/asm/ptrace.h | 16 ++++++++++++++++
include/linux/ptrace.h | 3 +++
2 files changed, 19 insertions(+)
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
index 14fd6fd..6205f0c 100644
--- a/arch/x86/include/asm/ptrace.h
+++ b/arch/x86/include/asm/ptrace.h
@@ -231,6 +231,22 @@ static inline unsigned long regs_get_kernel_stack_nth(struct pt_regs *regs,
#define ARCH_HAS_USER_SINGLE_STEP_INFO
+/*
+ * When hitting ptrace_stop(), we cannot return using SYSRET because
+ * that does not restore the full CPU state, only a minimal set. The
+ * ptracer can change arbitrary register values, which is usually okay
+ * because the usual ptrace stops run off the signal delivery path which
+ * forces IRET; however, ptrace_event() stops happen in arbitrary places
+ * in the kernel and don't force IRET path.
+ *
+ * So force IRET path after a ptrace stop.
+ */
+#define arch_ptrace_stop_needed(code, info) \
+({ \
+ set_thread_flag(TIF_NOTIFY_RESUME); \
+ false; \
+})
+
struct user_desc;
extern int do_get_thread_area(struct task_struct *p, int idx,
struct user_desc __user *info);
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
index 077904c..cc79eff 100644
--- a/include/linux/ptrace.h
+++ b/include/linux/ptrace.h
@@ -334,6 +334,9 @@ static inline void user_single_step_siginfo(struct task_struct *tsk,
* calling arch_ptrace_stop() when it would be superfluous. For example,
* if the thread has not been back to user mode since the last stop, the
* thread state might indicate that nothing needs to be done.
+ *
+ * This is guaranteed to be invoked once before a task stops for ptrace and
+ * may include arch-specific operations necessary prior to a ptrace stop.
*/
#define arch_ptrace_stop_needed(code, info) (0)
#endif

View File

@ -0,0 +1,33 @@
From: Ben Hutchings <ben@decadent.org.uk>
Date: Fri, 11 Jul 2014 17:41:42 +0100
Subject: blkcg: Avoid ABI change in 3.14.12
The type of blkcg_gq::refcnt was changed from int to atomic_t,
and reference counting now requires atomic operations. None
of the in-tree users are modular and this structure isn't exposed
OOT, so we can hide this change.
--- a/block/blk-cgroup.h
+++ b/block/blk-cgroup.h
@@ -18,7 +18,9 @@
#include <linux/seq_file.h>
#include <linux/radix-tree.h>
#include <linux/blkdev.h>
+#ifndef __GENKSYMS__
#include <linux/atomic.h>
+#endif
/* Max limits for throttle policy */
#define THROTL_IOPS_MAX UINT_MAX
@@ -105,7 +107,11 @@ struct blkcg_gq {
struct request_list rl;
/* reference count */
+#ifndef __GENKSYMS__
atomic_t refcnt;
+#else
+ int refcnt;
+#endif
/* is this blkg online? protected by both blkcg and q locks */
bool online;

View File

@ -0,0 +1,18 @@
From: Ben Hutchings <ben@decadent.org.uk>
Date: Fri, 11 Jul 2014 09:07:00 +0100
Subject: trace/syscall: Avoid ABI change in 3.14.11
Hide the added #include from genksyms.
--- a/include/trace/syscall.h
+++ b/include/trace/syscall.h
@@ -4,7 +4,9 @@
#include <linux/tracepoint.h>
#include <linux/unistd.h>
#include <linux/ftrace_event.h>
+#ifndef __GENKSYMS__
#include <linux/thread_info.h>
+#endif
#include <asm/ptrace.h>

View File

@ -91,7 +91,8 @@ debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch
debian/dma-avoid-abi-change-in-3.14.6.patch
debian/vfs-avoid-abi-change-for-cve-2014-4014.patch
debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch
bugfix/all/ptrace-x86-force-IRET-path-after-a-ptrace_stop.patch
bugfix/all/shmem-fix-faulting-into-a-hole-while-it-s-punched.patch
debian/irq-avoid-abi-change-in-3.14.10.patch
debian/ptrace-avoid-abi-change-in-3.14.10.patch
debian/trace-syscall-avoid-abi-change-in-3.14.11.patch
debian/blkcg-avoid-abi-change-in-3.14.12.patch