forked from rpms/kernel
		
	Linux v4.0-rc1-178-g023a6007a08d
This commit is contained in:
		
							parent
							
								
									2939fc47bc
								
							
						
					
					
						commit
						3b35d75b8c
					
				| @ -1,68 +0,0 @@ | ||||
| From a79ebe4eb65331733803df4a7fd634d3b709af7b Mon Sep 17 00:00:00 2001 | ||||
| From: Marc Zyngier <marc.zyngier@arm.com> | ||||
| Date: Tue, 24 Feb 2015 16:30:21 +0000 | ||||
| Subject: [PATCH] arm64: Fix text patching logic when using fixmap | ||||
| 
 | ||||
| Patch 2f896d586610 ("arm64: use fixmap for text patching") changed | ||||
| the way we patch the kernel text, using a fixmap when the kernel or | ||||
| modules are flagged as read only. | ||||
| 
 | ||||
| Unfortunately, a flaw in the logic makes it fall over when patching | ||||
| modules without CONFIG_DEBUG_SET_MODULE_RONX enabled: | ||||
| 
 | ||||
| [...] | ||||
| [   32.032636] Call trace: | ||||
| [   32.032716] [<fffffe00003da0dc>] __copy_to_user+0x2c/0x60 | ||||
| [   32.032837] [<fffffe0000099f08>] __aarch64_insn_write+0x94/0xf8 | ||||
| [   32.033027] [<fffffe000009a0a0>] aarch64_insn_patch_text_nosync+0x18/0x58 | ||||
| [   32.033200] [<fffffe000009c3ec>] ftrace_modify_code+0x58/0x84 | ||||
| [   32.033363] [<fffffe000009c4e4>] ftrace_make_nop+0x3c/0x58 | ||||
| [   32.033532] [<fffffe0000164420>] ftrace_process_locs+0x3d0/0x5c8 | ||||
| [   32.033709] [<fffffe00001661cc>] ftrace_module_init+0x28/0x34 | ||||
| [   32.033882] [<fffffe0000135148>] load_module+0xbb8/0xfc4 | ||||
| [   32.034044] [<fffffe0000135714>] SyS_finit_module+0x94/0xc4 | ||||
| [...] | ||||
| 
 | ||||
| This is triggered by the use of virt_to_page() on a module address, | ||||
| which ends to pointing to Nowhereland if you're lucky, or corrupt | ||||
| your precious data if not. | ||||
| 
 | ||||
| This patch fixes the logic by mimicking what is done on arm: | ||||
| - If we're patching a module and CONFIG_DEBUG_SET_MODULE_RONX is set,
 | ||||
|   use vmalloc_to_page(). | ||||
| - If we're patching the kernel and CONFIG_DEBUG_RODATA is set,
 | ||||
|   use virt_to_page(). | ||||
| - Otherwise, use the provided address, as we can write to it directly.
 | ||||
| 
 | ||||
| Tested on 4.0-rc1 as a KVM guest. | ||||
| 
 | ||||
| Reported-by: Richard W.M. Jones <rjones@redhat.com> | ||||
| Cc: Kees Cook <keescook@chromium.org> | ||||
| Cc: Mark Rutland <mark.rutland@arm.com> | ||||
| Cc: Laura Abbott <lauraa@codeaurora.org> | ||||
| Cc: Catalin Marinas <catalin.marinas@arm.com> | ||||
| Cc: Will Deacon <will.deacon@arm.com> | ||||
| Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> | ||||
| ---
 | ||||
|  arch/arm64/kernel/insn.c | 4 +++- | ||||
|  1 file changed, 3 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/arch/arm64/kernel/insn.c b/arch/arm64/kernel/insn.c
 | ||||
| index 27d4864..c8eca88 100644
 | ||||
| --- a/arch/arm64/kernel/insn.c
 | ||||
| +++ b/arch/arm64/kernel/insn.c
 | ||||
| @@ -87,8 +87,10 @@ static void __kprobes *patch_map(void *addr, int fixmap)
 | ||||
|   | ||||
|  	if (module && IS_ENABLED(CONFIG_DEBUG_SET_MODULE_RONX)) | ||||
|  		page = vmalloc_to_page(addr); | ||||
| -	else
 | ||||
| +	else if (!module && IS_ENABLED(CONFIG_DEBUG_RODATA))
 | ||||
|  		page = virt_to_page(addr); | ||||
| +	else
 | ||||
| +		return addr;
 | ||||
|   | ||||
|  	BUG_ON(!page); | ||||
|  	set_fixmap(fixmap, page_to_phys(page)); | ||||
| -- 
 | ||||
| 2.3.0 | ||||
| 
 | ||||
| @ -9,7 +9,7 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com> | ||||
|  1 file changed, 21 insertions(+) | ||||
| 
 | ||||
| diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
 | ||||
| index 4991a1664773..096ddbe4c4b3 100644
 | ||||
| index db880bf46135..c931ec7201c0 100644
 | ||||
| --- a/arch/arm/boot/dts/am335x-bone-common.dtsi
 | ||||
| +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
 | ||||
| @@ -102,6 +102,27 @@
 | ||||
|  | ||||
| @ -8,7 +8,7 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com> | ||||
|  1 file changed, 39 insertions(+) | ||||
| 
 | ||||
| diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
 | ||||
| index 6cc25ed912ee..754b96c5dbb1 100644
 | ||||
| index 2c6248d9a9ef..ec755eeb78ee 100644
 | ||||
| --- a/arch/arm/boot/dts/am335x-bone-common.dtsi
 | ||||
| +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
 | ||||
| @@ -81,6 +81,13 @@
 | ||||
| @ -25,7 +25,7 @@ index 6cc25ed912ee..754b96c5dbb1 100644 | ||||
|  	uart0_pins: pinmux_uart0_pins { | ||||
|  		pinctrl-single,pins = < | ||||
|  			0x170 (PIN_INPUT_PULLUP | MUX_MODE0)	/* uart0_rxd.uart0_rxd */ | ||||
| @@ -217,6 +224,38 @@
 | ||||
| @@ -218,6 +225,38 @@
 | ||||
|  		reg = <0x24>; | ||||
|  	}; | ||||
|   | ||||
|  | ||||
| @ -9,7 +9,7 @@ Signed-off-by: Robert Nelson <robertcnelson@gmail.com> | ||||
|  1 file changed, 130 insertions(+) | ||||
| 
 | ||||
| diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
 | ||||
| index 754b96c5dbb1..4991a1664773 100644
 | ||||
| index ec755eeb78ee..db880bf46135 100644
 | ||||
| --- a/arch/arm/boot/dts/am335x-bone-common.dtsi
 | ||||
| +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
 | ||||
| @@ -95,6 +95,13 @@
 | ||||
| @ -74,7 +74,7 @@ index 754b96c5dbb1..4991a1664773 100644 | ||||
|  &usb { | ||||
|  	status = "okay"; | ||||
|  }; | ||||
| @@ -258,6 +299,56 @@
 | ||||
| @@ -259,6 +300,56 @@
 | ||||
|  	}; | ||||
|  }; | ||||
|   | ||||
| @ -131,7 +131,7 @@ index 754b96c5dbb1..4991a1664773 100644 | ||||
|  /include/ "tps65217.dtsi" | ||||
|   | ||||
|  &tps { | ||||
| @@ -339,3 +430,42 @@
 | ||||
| @@ -340,3 +431,42 @@
 | ||||
|  	cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; | ||||
|  	cd-inverted; | ||||
|  }; | ||||
|  | ||||
| @ -14,10 +14,10 @@ Upstream-status: http://lists.freedesktop.org/archives/intel-gfx/2013-November/0 | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
 | ||||
| index 3d220a67f865..8e18e0575d52 100644
 | ||||
| index 3117679299a6..ff781dc0535a 100644
 | ||||
| --- a/drivers/gpu/drm/i915/intel_display.c
 | ||||
| +++ b/drivers/gpu/drm/i915/intel_display.c
 | ||||
| @@ -10870,7 +10870,7 @@ check_crtc_state(struct drm_device *dev)
 | ||||
| @@ -10885,7 +10885,7 @@ check_crtc_state(struct drm_device *dev)
 | ||||
|   | ||||
|  		if (active && | ||||
|  		    !intel_pipe_config_compare(dev, crtc->config, &pipe_config)) { | ||||
|  | ||||
							
								
								
									
										16
									
								
								kernel.spec
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								kernel.spec
									
									
									
									
									
								
							| @ -70,7 +70,7 @@ Summary: The Linux kernel | ||||
| # The rc snapshot level | ||||
| %define rcrev 1 | ||||
| # The git snapshot level | ||||
| %define gitrev 2 | ||||
| %define gitrev 3 | ||||
| # Set rpm version accordingly | ||||
| %define rpmversion 4.%{upstream_sublevel}.0 | ||||
| %endif | ||||
| @ -613,8 +613,6 @@ Patch26059: i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch | ||||
| #rhbz 1094948 | ||||
| Patch26131: acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch | ||||
| 
 | ||||
| Patch26134: perf-tools-Define-_GNU_SOURCE-on-pthread_attr_setaff.patch | ||||
| 
 | ||||
| Patch26137: fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch | ||||
| 
 | ||||
| #CVE-2015-0275 rhbz 1193907 1195178 | ||||
| @ -633,9 +631,6 @@ Patch26141: NFS-fix-clp-cl_revoked-list-deletion-causing-softloc.patch | ||||
| Patch30000: kernel-arm64.patch | ||||
| Patch30001: kernel-arm64-fix-psci-when-pg.patch | ||||
| 
 | ||||
| # Not yet upstream, for https://bugzilla.redhat.com/show_bug.cgi?id=1194366#c12 | ||||
| Patch30002: 0001-arm64-Fix-text-patching-logic-when-using-fixmap.patch | ||||
| 
 | ||||
| # END OF PATCH DEFINITIONS | ||||
| 
 | ||||
| %endif | ||||
| @ -1351,8 +1346,6 @@ ApplyPatch i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch | ||||
| #rhbz 1094948 | ||||
| ApplyPatch acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch | ||||
| 
 | ||||
| ApplyPatch perf-tools-Define-_GNU_SOURCE-on-pthread_attr_setaff.patch | ||||
| 
 | ||||
| ApplyPatch fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch | ||||
| 
 | ||||
| #CVE-2015-0275 rhbz 1193907 1195178 | ||||
| @ -1373,9 +1366,7 @@ ApplyPatch kernel-arm64.patch | ||||
| ApplyPatch kernel-arm64.patch -R | ||||
| %endif | ||||
| %endif | ||||
| ApplyPatch kernel-arm64-fix-psci-when-pg.patch | ||||
| # Not yet upstream, for https://bugzilla.redhat.com/show_bug.cgi?id=1194366#c12 | ||||
| ApplyPatch 0001-arm64-Fix-text-patching-logic-when-using-fixmap.patch | ||||
| # pplyPatch kernel-arm64-fix-psci-when-pg.patch | ||||
| 
 | ||||
| # END OF PATCH APPLICATIONS | ||||
| 
 | ||||
| @ -2227,6 +2218,9 @@ fi | ||||
| # | ||||
| #  | ||||
| %changelog | ||||
| * Tue Mar 03 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.0.0-0.rc1.git3.1 | ||||
| - Linux v4.0-rc1-178-g023a6007a08d | ||||
| 
 | ||||
| * Mon Mar 02 2015 Josh Boyer <jwboyer@fedoraproject.org> | ||||
| - Add patch to fix nfsd soft lockup (rhbz 1185519) | ||||
| - Enable ET131X driver (rhbz 1197842) | ||||
|  | ||||
| @ -1,30 +0,0 @@ | ||||
| From: Josh Boyer <jwboyer@fedoraproject.org> | ||||
| Date: Wed, 11 Feb 2015 10:30:58 -0500 | ||||
| Subject: [PATCH] perf tools: Define _GNU_SOURCE on pthread_attr_setaffinity_np | ||||
|  feature check | ||||
| 
 | ||||
| The man page for pthread_attr_set_affinity_np states that _GNU_SOURCE must | ||||
| be defined before pthread.h is included in order to get the proper function | ||||
| declaration.  Define this in the Makefile. | ||||
| 
 | ||||
| Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> | ||||
| ---
 | ||||
|  tools/perf/config/feature-checks/Makefile | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile
 | ||||
| index 42ac05aaf8ac..b32ff3372514 100644
 | ||||
| --- a/tools/perf/config/feature-checks/Makefile
 | ||||
| +++ b/tools/perf/config/feature-checks/Makefile
 | ||||
| @@ -49,7 +49,7 @@ test-hello.bin:
 | ||||
|  	$(BUILD) | ||||
|   | ||||
|  test-pthread-attr-setaffinity-np.bin: | ||||
| -	$(BUILD) -Werror -lpthread
 | ||||
| +	$(BUILD) -D_GNU_SOURCE -Werror -lpthread
 | ||||
|   | ||||
|  test-stackprotector-all.bin: | ||||
|  	$(BUILD) -Werror -fstack-protector-all | ||||
| -- 
 | ||||
| 2.1.0 | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user