diff options
-rw-r--r-- | drm_vc4_Fix_an_integer_overflow_in_temporary_allocation_layout.patch | 82 | ||||
-rw-r--r-- | kernel.spec | 21 | ||||
-rw-r--r-- | kvm-fix-page-struct-leak-in-handle_vmon.patch | 48 | ||||
-rw-r--r-- | mm-alloc_contig-re-allow-CMA-to-compact-FS-pages.patch | 42 | ||||
-rw-r--r-- | sources | 2 |
5 files changed, 108 insertions, 87 deletions
diff --git a/drm_vc4_Fix_an_integer_overflow_in_temporary_allocation_layout.patch b/drm_vc4_Fix_an_integer_overflow_in_temporary_allocation_layout.patch deleted file mode 100644 index 37f012073..000000000 --- a/drm_vc4_Fix_an_integer_overflow_in_temporary_allocation_layout.patch +++ /dev/null @@ -1,82 +0,0 @@ -From: Eric Anholt <eric@anholt.net> -To: dri-devel@lists.freedesktop.org -Subject: [PATCH 1/2] drm/vc4: Fix an integer overflow in temporary - allocation layout. -Date: Wed, 18 Jan 2017 07:20:49 +1100 - -We copy the unvalidated ioctl arguments from the user into kernel -temporary memory to run the validation from, to avoid a race where the -user updates the unvalidate contents in between validating them and -copying them into the validated BO. - -However, in setting up the layout of the kernel side, we failed to -check one of the additions (the roundup() for shader_rec_offset) -against integer overflow, allowing a nearly MAX_UINT value of -bin_cl_size to cause us to under-allocate the temporary space that we -then copy_from_user into. - -Reported-by: Murray McAllister <murray.mcallister@insomniasec.com> -Signed-off-by: Eric Anholt <eric@anholt.net> -Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.") ---- - drivers/gpu/drm/vc4/vc4_gem.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index db920771bfb5..c5fe3554858e 100644 ---- a/drivers/gpu/drm/vc4/vc4_gem.c -+++ b/drivers/gpu/drm/vc4/vc4_gem.c -@@ -594,7 +594,8 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec) - args->shader_rec_count); - struct vc4_bo *bo; - -- if (uniforms_offset < shader_rec_offset || -+ if (shader_rec_offset < args->bin_cl_size || -+ uniforms_offset < shader_rec_offset || - exec_size < uniforms_offset || - args->shader_rec_count >= (UINT_MAX / - sizeof(struct vc4_shader_state)) || --- -2.11.0 - -_______________________________________________ -dri-devel mailing list -dri-devel@lists.freedesktop.org -https://lists.freedesktop.org/mailman/listinfo/dri-devel - -From: Eric Anholt <eric@anholt.net> -To: dri-devel@lists.freedesktop.org -Subject: [PATCH 2/2] drm/vc4: Return -EINVAL on the overflow checks failing. -Date: Wed, 18 Jan 2017 07:20:50 +1100 - -By failing to set the errno, we'd continue on to trying to set up the -RCL, and then oops on trying to dereference the tile_bo that binning -validation should have set up. - -Reported-by: Ingo Molnar <mingo@kernel.org> -Signed-off-by: Eric Anholt <eric@anholt.net> -Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.") ---- - drivers/gpu/drm/vc4/vc4_gem.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index c5fe3554858e..ab3016982466 100644 ---- a/drivers/gpu/drm/vc4/vc4_gem.c -+++ b/drivers/gpu/drm/vc4/vc4_gem.c -@@ -601,6 +601,7 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec) - sizeof(struct vc4_shader_state)) || - temp_size < exec_size) { - DRM_ERROR("overflow in exec arguments\n"); -+ ret = -EINVAL; - goto fail; - } - --- -2.11.0 - -_______________________________________________ -dri-devel mailing list -dri-devel@lists.freedesktop.org -https://lists.freedesktop.org/mailman/listinfo/dri-devel - diff --git a/kernel.spec b/kernel.spec index 13c4d1a72..807f3da95 100644 --- a/kernel.spec +++ b/kernel.spec @@ -59,7 +59,7 @@ Summary: The Linux kernel # Do we have a -stable update to apply? -%define stable_update 6 +%define stable_update 7 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -547,6 +547,8 @@ Patch432: bcm283x-fixes.patch # http://www.spinics.net/lists/linux-mmc/msg41151.html Patch433: bcm283x-mmc-imp-speed.patch +Patch434: mm-alloc_contig-re-allow-CMA-to-compact-FS-pages.patch + Patch440: AllWinner-net-emac.patch Patch442: ARM-Drop-fixed-200-Hz-timer-requirement-from-Samsung-platforms.patch @@ -649,12 +651,12 @@ Patch851: selinux-namespace-fix.patch #rhbz 1390308 Patch852: nouveau-add-maxwell-to-backlight-init.patch -#CVE-2017-5576 CVE-2017-5577 rhbz 1416436 1416437 1416439 -Patch853: drm_vc4_Fix_an_integer_overflow_in_temporary_allocation_layout.patch - #The saddest EFI firmware bug Patch854: 0001-x86-efi-always-map-first-physical-page-into-EFI-page.patch +#CVE-2017-2596 rhbz 1417812 1417813 +Patch855: kvm-fix-page-struct-leak-in-handle_vmon.patch + # END OF PATCH DEFINITIONS %endif @@ -2187,12 +2189,23 @@ fi # # %changelog +* Thu Feb 02 2017 Laura Abbott <labbott@fedoraproject.org> - 4.9.7-100 +- Linux v4.9.7 + +* Tue Jan 31 2017 Justin M. Forbes <jforbes@fedoraproject.org> +- Fix kvm nested virt CVE-2017-2596 (rhbz 1417812 1417813) + +* Tue Jan 31 2017 Peter Robinson <pbrobinson@fedoraproject.org> +- Fix CMA compaction regression (Raspberry Pi and others) + * Thu Jan 26 2017 Peter Robinson <pbrobinson@fedoraproject.org> - arm64: dma-mapping: Fix dma_mapping_error() when bypassing SWIOTLB * Thu Jan 26 2017 Laura Abbott <labbott@redhat.com> - 4.9.6-100 - Linux v4.9.6 - Bring in fix for bogus EFI firmware +- Fixes CVE-2017-5547, CVE-2016-10153, CVE-2017-5548, CVE-2017-5551 + (rhbz 1416096 1416101 1416110 1416126 1416128) * Wed Jan 25 2017 Justin M. Forbes <jforbes@fedoraproject.org> - CVE-2017-5576 CVE-2017-5577 vc4 overflows (rhbz 1416436 1416437 1416439) diff --git a/kvm-fix-page-struct-leak-in-handle_vmon.patch b/kvm-fix-page-struct-leak-in-handle_vmon.patch new file mode 100644 index 000000000..38443abcb --- /dev/null +++ b/kvm-fix-page-struct-leak-in-handle_vmon.patch @@ -0,0 +1,48 @@ +From fc66c84bfca091a28d01ba4a2d18b6cfd72ce270 Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini <pbonzini@redhat.com> +Date: Tue, 24 Jan 2017 11:56:21 +0100 +Subject: [PATCH] kvm: fix page struct leak in handle_vmon + +handle_vmon gets a reference on VMXON region page, +but does not release it. Release the reference. + +Found by syzkaller; based on a patch by Dmitry. + +[labbott@redhat.com: Fixed kvm_skip_emulated_instruction for 4.9.x] +Reported-by: Dmitry Vyukov <dvyukov@google.com> +Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> +Reviewed-by: David Hildenbrand <david@redhat.com> +--- + arch/x86/kvm/vmx.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c +index 64774f4..7fef0a9 100644 +--- a/arch/x86/kvm/vmx.c ++++ b/arch/x86/kvm/vmx.c +@@ -6925,14 +6925,20 @@ static int nested_vmx_check_vmptr(struct kvm_vcpu *vcpu, int exit_reason, + } + + page = nested_get_page(vcpu, vmptr); +- if (page == NULL || +- *(u32 *)kmap(page) != VMCS12_REVISION) { ++ if (page == NULL) { + nested_vmx_failInvalid(vcpu); ++ skip_emulated_instruction(vcpu); ++ return 1; ++ } ++ if (*(u32 *)kmap(page) != VMCS12_REVISION) { + kunmap(page); ++ nested_release_page_clean(page); ++ nested_vmx_failInvalid(vcpu); + skip_emulated_instruction(vcpu); + return 1; + } + kunmap(page); ++ nested_release_page_clean(page); + vmx->nested.vmxon_ptr = vmptr; + break; + case EXIT_REASON_VMCLEAR: +-- +2.7.4 + diff --git a/mm-alloc_contig-re-allow-CMA-to-compact-FS-pages.patch b/mm-alloc_contig-re-allow-CMA-to-compact-FS-pages.patch new file mode 100644 index 000000000..0e542dc4f --- /dev/null +++ b/mm-alloc_contig-re-allow-CMA-to-compact-FS-pages.patch @@ -0,0 +1,42 @@ +From 424f6c4818bbf1b8ccf58aa012ecc19c0bb9b446 Mon Sep 17 00:00:00 2001 +From: Lucas Stach <l.stach@pengutronix.de> +Date: Tue, 24 Jan 2017 15:18:05 -0800 +Subject: [PATCH 179/273] mm: alloc_contig: re-allow CMA to compact FS pages + +Commit 73e64c51afc5 ("mm, compaction: allow compaction for GFP_NOFS +requests") changed compation to skip FS pages if not explicitly allowed +to touch them, but missed to update the CMA compact_control. + +This leads to a very high isolation failure rate, crippling performance +of CMA even on a lightly loaded system. Re-allow CMA to compact FS +pages by setting the correct GFP flags, restoring CMA behavior and +performance to the kernel 4.9 level. + +Fixes: 73e64c51afc5 (mm, compaction: allow compaction for GFP_NOFS requests) +Link: http://lkml.kernel.org/r/20170113115155.24335-1-l.stach@pengutronix.de +Signed-off-by: Lucas Stach <l.stach@pengutronix.de> +Acked-by: Michal Hocko <mhocko@suse.com> +Acked-by: Vlastimil Babka <vbabka@suse.cz> +Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> +Cc: Mel Gorman <mgorman@techsingularity.net> +Signed-off-by: Andrew Morton <akpm@linux-foundation.org> +Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> +--- + mm/page_alloc.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/mm/page_alloc.c b/mm/page_alloc.c +index d604d25..41d5e2e 100644 +--- a/mm/page_alloc.c ++++ b/mm/page_alloc.c +@@ -7248,6 +7248,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, + .zone = page_zone(pfn_to_page(start)), + .mode = MIGRATE_SYNC, + .ignore_skip_hint = true, ++ .gfp_mask = GFP_KERNEL, + }; + INIT_LIST_HEAD(&cc.migratepages); + +-- +2.9.3 + @@ -1,3 +1,3 @@ SHA512 (linux-4.9.tar.xz) = bf67ff812cc3cb7e5059e82cc5db0d9a7c5637f7ed9a42e4730c715bf7047c81ed3a571225f92a33ef0b6d65f35595bc32d773356646df2627da55e9bc7f1f1a SHA512 (perf-man-4.9.tar.gz) = d23bb3da1eadd6623fddbf4696948de7675f3dcf57c711a7427dd7ae111394f58d8f42752938bbea7cd219f1e7f6f116fc67a1c74f769711063940a065f37b99 -SHA512 (patch-4.9.6.xz) = 230ab118639d19b7a473e75f5463ea9add3db8cb70fe3ba546e053fc1bd32b1d353eb1c107f5467e5f24a26c43c623cf79cf8d5a5cef85613e4da989a6c0326a +SHA512 (patch-4.9.7.xz) = 48592d15efd6111eaacfa47a6def496bcc120f39bd93afccf4f23c7b93cc320638349890c67ba14792b5330a9a4c7e7fa74db6f84f4df92d20a2bf5a3eb3dcc6 |