Linux v4.0-rc1
- CVE-2015-0275 ext4: fallocate zero range page size > block size BUG (rhbz 1193907 1195178) - Disable debugging options. Yay for major version bumps :\. We grab the full rc1 tarball instead of just the patch to make this way less messy in the spec. When 4.0 final is released, we'll need to undo a few specific hacks. Namely, we need to redefine: upstream_sublevel kversion Source0 back to the standard definitions. Thanks to Kyle for figuring this out 3 years ago.
This commit is contained in:
parent
ea9098159c
commit
d7293323e7
@ -1,104 +0,0 @@
|
|||||||
From: Hector Marco-Gisbert <hecmargi@upv.es>
|
|
||||||
Date: Sat, 14 Feb 2015 09:33:50 -0800
|
|
||||||
Subject: [PATCH] ASLR: fix stack randomization on 64-bit systems
|
|
||||||
|
|
||||||
The issue is that the stack for processes is not properly randomized on 64 bit
|
|
||||||
architectures due to an integer overflow.
|
|
||||||
|
|
||||||
The affected function is randomize_stack_top() in file "fs/binfmt_elf.c":
|
|
||||||
|
|
||||||
static unsigned long randomize_stack_top(unsigned long stack_top)
|
|
||||||
{
|
|
||||||
unsigned int random_variable = 0;
|
|
||||||
|
|
||||||
if ((current->flags & PF_RANDOMIZE) &&
|
|
||||||
!(current->personality & ADDR_NO_RANDOMIZE)) {
|
|
||||||
random_variable = get_random_int() & STACK_RND_MASK;
|
|
||||||
random_variable <<= PAGE_SHIFT;
|
|
||||||
}
|
|
||||||
return PAGE_ALIGN(stack_top) + random_variable;
|
|
||||||
return PAGE_ALIGN(stack_top) - random_variable;
|
|
||||||
}
|
|
||||||
|
|
||||||
Note that, it declares the "random_variable" variable as "unsigned int". Since
|
|
||||||
the result of the shifting operation between STACK_RND_MASK (which is
|
|
||||||
0x3fffff on x86_64, 22 bits) and PAGE_SHIFT (which is 12 on x86_64):
|
|
||||||
|
|
||||||
random_variable <<= PAGE_SHIFT;
|
|
||||||
|
|
||||||
then the two leftmost bits are dropped when storing the result in the
|
|
||||||
"random_variable". This variable shall be at least 34 bits long to hold the
|
|
||||||
(22+12) result.
|
|
||||||
|
|
||||||
These two dropped bits have an impact on the entropy of process stack.
|
|
||||||
Concretely, the total stack entropy is reduced by four: from 2^28 to 2^30 (One
|
|
||||||
fourth of expected entropy).
|
|
||||||
|
|
||||||
This patch restores back the entropy by correcting the types involved in the
|
|
||||||
operations in the functions randomize_stack_top() and stack_maxrandom_size().
|
|
||||||
|
|
||||||
The successful fix can be tested with:
|
|
||||||
$ for i in `seq 1 10`; do cat /proc/self/maps | grep stack; done
|
|
||||||
7ffeda566000-7ffeda587000 rw-p 00000000 00:00 0 [stack]
|
|
||||||
7fff5a332000-7fff5a353000 rw-p 00000000 00:00 0 [stack]
|
|
||||||
7ffcdb7a1000-7ffcdb7c2000 rw-p 00000000 00:00 0 [stack]
|
|
||||||
7ffd5e2c4000-7ffd5e2e5000 rw-p 00000000 00:00 0 [stack]
|
|
||||||
...
|
|
||||||
|
|
||||||
Once corrected, the leading bytes should be between 7ffc and 7fff, rather
|
|
||||||
than always being 7fff.
|
|
||||||
|
|
||||||
CVE-2015-1593
|
|
||||||
|
|
||||||
Signed-off-by: Hector Marco-Gisbert <hecmargi@upv.es>
|
|
||||||
Signed-off-by: Ismael Ripoll <iripoll@upv.es>
|
|
||||||
[kees: rebase, fix 80 char, clean up commit message, add test example, cve]
|
|
||||||
Signed-off-by: Kees Cook <keescook@chromium.org>
|
|
||||||
Cc: stable@vger.kernel.org
|
|
||||||
---
|
|
||||||
arch/x86/mm/mmap.c | 6 +++---
|
|
||||||
fs/binfmt_elf.c | 5 +++--
|
|
||||||
2 files changed, 6 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
|
|
||||||
index 919b91205cd4..df4552bd239e 100644
|
|
||||||
--- a/arch/x86/mm/mmap.c
|
|
||||||
+++ b/arch/x86/mm/mmap.c
|
|
||||||
@@ -35,12 +35,12 @@ struct va_alignment __read_mostly va_align = {
|
|
||||||
.flags = -1,
|
|
||||||
};
|
|
||||||
|
|
||||||
-static unsigned int stack_maxrandom_size(void)
|
|
||||||
+static unsigned long stack_maxrandom_size(void)
|
|
||||||
{
|
|
||||||
- unsigned int max = 0;
|
|
||||||
+ unsigned long max = 0;
|
|
||||||
if ((current->flags & PF_RANDOMIZE) &&
|
|
||||||
!(current->personality & ADDR_NO_RANDOMIZE)) {
|
|
||||||
- max = ((-1U) & STACK_RND_MASK) << PAGE_SHIFT;
|
|
||||||
+ max = ((-1UL) & STACK_RND_MASK) << PAGE_SHIFT;
|
|
||||||
}
|
|
||||||
|
|
||||||
return max;
|
|
||||||
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
|
|
||||||
index 02b16910f4c9..995986b8e36b 100644
|
|
||||||
--- a/fs/binfmt_elf.c
|
|
||||||
+++ b/fs/binfmt_elf.c
|
|
||||||
@@ -645,11 +645,12 @@ out:
|
|
||||||
|
|
||||||
static unsigned long randomize_stack_top(unsigned long stack_top)
|
|
||||||
{
|
|
||||||
- unsigned int random_variable = 0;
|
|
||||||
+ unsigned long random_variable = 0;
|
|
||||||
|
|
||||||
if ((current->flags & PF_RANDOMIZE) &&
|
|
||||||
!(current->personality & ADDR_NO_RANDOMIZE)) {
|
|
||||||
- random_variable = get_random_int() & STACK_RND_MASK;
|
|
||||||
+ random_variable = (unsigned long) get_random_int();
|
|
||||||
+ random_variable &= STACK_RND_MASK;
|
|
||||||
random_variable <<= PAGE_SHIFT;
|
|
||||||
}
|
|
||||||
#ifdef CONFIG_STACK_GROWSUP
|
|
||||||
--
|
|
||||||
2.1.0
|
|
||||||
|
|
@ -20,7 +20,7 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
|||||||
7 files changed, 69 insertions(+), 1 deletion(-)
|
7 files changed, 69 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/Documentation/x86/zero-page.txt b/Documentation/x86/zero-page.txt
|
diff --git a/Documentation/x86/zero-page.txt b/Documentation/x86/zero-page.txt
|
||||||
index 199f453cb4de..ec38acf00b40 100644
|
index 82fbdbc1e0b0..a811210ad486 100644
|
||||||
--- a/Documentation/x86/zero-page.txt
|
--- a/Documentation/x86/zero-page.txt
|
||||||
+++ b/Documentation/x86/zero-page.txt
|
+++ b/Documentation/x86/zero-page.txt
|
||||||
@@ -30,6 +30,8 @@ Offset Proto Name Meaning
|
@@ -30,6 +30,8 @@ Offset Proto Name Meaning
|
||||||
@ -33,10 +33,10 @@ index 199f453cb4de..ec38acf00b40 100644
|
|||||||
290/040 ALL edd_mbr_sig_buffer EDD MBR signatures
|
290/040 ALL edd_mbr_sig_buffer EDD MBR signatures
|
||||||
2D0/A00 ALL e820_map E820 memory map table
|
2D0/A00 ALL e820_map E820 memory map table
|
||||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||||
index eb1cf898ed3c..a2a0a1636287 100644
|
index c2fb8a87dccb..0ec6272203e4 100644
|
||||||
--- a/arch/x86/Kconfig
|
--- a/arch/x86/Kconfig
|
||||||
+++ b/arch/x86/Kconfig
|
+++ b/arch/x86/Kconfig
|
||||||
@@ -1678,6 +1678,16 @@ config EFI_MIXED
|
@@ -1694,6 +1694,16 @@ config EFI_MIXED
|
||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
@ -115,10 +115,10 @@ index ef17683484e9..105e7360d747 100644
|
|||||||
|
|
||||||
setup_efi_pci(boot_params);
|
setup_efi_pci(boot_params);
|
||||||
diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h
|
diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h
|
||||||
index 225b0988043a..90dbfb73e11f 100644
|
index 44e6dd7e36a2..3ddf4150bd9e 100644
|
||||||
--- a/arch/x86/include/uapi/asm/bootparam.h
|
--- a/arch/x86/include/uapi/asm/bootparam.h
|
||||||
+++ b/arch/x86/include/uapi/asm/bootparam.h
|
+++ b/arch/x86/include/uapi/asm/bootparam.h
|
||||||
@@ -133,7 +133,8 @@ struct boot_params {
|
@@ -134,7 +134,8 @@ struct boot_params {
|
||||||
__u8 eddbuf_entries; /* 0x1e9 */
|
__u8 eddbuf_entries; /* 0x1e9 */
|
||||||
__u8 edd_mbr_sig_buf_entries; /* 0x1ea */
|
__u8 edd_mbr_sig_buf_entries; /* 0x1ea */
|
||||||
__u8 kbd_status; /* 0x1eb */
|
__u8 kbd_status; /* 0x1eb */
|
||||||
@ -129,10 +129,10 @@ index 225b0988043a..90dbfb73e11f 100644
|
|||||||
* The sentinel is set to a nonzero value (0xff) in header.S.
|
* The sentinel is set to a nonzero value (0xff) in header.S.
|
||||||
*
|
*
|
||||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||||
index 0a2421cca01f..a3d8174dedf9 100644
|
index 98dc9317286e..26741d24797e 100644
|
||||||
--- a/arch/x86/kernel/setup.c
|
--- a/arch/x86/kernel/setup.c
|
||||||
+++ b/arch/x86/kernel/setup.c
|
+++ b/arch/x86/kernel/setup.c
|
||||||
@@ -1151,6 +1151,12 @@ void __init setup_arch(char **cmdline_p)
|
@@ -1165,6 +1165,12 @@ void __init setup_arch(char **cmdline_p)
|
||||||
|
|
||||||
io_delay_init();
|
io_delay_init();
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ Upstream-status: Fedora mustard
|
|||||||
7 files changed, 65 insertions(+), 10 deletions(-)
|
7 files changed, 65 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||||
index 26c5d54124c1..dab298f03a9c 100644
|
index 64a123acb97f..2964c69e7c8e 100644
|
||||||
--- a/arch/x86/kernel/setup.c
|
--- a/arch/x86/kernel/setup.c
|
||||||
+++ b/arch/x86/kernel/setup.c
|
+++ b/arch/x86/kernel/setup.c
|
||||||
@@ -70,6 +70,11 @@
|
@@ -70,6 +70,11 @@
|
||||||
@ -30,7 +30,7 @@ index 26c5d54124c1..dab298f03a9c 100644
|
|||||||
#include <video/edid.h>
|
#include <video/edid.h>
|
||||||
|
|
||||||
#include <asm/mtrr.h>
|
#include <asm/mtrr.h>
|
||||||
@@ -1278,6 +1283,37 @@ void __init i386_reserve_resources(void)
|
@@ -1292,6 +1297,37 @@ void __init i386_reserve_resources(void)
|
||||||
|
|
||||||
#endif /* CONFIG_X86_32 */
|
#endif /* CONFIG_X86_32 */
|
||||||
|
|
||||||
@ -215,7 +215,7 @@ index 387fa7d05c98..4b07e30b3279 100644
|
|||||||
int unregister_sysrq_key(int key, struct sysrq_key_op *op);
|
int unregister_sysrq_key(int key, struct sysrq_key_op *op);
|
||||||
struct sysrq_key_op *__sysrq_get_key_op(int key);
|
struct sysrq_key_op *__sysrq_get_key_op(int key);
|
||||||
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
|
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
|
||||||
index 7b40c5f07dce..8a60477b96e1 100644
|
index 4121345498e0..0ff3cef5df96 100644
|
||||||
--- a/kernel/debug/kdb/kdb_main.c
|
--- a/kernel/debug/kdb/kdb_main.c
|
||||||
+++ b/kernel/debug/kdb/kdb_main.c
|
+++ b/kernel/debug/kdb/kdb_main.c
|
||||||
@@ -1968,7 +1968,7 @@ static int kdb_sr(int argc, const char **argv)
|
@@ -1968,7 +1968,7 @@ static int kdb_sr(int argc, const char **argv)
|
||||||
|
@ -43,7 +43,7 @@ Signed-off-by: Josh Stone <jistone@redhat.com>
|
|||||||
2 files changed, 21 insertions(+), 1 deletion(-)
|
2 files changed, 21 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/Makefile b/Makefile
|
diff --git a/Makefile b/Makefile
|
||||||
index 19e256ae2679..376e8a456f72 100644
|
index 9fab639727c7..d67b25152475 100644
|
||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -706,7 +706,11 @@ KBUILD_CFLAGS += -fomit-frame-pointer
|
@@ -706,7 +706,11 @@ KBUILD_CFLAGS += -fomit-frame-pointer
|
||||||
|
@ -28,7 +28,7 @@ index bfcb1a62a7b4..a1d62e9ed29b 100644
|
|||||||
virtio_mmio.device=
|
virtio_mmio.device=
|
||||||
[VMMIO] Memory mapped virtio (platform) device.
|
[VMMIO] Memory mapped virtio (platform) device.
|
||||||
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
|
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
|
||||||
index 88a4f99dd2a7..570920c08a51 100644
|
index debd30917010..eeb4cf627553 100644
|
||||||
--- a/drivers/acpi/video.c
|
--- a/drivers/acpi/video.c
|
||||||
+++ b/drivers/acpi/video.c
|
+++ b/drivers/acpi/video.c
|
||||||
@@ -68,7 +68,7 @@ MODULE_AUTHOR("Bruno Ducrot");
|
@@ -68,7 +68,7 @@ MODULE_AUTHOR("Bruno Ducrot");
|
||||||
|
@ -9,7 +9,7 @@ Will debug upstream separately, but we need F22/21 running there. (#1139762)
|
|||||||
1 file changed, 12 insertions(+), 9 deletions(-)
|
1 file changed, 12 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
|
diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
|
||||||
index 07a09570175d..5db6d14fcd67 100644
|
index 231fba0d03e5..0de5a6ddd5eb 100644
|
||||||
--- a/arch/arm/mach-highbank/highbank.c
|
--- a/arch/arm/mach-highbank/highbank.c
|
||||||
+++ b/arch/arm/mach-highbank/highbank.c
|
+++ b/arch/arm/mach-highbank/highbank.c
|
||||||
@@ -51,13 +51,11 @@ static void __init highbank_scu_map_io(void)
|
@@ -51,13 +51,11 @@ static void __init highbank_scu_map_io(void)
|
||||||
|
@ -196,9 +196,6 @@ CONFIG_IIO_SYSFS_TRIGGER=m
|
|||||||
# PHY framework
|
# PHY framework
|
||||||
CONFIG_GENERIC_PHY=y
|
CONFIG_GENERIC_PHY=y
|
||||||
|
|
||||||
# MFD
|
|
||||||
CONFIG_MFD_CORE=m
|
|
||||||
|
|
||||||
CONFIG_SMC91X=m
|
CONFIG_SMC91X=m
|
||||||
CONFIG_SMC911X=m
|
CONFIG_SMC911X=m
|
||||||
|
|
||||||
|
@ -329,6 +329,8 @@ CONFIG_PINCTRL_MSM8X74=m
|
|||||||
CONFIG_PINCTRL_MSM8916=m
|
CONFIG_PINCTRL_MSM8916=m
|
||||||
CONFIG_PINCTRL_QCOM_SPMI_PMIC=m
|
CONFIG_PINCTRL_QCOM_SPMI_PMIC=m
|
||||||
CONFIG_COMMON_CLK_QCOM=m
|
CONFIG_COMMON_CLK_QCOM=m
|
||||||
|
# CONFIG_IPQ_LCC_806X is not set
|
||||||
|
# CONFIG_MSM_LCC_8960 is not set
|
||||||
CONFIG_MFD_QCOM_RPM=m
|
CONFIG_MFD_QCOM_RPM=m
|
||||||
CONFIG_MFD_PM8921_CORE=m
|
CONFIG_MFD_PM8921_CORE=m
|
||||||
CONFIG_REGULATOR_QCOM_RPM=m
|
CONFIG_REGULATOR_QCOM_RPM=m
|
||||||
|
@ -408,8 +408,6 @@ CONFIG_DRM_PANEL_S6E8AA0=m
|
|||||||
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
|
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
|
||||||
|
|
||||||
# regmap
|
# regmap
|
||||||
CONFIG_REGMAP=y
|
|
||||||
CONFIG_REGMAP_I2C=m
|
|
||||||
CONFIG_REGMAP_SPI=m
|
CONFIG_REGMAP_SPI=m
|
||||||
CONFIG_REGMAP_SPMI=m
|
CONFIG_REGMAP_SPMI=m
|
||||||
CONFIG_REGMAP_MMIO=m
|
CONFIG_REGMAP_MMIO=m
|
||||||
@ -835,6 +833,7 @@ CONFIG_SND_SOC_TS3A227E=m
|
|||||||
# CONFIG_INPUT_AXP20X_PEK is not set
|
# CONFIG_INPUT_AXP20X_PEK is not set
|
||||||
# CONFIG_POWER_RESET_BRCMSTB is not set
|
# CONFIG_POWER_RESET_BRCMSTB is not set
|
||||||
# CONFIG_INPUT_TPS65218_PWRBUTTON is not set
|
# CONFIG_INPUT_TPS65218_PWRBUTTON is not set
|
||||||
|
# CONFIG_CLK_QORIQ is not set
|
||||||
|
|
||||||
# Debug options. We need to deal with them at some point like x86
|
# Debug options. We need to deal with them at some point like x86
|
||||||
# CONFIG_DEBUG_USER is not set
|
# CONFIG_DEBUG_USER is not set
|
||||||
|
@ -201,6 +201,7 @@ CONFIG_BINFMT_MISC=m
|
|||||||
#
|
#
|
||||||
|
|
||||||
# CONFIG_COMMON_CLK_SI5351 is not set
|
# CONFIG_COMMON_CLK_SI5351 is not set
|
||||||
|
# CONFIG_COMMON_CLK_CDCE706 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Generic Driver Options
|
# Generic Driver Options
|
||||||
@ -214,6 +215,9 @@ CONFIG_EXTRA_FIRMWARE=""
|
|||||||
# CONFIG_FW_LOADER_USER_HELPER is not set
|
# CONFIG_FW_LOADER_USER_HELPER is not set
|
||||||
# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
|
# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
|
||||||
|
|
||||||
|
CONFIG_REGMAP=y
|
||||||
|
CONFIG_REGMAP_I2C=m
|
||||||
|
|
||||||
# CONFIG_CMA is not set
|
# CONFIG_CMA is not set
|
||||||
# CONFIG_DMA_CMA is not set
|
# CONFIG_DMA_CMA is not set
|
||||||
# CONFIG_FENCE_TRACE is not set
|
# CONFIG_FENCE_TRACE is not set
|
||||||
@ -1713,13 +1717,13 @@ CONFIG_B43_PCMCIA=y
|
|||||||
CONFIG_B43_SDIO=y
|
CONFIG_B43_SDIO=y
|
||||||
CONFIG_B43_BCMA=y
|
CONFIG_B43_BCMA=y
|
||||||
CONFIG_B43_BCMA_PIO=y
|
CONFIG_B43_BCMA_PIO=y
|
||||||
CONFIG_B43_DEBUG=y
|
# CONFIG_B43_DEBUG is not set
|
||||||
CONFIG_B43_PHY_LP=y
|
CONFIG_B43_PHY_LP=y
|
||||||
CONFIG_B43_PHY_N=y
|
CONFIG_B43_PHY_N=y
|
||||||
CONFIG_B43_PHY_HT=y
|
CONFIG_B43_PHY_HT=y
|
||||||
CONFIG_B43_PHY_G=y
|
CONFIG_B43_PHY_G=y
|
||||||
CONFIG_B43LEGACY=m
|
CONFIG_B43LEGACY=m
|
||||||
CONFIG_B43LEGACY_DEBUG=y
|
# CONFIG_B43LEGACY_DEBUG is not set
|
||||||
CONFIG_B43LEGACY_DMA=y
|
CONFIG_B43LEGACY_DMA=y
|
||||||
CONFIG_B43LEGACY_PIO=y
|
CONFIG_B43LEGACY_PIO=y
|
||||||
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
|
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
|
||||||
@ -4056,6 +4060,8 @@ CONFIG_PCF50633_GPIO=m
|
|||||||
CONFIG_INPUT_PCF50633_PMU=m
|
CONFIG_INPUT_PCF50633_PMU=m
|
||||||
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
|
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
|
||||||
|
|
||||||
|
CONFIG_MFD_CORE=m
|
||||||
|
|
||||||
CONFIG_MFD_VX855=m
|
CONFIG_MFD_VX855=m
|
||||||
CONFIG_MFD_SM501=m
|
CONFIG_MFD_SM501=m
|
||||||
CONFIG_MFD_SM501_GPIO=y
|
CONFIG_MFD_SM501_GPIO=y
|
||||||
@ -4778,7 +4784,7 @@ CONFIG_PM_DEBUG=y
|
|||||||
# CONFIG_DPM_WATCHDOG is not set # revisit this in debug
|
# CONFIG_DPM_WATCHDOG is not set # revisit this in debug
|
||||||
CONFIG_PM_TRACE=y
|
CONFIG_PM_TRACE=y
|
||||||
CONFIG_PM_TRACE_RTC=y
|
CONFIG_PM_TRACE_RTC=y
|
||||||
CONFIG_PM_TEST_SUSPEND=y
|
# CONFIG_PM_TEST_SUSPEND is not set
|
||||||
CONFIG_PM_RUNTIME=y
|
CONFIG_PM_RUNTIME=y
|
||||||
# CONFIG_PM_OPP is not set
|
# CONFIG_PM_OPP is not set
|
||||||
# CONFIG_PM_AUTOSLEEP is not set
|
# CONFIG_PM_AUTOSLEEP is not set
|
||||||
|
112
config-nodebug
112
config-nodebug
@ -2,100 +2,100 @@ CONFIG_SND_VERBOSE_PRINTK=y
|
|||||||
CONFIG_SND_DEBUG=y
|
CONFIG_SND_DEBUG=y
|
||||||
CONFIG_SND_PCM_XRUN_DEBUG=y
|
CONFIG_SND_PCM_XRUN_DEBUG=y
|
||||||
|
|
||||||
CONFIG_DEBUG_ATOMIC_SLEEP=y
|
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_MUTEXES=y
|
# CONFIG_DEBUG_MUTEXES is not set
|
||||||
CONFIG_DEBUG_RT_MUTEXES=y
|
# CONFIG_DEBUG_RT_MUTEXES is not set
|
||||||
CONFIG_DEBUG_LOCK_ALLOC=y
|
# CONFIG_DEBUG_LOCK_ALLOC is not set
|
||||||
CONFIG_LOCK_TORTURE_TEST=m
|
# CONFIG_LOCK_TORTURE_TEST is not set
|
||||||
CONFIG_PROVE_LOCKING=y
|
# CONFIG_PROVE_LOCKING is not set
|
||||||
CONFIG_DEBUG_SPINLOCK=y
|
# CONFIG_DEBUG_SPINLOCK is not set
|
||||||
CONFIG_PROVE_RCU=y
|
# CONFIG_PROVE_RCU is not set
|
||||||
# CONFIG_PROVE_RCU_REPEATEDLY is not set
|
# CONFIG_PROVE_RCU_REPEATEDLY is not set
|
||||||
CONFIG_DEBUG_PER_CPU_MAPS=y
|
# CONFIG_DEBUG_PER_CPU_MAPS is not set
|
||||||
CONFIG_CPUMASK_OFFSTACK=y
|
CONFIG_CPUMASK_OFFSTACK=y
|
||||||
|
|
||||||
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
|
# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
|
||||||
|
|
||||||
CONFIG_FAULT_INJECTION=y
|
# CONFIG_FAULT_INJECTION is not set
|
||||||
CONFIG_FAILSLAB=y
|
# CONFIG_FAILSLAB is not set
|
||||||
CONFIG_FAIL_PAGE_ALLOC=y
|
# CONFIG_FAIL_PAGE_ALLOC is not set
|
||||||
CONFIG_FAIL_MAKE_REQUEST=y
|
# CONFIG_FAIL_MAKE_REQUEST is not set
|
||||||
CONFIG_FAULT_INJECTION_DEBUG_FS=y
|
# CONFIG_FAULT_INJECTION_DEBUG_FS is not set
|
||||||
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
|
# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
|
||||||
CONFIG_FAIL_IO_TIMEOUT=y
|
# CONFIG_FAIL_IO_TIMEOUT is not set
|
||||||
CONFIG_FAIL_MMC_REQUEST=y
|
# CONFIG_FAIL_MMC_REQUEST is not set
|
||||||
|
|
||||||
CONFIG_LOCK_STAT=y
|
# CONFIG_LOCK_STAT is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_STACK_USAGE=y
|
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||||
|
|
||||||
CONFIG_ACPI_DEBUG=y
|
# CONFIG_ACPI_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_SG=y
|
# CONFIG_DEBUG_SG is not set
|
||||||
CONFIG_DEBUG_PI_LIST=y
|
# CONFIG_DEBUG_PI_LIST is not set
|
||||||
|
|
||||||
# CONFIG_PAGE_EXTENSION is not set
|
# CONFIG_PAGE_EXTENSION is not set
|
||||||
# CONFIG_PAGE_OWNER is not set
|
# CONFIG_PAGE_OWNER is not set
|
||||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_OBJECTS=y
|
# CONFIG_DEBUG_OBJECTS is not set
|
||||||
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
|
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
|
||||||
CONFIG_DEBUG_OBJECTS_FREE=y
|
# CONFIG_DEBUG_OBJECTS_FREE is not set
|
||||||
CONFIG_DEBUG_OBJECTS_TIMERS=y
|
# CONFIG_DEBUG_OBJECTS_TIMERS is not set
|
||||||
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
|
# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set
|
||||||
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
||||||
|
|
||||||
CONFIG_X86_PTDUMP=y
|
CONFIG_X86_PTDUMP=y
|
||||||
CONFIG_ARM64_PTDUMP=y
|
# CONFIG_ARM64_PTDUMP is not set
|
||||||
CONFIG_EFI_PGT_DUMP=y
|
# CONFIG_EFI_PGT_DUMP is not set
|
||||||
|
|
||||||
CONFIG_CAN_DEBUG_DEVICES=y
|
# CONFIG_CAN_DEBUG_DEVICES is not set
|
||||||
|
|
||||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
# CONFIG_MODULE_FORCE_UNLOAD is not set
|
||||||
|
|
||||||
|
|
||||||
CONFIG_DEBUG_NOTIFIERS=y
|
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||||
|
|
||||||
CONFIG_DMA_API_DEBUG=y
|
# CONFIG_DMA_API_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_MMIOTRACE=y
|
# CONFIG_MMIOTRACE is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_CREDENTIALS=y
|
# CONFIG_DEBUG_CREDENTIALS is not set
|
||||||
|
|
||||||
# off in both production debug and nodebug builds,
|
# off in both production debug and nodebug builds,
|
||||||
# on in rawhide nodebug builds
|
# on in rawhide nodebug builds
|
||||||
CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
|
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||||
|
|
||||||
CONFIG_EXT4_DEBUG=y
|
# CONFIG_EXT4_DEBUG is not set
|
||||||
|
|
||||||
# CONFIG_XFS_WARN is not set
|
# CONFIG_XFS_WARN is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_PERF_USE_VMALLOC=y
|
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
|
||||||
|
|
||||||
CONFIG_JBD2_DEBUG=y
|
# CONFIG_JBD2_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_NFSD_FAULT_INJECTION=y
|
# CONFIG_NFSD_FAULT_INJECTION is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_BLK_CGROUP=y
|
# CONFIG_DEBUG_BLK_CGROUP is not set
|
||||||
|
|
||||||
CONFIG_DRBD_FAULT_INJECTION=y
|
# CONFIG_DRBD_FAULT_INJECTION is not set
|
||||||
|
|
||||||
CONFIG_ATH_DEBUG=y
|
# CONFIG_ATH_DEBUG is not set
|
||||||
CONFIG_CARL9170_DEBUGFS=y
|
# CONFIG_CARL9170_DEBUGFS is not set
|
||||||
CONFIG_IWLWIFI_DEVICE_TRACING=y
|
# CONFIG_IWLWIFI_DEVICE_TRACING is not set
|
||||||
|
|
||||||
# CONFIG_RTLWIFI_DEBUG is not set
|
# CONFIG_RTLWIFI_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_OBJECTS_WORK=y
|
# CONFIG_DEBUG_OBJECTS_WORK is not set
|
||||||
|
|
||||||
CONFIG_DMADEVICES_DEBUG=y
|
# CONFIG_DMADEVICES_DEBUG is not set
|
||||||
CONFIG_DMADEVICES_VDEBUG=y
|
# CONFIG_DMADEVICES_VDEBUG is not set
|
||||||
|
|
||||||
CONFIG_PM_ADVANCED_DEBUG=y
|
CONFIG_PM_ADVANCED_DEBUG=y
|
||||||
|
|
||||||
CONFIG_CEPH_LIB_PRETTYDEBUG=y
|
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
|
||||||
CONFIG_QUOTA_DEBUG=y
|
# CONFIG_QUOTA_DEBUG is not set
|
||||||
|
|
||||||
|
|
||||||
CONFIG_KGDB_KDB=y
|
CONFIG_KGDB_KDB=y
|
||||||
@ -103,18 +103,18 @@ CONFIG_KDB_DEFAULT_ENABLE=0x0
|
|||||||
CONFIG_KDB_KEYBOARD=y
|
CONFIG_KDB_KEYBOARD=y
|
||||||
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
|
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
|
||||||
|
|
||||||
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
|
# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set
|
||||||
# CONFIG_PERCPU_TEST is not set
|
# CONFIG_PERCPU_TEST is not set
|
||||||
CONFIG_TEST_LIST_SORT=y
|
# CONFIG_TEST_LIST_SORT is not set
|
||||||
# CONFIG_TEST_STRING_HELPERS is not set
|
# CONFIG_TEST_STRING_HELPERS is not set
|
||||||
|
|
||||||
CONFIG_DETECT_HUNG_TASK=y
|
# CONFIG_DETECT_HUNG_TASK is not set
|
||||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||||
|
|
||||||
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
|
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_KMEMLEAK=y
|
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||||
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024
|
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024
|
||||||
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
|
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
|
||||||
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
||||||
@ -125,7 +125,7 @@ CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
|||||||
|
|
||||||
# CONFIG_SPI_DEBUG is not set
|
# CONFIG_SPI_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_X86_DEBUG_STATIC_CPU_HAS=y
|
# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
|
||||||
|
|
||||||
# CONFIG_SCHEDSTATS is not set
|
# CONFIG_SCHEDSTATS is not set
|
||||||
# CONFIG_LATENCYTOP is not set
|
# CONFIG_LATENCYTOP is not set
|
||||||
|
@ -178,6 +178,7 @@ CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
|
|||||||
# CONFIG_MMC_SDHCI_OF is not set
|
# CONFIG_MMC_SDHCI_OF is not set
|
||||||
|
|
||||||
# CONFIG_X86_INTEL_MID is not set
|
# CONFIG_X86_INTEL_MID is not set
|
||||||
|
# CONFIG_X86_INTEL_QUARK is not set
|
||||||
|
|
||||||
CONFIG_MFD_CS5535=m
|
CONFIG_MFD_CS5535=m
|
||||||
# CONFIG_MFD_SYSCON is not set
|
# CONFIG_MFD_SYSCON is not set
|
||||||
|
@ -348,7 +348,7 @@ CONFIG_SP5100_TCO=m
|
|||||||
|
|
||||||
# CONFIG_MEMTEST is not set
|
# CONFIG_MEMTEST is not set
|
||||||
# CONFIG_DEBUG_TLBFLUSH is not set
|
# CONFIG_DEBUG_TLBFLUSH is not set
|
||||||
CONFIG_MAXSMP=y
|
# CONFIG_MAXSMP is not set
|
||||||
|
|
||||||
|
|
||||||
CONFIG_HP_ILO=m
|
CONFIG_HP_ILO=m
|
||||||
|
@ -12,10 +12,10 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
|||||||
2 files changed, 3 insertions(+)
|
2 files changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||||
index a3d8174dedf9..26c5d54124c1 100644
|
index 26741d24797e..64a123acb97f 100644
|
||||||
--- a/arch/x86/kernel/setup.c
|
--- a/arch/x86/kernel/setup.c
|
||||||
+++ b/arch/x86/kernel/setup.c
|
+++ b/arch/x86/kernel/setup.c
|
||||||
@@ -1153,7 +1153,9 @@ void __init setup_arch(char **cmdline_p)
|
@@ -1167,7 +1167,9 @@ void __init setup_arch(char **cmdline_p)
|
||||||
|
|
||||||
#ifdef CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE
|
#ifdef CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE
|
||||||
if (boot_params.secure_boot) {
|
if (boot_params.secure_boot) {
|
||||||
|
@ -11,10 +11,10 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
|||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||||
index a2a0a1636287..5b5c9e803d19 100644
|
index 0ec6272203e4..9d8c58783e7d 100644
|
||||||
--- a/arch/x86/Kconfig
|
--- a/arch/x86/Kconfig
|
||||||
+++ b/arch/x86/Kconfig
|
+++ b/arch/x86/Kconfig
|
||||||
@@ -1679,7 +1679,8 @@ config EFI_MIXED
|
@@ -1695,7 +1695,8 @@ config EFI_MIXED
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
config EFI_SECURE_BOOT_SIG_ENFORCE
|
config EFI_SECURE_BOOT_SIG_ENFORCE
|
||||||
|
78
ext4-Allocate-entire-range-in-zero-range.patch
Normal file
78
ext4-Allocate-entire-range-in-zero-range.patch
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
From: Lukas Czerner <lczerner@redhat.com>
|
||||||
|
Date: Wed, 18 Feb 2015 17:49:28 +0100
|
||||||
|
Subject: [PATCH] ext4: Allocate entire range in zero range
|
||||||
|
|
||||||
|
Currently there is a bug in zero range code which causes zero range
|
||||||
|
calls to only allocate block aligned portion of the range, while
|
||||||
|
ignoring the rest in some cases.
|
||||||
|
|
||||||
|
In some cases, namely if the end of the range is past isize, we do
|
||||||
|
attempt to preallocate the last nonaligned block. However this might
|
||||||
|
cause kernel to BUG() in some carefully designed zero range requests on
|
||||||
|
setups where page size > block size.
|
||||||
|
|
||||||
|
Fix this problem by first preallocating the entire range, including the
|
||||||
|
nonaligned edges and converting the written extents to unwritten in the
|
||||||
|
next step. This approach will also give us the advantage of having the
|
||||||
|
range to be as linearly contiguous as possible.
|
||||||
|
|
||||||
|
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
|
||||||
|
---
|
||||||
|
fs/ext4/extents.c | 31 +++++++++++++++++++------------
|
||||||
|
1 file changed, 19 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
|
||||||
|
index bed43081720f..aa522429b751 100644
|
||||||
|
--- a/fs/ext4/extents.c
|
||||||
|
+++ b/fs/ext4/extents.c
|
||||||
|
@@ -4803,12 +4803,6 @@ static long ext4_zero_range(struct file *file, loff_t offset,
|
||||||
|
else
|
||||||
|
max_blocks -= lblk;
|
||||||
|
|
||||||
|
- flags = EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT |
|
||||||
|
- EXT4_GET_BLOCKS_CONVERT_UNWRITTEN |
|
||||||
|
- EXT4_EX_NOCACHE;
|
||||||
|
- if (mode & FALLOC_FL_KEEP_SIZE)
|
||||||
|
- flags |= EXT4_GET_BLOCKS_KEEP_SIZE;
|
||||||
|
-
|
||||||
|
mutex_lock(&inode->i_mutex);
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -4825,15 +4819,28 @@ static long ext4_zero_range(struct file *file, loff_t offset,
|
||||||
|
ret = inode_newsize_ok(inode, new_size);
|
||||||
|
if (ret)
|
||||||
|
goto out_mutex;
|
||||||
|
- /*
|
||||||
|
- * If we have a partial block after EOF we have to allocate
|
||||||
|
- * the entire block.
|
||||||
|
- */
|
||||||
|
- if (partial_end)
|
||||||
|
- max_blocks += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ flags = EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT;
|
||||||
|
+ if (mode & FALLOC_FL_KEEP_SIZE)
|
||||||
|
+ flags |= EXT4_GET_BLOCKS_KEEP_SIZE;
|
||||||
|
+
|
||||||
|
+ /* Preallocate the range including the unaligned edges */
|
||||||
|
+ if (partial_begin || partial_end) {
|
||||||
|
+ ret = ext4_alloc_file_blocks(file,
|
||||||
|
+ round_down(offset, 1 << blkbits) >> blkbits,
|
||||||
|
+ (round_up((offset + len), 1 << blkbits) -
|
||||||
|
+ round_down(offset, 1 << blkbits)) >> blkbits,
|
||||||
|
+ new_size, flags, mode);
|
||||||
|
+ if (ret)
|
||||||
|
+ goto out_mutex;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Zero range excluding the unaligned edges */
|
||||||
|
if (max_blocks > 0) {
|
||||||
|
+ flags |= (EXT4_GET_BLOCKS_CONVERT_UNWRITTEN |
|
||||||
|
+ EXT4_EX_NOCACHE);
|
||||||
|
|
||||||
|
/* Now release the pages and zero block aligned part of pages*/
|
||||||
|
truncate_pagecache_range(inode, start, end - 1);
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
76
kernel.spec
76
kernel.spec
@ -48,7 +48,7 @@ Summary: The Linux kernel
|
|||||||
# base_sublevel is the kernel version we're starting with and patching
|
# base_sublevel is the kernel version we're starting with and patching
|
||||||
# on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base,
|
# on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base,
|
||||||
# which yields a base_sublevel of 0.
|
# which yields a base_sublevel of 0.
|
||||||
%define base_sublevel 19
|
%define base_sublevel 0
|
||||||
|
|
||||||
## If this is a released kernel ##
|
## If this is a released kernel ##
|
||||||
%if 0%{?released_kernel}
|
%if 0%{?released_kernel}
|
||||||
@ -60,18 +60,19 @@ Summary: The Linux kernel
|
|||||||
%define stablerev %{stable_update}
|
%define stablerev %{stable_update}
|
||||||
%define stable_base %{stable_update}
|
%define stable_base %{stable_update}
|
||||||
%endif
|
%endif
|
||||||
%define rpmversion 3.%{base_sublevel}.%{stable_update}
|
%define rpmversion 4.%{base_sublevel}.%{stable_update}
|
||||||
|
|
||||||
## The not-released-kernel case ##
|
## The not-released-kernel case ##
|
||||||
%else
|
%else
|
||||||
# The next upstream release sublevel (base_sublevel+1)
|
# The next upstream release sublevel (base_sublevel+1)
|
||||||
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
|
# define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
|
||||||
|
%define upstream_sublevel 0
|
||||||
# The rc snapshot level
|
# The rc snapshot level
|
||||||
%define rcrev 0
|
%define rcrev 1
|
||||||
# The git snapshot level
|
# The git snapshot level
|
||||||
%define gitrev 10
|
%define gitrev 0
|
||||||
# Set rpm version accordingly
|
# Set rpm version accordingly
|
||||||
%define rpmversion 3.%{upstream_sublevel}.0
|
%define rpmversion 4.%{upstream_sublevel}.0
|
||||||
%endif
|
%endif
|
||||||
# Nb: The above rcrev and gitrev values automagically define Patch00 and Patch01 below.
|
# Nb: The above rcrev and gitrev values automagically define Patch00 and Patch01 below.
|
||||||
|
|
||||||
@ -124,7 +125,7 @@ Summary: The Linux kernel
|
|||||||
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
|
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
|
||||||
# and 0 for rawhide (all kernels are debug kernels).
|
# and 0 for rawhide (all kernels are debug kernels).
|
||||||
# See also 'make debug' and 'make release'.
|
# See also 'make debug' and 'make release'.
|
||||||
%define debugbuildsenabled 0
|
%define debugbuildsenabled 1
|
||||||
|
|
||||||
# Want to build a vanilla kernel build without any non-upstream patches?
|
# Want to build a vanilla kernel build without any non-upstream patches?
|
||||||
%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
|
%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
|
||||||
@ -152,7 +153,8 @@ Summary: The Linux kernel
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# The kernel tarball/base version
|
# The kernel tarball/base version
|
||||||
%define kversion 3.%{base_sublevel}
|
# define kversion 4.%{base_sublevel}
|
||||||
|
%define kversion 4.%{base_sublevel}-rc%rcrev
|
||||||
|
|
||||||
%define make_target bzImage
|
%define make_target bzImage
|
||||||
|
|
||||||
@ -409,7 +411,8 @@ BuildRequires: binutils-%{_build_arch}-linux-gnu, gcc-%{_build_arch}-linux-gnu
|
|||||||
%define cross_opts CROSS_COMPILE=%{_build_arch}-linux-gnu-
|
%define cross_opts CROSS_COMPILE=%{_build_arch}-linux-gnu-
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
Source0: ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-%{kversion}.tar.xz
|
#Source0: ftp://ftp.kernel.org/pub/linux/kernel/v4.x/linux-%{kversion}.tar.xz
|
||||||
|
Source0: ftp://ftp.kernel.org/pub/linux/kernel/v4.x/linux-4.0-rc1.tar.xz
|
||||||
|
|
||||||
Source10: perf-man-%{kversion}.tar.gz
|
Source10: perf-man-%{kversion}.tar.gz
|
||||||
Source11: x509.genkey
|
Source11: x509.genkey
|
||||||
@ -471,7 +474,7 @@ Source2001: cpupower.config
|
|||||||
# For a stable release kernel
|
# For a stable release kernel
|
||||||
%if 0%{?stable_update}
|
%if 0%{?stable_update}
|
||||||
%if 0%{?stable_base}
|
%if 0%{?stable_base}
|
||||||
%define stable_patch_00 patch-3.%{base_sublevel}.%{stable_base}.xz
|
%define stable_patch_00 patch-4.%{base_sublevel}.%{stable_base}.xz
|
||||||
Patch00: %{stable_patch_00}
|
Patch00: %{stable_patch_00}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -480,14 +483,14 @@ Patch00: %{stable_patch_00}
|
|||||||
# near the top of this spec file.
|
# near the top of this spec file.
|
||||||
%else
|
%else
|
||||||
%if 0%{?rcrev}
|
%if 0%{?rcrev}
|
||||||
Patch00: patch-3.%{upstream_sublevel}-rc%{rcrev}.xz
|
Patch00: patch-4.%{upstream_sublevel}-rc%{rcrev}.xz
|
||||||
%if 0%{?gitrev}
|
%if 0%{?gitrev}
|
||||||
Patch01: patch-3.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.xz
|
Patch01: patch-4.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.xz
|
||||||
%endif
|
%endif
|
||||||
%else
|
%else
|
||||||
# pre-{base_sublevel+1}-rc1 case
|
# pre-{base_sublevel+1}-rc1 case
|
||||||
%if 0%{?gitrev}
|
%if 0%{?gitrev}
|
||||||
Patch00: patch-3.%{base_sublevel}-git%{gitrev}.xz
|
Patch00: patch-4.%{base_sublevel}-git%{gitrev}.xz
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
@ -609,19 +612,13 @@ Patch26059: i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
|
|||||||
#rhbz 1094948
|
#rhbz 1094948
|
||||||
Patch26131: acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
|
Patch26131: acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
|
||||||
|
|
||||||
#rhbz 1188074
|
|
||||||
Patch26133: ntp-Fixup-adjtimex-freq-validation-on-32bit-systems.patch
|
|
||||||
|
|
||||||
Patch26134: perf-tools-Define-_GNU_SOURCE-on-pthread_attr_setaff.patch
|
Patch26134: perf-tools-Define-_GNU_SOURCE-on-pthread_attr_setaff.patch
|
||||||
|
|
||||||
#CVE-2015-1593 rhbz 1192519 1192520
|
|
||||||
Patch26135: ASLR-fix-stack-randomization-on-64-bit-systems.patch
|
|
||||||
|
|
||||||
#CVE-XXXX-XXXX rhbz 1189864 1192079
|
|
||||||
Patch26136: vhost-scsi-potential-memory-corruption.patch
|
|
||||||
|
|
||||||
Patch26137: fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
|
Patch26137: fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
|
||||||
|
|
||||||
|
#CVE-2015-0275 rhbz 1193907 1195178
|
||||||
|
Patch26138: ext4-Allocate-entire-range-in-zero-range.patch
|
||||||
|
|
||||||
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
|
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
|
||||||
Patch30000: kernel-arm64.patch
|
Patch30000: kernel-arm64.patch
|
||||||
Patch30001: kernel-arm64-fix-psci-when-pg.patch
|
Patch30001: kernel-arm64-fix-psci-when-pg.patch
|
||||||
@ -1024,20 +1021,20 @@ ApplyOptionalPatch()
|
|||||||
|
|
||||||
# Update to latest upstream.
|
# Update to latest upstream.
|
||||||
%if 0%{?released_kernel}
|
%if 0%{?released_kernel}
|
||||||
%define vanillaversion 3.%{base_sublevel}
|
%define vanillaversion 4.%{base_sublevel}
|
||||||
# non-released_kernel case
|
# non-released_kernel case
|
||||||
%else
|
%else
|
||||||
%if 0%{?rcrev}
|
%if 0%{?rcrev}
|
||||||
%define vanillaversion 3.%{upstream_sublevel}-rc%{rcrev}
|
%define vanillaversion 4.%{upstream_sublevel}-rc%{rcrev}
|
||||||
%if 0%{?gitrev}
|
%if 0%{?gitrev}
|
||||||
%define vanillaversion 3.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}
|
%define vanillaversion 4.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}
|
||||||
%endif
|
%endif
|
||||||
%else
|
%else
|
||||||
# pre-{base_sublevel+1}-rc1 case
|
# pre-{base_sublevel+1}-rc1 case
|
||||||
%if 0%{?gitrev}
|
%if 0%{?gitrev}
|
||||||
%define vanillaversion 3.%{base_sublevel}-git%{gitrev}
|
%define vanillaversion 4.%{base_sublevel}-git%{gitrev}
|
||||||
%else
|
%else
|
||||||
%define vanillaversion 3.%{base_sublevel}
|
%define vanillaversion 4.%{base_sublevel}
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
@ -1050,7 +1047,7 @@ ApplyOptionalPatch()
|
|||||||
|
|
||||||
# Build a list of the other top-level kernel tree directories.
|
# Build a list of the other top-level kernel tree directories.
|
||||||
# This will be used to hardlink identical vanilla subdirs.
|
# This will be used to hardlink identical vanilla subdirs.
|
||||||
sharedirs=$(find "$PWD" -maxdepth 1 -type d -name 'kernel-3.*' \
|
sharedirs=$(find "$PWD" -maxdepth 1 -type d -name 'kernel-4.*' \
|
||||||
| grep -x -v "$PWD"/kernel-%{kversion}%{?dist}) ||:
|
| grep -x -v "$PWD"/kernel-%{kversion}%{?dist}) ||:
|
||||||
|
|
||||||
# Delete all old stale trees.
|
# Delete all old stale trees.
|
||||||
@ -1121,14 +1118,14 @@ if [ ! -d kernel-%{kversion}%{?dist}/vanilla-%{vanillaversion} ]; then
|
|||||||
# Update vanilla to the latest upstream.
|
# Update vanilla to the latest upstream.
|
||||||
# (non-released_kernel case only)
|
# (non-released_kernel case only)
|
||||||
%if 0%{?rcrev}
|
%if 0%{?rcrev}
|
||||||
ApplyPatch patch-3.%{upstream_sublevel}-rc%{rcrev}.xz
|
ApplyPatch patch-4.%{upstream_sublevel}-rc%{rcrev}.xz
|
||||||
%if 0%{?gitrev}
|
%if 0%{?gitrev}
|
||||||
ApplyPatch patch-3.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.xz
|
ApplyPatch patch-4.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.xz
|
||||||
%endif
|
%endif
|
||||||
%else
|
%else
|
||||||
# pre-{base_sublevel+1}-rc1 case
|
# pre-{base_sublevel+1}-rc1 case
|
||||||
%if 0%{?gitrev}
|
%if 0%{?gitrev}
|
||||||
ApplyPatch patch-3.%{base_sublevel}-git%{gitrev}.xz
|
ApplyPatch patch-4.%{base_sublevel}-git%{gitrev}.xz
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -1341,19 +1338,13 @@ ApplyPatch i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
|
|||||||
#rhbz 1094948
|
#rhbz 1094948
|
||||||
ApplyPatch acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
|
ApplyPatch acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
|
||||||
|
|
||||||
#rhbz 1188074
|
|
||||||
ApplyPatch ntp-Fixup-adjtimex-freq-validation-on-32bit-systems.patch
|
|
||||||
|
|
||||||
ApplyPatch perf-tools-Define-_GNU_SOURCE-on-pthread_attr_setaff.patch
|
ApplyPatch perf-tools-Define-_GNU_SOURCE-on-pthread_attr_setaff.patch
|
||||||
|
|
||||||
#CVE-2015-1593 rhbz 1192519 1192520
|
|
||||||
ApplyPatch ASLR-fix-stack-randomization-on-64-bit-systems.patch
|
|
||||||
|
|
||||||
#CVE-XXXX-XXXX rhbz 1189864 1192079
|
|
||||||
ApplyPatch vhost-scsi-potential-memory-corruption.patch
|
|
||||||
|
|
||||||
ApplyPatch fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
|
ApplyPatch fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
|
||||||
|
|
||||||
|
#CVE-2015-0275 rhbz 1193907 1195178
|
||||||
|
ApplyPatch ext4-Allocate-entire-range-in-zero-range.patch
|
||||||
|
|
||||||
%if 0%{?aarch64patches}
|
%if 0%{?aarch64patches}
|
||||||
ApplyPatch kernel-arm64.patch
|
ApplyPatch kernel-arm64.patch
|
||||||
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
|
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
|
||||||
@ -2212,6 +2203,11 @@ fi
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Feb 23 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.0.0-0.rc1.git0.1
|
||||||
|
- Linux v4.0-rc1
|
||||||
|
- CVE-2015-0275 ext4: fallocate zero range page size > block size BUG (rhbz 1193907 1195178)
|
||||||
|
- Disable debugging options.
|
||||||
|
|
||||||
* Fri Feb 20 2015 Josh Boyer <jwboyer@fedoraproject.org> - 3.20.0-0.rc0.git10.1
|
* Fri Feb 20 2015 Josh Boyer <jwboyer@fedoraproject.org> - 3.20.0-0.rc0.git10.1
|
||||||
- Linux v3.19-8975-g3d883483dc0a
|
- Linux v3.19-8975-g3d883483dc0a
|
||||||
- Add patch to fix intermittent hangs in nouveau driver
|
- Add patch to fix intermittent hangs in nouveau driver
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
From: John Stultz <john.stultz@linaro.org>
|
|
||||||
Date: Mon, 2 Feb 2015 10:57:56 -0800
|
|
||||||
Subject: [PATCH] ntp: Fixup adjtimex freq validation on 32bit systems
|
|
||||||
|
|
||||||
Additional validation of adjtimex freq values to avoid
|
|
||||||
potential multiplication overflows were added in commit
|
|
||||||
5e5aeb4367b (time: adjtimex: Validate the ADJ_FREQUENCY values)
|
|
||||||
|
|
||||||
Unfortunately the patch used LONG_MAX/MIN instead of
|
|
||||||
LLONG_MAX/MIN, which was fine on 64bit systems, but caused
|
|
||||||
false positives on 32bit systems resulting in most direct
|
|
||||||
frequency adjustments to fail w/ EINVAL.
|
|
||||||
|
|
||||||
ntpd only does driect frequency adjustments at startup,
|
|
||||||
so the issue was not easily observed there, but other sync
|
|
||||||
applications like ptpd and chrony were more effected by
|
|
||||||
the bug.
|
|
||||||
|
|
||||||
Cc: Sasha Levin <sasha.levin@oracle.com>
|
|
||||||
Reported-by: Josh Boyer <jwboyer@fedoraproject.org>
|
|
||||||
Reported-by: George Joseph <george.joseph@fairview5.com>
|
|
||||||
Signed-off-by: John Stultz <john.stultz@linaro.org>
|
|
||||||
---
|
|
||||||
kernel/time/ntp.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
|
|
||||||
index 4b585e0fdd22..a5f4d24c95cc 100644
|
|
||||||
--- a/kernel/time/ntp.c
|
|
||||||
+++ b/kernel/time/ntp.c
|
|
||||||
@@ -634,9 +634,9 @@ int ntp_validate_timex(struct timex *txc)
|
|
||||||
return -EPERM;
|
|
||||||
|
|
||||||
if (txc->modes & ADJ_FREQUENCY) {
|
|
||||||
- if (LONG_MIN / PPM_SCALE > txc->freq)
|
|
||||||
+ if (LLONG_MIN / PPM_SCALE > txc->freq)
|
|
||||||
return -EINVAL;
|
|
||||||
- if (LONG_MAX / PPM_SCALE < txc->freq)
|
|
||||||
+ if (LLONG_MAX / PPM_SCALE < txc->freq)
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.1.0
|
|
||||||
|
|
5
sources
5
sources
@ -1,3 +1,2 @@
|
|||||||
d3fc8316d4d4d04b65cbc2d70799e763 linux-3.19.tar.xz
|
547b340dca94d358b68d2658822080fa linux-4.0-rc1.tar.xz
|
||||||
15d8d2f97ce056488451a5bfb2944603 perf-man-3.19.tar.gz
|
6fb88c6624ded64bd5981c3c1df0003a perf-man-4.0-rc1.tar.gz
|
||||||
d7783c6837600b2db12ff9bc603de6c0 patch-3.19-git10.xz
|
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
From: Dan Carpenter <dan.carpenter@oracle.com>
|
|
||||||
Date: Thu, 5 Feb 2015 10:37:33 +0300
|
|
||||||
Subject: [PATCH] vhost/scsi: potential memory corruption
|
|
||||||
|
|
||||||
This code in vhost_scsi_make_tpg() is confusing because we limit "tpgt"
|
|
||||||
to UINT_MAX but the data type of "tpg->tport_tpgt" and that is a u16.
|
|
||||||
|
|
||||||
I looked at the context and it turns out that in
|
|
||||||
vhost_scsi_set_endpoint(), "tpg->tport_tpgt" is used as an offset into
|
|
||||||
the vs_tpg[] array which has VHOST_SCSI_MAX_TARGET (256) elements so
|
|
||||||
anything higher than 255 then it is invalid. I have made that the limit
|
|
||||||
now.
|
|
||||||
|
|
||||||
In vhost_scsi_send_evt() we mask away values higher than 255, but now
|
|
||||||
that the limit has changed, we don't need the mask.
|
|
||||||
|
|
||||||
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
|
|
||||||
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
|
|
||||||
---
|
|
||||||
drivers/vhost/scsi.c | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c
|
|
||||||
index dc78d87e0fc2..d27cfb20776f 100644
|
|
||||||
--- a/drivers/vhost/scsi.c
|
|
||||||
+++ b/drivers/vhost/scsi.c
|
|
||||||
@@ -1253,7 +1253,7 @@ tcm_vhost_send_evt(struct vhost_scsi *vs,
|
|
||||||
* lun[4-7] need to be zero according to virtio-scsi spec.
|
|
||||||
*/
|
|
||||||
evt->event.lun[0] = 0x01;
|
|
||||||
- evt->event.lun[1] = tpg->tport_tpgt & 0xFF;
|
|
||||||
+ evt->event.lun[1] = tpg->tport_tpgt;
|
|
||||||
if (lun->unpacked_lun >= 256)
|
|
||||||
evt->event.lun[2] = lun->unpacked_lun >> 8 | 0x40 ;
|
|
||||||
evt->event.lun[3] = lun->unpacked_lun & 0xFF;
|
|
||||||
@@ -2124,12 +2124,12 @@ tcm_vhost_make_tpg(struct se_wwn *wwn,
|
|
||||||
struct tcm_vhost_tport, tport_wwn);
|
|
||||||
|
|
||||||
struct tcm_vhost_tpg *tpg;
|
|
||||||
- unsigned long tpgt;
|
|
||||||
+ u16 tpgt;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (strstr(name, "tpgt_") != name)
|
|
||||||
return ERR_PTR(-EINVAL);
|
|
||||||
- if (kstrtoul(name + 5, 10, &tpgt) || tpgt > UINT_MAX)
|
|
||||||
+ if (kstrtou16(name + 5, 10, &tpgt) || tpgt >= VHOST_SCSI_MAX_TARGET)
|
|
||||||
return ERR_PTR(-EINVAL);
|
|
||||||
|
|
||||||
tpg = kzalloc(sizeof(struct tcm_vhost_tpg), GFP_KERNEL);
|
|
||||||
--
|
|
||||||
2.1.0
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user