Compare commits

..

18 Commits

Author SHA1 Message Date
Thomas Lamprecht b6d9526601 update ABI file for 5.0.21-5-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-13 10:53:08 +01:00
Thomas Lamprecht ee7f5b50ad bump version to 5.0.21-10
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-13 10:27:55 +01:00
Thomas Lamprecht b9b2d45ed0 rebase patches on top of Ubuntu-5.0.0-35.38
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-13 10:05:37 +01:00
Thomas Lamprecht 7b833ea615 update sources to Ubuntu-5.0.0-35.38
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-13 10:05:37 +01:00
Thomas Lamprecht b1cf66bce1 disable alsa snd pcspkr module
The PC speaker (beeper) can only be managed by one module, and there
are two which could do so. The very basic INPUT_PCSPKR, and the more
advanced SND_PCSP which allows it to be used as primitive ALSA
soundcard, which for Proxmox Server projects, and all modern
workstations is not much of use.

As they both were aliased to the "pcspkr" module name, and used the
same internal driver name (being a replacment of the other), one
would get the following error message when both are loaded:
"Error: Driver 'pcspkr' is already registered, aborting..."
in the kernel log. This happens as by default both are tried to get
loaded. We do not want the more complex ALSA one, so disable that.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit b481f89770)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-12 15:45:32 +01:00
Thomas Lamprecht 584fbee1dd backport: KVM: x86: introduce is_pae_paging
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-12 13:33:39 +01:00
Thomas Lamprecht 7481faa0a8 update also Makefile version for bump to make lintian test this
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-11 15:36:45 +01:00
Thomas Lamprecht 97cd39f070 fix #2448: compile ISO8859-1 NLS as built-in
Allows to mount VFAT devices even if the currently running kernel was
removed before any VFAT, or other FS using the default Native
Language Support module was mounted during the current uptime.

This then could break updating the ESP partitions, which are mounted
with VFAT in a postrm triggered step - so at a time where the current
/lib/modules/... was already removed, and so the NLS could not get
loaded.

While there are a lot of different NLS, our kernel config has:
> CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"

So compile that module as built-in.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-11 14:13:08 +01:00
Thomas Lamprecht 81b7cb8a78 bump version to 5.0.21-9
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-11 14:13:08 +01:00
Thomas Lamprecht 03505c4ba3 revert: KVM: x86: Manually calculate reserved bits when loading PDPTRS
Problematic on old Intel CPUs:
https://forum.proxmox.com/threads/pve-kernel-5-0-21-4-pve-cause-debian-guests-to-reboot-loop-on-older-intel-cpus.59377/page-3#post-276413
https://bugzilla.kernel.org/show_bug.cgi?id=205441#c1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-11 11:15:47 +01:00
Thomas Lamprecht f665e167a1 update ABI file for 5.0.21-4-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 19:04:29 +02:00
Thomas Lamprecht 4d749645ab update firmware list
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 19:04:29 +02:00
Thomas Lamprecht 929ba8531f bump version to 5.0.21-8
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 19:04:29 +02:00
Thomas Lamprecht 87f2b5c56d update ZFS submodule to 0.8.2-pve2, FPU/SIMD fixes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 19:04:29 +02:00
Thomas Lamprecht 46396362f1 rebase patches on top of Ubuntu-5.0.0-33.35
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 17:17:42 +02:00
Thomas Lamprecht 7622a48de8 update sources to Ubuntu-5.0.0-33.35
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 17:17:42 +02:00
Thomas Lamprecht 33060f2711 remove unused patches
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 17:01:50 +02:00
Thomas Lamprecht 9e34f3e811 update README
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 17:00:54 +02:00
21 changed files with 23606 additions and 23823 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
[submodule "submodules/zfsonlinux"]
path = submodules/zfsonlinux
url = ../zfsonlinux
[submodule "submodules/ubuntu-eoan"]
path = submodules/ubuntu-eoan
url = ../mirror_ubuntu-eoan-kernel
[submodule "submodules/ubuntu-disco"]
path = submodules/ubuntu-disco
url = ../mirror_ubuntu-disco-kernel
+5 -5
View File
@@ -1,12 +1,12 @@
# also bump pve-kernel-meta if either of MAJ.MIN, PATCHLEVEL or KREL change
KERNEL_MAJ=5
KERNEL_MIN=3
KERNEL_PATCHLEVEL=18
KERNEL_MIN=0
KERNEL_PATCHLEVEL=21
# increment KREL if the ABI changes (abicheck target in debian/rules)
# rebuild packages with new KREL and run 'make abiupdate'
KREL=3
KREL=5
PKGREL=3
PKGREL=10
KERNEL_MAJMIN=$(KERNEL_MAJ).$(KERNEL_MIN)
KERNEL_VER=$(KERNEL_MAJMIN).$(KERNEL_PATCHLEVEL)
@@ -31,7 +31,7 @@ SKIPABI=0
BUILD_DIR=build
KERNEL_SRC=ubuntu-eoan
KERNEL_SRC=ubuntu-disco
KERNEL_SRC_SUBMODULE=submodules/$(KERNEL_SRC)
KERNEL_CFG_ORG=config-${KERNEL_VER}.org
+1 -1
View File
@@ -3,7 +3,7 @@ KERNEL SOURCE:
We currently use the Ubuntu kernel sources, available from:
http://kernel.ubuntu.com/git/ubuntu/ubuntu-eoan.git/
http://kernel.ubuntu.com/git/ubuntu/ubuntu-disco.git/
Ubuntu will maintain those kernels till:
+23297
View File
File diff suppressed because it is too large Load Diff
-23570
View File
File diff suppressed because it is too large Load Diff
+13 -63
View File
@@ -1,78 +1,28 @@
pve-kernel (5.3.18-3) pve pmg; urgency=medium
pve-kernel (5.0.21-10) pve pmg; urgency=medium
* bump ABI to 5.3.18-3
* update to Ubuntu-5.0.0-35.38
* update to Ubuntu-5.3.0-43.36
* bump ABI to 5.0.21-5
-- Proxmox Support Team <support@proxmox.com> Tue, 17 Mar 2020 16:33:19 +0100
* avoid bouds error message about PC Speaker module being already registered
pve-kernel (5.3.18-2) pve pmg; urgency=medium
-- Proxmox Support Team <support@proxmox.com> Wed, 13 Nov 2019 08:27:10 +0100
* bump ABI to 5.3.18-2
pve-kernel (5.0.21-9) pve pmg; urgency=medium
* update to Ubuntu-5.3.0-41.33
* fix #2458: fix issues with Linux KVM guest on old Intel CPUs
-- Proxmox Support Team <support@proxmox.com> Sat, 15 Feb 2020 15:11:52 +0100
-- Proxmox Support Team <support@proxmox.com> Mon, 11 Nov 2019 14:12:37 +0100
pve-kernel (5.3.18-1) pve pmg; urgency=medium
pve-kernel (5.0.21-8) pve pmg; urgency=medium
* bump ABI to 5.3.18-1
* update to Ubuntu-5.0.0-33.35
* update sources to Ubuntu-5.3.0-40.32
* bump ABI to 5.0.21-4
-- Proxmox Support Team <support@proxmox.com> Wed, 05 Feb 2020 11:49:10 +0100
* update ZFS FPU/SIMD implementation to upstream proposal
pve-kernel (5.3.13-3) pve pmg; urgency=medium
* backport fixes for information leak within a KVM guest
* bump ABI to 5.3.13-3
-- Proxmox Support Team <support@proxmox.com> Fri, 31 Jan 2020 08:17:11 +0100
pve-kernel (5.3.13-2) pve pmg; urgency=medium
* update sources to Ubuntu-5.3.0-29.31
* update ZFS to 0.8.3
-- Proxmox Support Team <support@proxmox.com> Fri, 24 Jan 2020 09:49:36 +0100
pve-kernel (5.3.13-1) pve pmg; urgency=medium
* bump ABI to 5.3.13-1
* update sources to Ubuntu-5.3.0-25.27
-- Proxmox Support Team <support@proxmox.com> Thu, 05 Dec 2019 07:18:14 +0100
pve-kernel (5.3.10-1) pve pmg; urgency=medium
* bump ABI to 5.3.10-1
* update sources to Ubuntu-5.3.0-24.26
-- Proxmox Support Team <support@proxmox.com> Thu, 14 Nov 2019 10:43:13 +0100
pve-kernel (5.3.7-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.3.0-20.21
* bump ABI to 5.3.7-1
* update ZFS submodule to include FPU/SIMD fixes
-- Proxmox Support Team <support@proxmox.com> Wed, 23 Oct 2019 19:00:21 +0200
pve-kernel (5.3.1-1) pve pmg; urgency=medium
* Initial Ubuntu Eoan Kernel build, based on 5.3
* update sources to Ubuntu-5.3.0-16.17
* bump ABI to 5.3.0-1
-- Proxmox Support Team <support@proxmox.com> Tue, 01 Oct 2019 18:57:21 +0200
-- Proxmox Support Team <support@proxmox.com> Wed, 23 Oct 2019 17:49:13 +0200
pve-kernel (5.0.21-7) pve pmg; urgency=medium
-1
View File
@@ -23,7 +23,6 @@ Build-Depends: asciidoc-base,
libssl-dev,
libtool,
lintian,
lz4,
perl-modules,
python-minimal,
rsync,
+1 -1
View File
@@ -8,7 +8,7 @@ die "no directory to scan" if !$dir;
die "no such directory" if ! -d $dir;
die "strange directory name" if $dir !~ m|^(.*/)?(5.3.\d+\-\d+\-pve)(/+)?$|;
die "strange directory name" if $dir !~ m|^(.*/)?(5.0.\d+\-\d+\-pve)(/+)?$|;
my $apiver = $2;
+23 -70
View File
@@ -95,20 +95,6 @@ amdgpu/mullins_sdma1.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/mullins_sdma.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/mullins_uvd.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/mullins_vce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_asd.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_gpu_info.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_me.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_mec2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_mec.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_mes.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_pfp.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_rlc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_sdma1.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_sdma.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_smc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_sos.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/navi10_vcn.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/oland_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/oland_k_smc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/oland_mc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
@@ -209,7 +195,6 @@ amdgpu/raven_asd.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/raven_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/raven_dmcu.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/raven_gpu_info.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/raven_kicker_rlc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/raven_me.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/raven_mec2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/raven_mec.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
@@ -430,9 +415,9 @@ bnx2/bnx2-mips-09-6.2.1b.fw kernel/drivers/net/ethernet/broadcom/bnx2.ko
bnx2/bnx2-rv2p-06-6.0.15.fw kernel/drivers/net/ethernet/broadcom/bnx2.ko
bnx2/bnx2-rv2p-09-6.0.17.fw kernel/drivers/net/ethernet/broadcom/bnx2.ko
bnx2/bnx2-rv2p-09ax-6.0.17.fw kernel/drivers/net/ethernet/broadcom/bnx2.ko
bnx2x/bnx2x-e1-7.13.11.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
bnx2x/bnx2x-e1h-7.13.11.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
bnx2x/bnx2x-e2-7.13.11.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
bnx2x/bnx2x-e1-7.13.1.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
bnx2x/bnx2x-e1h-7.13.1.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
bnx2x/bnx2x-e2-7.13.1.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
brcm/bcm43xx-0.fw kernel/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcmsmac.ko
brcm/bcm43xx_hdr-0.fw kernel/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcmsmac.ko
brcm/brcmfmac43012-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
@@ -453,7 +438,6 @@ brcm/brcmfmac4339-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfm
brcm/brcmfmac43430a0-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43430-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43455-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43456-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4350c2-pcie.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4350-pcie.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4354-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
@@ -552,7 +536,6 @@ dvb_nova_12mhz_b0.inp kernel/drivers/media/common/siano/smsmdtv.ko
dvb_nova_12mhz.inp kernel/drivers/media/common/siano/smsmdtv.ko
dvb_rio.inp kernel/drivers/media/common/siano/smsmdtv.ko
dvb-tuner-si2141-a10-01.fw kernel/drivers/media/tuners/si2157.ko
dvb-tuner-si2157-a30-01.fw kernel/drivers/media/tuners/si2157.ko
dvb-tuner-si2158-a20-01.fw kernel/drivers/media/tuners/si2157.ko
dvb-usb-af9015.fw kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9015.ko
dvb-usb-af9035-02.fw kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-af9035.ko
@@ -665,20 +648,16 @@ i1480-usb-0.0.bin kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko
i2400m-fw-usb-1.5.sbcf kernel/drivers/net/wimax/i2400m/i2400m-usb.ko
i6050-fw-usb-1.5.sbcf kernel/drivers/net/wimax/i2400m/i2400m-usb.ko
i915/bxt_dmc_ver1_07.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/bxt_guc_32.0.3.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/bxt_huc_ver01_8_2893.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/bxt_guc_ver9_29.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/bxt_huc_ver01_07_1398.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/cnl_dmc_ver1_07.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/glk_dmc_ver1_04.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/glk_guc_32.0.3.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/glk_huc_ver03_01_2893.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/icl_dmc_ver1_07.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/icl_guc_32.0.3.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/icl_huc_ver8_4_3238.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/kbl_dmc_ver1_04.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/kbl_guc_32.0.3.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/kbl_guc_ver9_39.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/kbl_huc_ver02_00_1810.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/skl_dmc_ver1_27.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/skl_guc_32.0.3.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/skl_guc_ver9_33.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/skl_huc_ver01_07_1398.bin kernel/drivers/gpu/drm/i915/i915.ko
intel/ibt-11-5.ddc kernel/drivers/bluetooth/btintel.ko
intel/ibt-11-5.sfi kernel/drivers/bluetooth/btintel.ko
@@ -726,24 +705,20 @@ iwlwifi-7265-17.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-7265D-29.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-8000C-36.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-8265-36.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-9000-pu-b0-jf-b0-46.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-9260-th-b0-jf-b0-46.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-cc-a0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-a0-hr-a0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-a0-jf-b0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-b0-hr-b0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-b0-jf-b0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-c0-hr-b0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-a0-hr-a0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-b0-hr-b0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-b0-jf-b0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-f0-hr-a0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuZ-a0-hr-b0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuZ-a0-jf-b0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-so-a0-gf-a0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-so-a0-hr-b0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-so-a0-jf-b0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-ty-a0-gf-a0-48.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-9000-pu-a0-jf-a0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-9000-pu-a0-jf-b0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-9000-pu-b0-jf-b0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-9260-th-a0-jf-a0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-9260-th-b0-jf-b0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-a0-hr-a0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-a0-jf-b0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-b0-hr-b0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-b0-jf-b0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-a0-hr-a0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-a0-jf-b0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-b0-hr-b0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-f0-hr-a0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-su-z0-43.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
kaweth/new_code.bin kernel/drivers/net/usb/kaweth.ko
kaweth/new_code_fix.bin kernel/drivers/net/usb/kaweth.ko
kaweth/trigger_code.bin kernel/drivers/net/usb/kaweth.ko
@@ -810,18 +785,9 @@ me4000_firmware.bin kernel/drivers/staging/comedi/drivers/me4000.ko
mediatek/mt7610e.bin kernel/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0e.ko
mediatek/mt7610e.bin kernel/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0u.ko
mediatek/mt7610u.bin kernel/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0u.ko
mediatek/mt7615_cr4.bin kernel/drivers/net/wireless/mediatek/mt76/mt7615/mt7615e.ko
mediatek/mt7615_n9.bin kernel/drivers/net/wireless/mediatek/mt76/mt7615/mt7615e.ko
mediatek/mt7615_rom_patch.bin kernel/drivers/net/wireless/mediatek/mt76/mt7615/mt7615e.ko
mediatek/mt7622pr2h.bin kernel/drivers/bluetooth/btmtkuart.ko
mediatek/mt7650e.bin kernel/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0e.ko
mediatek/mt7663pr2h.bin kernel/drivers/bluetooth/btmtksdio.ko
mediatek/mt7663pr2h.bin kernel/drivers/bluetooth/btmtkuart.ko
mediatek/mt7663pr2h.bin kernel/drivers/bluetooth/btusb.ko
mediatek/mt7668pr2h.bin kernel/drivers/bluetooth/btmtksdio.ko
mediatek/mt7668pr2h.bin kernel/drivers/bluetooth/btmtkuart.ko
mediatek/mt7668pr2h.bin kernel/drivers/bluetooth/btusb.ko
mellanox/mlxsw_spectrum-13.2000.1122.mfa2 kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
mellanox/mlxsw_spectrum-13.1910.622.mfa2 kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
mixart/miXart8AES.xlx kernel/sound/pci/mixart/snd-mixart.ko
mixart/miXart8.elf kernel/sound/pci/mixart/snd-mixart.ko
mixart/miXart8.xlx kernel/sound/pci/mixart/snd-mixart.ko
@@ -841,10 +807,6 @@ mrvl/sd8887_uapsta.bin kernel/drivers/bluetooth/btmrvl_sdio.ko
mrvl/sd8887_uapsta.bin kernel/drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.ko
mrvl/sd8897_uapsta.bin kernel/drivers/bluetooth/btmrvl_sdio.ko
mrvl/sd8897_uapsta.bin kernel/drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.ko
mrvl/sd8977_uapsta.bin kernel/drivers/bluetooth/btmrvl_sdio.ko
mrvl/sd8977_uapsta.bin kernel/drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.ko
mrvl/sd8987_uapsta.bin kernel/drivers/bluetooth/btmrvl_sdio.ko
mrvl/sd8987_uapsta.bin kernel/drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.ko
mrvl/sd8997_uapsta.bin kernel/drivers/bluetooth/btmrvl_sdio.ko
mrvl/sd8997_uapsta.bin kernel/drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.ko
mrvl/usb8766_uapsta.bin kernel/drivers/net/wireless/marvell/mwifiex/mwifiex_usb.ko
@@ -852,10 +814,6 @@ mrvl/usb8797_uapsta.bin kernel/drivers/net/wireless/marvell/mwifiex/mwifiex_usb.
mrvl/usb8801_uapsta.bin kernel/drivers/net/wireless/marvell/mwifiex/mwifiex_usb.ko
mrvl/usbusb8997_combo_v4.bin kernel/drivers/net/wireless/marvell/mwifiex/mwifiex_usb.ko
mt7601u.bin kernel/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
mt7603_e1.bin kernel/drivers/net/wireless/mediatek/mt76/mt7603/mt7603e.ko
mt7603_e2.bin kernel/drivers/net/wireless/mediatek/mt76/mt7603/mt7603e.ko
mt7628_e1.bin kernel/drivers/net/wireless/mediatek/mt76/mt7603/mt7603e.ko
mt7628_e2.bin kernel/drivers/net/wireless/mediatek/mt76/mt7603/mt7603e.ko
mt7662.bin kernel/drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2e.ko
mt7662.bin kernel/drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2u.ko
mt7662_rom_patch.bin kernel/drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2e.ko
@@ -1109,10 +1067,6 @@ prism_ap_fw.bin kernel/drivers/net/wireless/intersil/orinoco/orinoco.ko
prism_sta_fw.bin kernel/drivers/net/wireless/intersil/orinoco/orinoco.ko
qat_895xcc.bin kernel/drivers/crypto/qat/qat_dh895xcc/qat_dh895xcc.ko
qat_895xcc_mmp.bin kernel/drivers/crypto/qat/qat_dh895xcc/qat_dh895xcc.ko
qat_c3xxx.bin kernel/drivers/crypto/qat/qat_c3xxx/qat_c3xxx.ko
qat_c3xxx_mmp.bin kernel/drivers/crypto/qat/qat_c3xxx/qat_c3xxx.ko
qat_c62x.bin kernel/drivers/crypto/qat/qat_c62x/qat_c62x.ko
qat_c62x_mmp.bin kernel/drivers/crypto/qat/qat_c62x/qat_c62x.ko
qed/qed_init_values_zipped-8.37.7.0.bin kernel/drivers/net/ethernet/qlogic/qed/qed.ko
ql2100_fw.bin kernel/drivers/scsi/qla2xxx/qla2xxx.ko
ql2200_fw.bin kernel/drivers/scsi/qla2xxx/qla2xxx.ko
@@ -1406,7 +1360,6 @@ rtl_nic/rtl8402-1.fw kernel/drivers/net/ethernet/realtek/r8169.ko
rtl_nic/rtl8411-1.fw kernel/drivers/net/ethernet/realtek/r8169.ko
rtl_nic/rtl8411-2.fw kernel/drivers/net/ethernet/realtek/r8169.ko
rtlwifi/rtl8188efw.bin kernel/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/rtl8188ee.ko
rtlwifi/rtl8188eufw.bin kernel/drivers/staging/rtl8188eu/r8188eu.ko
rtlwifi/rtl8192cfw.bin kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.ko
rtlwifi/rtl8192cfwU_B.bin kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.ko
rtlwifi/rtl8192cfwU.bin kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.ko
@@ -1432,9 +1385,9 @@ rtlwifi/rtl8723bu_nic.bin kernel/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.
rtlwifi/rtl8723efw.bin kernel/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/rtl8723ae.ko
rtlwifi/rtl8821aefw_29.bin kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/rtl8821ae.ko
rtlwifi/rtl8821aefw.bin kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/rtl8821ae.ko
rtlwifi/rtl8822befw.bin kernel/drivers/staging/rtlwifi/r8822be.ko
rtw88/rtw8822b_fw.bin kernel/drivers/net/wireless/realtek/rtw88/rtw88.ko
rtw88/rtw8822c_fw.bin kernel/drivers/net/wireless/realtek/rtw88/rtw88.ko
s5k4ecgx.bin kernel/drivers/media/i2c/s5k4ecgx.ko
sd8385.bin kernel/drivers/net/wireless/marvell/libertas/libertas_sdio.ko
sd8385_helper.bin kernel/drivers/net/wireless/marvell/libertas/libertas_sdio.ko
sd8686.bin kernel/drivers/net/wireless/marvell/libertas/libertas_sdio.ko
@@ -21,7 +21,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
index 2339f86126cb..643657404049 100755
index 87f1fc9801d7..4ef868f1f244 100755
--- a/scripts/mkcompile_h
+++ b/scripts/mkcompile_h
@@ -33,10 +33,14 @@ else
@@ -19,10 +19,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
index d174d3a566aa..885e18c72c87 100644
index 808e2b914015..b0ad54384826 100644
--- a/net/bridge/br_stp_if.c
+++ b/net/bridge/br_stp_if.c
@@ -256,10 +256,7 @@ bool br_stp_recalculate_bridge_id(struct net_bridge *br)
@@ -259,10 +259,7 @@ bool br_stp_recalculate_bridge_id(struct net_bridge *br)
return false;
list_for_each_entry(p, &br->port_list, list) {
@@ -55,10 +55,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 files changed, 111 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 12305bfe9ac3..9b41dd8b5503 100644
index 988d3f3ad29d..cd1a1bddb997 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -3395,6 +3395,15 @@
@@ -3312,6 +3312,15 @@
Also, it enforces the PCI Local Bus spec
rule that those bits should be 0 in system reset
events (useful for kexec/kdump cases).
@@ -75,10 +75,10 @@ index 12305bfe9ac3..9b41dd8b5503 100644
Safety option to keep boot IRQs enabled. This
should never be necessary.
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 752046bc187f..dbf885de8905 100644
index e2479ccedc91..4981d0ec7960 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -193,6 +193,106 @@ static int __init pci_apply_final_quirks(void)
@@ -194,6 +194,106 @@ static int __init pci_apply_final_quirks(void)
}
fs_initcall_sync(pci_apply_final_quirks);
@@ -185,7 +185,7 @@ index 752046bc187f..dbf885de8905 100644
/*
* Decoding should be disabled for a PCI device during BAR sizing to avoid
* conflict. But doing so may cause problems on host bridge and perhaps other
@@ -4607,6 +4707,8 @@ static const struct pci_dev_acs_enabled {
@@ -4564,6 +4664,8 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
/* APM X-Gene */
{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
@@ -13,10 +13,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index a1d023310402..63354b9b8fc4 100644
index 6f50cf5b9ef5..a3d541f23204 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -76,7 +76,7 @@ module_param(halt_poll_ns, uint, 0644);
@@ -78,7 +78,7 @@ module_param(halt_poll_ns, uint, 0644);
EXPORT_SYMBOL_GPL(halt_poll_ns);
/* Default doubles per-vcpu halt_poll_ns. */
@@ -18,10 +18,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index fdf752afd753..7285966db840 100644
index 2bb8fa904b9f..835edf9b2954 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -103,7 +103,7 @@ module_param(enable_apicv, bool, S_IRUGO);
@@ -106,7 +106,7 @@ module_param(enable_apicv, bool, S_IRUGO);
* VMX and be a hypervisor for its own guests. If nested=0, guests may not
* use VMX instructions.
*/
@@ -1,95 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Imre Deak <imre.deak@intel.com>
Date: Mon, 28 Oct 2019 20:15:17 +0200
Subject: [PATCH] drm/i915: Avoid HPD poll detect triggering a new detect cycle
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
For the HPD interrupt functionality the HW depends on power wells in the
display core domain to be on. Accordingly when enabling these power
wells the HPD polling logic will force an HPD detection cycle to account
for hotplug events that may have happened when such a power well was
off.
Thus a detect cycle started by polling could start a new detect cycle if
a power well in the display core domain gets enabled during detect and
stays enabled after detect completes. That in turn can lead to a
detection cycle runaway.
To prevent re-triggering a poll-detect cycle make sure we drop all power
references we acquired during detect synchronously by the end of detect.
This will let the poll-detect logic continue with polling (matching the
off state of the corresponding power wells) instead of scheduling a new
detection cycle.
Fixes: 6cfe7ec02e85 ("drm/i915: Remove the unneeded AUX power ref from intel_dp_detect()")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112125
Reported-and-tested-by: Val Kulkov <val.kulkov@gmail.com>
Reported-and-tested-by: wangqr <wqr.prg@gmail.com>
Cc: Val Kulkov <val.kulkov@gmail.com>
Cc: wangqr <wqr.prg@gmail.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191028181517.22602-1-imre.deak@intel.com
(cherry picked from commit a8ddac7c9f06a12227a4f5febd1cbe0575a33179)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
drivers/gpu/drm/i915/display/intel_crt.c | 7 +++++++
drivers/gpu/drm/i915/display/intel_dp.c | 6 ++++++
drivers/gpu/drm/i915/display/intel_hdmi.c | 6 ++++++
3 files changed, 19 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
index 3fcf2f84bcce..da1d6be46a0c 100644
--- a/drivers/gpu/drm/i915/display/intel_crt.c
+++ b/drivers/gpu/drm/i915/display/intel_crt.c
@@ -867,6 +867,13 @@ intel_crt_detect(struct drm_connector *connector,
out:
intel_display_power_put(dev_priv, intel_encoder->power_domain, wakeref);
+
+ /*
+ * Make sure the refs for power wells enabled during detect are
+ * dropped to avoid a new detect cycle triggered by HPD polling.
+ */
+ intel_display_power_flush_work(dev_priv);
+
return status;
}
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 305abddc274a..dbdd46ba9bfe 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5649,6 +5649,12 @@ intel_dp_detect(struct drm_connector *connector,
if (status != connector_status_connected && !intel_dp->is_mst)
intel_dp_unset_edid(intel_dp);
+ /*
+ * Make sure the refs for power wells enabled during detect are
+ * dropped to avoid a new detect cycle triggered by HPD polling.
+ */
+ intel_display_power_flush_work(dev_priv);
+
return status;
}
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 7ffdfaae7188..5d5453461a6f 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -2571,6 +2571,12 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
if (status != connector_status_connected)
cec_notifier_phys_addr_invalidate(intel_hdmi->cec_notifier);
+ /*
+ * Make sure the refs for power wells enabled during detect are
+ * dropped to avoid a new detect cycle triggered by HPD polling.
+ */
+ intel_display_power_flush_work(dev_priv);
+
return status;
}
@@ -0,0 +1,41 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ilya Dryomov <idryomov@gmail.com>
Date: Fri, 3 May 2019 17:27:03 +0200
Subject: [PATCH] rbd: don't assert on writes to snapshots
The check added in commit 721c7fc701c7 ("block: fail op_is_write()
requests to read-only partitions") was lifted in commit a32e236eb93e
("Partially revert "block: fail op_is_write() requests to read-only
partitions""). Basic things like user triggered writes and discards
are still caught, but internal kernel users can submit anything. In
particular, ext4 will attempt to write to the superblock if it detects
errors in the filesystem, even if the filesystem is mounted read-only
on a read-only partition.
The assert is overkill regardless.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
drivers/block/rbd.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 1e92b61d0bd5..339cdd4062bb 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -3664,8 +3664,12 @@ static void rbd_queue_workfn(struct work_struct *work)
goto err_rq;
}
- rbd_assert(op_type == OBJ_OP_READ ||
- rbd_dev->spec->snap_id == CEPH_NOSNAP);
+ if (op_type != OBJ_OP_READ && rbd_dev->spec->snap_id != CEPH_NOSNAP) {
+ rbd_warn(rbd_dev, "%s on read-only snapshot",
+ obj_op_name(op_type));
+ result = -EIO;
+ goto err;
+ }
/*
* Quit early if the mapped snapshot no longer exists. It's
@@ -0,0 +1,103 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Wed, 3 Apr 2019 18:41:50 +0200
Subject: [PATCH] x86/fpu: backport copy_kernel_to_XYZ_err helpers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
partial cherry-pick from upstream 5.2 "86/fpu: Restore from kernel
memory on the 64-bit path too"
commit 926b21f37b072ae4c117052de45a975c6d468fec
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Namely, only backport the added helpers, none of the semantic changes.
relevant parts of the original commit message:
> In order to avoid that mess, copy the FPU state from userland, validate
> it and then load it. The copy_kernel_…() helpers are basically just
> like the old helpers except that they operate on kernel memory and the
> fault handler just sets the error value and the caller handles it.
Link: https://lkml.kernel.org/r/20190403164156.19645-22-bigeasy@linutronix.de
(partial cherry picked from commit 926b21f37b072ae4c117052de45a975c6d468fec)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/include/asm/fpu/internal.h | 43 +++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/arch/x86/include/asm/fpu/internal.h b/arch/x86/include/asm/fpu/internal.h
index fa2c93cb42a2..f3193ab0a2fb 100644
--- a/arch/x86/include/asm/fpu/internal.h
+++ b/arch/x86/include/asm/fpu/internal.h
@@ -122,6 +122,21 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);
err; \
})
+#define kernel_insn_err(insn, output, input...) \
+({ \
+ int err; \
+ asm volatile("1:" #insn "\n\t" \
+ "2:\n" \
+ ".section .fixup,\"ax\"\n" \
+ "3: movl $-1,%[err]\n" \
+ " jmp 2b\n" \
+ ".previous\n" \
+ _ASM_EXTABLE(1b, 3b) \
+ : [err] "=r" (err), output \
+ : "0"(0), input); \
+ err; \
+})
+
#define kernel_insn(insn, output, input...) \
asm volatile("1:" #insn "\n\t" \
"2:\n" \
@@ -158,6 +173,14 @@ static inline void copy_kernel_to_fxregs(struct fxregs_state *fx)
}
}
+static inline int copy_kernel_to_fxregs_err(struct fxregs_state *fx)
+{
+ if (IS_ENABLED(CONFIG_X86_32))
+ return kernel_insn_err(fxrstor %[fx], "=m" (*fx), [fx] "m" (*fx));
+ else
+ return kernel_insn_err(fxrstorq %[fx], "=m" (*fx), [fx] "m" (*fx));
+}
+
static inline int copy_user_to_fxregs(struct fxregs_state __user *fx)
{
if (IS_ENABLED(CONFIG_X86_32))
@@ -175,6 +198,11 @@ static inline void copy_kernel_to_fregs(struct fregs_state *fx)
kernel_insn(frstor %[fx], "=m" (*fx), [fx] "m" (*fx));
}
+static inline int copy_kernel_to_fregs_err(struct fregs_state *fx)
+{
+ return kernel_insn_err(frstor %[fx], "=m" (*fx), [fx] "m" (*fx));
+}
+
static inline int copy_user_to_fregs(struct fregs_state __user *fx)
{
return user_insn(frstor %[fx], "=m" (*fx), [fx] "m" (*fx));
@@ -400,6 +428,21 @@ static inline int copy_user_to_xregs(struct xregs_state __user *buf, u64 mask)
return err;
}
+/*
+ * Restore xstate from kernel space xsave area, return an error code instead of
+ * an exception.
+ */
+static inline int copy_kernel_to_xregs_err(struct xregs_state *xstate, u64 mask)
+{
+ u32 lmask = mask;
+ u32 hmask = mask >> 32;
+ int err;
+
+ XSTATE_OP(XRSTOR, xstate, lmask, hmask, err);
+
+ return err;
+}
+
/*
* These must be called with preempt disabled. Returns
* 'true' if the FPU state is still intact and we can
@@ -0,0 +1,105 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Paolo Bonzini <pbonzini@redhat.com>
Date: Thu, 6 Jun 2019 18:52:44 +0200
Subject: [PATCH] KVM: x86: introduce is_pae_paging
Checking for 32-bit PAE is quite common around code that fiddles with
the PDPTRs. Add a function to compress all checks into a single
invocation.
Reviewed-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit bf03d4f9334728bf7c8ffc7de787df48abd6340e)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kvm/vmx/nested.c | 3 +--
arch/x86/kvm/vmx/vmx.c | 4 ++--
arch/x86/kvm/x86.c | 8 ++++----
arch/x86/kvm/x86.h | 5 +++++
4 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c
index d7c52e748966..7bb5801b5e11 100644
--- a/arch/x86/kvm/vmx/nested.c
+++ b/arch/x86/kvm/vmx/nested.c
@@ -944,8 +944,7 @@ static int nested_vmx_load_cr3(struct kvm_vcpu *vcpu, unsigned long cr3, bool ne
* If PAE paging and EPT are both on, CR3 is not used by the CPU and
* must not be dereferenced.
*/
- if (!is_long_mode(vcpu) && is_pae(vcpu) && is_paging(vcpu) &&
- !nested_ept) {
+ if (is_pae_paging(vcpu) && !nested_ept) {
if (!load_pdptrs(vcpu, vcpu->arch.walk_mmu, cr3)) {
*entry_failure_code = ENTRY_FAIL_PDPTE;
return 1;
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index 835edf9b2954..86c5ab3728ac 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -2729,7 +2729,7 @@ static void ept_load_pdptrs(struct kvm_vcpu *vcpu)
(unsigned long *)&vcpu->arch.regs_dirty))
return;
- if (is_paging(vcpu) && is_pae(vcpu) && !is_long_mode(vcpu)) {
+ if (is_pae_paging(vcpu)) {
vmcs_write64(GUEST_PDPTR0, mmu->pdptrs[0]);
vmcs_write64(GUEST_PDPTR1, mmu->pdptrs[1]);
vmcs_write64(GUEST_PDPTR2, mmu->pdptrs[2]);
@@ -2741,7 +2741,7 @@ void ept_save_pdptrs(struct kvm_vcpu *vcpu)
{
struct kvm_mmu *mmu = vcpu->arch.walk_mmu;
- if (is_paging(vcpu) && is_pae(vcpu) && !is_long_mode(vcpu)) {
+ if (is_pae_paging(vcpu)) {
mmu->pdptrs[0] = vmcs_read64(GUEST_PDPTR0);
mmu->pdptrs[1] = vmcs_read64(GUEST_PDPTR1);
mmu->pdptrs[2] = vmcs_read64(GUEST_PDPTR2);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index eed14def2a6b..c69f12af5c01 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -725,7 +725,7 @@ bool pdptrs_changed(struct kvm_vcpu *vcpu)
gfn_t gfn;
int r;
- if (is_long_mode(vcpu) || !is_pae(vcpu) || !is_paging(vcpu))
+ if (!is_pae_paging(vcpu))
return false;
if (!test_bit(VCPU_EXREG_PDPTR,
@@ -968,8 +968,8 @@ int kvm_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3)
if (is_long_mode(vcpu) &&
(cr3 & rsvd_bits(cpuid_maxphyaddr(vcpu), 63)))
return 1;
- else if (is_pae(vcpu) && is_paging(vcpu) &&
- !load_pdptrs(vcpu, vcpu->arch.walk_mmu, cr3))
+ else if (is_pae_paging(vcpu) &&
+ !load_pdptrs(vcpu, vcpu->arch.walk_mmu, cr3))
return 1;
kvm_mmu_new_cr3(vcpu, cr3, skip_tlb_flush);
@@ -8590,7 +8590,7 @@ static int __set_sregs(struct kvm_vcpu *vcpu, struct kvm_sregs *sregs)
kvm_update_cpuid(vcpu);
idx = srcu_read_lock(&vcpu->kvm->srcu);
- if (!is_long_mode(vcpu) && is_pae(vcpu) && is_paging(vcpu)) {
+ if (is_pae_paging(vcpu)) {
load_pdptrs(vcpu, vcpu->arch.walk_mmu, kvm_read_cr3(vcpu));
mmu_reset_needed = 1;
}
diff --git a/arch/x86/kvm/x86.h b/arch/x86/kvm/x86.h
index 7e89ed889707..03de3f3c830c 100644
--- a/arch/x86/kvm/x86.h
+++ b/arch/x86/kvm/x86.h
@@ -139,6 +139,11 @@ static inline int is_paging(struct kvm_vcpu *vcpu)
return likely(kvm_read_cr0_bits(vcpu, X86_CR0_PG));
}
+static inline bool is_pae_paging(struct kvm_vcpu *vcpu)
+{
+ return !is_long_mode(vcpu) && is_pae(vcpu) && is_paging(vcpu);
+}
+
static inline u32 bit(int bitno)
{
return 1 << (bitno & 31);