This is a note to let you know that I've just added the patch titled
arm64: Kconfig: select COMPAT_BINFMT_ELF only when BINFMT_ELF is set
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
arm64-kconfig-select-compat_binfmt_elf-only-when-binfmt_elf-is-set.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 2e449048a25eb75d48dff12882b93f26d130a1c6 Mon Sep 17 00:00:00 2001
From: Kefeng Wang <wangkefeng.wang(a)huawei.com>
Date: Thu, 26 Jan 2017 11:19:55 +0800
Subject: arm64: Kconfig: select COMPAT_BINFMT_ELF only when BINFMT_ELF is set
From: Kefeng Wang <wangkefeng.wang(a)huawei.com>
commit 2e449048a25eb75d48dff12882b93f26d130a1c6 upstream.
Fix warning:
"(COMPAT) selects COMPAT_BINFMT_ELF which has unmet direct dependencies
(COMPAT && BINFMT_ELF)"
Signed-off-by: Kefeng Wang <wangkefeng.wang(a)huawei.com>
Signed-off-by: Will Deacon <will.deacon(a)arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
arch/arm64/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -785,7 +785,7 @@ source "fs/Kconfig.binfmt"
config COMPAT
bool "Kernel support for 32-bit EL0"
depends on ARM64_4K_PAGES || EXPERT
- select COMPAT_BINFMT_ELF
+ select COMPAT_BINFMT_ELF if BINFMT_ELF
select HAVE_UID16
select OLD_SIGSUSPEND3
select COMPAT_OLD_SIGACTION
Patches currently in stable-queue which might be from wangkefeng.wang(a)huawei.com are
queue-4.4/arm64-kconfig-select-compat_binfmt_elf-only-when-binfmt_elf-is-set.patch
This is a note to let you know that I've just added the patch titled
amd-xgbe: Fix unused suspend handlers build warning
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
amd-xgbe-fix-unused-suspend-handlers-build-warning.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 91eefaabf102c539e6f5531e9a1e5ed46d2b41ca Mon Sep 17 00:00:00 2001
From: Borislav Petkov <bp(a)suse.de>
Date: Sat, 26 Nov 2016 21:53:52 +0100
Subject: amd-xgbe: Fix unused suspend handlers build warning
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Borislav Petkov <bp(a)suse.de>
commit 91eefaabf102c539e6f5531e9a1e5ed46d2b41ca upstream.
Fix:
drivers/net/ethernet/amd/xgbe/xgbe-main.c:835:12: warning: ‘xgbe_suspend’ defined
but not used [-Wunused-function]
drivers/net/ethernet/amd/xgbe/xgbe-main.c:855:12: warning: ‘xgbe_resume’ defined
but not used [-Wunused-function]
I see it during randconfig builds here.
Signed-off-by: Borislav Petkov <bp(a)suse.de>
Cc: Tom Lendacky <thomas.lendacky(a)amd.com>
Cc: netdev(a)vger.kernel.org
Signed-off-by: David S. Miller <davem(a)davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/net/ethernet/amd/xgbe/xgbe-main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/net/ethernet/amd/xgbe/xgbe-main.c
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
@@ -829,7 +829,7 @@ static int xgbe_remove(struct platform_d
return 0;
}
-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
static int xgbe_suspend(struct device *dev)
{
struct net_device *netdev = dev_get_drvdata(dev);
@@ -868,7 +868,7 @@ static int xgbe_resume(struct device *de
return ret;
}
-#endif /* CONFIG_PM */
+#endif /* CONFIG_PM_SLEEP */
#ifdef CONFIG_ACPI
static const struct acpi_device_id xgbe_acpi_match[] = {
Patches currently in stable-queue which might be from bp(a)suse.de are
queue-4.4/x86-nospec-fix-header-guards-names.patch
queue-4.4/x86-ras-inject-make-it-depend-on-x86_local_apic-y.patch
queue-4.4/mm-early_ioremap-fix-boot-hang-with-earlyprintk-efi-keep.patch
queue-4.4/platform-x86-intel_mid_thermal-fix-suspend-handlers-unused-warning.patch
queue-4.4/x86-microcode-amd-change-load_microcode_amd-s-param-to-bool-to-fix-preemptibility-bug.patch
queue-4.4/x86-spectre-fix-spelling-mistake-vunerable-vulnerable.patch
queue-4.4/amd-xgbe-fix-unused-suspend-handlers-build-warning.patch
queue-4.4/x86-platform-olpc-fix-resume-handler-build-warning.patch
queue-4.4/x86-bugs-drop-one-mitigation-from-dmesg.patch
This is a note to let you know that I've just added the patch titled
ALSA: hda/ca0132 - fix possible NULL pointer use
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
alsa-hda-ca0132-fix-possible-null-pointer-use.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 46a049dae771b95e77ac6c823330f4a60f600236 Mon Sep 17 00:00:00 2001
From: Arnd Bergmann <arnd(a)arndb.de>
Date: Wed, 11 Jan 2017 14:39:44 +0100
Subject: ALSA: hda/ca0132 - fix possible NULL pointer use
From: Arnd Bergmann <arnd(a)arndb.de>
commit 46a049dae771b95e77ac6c823330f4a60f600236 upstream.
gcc-7 caught what it considers a NULL pointer dereference:
sound/pci/hda/patch_ca0132.c: In function 'dspio_scp.constprop':
sound/pci/hda/patch_ca0132.c:1487:4: error: argument 1 null where non-null expected [-Werror=nonnull]
This is plausible from looking at the function, as we compare 'reply'
to NULL earlier in it. I have not tried to analyze if there are constraints
that make it impossible to hit the bug, but adding another NULL check in
the end kills the warning and makes the function more robust.
Signed-off-by: Arnd Bergmann <arnd(a)arndb.de>
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
sound/pci/hda/patch_ca0132.c | 3 +++
1 file changed, 3 insertions(+)
--- a/sound/pci/hda/patch_ca0132.c
+++ b/sound/pci/hda/patch_ca0132.c
@@ -1482,6 +1482,9 @@ static int dspio_scp(struct hda_codec *c
} else if (ret_size != reply_data_size) {
codec_dbg(codec, "RetLen and HdrLen .NE.\n");
return -EINVAL;
+ } else if (!reply) {
+ codec_dbg(codec, "NULL reply\n");
+ return -EINVAL;
} else {
*reply_len = ret_size*sizeof(unsigned int);
memcpy(reply, scp_reply.data, *reply_len);
Patches currently in stable-queue which might be from arnd(a)arndb.de are
queue-4.4/kasan-rework-kconfig-settings.patch
queue-4.4/hdpvr-hide-unused-variable.patch
queue-4.4/mtd-ichxrom-maybe-uninitialized-with-gcc-4.9.patch
queue-4.4/profile-hide-unused-functions-when-config_proc_fs.patch
queue-4.4/perf-x86-shut-up-false-positive-wmaybe-uninitialized-warning.patch
queue-4.4/hwrng-exynos-use-__maybe_unused-to-hide-pm-functions.patch
queue-4.4/usb-cdc_subset-only-build-when-one-driver-is-enabled.patch
queue-4.4/ipv4-ipconfig-avoid-unused-ic_proto_used-symbol.patch
queue-4.4/revert-power-bq27xxx_battery-remove-unneeded-dependency-in-kconfig.patch
queue-4.4/go7007-add-media_camera_support-dependency.patch
queue-4.4/scsi-advansys-fix-build-warning-for-pci-n.patch
queue-4.4/ssb-mark-ssb_bus_register-as-__maybe_unused.patch
queue-4.4/tty-cyclades-cyz_interrupt-is-only-used-for-pci.patch
queue-4.4/infiniband-cxgb4-use-pr-format-string-for-printing-resources.patch
queue-4.4/video-fbdev-via-remove-possibly-unused-variables.patch
queue-4.4/binfmt_elf-compat-avoid-unused-function-warning.patch
queue-4.4/drm-gma500-remove-helper-function.patch
queue-4.4/fbdev-s6e8ax0-avoid-unused-function-warnings.patch
queue-4.4/netfilter-ipvs-avoid-unused-variable-warnings.patch
queue-4.4/idle-i7300-add-pci-dependency.patch
queue-4.4/b2c2-flexcop-avoid-unused-function-warnings.patch
queue-4.4/fbdev-auo_k190x-avoid-unused-function-warnings.patch
queue-4.4/cw1200-fix-bogus-maybe-uninitialized-warning.patch
queue-4.4/x86-build-silence-the-build-with-make-s.patch
queue-4.4/gpio-xgene-mark-pm-functions-as-__maybe_unused.patch
queue-4.4/kvm-add-x86_local_apic-dependency.patch
queue-4.4/arm-tegra-select-usb_ulpi-from-ehci-rather-than-platform.patch
queue-4.4/asoc-mediatek-add-i2c-dependency.patch
queue-4.4/reiserfs-avoid-a-wmaybe-uninitialized-warning.patch
queue-4.4/scsi-advansys-fix-uninitialized-data-access.patch
queue-4.4/mtd-sh_flctl-pass-fifo-as-physical-address.patch
queue-4.4/driver-core-use-dev-argument-in-dev_dbg_ratelimited-stub.patch
queue-4.4/modsign-hide-openssl-output-in-silent-builds.patch
queue-4.4/net-hp100-remove-unnecessary-ifdefs.patch
queue-4.4/genirq-msi-add-stubs-for-get_cached_msi_msg-pci_write_msi_msg.patch
queue-4.4/asoc-intel-kconfig-fix-build-when-acpi-is-not-enabled.patch
queue-4.4/asoc-ux500-add-module_license-tag.patch
queue-4.4/wireless-cw1200-use-__maybe_unused-to-hide-pm-functions_.patch
queue-4.4/mptfusion-hide-unused-seq_mpt_print_ioc_summary-function.patch
queue-4.4/tlan-avoid-unused-label-with-pci-n.patch
queue-4.4/usb-musb-ux500-remove-duplicate-check-for-dma_is_compatible.patch
queue-4.4/mtd-cfi-enforce-valid-geometry-configuration.patch
queue-4.4/thermal-spear-use-__maybe_unused-for-pm-functions.patch
queue-4.4/x86-microcode-amd-change-load_microcode_amd-s-param-to-bool-to-fix-preemptibility-bug.patch
queue-4.4/video-fbdev-mmp-add-module_license.patch
queue-4.4/fbdev-sis-enforce-selection-of-at-least-one-backend.patch
queue-4.4/x86-boot-avoid-warning-for-zero-filling-.bss.patch
queue-4.4/power-bq27xxx_battery-mark-some-symbols-__maybe_unused.patch
queue-4.4/scsi-mvumi-use-__maybe_unused-to-hide-pm-functions.patch
queue-4.4/usb-phy-msm-add-regulator-dependency.patch
queue-4.4/isdn-icn-remove-a-warning.patch
queue-4.4/ncr5380-shut-up-gcc-indentation-warning.patch
queue-4.4/arm64-dts-add-cooling-cells-to-cpu-nodes.patch
queue-4.4/vmxnet3-prevent-building-with-64k-pages.patch
queue-4.4/genksyms-fix-segfault-with-invalid-declarations.patch
queue-4.4/x86-platform-add-pci-dependency-for-punit_atom_debug.patch
queue-4.4/target-user-fix-cast-from-pointer-to-phys_addr_t.patch
queue-4.4/rtlwifi-fix-gcc-6-indentation-warning.patch
queue-4.4/alsa-hda-ca0132-fix-possible-null-pointer-use.patch
queue-4.4/thermal-fix-intel_soc_dts_iosf_core-dependencies.patch
queue-4.4/arm64-define-bug-instruction-without-config_bug.patch
queue-4.4/v4l-remove-media_tuner-dependency-for-video_tuner.patch
queue-4.4/tc358743-fix-register-i2c_rd-wr-functions.patch
queue-4.4/scsi-fdomain-drop-fdomain_pci_tbl-when-built-in.patch
queue-4.4/scsi-initio-remove-duplicate-module-device-table.patch
queue-4.4/netlink-fix-nla_put_-u8-u16-u32-for-kasan.patch
queue-4.4/x86-fpu-math-emu-fix-possible-uninitialized-variable-use.patch
queue-4.4/asoc-rockchip-use-__maybe_unused-to-hide-st_irq_syscfg_resume.patch
queue-4.4/staging-ste_rmi4-avoid-unused-function-warnings.patch
queue-4.4/em28xx-only-use-mt9v011-if-camera-support-is-enabled.patch
queue-4.4/pwc-hide-unused-label.patch
queue-4.4/input-tca8418_keypad-hide-gcc-4.9-wmaybe-uninitialized-warning.patch
queue-4.4/fbdev-sm712fb-avoid-unused-function-warnings.patch
queue-4.4/isdn-sc-work-around-type-mismatch-warning.patch
queue-4.4/tty-hvc_xen-hide-xen_console_remove-when-unused.patch
queue-4.4/virtio_balloon-prevent-uninitialized-variable-use.patch
queue-4.4/drm-nouveau-hide-gcc-4.9-wmaybe-uninitialized.patch
queue-4.4/dell-wmi-dell-laptop-depends-dmi.patch
queue-4.4/x86-add-multiuser-dependency-for-kvm.patch
queue-4.4/md-avoid-warning-for-32-bit-sector_t.patch
queue-4.4/isdn-eicon-reduce-stack-size-of-sig_ind-function.patch
This is a note to let you know that I've just added the patch titled
KVM: async_pf: Fix #DF due to inject "Page not Present" and "Page Ready" exceptions simultaneously
to the 3.18-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
kvm-async_pf-fix-df-due-to-inject-page-not-present-and-page-ready-exceptions-simultaneously.patch
and it can be found in the queue-3.18 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 9a6e7c39810e4a8bc7fc95056cefb40583fe07ef Mon Sep 17 00:00:00 2001
From: Wanpeng Li <wanpeng.li(a)hotmail.com>
Date: Thu, 14 Sep 2017 03:54:16 -0700
Subject: KVM: async_pf: Fix #DF due to inject "Page not Present" and "Page Ready" exceptions simultaneously
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Wanpeng Li <wanpeng.li(a)hotmail.com>
commit 9a6e7c39810e4a8bc7fc95056cefb40583fe07ef upstream.
qemu-system-x86-8600 [004] d..1 7205.687530: kvm_entry: vcpu 2
qemu-system-x86-8600 [004] .... 7205.687532: kvm_exit: reason EXCEPTION_NMI rip 0xffffffffa921297d info ffffeb2c0e44e018 80000b0e
qemu-system-x86-8600 [004] .... 7205.687532: kvm_page_fault: address ffffeb2c0e44e018 error_code 0
qemu-system-x86-8600 [004] .... 7205.687620: kvm_try_async_get_page: gva = 0xffffeb2c0e44e018, gfn = 0x427e4e
qemu-system-x86-8600 [004] .N.. 7205.687628: kvm_async_pf_not_present: token 0x8b002 gva 0xffffeb2c0e44e018
kworker/4:2-7814 [004] .... 7205.687655: kvm_async_pf_completed: gva 0xffffeb2c0e44e018 address 0x7fcc30c4e000
qemu-system-x86-8600 [004] .... 7205.687703: kvm_async_pf_ready: token 0x8b002 gva 0xffffeb2c0e44e018
qemu-system-x86-8600 [004] d..1 7205.687711: kvm_entry: vcpu 2
After running some memory intensive workload in guest, I catch the kworker
which completes the GUP too quickly, and queues an "Page Ready" #PF exception
after the "Page not Present" exception before the next vmentry as the above
trace which will result in #DF injected to guest.
This patch fixes it by clearing the queue for "Page not Present" if "Page Ready"
occurs before the next vmentry since the GUP has already got the required page
and shadow page table has already been fixed by "Page Ready" handler.
Cc: Paolo Bonzini <pbonzini(a)redhat.com>
Cc: Radim Krčmář <rkrcmar(a)redhat.com>
Signed-off-by: Wanpeng Li <wanpeng.li(a)hotmail.com>
Fixes: 7c90705bf2a3 ("KVM: Inject asynchronous page fault into a PV guest if page is swapped out.")
[Changed indentation and added clearing of injected. - Radim]
Signed-off-by: Radim Krčmář <rkrcmar(a)redhat.com>
[port from upstream v4.14-rc1, Don't assign to kvm_queued_exception::injected or
x86_exception::async_page_fault]
Signed-off-by: Jack Wang <jinpu.wang(a)profitbricks.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
arch/x86/kvm/x86.c | 34 ++++++++++++++++++++++++++--------
1 file changed, 26 insertions(+), 8 deletions(-)
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -7756,6 +7756,13 @@ static int apf_put_user(struct kvm_vcpu
sizeof(val));
}
+static int apf_get_user(struct kvm_vcpu *vcpu, u32 *val)
+{
+
+ return kvm_read_guest_cached(vcpu->kvm, &vcpu->arch.apf.data, val,
+ sizeof(u32));
+}
+
void kvm_arch_async_page_not_present(struct kvm_vcpu *vcpu,
struct kvm_async_pf *work)
{
@@ -7782,6 +7789,7 @@ void kvm_arch_async_page_present(struct
struct kvm_async_pf *work)
{
struct x86_exception fault;
+ u32 val;
if (work->wakeup_all)
work->arch.token = ~0; /* broadcast wakeup */
@@ -7789,14 +7797,24 @@ void kvm_arch_async_page_present(struct
kvm_del_async_pf_gfn(vcpu, work->arch.gfn);
trace_kvm_async_pf_ready(work->arch.token, work->gva);
- if ((vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED) &&
- !apf_put_user(vcpu, KVM_PV_REASON_PAGE_READY)) {
- fault.vector = PF_VECTOR;
- fault.error_code_valid = true;
- fault.error_code = 0;
- fault.nested_page_fault = false;
- fault.address = work->arch.token;
- kvm_inject_page_fault(vcpu, &fault);
+ if (vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED &&
+ !apf_get_user(vcpu, &val)) {
+ if (val == KVM_PV_REASON_PAGE_NOT_PRESENT &&
+ vcpu->arch.exception.pending &&
+ vcpu->arch.exception.nr == PF_VECTOR &&
+ !apf_put_user(vcpu, 0)) {
+ vcpu->arch.exception.pending = false;
+ vcpu->arch.exception.nr = 0;
+ vcpu->arch.exception.has_error_code = false;
+ vcpu->arch.exception.error_code = 0;
+ } else if (!apf_put_user(vcpu, KVM_PV_REASON_PAGE_READY)) {
+ fault.vector = PF_VECTOR;
+ fault.error_code_valid = true;
+ fault.error_code = 0;
+ fault.nested_page_fault = false;
+ fault.address = work->arch.token;
+ kvm_inject_page_fault(vcpu, &fault);
+ }
}
vcpu->arch.apf.halted = false;
vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE;
Patches currently in stable-queue which might be from wanpeng.li(a)hotmail.com are
queue-3.18/kvm-async_pf-fix-df-due-to-inject-page-not-present-and-page-ready-exceptions-simultaneously.patch
This is a note to let you know that I've just added the patch titled
KVM: async_pf: Fix #DF due to inject "Page not Present" and "Page Ready" exceptions simultaneously
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
kvm-async_pf-fix-df-due-to-inject-page-not-present-and-page-ready-exceptions-simultaneously.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 9a6e7c39810e4a8bc7fc95056cefb40583fe07ef Mon Sep 17 00:00:00 2001
From: Wanpeng Li <wanpeng.li(a)hotmail.com>
Date: Thu, 14 Sep 2017 03:54:16 -0700
Subject: KVM: async_pf: Fix #DF due to inject "Page not Present" and "Page Ready" exceptions simultaneously
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Wanpeng Li <wanpeng.li(a)hotmail.com>
commit 9a6e7c39810e4a8bc7fc95056cefb40583fe07ef upstream.
qemu-system-x86-8600 [004] d..1 7205.687530: kvm_entry: vcpu 2
qemu-system-x86-8600 [004] .... 7205.687532: kvm_exit: reason EXCEPTION_NMI rip 0xffffffffa921297d info ffffeb2c0e44e018 80000b0e
qemu-system-x86-8600 [004] .... 7205.687532: kvm_page_fault: address ffffeb2c0e44e018 error_code 0
qemu-system-x86-8600 [004] .... 7205.687620: kvm_try_async_get_page: gva = 0xffffeb2c0e44e018, gfn = 0x427e4e
qemu-system-x86-8600 [004] .N.. 7205.687628: kvm_async_pf_not_present: token 0x8b002 gva 0xffffeb2c0e44e018
kworker/4:2-7814 [004] .... 7205.687655: kvm_async_pf_completed: gva 0xffffeb2c0e44e018 address 0x7fcc30c4e000
qemu-system-x86-8600 [004] .... 7205.687703: kvm_async_pf_ready: token 0x8b002 gva 0xffffeb2c0e44e018
qemu-system-x86-8600 [004] d..1 7205.687711: kvm_entry: vcpu 2
After running some memory intensive workload in guest, I catch the kworker
which completes the GUP too quickly, and queues an "Page Ready" #PF exception
after the "Page not Present" exception before the next vmentry as the above
trace which will result in #DF injected to guest.
This patch fixes it by clearing the queue for "Page not Present" if "Page Ready"
occurs before the next vmentry since the GUP has already got the required page
and shadow page table has already been fixed by "Page Ready" handler.
Cc: Paolo Bonzini <pbonzini(a)redhat.com>
Cc: Radim Krčmář <rkrcmar(a)redhat.com>
Signed-off-by: Wanpeng Li <wanpeng.li(a)hotmail.com>
Fixes: 7c90705bf2a3 ("KVM: Inject asynchronous page fault into a PV guest if page is swapped out.")
[Changed indentation and added clearing of injected. - Radim]
Signed-off-by: Radim Krčmář <rkrcmar(a)redhat.com>
[port from upstream v4.14-rc1, Don't assign to kvm_queued_exception::injected or
x86_exception::async_page_fault]
Signed-off-by: Jack Wang <jinpu.wang(a)profitbricks.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
arch/x86/kvm/x86.c | 34 ++++++++++++++++++++++++++--------
1 file changed, 26 insertions(+), 8 deletions(-)
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8427,6 +8427,13 @@ static int apf_put_user(struct kvm_vcpu
sizeof(val));
}
+static int apf_get_user(struct kvm_vcpu *vcpu, u32 *val)
+{
+
+ return kvm_read_guest_cached(vcpu->kvm, &vcpu->arch.apf.data, val,
+ sizeof(u32));
+}
+
void kvm_arch_async_page_not_present(struct kvm_vcpu *vcpu,
struct kvm_async_pf *work)
{
@@ -8453,6 +8460,7 @@ void kvm_arch_async_page_present(struct
struct kvm_async_pf *work)
{
struct x86_exception fault;
+ u32 val;
if (work->wakeup_all)
work->arch.token = ~0; /* broadcast wakeup */
@@ -8460,14 +8468,24 @@ void kvm_arch_async_page_present(struct
kvm_del_async_pf_gfn(vcpu, work->arch.gfn);
trace_kvm_async_pf_ready(work->arch.token, work->gva);
- if ((vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED) &&
- !apf_put_user(vcpu, KVM_PV_REASON_PAGE_READY)) {
- fault.vector = PF_VECTOR;
- fault.error_code_valid = true;
- fault.error_code = 0;
- fault.nested_page_fault = false;
- fault.address = work->arch.token;
- kvm_inject_page_fault(vcpu, &fault);
+ if (vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED &&
+ !apf_get_user(vcpu, &val)) {
+ if (val == KVM_PV_REASON_PAGE_NOT_PRESENT &&
+ vcpu->arch.exception.pending &&
+ vcpu->arch.exception.nr == PF_VECTOR &&
+ !apf_put_user(vcpu, 0)) {
+ vcpu->arch.exception.pending = false;
+ vcpu->arch.exception.nr = 0;
+ vcpu->arch.exception.has_error_code = false;
+ vcpu->arch.exception.error_code = 0;
+ } else if (!apf_put_user(vcpu, KVM_PV_REASON_PAGE_READY)) {
+ fault.vector = PF_VECTOR;
+ fault.error_code_valid = true;
+ fault.error_code = 0;
+ fault.nested_page_fault = false;
+ fault.address = work->arch.token;
+ kvm_inject_page_fault(vcpu, &fault);
+ }
}
vcpu->arch.apf.halted = false;
vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE;
Patches currently in stable-queue which might be from wanpeng.li(a)hotmail.com are
queue-4.9/kvm-x86-fix-escape-of-guest-dr6-to-the-host.patch
queue-4.9/kvm-async_pf-fix-df-due-to-inject-page-not-present-and-page-ready-exceptions-simultaneously.patch
This is a note to let you know that I've just added the patch titled
drm/i915: fix intel_backlight_device_register declaration
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
drm-i915-fix-intel_backlight_device_register-declaration.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From ac29fc66855b79c2960c63a4a66952d5b721d698 Mon Sep 17 00:00:00 2001
From: Arnd Bergmann <arnd(a)arndb.de>
Date: Mon, 27 Nov 2017 16:10:27 +0100
Subject: drm/i915: fix intel_backlight_device_register declaration
From: Arnd Bergmann <arnd(a)arndb.de>
commit ac29fc66855b79c2960c63a4a66952d5b721d698 upstream.
The alternative intel_backlight_device_register() definition apparently
never got used, but I have now run into a case of i915 being compiled
without CONFIG_BACKLIGHT_CLASS_DEVICE, resulting in a number of
identical warnings:
drivers/gpu/drm/i915/intel_drv.h:1739:12: error: 'intel_backlight_device_register' defined but not used [-Werror=unused-function]
This marks the function as 'inline', which was surely the original
intention here.
Fixes: 1ebaa0b9c2d4 ("drm/i915: Move backlight registration to connector registration")
Signed-off-by: Arnd Bergmann <arnd(a)arndb.de>
Signed-off-by: Daniel Vetter <daniel.vetter(a)ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20171127151239.1813673-1-arnd…
(cherry picked from commit 2de2d0b063b08becb2c67a2c338c44e37bdcffee)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/gpu/drm/i915/intel_drv.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1708,7 +1708,7 @@ extern struct drm_display_mode *intel_fi
int intel_backlight_device_register(struct intel_connector *connector);
void intel_backlight_device_unregister(struct intel_connector *connector);
#else /* CONFIG_BACKLIGHT_CLASS_DEVICE */
-static int intel_backlight_device_register(struct intel_connector *connector)
+static inline int intel_backlight_device_register(struct intel_connector *connector)
{
return 0;
}
Patches currently in stable-queue which might be from arnd(a)arndb.de are
queue-4.14/staging-fsl-mc-fix-build-testing-on-x86.patch
queue-4.14/drm-i915-fix-intel_backlight_device_register-declaration.patch
queue-4.14/scsi-bfa-fix-type-conversion-warning.patch
queue-4.14/asoc-ux500-add-module_license-tag.patch
queue-4.14/video-fbdev-mmp-add-module_license.patch
queue-4.14/arm64-dts-add-cooling-cells-to-cpu-nodes.patch
queue-4.14/arm-8743-1-bl_switcher-add-module_license-tag.patch
This is a note to let you know that I've just added the patch titled
x86/vm86: Fix unused variable warning if THP is disabled
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
x86-vm86-fix-unused-variable-warning-if-thp-is-disabled.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 3ba5b5ea7dc3a10ef50819b43a9f8de2705f4eec Mon Sep 17 00:00:00 2001
From: "Kirill A. Shutemov" <kirill.shutemov(a)linux.intel.com>
Date: Mon, 13 Feb 2017 15:52:28 +0300
Subject: x86/vm86: Fix unused variable warning if THP is disabled
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
commit 3ba5b5ea7dc3a10ef50819b43a9f8de2705f4eec upstream.
GCC complains about unused variable 'vma' in mark_screen_rdonly() if THP is
disabled:
arch/x86/kernel/vm86_32.c: In function ‘mark_screen_rdonly’:
arch/x86/kernel/vm86_32.c:180:26: warning: unused variable ‘vma’
[-Wunused-variable]
struct vm_area_struct *vma = find_vma(mm, 0xA0000);
That's silly. pmd_trans_huge() resolves to 0 when THP is disabled, so the
whole block should be eliminated.
Moving the variable declaration outside the if() block shuts GCC up.
Reported-by: Jérémy Lefaure <jeremy.lefaure(a)lse.epita.fr>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Tested-by: Borislav Petkov <bp(a)suse.de>
Cc: Carlos O'Donell <carlos(a)redhat.com>
Link: http://lkml.kernel.org/r/20170213125228.63645-1-kirill.shutemov@linux.intel…
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
arch/x86/kernel/vm86_32.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/arch/x86/kernel/vm86_32.c
+++ b/arch/x86/kernel/vm86_32.c
@@ -160,11 +160,12 @@ void save_v86_state(struct kernel_vm86_r
static void mark_screen_rdonly(struct mm_struct *mm)
{
+ struct vm_area_struct *vma;
+ spinlock_t *ptl;
pgd_t *pgd;
pud_t *pud;
pmd_t *pmd;
pte_t *pte;
- spinlock_t *ptl;
int i;
down_write(&mm->mmap_sem);
@@ -177,7 +178,7 @@ static void mark_screen_rdonly(struct mm
pmd = pmd_offset(pud, 0xA0000);
if (pmd_trans_huge(*pmd)) {
- struct vm_area_struct *vma = find_vma(mm, 0xA0000);
+ vma = find_vma(mm, 0xA0000);
split_huge_pmd(vma, pmd, 0xA0000);
}
if (pmd_none_or_clear_bad(pmd))
Patches currently in stable-queue which might be from kirill.shutemov(a)linux.intel.com are
queue-4.9/x86-vm86-fix-unused-variable-warning-if-thp-is-disabled.patch
queue-4.9/shmem-avoid-maybe-uninitialized-warning.patch