diff options
-rw-r--r-- | PNP-Add-Haswell-ULT-to-Intel-MCH-size-workaround.patch | 119 | ||||
-rw-r--r-- | config-armv7 | 2 | ||||
-rw-r--r-- | config-generic | 5 | ||||
-rw-r--r-- | config-x86-32-generic | 1 | ||||
-rw-r--r-- | config-x86-generic | 1 | ||||
-rw-r--r-- | config-x86_64-generic | 8 | ||||
-rw-r--r-- | disable-CONFIG_EXPERT-for-ZONE_DMA.patch | 43 | ||||
-rw-r--r-- | gitrev | 2 | ||||
-rw-r--r-- | kernel.spec | 17 | ||||
-rw-r--r-- | ptrace-being-capable-wrt-a-process-requires-mapped-u.patch | 108 | ||||
-rw-r--r-- | rebase-notes.txt | 1 | ||||
-rw-r--r-- | sources | 2 |
12 files changed, 194 insertions, 115 deletions
diff --git a/PNP-Add-Haswell-ULT-to-Intel-MCH-size-workaround.patch b/PNP-Add-Haswell-ULT-to-Intel-MCH-size-workaround.patch new file mode 100644 index 000000000..c2082a3b4 --- /dev/null +++ b/PNP-Add-Haswell-ULT-to-Intel-MCH-size-workaround.patch @@ -0,0 +1,119 @@ +From afa5b65015ff2a7f0b4ec8cab6f58fa47025259a Mon Sep 17 00:00:00 2001 +From: Josh Boyer <jwboyer@fedoraproject.org> +Date: Fri, 22 Jan 2016 08:11:46 -0500 +Subject: [PATCH] PNP: Add Haswell-ULT to Intel MCH size workaround + +Add device ID 0x0a04 for Haswell-ULT to the list of devices with MCH +problems. + +From a Lenovo ThinkPad T440S: +[ 0.188604] pnp: PnP ACPI init +[ 0.189044] system 00:00: [mem 0x00000000-0x0009ffff] could not be reserved +[ 0.189048] system 00:00: [mem 0x000c0000-0x000c3fff] could not be reserved +[ 0.189050] system 00:00: [mem 0x000c4000-0x000c7fff] could not be reserved +[ 0.189052] system 00:00: [mem 0x000c8000-0x000cbfff] could not be reserved +[ 0.189054] system 00:00: [mem 0x000cc000-0x000cffff] could not be reserved +[ 0.189056] system 00:00: [mem 0x000d0000-0x000d3fff] has been reserved +[ 0.189058] system 00:00: [mem 0x000d4000-0x000d7fff] has been reserved +[ 0.189060] system 00:00: [mem 0x000d8000-0x000dbfff] has been reserved +[ 0.189061] system 00:00: [mem 0x000dc000-0x000dffff] has been reserved +[ 0.189063] system 00:00: [mem 0x000e0000-0x000e3fff] could not be reserved +[ 0.189065] system 00:00: [mem 0x000e4000-0x000e7fff] could not be reserved +[ 0.189067] system 00:00: [mem 0x000e8000-0x000ebfff] could not be reserved +[ 0.189069] system 00:00: [mem 0x000ec000-0x000effff] could not be reserved +[ 0.189071] system 00:00: [mem 0x000f0000-0x000fffff] could not be reserved +[ 0.189073] system 00:00: [mem 0x00100000-0xdf9fffff] could not be reserved +[ 0.189075] system 00:00: [mem 0xfec00000-0xfed3ffff] could not be reserved +[ 0.189078] system 00:00: [mem 0xfed4c000-0xffffffff] could not be reserved +[ 0.189082] system 00:00: Plug and Play ACPI device, IDs PNP0c01 (active) +[ 0.189216] system 00:01: [io 0x1800-0x189f] could not be reserved +[ 0.189220] system 00:01: [io 0x0800-0x087f] has been reserved +[ 0.189222] system 00:01: [io 0x0880-0x08ff] has been reserved +[ 0.189224] system 00:01: [io 0x0900-0x097f] has been reserved +[ 0.189226] system 00:01: [io 0x0980-0x09ff] has been reserved +[ 0.189229] system 00:01: [io 0x0a00-0x0a7f] has been reserved +[ 0.189231] system 00:01: [io 0x0a80-0x0aff] has been reserved +[ 0.189233] system 00:01: [io 0x0b00-0x0b7f] has been reserved +[ 0.189235] system 00:01: [io 0x0b80-0x0bff] has been reserved +[ 0.189238] system 00:01: [io 0x15e0-0x15ef] has been reserved +[ 0.189240] system 00:01: [io 0x1600-0x167f] has been reserved +[ 0.189242] system 00:01: [io 0x1640-0x165f] has been reserved +[ 0.189246] system 00:01: [mem 0xf8000000-0xfbffffff] could not be reserved +[ 0.189249] system 00:01: [mem 0x00000000-0x00000fff] could not be reserved +[ 0.189251] system 00:01: [mem 0xfed1c000-0xfed1ffff] has been reserved +[ 0.189254] system 00:01: [mem 0xfed10000-0xfed13fff] has been reserved +[ 0.189256] system 00:01: [mem 0xfed18000-0xfed18fff] has been reserved +[ 0.189258] system 00:01: [mem 0xfed19000-0xfed19fff] has been reserved +[ 0.189261] system 00:01: [mem 0xfed45000-0xfed4bfff] has been reserved +[ 0.189264] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active) +[....] +[ 0.583653] resource sanity check: requesting [mem 0xfed10000-0xfed15fff], which spans more than pnp 00:01 [mem 0xfed10000-0xfed13fff] +[ 0.583654] ------------[ cut here ]------------ +[ 0.583660] WARNING: CPU: 0 PID: 1 at arch/x86/mm/ioremap.c:198 __ioremap_caller+0x2c5/0x380() +[ 0.583661] Info: mapping multiple BARs. Your kernel is fine. +[ 0.583662] Modules linked in: + +[ 0.583666] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.3.3-303.fc23.x86_64 #1 +[ 0.583668] Hardware name: LENOVO 20AR001GXS/20AR001GXS, BIOS GJET86WW (2.36 ) 12/04/2015 +[ 0.583670] 0000000000000000 0000000014cf7e59 ffff880214a1baf8 ffffffff813a625f +[ 0.583673] ffff880214a1bb40 ffff880214a1bb30 ffffffff810a07c2 00000000fed10000 +[ 0.583675] ffffc90000cb8000 0000000000006000 0000000000000000 ffff8800d6381040 +[ 0.583678] Call Trace: +[ 0.583683] [<ffffffff813a625f>] dump_stack+0x44/0x55 +[ 0.583686] [<ffffffff810a07c2>] warn_slowpath_common+0x82/0xc0 +[ 0.583688] [<ffffffff810a085c>] warn_slowpath_fmt+0x5c/0x80 +[ 0.583692] [<ffffffff810a6fba>] ? iomem_map_sanity_check+0xba/0xd0 +[ 0.583695] [<ffffffff81065835>] __ioremap_caller+0x2c5/0x380 +[ 0.583698] [<ffffffff81065907>] ioremap_nocache+0x17/0x20 +[ 0.583701] [<ffffffff8103a119>] snb_uncore_imc_init_box+0x79/0xb0 +[ 0.583705] [<ffffffff81038900>] uncore_pci_probe+0xd0/0x1b0 +[ 0.583707] [<ffffffff813efda5>] local_pci_probe+0x45/0xa0 +[ 0.583710] [<ffffffff813f118d>] pci_device_probe+0xfd/0x140 +[ 0.583713] [<ffffffff814d9b52>] driver_probe_device+0x222/0x480 +[ 0.583715] [<ffffffff814d9e34>] __driver_attach+0x84/0x90 +[ 0.583717] [<ffffffff814d9db0>] ? driver_probe_device+0x480/0x480 +[ 0.583720] [<ffffffff814d762c>] bus_for_each_dev+0x6c/0xc0 +[ 0.583722] [<ffffffff814d930e>] driver_attach+0x1e/0x20 +[ 0.583724] [<ffffffff814d8e4b>] bus_add_driver+0x1eb/0x280 +[ 0.583727] [<ffffffff81d6af1a>] ? uncore_cpu_setup+0x12/0x12 +[ 0.583729] [<ffffffff814da680>] driver_register+0x60/0xe0 +[ 0.583733] [<ffffffff813ef78c>] __pci_register_driver+0x4c/0x50 +[ 0.583736] [<ffffffff81d6affc>] intel_uncore_init+0xe2/0x2e6 +[ 0.583738] [<ffffffff81d6af1a>] ? uncore_cpu_setup+0x12/0x12 +[ 0.583741] [<ffffffff81002123>] do_one_initcall+0xb3/0x200 +[ 0.583745] [<ffffffff810be500>] ? parse_args+0x1a0/0x4a0 +[ 0.583749] [<ffffffff81d5c1c8>] kernel_init_freeable+0x189/0x223 +[ 0.583752] [<ffffffff81775c40>] ? rest_init+0x80/0x80 +[ 0.583754] [<ffffffff81775c4e>] kernel_init+0xe/0xe0 +[ 0.583758] [<ffffffff81781adf>] ret_from_fork+0x3f/0x70 +[ 0.583760] [<ffffffff81775c40>] ? rest_init+0x80/0x80 +[ 0.583765] ---[ end trace 077c426a39e018aa ]--- + +00:00.0 Host bridge [0600]: Intel Corporation Haswell-ULT DRAM Controller [8086:0a04] (rev 0b) + Subsystem: Lenovo Device [17aa:220c] + Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- + Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx- + Latency: 0 + Capabilities: <access denied> + Kernel driver in use: hsw_uncore + +Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> +--- + drivers/pnp/quirks.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c +index f700723ca5d6..d28e3ab9479c 100644 +--- a/drivers/pnp/quirks.c ++++ b/drivers/pnp/quirks.c +@@ -342,6 +342,7 @@ static void quirk_amd_mmconfig_area(struct pnp_dev *dev) + /* Device IDs of parts that have 32KB MCH space */ + static const unsigned int mch_quirk_devices[] = { + 0x0154, /* Ivy Bridge */ ++ 0x0a04, /* Haswell-ULT */ + 0x0c00, /* Haswell */ + 0x1604, /* Broadwell */ + }; +-- +2.5.0 + diff --git a/config-armv7 b/config-armv7 index 271751071..bf1742e09 100644 --- a/config-armv7 +++ b/config-armv7 @@ -139,6 +139,7 @@ CONFIG_PWM_TIECAP=m CONFIG_PWM_TIEHRPWM=m CONFIG_PWM_TWL=m CONFIG_PWM_TWL_LED=m +CONFIG_PWM_OMAP_DMTIMER=m CONFIG_CRYPTO_DEV_OMAP_SHAM=m CONFIG_CRYPTO_DEV_OMAP_AES=m @@ -351,6 +352,7 @@ CONFIG_QCOM_QFPROM=m CONFIG_QCOM_WCNSS_CTRL=m CONFIG_QCOM_SMSM=y CONFIG_QCOM_SMP2P=m +CONFIG_PCIE_QCOM=y # i.MX # CONFIG_MXC_DEBUG_BOARD is not set diff --git a/config-generic b/config-generic index b9109aafc..e4f0a11bd 100644 --- a/config-generic +++ b/config-generic @@ -386,6 +386,7 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 # CONFIG_BLK_DEV_CRYPTOLOOP is not set CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_NVME=m +# CONFIG_BLK_DEV_NVME_SCSI is not set CONFIG_BLK_DEV_SKD=m # 64-bit only but easier to put here CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_RAM=m @@ -4844,6 +4845,10 @@ CONFIG_KGDB_LOW_LEVEL_TRAP=y # CONFIG_KGDB_TESTS_ON_BOOT is not set # CONFIG_GDB_SCRIPTS is not set +# CONFIG_UBSAN is not set +# CONFIG_UBSAN_ALIGNMENT is not set +# CONFIG_UBSAN_SANITIZE_ALL is not set + # # Security options diff --git a/config-x86-32-generic b/config-x86-32-generic index 82c9e4cce..04100f267 100644 --- a/config-x86-32-generic +++ b/config-x86-32-generic @@ -40,6 +40,7 @@ CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G is not set CONFIG_HIGHMEM=y CONFIG_HIGHPTE=y +CONFIG_ZONE_DMA=y # CONFIG_MATH_EMULATION is not set diff --git a/config-x86-generic b/config-x86-generic index 2d41bfbb1..595c03e02 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -147,6 +147,7 @@ CONFIG_GENERIC_ISA_DMA=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_BIOS=y +CONFIG_VMD=m CONFIG_HOTPLUG_PCI_COMPAQ=m # CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set diff --git a/config-x86_64-generic b/config-x86_64-generic index 9d13391fc..4a811a2d2 100644 --- a/config-x86_64-generic +++ b/config-x86_64-generic @@ -113,7 +113,7 @@ CONFIG_SPARSEMEM_VMEMMAP=y # CONFIG_MOVABLE_NODE is not set CONFIG_MEMORY_HOTPLUG=y # CONFIG_ARCH_MEMORY_PROBE is not set -# CONFIG_MEMORY_HOTREMOVE is not set +CONFIG_MEMORY_HOTREMOVE=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_BLK_DEV_CMD640 is not set @@ -212,3 +212,9 @@ CONFIG_CMA=y # CONFIG_CMA_DEBUG is not set # CONFIG_CMA_DEBUGFS is not set CONFIG_CMA_AREAS=7 + +# Changes for persistent memory devices +# CONFIG_ZONE_DMA is not set +CONFIG_ZONE_DEVICE=y +CONFIG_NVDIMM_PFN=y +CONFIG_ND_PFN=m diff --git a/disable-CONFIG_EXPERT-for-ZONE_DMA.patch b/disable-CONFIG_EXPERT-for-ZONE_DMA.patch new file mode 100644 index 000000000..9cc0525f4 --- /dev/null +++ b/disable-CONFIG_EXPERT-for-ZONE_DMA.patch @@ -0,0 +1,43 @@ +From 888ba9b2a02e8d144c3a9ae5e01a1a94280cd2bf Mon Sep 17 00:00:00 2001 +From: Fedora Kernel Team <kernel-team@fedoraproject.org> +Date: Fri, 22 Jan 2016 13:03:36 -0600 +Subject: [PATCH] Make ZONE_DMA not depend on CONFIG_EXPERT + +Disable the requirement on CONFIG_EXPERT for ZONE_DMA and ZONE_DEVICE so +that we can enable NVDIMM_PFN and ND_PFN + +Signed-off-by: Justin Forbes <jforbes@fedoraproject.org> +--- + arch/x86/Kconfig | 2 +- + mm/Kconfig | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig +index a02c842..ea2eaeb 100644 +--- a/arch/x86/Kconfig ++++ b/arch/x86/Kconfig +@@ -315,7 +315,7 @@ source "kernel/Kconfig.freezer" + menu "Processor type and features" + + config ZONE_DMA +- bool "DMA memory allocation support" if EXPERT ++ bool "DMA memory allocation support" + default y + help + DMA memory allocation support allows devices with less than 32-bit +diff --git a/mm/Kconfig b/mm/Kconfig +index 97a4e06..26bbbe0 100644 +--- a/mm/Kconfig ++++ b/mm/Kconfig +@@ -650,7 +650,7 @@ config IDLE_PAGE_TRACKING + See Documentation/vm/idle_page_tracking.txt for more details. + + config ZONE_DEVICE +- bool "Device memory (pmem, etc...) hotplug support" if EXPERT ++ bool "Device memory (pmem, etc...) hotplug support" + default !ZONE_DMA + depends on !ZONE_DMA + depends on MEMORY_HOTPLUG +-- +2.5.0 + @@ -1 +1 @@ -30f05309bde49295e02e45c7e615f73aa4e0ccc2 +3e1e21c7bfcfa9bf06c07f48a13faca2f62b3339 diff --git a/kernel.spec b/kernel.spec index dfd9f3fe6..10d928a31 100644 --- a/kernel.spec +++ b/kernel.spec @@ -77,7 +77,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 0 # The git snapshot level -%define gitrev 8 +%define gitrev 9 # Set rpm version accordingly %define rpmversion 4.%{upstream_sublevel}.0 %endif @@ -606,9 +606,6 @@ Patch508: kexec-uefi-copy-secure_boot-flag-in-boot-params.patch #rhbz 1286293 Patch571: ideapad-laptop-Add-Lenovo-ideapad-Y700-17ISK-to-no_h.patch -#CVE-2015-8709 rhbz 1295287 1295288 -Patch603: ptrace-being-capable-wrt-a-process-requires-mapped-u.patch - #rhbz 1295646 Patch621: drm-udl-Use-unlocked-gem-unreferencing.patch @@ -621,6 +618,12 @@ Patch637: tty-Fix-unsafe-ldisc-reference-via-ioctl-TIOCGETD.patch #rhbz 1279653 Patch638: rtlwifi-rtl8821ae-Fix-5G-failure-when-EEPROM-is-inco.patch +#rhbz 1300955 +Patch640: PNP-Add-Haswell-ULT-to-Intel-MCH-size-workaround.patch + +#Required for some persistent memory options +Patch641: disable-CONFIG_EXPERT-for-ZONE_DMA.patch + # END OF PATCH DEFINITIONS %endif @@ -2069,6 +2072,12 @@ fi # # %changelog +* Fri Jan 22 2016 Justin M. Forbes <jforbes@fedoraproject.org> - 4.5.0-0.rc0.git9.1 +- Linux v4.4-10454-g3e1e21c + +* Fri Jan 22 2016 Josh Boyer <jwboyer@fedoraproject.org> +- Fix backtrace from PNP conflict on Haswell-ULT (rhbz 1300955) + * Thu Jan 21 2016 Justin M. Forbes <jforbes@fedoraproject.org> - 4.5.0-0.rc0.git8.1 - Linux v4.4-10062-g30f0530 diff --git a/ptrace-being-capable-wrt-a-process-requires-mapped-u.patch b/ptrace-being-capable-wrt-a-process-requires-mapped-u.patch deleted file mode 100644 index 55c3ab9d1..000000000 --- a/ptrace-being-capable-wrt-a-process-requires-mapped-u.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 64a37c8197f4e1c2637cd80326f4649282176369 Mon Sep 17 00:00:00 2001 -From: Jann Horn <jann@thejh.net> -Date: Sat, 26 Dec 2015 03:52:31 +0100 -Subject: [PATCH] ptrace: being capable wrt a process requires mapped uids/gids - -ptrace_has_cap() checks whether the current process should be -treated as having a certain capability for ptrace checks -against another process. Until now, this was equivalent to -has_ns_capability(current, target_ns, CAP_SYS_PTRACE). - -However, if a root-owned process wants to enter a user -namespace for some reason without knowing who owns it and -therefore can't change to the namespace owner's uid and gid -before entering, as soon as it has entered the namespace, -the namespace owner can attach to it via ptrace and thereby -gain access to its uid and gid. - -While it is possible for the entering process to switch to -the uid of a claimed namespace owner before entering, -causing the attempt to enter to fail if the claimed uid is -wrong, this doesn't solve the problem of determining an -appropriate gid. - -With this change, the entering process can first enter the -namespace and then safely inspect the namespace's -properties, e.g. through /proc/self/{uid_map,gid_map}, -assuming that the namespace owner doesn't have access to -uid 0. - -Changed in v2: The caller needs to be capable in the -namespace into which tcred's uids/gids can be mapped. - -Signed-off-by: Jann Horn <jann@thejh.net> ---- - kernel/ptrace.c | 33 ++++++++++++++++++++++++++++----- - 1 file changed, 28 insertions(+), 5 deletions(-) - -diff --git a/kernel/ptrace.c b/kernel/ptrace.c -index 787320de68e0..407c382b45c8 100644 ---- a/kernel/ptrace.c -+++ b/kernel/ptrace.c -@@ -20,6 +20,7 @@ - #include <linux/uio.h> - #include <linux/audit.h> - #include <linux/pid_namespace.h> -+#include <linux/user_namespace.h> - #include <linux/syscalls.h> - #include <linux/uaccess.h> - #include <linux/regset.h> -@@ -207,12 +208,34 @@ static int ptrace_check_attach(struct task_struct *child, bool ignore_state) - return ret; - } - --static int ptrace_has_cap(struct user_namespace *ns, unsigned int mode) -+static bool ptrace_has_cap(const struct cred *tcred, unsigned int mode) - { -+ struct user_namespace *tns = tcred->user_ns; -+ -+ /* When a root-owned process enters a user namespace created by a -+ * malicious user, the user shouldn't be able to execute code under -+ * uid 0 by attaching to the root-owned process via ptrace. -+ * Therefore, similar to the capable_wrt_inode_uidgid() check, -+ * verify that all the uids and gids of the target process are -+ * mapped into a namespace below the current one in which the caller -+ * is capable. -+ * No fsuid/fsgid check because __ptrace_may_access doesn't do it -+ * either. -+ */ -+ while ( -+ !kuid_has_mapping(tns, tcred->euid) || -+ !kuid_has_mapping(tns, tcred->suid) || -+ !kuid_has_mapping(tns, tcred->uid) || -+ !kgid_has_mapping(tns, tcred->egid) || -+ !kgid_has_mapping(tns, tcred->sgid) || -+ !kgid_has_mapping(tns, tcred->gid)) { -+ tns = tns->parent; -+ } -+ - if (mode & PTRACE_MODE_NOAUDIT) -- return has_ns_capability_noaudit(current, ns, CAP_SYS_PTRACE); -+ return has_ns_capability_noaudit(current, tns, CAP_SYS_PTRACE); - else -- return has_ns_capability(current, ns, CAP_SYS_PTRACE); -+ return has_ns_capability(current, tns, CAP_SYS_PTRACE); - } - - /* Returns 0 on success, -errno on denial. */ -@@ -241,7 +264,7 @@ static int __ptrace_may_access(struct task_struct *task, unsigned int mode) - gid_eq(cred->gid, tcred->sgid) && - gid_eq(cred->gid, tcred->gid)) - goto ok; -- if (ptrace_has_cap(tcred->user_ns, mode)) -+ if (ptrace_has_cap(tcred, mode)) - goto ok; - rcu_read_unlock(); - return -EPERM; -@@ -252,7 +275,7 @@ ok: - dumpable = get_dumpable(task->mm); - rcu_read_lock(); - if (dumpable != SUID_DUMP_USER && -- !ptrace_has_cap(__task_cred(task)->user_ns, mode)) { -+ !ptrace_has_cap(__task_cred(task), mode)) { - rcu_read_unlock(); - return -EPERM; - } --- -2.5.0 - diff --git a/rebase-notes.txt b/rebase-notes.txt index 7121afdb9..0b077dd37 100644 --- a/rebase-notes.txt +++ b/rebase-notes.txt @@ -1,6 +1,7 @@ Linux 4.5 rebase notes: - Check on status of drm-i915-turn-off-wc-mmaps.patch +- Check on status of disabled ZONE_DMA Linux 4.4 rebase notes: @@ -1,3 +1,3 @@ 9a78fa2eb6c68ca5a40ed5af08142599 linux-4.4.tar.xz dcbc8fe378a676d5d0dd208cf524e144 perf-man-4.4.tar.gz -07568b33575bf864c7a4bb94eb0d29bb patch-4.4-git8.xz +f258624b87310523e245ff4fd01b6762 patch-4.4-git9.xz |