diff --git a/debian/changelog b/debian/changelog index 0d4c32f68..6f3785068 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,70 @@ -linux (3.12.6-3) UNRELEASED; urgency=low +linux (3.12.7-1) UNRELEASED; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.7 + - [powerpc] kvm: fix rare but potential deadlock scene + - [m68k] TTY: pmac_zilog, check existence of ports in pmz_console_init() + - xhci: Limit the spurious wakeup fix only to HP machines (fixes + regression in 3.12) + - usb: chipidea: host: Only disable the vbus regulator if it is not NULL + (fixes regression in 3.12) + - aio: fix kioctx leak introduced by "aio: Fix a trinity splat" + - iser-target: Move INIT_WORK setup into isert_create_device_ib_res + - [x86] idle: Repair large-server 50-watt idle-power regression + (fixes regression in 3.10) + - ext4: call ext4_error_inode() if jbd2_journal_dirty_metadata() fails + - ext4: fix use-after-free in ext4_mb_new_blocks + - ext4: fix del_timer() misuse for ->s_err_report + - ext4: add explicit casts when masking cluster sizes + - ext4: fix bigalloc regression + - sched/rt: Fix rq's cpupri leak while enqueue/dequeue child RT entities + - net_dma: mark broken (fixes potential data loss) + - drm/i915: Take modeset locks around intel_modeset_setup_hw_state() + - drm/i915: Hold mutex across i915_gem_release + - drm/i915: Fix use-after-free in do_switch + - drm/i915: don't update the dri1 breadcrumb with modesetting + - drm/i915: Fix erroneous dereference of batch_obj inside reset_status + - ceph: Avoid data inconsistency due to d-cache aliasing in readpage() + - tg3: Expand 4g_overflow_test workaround to skb fragments of any size. + - cgroup: fix cgroup_create() error handling path + - [powerpc] auxvec.h: account for AT_HWCAP2 in AT_VECTOR_SIZE_BASE + - ath9k_htc: properly set MAC address and BSSID mask (CVE-2013-4579) + (Closes: #729573) + - KVM: nVMX: Unconditionally uninit the MMU on nested vmexit + - [x86] KVM: Fix APIC map calculation after re-enabling + - [powerpc] Fix bad stack check in exception entry + - libata: implement ATA_HORKAGE_NO_NCQ_TRIM and apply it to Micro M500 SSDs + (fixes potential data loss) + - radiotap: fix bitmap-end-finding buffer overrun + - mm: numa: serialise parallel get_user_page against THP migration + - mm: numa: call MMU notifiers on THP migration + - mm: clear pmd_numa before invalidating + - mm: numa: do not clear PTE for pte_numa update + - mm: numa: ensure anon_vma is locked to prevent parallel THP splits + - sched: numa: skip inaccessible VMAs + - mm: numa: clear numa hinting information on mprotect + - mm: fix TLB flush race between migration, and change_protection_range + - mm: numa: guarantee that tlb_flush_pending updates are visible before + page table updates + - mm/mempolicy: correct putback method for isolate pages if failed + - mm/compaction: respect ignore_skip_hint in update_pageblock_skip + - mm/hugetlb: check for pte NULL pointer in __page_check_address() + - mm: munlock: fix a bug where THP tail page is encountered + - mm: munlock: fix deadlock in __munlock_pagevec() + - mm: fix use-after-free in sys_remap_file_pages + - Input: allocate absinfo data when setting ABS capability + - GFS2: Fix use-after-free race when calling gfs2_remove_from_ail + - GFS2: Fix slab memory leak in gfs2_bufdata + - GFS2: Fix incorrect invalidation for DIO/buffered I/O + - [s390] 3270: fix allocation of tty3270_screen structure + - [sh] always link in helper functions extracted from libgcc + - selinux: look for IPsec labels on both inbound and outbound packets + - selinux: process labeled IPsec TCP SYN-ACK packets properly in + selinux_ip_postroute() + - aio: clean up and fix aio_setup_ring page mapping + - aio/migratepages: make aio migrate pages sane + - ACPIPHP / radeon / nouveau: Fix VGA switcheroo problem related to hotplug + (regression in 3.12) [ Ben Hutchings ] * [hppa] Update configuration, thanks to Helge Deller (Closes: #733895) @@ -22,6 +88,7 @@ linux (3.12.6-3) UNRELEASED; urgency=low CRYPTO_AES_SPARC64, CRYPTO_CAMELLIA_SPARC64, CRYPTO_DES_SPARC64, CRYPTO_DEV_NIAGARA2 as modules - [x86] Enable CRYPTO_CRC32_PCLMUL as module + * [powerpc] Remove AT_HWCAP2 from auxv to avoid module ABI change -- Ben Hutchings Thu, 02 Jan 2014 01:26:59 +0000 diff --git a/debian/config/defines b/debian/config/defines index f096732df..8d366d422 100644 --- a/debian/config/defines +++ b/debian/config/defines @@ -1,5 +1,8 @@ [abi] abiname: 1 +ignore-changes: +# Assuming OOT modules don't use the target framework + module:drivers/target/* [base] arches: diff --git a/debian/patches/bugfix/arm/ahci-imx-Explicitly-clear-IMX6Q_GPR13_SATA_MPLL_CLK_.patch b/debian/patches/bugfix/arm/ahci-imx-Explicitly-clear-IMX6Q_GPR13_SATA_MPLL_CLK_.patch deleted file mode 100644 index 86f77d86d..000000000 --- a/debian/patches/bugfix/arm/ahci-imx-Explicitly-clear-IMX6Q_GPR13_SATA_MPLL_CLK_.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 10becdb402af4fd4808a0491a726b96128c41076 Mon Sep 17 00:00:00 2001 -From: Marek Vasut -Date: Mon, 25 Nov 2013 09:47:00 +0100 -Subject: [PATCH] ahci: imx: Explicitly clear IMX6Q_GPR13_SATA_MPLL_CLK_EN - -We must clear this IMX6Q_GPR13_SATA_MPLL_CLK_EN bit on i.MX6Q, otherwise -Linux will fail to find the attached drive on some boards. - -This entire fix was: -Reported-by: Eric Nelson - -Signed-off-by: Marek Vasut -Reviewed-by: Shawn Guo -Cc: Richard Zhu -Cc: Linux-IDE -Signed-off-by: Tejun Heo -Cc: stable@vger.kernel.org ---- - drivers/ata/ahci_imx.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -Index: linux/drivers/ata/ahci_imx.c -=================================================================== ---- linux.orig/drivers/ata/ahci_imx.c 2013-11-29 19:28:26.000000000 +0000 -+++ linux/drivers/ata/ahci_imx.c 2013-12-03 19:42:59.693982150 +0000 -@@ -60,7 +60,7 @@ - /* - * set PHY Paremeters, two steps to configure the GPR13, - * one write for rest of parameters, mask of first write -- * is 0x07fffffd, and the other one write for setting -+ * is 0x07ffffff, and the other one write for setting - * the mpll_clk_en. - */ - regmap_update_bits(imxpriv->gpr, 0x34, IMX6Q_GPR13_SATA_RX_EQ_VAL_MASK -@@ -71,6 +71,7 @@ - | IMX6Q_GPR13_SATA_TX_ATTEN_MASK - | IMX6Q_GPR13_SATA_TX_BOOST_MASK - | IMX6Q_GPR13_SATA_TX_LVL_MASK -+ | IMX6Q_GPR13_SATA_MPLL_CLK_EN - | IMX6Q_GPR13_SATA_TX_EDGE_RATE - , IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB - | IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M diff --git a/debian/patches/debian/acpi-avoid-abi-change-in-3.12.7.patch b/debian/patches/debian/acpi-avoid-abi-change-in-3.12.7.patch new file mode 100644 index 000000000..7e3de0358 --- /dev/null +++ b/debian/patches/debian/acpi-avoid-abi-change-in-3.12.7.patch @@ -0,0 +1,22 @@ +From: Ben Hutchings +Date: Wed, 15 Jan 2014 02:01:08 +0000 +Subject: ACPI: Avoid ABI change in 3.12.7 +Forwarded: not-needed + +Hide the new no_hotplug flag from genksyms. + +--- a/include/acpi/acpi_bus.h ++++ b/include/acpi/acpi_bus.h +@@ -169,8 +169,12 @@ struct acpi_device_flags { + u32 ejectable:1; + u32 power_manageable:1; + u32 match_driver:1; ++#ifdef __GENKSYMS__ ++ u32 reserved:27; ++#else + u32 no_hotplug:1; + u32 reserved:26; ++#endif + }; + + /* File System */ diff --git a/debian/patches/debian/mm-avoid-abi-change-in-3.12.7.patch b/debian/patches/debian/mm-avoid-abi-change-in-3.12.7.patch new file mode 100644 index 000000000..65446f9c9 --- /dev/null +++ b/debian/patches/debian/mm-avoid-abi-change-in-3.12.7.patch @@ -0,0 +1,30 @@ +From: Ben Hutchings +Date: Wed, 15 Jan 2014 02:09:13 +0000 +Subject: mm: Avoid ABI change in 3.12.7 +Forwarded: not-needed + +Move the added member mm_struct::tlb_flush_pending to the end of +the structure and hide it from genksyms. + +The structure is always allocated in the core kernel. + +--- a/include/linux/mm_types.h ++++ b/include/linux/mm_types.h +@@ -437,6 +437,8 @@ struct mm_struct { + */ + int first_nid; + #endif ++ struct uprobes_state uprobes_state; ++#ifndef __GENKSYMS__ + #if defined(CONFIG_NUMA_BALANCING) || defined(CONFIG_COMPACTION) + /* + * An operation with batched TLB flushing is going on. Anything that +@@ -445,7 +447,7 @@ struct mm_struct { + */ + bool tlb_flush_pending; + #endif +- struct uprobes_state uprobes_state; ++#endif + }; + + /* first nid will either be a valid NID or one of these values */ diff --git a/debian/patches/debian/remove-at_hwcap2-from-auxv.patch b/debian/patches/debian/remove-at_hwcap2-from-auxv.patch new file mode 100644 index 000000000..08231f50c --- /dev/null +++ b/debian/patches/debian/remove-at_hwcap2-from-auxv.patch @@ -0,0 +1,45 @@ +From: Ben Hutchings +Date: Tue, 14 Jan 2014 06:16:18 +0000 +Subject: Remove AT_HWCAP2 from auxv +Forwarded: not-needed + +This reverts commit e944554fc821898a9b76dcb9081e5ff21574a00b and +most of commit 2171364d1a92d0a101b455315de7a92efb566008. + +The former was needed to fix the latter, but causes an ABI change. +Only powerpc currently uses AT_HWCAP2. + +--- a/fs/binfmt_elf.c ++++ b/fs/binfmt_elf.c +@@ -240,9 +240,6 @@ create_elf_tables(struct linux_binprm *b + NEW_AUX_ENT(AT_EGID, from_kgid_munged(cred->user_ns, cred->egid)); + NEW_AUX_ENT(AT_SECURE, security_bprm_secureexec(bprm)); + NEW_AUX_ENT(AT_RANDOM, (elf_addr_t)(unsigned long)u_rand_bytes); +-#ifdef ELF_HWCAP2 +- NEW_AUX_ENT(AT_HWCAP2, ELF_HWCAP2); +-#endif + NEW_AUX_ENT(AT_EXECFN, bprm->exec); + if (k_platform) { + NEW_AUX_ENT(AT_PLATFORM, +--- a/fs/binfmt_elf_fdpic.c ++++ b/fs/binfmt_elf_fdpic.c +@@ -615,9 +615,6 @@ static int create_elf_fdpic_tables(struc + nr = 0; + csp -= DLINFO_ITEMS * 2 * sizeof(unsigned long); + NEW_AUX_ENT(AT_HWCAP, ELF_HWCAP); +-#ifdef ELF_HWCAP2 +- NEW_AUX_ENT(AT_HWCAP2, ELF_HWCAP2); +-#endif + NEW_AUX_ENT(AT_PAGESZ, PAGE_SIZE); + NEW_AUX_ENT(AT_CLKTCK, CLOCKS_PER_SEC); + NEW_AUX_ENT(AT_PHDR, exec_params->ph_addr); +--- a/include/linux/auxvec.h ++++ b/include/linux/auxvec.h +@@ -3,6 +3,6 @@ + + #include + +-#define AT_VECTOR_SIZE_BASE 20 /* NEW_AUX_ENT entries in auxiliary table */ ++#define AT_VECTOR_SIZE_BASE 19 /* NEW_AUX_ENT entries in auxiliary table */ + /* number of "#define AT_.*" above, minus {AT_NULL, AT_IGNORE, AT_NOTELF} */ + #endif /* _LINUX_AUXVEC_H */ diff --git a/debian/patches/features/all/aufs3/aufs3-mmap.patch b/debian/patches/features/all/aufs3/aufs3-mmap.patch index 3ffebe3bc..82af9cf5a 100644 --- a/debian/patches/features/all/aufs3/aufs3-mmap.patch +++ b/debian/patches/features/all/aufs3/aufs3-mmap.patch @@ -8,6 +8,9 @@ Patch headers added by debian/patches/features/all/aufs3/gen-patch aufs3.12 mmap patch +[bwh: Resolved conflict with commit 4eb919825e6c ('mm: fix use-after-free + in sys_remap_file_pages') backported into 3.12.7] + diff --git a/fs/buffer.c b/fs/buffer.c index 6024877..95bbf13 100644 --- a/fs/buffer.c @@ -226,16 +229,17 @@ diff --git a/mm/fremap.c b/mm/fremap.c index 5bff081..246a9c7 100644 --- a/mm/fremap.c +++ b/mm/fremap.c -@@ -207,11 +207,12 @@ get_write_lock: +@@ -207,12 +207,13 @@ get_write_lock: */ if (mapping_cap_account_dirty(mapping)) { unsigned long addr; - struct file *file = get_file(vma->vm_file); + struct file *file = vma->vm_file; + /* mmap_region may free vma; grab the info now */ + vm_flags = vma->vm_flags; + vma_get_file(vma); - addr = mmap_region(file, start, size, - vma->vm_flags, pgoff); + addr = mmap_region(file, start, size, vm_flags, pgoff); - fput(file); + vma_fput(vma); if (IS_ERR_VALUE(addr)) { diff --git a/debian/patches/features/all/rt/sched-mmdrop-delayed.patch b/debian/patches/features/all/rt/sched-mmdrop-delayed.patch index 7e90123f1..422280efc 100644 --- a/debian/patches/features/all/rt/sched-mmdrop-delayed.patch +++ b/debian/patches/features/all/rt/sched-mmdrop-delayed.patch @@ -7,6 +7,7 @@ Needs thread context (pgd_lock) -> ifdeffed. workqueues wont work with RT Signed-off-by: Thomas Gleixner +[bwh: Adjust context to apply after 3.12.7 and our ABI-preserving hack] --- include/linux/mm_types.h | 4 ++++ include/linux/sched.h | 12 ++++++++++++ @@ -24,16 +25,16 @@ Signed-off-by: Thomas Gleixner #include #include #include -@@ -440,6 +441,9 @@ struct mm_struct { +@@ -442,6 +443,9 @@ struct mm_struct { int first_nid; #endif struct uprobes_state uprobes_state; +#ifdef CONFIG_PREEMPT_RT_BASE + struct rcu_head delayed_drop; +#endif - }; - - /* first nid will either be a valid NID or one of these values */ + #ifndef __GENKSYMS__ + #if defined(CONFIG_NUMA_BALANCING) || defined(CONFIG_COMPACTION) + /* --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2129,12 +2129,24 @@ extern struct mm_struct * mm_alloc(void) @@ -63,7 +64,7 @@ Signed-off-by: Thomas Gleixner /* Grab a reference to a task's mm, if it is not already going away */ --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -610,6 +610,19 @@ void __mmdrop(struct mm_struct *mm) +@@ -616,6 +616,19 @@ void __mmdrop(struct mm_struct *mm) } EXPORT_SYMBOL_GPL(__mmdrop); diff --git a/debian/patches/series b/debian/patches/series index 188ee2d97..0dfc7674b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -77,7 +77,11 @@ bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch bugfix/all/UAPI-include-asm-byteorder.h-in-linux-raid-md_p.h.patch bugfix/all/rds-prevent-bug_on-triggered-by-congestion-update-to-loopback.patch -bugfix/arm/ahci-imx-Explicitly-clear-IMX6Q_GPR13_SATA_MPLL_CLK_.patch bugfix/all/disable-some-marvell-phys.patch features/all/media-az6007-support-Technisat-Cablestar-Combo-HDCI-.patch bugfix/all/alpha-Prevent-a-NULL-ptr-dereference-in-csum_partial.patch + +# Temporary ABI hacks for 3.12-1 +debian/remove-at_hwcap2-from-auxv.patch +debian/acpi-avoid-abi-change-in-3.12.7.patch +debian/mm-avoid-abi-change-in-3.12.7.patch