Compare commits

...

429 Commits

Author SHA1 Message Date
Thomas Lamprecht 35fcdb4df4 update ABI file for 5.19.17-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 16:55:50 +01:00
Thomas Lamprecht d9c8122ccc bump version to 5.19.17-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 16:55:47 +01:00
Thomas Lamprecht 1d6ab3c1ca update to Ubuntu-5.19.0-31.32
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 16:38:52 +01:00
Thomas Lamprecht 16f4d03eb4 update patches for Ubuntu-5.19.0-31.32
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 16:38:25 +01:00
Thomas Lamprecht 0141ea157c make submodule name itself also generic
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 16:26:32 +01:00
Thomas Lamprecht 0ffb6ba51a update ZFS to 2.1.9
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 16:23:39 +01:00
Thomas Lamprecht 00d66e9633 submodules: rename ubuntu kernel directory to release agnostic
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-13 08:32:18 +01:00
Thomas Lamprecht d12013ce56 submodules: switch to combined repo via relative path
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-13 08:30:26 +01:00
Thomas Lamprecht 2a624c23cd update ZFS to 2.1.7
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-06 16:41:57 +01:00
Thomas Lamprecht 32bc81fb69 update ABI file for 5.19.17-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-14 21:00:34 +01:00
Thomas Lamprecht 5214c210a2 update fwlist-previous
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-14 20:59:31 +01:00
Thomas Lamprecht e450e254a2 bump version to 5.19.17-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-14 20:25:18 +01:00
Thomas Lamprecht a61c6773b5 rebase patches on top of Ubuntu-5.19.0-24.25
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-14 20:24:23 +01:00
Thomas Lamprecht 044258547b update sources to Ubuntu-5.19.0-24.25
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-14 20:24:23 +01:00
Thomas Lamprecht ddff189f90 Revert "backport patch to fix TSC scaling for SVM"
this was actually intended for the stable 5.15 branch, already
included in 5.19.

This reverts commit 198fde3a16.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-24 09:28:01 +02:00
Fiona Ebner 198fde3a16 backport patch to fix TSC scaling for SVM
The following issue reported on the community forum [0] is likely
fixed by this.

In my case, loading a VM snapshot that originally was taken on an
Intel CPU on my AMD-based host often caused problems in other VMs. In
particular, it often led to CPU stalls, and sometimes clock jumps far
into the future. With this backport applied, everything seems to run
smoothly even after loading the "bad" snapshot 10 times.

The backport from upstream commit 11d39e8cc43e ("KVM: SVM: fix tsc
scaling cache logic consisted of dropping the parts for nested TSC
scaling, which is not yet present in our kernel, renaming the constant
for the default ratio, and some context changes.

[0] https://forum.proxmox.com/threads/112756/

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2022-10-21 17:24:25 +02:00
Thomas Lamprecht 401e4a8b30 update ABI file for 5.19.7-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-04 17:39:30 +02:00
Thomas Lamprecht e020b057d4 bump version to 5.19.7-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-04 17:19:31 +02:00
Thomas Lamprecht f6d0c333b9 update sources to Ubuntu-5.19.0-19.19
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-04 16:32:12 +02:00
Thomas Lamprecht dab9b0c8a9 update ZFS to 2.1.6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-04 16:29:37 +02:00
Thomas Lamprecht 8ce40beedd update ABI file for 5.19.7-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:25:04 +02:00
Thomas Lamprecht b6a4a13b2e bump version to 5.19.0-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:11:02 +02:00
Thomas Lamprecht ed7d3489df rebase patches on top of Ubuntu-5.19.0-16.16
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht f04548e789 update sources to Ubuntu-5.19.0-16.16
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 9bc835d4c3 update ABI file for 5.19.0-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 03b3d0d7b7 bump version to 5.19.0-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 4fc427d906 rebase patches on top of Ubuntu-5.19.0-14.14
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 43b801ba8b update sources to Ubuntu-5.19.0-14.14
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 2f1b0dd29f update ABI file for 5.19.0-2-pve-smm-fix
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 998c6ae1d6 bump version to 5.19.0-1~rc8+2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 54ebe3cb9b apply "SMM emulation and interrupt shadow fixes"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht e134df3bfb update ABI file for 5.19.0-1-pve
(partially generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht c05b69d890 update fw-list for 5.19.0
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 13d55d8e4e bump version to 5.19.0-1~rc8+1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 4f993f3c8d drop hio from ubuntu makefile again
hio driver got removed by ubuntu already in jammy, but then they
forgot to remove this instance too, failing the clean build target,
my patch got accepted but was forgotten when doing the same in
kinetic, so here we go again

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 03f275ed36 rebase patches on top of Ubuntu-5.19.0-11.11
(partially generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 0e82bcd140 update sources to Ubuntu-5.19.0-11.11
(partially generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 2bebed5935 update ABI file for 5.18.0-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-07 15:10:23 +02:00
Thomas Lamprecht 4fa95e6fc2 bump version to 5.18.0-1~WIP1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-06 10:51:03 +02:00
Thomas Lamprecht 997b257f9f update fwlist
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-06 10:50:23 +02:00
Thomas Lamprecht 3ae8384f6f update patches and buildsys for kinetic kernel Ubuntu-5.18.0-6.6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-06 10:50:21 +02:00
Thomas Lamprecht c94439e479 add kinetic 22.10 sub module
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-06 09:45:42 +02:00
Thomas Lamprecht 176be3a33d update ABI file for 5.15.53-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-08-29 18:09:47 +02:00
Thomas Lamprecht dcf4761c93 update fw list
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-08-29 18:09:47 +02:00
Thomas Lamprecht 542f4bf33f bump version to 5.15.53-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-08-29 18:09:47 +02:00
Thomas Lamprecht bb7155fd8f backport fixes of regressions from newer stable kernels
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-08-29 18:09:47 +02:00
Thomas Lamprecht 96f7973c9b update submodule to Ubuntu-5.15.0-48.54 and rebase patches
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-08-26 16:53:06 +02:00
Thomas Lamprecht 5453b9a966 update ABI file for 5.15.39-4-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-08-09 09:32:24 +02:00
Thomas Lamprecht 81d8ba874e bump version to 5.15.39-4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-08-08 16:47:11 +02:00
Thomas Lamprecht 832507353a update SMM shadow fixes to v3
Link: https://lore.kernel.org/kvm/20220803155011.43721-1-mlevitsk@redhat.com/
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-08-08 16:00:28 +02:00
Thomas Lamprecht c441cab322 update ABI file for 5.15.39-3-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-08-08 15:59:29 +02:00
Thomas Lamprecht 35fd42877f d/scripts: find fw: defuse "strange directory name" to warning
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-08-08 09:31:35 +02:00
Thomas Lamprecht 81dd154811 bump version to 5.15.39-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-07-27 13:45:48 +02:00
Thomas Lamprecht f6df304f26 backport "SMM emulation and interrupt shadow fixes"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-07-27 13:45:07 +02:00
Thomas Lamprecht aa04318f19 d/scripts: include bad $skipabi value in error
for easier debugging

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-07-27 10:15:04 +02:00
Thomas Lamprecht da0f51338f update ABI file for 5.15.39-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-07-21 07:36:31 +02:00
Thomas Lamprecht 6e8f6ca9a5 bump version to 5.15.39-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-07-20 17:22:40 +02:00
Thomas Lamprecht f663b7d85c rebase patches on top of Ubuntu-5.15.0-45.48
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-07-20 17:21:06 +02:00
Thomas Lamprecht db4c7dbbba update sources to Ubuntu-5.15.0-45.48
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-07-20 17:21:06 +02:00
Thomas Lamprecht e2197b715c update ZFS to 2.1.5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-28 16:17:06 +02:00
Thomas Lamprecht f85cb245b4 update ABI file for 5.15.39-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-22 17:37:36 +02:00
Thomas Lamprecht f09c6fa2b2 bump version to 5.15.39-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-22 17:22:10 +02:00
Thomas Lamprecht 4af054d560 rebase patches on top of Ubuntu-5.15.0-41.44
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-22 17:17:43 +02:00
Thomas Lamprecht 8f995224af update sources to Ubuntu-5.15.0-41.44
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-22 17:17:43 +02:00
Thomas Lamprecht 9932c8650b d/rules: drop call to depreacated headers_check target
Useless since 5.5 and will fail build with 5.16+, see upstream linux
commit 7ecaf069da52 and 4fbce819337a for some details

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-21 14:18:43 +02:00
Thomas Lamprecht ce418f2f12 update ABI file for 5.15.35-3-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-17 15:49:48 +02:00
Thomas Lamprecht 28be8fe9f4 bump version to 5.15.35-6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-17 13:44:01 +02:00
Thomas Lamprecht 0594faab65 import Ubuntu-5.15.0-40.43 and update patches
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-17 13:42:23 +02:00
Thomas Lamprecht c2793ff7ec debian: update some meta and copyright information
lintian wasn't to happy..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-17 13:42:23 +02:00
Thomas Lamprecht 37e459b0b2 bump version to 5.15.35-6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-08 18:16:43 +02:00
Thomas Lamprecht ad0a766ee2 backport netfilter nf_table sanitiation fixes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-08 18:15:27 +02:00
Thomas Lamprecht 4a8e848f62 update ABI file for 5.15.35-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-02 14:25:57 +02:00
Thomas Lamprecht b8b75b2ff6 bump version to 5.15.35-4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-02 13:48:57 +02:00
Thomas Lamprecht c8298fb299 fix #4083: backport "EDAC/amd64: Add PCI device IDs for family 19h model 50h"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-02 13:48:16 +02:00
Thomas Lamprecht c1964433a1 update ubuntu to Ubuntu-5.15.0-36.37
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-02 13:12:12 +02:00
Thomas Lamprecht 044c70fd78 bump version to 5.15.35-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-11 07:57:58 +02:00
Thomas Lamprecht b321611251 fix #4039: backport aquantia atlantic NIC fixes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-11 07:57:40 +02:00
Thomas Lamprecht c9fb416fa5 bump version to 5.15.35-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-05 13:54:47 +02:00
Thomas Lamprecht eea5de8e26 cherry pick "NFSv4.1 provide mount option to toggle trunking discovery"
we got lots of reports with QNAP NFS being broken, and the commit
this cherry picked one fixes got backported to 5.15 by canonical, so
its def. worth a try.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-05 13:53:16 +02:00
Thomas Lamprecht f483bc2cf3 update ABI file for 5.15.35-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-04 13:03:44 +02:00
Thomas Lamprecht f722fe4712 bump version to 5.15.35-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-04 13:03:44 +02:00
Thomas Lamprecht bd84eca209 update fwlist
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-04 13:03:44 +02:00
Thomas Lamprecht 6ef2b41a1e rebase patches on top of Ubuntu-5.15.0-29.30
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-04 12:31:19 +02:00
Thomas Lamprecht ce41152248 update sources to Ubuntu-5.15.0-29.30
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-04 12:31:19 +02:00
Thomas Lamprecht c406c352b8 bump version to 5.15.30-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-04-22 18:08:47 +02:00
Thomas Lamprecht 842d7097a9 backport "io_uring: fix race between timeout flush and removal"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-04-22 18:07:19 +02:00
Thomas Lamprecht f03e2d42b8 update ABI file for 5.15.30-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-04-22 11:48:23 +02:00
Thomas Lamprecht c9275e3a2e bump version to 5.15.30-2, with ABI bump
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-04-22 11:16:14 +02:00
Thomas Lamprecht fe53f932a0 bump version to 5.15.30-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-04-22 10:37:23 +02:00
Thomas Lamprecht 73e4912f3d update sources to Ubuntu-5.15.0-27.28
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-04-22 10:36:39 +02:00
Thomas Lamprecht 16268bafdb update ABI file for 5.15.30-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-29 16:05:05 +02:00
Thomas Lamprecht 3ee3114846 bump version to 5.15.30-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-29 10:36:25 +02:00
Thomas Lamprecht 1615b3ee92 rebase patches on top of Ubuntu-5.15.0-24.24
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-29 10:31:51 +02:00
Thomas Lamprecht d74cf6e596 update sources to Ubuntu-5.15.0-24.24
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-29 10:31:51 +02:00
Thomas Lamprecht 3b601a2ab5 update ZFS to 2.1.4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-29 10:31:46 +02:00
Thomas Lamprecht b2e8d482c2 update ABI file for 5.15.27-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-12 16:21:27 +01:00
Thomas Lamprecht d03ea6b3bd add buildsys fix for clean target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-12 16:21:13 +01:00
Thomas Lamprecht 77d9581228 update fw-list
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-12 16:06:52 +01:00
Thomas Lamprecht fab03f123b bump version to 5.15.27-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-12 15:17:28 +01:00
Thomas Lamprecht 629d8797f9 d/rules: kconfig: keep SYSFB_SIMPLEFB enabled
we got the SIMPLEFB built into our initrd now, so it should work out
just fine.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-12 15:16:55 +01:00
Thomas Lamprecht f641ad1603 rebase patches on top of Ubuntu-5.15.0-23.23
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-12 15:13:49 +01:00
Thomas Lamprecht 40f544e7f5 update sources to Ubuntu-5.15.0-23.23
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-12 15:13:49 +01:00
Thomas Lamprecht 3697562564 update ZFS to 2.1.3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-12 15:12:53 +01:00
Thomas Lamprecht 74eb34c8f9 bump version to 5.15.19-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-07 18:23:21 +01:00
Thomas Lamprecht 78d3164c4f update ABI file for 5.15.19-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-11 16:35:21 +01:00
Thomas Lamprecht d016128d1f bump version to 5.15.19-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-11 16:35:21 +01:00
Thomas Lamprecht 15d1081010 d/rules: ensure simpledrm module gets built
we cannot make this a built-in easily due to kconfig dependency
resolution.

We'll handle the availability in initrd with a initramfs modules.d
snippet shipped by the meta package,

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-11 16:34:18 +01:00
Thomas Lamprecht 09d62646a4 backport simplefb/fbdev memory regio release improvements
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-08 12:18:54 +01:00
Thomas Lamprecht 525ea48834 update fwlist
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-08 12:18:54 +01:00
Thomas Lamprecht 3dd8e02d2d update ABI file for 5.15.19-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-04 06:46:30 +01:00
Thomas Lamprecht 90723103d8 bump version to 5.15.19-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-04 06:09:21 +01:00
Thomas Lamprecht 23de619687 rebase patches on top of Ubuntu-5.15.0-20.20
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-04 06:08:27 +01:00
Thomas Lamprecht 3611ac5c5b update sources to Ubuntu-5.15.0-20.20
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-04 06:08:27 +01:00
Thomas Lamprecht 0185292098 update ABI file for 5.15.17-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-31 10:41:27 +01:00
Thomas Lamprecht 0380f07491 bump version to 5.15.17-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-31 09:41:45 +01:00
Thomas Lamprecht 55227d53ae rebase patches on top of Ubuntu-5.15.0-19.19
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-31 09:40:02 +01:00
Thomas Lamprecht 6a9017af4b update sources to Ubuntu-5.15.0-19.19
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-31 09:40:02 +01:00
Thomas Lamprecht 512f455615 bump version to 5.15.12-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-20 16:57:10 +01:00
Thomas Lamprecht fc0472a18f backport "vfs: fs_context: fix up param length parsing in legacy_parse_param"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-20 16:55:55 +01:00
Thomas Lamprecht 60e804189a bump version to 5.15.12-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 16:43:34 +01:00
Thomas Lamprecht f75dea1c0d zfs: cherry-pick lock-inversion patch for zvol_open
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 16:42:19 +01:00
Thomas Lamprecht e3c945b9dd remove superseded impish submodule directory
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 15:07:27 +01:00
Thomas Lamprecht b15c05bd57 readme: update for 5.15 based kernel
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 15:05:50 +01:00
Thomas Lamprecht dc95ab3ddd update ABI file for 5.15.12-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 14:41:05 +01:00
Thomas Lamprecht 9e9ee77277 bump version to 5.15.12-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 12:06:48 +01:00
Thomas Lamprecht 76ce1e5017 drop -ERESTARTSYS handling in blkdev_get_by_dev patch
ZFS 2.1.2 handles this internally
(commit 16da688f2518526389e6bff8370684a1a2a1469c)

Originally-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 12:06:48 +01:00
Thomas Lamprecht 290da2bec6 zfs: update to 2.1.2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 11:48:08 +01:00
Thomas Lamprecht 75d6cb4562 update blk cgroup format patch
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 09:46:51 +01:00
Thomas Lamprecht 51eaefb494 cherry-pick "blk-cgroup: always terminate io.stat lines"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 08:13:33 +01:00
Thomas Lamprecht 0a77aa18e1 rebase patches on top of Ubuntu-5.15.0-16.16
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 06:28:45 +01:00
Thomas Lamprecht ef7f6d2402 update sources to Ubuntu-5.15.0-16.16
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 06:28:45 +01:00
Thomas Lamprecht 818dfceac5 patches: make disable split btf diff a full-blown patch
else our update-to-tag rebase script fails to "git-am" this one

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 06:28:23 +01:00
Thomas Lamprecht 51eb9bd351 update ABI file for 5.15.7-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-12-14 21:26:53 +01:00
Thomas Lamprecht 71e32d4690 bump version to 5.15.7-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-12-14 18:22:39 +01:00
Thomas Lamprecht 7ffd90ef3e update to Ubuntu-5.15.0-14.14
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-12-14 18:22:39 +01:00
Stoiko Ivanov dd539d4154 d/control.in: Provide versioned linux-image/linux-headers
pve-headers-$(uname -r) is equivalent to
linux-headers-$(uname -r)-amd64

pve-kernel-$(uname -r) is equivalent to
linux-image-$(uname -r)-amd64

By adding a provides this should help users running
`apt install linux-headers-$(uname -r)-amd64` which is commonly
suggested in install instructions for third-party kernel-drivers on
plain debian.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-12-14 13:31:17 +01:00
Fabian Grünbichler bc1d191389 KConfig: disable module BTF debug info
enabling this effectively makes the debug info of the kernel image part
of the kernel <-> module ABI[0], potentially breaking module loading for
otherwise compatible kernel/module combinations.

there were several user reports[1,2,3,..], and although a workaround
exists (re-installing the currently booted version, loading the module,
then upgrading again) disabling this until it's clear how to proceed
seems like the way to go.

disabling via patch is needed, since leaving it unset via `-d` or
explicitly disabled via `--set-val` doesn't work - it's auto-enabled
based on build-env pahole supporting split BTF generation.

0: https://lore.kernel.org/all/1637926692.uyvrkty41j.astroid@nora.none/
1: https://forum.proxmox.com/threads/realtek-8156-2-5gbe-usb-nic.69903/#post-433793
2: https://forum.proxmox.com/threads/usb-storage-can-not-be-mounted.100480/
3: https://forum.proxmox.com/threads/neuer-server-und-probleme.99098/#post-427862

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Acked-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-12-14 13:31:05 +01:00
Fabian Grünbichler 7c4bae5665 d/control: add zstd to B-D
used for compressing the kernel image, build fails if not installed.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Acked-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-12-14 13:31:00 +01:00
Thomas Lamprecht 892a5d3219 update ABI file for 5.15.5-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-30 16:42:03 +01:00
Thomas Lamprecht f6163ca84c add fwlist from 5.15.5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-30 16:37:47 +01:00
Thomas Lamprecht 4be20d430b bump version to 5.15.5-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-30 15:56:37 +01:00
Thomas Lamprecht 74962917c2 switch from impish to jelly as base ubuntu kernel
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-30 15:55:43 +01:00
Thomas Lamprecht 6c95b2e31c update ABI file for 5.13.19-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-29 18:35:46 +01:00
Thomas Lamprecht 899fd8d0aa bump version to 5.13.19-4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-29 18:09:38 +01:00
Thomas Lamprecht 3ea6393f63 rebase patches on top of Ubuntu-5.13.0-23.23
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-29 18:09:38 +01:00
Thomas Lamprecht dbe708a919 update sources to Ubuntu-5.13.0-23.23
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-29 18:09:38 +01:00
Thomas Lamprecht fda70d3865 drop oboslete ocfs2 patch
now upstreamed in a slightly different way

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-29 18:09:38 +01:00
Thomas Lamprecht 92e753f360 bump version to 5.13.19-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-23 13:31:41 +01:00
Fabian Ebner 25aba572ca Backport two io-wq fixes relevant for io_uring
There were quite a few reports in the community forum about Windows
VMs with SATA disks not working after upgrading to kernel 5.13.
Issue was reproducible during the installation of Win2019 (suggested
by Thomas), and it's already fixed in 5.15. Bisecting led to
    io-wq: split bounded and unbounded work into separate lists
as the commit fixing the issue.

Indeed, the commit states
    Fixes: ecc53c48c13d ("io-wq: check max_worker limits if a worker transitions bound state")
which is present as a backport in ubuntu-impish:
    f9eb79f840052285408ae9082dc4419dc1397954

The first backport
    io-wq: fix queue stalling race
also sounds nice to have and additionally served as a preparation for
the second one to apply more cleanly.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-11-23 13:19:53 +01:00
Thomas Lamprecht 43414bd219 bump version to 5.13.19-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-09 13:27:05 +01:00
Thomas Lamprecht 38c898a1b6 Revert "block: remove the -ERESTARTSYS handling in blkdev_get_by_dev"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-11-09 12:56:54 +01:00
Thomas Lamprecht db84324aab update ABI file for 5.13.19-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-06 14:28:58 +01:00
Thomas Lamprecht 1f9eca1c7a update firmware list for 5.13.19-1-pve
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-06 14:06:00 +01:00
Thomas Lamprecht 4e5a919c13 bump version to 5.13.19-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-06 13:08:45 +01:00
Thomas Lamprecht 46951972bc rebase patches on top of Ubuntu-5.13.0-22.22
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-06 13:07:52 +01:00
Thomas Lamprecht 23caf6a578 update sources to Ubuntu-5.13.0-22.22
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-06 13:07:52 +01:00
Thomas Lamprecht 7956d7d5b2 update ABI file for 5.13.18-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-10-19 14:13:11 +02:00
Thomas Lamprecht 7d04290406 bump version to 5.13.18-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-10-19 13:43:23 +02:00
Thomas Lamprecht 4fce12053e rebase patches on top of Ubuntu-5.13.0-21.21
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-10-19 13:40:56 +02:00
Thomas Lamprecht 7ceb3b1224 update sources to Ubuntu-5.13.0-21.21
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-10-19 13:40:56 +02:00
Thomas Lamprecht 68145b3f84 backport "ocfs2: mount fails with buffer overflow in strlen"
we've got good feedback from customers and the patch got two R-b's
and no NAK or the like upstream:

https://lore.kernel.org/all/20210929180654.32460-1-vvidic@valentin-vidic.from.hr/t/

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-10-18 14:04:36 +02:00
Fabian Ebner fb9edd57ac remove outdated io_uring patch
The patch is not needed anymore, because the fix is already in
ubuntu-impish (commit d0b69849e40b2c3582f1cd6573f8e0d3a033d078).
Unfortunately, the patch still applied (in the wrong place), making it
hard to notice.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-09-30 17:41:47 +02:00
Thomas Lamprecht 68481eb746 delete hirsute submodule directory entry
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 07:12:11 +02:00
Thomas Lamprecht 5d60271071 readme: general updates
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 07:08:46 +02:00
Thomas Lamprecht 5e8e351552 readme: refer to impish kernel
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 07:08:37 +02:00
Thomas Lamprecht aaf2b2c31b update README
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 07:08:07 +02:00
Thomas Lamprecht c8bbfe0d9f bump version to 5.13.14-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 06:17:00 +02:00
Thomas Lamprecht 58d428de99 update ZFS submodule to 2.1.1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 06:16:40 +02:00
Thomas Lamprecht 9ac8d8ec39 update ABI file for 5.13.14-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-27 13:31:29 +02:00
Thomas Lamprecht 3edc172ef3 update fwlist-previous
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-27 13:31:12 +02:00
Thomas Lamprecht df6168ebe5 buildsys: switch base over to 5.13 branched Ubuntu Impish kernel
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-27 13:30:16 +02:00
Thomas Lamprecht 2445fd0873 update patches for Ubuntu-5.13.0-17.17
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-27 12:43:06 +02:00
Thomas Lamprecht 4f243ed063 add Ubuntu Impish submodule
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-27 09:59:32 +02:00
Thomas Lamprecht 112453be49 bump version to 5.11.22-9
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-22 10:57:10 +02:00
Thomas Lamprecht b77e82cce8 d/rules: kconfig: enable SQUASHFS_DECOMP_MULTI_PERCPU
Debian did so since 5.10~rc7-1~exp1 and ubuntu only disabled it due
some concerns about "high" memory usage on many-core systems[0], high
is to be seen relative here as its 26 MiB on 208 cores[1] and only
matters for ubuntu as due to their snaps they may have a lot of
active squashfs mounts.

Proxmox projects do not use snaps, or other things that uses squashfs
instances a tall besides the installer. While some users may use a
few it is unlikely to cause much problems (a few 100 MiB should not
be a big problem on a server with hundreds of online cores.

Any how, to speed up decompression in our installer and use a similar
setting as Debian, the distro we're most similar too, enable this
Kconfig knob.

[0]: https://bugs.launchpad.net/snappy/+bug/1636847
[1]: https://bugs.launchpad.net/snappy/+bug/1636847/comments/21

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-22 10:03:32 +02:00
Thomas Lamprecht d6a491197c backport "blk-mq: fix kernel panic during iterating over flush request"
see https://forum.proxmox.com/threads/96598/#post-418247

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-21 07:15:18 +02:00
Thomas Lamprecht 84a5f7dcd9 update ABI file for 5.11.22-4-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-08-27 15:47:08 +02:00
Thomas Lamprecht 6d33e79b29 bump version to 5.11.22-8
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-08-27 11:52:31 +02:00
Thomas Lamprecht 88ca3a12ab update fwlist-previous
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-08-27 11:52:31 +02:00
Thomas Lamprecht 85fafb9d66 d/rules: kconfig: disable revocation certificates for now
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-08-27 10:15:18 +02:00
Thomas Lamprecht c058ed8e33 rebase patches on top of Ubuntu-5.11.0-34.36
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-08-27 09:20:57 +02:00
Thomas Lamprecht 92518c5228 update sources to Ubuntu-5.11.0-34.36
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-08-27 09:20:57 +02:00
Fabian Grünbichler a7de27ff7d fix #3552: cherry-pick PCI probe fixes
breaking some NVME setups. these should be picked up by one of the next
Ubuntu kernel releases, since both the breaking change and the fix are
authored by Canonical devs.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-08-26 14:51:27 +02:00
Thomas Lamprecht f4ddb1493e make nvem a module again
Requested in the forum, as some (misbehaving) mellanox module relies
on loading nvme-core and apparently cannot cope with built-in
modules... meh, but we're probably easier to get to make the change
than the mellanox people ;-)
https://forum.proxmox.com/threads/kernel-5-11.86225/post-412645

Originally set when this was another repo:
https://git.proxmox.com/?p=pve-kernel-jessie.git;a=commitdiff;h=0817f603d0e5bc3165f512eec8860543430cfd2d;hp=60c76fe4f5ab178af78be9ca2ea8baad3b4a4bc9

The Debian bug is resolved since quite a bit, bullseye shouldn't be
affected by this at all anymore.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-08-24 14:02:51 +02:00
Stoiko Ivanov 3ae5a3f4e0 bump to 5.11.22-7
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-08-19 08:49:30 +02:00
Stoiko Ivanov a7073f6bff cherry-pick fixes for CVE-2021-3653 and CVE-2021-3656
from ubuntu-hirsute upstream/master-next

cherry-pick only the 2 patches, because master-next is 970 commits
ahead of our current master.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-08-19 08:49:26 +02:00
Thomas Lamprecht 6714a74b67 bump version to 5.11.22-6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-28 10:51:22 +02:00
Fabian Ebner 437b51a73b backport fix for io_uring to prevent kernel panic
which could be triggered in some corner cases with (but most likely
not limited to) LVM-backed QEMU guests using io_uring.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-07-28 10:50:19 +02:00
Thomas Lamprecht 2c3b526416 buildsys add dbgsym package from linux-tools to DEBS/upload
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-21 19:46:04 +02:00
Thomas Lamprecht 60e9d4de34 update ABI file for 5.11.22-3-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-21 19:37:41 +02:00
Fabian Grünbichler 1a9e23ff03 readme: document -dbgsym package
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-07-21 18:26:52 +02:00
Fabian Grünbichler 04f7144d55 build: conditionalize -dbgsym package
via a new, namespaced build profile.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-07-21 18:26:52 +02:00
Thomas Lamprecht f778e4031d bump version to 5.11.22-5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-21 18:25:59 +02:00
Thomas Lamprecht bf5098de79 rebase patches on top of Ubuntu-5.11.0-26.28
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-21 18:22:17 +02:00
Thomas Lamprecht 23ab73881f update sources to Ubuntu-5.11.0-26.28
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-21 18:22:17 +02:00
Thomas Lamprecht 183324dafb update zfsonlinux repo
no-op

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-21 18:21:13 +02:00
Thomas Lamprecht 97b871128f bump version to 5.11.22-4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-20 21:40:49 +02:00
Thomas Lamprecht 1686139dd1 update ABI file for 5.11.22-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-12 06:25:52 +02:00
Thomas Lamprecht cd82d39c46 bump version to 5.11.22-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-11 13:49:01 +02:00
Thomas Lamprecht e7e100bf21 update kernel to Proxmox-5.11.22-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-09 21:24:27 +02:00
Thomas Lamprecht 5674564755 d/rules: ensure performance is the default freq gov again
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-09 21:23:59 +02:00
Thomas Lamprecht f442b165ed update ZFS to 2.0.5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-09 18:25:31 +02:00
Thomas Lamprecht a79b3b7061 d/control: follow text-width limits...
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-02 17:25:15 +02:00
Thomas Lamprecht 9f5490e501 bump version to 5.11.22-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-02 16:22:50 +02:00
Thomas Lamprecht fe68383060 update sources to Ubuntu-5.11.0-24.25
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-02 16:21:37 +02:00
Thomas Lamprecht 53dd604743 net: bridge: sync fdb to new unicast-filtering ports
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-02 16:21:17 +02:00
Thomas Lamprecht 3cd48d75bf update ABI file for 5.11.22-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-23 11:01:41 +02:00
Thomas Lamprecht 8992eff60c buildsys: change upload dist to bullseye and add pbs
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-23 10:51:33 +02:00
Thomas Lamprecht e9850bee3f buildsys: add user header package to DEBS variable
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-23 10:51:13 +02:00
Thomas Lamprecht 37739de2c6 fix typo in changelog
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-23 10:50:43 +02:00
Thomas Lamprecht 592cd63c16 bump version to 5.11.22-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-23 08:57:17 +02:00
Thomas Lamprecht be7e04a3d7 rebase patches on top of Ubuntu-5.11.0-23.24
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-23 08:52:39 +02:00
Thomas Lamprecht f235762658 update sources to Ubuntu-5.11.0-23.24
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-23 08:52:39 +02:00
Thomas Lamprecht 50953e9e4c debian/scripts: --output-dir is not recoginzed anymore, use --output-directory
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-23 08:52:34 +02:00
Thomas Lamprecht 2819784679 debian/scripts: use printf to ensure \t is actually printewd as tab
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-23 08:52:08 +02:00
Fabian Grünbichler 5ca6d78da6 d/rules: close race between 'cp' and module handling
sometimes the build would fail with

cp: cannot stat 'ubuntu-hirsute/.tmp_1987275': No such file or directory
make[1]: *** [debian/rules:181: .headers_prepare_mark] Error 1
make[1]: Leaving directory '/home/fgruenbichler/pve-kernel/build'
dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2
make: *** [Makefile:58: pve-kernel-5.11.21-1-pve_5.11.21-1_amd64.deb] Error 2

if copying was slow enough.

so let's do the copying first, then do the rest in parallel without
needing to worry about side-effects.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-06-15 14:31:10 +02:00
Fabian Grünbichler b5dd2682ff d/control: wrap-and-sort
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-06-15 14:31:10 +02:00
Fabian Grünbichler 6677d2a3ac d/control: remove references to 2.6 kernel
those days are long gone by now ;)

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-06-15 14:31:10 +02:00
Fabian Grünbichler 3636c8611a d/control: provide linux-libc-dev with version
needed for it to be a proper replacement for linux-libc-dev when
resolving dependencies, such as for liburing-dev

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-06-15 14:31:10 +02:00
Fabian Grünbichler a32d7b9646 d/rules: build perf with python3
python2 is gone with bullseye

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-06-15 14:31:10 +02:00
Fabian Grünbichler bec104985e build: keep unstripped kernel and module files
and put them into a new -dbgsym package for usage with
crash/kdump-tools/...

fixes #3465, and now allows to do the following (after installing
and configuring kdump-tools to collect kernel crash dumps) when the
system crashes:

  $ apt install pve-kernel-5.11.21-1-dbgsym
  $ crash /usr/lib/debug/boot/vmlinux-5.11.21-1-pve /var/crash/202106151236/dump.202106151236

  crash 7.2.9
  Copyright (C) 2002-2020  Red Hat, Inc.
  Copyright (C) 2004, 2005, 2006, 2010  IBM Corporation
  Copyright (C) 1999-2006  Hewlett-Packard Co
  Copyright (C) 2005, 2006, 2011, 2012  Fujitsu Limited
  Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
  Copyright (C) 2005, 2011  NEC Corporation
  Copyright (C) 1999, 2002, 2007  Silicon Graphics, Inc.
  Copyright (C) 1999, 2000, 2001, 2002  Mission Critical Linux, Inc.
  This program is free software, covered by the GNU General Public License,
  and you are welcome to change it and/or distribute copies of it under
  certain conditions.  Enter "help copying" to see the conditions.
  This program has absolutely no warranty.  Enter "help warranty" for details.

  GNU gdb (GDB) 7.6
  Copyright (C) 2013 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
  and "show warranty" for details.
  This GDB was configured as "x86_64-unknown-linux-gnu"...

  WARNING: kernel relocated [812MB]: patching 136336 gdb minimal_symbol values

        KERNEL: /usr/lib/debug/boot/vmlinux-5.11.21-1-pve
      DUMPFILE: /var/crash/202106151236/dump.202106151236  [PARTIAL DUMP]
          CPUS: 4
          DATE: Tue Jun 15 12:36:38 CEST 2021
        UPTIME: 00:06:21
  LOAD AVERAGE: 0.04, 0.11, 0.08
         TASKS: 272
      NODENAME: test
       RELEASE: 5.11.21-1-pve
       VERSION: #1 SMP PVE 5.11.21-1 (Tue, 01 Jun 2021 16:38:57 +0200)
       MACHINE: x86_64  (3696 Mhz)
        MEMORY: 8 GB
         PANIC: "Kernel panic - not syncing: sysrq triggered crash"
           PID: 3167
       COMMAND: "bash"
          TASK: ffff9220c8f5be00  [THREAD_INFO: ffff9220c8f5be00]
           CPU: 3
         STATE: TASK_RUNNING (PANIC)

  crash> bt
  PID: 3167   TASK: ffff9220c8f5be00  CPU: 3   COMMAND: "bash"
   #0 [ffffa24ec0bfbc80] machine_kexec at ffffffffb3c751f3
   #1 [ffffa24ec0bfbce0] __crash_kexec at ffffffffb3d61092
   #2 [ffffa24ec0bfbdb0] panic at ffffffffb47b769d
   #3 [ffffa24ec0bfbe30] sysrq_handle_crash at ffffffffb434da4a
   #4 [ffffa24ec0bfbe40] __handle_sysrq.cold at ffffffffb47e2cdc
   #5 [ffffa24ec0bfbe78] write_sysrq_trigger at ffffffffb434e3f8
   #6 [ffffa24ec0bfbe90] proc_reg_write at ffffffffb3fc09ea
   #7 [ffffa24ec0bfbeb0] vfs_write at ffffffffb3f143b6
   #8 [ffffa24ec0bfbee8] ksys_write at ffffffffb3f16b97
   #9 [ffffa24ec0bfbf28] __x64_sys_write at ffffffffb3f16c2a
  #10 [ffffa24ec0bfbf38] do_syscall_64 at ffffffffb480e868
  #11 [ffffa24ec0bfbf50] entry_SYSCALL_64_after_hwframe at ffffffffb4a0008c
      RIP: 00007f367f7baf33  RSP: 00007ffe6175dc98  RFLAGS: 00000246
      RAX: ffffffffffffffda  RBX: 0000000000000002  RCX: 00007f367f7baf33
      RDX: 0000000000000002  RSI: 0000560510e640b0  RDI: 0000000000000001
      RBP: 0000560510e640b0   R8: 000000000000000a   R9: 0000000000000001
      R10: 0000560510e5f800  R11: 0000000000000246  R12: 0000000000000002
      R13: 00007f367f88b6a0  R14: 0000000000000002  R15: 00007f367f88b8a0
      ORIG_RAX: 0000000000000001  CS: 0033  SS: 002b

as well as lots of other fun things (see 'help' after opening a crash dump).

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-06-15 14:31:10 +02:00
Thomas Lamprecht bd5718c55a update ABI file for 5.11.21-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-01 17:22:25 +02:00
Thomas Lamprecht 8364a90004 update fwlist-previous
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-01 17:22:19 +02:00
Thomas Lamprecht 8cf3a6eda0 bump version to 5.11.21-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-01 16:39:11 +02:00
Thomas Lamprecht c1f0c39ad5 update kernel to 5.11.21 with Ubuntu-5.11.0-19.20
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-01 15:51:22 +02:00
Thomas Lamprecht e52ececa8e update ABI file for 5.11.17-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-05-12 17:23:23 +02:00
Thomas Lamprecht 293e14e3a2 bump version to 5.11.17-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-05-12 16:39:37 +02:00
Thomas Lamprecht 014e3bf944 update kernel to 5.11.17 with Ubuntu-5.11.0-18.19
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-05-12 16:39:37 +02:00
Thomas Lamprecht ad95515783 d/rules: headers compile: run modules_prepare copy scripts & includes after
The prepare/compile/install targets feel a bit mixed, so it's not
100% clear where this should happen.

But as the `.headers_compile_mark` already triggers various kernel
build targets with a correct kconfig setup, it is a good fit to add
the modules_prepare step (which is recommended to use when preparing
a out-of-three (OOT) module build environment like dkms expects)
there. As we can only copy (= install) the `scripts` directory
afterwards it follows that it needs to be moved afterwards. Moving
installing the `include` directory there is not really necessary but
it feels like a better place than the _prepare_ target and safes a
extra line, so move that over too.

In terms of actual changes to the built header package we get
additionally the, now generated, module.lds file.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-05-12 16:39:37 +02:00
Thomas Lamprecht 56ae0a75e1 d/rules: headers: remove any .cmd files from the kbuild system
Those files are generated by the `if_changed` macro from
scripts/Kbuild.include and are not really useful or interesting for
being shipped in the header packages and other distros (checked
Debian and Ubuntu) do not seem to ship those at all..

So, lets prune them to reduce shipped files dramatically, without
losing, well, anything.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-05-12 16:39:37 +02:00
Thomas Lamprecht eb9388390e update ABI file for 5.11.12-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-04-09 11:05:45 +02:00
Thomas Lamprecht 816870b58f bump version to 5.11.12-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-04-09 10:31:36 +02:00
Thomas Lamprecht c1d6854dc5 submodule: update to Ubuntu-5.11.0-14.15
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-04-09 10:17:28 +02:00
Thomas Lamprecht 0e269e9043 update ABI file for 5.11.7-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-18 15:11:10 +01:00
Thomas Lamprecht 21a902ae7e bump version to 5.11.7-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-18 14:07:31 +01:00
Thomas Lamprecht 63bf12370e update to Ubuntu-5.11.0-12.13
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-18 14:03:14 +01:00
Thomas Lamprecht 881c970df8 update ZFS to 2.0.4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-18 13:36:52 +01:00
Thomas Lamprecht 58837dc27b update ABI file for 5.11.0-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-02 15:43:05 +01:00
Thomas Lamprecht 774eba4be8 update FW list
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-02 15:42:37 +01:00
Thomas Lamprecht bf23bcb74e bump version to 5.11.0-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-02 13:44:02 +01:00
Thomas Lamprecht 68996764bb d/rules: disable CONFIG_SYSTEM_TRUSTED_KEYS config
we do not use module signing currently.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 77470417db)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-02 13:44:02 +01:00
Thomas Lamprecht b9aab0288c ubdate sources and patches to Ubuntu-5.11.0-11.12
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-02 13:34:58 +01:00
Thomas Lamprecht 1deaf0f816 stop reverting turning on nested virtualization by default
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-02 13:34:34 +01:00
Thomas Lamprecht 0e1345d112 update ZFS to 2.0
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-02 12:06:05 +01:00
Thomas Lamprecht d11d748b48 update ABI file for 5.10.6-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-15 15:10:56 +01:00
Thomas Lamprecht ae9e9fbb4f update firmware list for initial 5.10 kernel
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-15 15:10:56 +01:00
Thomas Lamprecht 091f9c3554 bump version to 5.10.6-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-15 15:10:56 +01:00
Thomas Lamprecht 4c5bb10a8b d/scripts: fix find-firmware version regex
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-15 15:10:56 +01:00
Thomas Lamprecht 41cf1104e2 d/control: update build dependencies
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-15 15:10:56 +01:00
Thomas Lamprecht b65123988c base on Ubuntu Hirsute kernel
drop applied patches and update README

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-15 15:10:56 +01:00
Thomas Lamprecht 4a78268a29 update zfsonlinux module
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-15 15:10:45 +01:00
Thomas Lamprecht d0915bc806 update zfsonlinux submodule to 2.0.1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-13 14:16:57 +01:00
Stoiko Ivanov dd717c04b0 add zzstd.ko to zfs install
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-01-13 14:16:31 +01:00
Thomas Lamprecht 2aab2d3e49 update ABI file for 5.4.78-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-12-03 15:11:35 +01:00
Thomas Lamprecht 951e9fcda6 bump version to 5.4.78-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-12-03 14:26:40 +01:00
Thomas Lamprecht 2d22bb871a cherry-pick "vfs: allow unprivileged whiteout creation"
This was in v5.7 and is rather straight forward, fixes issue for some
users:
https://forum.proxmox.com/threads/task-error-unable-to-restore-ct-106.79901/#post-354223

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-12-03 13:36:13 +01:00
Thomas Lamprecht 2501fb7b84 Revert "scsi: be2iscsi: Fix a theoretical leak in beiscsi_create_eqs()"
Reported to cause problems with HPE DL gen 9 servers, where the
module is in use[0].

Upstream has not followup for this (at least none obvious), replied
to the original patch to notify them about potential problems[1]

[0]: https://forum.proxmox.com/threads/hp-dl-380-gen-9-issues-on-5-4-73-5-4-78-kernel.79907/page-2#post-354176
[1]: https://lore.kernel.org/linux-scsi/54f36c62-10bf-8736-39ce-27ece097d9de@proxmox.com/

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-12-03 11:21:44 +01:00
Thomas Lamprecht f732534e11 update ABI file for 5.4.78-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-30 11:36:59 +01:00
Thomas Lamprecht f40acde333 bump version to 5.4.78-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-30 10:58:16 +01:00
Thomas Lamprecht aa81f09ac6 rebase patches on top of Ubuntu-5.4.0-57.63
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-30 10:57:04 +01:00
Thomas Lamprecht d0d3f7ded0 update sources to Ubuntu-5.4.0-57.63
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-30 10:57:04 +01:00
Thomas Lamprecht d678647dbd update ABI file for 5.4.73-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-16 11:57:34 +01:00
Thomas Lamprecht 8af30a16d3 bump version to 5.4.73-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-16 10:55:09 +01:00
Thomas Lamprecht 2b8feab40a update sources to Ubuntu-5.4.0-55.61
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-16 10:51:18 +01:00
Thomas Lamprecht 11ed605e92 rebase patches on top of Ubuntu-5.4.0-55.61
(generated with debian/scripts/import-upstream-tag)
+ manually dropped the now hopefully superfluous.
0006-Revert-scsi-lpfc-Fix-broken-Credit-Recovery-after-dr.patch

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-16 10:50:31 +01:00
Thomas Lamprecht 74eaf7a3f8 update ZFS to 0.8.5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-08 10:57:01 +02:00
Fabian Grünbichler d8b5f42796 update README
we are no longer tracking bionic/eoan, but focal

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2020-10-08 09:06:27 +02:00
Thomas Lamprecht 09ceb5a3e4 make unregister_netdev error less of a PITA
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-07 17:19:42 +02:00
Thomas Lamprecht 58931a1928 update ABI file for 5.4.65-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-09-21 16:05:35 +02:00
Thomas Lamprecht 12c27d6cf6 bump version to 5.4.65-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-09-21 15:40:34 +02:00
Thomas Lamprecht aca38cac89 update sources to Ubuntu-5.4.0-49.53
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-09-21 15:39:37 +02:00
Thomas Lamprecht ceee458b9c bump version to 5.4.60-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-09-04 10:25:32 +02:00
Thomas Lamprecht 861cb4ecb1 backport overflow fix for net/packet receive handling
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-09-04 10:21:46 +02:00
Thomas Lamprecht 181693ca72 update ABI file for 5.4.60-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-08-31 11:27:45 +02:00
Thomas Lamprecht 818e45a59e update fwlist
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-08-31 11:27:41 +02:00
Thomas Lamprecht 055216bb0b bump version to 5.4.60-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-08-31 10:37:08 +02:00
Thomas Lamprecht 0054ae0629 rebase patches on top of Ubuntu-5.4.0-46.50
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-08-31 10:34:18 +02:00
Thomas Lamprecht 161a0ba764 update sources to Ubuntu-5.4.0-46.50
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-08-31 10:34:18 +02:00
Thomas Lamprecht 168e325f9b update ABI file for 5.4.55-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-08-19 17:19:47 +02:00
Thomas Lamprecht 6b8a71588f update fw-list
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-08-19 17:19:41 +02:00
Thomas Lamprecht 86cec553af bump version to 5.4.55-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-08-19 16:30:53 +02:00
Thomas Lamprecht 6b841d38be update to Ubuntu-5.4.0-43.47
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-08-19 16:30:53 +02:00
Thomas Lamprecht e799b5ec0d update ABI file for 5.4.44-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-07-02 07:16:12 +02:00
Thomas Lamprecht 082251fdd3 bump version to 5.4.44-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-07-02 07:16:06 +02:00
Thomas Lamprecht 7834356e90 bump ABI to 5.4.44-2-pve
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-07-01 16:37:55 +02:00
Thomas Lamprecht 0ced22e49e backport cgroup: fix cgroup_sk_alloc() for sk_clone_lock()
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-07-01 16:02:48 +02:00
Fabian Grünbichler f6d3198e5d fix #2814: config: disable lockdown
since it prevents boot with our current way of building ZFS modules in
case a system is booted with secureboot enabled.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2020-06-22 14:36:45 +02:00
Fabian Grünbichler 3507a8ec4c update ABI file for 5.4.44-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2020-06-12 13:28:33 +02:00
Fabian Grünbichler ded6b646c4 bump version to 5.4.44-1
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2020-06-12 09:47:04 +02:00
Fabian Grünbichler a52ae538c3 fwlist: update to reflect dropped FW references
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2020-06-12 09:47:04 +02:00
Fabian Grünbichler 228045bab3 update sources to Ubuntu-5.4.0-38.42
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2020-06-12 08:17:14 +02:00
Thomas Lamprecht 924ae54c14 add pve-kernel-libc-dev headers package
This was long overdue, allows to access the full feature set of our
kernel for some tools using the Linux API directly.

Packaging mostly taken from Debian[0]

[0]: https://salsa.debian.org/kernel-team/linux/-/blob/debian/4.19.118-2/debian/rules.real#L367

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-By: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2020-05-28 14:07:11 +02:00
Thomas Lamprecht ee4a13eac3 d/rules: enable CIFS_SMB_DIRECT
requested by
https://forum.proxmox.com/threads/any-reason-why-cifs_smb_direct-is-disabled-in-pve-kernels-cifs-module.69925/
and as it's now marked as stable I'd say we can enable it

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-19 15:46:27 +02:00
Thomas Lamprecht 9904c0733b update ABI file for 5.4.41-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-15 15:36:25 +02:00
Thomas Lamprecht 27bcf33c13 bump version to 5.4.41-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-15 15:06:22 +02:00
Thomas Lamprecht 161bea4e83 Revert "scsi: lpfc: Fix broken Credit Recovery after driver load"
https://forum.proxmox.com/threads/proxmox-6-2-lpfc-error-port-type-wrong.69680/#post-312491
https://lore.kernel.org/linux-scsi/20200512212855.36q2ut2io2cdtagn@zeha.at/

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-15 14:50:07 +02:00
Thomas Lamprecht 6865b4eac1 rebase patches on top of Ubuntu-5.4.0-32.36
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-15 14:02:12 +02:00
Thomas Lamprecht f0a45531c7 update sources to Ubuntu-5.4.0-32.36
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-15 14:02:12 +02:00
Thomas Lamprecht 502cef0d4f drop upstreamed fix shifts patch
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-15 14:01:12 +02:00
Thomas Lamprecht f285872083 update ZFS to 0.8.4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-14 10:41:12 +02:00
Thomas Lamprecht bdeaa74c3a config: make vfio-pci and {x,e,o,u}hci modules
Since 5.4 Ubuntu makes vfio-pci builtin to allow vfio-pci to be bound
to certain devices during boot, preventing other drivers from binding
them. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1770845

Part of why this was done was because it mirrored Arch Linux choice
in the past, but there where some issues and Arch Linux went back to
modules again but this time making xhci_hcd and similar ?hci systems
modules too. Tries to mirror the values used in the current Arch
Linux config [0].

[0]: https://git.archlinux.org/svntogit/packages.git/tree/trunk/config?h=packages/linux&id=96121a8d6468c7067eb3759f6ca5e82f5f914f38

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-13 16:28:05 +02:00
Thomas Lamprecht 80c08de2e4 bump version to 5.4.34-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-07 10:02:15 +02:00
Thomas Lamprecht 9cb1be298d backport followup fix for shiftfs/overlayfs
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-07 10:01:19 +02:00
Thomas Lamprecht a77e6edf3c update ABI file for 5.4.34-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-06 10:56:31 +02:00
Thomas Lamprecht f98cede53d bump version to 5.4.34-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-06 10:35:12 +02:00
Thomas Lamprecht 9522496954 rebase patches on top of Ubuntu-5.4.0-30.34
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-06 10:35:12 +02:00
Thomas Lamprecht f5aae73de4 update sources to Ubuntu-5.4.0-30.34
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-06 10:13:55 +02:00
Thomas Lamprecht 1f8e25b6af update ABI file for 5.4.30-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-04-10 11:38:48 +02:00
Thomas Lamprecht f279776b54 update fwlist-previous
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-04-10 11:38:41 +02:00
Thomas Lamprecht 8386f638e6 bump version to 5.4.30-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-04-10 09:12:58 +02:00
Thomas Lamprecht 9f9b41276c rebase patches on top of Ubuntu-5.4.0-24.28
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-04-10 09:11:21 +02:00
Thomas Lamprecht 2215cf6c68 update sources to Ubuntu-5.4.0-24.28
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-04-10 09:11:21 +02:00
Thomas Lamprecht 67b5430430 update ABI file for 5.4.27-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-23 16:24:12 +01:00
Thomas Lamprecht 06d6b63229 update fwlist-previous
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-23 16:23:58 +01:00
Thomas Lamprecht 3378a6b319 bump version to 5.4.27-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-23 15:02:28 +01:00
Thomas Lamprecht 9e78c7995a rebase patches on top of Ubuntu-5.4.0-19.23
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-23 15:01:39 +01:00
Thomas Lamprecht 7417477abc update sources to Ubuntu-5.4.0-19.23
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-23 15:01:39 +01:00
Thomas Lamprecht 1018e229e0 update ABI file for 5.4.24-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-09 16:08:56 +01:00
Thomas Lamprecht 59766fae05 bump version to 5.4.24-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-09 13:00:20 +01:00
Thomas Lamprecht a80f88c1be rebase patches on top of Ubuntu-5.4.0-18.22
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-09 12:58:18 +01:00
Thomas Lamprecht d7a688db9c update sources to Ubuntu-5.4.0-18.22
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-09 12:58:18 +01:00
Thomas Lamprecht 43a41d9d4c update ABI file for 5.4.22-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-02 17:53:06 +01:00
Thomas Lamprecht 135fba2e4b bump version to 5.4.22-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-02 17:32:46 +01:00
Thomas Lamprecht 625b5c77e0 switch over to ubuntu focal 20.04 kernel
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-02 17:32:42 +01:00
Thomas Lamprecht 9100f5656d update ABI file for 5.3.18-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-15 15:35:18 +01:00
Thomas Lamprecht 7ad9f21880 bump version to 5.3.18-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-15 15:12:10 +01:00
Thomas Lamprecht 17f964317d rebase patches on top of Ubuntu-5.3.0-41.33
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-15 14:00:47 +01:00
Thomas Lamprecht d6bd2e83bb update sources to Ubuntu-5.3.0-41.33
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-15 14:00:47 +01:00
Thomas Lamprecht 8ad7749d68 update ABI file for 5.3.18-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-05 13:16:13 +01:00
Thomas Lamprecht 36834dde41 update fwlist-previous
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-05 13:14:46 +01:00
Thomas Lamprecht 82fdafa01e bump version to 5.3.18-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-05 11:49:42 +01:00
Thomas Lamprecht 6ad155377d rebase patches on top of Ubuntu-5.3.0-40.32
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-05 11:47:41 +01:00
Thomas Lamprecht 41e87bf3f0 update sources to Ubuntu-5.3.0-40.32
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-05 11:47:41 +01:00
Thomas Lamprecht 22f2d89162 bump version to 5.3.13-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-31 13:41:16 +01:00
Thomas Lamprecht de6f4b1d95 backport fixes for information leak within a KVM guest
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-31 13:14:32 +01:00
Thomas Lamprecht d8fae28c33 update ABI file for 5.3.13-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-24 10:17:31 +01:00
Thomas Lamprecht bc70610eee bump version to 5.3.13-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-24 09:49:59 +01:00
Thomas Lamprecht 7284a6db39 rebase patches on top of Ubuntu-5.3.0-29.31
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-24 09:48:43 +01:00
Thomas Lamprecht 84ddf4b5b5 update sources to Ubuntu-5.3.0-29.31
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-24 09:48:43 +01:00
Thomas Lamprecht ac9edb6c1b update ZFS On Linux submodule to 0.8.3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-24 09:17:10 +01:00
Thomas Lamprecht 34fce89fd4 fix #2549: backport: drm/i915: Avoid HPD poll detect triggering a new detect cycle
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-23 13:04:17 +01:00
Stefan Reiter 9538cc28e9 Add MCE patch for Threadripper 3000 series compatibility
A forum user reported that our kernel does not boot on Threadripper 3000
series CPUs, unless 'mce=off' is provided on the kernel commandline. [0]

This is a known issue, which has been fixed in mainline kernels and
backported to 5.4, 4.19 and 4.14 [1]. It is not, however, included in
5.3, nor in the Ubuntu builds. [2]

This patch is the original one posted for 5.5, which is the same as the
one ported to 5.4. It also applies cleanly to 5.3, and should work the
same, seeing as the backports to older versions do not have functional
changes either.

[0] https://forum.proxmox.com/threads/bug-pve-wont-boot-properly.63432/
[1] https://patchwork.kernel.org/project/linux-edac/list/?q=Allow+Reserved+types+to+be+overwritten+in+smca_banks
[2] https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/eoan/log/?qt=grep&q=Allow+Reserved+types+to+be+overwritten+in+smca_banks

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2020-01-15 15:26:11 +01:00
Thomas Lamprecht e9238df788 update ABI file for 5.3.13-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-05 07:54:05 +01:00
Thomas Lamprecht 8106a5e4a8 bump version to 5.3.13-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-05 07:18:30 +01:00
Thomas Lamprecht 6985f5cc9e rebase patches on top of Ubuntu-5.3.0-25.27
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-05 07:16:43 +01:00
Thomas Lamprecht 5a46549b69 update sources to Ubuntu-5.3.0-25.27
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-05 07:16:43 +01:00
Thomas Lamprecht 8028e2a26b d/control: record lz4 build dependency
Since Ubuntu Eoan the kernel compression was changed from GZIP to
LZ4, due to slightly faster load times vs. a 25% size increase
trade-off (e.g. 5.0 had ~ 8, this one has ~ 12 MB; *but* the initrd
stays roughly the same size, and that one is 5 times bigger anyway)

If we want to keep that is in the stars, but for now correctly
document the build-dependency to LZ4.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-14 15:23:23 +01:00
Thomas Lamprecht fe2c4a352d update ABI file for 5.3.10-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-14 11:56:30 +01:00
Thomas Lamprecht 0b28899e57 bump version to 5.3.10-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-14 10:43:35 +01:00
Thomas Lamprecht 8d0ce71c45 rebase patches on top of Ubuntu-5.3.0-24.26
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-14 10:42:02 +01:00
Thomas Lamprecht 2a95288ea7 update sources to Ubuntu-5.3.0-24.26
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-14 10:42:02 +01:00
Thomas Lamprecht b481f89770 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>
2019-11-12 15:31:10 +01:00
Thomas Lamprecht eb6667c98c 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-05 12:08:29 +01:00
Thomas Lamprecht b78a79fb68 update ABI file for 5.3.7-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 19:41:55 +02:00
Thomas Lamprecht 986cc9a3c0 update fwlist for 5.3.7
actually a no-op, just three FW files changed place

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 19:41:31 +02:00
Thomas Lamprecht bbccfa9d97 bump version to 5.3.7-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 19:00:32 +02:00
Thomas Lamprecht a7939a9abe rebase patches on top of Ubuntu-5.3.0-20.21
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 18:58:29 +02:00
Thomas Lamprecht da4976cd41 update sources to Ubuntu-5.3.0-20.21
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 18:58:29 +02:00
Thomas Lamprecht f009a61d86 update ZFS with 5.3 compatible FPU/SIMD register save and restore behavior
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 17:15:35 +02:00
Thomas Lamprecht 225abd65e1 remove unused patches
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 17:04:35 +02:00
Thomas Lamprecht b4f180c4f4 update README
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 16:59:50 +02:00
Thomas Lamprecht e5ce949a2f update ABI file for 5.3.1-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 08:59:12 +02:00
Thomas Lamprecht 17a7756228 update fwlist for 5.3.1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 08:59:12 +02:00
Thomas Lamprecht d21ca1b5f8 bump version to 5.3.1-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 08:59:12 +02:00
Thomas Lamprecht c19442a8de zol: update submodule to have the >=5.2 compat followup fix included
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 08:59:12 +02:00
Thomas Lamprecht 847a60dd01 update fwlist to 5.3 based kernel
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-01 18:57:02 +02:00
Thomas Lamprecht ba68212d64 rebase patches for eoan
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-01 18:57:02 +02:00
Thomas Lamprecht cdc3f700b8 replace bionic with eoan based kernel submodule
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-01 18:57:02 +02:00
Thomas Lamprecht 9e3f73d7fb update ABI file for 5.0.21-3-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-30 10:13:01 +02:00
Thomas Lamprecht 532c58c01e bump version to 5.0.21-7
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-30 09:12:03 +02:00
Thomas Lamprecht a488f3834b update ZFS to 0.8.2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-30 07:29:08 +02:00
Thomas Lamprecht 2ad9e087e8 d/export-patchq: ensure all export patches with same diff-algorithm
Se it explicitly to myres, the current (since quite a bit) default of
git, to avoid noise in exports, just because another developer
prefers another algorithm here.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-30 07:29:08 +02:00
Thomas Lamprecht e92f137375 bump version to 5.0.21-6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-27 17:17:20 +02:00
Thomas Lamprecht 03b3ea56ff update zfs-supmodule so for new version
so that modinfo shows the new version for the SIMD fixed 0.8.1 based
module

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-27 17:14:58 +02:00
Thomas Lamprecht fee072e1ea bump version to 5.0.21-5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-27 15:58:27 +02:00
Thomas Lamprecht 0fc737248b update ZFS submodule to include SIMD FPU regs save/restore
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-27 14:43:41 +02:00
Thomas Lamprecht 0570f90d28 backport new FPU register copy helpers
This allows us to fix the ZFS SIMD patch for 5.0 kernel way easier.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-27 14:43:41 +02:00
Thomas Lamprecht 97f24aae50 bump version to 5.0.21-4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-20 11:55:44 +02:00
Thomas Lamprecht c4856cd4a3 update to Ubuntu-5.0.0-30.32
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-20 11:54:33 +02:00
Thomas Lamprecht ef257cb1b2 config: enable CONFIG_HYPERV
mostly for the PMG as it could run in a HyperV based hypervisor

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-20 11:04:37 +02:00
Thomas Lamprecht 0bf2deceb0 update ABI file for 5.0.21-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-05 16:28:38 +02:00
Thomas Lamprecht 4b576962e5 bump version to 5.0.21-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-05 13:56:36 +02:00
Thomas Lamprecht b671e62ef8 rebase patches on top of Ubuntu-5.0.0-28.30
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-05 10:26:04 +02:00
Thomas Lamprecht c412f57484 update sources to Ubuntu-5.0.0-28.30
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-05 10:26:04 +02:00
Thomas Lamprecht 9a85bc6293 bump version to 5.0.21-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-28 16:00:58 +02:00
Thomas Lamprecht 5e0f6930cb update sources to Ubuntu-5.0.0-27.28
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-28 16:00:58 +02:00
Thomas Lamprecht e735a4f61a update ABI file for 5.0.21-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-28 16:00:58 +02:00
Thomas Lamprecht b9200da0c5 backport vhost_net: disable zerocopy by default
It seems to make general problems[0], and upstream changed the
default back to 0 again[1] (was enabled long ago, ca. 2012).

[0]: https://pve.proxmox.com/pipermail/pve-devel/2019-August/038571.html
[1]: https://git.kernel.org/torvalds/c/098eadce3c622c07b328d0a43dda379b38cf7c5e

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-21 09:50:11 +02:00
Thomas Lamprecht 034edf65bb bump version to 5.0.21-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-20 17:19:08 +02:00
Thomas Lamprecht 0a42c11516 update ZFS submodule
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-20 17:18:45 +02:00
Thomas Lamprecht 118616fd5f rebase patches on top of Ubuntu-5.0.0-26.27
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-20 17:13:36 +02:00
Thomas Lamprecht 19f71b9581 update sources to Ubuntu-5.0.0-26.27
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-20 17:13:36 +02:00
Fabian Grünbichler e8791ba811 bump version to 5.0.18-3
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-08-08 09:05:43 +02:00
Fabian Grünbichler 81a5bd500f update sources to Ubuntu-5.0.0-25.26
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-08-08 09:03:46 +02:00
Fabian Grünbichler 72fa067b74 bump version to 5.0.18-2
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-08-05 10:28:17 +02:00
Fabian Grünbichler 91ad2b4323 update sources to Ubuntu-5.0.0-24.25
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-08-05 10:28:17 +02:00
Fabian Grünbichler 77b2009b13 build: add ZFS 0.8 debhelper build-dependencies
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-08-05 10:27:56 +02:00
Fabian Grünbichler a48f12d308 update ABI file for 5.0.18-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-08-02 14:54:39 +02:00
Thomas Lamprecht 65bbbdd0ae bump version to 5.0.18-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-24 16:05:54 +02:00
Thomas Lamprecht f4beb2f868 rebase patches on top of Ubuntu-5.0.0-22.23
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-24 08:12:25 +02:00
Thomas Lamprecht a895eba453 update sources to Ubuntu-5.0.0-22.23
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-24 08:12:25 +02:00
Thomas Lamprecht 225d38f866 backport: rbd: don't assert on writes to snapshots
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-24 08:11:49 +02:00
Fabian Grünbichler 6c6eb8b0dd fix #327: downgrade dependency on grub-*
from Depends to Recommends, since we now have an alternate bootloader
setup for some scenarios. both our installer and Debian's default setup
still install Grub by default anyway, but this allows removal without
hacks in case such an alternate bootloader is used on the system.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-07-11 14:56:42 +02:00
Thomas Lamprecht de6fe5c8ff update ABI file for 5.0.15-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-03 11:15:52 +02:00
Thomas Lamprecht feed9783c5 update fwlist-previous
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-03 11:13:55 +02:00
Thomas Lamprecht d036f79625 bump version to 5.0.15-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-03 10:52:17 +02:00
Thomas Lamprecht a5002bb04e update submodule sources to Ubuntu-5.0.0-21.22
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-03 10:50:09 +02:00
Thomas Lamprecht d74786f737 update ABI file for 5.0.12-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-18 07:53:07 +02:00
Thomas Lamprecht 4daae19966 bump version to 5.0.12-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-18 07:44:10 +02:00
Thomas Lamprecht ff93581f3f rebase patches on top of Ubuntu-5.0.0-18.19
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-18 07:28:40 +02:00
Thomas Lamprecht 93ed037e39 update sources to Ubuntu-5.0.0-18.19
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-18 07:28:40 +02:00
Thomas Lamprecht 8caa9b27c3 build with ZFS 0.8.1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-18 07:28:18 +02:00
Thomas Lamprecht 6ac09c547c revert KVM nested param back to off as default, for now
Else everyone booting the 5.0 based kernel will have nesting
activated by default[0], and this break live migration for all VMs
with CPU type host, even if they do not host KVM (nested) guests
themself and never made a VMX call, at least with newer QEMU versions
>= 3.1 [1]

While the kernel now may had good reasons to change the default to
true for this[0], i.e., it can now handle nested guest migrations in
a nice and sane way, the user space side of this in QEMU is not yet
ready, and may only become so with or even after 4.1.

After we have a working qemu which can also live migrate arbitrary
nested guest we may well enable this as default, but until then it
brings just pain but no advantage.

So let's protect people which did not manually enabled nesting for
a live-migration breakage. All those who enabled nesting manually
them self knew that it was still experimental and thus will have to
live with their decision and have a live migration breakage (for
those VMs with CPU type 'host')

[0]: https://git.kernel.org/torvalds/c/1e58e5e59148916fa43444a406335a990783fb78
[1]: https://git.qemu.org/gitweb.cgi?p=qemu.git;a=commitdiff;h=d98f26073bebddcd3da0ba1b86c3a34e840c0fb8

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-08 20:12:35 +02:00
Thomas Lamprecht faed21722c update ABI file for 5.0.8-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-25 19:16:57 +02:00
Thomas Lamprecht fdf82cf531 bump version to 5.0.1-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-25 18:54:06 +02:00
Thomas Lamprecht b76c223cac followup: buildsys: fix initializing submodules and do so recursively
"${ZFSONLINUX_SUBMODULE}/upstream/README.markdown" does not exists
anymore, if it'd be ".../README.md", but actually lets just switch
over to a recursive initialization and be done with it..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-25 18:17:55 +02:00
Stoiko Ivanov 3c4b3fd82f update ZFS on Linux to 0.8
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 14:59:47 +02:00
Stoiko Ivanov 1de1353133 adapt debian/rules to ZFS 0.8 structure
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 14:59:47 +02:00
Stoiko Ivanov 5fa6b6aee2 adapt global Makefile to ZFS 0.8 structure
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 14:59:47 +02:00
Thomas Lamprecht 2552aa9d09 buildsys: switch upload dist over to buster
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 16:27:40 +02:00
Thomas Lamprecht 2135c72329 remove gcc check completely, we have build dependencies for that
RETPOLINE is now for sure included, further as this is build through
buildpackage the build dependencies are checked

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 15:42:57 +02:00
Thomas Lamprecht b8e09c3c69 support gcc 8.3 from buster
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 15:42:57 +02:00
Thomas Lamprecht 3f2c044fbf bump version to 5.0.8-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 15:42:57 +02:00
Thomas Lamprecht a8f81bcf2b update fwlist-previous
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 15:42:57 +02:00
Thomas Lamprecht d6d2efea0c replace obsoleted 'silentoldconfig' kernel make target with 'syncconfig'
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 15:42:57 +02:00
Thomas Lamprecht d7b1c00b9d find-firmware: check for 5.0 versioned directory
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 15:42:57 +02:00
Thomas Lamprecht 1e51973430 use in tree igb and e1000 module for now
the current OOT are not compatible with 5.0 and we want to obsolete
them anyway sooner or later

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 15:42:57 +02:00
Thomas Lamprecht ff71f8b949 update patches for 5.0.8
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 14:11:57 +02:00
Thomas Lamprecht 117c2cd60c move from ubuntu-bionic to ubuntu-disco submodule
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 13:52:55 +02:00
42 changed files with 30285 additions and 23754 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
[submodule "submodules/zfsonlinux"]
path = submodules/zfsonlinux
url = ../zfsonlinux
[submodule "submodules/ubuntu-bionic"]
path = submodules/ubuntu-bionic
url = ../mirror_ubuntu-bionic-kernel
[submodule "submodules/ubuntu-kernel"]
path = submodules/ubuntu-kernel
url = ../mirror_ubuntu-kernels
+16 -53
View File
@@ -1,12 +1,12 @@
# also bump pve-kernel-meta if either of MAJ.MIN, PATCHLEVEL or KREL change
KERNEL_MAJ=4
KERNEL_MIN=15
KERNEL_PATCHLEVEL=18
KERNEL_MAJ=5
KERNEL_MIN=19
KERNEL_PATCHLEVEL=17
# increment KREL if the ABI changes (abicheck target in debian/rules)
# rebuild packages with new KREL and run 'make abiupdate'
KREL=15
KREL=2
PKGREL=40
PKGREL=2
KERNEL_MAJMIN=$(KERNEL_MAJ).$(KERNEL_MIN)
KERNEL_VER=$(KERNEL_MAJMIN).$(KERNEL_PATCHLEVEL)
@@ -29,51 +29,32 @@ GITVERSION:=$(shell git rev-parse HEAD)
SKIPABI=0
ifeq ($(CC), cc)
GCC=gcc
else
GCC=$(CC)
endif
BUILD_DIR=build
KERNEL_SRC=ubuntu-bionic
KERNEL_SRC=ubuntu-kernel
KERNEL_SRC_SUBMODULE=submodules/$(KERNEL_SRC)
KERNEL_CFG_ORG=config-${KERNEL_VER}.org
E1000EDIR=e1000e-3.4.1.1
E1000ESRC=${E1000EDIR}.tar.gz
IGBDIR=igb-5.3.5.18
IGBSRC=${IGBDIR}.tar.gz
ZFSONLINUX_SUBMODULE=submodules/zfsonlinux
SPLDIR=pkg-spl
ZFSDIR=pkg-zfs
MODULES=modules
MODULE_DIRS=${E1000EDIR} ${IGBDIR} ${SPLDIR} ${ZFSDIR}
MODULE_DIRS=${ZFSDIR}
# exported to debian/rules via debian/rules.d/dirs.mk
DIRS=KERNEL_SRC E1000EDIR IGBDIR SPLDIR ZFSDIR MODULES
DIRS=KERNEL_SRC ZFSDIR MODULES
DST_DEB=${PACKAGE}_${KERNEL_VER}-${PKGREL}_${ARCH}.deb
HDR_DEB=${HDRPACKAGE}_${KERNEL_VER}-${PKGREL}_${ARCH}.deb
USR_HDR_DEB=pve-kernel-libc-dev_${KERNEL_VER}-${PKGREL}_${ARCH}.deb
LINUX_TOOLS_DEB=linux-tools-$(KERNEL_MAJMIN)_${KERNEL_VER}-${PKGREL}_${ARCH}.deb
LINUX_TOOLS_DBG_DEB=linux-tools-$(KERNEL_MAJMIN)-dbgsym_${KERNEL_VER}-${PKGREL}_${ARCH}.deb
DEBS=${DST_DEB} ${HDR_DEB} ${LINUX_TOOLS_DEB}
DEBS=${DST_DEB} ${HDR_DEB} ${USR_HDR_DEB} ${LINUX_TOOLS_DEB} ${LINUX_TOOLS_DBG_DEB}
all: check_gcc deb
all: deb
deb: ${DEBS}
check_gcc:
$(GCC) --version|grep "6\.3" || false
@$(GCC) -Werror -mindirect-branch=thunk-extern -mindirect-branch-register -c -x c /dev/null -o check_gcc.o \
|| ( rm -f check_gcc.o; \
echo "Please install gcc-6 packages with indirect thunk / RETPOLINE support"; \
false)
@rm -f check_gcc.o
${LINUX_TOOLS_DEB} ${HDR_DEB}: ${DST_DEB}
${DST_DEB}: ${BUILD_DIR}.prepared
cd ${BUILD_DIR}; dpkg-buildpackage --jobs=auto -b -uc -us
@@ -113,34 +94,17 @@ ${KERNEL_SRC}.prepared: ${KERNEL_SRC_SUBMODULE} | submodule
${MODULES}.prepared: $(addsuffix .prepared,${MODULE_DIRS})
touch $@
${E1000EDIR}.prepared: ${E1000ESRC}
rm -rf ${BUILD_DIR}/${MODULES}/${E1000EDIR} $@
mkdir -p ${BUILD_DIR}/${MODULES}/${E1000EDIR}
tar --strip-components=1 -C ${BUILD_DIR}/${MODULES}/${E1000EDIR} -xf ${E1000ESRC}
cd ${BUILD_DIR}/${MODULES}/${E1000EDIR}; patch -p1 < ../../../patches/intel/intel-module-gcc6-compat.patch
cd ${BUILD_DIR}/${MODULES}/${E1000EDIR}; patch -p1 < ../../../patches/intel/e1000e/e1000e_4.10_max-mtu.patch
cd ${BUILD_DIR}/${MODULES}/${E1000EDIR}; patch -p1 < ../../../patches/intel/e1000e/e1000e_4.15-new-timer.patch
touch $@
${IGBDIR}.prepared: ${IGBSRC}
rm -rf ${BUILD_DIR}/${MODULES}/${IGBDIR} $@
mkdir -p ${BUILD_DIR}/${MODULES}/${IGBDIR}
tar --strip-components=1 -C ${BUILD_DIR}/${MODULES}/${IGBDIR} -xf ${IGBSRC}
cd ${BUILD_DIR}/${MODULES}/${IGBDIR}; patch -p1 < ../../../patches/intel/igb/igb_4.15_mtu.patch
touch $@
${SPLDIR}.prepared: ${ZFSDIR}.prepared
${ZFSDIR}.prepared: ${ZFSONLINUX_SUBMODULE}
rm -rf ${BUILD_DIR}/${MODULES}/${SPLDIR} ${BUILD_DIR}/${MODULES}/${ZFSDIR} ${BUILD_DIR}/${MODULES}/tmp $@
rm -rf ${BUILD_DIR}/${MODULES}/${ZFSDIR} ${BUILD_DIR}/${MODULES}/tmp $@
mkdir -p ${BUILD_DIR}/${MODULES}/tmp
cp -a ${ZFSONLINUX_SUBMODULE}/* ${BUILD_DIR}/${MODULES}/tmp
cd ${BUILD_DIR}/${MODULES}/tmp; make kernel
rm -rf ${BUILD_DIR}/${MODULES}/tmp
touch ${ZFSDIR}.prepared ${SPLDIR}.prepared
touch ${ZFSDIR}.prepared
.PHONY: upload
upload: ${DEBS}
tar cf - ${DEBS}|ssh -X repoman@repo.proxmox.com -- upload --product pve,pmg --dist stretch --arch ${ARCH}
tar cf - ${DEBS}|ssh -X repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist bullseye --arch ${ARCH}
.PHONY: distclean
distclean: clean
@@ -156,8 +120,7 @@ update_modules: submodule
.PHONY: submodule
submodule:
test -f "${KERNEL_SRC_SUBMODULE}/README" || git submodule update --init ${KERNEL_SRC_SUBMODULE}
test -f "${ZFSONLINUX_SUBMODULE}/Makefile" || git submodule update --init ${ZFSONLINUX_SUBMODULE}
(test -f "${ZFSONLINUX_SUBMODULE}/zfs/upstream/README.markdown" && test -f "${ZFSONLINUX_SUBMODULE}/spl/upstream/README.markdown") || (cd ${ZFSONLINUX_SUBMODULE}; git submodule update --init)
test -f "${ZFSONLINUX_SUBMODULE}/Makefile" || git submodule update --init --recursive ${ZFSONLINUX_SUBMODULE}
# call after ABI bump with header deb in working directory
.PHONY: abiupdate
+25 -29
View File
@@ -3,20 +3,20 @@ KERNEL SOURCE:
We currently use the Ubuntu kernel sources, available from:
http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/
http://kernel.ubuntu.com/git/ubuntu/ubuntu-jammy.git/
Ubuntu will maintain those kernels till:
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable
or
https://pve.proxmox.com/pve-docs/chapter-pve-faq.html#faq-support-table
whatever happens to be earlier.
Additional/Updated Modules:
---------------------------
- include latest e1000e driver from intel/sourceforge
- include latest igb driver from intel/sourceforge
- include native OpenZFS filesystem kernel modules for Linux
* https://github.com/zfsonlinux/
@@ -35,7 +35,7 @@ get applied with the `patch` tool. From a git point-of-view, the copied
directory remains clean even with extra patches applied since it does not
contain a .git directory, but a reference to the (still pristine) submodule:
$ cat build/ubuntu-bionic/.git
$ cat build/ubuntu-jammy/.git
If you mistakenly cloned the upstream repo as "normal" clone (not via the
submodule mechanics) this means that you have a real .git directory with its
@@ -64,7 +64,7 @@ pve-kernel-meta
---------------
depends on latest kernel and header package within a certain kernel series,
e.g., pve-kernel-4.15 / pve-headers-4.15
e.g., pve-kernel-5.15 / pve-headers-5.15
git clone git://git.proxmox.com/git/pve-kernel-meta.git
@@ -102,6 +102,18 @@ which device is actually used for /dev/watchdog.
We ship this list in /lib/modprobe.d/blacklist_pve-kernel-<VERSION>.conf
The user typically edit /etc/modules to enable a specific watchdog device.
Debug kernel and modules
------------------------
In order to build a -dbgsym package containing an unstripped copy of the kernel
image and modules, enable the 'pkg.pve-kernel.debug' build profile (e.g. by
exporting DEB_BUILD_PROFILES='pkg.pve-kernel.debug'). The resulting package can
be used together with 'crash'/'kdump-tools' to debug kernel crashes.
Note: the -dbgsym package is only valid for the pve-kernel packages produced by
the same build. A kernel/module from a different build will likely not match,
even if both builds are of the same kernel and package version.
Additional information
----------------------
@@ -125,55 +137,39 @@ NOTE: For the exact and current list see debian/rules (PVE_CONFIG_OPTS)
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_DM=y
- add workaround for Debian bug #807000 (see
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=807000)
CONFIG_BLK_DEV_NVME=y
- compile NBD and RBD modules
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RBD=m
- enable IBM JFS file system as module
enable it as requested by users (bug #64)
requested by users (bug #64)
- enable apple HFS and HFSPLUS as module
enable it as requested by users
requested by users
- enable CONFIG_BCACHE=m (requested by user)
- enable CONFIG_BRIDGE=y
Else we get warnings on boot, that
net.bridge.bridge-nf-call-iptables is an unknown key
to avoid warnings on boot, e.g. that net.bridge.bridge-nf-call-iptables is an unknown key
- enable CONFIG_DEFAULT_SECURITY_APPARMOR
We need this for lxc
- set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
because if not set, it can give some dynamic memory or cpu frequencies
change, and vms can crash (mainly windows guest).
see http://forum.proxmox.com/threads/18238-Windows-7-x64-VMs-crashing-randomly-during-process-termination?p=93273#post93273
- use 'deadline' as default scheduler
This is the suggested setting for KVM. We also measure bad fsync
performance with ext4 and cfq.
This is the suggested setting for KVM. We also measure bad fsync performance with ext4 and cfq.
- disable CONFIG_INPUT_EVBUG
Module evbug is not blacklisted on debian, so we simply disable it
to avoid key-event logs (which is a big security problem)
Module evbug is not blacklisted on debian, so we simply disable it to avoid
key-event logs (which is a big security problem)
- enable CONFIG_MODVERSIONS (needed for ABI tracking)
- switch default UNWINDER to FRAME_POINTER
the recently introduced ORC_UNWINDER is not 100% stable yet, especially in combination with ZFS
- enable CONFIG_PAGE_TABLE_ISOLATION (Meltdown mitigation)
File diff suppressed because it is too large Load Diff
+27059
View File
File diff suppressed because it is too large Load Diff
+698
View File
@@ -1,3 +1,701 @@
pve-kernel (5.19.17-2) bullseye; urgency=medium
* update submodule to Ubuntu-5.19.0-31.32
* bump ABI to 5.19.17-2
* note that this is likely the last release for Proxmox's 5.19 based kernel
-- Proxmox Support Team <support@proxmox.com> Sat, 28 Jan 2023 16:40:25 +0100
pve-kernel (5.19.17-1) bullseye; urgency=medium
* update to Ubuntu-5.19.0-24.25
* bump ABI to 5.19.17-1
-- Proxmox Support Team <support@proxmox.com> Mon, 14 Nov 2022 20:25:12 +0100
pve-kernel (5.19.7-2) bullseye; urgency=medium
* update ZFS to 2.1.6
* update to Ubuntu-5.19.0-19.19
* bump ABI to 5.19.7-2
-- Proxmox Support Team <support@proxmox.com> Tue, 04 Oct 2022 17:18:40 +0200
pve-kernel (5.19.7-1) bullseye; urgency=medium
* update to 5.19.7 based on Ubuntu-5.19.0-16.16
-- Proxmox Support Team <support@proxmox.com> Tue, 06 Sep 2022 07:54:58 +0200
pve-kernel (5.19.0-1) bullseye; urgency=medium
* update to 5.19.0 based from Ubuntu-5.19.0-14.14
-- Proxmox Support Team <support@proxmox.com> Tue, 02 Aug 2022 09:18:39 +0200
pve-kernel (5.19.0-1~rc8+2) bullseye; urgency=medium
* backport smm fixes
-- Proxmox Support Team <support@proxmox.com> Wed, 27 Jul 2022 11:27:10 +0200
pve-kernel (5.19.0-1~rc8+1) bullseye; urgency=medium
* update to 5.19.0-rc8 based from Ubuntu-5.19.0-11.11
-- Proxmox Support Team <support@proxmox.com> Tue, 26 Jul 2022 11:47:30 +0200
pve-kernel (5.15.53-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-48.54
-- Proxmox Support Team <support@proxmox.com> Fri, 26 Aug 2022 16:53:52 +0200
pve-kernel (5.15.39-4) bullseye; urgency=medium
* update "SMM emulation and interrupt shadow fixes" to v3
* bump ABI to 5.15.35-4
-- Proxmox Support Team <support@proxmox.com> Mon, 08 Aug 2022 15:11:15 +0200
pve-kernel (5.15.39-3) bullseye; urgency=medium
* backport "SMM emulation and interrupt shadow fixes"
-- Proxmox Support Team <support@proxmox.com> Wed, 27 Jul 2022 13:45:39 +0200
pve-kernel (5.15.39-2) bullseye; urgency=medium
* update to Ubuntu-5.15.0-45.48
* update ZFS to 2.1.5
-- Proxmox Support Team <support@proxmox.com> Wed, 20 Jul 2022 17:22:19 +0200
pve-kernel (5.15.39-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-41.44
-- Proxmox Support Team <support@proxmox.com> Wed, 22 Jun 2022 17:22:00 +0200
pve-kernel (5.15.35-6) bullseye; urgency=medium
* update to Ubuntu-5.15.0-40.43
* bump ABI to 5.15.35-3
-- Proxmox Support Team <support@proxmox.com> Fri, 17 Jun 2022 13:42:35 +0200
pve-kernel (5.15.35-5) bullseye; urgency=medium
* backport netfilter nf_table sanitiation fixes
-- Proxmox Support Team <support@proxmox.com> Wed, 08 Jun 2022 15:02:51 +0200
pve-kernel (5.15.35-4) bullseye; urgency=medium
* update to Ubuntu-5.15.0-36.37
* fix #4083: backport "EDAC/amd64: Add PCI device IDs for family 19h
model 50h"
-- Proxmox Support Team <support@proxmox.com> Thu, 02 Jun 2022 13:48:41 +0200
pve-kernel (5.15.35-3) bullseye; urgency=medium
* fix #4039: backport aquantia atlantic NIC fixes
-- Proxmox Support Team <support@proxmox.com> Wed, 11 May 2022 07:57:51 +0200
pve-kernel (5.15.35-2) bullseye; urgency=medium
* cherry pick "NFSv4.1 provide mount option to toggle trunking discovery"
-- Proxmox Support Team <support@proxmox.com> Thu, 05 May 2022 13:54:35 +0200
pve-kernel (5.15.35-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-29.30
-- Proxmox Support Team <support@proxmox.com> Wed, 04 May 2022 12:32:49 +0200
pve-kernel (5.15.30-3) bullseye; urgency=medium
* backport "io_uring: fix race between timeout flush and removal"
-- Proxmox Support Team <support@proxmox.com> Fri, 22 Apr 2022 18:08:27 +0200
pve-kernel (5.15.30-2) bullseye; urgency=medium
* update sources to Ubuntu-5.15.0-27.28
* bump ABI to 5.15.30-2
-- Proxmox Support Team <support@proxmox.com> Fri, 22 Apr 2022 11:15:56 +0200
pve-kernel (5.15.30-1) bullseye; urgency=medium
* update sources to Ubuntu-5.15.0-24.24 based on 5.15.30
* update ZFS to 2.1.4
-- Proxmox Support Team <support@proxmox.com> Tue, 29 Mar 2022 10:36:02 +0200
pve-kernel (5.15.27-1) bullseye; urgency=medium
* update sources to Ubuntu-5.15.0-23.23 based on 5.15.27
* update ZFS to 2.1.3
-- Proxmox Support Team <support@proxmox.com> Sat, 12 Mar 2022 15:16:17 +0100
pve-kernel (5.15.19-3) bullseye; urgency=medium
* backport "lib/iov_iter: initialize "flags" in new pipe_buffer"
fixing CVE-2022-0847 "dirty pipe"
-- Proxmox Support Team <support@proxmox.com> Mon, 07 Mar 2022 16:23:02 +0100
pve-kernel (5.15.19-2) bullseye; urgency=medium
* backport fbdev memory region release improvements
* ensure 'simpledrm' module gets build, allowing it to take over any system
VGA/VBE/EFI framebuffer directly
* bump ABI to 5.15.19-2
-- Proxmox Support Team <support@proxmox.com> Tue, 08 Feb 2022 11:19:02 +0100
pve-kernel (5.15.19-1) bullseye; urgency=medium
* update sources to Ubuntu-5.15.0-20.20 based on 5.15.19
-- Proxmox Support Team <support@proxmox.com> Fri, 04 Feb 2022 06:09:14 +0100
pve-kernel (5.15.17-1) bullseye; urgency=medium
* update sources to Ubuntu-5.15.0-19.19 based on 5.15.17
-- Proxmox Support Team <support@proxmox.com> Mon, 31 Jan 2022 09:41:30 +0100
pve-kernel (5.15.12-3) bullseye; urgency=medium
* backport "vfs: fs_context: fix up param length parsing in
legacy_parse_param"
-- Proxmox Support Team <support@proxmox.com> Thu, 20 Jan 2022 16:36:44 +0100
pve-kernel (5.15.12-2) bullseye; urgency=medium
* update sources to Ubuntu-5.15.0-16.16 based on 5.15.12
* update ZFS to 2.1.2
* ZFS: cherry-pick lock-inversion patch for zvol_open
* cherry-pick "blk-cgroup: always terminate io.stat lines"
-- Proxmox Support Team <support@proxmox.com> Tue, 11 Jan 2022 16:43:18 +0100
pve-kernel (5.15.7-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-14.14
* bump ABI to 5.15.7-1
-- Proxmox Support Team <support@proxmox.com> Tue, 14 Dec 2021 16:42:34 +0100
pve-kernel (5.15.5-1) bullseye; urgency=medium
* update to upcomming Ubuntu 22.04, Jammy Jellyfish kernel
* bump ABI to 5.15.5-1
-- Proxmox Support Team <support@proxmox.com> Mon, 29 Nov 2021 18:49:57 +0100
pve-kernel (5.13.19-4) bullseye; urgency=medium
* update sources to Ubuntu-5.13.0-23.23
* bump ABI to 5.13.19-2
-- Proxmox Support Team <support@proxmox.com> Mon, 29 Nov 2021 12:10:09 +0100
pve-kernel (5.13.19-3) bullseye; urgency=medium
* backport two io-wq fixes relevant for io_uring
-- Proxmox Support Team <support@proxmox.com> Tue, 23 Nov 2021 13:31:19 +0100
pve-kernel (5.13.19-2) bullseye; urgency=medium
* re-enable retrying to get a blockdev on ERESTARTSYS to work around
ZFS still depending on that
-- Proxmox Support Team <support@proxmox.com> Tue, 09 Nov 2021 12:59:38 +0100
pve-kernel (5.13.19-1) bullseye; urgency=medium
* update sources to Ubuntu-5.13.0-22.22
-- Proxmox Support Team <support@proxmox.com> Sat, 06 Nov 2021 13:08:30 +0100
pve-kernel (5.13.18-1) bullseye; urgency=medium
* update sources to Ubuntu-5.13.0-21.21
* bump ABI to 5.13.18-1
-- Proxmox Support Team <support@proxmox.com> Tue, 19 Oct 2021 13:42:26 +0200
pve-kernel (5.13.14-1) bullseye; urgency=medium
* update kernel-base to Ubuntu 21.10 Impish kernel
* update ZFS to 2.1.1
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Sep 2021 06:16:44 +0200
pve-kernel (5.11.22-9) bullseye; urgency=medium
* backport "blk-mq: fix kernel panic during iterating over flush
request"
* d/rules: kconfig: enable SQUASHFS_DECOMP_MULTI_PERCPU to speed up
decompression of mounted squashfs images
-- Proxmox Support Team <support@proxmox.com> Wed, 22 Sep 2021 10:11:11 +0200
pve-kernel (5.11.22-8) bullseye; urgency=medium
* update to Ubuntu-5.11.0-34.36
* fix #3552: cherry-pick PCI probe fixes
* build nvme as a module again to satisfy some inflexible (mellanox) modules
insisting in being able to load the nvme-core module as dependency
* bump ABI to 5.11.22-4
-- Proxmox Support Team <support@proxmox.com> Fri, 27 Aug 2021 11:51:34 +0200
pve-kernel (5.11.22-7) bullseye; urgency=medium
* cherry-pick fixes for CVE-2021-3656 and CVE-2021-3653
-- Proxmox Support Team <support@proxmox.com> Wed, 18 Aug 2021 15:06:12 +0200
pve-kernel (5.11.22-6) bullseye; urgency=medium
* io_uring: don't block level reissue off completion path
-- Proxmox Support Team <support@proxmox.com> Wed, 28 Jul 2021 10:51:12 +0200
pve-kernel (5.11.22-5) bullseye; urgency=medium
* import Ubuntu-5.11.0-26.28
* pull in upstream stable releases from v5.10.44, v5.12.11
-- Proxmox Support Team <support@proxmox.com> Wed, 21 Jul 2021 18:25:44 +0200
pve-kernel (5.11.22-4) bullseye; urgency=medium
* fix CVE-2021-33909: seq_file: disallow extremely large seq buffer
allocations
-- Proxmox Support Team <support@proxmox.com> Tue, 20 Jul 2021 21:40:02 +0200
pve-kernel (5.11.22-3) bullseye; urgency=medium
* update ZFS to 2.0.5
* pull in upstream stable releases from v5.10.43, v5.12.10
* ensure 'performance' is the default frequency CPU governor again, as
schedutil seems to cause still some issues in with a few VM workloads
-- Proxmox Support Team <support@proxmox.com> Sun, 11 Jul 2021 13:45:15 +0200
pve-kernel (5.11.22-2) bullseye; urgency=medium
* net: bridge: sync fdb to new unicast-filtering ports
-- Proxmox Support Team <support@proxmox.com> Fri, 02 Jul 2021 16:22:45 +0200
pve-kernel (5.11.22-1) bullseye; urgency=medium
* update sources to stable release 5.11.22 with Ubuntu-5.11.0-23.24
* pve-kernel-libc-dev: add version to Provides dependency field for
linux-libc-dev to satisfy versioned dependencies from other packages
* build perf with python3
* fixes #3465: keep unstripped kernel and module files, allowing one to use
kdump-tools
-- Proxmox Support Team <support@proxmox.com> Wed, 23 Jun 2021 08:53:17 +0200
pve-kernel (5.11.21-1) bullseye; urgency=medium
* update sources to stable release 5.11.21 with Ubuntu-5.11.0-19.20
-- Proxmox Support Team <support@proxmox.com> Tue, 01 Jun 2021 16:38:57 +0200
pve-kernel (5.11.17-1) bullseye; urgency=medium
* update sources to stable release 5.11.17 with Ubuntu-5.11.0-18.19
-- Proxmox Support Team <support@proxmox.com> Wed, 12 May 2021 12:45:37 +0200
pve-kernel (5.11.12-1) bullseye; urgency=medium
* update sources to Ubuntu-5.11.0-14.15
-- Proxmox Support Team <support@proxmox.com> Fri, 09 Apr 2021 10:31:19 +0200
pve-kernel (5.11.7-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.11.0-12.13
* update ZFS to 2.0.4
-- Proxmox Support Team <support@proxmox.com> Thu, 18 Mar 2021 14:07:05 +0100
pve-kernel (5.11.0-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.11.0-11.12
* update ZFS to 2.0.3
-- Proxmox Support Team <support@proxmox.com> Tue, 02 Mar 2021 13:36:01 +0100
pve-kernel (5.10.6-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.10.0-12.13
* update ZFS to 2.0.1
-- Proxmox Support Team <support@proxmox.com> Thu, 14 Jan 2021 14:27:01 +0100
pve-kernel (5.4.78-2) pve pmg; urgency=medium
* revert commit 552b270b5784dc3 "scsi: be2iscsi: Fix a theoretical leak in
beiscsi_create_eqs()" to avoid hangs and kernel oopses on module load
* cherry-pick patch to allow unprivileged whiteout device creation
* bump ABI to 5.4.78-2
-- Proxmox Support Team <support@proxmox.com> Thu, 03 Dec 2020 14:26:17 +0100
pve-kernel (5.4.78-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.4.0-57.63
-- Proxmox Support Team <support@proxmox.com> Mon, 30 Nov 2020 10:57:47 +0100
pve-kernel (5.4.73-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.4.0-55.61
* update ZFS to 0.8.5
* downgrade unregister_netdev waiting to become free error from emergency to
error log
-- Proxmox Support Team <support@proxmox.com> Mon, 16 Nov 2020 10:52:16 +0100
pve-kernel (5.4.65-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.4.0-49.53
-- Proxmox Support Team <support@proxmox.com> Mon, 21 Sep 2020 15:40:22 +0200
pve-kernel (5.4.60-2) pve pmg; urgency=medium
* improve guards against a packet offset calculation overflow for certain raw
packet sockets
-- Proxmox Support Team <support@proxmox.com> Fri, 04 Sep 2020 10:24:50 +0200
pve-kernel (5.4.60-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.4.0-46.50
* bump ABI to 5.4.60-1
-- Proxmox Support Team <support@proxmox.com> Mon, 31 Aug 2020 10:36:22 +0200
pve-kernel (5.4.55-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.4.0-43.47
* bump ABI to 5.4.55-1
-- Proxmox Support Team <support@proxmox.com> Mon, 10 Aug 2020 10:26:27 +0200
pve-kernel (5.4.44-2) pve pmg; urgency=medium
* fix #2814: config: disable lockdown
* backport: cgroup: fix cgroup_sk_alloc() for sk_clone_lock()
* bump ABI to 5.4.44-2
-- Proxmox Support Team <support@proxmox.com> Wed, 01 Jul 2020 16:37:57 +0200
pve-kernel (5.4.44-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.4.0-38.42
* bump ABI to 5.4.44-1
-- Proxmox Support Team <support@proxmox.com> Fri, 12 Jun 2020 08:18:46 +0200
pve-kernel (5.4.41-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.4.0-32.36
* update ZFS to 0.8.4
* Revert "scsi: lpfc: Fix broken Credit Recovery after driver load" as a
workaround for some LP Fibre Channel SCSI boxes.
-- Proxmox Support Team <support@proxmox.com> Fri, 15 May 2020 15:06:08 +0200
pve-kernel (5.4.34-2) pve pmg; urgency=medium
* backport fix for overlayfs
-- Proxmox Support Team <support@proxmox.com> Thu, 07 May 2020 10:02:02 +0200
pve-kernel (5.4.34-1) pve pmg; urgency=medium
* update to Ubuntu-5.4.0-30.34
* bump ABI to 5.4.34-1
-- Proxmox Support Team <support@proxmox.com> Wed, 06 May 2020 10:16:59 +0200
pve-kernel (5.4.30-1) pve pmg; urgency=medium
* update to Ubuntu-5.4.0-24.28
* bump ABI to 5.4.30-1
-- Proxmox Support Team <support@proxmox.com> Fri, 10 Apr 2020 09:12:42 +0200
pve-kernel (5.4.27-1) pve pmg; urgency=medium
* update to Ubuntu-5.4.0-19.23
* bump ABI to 5.4.27-1
-- Proxmox Support Team <support@proxmox.com> Mon, 23 Mar 2020 15:02:22 +0100
pve-kernel (5.4.24-1) pve pmg; urgency=medium
* update to Ubuntu-5.4.0-18.22
* bump ABI to 5.4.24-1
-- Proxmox Support Team <support@proxmox.com> Mon, 09 Mar 2020 12:59:46 +0100
pve-kernel (5.4.22-1) pve pmg; urgency=medium
* Initial Ubuntu Focal Kernel build, based on 5.4
* update sources to Ubuntu-5.4.0-17.21
* bump ABI to 5.4.22-1
-- Proxmox Support Team <support@proxmox.com> Mon, 02 Mar 2020 15:49:45 +0100
pve-kernel (5.3.18-2) pve pmg; urgency=medium
* bump ABI to 5.3.18-2
* update to Ubuntu-5.3.0-41.33
-- Proxmox Support Team <support@proxmox.com> Sat, 15 Feb 2020 15:11:52 +0100
pve-kernel (5.3.18-1) pve pmg; urgency=medium
* bump ABI to 5.3.18-1
* update sources to Ubuntu-5.3.0-40.32
-- Proxmox Support Team <support@proxmox.com> Wed, 05 Feb 2020 11:49:10 +0100
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
pve-kernel (5.0.21-7) pve pmg; urgency=medium
* update ZFS to 0.8.2
* bump ABI to 5.0.21-3
-- Proxmox Support Team <support@proxmox.com> Mon, 30 Sep 2019 09:11:02 +0200
pve-kernel (5.0.21-6) pve pmg; urgency=medium
* backport new FPU register copy helpers
* ZFS SIMD: FPU register save/restore is also required on 5.0 kernels
-- Proxmox Support Team <support@proxmox.com> Fri, 27 Sep 2019 17:17:02 +0200
pve-kernel (5.0.21-4) pve pmg; urgency=medium
* update to Ubuntu-5.0.0-30.32
-- Proxmox Support Team <support@proxmox.com> Fri, 20 Sep 2019 11:55:17 +0200
pve-kernel (5.0.21-3) pve pmg; urgency=medium
* update sources to Ubuntu-5.0.0-28.30
* bump ABI to 5.0.21-2
-- Proxmox Support Team <support@proxmox.com> Thu, 05 Sep 2019 13:56:01 +0200
pve-kernel (5.0.21-2) pve pmg; urgency=medium
* update sources to Ubuntu-5.0.0-27.28
* backport vhost_net: disable zerocopy by default
-- Proxmox Support Team <support@proxmox.com> Wed, 28 Aug 2019 15:12:18 +0200
pve-kernel (5.0.21-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.0.0-26.27
* update ZFS to include SIMD compat patch for newer Kernel
* bump ABI to 5.0.21-1
-- Proxmox Support Team <support@proxmox.com> Tue, 20 Aug 2019 17:16:32 +0200
pve-kernel (5.0.18-3) pve pmg; urgency=medium
* update sources to Ubuntu-5.0.0-25.26
-- Proxmox Support Team <support@proxmox.com> Thu, 8 Aug 2019 09:05:29 +0200
pve-kernel (5.0.18-2) pve pmg; urgency=medium
* update sources to Ubuntu-5.0.0-24.25
-- Proxmox Support Team <support@proxmox.com> Fri, 2 Aug 2019 14:51:00 +0200
pve-kernel (5.0.18-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.0.0-22.23
* bump ABI to 5.0.18-1
* backport "rbd: don't assert on writes to snapshots" to fix issues with
DISCARD operations on Ceph RBD backed block devices during a snapshot
operation.
-- Proxmox Support Team <support@proxmox.com> Wed, 24 Jul 2019 08:13:30 +0200
pve-kernel (5.0.15-1) pve pmg; urgency=medium
* update to Ubuntu-5.0.0-21.22
* bump ABI to 5.0.15-1
-- Proxmox Support Team <support@proxmox.com> Wed, 03 Jul 2019 10:51:57 +0200
pve-kernel (5.0.12-1) pve pmg; urgency=medium
* update sources to Ubuntu-5.0.0-18.19
* update to ZFS 0.8.1
* revert KVM nested option default back to off
-- Proxmox Support Team <support@proxmox.com> Sat, 15 Jun 2019 11:39:18 +0200
pve-kernel (5.0.8-2) pve pmg; urgency=medium
* update to ZFS 0.8.0
* bump ABI to 5.0.8-2
-- Proxmox Support Team <support@proxmox.com> Fri, 24 May 2019 20:38:04 +0200
pve-kernel (5.0.8-1) pve pmg; urgency=medium
* update to Ubuntu-5.0.0-16.17
* bump ABI to 5.0.8-1
* build for Debian Buster / PVE/PMG 6
-- Proxmox Support Team <support@proxmox.com> Wed, 22 May 2019 14:06:59 +0200
pve-kernel (4.15.18-40) unstable; urgency=medium
* update to Ubuntu-4.15.0-51.55
+42 -17
View File
@@ -8,9 +8,11 @@ Build-Depends: asciidoc-base,
bison,
cpio,
debhelper (>= 10~),
dh-python,
dwarves,
file,
flex,
gcc-6 (>= 6.3.0-18+deb9u1),
gcc (>= 8.3.0-6),
git,
kmod,
libdw-dev,
@@ -22,14 +24,17 @@ Build-Depends: asciidoc-base,
libssl-dev,
libtool,
lintian,
lz4,
perl-modules,
python-minimal,
python3-minimal,
rsync,
sed,
sphinx-common,
tar,
xmlto,
zlib1g-dev,
Build-Conflicts: pve-headers-@KVNAME@,
zstd,
Build-Conflicts: pve-headers-@KVNAME@
Vcs-Git: git://git.proxmox.com/git/pve-kernel
Vcs-Browser: https://git.proxmox.com/?p=pve-kernel.git
@@ -37,9 +42,7 @@ Package: linux-tools-@KVMAJMIN@
Architecture: any
Section: devel
Priority: optional
Depends: linux-base,
${misc:Depends},
${shlibs:Depends},
Depends: linux-base, ${misc:Depends}, ${shlibs:Depends}
Description: Linux kernel version specific tools for version @KVMAJMIN@
This package provides the architecture dependent parts for kernel
version locked tools (such as perf and x86_energy_perf_policy)
@@ -48,21 +51,43 @@ Package: pve-headers-@KVNAME@
Section: devel
Priority: optional
Architecture: any
Provides: linux-headers,
linux-headers-2.6,
Depends: coreutils | fileutils (>= 4.0),
Description: The Proxmox PVE Kernel Headers
Provides: linux-headers-@KVNAME@-amd64
Depends: coreutils | fileutils (>= 4.0)
Description: Proxmox Kernel Headers
This package contains the linux kernel headers
Package: pve-kernel-@KVNAME@
Section: admin
Priority: optional
Architecture: any
Provides: linux-image,
linux-image-2.6,
Suggests: pve-firmware,
Depends: busybox,
grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub-efi-arm64,
initramfs-tools,
Description: The Proxmox PVE Kernel Image
Provides: linux-image-@KVNAME@-amd64
Suggests: pve-firmware
Depends: busybox, initramfs-tools
Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub-efi-arm64
Description: Proxmox Kernel Image
This package contains the linux kernel and initial ramdisk used for booting
Package: pve-kernel-@KVNAME@-dbgsym
Architecture: any
Provides: linux-debug
Section: devel
Priority: optional
Build-Profiles: <pkg.pve-kernel.debug>
Description: Proxmox Kernel debug image
This package provides the kernel debug image for version @KVNAME@. The debug
kernel image contained in this package is NOT meant to boot from - it is
uncompressed, and unstripped, and suitable for use with crash/kdump-tools/..
to analyze kernel crashes. This package also contains the pve-kernel modules
in their unstripped version.
Package: pve-kernel-libc-dev
Section: devel
Priority: optional
Architecture: any
Provides: linux-libc-dev (=${binary:Version})
Conflicts: linux-libc-dev
Replaces: linux-libc-dev
Depends: ${misc:Depends}
Description: Linux support headers for userspace development
This package provides userspaces headers from the Linux kernel. These headers
are used by the installed headers for GNU libc and other system libraries.
+3 -6
View File
@@ -1,11 +1,8 @@
This is a prepackaged version of the Linux kernel binary image.
This package was put together by Proxmox Server
Solutions GmbH <support@proxmox.com>.
We use the RHEL7 kernel sources, available from:
ftp://ftp.redhat.com/redhat/rhel/
For the packaging and all files in the debian/ folder consider:
Copyright (C) 2007-2022 Proxmox Server Solutions GmbH
Licensed under the AGPL-3.0-or-later
Linux is copyrighted by Linus Torvalds and others.
+76 -33
View File
@@ -14,7 +14,9 @@ include debian/rules.d/${DEB_BUILD_ARCH}.mk
CHANGELOG_DATE:=$(shell dpkg-parsechangelog -SDate)
PVE_KERNEL_PKG=pve-kernel-${KVNAME}
PVE_DEBUG_KERNEL_PKG=pve-kernel-${KVNAME}-dbgsym
PVE_HEADER_PKG=pve-headers-${KVNAME}
PVE_USR_HEADER_PKG=pve-kernel-libc-dev
LINUX_TOOLS_PKG=linux-tools-${KERNEL_MAJMIN}
KERNEL_SRC_COPY=${KERNEL_SRC}_tmp
@@ -27,22 +29,45 @@ PVE_CONFIG_OPTS= \
-m CONFIG_CEPH_FS \
-m CONFIG_BLK_DEV_NBD \
-m CONFIG_BLK_DEV_RBD \
-d CONFIG_SND_PCSP \
-m CONFIG_BCACHE \
-m CONFIG_JFS_FS \
-m CONFIG_HFS_FS \
-m CONFIG_HFSPLUS_FS \
-e CIFS_SMB_DIRECT \
-e CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU \
-e CONFIG_BRIDGE \
-e CONFIG_BRIDGE_NETFILTER \
-e CONFIG_BLK_DEV_SD \
-e CONFIG_BLK_DEV_SR \
-e CONFIG_BLK_DEV_DM \
-e CONFIG_BLK_DEV_NVME \
-m CONFIG_BLK_DEV_NVME \
-e CONFIG_NLS_ISO8859_1 \
-d CONFIG_INPUT_EVBUG \
-d CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND \
-d CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL \
-e CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE \
-e CONFIG_SYSFB_SIMPLEFB \
-e CONFIG_DRM_SIMPLEDRM \
-d CONFIG_MODULE_SIG \
-d CONFIG_MEMCG_DISABLED \
-e CONFIG_MEMCG_SWAP_ENABLED \
-e CONFIG_HYPERV \
-m CONFIG_VFIO_IOMMU_TYPE1 \
-m CONFIG_VFIO_VIRQFD \
-m CONFIG_VFIO \
-m CONFIG_VFIO_PCI \
-m CONFIG_USB_XHCI_HCD \
-m CONFIG_USB_XHCI_PCI \
-m CONFIG_USB_EHCI_HCD \
-m CONFIG_USB_EHCI_PCI \
-m CONFIG_USB_EHCI_HCD_PLATFORM \
-m CONFIG_USB_OHCI_HCD \
-m CONFIG_USB_OHCI_HCD_PCI \
-m CONFIG_USB_OHCI_HCD_PLATFORM \
-d CONFIG_USB_OHCI_HCD_SSB \
-m CONFIG_USB_UHCI_HCD \
-d CONFIG_USB_SL811_HCD_ISO \
-e CONFIG_MEMCG_KMEM \
-d CONFIG_DEFAULT_CFQ \
-e CONFIG_DEFAULT_DEADLINE \
@@ -53,6 +78,11 @@ PVE_CONFIG_OPTS= \
-d CONFIG_UNWINDER_ORC \
-d CONFIG_UNWINDER_GUESS \
-e CONFIG_UNWINDER_FRAME_POINTER \
--set-str CONFIG_SYSTEM_TRUSTED_KEYS ""\
--set-str CONFIG_SYSTEM_REVOCATION_KEYS ""\
-d CONFIG_SECURITY_LOCKDOWN_LSM \
-d CONFIG_SECURITY_LOCKDOWN_LSM_EARLY \
--set-str CONFIG_LSM yama,integrity,apparmor \
-e CONFIG_PAGE_TABLE_ISOLATION
debian/control: $(wildcard debian/*.in)
@@ -68,7 +98,7 @@ debian/control: $(wildcard debian/*.in)
build: .compile_mark .tools_compile_mark .modules_compile_mark
install: .install_mark .tools_install_mark .headers_install_mark
install: .install_mark .tools_install_mark .headers_install_mark .usr_headers_install_mark
dh_installdocs -A debian/copyright debian/SOURCE
dh_installchangelogs
dh_installman
@@ -78,7 +108,7 @@ install: .install_mark .tools_install_mark .headers_install_mark
binary: install
debian/rules fwcheck abicheck
dh_strip -N${PVE_HEADER_PKG}
dh_strip -N${PVE_HEADER_PKG} -N${PVE_USR_HEADER_PKG}
dh_makeshlibs
dh_shlibdeps
dh_installdeb
@@ -89,6 +119,9 @@ binary: install
.config_mark:
cd ${KERNEL_SRC}; scripts/config ${PVE_CONFIG_OPTS}
${MAKE} -C ${KERNEL_SRC} oldconfig
# copy to allow building in parallel to kernel/module compilation without interference
rm -rf ${KERNEL_SRC_COPY}
cp -ar ${KERNEL_SRC} ${KERNEL_SRC_COPY}
touch $@
.compile_mark: .config_mark
@@ -103,15 +136,25 @@ binary: install
install -m 644 ${KERNEL_SRC}/System.map debian/${PVE_KERNEL_PKG}/boot/System.map-${KVNAME}
install -m 644 ${KERNEL_SRC}/${KERNEL_IMAGE_PATH} debian/${PVE_KERNEL_PKG}/boot/${KERNEL_INSTALL_FILE}-${KVNAME}
${MAKE} -C ${KERNEL_SRC} INSTALL_MOD_PATH=${BUILD_DIR}/debian/${PVE_KERNEL_PKG}/ modules_install
## install latest ibg driver
install -m 644 ${MODULES}/igb.ko debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/kernel/drivers/net/ethernet/intel/igb/
# install latest e1000e driver
install -m 644 ${MODULES}/e1000e.ko debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/kernel/drivers/net/ethernet/intel/e1000e/
# install zfs drivers
install -d -m 0755 debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/zfs
install -m 644 $(addprefix ${MODULES}/,spl.ko splat.ko zfs.ko zavl.ko znvpair.ko zunicode.ko zcommon.ko zpios.ko icp.ko) debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/zfs
install -m 644 $(addprefix ${MODULES}/,zfs.ko zavl.ko znvpair.ko zunicode.ko zcommon.ko icp.ko zlua.ko spl.ko zzstd.ko) debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/zfs
# remove firmware
rm -rf debian/${PVE_KERNEL_PKG}/lib/firmware
ifeq ($(filter pkg.pve-kernel.debug,$(DEB_BUILD_PROFILES)),)
echo "'pkg.pve-kernel.debug' build profile disabled, skipping -dbgsym creation"
else
echo "'pkg.pve-kernel.debug' build profile enabled, creating -dbgsym contents"
mkdir -p debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/lib/modules/${KVNAME}
mkdir debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/boot
install -m 644 ${KERNEL_SRC}/vmlinux debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/boot/vmlinux-${KVNAME}
cp -r debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME} debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/lib/modules/
rm -f debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/lib/modules/${KVNAME}/source
rm -f debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/lib/modules/${KVNAME}/build
rm -f debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/lib/modules/${KVNAME}/modules.*
endif
# strip debug info
find debian/${PVE_KERNEL_PKG}/lib/modules -name \*.ko -print | while read f ; do strip --strip-debug "$$f"; done
# finalize
@@ -126,7 +169,7 @@ binary: install
touch $@
.tools_compile_mark: .compile_mark
${MAKE} -C ${KERNEL_SRC}/tools/perf prefix=/usr HAVE_NO_LIBBFD=1 HAVE_CPLUS_DEMANGLE_SUPPORT=1 NO_LIBPYTHON=1 NO_LIBPERL=1 NO_LIBCRYPTO=1 PYTHON=python2.7
${MAKE} -C ${KERNEL_SRC}/tools/perf prefix=/usr HAVE_NO_LIBBFD=1 HAVE_CPLUS_DEMANGLE_SUPPORT=1 NO_LIBPYTHON=1 NO_LIBPERL=1 NO_LIBCRYPTO=1 PYTHON=python3
echo "checking GPL-2 only perf binary for library linkage with incompatible licenses.."
! ldd ${KERNEL_SRC}/tools/perf/perf | grep -q -E '\blibbfd'
! ldd ${KERNEL_SRC}/tools/perf/perf | grep -q -E '\blibcrypto'
@@ -148,9 +191,6 @@ binary: install
rm -rf debian/${PVE_HEADER_PKG}
mkdir -p debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}
install -m 0644 ${KERNEL_SRC}/.config debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}
# copy to allow building in parallel to kernel/module compilation without interference
rm -rf ${KERNEL_SRC_COPY}
cp -ar ${KERNEL_SRC} ${KERNEL_SRC_COPY}
make -C ${KERNEL_SRC_COPY} mrproper
cd ${KERNEL_SRC_COPY}; find . -path './debian/*' -prune \
-o -path './include/*' -prune \
@@ -165,7 +205,6 @@ binary: install
-o -name '*.pl' \
\) \
-print | cpio -pd --preserve-modification-time ${BUILD_DIR}/debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}
cd ${KERNEL_SRC_COPY}; cp -a include scripts ${BUILD_DIR}/debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}
cd ${KERNEL_SRC_COPY}; \
( \
find arch/${KERNEL_HEADER_ARCH} -name include -type d -print | \
@@ -179,8 +218,9 @@ binary: install
rm -rf ${BUILD_DIR}/${KERNEL_SRC_COPY}/${PVE_HEADER_PKG}
mkdir -p ${BUILD_DIR}/${KERNEL_SRC_COPY}/${PVE_HEADER_PKG}
cp ${KERNEL_SRC}/.config ${BUILD_DIR}/${KERNEL_SRC_COPY}/${PVE_HEADER_PKG}/.config
${MAKE} -C ${KERNEL_SRC_COPY} O=${BUILD_DIR}/${KERNEL_SRC_COPY}/${PVE_HEADER_PKG} -j1 silentoldconfig prepare scripts
find ${BUILD_DIR}/${KERNEL_SRC_COPY}/${PVE_HEADER_PKG} -name \*.o.ur-\* | xargs rm -f
${MAKE} -C ${KERNEL_SRC_COPY} O=${BUILD_DIR}/${KERNEL_SRC_COPY}/${PVE_HEADER_PKG} -j1 syncconfig modules_prepare prepare scripts
cd ${KERNEL_SRC_COPY}; cp -a include scripts ${BUILD_DIR}/debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}
find ${BUILD_DIR}/${KERNEL_SRC_COPY}/${PVE_HEADER_PKG} -name \*.o.ur-\* -o -name '*.cmd' | xargs rm -f
rsync --ignore-existing -r -v -a $(addprefix ${BUILD_DIR}/${KERNEL_SRC_COPY}/${PVE_HEADER_PKG}/,arch include kernel scripts tools) ${BUILD_DIR}/debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}/
rm -rf ${BUILD_DIR}/${KERNEL_SRC_COPY}
touch $@
@@ -192,35 +232,38 @@ binary: install
ln -sf /usr/src/linux-headers-${KVNAME} debian/${PVE_HEADER_PKG}/lib/modules/${KVNAME}/build
touch $@
.modules_compile_mark: $(addprefix ${MODULES}/,igb.ko e1000e.ko spl.ko zfs.ko)
.usr_headers_install_mark: PKG_DIR = debian/${PVE_USR_HEADER_PKG}
.usr_headers_install_mark: OUT_DIR = ${PKG_DIR}/usr
.usr_headers_install_mark: .config_mark
rm -rf '${PKG_DIR}'
mkdir -p '${PKG_DIR}'
$(MAKE) -C ${KERNEL_SRC} headers_install ARCH=$(KERNEL_HEADER_ARCH) INSTALL_HDR_PATH='$(CURDIR)'/$(OUT_DIR)
rm -rf $(OUT_DIR)/include/drm $(OUT_DIR)/include/scsi
find $(OUT_DIR)/include \( -name .install -o -name ..install.cmd \) -execdir rm {} +
# Move include/asm to arch-specific directory
mkdir -p $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)
mv $(OUT_DIR)/include/asm $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/
test ! -d $(OUT_DIR)/include/arch || \
mv $(OUT_DIR)/include/arch $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/
touch $@
${MODULES}/spl.ko: .compile_mark
cd ${MODULES}/${SPLDIR}; ./autogen.sh
cd ${MODULES}/${SPLDIR}; ./configure --with-config=kernel --with-linux=${BUILD_DIR}/${KERNEL_SRC} --with-linux-obj=${BUILD_DIR}/${KERNEL_SRC}
${MAKE} -C ${MODULES}/${SPLDIR}
cp ${MODULES}/${SPLDIR}/module/splat/splat.ko ${MODULES}/
cp ${MODULES}/${SPLDIR}/module/spl/spl.ko ${MODULES}/
.modules_compile_mark: ${MODULES}/zfs.ko
touch $@
${MODULES}/zfs.ko: .compile_mark ${MODULES}/spl.ko
${MODULES}/zfs.ko: .compile_mark
cd ${MODULES}/${ZFSDIR}; ./autogen.sh
cd ${MODULES}/${ZFSDIR}; ./configure --with-spl=${BUILD_DIR}/${MODULES}/${SPLDIR} --with-spl-obj=${BUILD_DIR}/${MODULES}/${SPLDIR} --with-config=kernel --with-linux=${BUILD_DIR}/${KERNEL_SRC} --with-linux-obj=${BUILD_DIR}/${KERNEL_SRC}
cd ${MODULES}/${ZFSDIR}; ./configure --with-config=kernel --with-linux=${BUILD_DIR}/${KERNEL_SRC} --with-linux-obj=${BUILD_DIR}/${KERNEL_SRC}
${MAKE} -C ${MODULES}/${ZFSDIR}
cp ${MODULES}/${ZFSDIR}/module/avl/zavl.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/nvpair/znvpair.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/unicode/zunicode.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/zcommon/zcommon.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/zpios/zpios.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/icp/icp.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/zfs/zfs.ko ${MODULES}/
${MODULES}/igb.ko: .compile_mark
${MAKE} -C ${MODULES}/${IGBDIR}/src BUILD_KERNEL=${KVNAME} KSRC=${BUILD_DIR}/${KERNEL_SRC}
cp ${MODULES}/${IGBDIR}/src/igb.ko ${MODULES}/
${MODULES}/e1000e.ko: .compile_mark
${MAKE} -C ${MODULES}/${E1000EDIR}/src BUILD_KERNEL=${KVNAME} KSRC=${BUILD_DIR}/${KERNEL_SRC}
cp ${MODULES}/${E1000EDIR}/src/e1000e.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/lua/zlua.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/spl/spl.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/zstd/zzstd.ko ${MODULES}/
fwlist-${KVNAME}: .compile_mark .modules_compile_mark
debian/scripts/find-firmware.pl debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME} >fwlist.tmp
+1 -2
View File
@@ -5,8 +5,7 @@ my $abiold = shift;
my $skipabi = shift;
# to catch multiple abi-prev-* files being passed in
die "invalid value for skipabi parameter\n"
if (defined($skipabi) && $skipabi !~ /^[01]$/);
die "invalid value '$skipabi' for skipabi parameter\n" if defined($skipabi) && $skipabi !~ /^[01]$/;
$abinew =~ /abi-(.*)/;
my $abistr = $1;
+4 -4
View File
@@ -6,7 +6,7 @@ top=$(pwd)
if [ "$#" -ne 3 ]; then
echo "USAGE: $0 repo patchdir ref"
echo "\t exports patches from 'repo' to 'patchdir' based on 'ref'"
printf "\t exports patches from 'repo' to 'patchdir' based on 'ref'\n"
exit 1
fi
@@ -25,10 +25,10 @@ git format-patch \
--no-cover-letter \
--zero-commit \
--no-signature \
--output-dir \
"${top}/${kernel_patchdir}" \
--diff-algorithm=myers \
--output-directory="${top}/${kernel_patchdir}" \
"${base_ref}.."
git checkout ${base_ref}
git checkout "${base_ref}"
cd "${top}"
+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|^(.*/)?(4.15.\d+\-\d+\-pve)(/+)?$|;
warn "\n\nNOTE: strange directory name: $dir\n\n" if $dir !~ m|^(.*/)?(\d+.\d+.\d+\-\d+\-pve)(/+)?$|;
my $apiver = $2;
Binary file not shown.
+801 -172
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
@@ -1,37 +0,0 @@
diff --git a/src/netdev.c b/src/netdev.c
index 73b0f9a..aef1bc2 100644
--- a/src/netdev.c
+++ b/src/netdev.c
@@ -6724,19 +6724,12 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu)
int max_frame = new_mtu + VLAN_ETH_HLEN + ETH_FCS_LEN;
/* Jumbo frame support */
- if ((max_frame > (VLAN_ETH_FRAME_LEN + ETH_FCS_LEN)) &&
+ if ((new_mtu > ETH_DATA_LEN) &&
!(adapter->flags & FLAG_HAS_JUMBO_FRAMES)) {
e_err("Jumbo Frames not supported.\n");
return -EINVAL;
}
- /* Supported frame sizes */
- if ((new_mtu < (VLAN_ETH_ZLEN + ETH_FCS_LEN)) ||
- (max_frame > adapter->max_hw_frame_size)) {
- e_err("Unsupported MTU setting\n");
- return -EINVAL;
- }
-
/* Jumbo frame workaround on 82579 and newer requires CRC be stripped */
if ((adapter->hw.mac.type >= e1000_pch2lan) &&
!(adapter->flags2 & FLAG2_CRC_STRIPPING) &&
@@ -8262,6 +8255,11 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
#endif /* HAVE_NETDEV_VLAN_FEATURES */
}
+ /* MTU range: 68 - max_hw_frame_size */
+ netdev->min_mtu = ETH_MIN_MTU;
+ netdev->max_mtu = adapter->max_hw_frame_size -
+ (VLAN_ETH_HLEN + ETH_FCS_LEN);
+
if (e1000e_enable_mng_pass_thru(&adapter->hw))
adapter->flags |= FLAG_MNG_PT_ENABLED;
@@ -1,53 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Tue, 5 Jun 2018 11:16:29 +0200
Subject: [PATCH] port to new internal kernel timer API
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
diff --git a/src/netdev.c b/src/netdev.c
--- a/src/netdev.c
+++ b/src/netdev.c
@@ -5389,9 +5389,10 @@
* Need to wait a few seconds after link up to get diagnostic information from
* the phy
**/
-static void e1000_update_phy_info(unsigned long data)
+static void e1000_update_phy_info(struct timer_list *t)
{
- struct e1000_adapter *adapter = (struct e1000_adapter *)data;
+ struct e1000_adapter *adapter;
+ adapter = from_timer(adapter, t, phy_info_timer);
if (test_bit(__E1000_DOWN, &adapter->state))
return;
@@ -5774,9 +5775,10 @@
* e1000_watchdog - Timer Call-back
* @data: pointer to adapter cast into an unsigned long
**/
-static void e1000_watchdog(unsigned long data)
+static void e1000_watchdog(struct timer_list *t)
{
- struct e1000_adapter *adapter = (struct e1000_adapter *)data;
+ struct e1000_adapter *adapter;
+ adapter = from_timer(adapter, t, watchdog_timer);
/* Do the rest outside of interrupt context */
schedule_work(&adapter->watchdog_task);
@@ -8348,13 +8348,9 @@
goto err_eeprom;
}
- init_timer(&adapter->watchdog_timer);
- adapter->watchdog_timer.function = e1000_watchdog;
- adapter->watchdog_timer.data = (unsigned long)adapter;
-
- init_timer(&adapter->phy_info_timer);
- adapter->phy_info_timer.function = e1000_update_phy_info;
- adapter->phy_info_timer.data = (unsigned long)adapter;
+ timer_setup(&adapter->watchdog_timer, e1000_watchdog, 0);
+
+ timer_setup(&adapter->phy_info_timer, e1000_update_phy_info, 0);
INIT_WORK(&adapter->reset_task, e1000_reset_task);
INIT_WORK(&adapter->watchdog_task, e1000_watchdog_task);
-15
View File
@@ -1,15 +0,0 @@
diff --git a/src/igb_main.c.orig b/src/igb_main.c
index 3ee1ec7..c8adf04 100644
--- a/src/igb_main.c.orig
+++ b/src/igb_main.c
@@ -5888,10 +5888,8 @@ static int igb_change_mtu(struct net_dev
while (test_and_set_bit(__IGB_RESETTING, &adapter->state))
usleep_range(1000, 2000);
-#ifndef HAVE_NETDEVICE_MIN_MAX_MTU
/* igb_down has a dependency on max_frame_size */
adapter->max_frame_size = max_frame;
-#endif
if (netif_running(netdev))
igb_down(adapter);
@@ -1,18 +0,0 @@
diff --git a/src/Makefile.orig b/src/Makefile
index 8e962f7..50bcdcc 100644
--- a/src/Makefile.orig
+++ b/src/Makefile
@@ -123,6 +123,13 @@ ifeq (,$(CC))
$(error Compiler not found)
endif
+# workaround for GCC6's default PIE
+ifeq ($(CC),gcc)
+ PIE_TEST = [ -z "`$(CC) -fno-PIE -no-pie -x c -c /dev/null -o /dev/null 2>&1`" ]
+ PIE_FLAGS := $(shell $(PIE_TEST) && echo '-fno-PIE -no-pie')
+ EXTRA_CFLAGS += $(PIE_FLAGS)
+endif
+
# we need to know what platform the driver is being built on
# some additional features are only built on Intel platforms
ARCH := $(shell uname -m | sed 's/i.86/i386/')
@@ -15,15 +15,16 @@ Make mkcompile_h use $KBUILD_BUILD_VERSION_TIMESTAMP in preference to
$KBUILD_BUILD_TIMESTAMP.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
scripts/mkcompile_h | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
index 87f1fc9801d7..4ef868f1f244 100755
index ca40a5258c87..6ae930a732f0 100755
--- a/scripts/mkcompile_h
+++ b/scripts/mkcompile_h
@@ -33,10 +33,14 @@ else
@@ -23,10 +23,14 @@ else
VERSION=$KBUILD_BUILD_VERSION
fi
@@ -13,15 +13,16 @@ connected ports (for no real reason). To avoid problems with ARP
we simply use the MAC of the first connected port.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
net/bridge/br_stp_if.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
index 808e2b914015..b0ad54384826 100644
index 75204d36d7f9..1fb5ff73ec1e 100644
--- a/net/bridge/br_stp_if.c
+++ b/net/bridge/br_stp_if.c
@@ -259,10 +259,7 @@ bool br_stp_recalculate_bridge_id(struct net_bridge *br)
@@ -265,10 +265,7 @@ bool br_stp_recalculate_bridge_id(struct net_bridge *br)
return false;
list_for_each_entry(p, &br->port_list, list) {
@@ -48,16 +48,17 @@ capability. Please contact me to have your devices added and save
your customers the hassle of this boot option.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
.../admin-guide/kernel-parameters.txt | 9 ++
drivers/pci/quirks.c | 101 ++++++++++++++++++
2 files changed, 110 insertions(+)
drivers/pci/quirks.c | 102 ++++++++++++++++++
2 files changed, 111 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 2970a6bcf858..935a805afe60 100644
index 364f1d6f4be4..02df36670b1f 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -3125,6 +3125,15 @@
@@ -4098,6 +4098,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).
@@ -74,11 +75,11 @@ index 2970a6bcf858..935a805afe60 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 2956ebbd83dc..8dceb0838970 100644
index acf45f1f7264..7ab01acebf99 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3705,6 +3705,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);
+static bool acs_on_downstream;
@@ -182,13 +183,14 @@ index 2956ebbd83dc..8dceb0838970 100644
+}
+
/*
* Following are device-specific reset methods which can be used to
* reset a single function if other methods (e.g. FLR, PM D0->D3) are
@@ -4558,6 +4658,7 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
* 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
@@ -4928,6 +5028,8 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_CAVIUM, 0xA060, pci_quirk_mf_endpoint_acs },
/* APM X-Gene */
{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
+ /* Enable overrides for missing ACS capabilities */
+ { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides },
{ 0 }
};
/* Ampere Computing */
{ PCI_VENDOR_ID_AMPERE, 0xE005, pci_quirk_xgene_acs },
{ PCI_VENDOR_ID_AMPERE, 0xE006, pci_quirk_xgene_acs },
@@ -7,15 +7,16 @@ Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
virt/kvm/kvm_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 238ddbc127e1..d7a24fd29144 100644
index 27712d129f61..b609a08f1f52 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -77,7 +77,7 @@ module_param(halt_poll_ns, uint, 0644);
@@ -79,7 +79,7 @@ module_param(halt_poll_ns, uint, 0644);
EXPORT_SYMBOL_GPL(halt_poll_ns);
/* Default doubles per-vcpu halt_poll_ns. */
@@ -0,0 +1,24 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Wed, 7 Oct 2020 17:18:28 +0200
Subject: [PATCH] net: core: downgrade unregister_netdevice refcount leak from
emergency to error
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
net/core/dev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index 887e44dc2f2e..08578ddbb60e 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -10272,7 +10272,7 @@ static struct net_device *netdev_wait_allrefs_any(struct list_head *list)
if (time_after(jiffies, warning_time +
READ_ONCE(netdev_unregister_timeout_secs) * HZ)) {
list_for_each_entry(dev, list, todo_list) {
- pr_emerg("unregister_netdevice: waiting for %s to become free. Usage count = %d\n",
+ pr_err("unregister_netdevice: waiting for %s to become free. Usage count = %d\n",
dev->name, netdev_refcnt_read(dev));
ref_tracker_dir_print(&dev->refcnt_tracker, 10);
}
@@ -1,58 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Changwei Ge <ge.changwei@h3c.com>
Date: Wed, 31 Jan 2018 16:15:02 -0800
Subject: [PATCH] ocfs2: make metadata estimation accurate and clear
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Current code assume that ::w_unwritten_list always has only one item on.
This is not right and hard to get understood. So improve how to count
unwritten item.
Link: http://lkml.kernel.org/r/1515479070-32653-1-git-send-email-ge.changwei@h3c.com
Signed-off-by: Changwei Ge <ge.changwei@h3c.com>
Reported-by: John Lightsey <john@nixnuts.net>
Tested-by: John Lightsey <john@nixnuts.net>
Cc: Mark Fasheh <mfasheh@versity.com>
Cc: Joseph Qi <jiangqi903@gmail.com>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Changwei Ge <ge.changwei@h3c.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 63de8bd9328bf2a778fc277503da163ae3defa3c)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
fs/ocfs2/aops.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index d1516327b787..256986aca8df 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -797,6 +797,7 @@ struct ocfs2_write_ctxt {
struct ocfs2_cached_dealloc_ctxt w_dealloc;
struct list_head w_unwritten_list;
+ unsigned int w_unwritten_count;
};
void ocfs2_unlock_and_free_pages(struct page **pages, int num_pages)
@@ -1386,6 +1387,7 @@ static int ocfs2_unwritten_check(struct inode *inode,
desc->c_clear_unwritten = 0;
list_add_tail(&new->ue_ip_node, &oi->ip_unwritten_list);
list_add_tail(&new->ue_node, &wc->w_unwritten_list);
+ wc->w_unwritten_count++;
new = NULL;
unlock:
spin_unlock(&oi->ip_lock);
@@ -2256,7 +2258,7 @@ static int ocfs2_dio_wr_get_block(struct inode *inode, sector_t iblock,
ue->ue_phys = desc->c_phys;
list_splice_tail_init(&wc->w_unwritten_list, &dwc->dw_zero_list);
- dwc->dw_zero_count++;
+ dwc->dw_zero_count += wc->w_unwritten_count;
}
ret = ocfs2_write_end_nolock(inode->i_mapping, pos, len, len, wc);
@@ -0,0 +1,28 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
Date: Thu, 14 Sep 2017 11:09:58 +0200
Subject: [PATCH] do not generate split BTF type info per default
This reverts commit a8ed1a0607cfa5478ff6009539f44790c4d0956d.
It breaks ZFS sometimes:
https://github.com/openzfs/zfs/issues/12301#issuecomment-873303739
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
lib/Kconfig.debug | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 8c31c98f0bfc..470b78cd0134 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -365,7 +365,7 @@ config PAHOLE_HAS_BTF_TAG
these attributes, so make the config depend on CC_IS_CLANG.
config DEBUG_INFO_BTF_MODULES
- def_bool y
+ def_bool n
depends on DEBUG_INFO_BTF && MODULES && PAHOLE_HAS_SPLIT_BTF
help
Generate compact split BTF type information for kernel modules.
@@ -1,367 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Changwei Ge <ge.changwei@h3c.com>
Date: Wed, 31 Jan 2018 16:15:06 -0800
Subject: [PATCH] ocfs2: try to reuse extent block in dealloc without
meta_alloc
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
A crash issue was reported by John Lightsey with a call trace as follows:
ocfs2_split_extent+0x1ad3/0x1b40 [ocfs2]
ocfs2_change_extent_flag+0x33a/0x470 [ocfs2]
ocfs2_mark_extent_written+0x172/0x220 [ocfs2]
ocfs2_dio_end_io+0x62d/0x910 [ocfs2]
dio_complete+0x19a/0x1a0
do_blockdev_direct_IO+0x19dd/0x1eb0
__blockdev_direct_IO+0x43/0x50
ocfs2_direct_IO+0x8f/0xa0 [ocfs2]
generic_file_direct_write+0xb2/0x170
__generic_file_write_iter+0xc3/0x1b0
ocfs2_file_write_iter+0x4bb/0xca0 [ocfs2]
__vfs_write+0xae/0xf0
vfs_write+0xb8/0x1b0
SyS_write+0x4f/0xb0
system_call_fastpath+0x16/0x75
The BUG code told that extent tree wants to grow but no metadata was
reserved ahead of time. From my investigation into this issue, the root
cause it that although enough metadata is not reserved, there should be
enough for following use. Rightmost extent is merged into its left one
due to a certain times of marking extent written. Because during
marking extent written, we got many physically continuous extents. At
last, an empty extent showed up and the rightmost path is removed from
extent tree.
Add a new mechanism to reuse extent block cached in dealloc which were
just unlinked from extent tree to solve this crash issue.
Criteria is that during marking extents *written*, if extent rotation
and merging results in unlinking extent with growing extent tree later
without any metadata reserved ahead of time, try to reuse those extents
in dealloc in which deleted extents are cached.
Also, this patch addresses the issue John reported that ::dw_zero_count
is not calculated properly.
After applying this patch, the issue John reported was gone. Thanks for
the reproducer provided by John. And this patch has passed
ocfs2-test(29 cases) suite running by New H3C Group.
[ge.changwei@h3c.com: fix static checker warnning]
Link: http://lkml.kernel.org/r/63ADC13FD55D6546B7DECE290D39E373F29196AE@H3CMLB12-EX.srv.huawei-3com.com
[akpm@linux-foundation.org: brelse(NULL) is legal]
Link: http://lkml.kernel.org/r/1515479070-32653-2-git-send-email-ge.changwei@h3c.com
Signed-off-by: Changwei Ge <ge.changwei@h3c.com>
Reported-by: John Lightsey <john@nixnuts.net>
Tested-by: John Lightsey <john@nixnuts.net>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Joseph Qi <jiangqi903@gmail.com>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Mark Fasheh <mfasheh@versity.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 71a36944042b7d9dd71f6a5d1c5ea1c2353b5d42)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
fs/ocfs2/alloc.c | 206 ++++++++++++++++++++++++++++++++++++++++++++---
fs/ocfs2/alloc.h | 1 +
fs/ocfs2/aops.c | 6 ++
3 files changed, 203 insertions(+), 10 deletions(-)
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index ab5105f9767e..2f2c76193f54 100644
--- a/fs/ocfs2/alloc.c
+++ b/fs/ocfs2/alloc.c
@@ -165,6 +165,13 @@ static int ocfs2_dinode_insert_check(struct ocfs2_extent_tree *et,
struct ocfs2_extent_rec *rec);
static int ocfs2_dinode_sanity_check(struct ocfs2_extent_tree *et);
static void ocfs2_dinode_fill_root_el(struct ocfs2_extent_tree *et);
+
+static int ocfs2_reuse_blk_from_dealloc(handle_t *handle,
+ struct ocfs2_extent_tree *et,
+ struct buffer_head **new_eb_bh,
+ int blk_wanted, int *blk_given);
+static int ocfs2_is_dealloc_empty(struct ocfs2_extent_tree *et);
+
static const struct ocfs2_extent_tree_operations ocfs2_dinode_et_ops = {
.eo_set_last_eb_blk = ocfs2_dinode_set_last_eb_blk,
.eo_get_last_eb_blk = ocfs2_dinode_get_last_eb_blk,
@@ -448,6 +455,7 @@ static void __ocfs2_init_extent_tree(struct ocfs2_extent_tree *et,
if (!obj)
obj = (void *)bh->b_data;
et->et_object = obj;
+ et->et_dealloc = NULL;
et->et_ops->eo_fill_root_el(et);
if (!et->et_ops->eo_fill_max_leaf_clusters)
@@ -1158,7 +1166,7 @@ static int ocfs2_add_branch(handle_t *handle,
struct buffer_head **last_eb_bh,
struct ocfs2_alloc_context *meta_ac)
{
- int status, new_blocks, i;
+ int status, new_blocks, i, block_given = 0;
u64 next_blkno, new_last_eb_blk;
struct buffer_head *bh;
struct buffer_head **new_eb_bhs = NULL;
@@ -1213,11 +1221,31 @@ static int ocfs2_add_branch(handle_t *handle,
goto bail;
}
- status = ocfs2_create_new_meta_bhs(handle, et, new_blocks,
- meta_ac, new_eb_bhs);
- if (status < 0) {
- mlog_errno(status);
- goto bail;
+ /* Firstyly, try to reuse dealloc since we have already estimated how
+ * many extent blocks we may use.
+ */
+ if (!ocfs2_is_dealloc_empty(et)) {
+ status = ocfs2_reuse_blk_from_dealloc(handle, et,
+ new_eb_bhs, new_blocks,
+ &block_given);
+ if (status < 0) {
+ mlog_errno(status);
+ goto bail;
+ }
+ }
+
+ BUG_ON(block_given > new_blocks);
+
+ if (block_given < new_blocks) {
+ BUG_ON(!meta_ac);
+ status = ocfs2_create_new_meta_bhs(handle, et,
+ new_blocks - block_given,
+ meta_ac,
+ &new_eb_bhs[block_given]);
+ if (status < 0) {
+ mlog_errno(status);
+ goto bail;
+ }
}
/* Note: new_eb_bhs[new_blocks - 1] is the guy which will be
@@ -1340,15 +1368,25 @@ static int ocfs2_shift_tree_depth(handle_t *handle,
struct ocfs2_alloc_context *meta_ac,
struct buffer_head **ret_new_eb_bh)
{
- int status, i;
+ int status, i, block_given = 0;
u32 new_clusters;
struct buffer_head *new_eb_bh = NULL;
struct ocfs2_extent_block *eb;
struct ocfs2_extent_list *root_el;
struct ocfs2_extent_list *eb_el;
- status = ocfs2_create_new_meta_bhs(handle, et, 1, meta_ac,
- &new_eb_bh);
+ if (!ocfs2_is_dealloc_empty(et)) {
+ status = ocfs2_reuse_blk_from_dealloc(handle, et,
+ &new_eb_bh, 1,
+ &block_given);
+ } else if (meta_ac) {
+ status = ocfs2_create_new_meta_bhs(handle, et, 1, meta_ac,
+ &new_eb_bh);
+
+ } else {
+ BUG();
+ }
+
if (status < 0) {
mlog_errno(status);
goto bail;
@@ -1511,7 +1549,7 @@ static int ocfs2_grow_tree(handle_t *handle, struct ocfs2_extent_tree *et,
int depth = le16_to_cpu(el->l_tree_depth);
struct buffer_head *bh = NULL;
- BUG_ON(meta_ac == NULL);
+ BUG_ON(meta_ac == NULL && ocfs2_is_dealloc_empty(et));
shift = ocfs2_find_branch_target(et, &bh);
if (shift < 0) {
@@ -6585,6 +6623,154 @@ ocfs2_find_per_slot_free_list(int type,
return fl;
}
+static struct ocfs2_per_slot_free_list *
+ocfs2_find_preferred_free_list(int type,
+ int preferred_slot,
+ int *real_slot,
+ struct ocfs2_cached_dealloc_ctxt *ctxt)
+{
+ struct ocfs2_per_slot_free_list *fl = ctxt->c_first_suballocator;
+
+ while (fl) {
+ if (fl->f_inode_type == type && fl->f_slot == preferred_slot) {
+ *real_slot = fl->f_slot;
+ return fl;
+ }
+
+ fl = fl->f_next_suballocator;
+ }
+
+ /* If we can't find any free list matching preferred slot, just use
+ * the first one.
+ */
+ fl = ctxt->c_first_suballocator;
+ *real_slot = fl->f_slot;
+
+ return fl;
+}
+
+/* Return Value 1 indicates empty */
+static int ocfs2_is_dealloc_empty(struct ocfs2_extent_tree *et)
+{
+ struct ocfs2_per_slot_free_list *fl = NULL;
+
+ if (!et->et_dealloc)
+ return 1;
+
+ fl = et->et_dealloc->c_first_suballocator;
+ if (!fl)
+ return 1;
+
+ if (!fl->f_first)
+ return 1;
+
+ return 0;
+}
+
+/* If extent was deleted from tree due to extent rotation and merging, and
+ * no metadata is reserved ahead of time. Try to reuse some extents
+ * just deleted. This is only used to reuse extent blocks.
+ * It is supposed to find enough extent blocks in dealloc if our estimation
+ * on metadata is accurate.
+ */
+static int ocfs2_reuse_blk_from_dealloc(handle_t *handle,
+ struct ocfs2_extent_tree *et,
+ struct buffer_head **new_eb_bh,
+ int blk_wanted, int *blk_given)
+{
+ int i, status = 0, real_slot;
+ struct ocfs2_cached_dealloc_ctxt *dealloc;
+ struct ocfs2_per_slot_free_list *fl;
+ struct ocfs2_cached_block_free *bf;
+ struct ocfs2_extent_block *eb;
+ struct ocfs2_super *osb =
+ OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci));
+
+ *blk_given = 0;
+
+ /* If extent tree doesn't have a dealloc, this is not faulty. Just
+ * tell upper caller dealloc can't provide any block and it should
+ * ask for alloc to claim more space.
+ */
+ dealloc = et->et_dealloc;
+ if (!dealloc)
+ goto bail;
+
+ for (i = 0; i < blk_wanted; i++) {
+ /* Prefer to use local slot */
+ fl = ocfs2_find_preferred_free_list(EXTENT_ALLOC_SYSTEM_INODE,
+ osb->slot_num, &real_slot,
+ dealloc);
+ /* If no more block can be reused, we should claim more
+ * from alloc. Just return here normally.
+ */
+ if (!fl) {
+ status = 0;
+ break;
+ }
+
+ bf = fl->f_first;
+ fl->f_first = bf->free_next;
+
+ new_eb_bh[i] = sb_getblk(osb->sb, bf->free_blk);
+ if (new_eb_bh[i] == NULL) {
+ status = -ENOMEM;
+ mlog_errno(status);
+ goto bail;
+ }
+
+ mlog(0, "Reusing block(%llu) from "
+ "dealloc(local slot:%d, real slot:%d)\n",
+ bf->free_blk, osb->slot_num, real_slot);
+
+ ocfs2_set_new_buffer_uptodate(et->et_ci, new_eb_bh[i]);
+
+ status = ocfs2_journal_access_eb(handle, et->et_ci,
+ new_eb_bh[i],
+ OCFS2_JOURNAL_ACCESS_CREATE);
+ if (status < 0) {
+ mlog_errno(status);
+ goto bail;
+ }
+
+ memset(new_eb_bh[i]->b_data, 0, osb->sb->s_blocksize);
+ eb = (struct ocfs2_extent_block *) new_eb_bh[i]->b_data;
+
+ /* We can't guarantee that buffer head is still cached, so
+ * polutlate the extent block again.
+ */
+ strcpy(eb->h_signature, OCFS2_EXTENT_BLOCK_SIGNATURE);
+ eb->h_blkno = cpu_to_le64(bf->free_blk);
+ eb->h_fs_generation = cpu_to_le32(osb->fs_generation);
+ eb->h_suballoc_slot = cpu_to_le16(real_slot);
+ eb->h_suballoc_loc = cpu_to_le64(bf->free_bg);
+ eb->h_suballoc_bit = cpu_to_le16(bf->free_bit);
+ eb->h_list.l_count =
+ cpu_to_le16(ocfs2_extent_recs_per_eb(osb->sb));
+
+ /* We'll also be dirtied by the caller, so
+ * this isn't absolutely necessary.
+ */
+ ocfs2_journal_dirty(handle, new_eb_bh[i]);
+
+ if (!fl->f_first) {
+ dealloc->c_first_suballocator = fl->f_next_suballocator;
+ kfree(fl);
+ }
+ kfree(bf);
+ }
+
+ *blk_given = i;
+
+bail:
+ if (unlikely(status < 0)) {
+ for (i = 0; i < blk_wanted; i++)
+ brelse(new_eb_bh[i]);
+ }
+
+ return status;
+}
+
int ocfs2_cache_block_dealloc(struct ocfs2_cached_dealloc_ctxt *ctxt,
int type, int slot, u64 suballoc,
u64 blkno, unsigned int bit)
diff --git a/fs/ocfs2/alloc.h b/fs/ocfs2/alloc.h
index 27b75cf32cfa..250bcacdf9e9 100644
--- a/fs/ocfs2/alloc.h
+++ b/fs/ocfs2/alloc.h
@@ -61,6 +61,7 @@ struct ocfs2_extent_tree {
ocfs2_journal_access_func et_root_journal_access;
void *et_object;
unsigned int et_max_leaf_clusters;
+ struct ocfs2_cached_dealloc_ctxt *et_dealloc;
};
/*
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 256986aca8df..e8e205bf2e41 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -2332,6 +2332,12 @@ static int ocfs2_dio_end_io_write(struct inode *inode,
ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(inode), di_bh);
+ /* Attach dealloc with extent tree in case that we may reuse extents
+ * which are already unlinked from current extent tree due to extent
+ * rotation and merging.
+ */
+ et.et_dealloc = &dealloc;
+
ret = ocfs2_lock_allocators(inode, &et, 0, dwc->dw_zero_count*2,
&data_ac, &meta_ac);
if (ret) {
@@ -1,53 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
Date: Tue, 3 Apr 2018 14:59:26 +0200
Subject: [PATCH] Revert "UBUNTU: [Packaging] retpoline -- add safe usage hint
support"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This (partially) reverts commit 1e39020902132b3065bedf0a0c33031e89f9f57a.
this modifies the upstream kernel build to call an Ubuntu script which
we remove before building. it would also be required by any module
builds afterwards and is not shipped by Ubuntu's kernel packages either.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
scripts/Makefile.build | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 1b07341eda2c..419fe6fdad17 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -295,27 +295,19 @@ objtool_dep = $(objtool_obj) \
$(wildcard include/config/orc/unwinder.h \
include/config/stack/validation.h)
-ifdef CONFIG_RETPOLINE
-cmd_ubuntu_retpoline = $(CONFIG_SHELL) $(srctree)/scripts/ubuntu-retpoline-extract-one $(@) $(<) "$(filter -m16 %code16gcc.h,$(a_flags))";
-else
-cmd_ubuntu_retpoline =
-endif
-
define rule_cc_o_c
$(call echo-cmd,checksrc) $(cmd_checksrc) \
$(call cmd_and_fixdep,cc_o_c) \
$(cmd_checkdoc) \
$(call echo-cmd,objtool) $(cmd_objtool) \
$(cmd_modversions_c) \
- $(call echo-cmd,ubuntu-retpoline) $(cmd_ubuntu_retpoline) \
$(call echo-cmd,record_mcount) $(cmd_record_mcount)
endef
define rule_as_o_S
$(call cmd_and_fixdep,as_o_S) \
$(call echo-cmd,objtool) $(cmd_objtool) \
- $(cmd_modversions_S) \
- $(call echo-cmd,ubuntu-retpoline) $(cmd_ubuntu_retpoline)
+ $(cmd_modversions_S)
endef
# List module undefined symbols (or empty line if not enabled)
@@ -0,0 +1,31 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Sat, 12 Mar 2022 16:19:10 +0100
Subject: [PATCH] Ubuntu: remove leftover reference to ubuntu/hio driver
A single reference to the hio driver was forgotten when it was removed
recently. While this reference is not a problem for the build itself, it
breaks the __clean target from 'scripts/Makefile.clean' here, as make
cannot enter the "ubuntu/hio" folder for cleaning due to ENOENT.
Fixes: 4ea6dd9afa0a0d ("UBUNTU: Remove ubuntu/hio driver")
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
ubuntu/Makefile | 4 ----
1 file changed, 4 deletions(-)
diff --git a/ubuntu/Makefile b/ubuntu/Makefile
index 27fa95ba242a..3bfc4494c069 100644
--- a/ubuntu/Makefile
+++ b/ubuntu/Makefile
@@ -15,10 +15,6 @@
##
##
##
-obj-$(CONFIG_HIO) += hio/
-##
-##
-##
obj-$(CONFIG_UBUNTU_HOST) += ubuntu-host/
##
##
@@ -0,0 +1,53 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <mlevitsk@redhat.com>
Date: Wed, 3 Aug 2022 18:49:59 +0300
Subject: [PATCH] bug: introduce ASSERT_STRUCT_OFFSET
ASSERT_STRUCT_OFFSET allows to assert during the build of
the kernel that a field in a struct have an expected offset.
KVM used to have such macro, but there is almost nothing KVM specific
in it so move it to build_bug.h, so that it can be used in other
places in KVM.
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kvm/vmx/vmcs12.h | 5 ++---
include/linux/build_bug.h | 9 +++++++++
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/arch/x86/kvm/vmx/vmcs12.h b/arch/x86/kvm/vmx/vmcs12.h
index 746129ddd5ae..01936013428b 100644
--- a/arch/x86/kvm/vmx/vmcs12.h
+++ b/arch/x86/kvm/vmx/vmcs12.h
@@ -208,9 +208,8 @@ struct __packed vmcs12 {
/*
* For save/restore compatibility, the vmcs12 field offsets must not change.
*/
-#define CHECK_OFFSET(field, loc) \
- BUILD_BUG_ON_MSG(offsetof(struct vmcs12, field) != (loc), \
- "Offset of " #field " in struct vmcs12 has changed.")
+#define CHECK_OFFSET(field, loc) \
+ ASSERT_STRUCT_OFFSET(struct vmcs12, field, loc)
static inline void vmx_check_vmcs12_offsets(void)
{
diff --git a/include/linux/build_bug.h b/include/linux/build_bug.h
index e3a0be2c90ad..3aa3640f8c18 100644
--- a/include/linux/build_bug.h
+++ b/include/linux/build_bug.h
@@ -77,4 +77,13 @@
#define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
#define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
+
+/*
+ * Compile time check that field has an expected offset
+ */
+#define ASSERT_STRUCT_OFFSET(type, field, expected_offset) \
+ BUILD_BUG_ON_MSG(offsetof(type, field) != (expected_offset), \
+ "Offset of " #field " in " #type " has changed.")
+
+
#endif /* _LINUX_BUILD_BUG_H */
@@ -1,55 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost@redhat.com>
Date: Mon, 17 Dec 2018 22:34:18 -0200
Subject: [PATCH] kvm: x86: Add AMD's EX_CFG to the list of ignored MSRs
Some guests OSes (including Windows 10) write to MSR 0xc001102c
on some cases (possibly while trying to apply a CPU errata).
Make KVM ignore reads and writes to that MSR, so the guest won't
crash.
The MSR is documented as "Execution Unit Configuration (EX_CFG)",
at AMD's "BIOS and Kernel Developer's Guide (BKDG) for AMD Family
15h Models 00h-0Fh Processors".
Cc: stable@vger.kernel.org
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/include/asm/msr-index.h | 1 +
arch/x86/kvm/x86.c | 2 ++
2 files changed, 3 insertions(+)
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index 7ca92f9b5eae..4eb78a908544 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -382,6 +382,7 @@
#define MSR_F15H_NB_PERF_CTR 0xc0010241
#define MSR_F15H_PTSC 0xc0010280
#define MSR_F15H_IC_CFG 0xc0011021
+#define MSR_F15H_EX_CFG 0xc001102c
/* Fam 10h MSRs */
#define MSR_FAM10H_MMIO_CONF_BASE 0xc0010058
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ac17f53812af..1154795459de 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2240,6 +2240,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
case MSR_AMD64_PATCH_LOADER:
case MSR_AMD64_BU_CFG2:
case MSR_AMD64_DC_CFG:
+ case MSR_F15H_EX_CFG:
break;
case MSR_IA32_UCODE_REV:
@@ -2528,6 +2529,7 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
case MSR_AMD64_BU_CFG2:
case MSR_IA32_PERF_CTL:
case MSR_AMD64_DC_CFG:
+ case MSR_F15H_EX_CFG:
msr_info->data = 0;
break;
case MSR_K7_EVNTSEL0 ... MSR_K7_EVNTSEL3:
@@ -0,0 +1,34 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <mlevitsk@redhat.com>
Date: Wed, 3 Aug 2022 18:50:02 +0300
Subject: [PATCH] KVM: x86: emulator: update the emulation mode after rsm
This ensures that RIP will be correctly written back,
because the RSM instruction can switch the CPU mode from
32 bit (or less) to 64 bit.
This fixes a guest crash in case the #SMI is received
while the guest runs a code from an address > 32 bit.
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kvm/emulate.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 533203fc424f..c19e782ecc54 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2654,6 +2654,11 @@ static int em_rsm(struct x86_emulate_ctxt *ctxt)
if (ret != X86EMUL_CONTINUE)
goto emulate_shutdown;
+
+ ret = emulator_recalc_and_set_mode(ctxt);
+ if (ret != X86EMUL_CONTINUE)
+ goto emulate_shutdown;
+
/*
* Note, the ctxt->ops callbacks are responsible for handling side
* effects when writing MSRs and CRs, e.g. MMU context resets, CPUID
@@ -0,0 +1,280 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <mlevitsk@redhat.com>
Date: Wed, 3 Aug 2022 18:50:05 +0300
Subject: [PATCH] KVM: x86: emulator/smm: add structs for KVM's smram layout
Those structs will be used to read/write the smram state image.
Also document the differences between KVM's SMRAM layout and SMRAM
layout that is used by real Intel/AMD cpus.
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kvm/emulate.c | 6 +
arch/x86/kvm/kvm_emulate.h | 218 +++++++++++++++++++++++++++++++++++++
arch/x86/kvm/x86.c | 1 +
3 files changed, 225 insertions(+)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index c19e782ecc54..48173cb63f7a 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -5856,3 +5856,9 @@ bool emulator_can_use_gpa(struct x86_emulate_ctxt *ctxt)
return true;
}
+
+void __init kvm_emulator_init(void)
+{
+ __check_smram32_offsets();
+ __check_smram64_offsets();
+}
diff --git a/arch/x86/kvm/kvm_emulate.h b/arch/x86/kvm/kvm_emulate.h
index 8dff25d267b7..0eb13204bbc2 100644
--- a/arch/x86/kvm/kvm_emulate.h
+++ b/arch/x86/kvm/kvm_emulate.h
@@ -13,6 +13,7 @@
#define _ASM_X86_KVM_X86_EMULATE_H
#include <asm/desc_defs.h>
+#include <linux/build_bug.h>
#include "fpu.h"
struct x86_emulate_ctxt;
@@ -481,6 +482,223 @@ enum x86_intercept {
nr_x86_intercepts
};
+
+/* 32 bit KVM's emulated SMM layout. Loosely based on Intel's layout */
+
+struct kvm_smm_seg_state_32 {
+ u32 flags;
+ u32 limit;
+ u32 base;
+} __packed;
+
+struct kvm_smram_state_32 {
+ u32 reserved1[62];
+ u32 smbase;
+ u32 smm_revision;
+ u32 reserved2[5];
+ u32 cr4; /* CR4 is not present in Intel/AMD SMRAM image */
+ u32 reserved3[5];
+
+ /*
+ * Segment state is not present/documented in the Intel/AMD SMRAM image
+ * Instead this area on Intel/AMD contains IO/HLT restart flags.
+ */
+ struct kvm_smm_seg_state_32 ds;
+ struct kvm_smm_seg_state_32 fs;
+ struct kvm_smm_seg_state_32 gs;
+ struct kvm_smm_seg_state_32 idtr; /* IDTR has only base and limit */
+ struct kvm_smm_seg_state_32 tr;
+ u32 reserved;
+ struct kvm_smm_seg_state_32 gdtr; /* GDTR has only base and limit */
+ struct kvm_smm_seg_state_32 ldtr;
+ struct kvm_smm_seg_state_32 es;
+ struct kvm_smm_seg_state_32 cs;
+ struct kvm_smm_seg_state_32 ss;
+
+ u32 es_sel;
+ u32 cs_sel;
+ u32 ss_sel;
+ u32 ds_sel;
+ u32 fs_sel;
+ u32 gs_sel;
+ u32 ldtr_sel;
+ u32 tr_sel;
+
+ u32 dr7;
+ u32 dr6;
+ u32 gprs[8]; /* GPRS in the "natural" X86 order (EAX/ECX/EDX.../EDI) */
+ u32 eip;
+ u32 eflags;
+ u32 cr3;
+ u32 cr0;
+} __packed;
+
+
+static inline void __check_smram32_offsets(void)
+{
+#define __CHECK_SMRAM32_OFFSET(field, offset) \
+ ASSERT_STRUCT_OFFSET(struct kvm_smram_state_32, field, offset - 0xFE00)
+
+ __CHECK_SMRAM32_OFFSET(reserved1, 0xFE00);
+ __CHECK_SMRAM32_OFFSET(smbase, 0xFEF8);
+ __CHECK_SMRAM32_OFFSET(smm_revision, 0xFEFC);
+ __CHECK_SMRAM32_OFFSET(reserved2, 0xFF00);
+ __CHECK_SMRAM32_OFFSET(cr4, 0xFF14);
+ __CHECK_SMRAM32_OFFSET(reserved3, 0xFF18);
+ __CHECK_SMRAM32_OFFSET(ds, 0xFF2C);
+ __CHECK_SMRAM32_OFFSET(fs, 0xFF38);
+ __CHECK_SMRAM32_OFFSET(gs, 0xFF44);
+ __CHECK_SMRAM32_OFFSET(idtr, 0xFF50);
+ __CHECK_SMRAM32_OFFSET(tr, 0xFF5C);
+ __CHECK_SMRAM32_OFFSET(gdtr, 0xFF6C);
+ __CHECK_SMRAM32_OFFSET(ldtr, 0xFF78);
+ __CHECK_SMRAM32_OFFSET(es, 0xFF84);
+ __CHECK_SMRAM32_OFFSET(cs, 0xFF90);
+ __CHECK_SMRAM32_OFFSET(ss, 0xFF9C);
+ __CHECK_SMRAM32_OFFSET(es_sel, 0xFFA8);
+ __CHECK_SMRAM32_OFFSET(cs_sel, 0xFFAC);
+ __CHECK_SMRAM32_OFFSET(ss_sel, 0xFFB0);
+ __CHECK_SMRAM32_OFFSET(ds_sel, 0xFFB4);
+ __CHECK_SMRAM32_OFFSET(fs_sel, 0xFFB8);
+ __CHECK_SMRAM32_OFFSET(gs_sel, 0xFFBC);
+ __CHECK_SMRAM32_OFFSET(ldtr_sel, 0xFFC0);
+ __CHECK_SMRAM32_OFFSET(tr_sel, 0xFFC4);
+ __CHECK_SMRAM32_OFFSET(dr7, 0xFFC8);
+ __CHECK_SMRAM32_OFFSET(dr6, 0xFFCC);
+ __CHECK_SMRAM32_OFFSET(gprs, 0xFFD0);
+ __CHECK_SMRAM32_OFFSET(eip, 0xFFF0);
+ __CHECK_SMRAM32_OFFSET(eflags, 0xFFF4);
+ __CHECK_SMRAM32_OFFSET(cr3, 0xFFF8);
+ __CHECK_SMRAM32_OFFSET(cr0, 0xFFFC);
+#undef __CHECK_SMRAM32_OFFSET
+}
+
+
+/* 64 bit KVM's emulated SMM layout. Based on AMD64 layout */
+
+struct kvm_smm_seg_state_64 {
+ u16 selector;
+ u16 attributes;
+ u32 limit;
+ u64 base;
+};
+
+struct kvm_smram_state_64 {
+
+ struct kvm_smm_seg_state_64 es;
+ struct kvm_smm_seg_state_64 cs;
+ struct kvm_smm_seg_state_64 ss;
+ struct kvm_smm_seg_state_64 ds;
+ struct kvm_smm_seg_state_64 fs;
+ struct kvm_smm_seg_state_64 gs;
+ struct kvm_smm_seg_state_64 gdtr; /* GDTR has only base and limit*/
+ struct kvm_smm_seg_state_64 ldtr;
+ struct kvm_smm_seg_state_64 idtr; /* IDTR has only base and limit*/
+ struct kvm_smm_seg_state_64 tr;
+
+ /* I/O restart and auto halt restart are not implemented by KVM */
+ u64 io_restart_rip;
+ u64 io_restart_rcx;
+ u64 io_restart_rsi;
+ u64 io_restart_rdi;
+ u32 io_restart_dword;
+ u32 reserved1;
+ u8 io_inst_restart;
+ u8 auto_hlt_restart;
+ u8 reserved2[6];
+
+ u64 efer;
+
+ /*
+ * Two fields below are implemented on AMD only, to store
+ * SVM guest vmcb address if the #SMI was received while in the guest mode.
+ */
+ u64 svm_guest_flag;
+ u64 svm_guest_vmcb_gpa;
+ u64 svm_guest_virtual_int; /* unknown purpose, not implemented */
+
+ u32 reserved3[3];
+ u32 smm_revison;
+ u32 smbase;
+ u32 reserved4[5];
+
+ /* ssp and svm_* fields below are not implemented by KVM */
+ u64 ssp;
+ u64 svm_guest_pat;
+ u64 svm_host_efer;
+ u64 svm_host_cr4;
+ u64 svm_host_cr3;
+ u64 svm_host_cr0;
+
+ u64 cr4;
+ u64 cr3;
+ u64 cr0;
+ u64 dr7;
+ u64 dr6;
+ u64 rflags;
+ u64 rip;
+ u64 gprs[16]; /* GPRS in a reversed "natural" X86 order (R15/R14/../RCX/RAX.) */
+};
+
+
+static inline void __check_smram64_offsets(void)
+{
+#define __CHECK_SMRAM64_OFFSET(field, offset) \
+ ASSERT_STRUCT_OFFSET(struct kvm_smram_state_64, field, offset - 0xFE00)
+
+ __CHECK_SMRAM64_OFFSET(es, 0xFE00);
+ __CHECK_SMRAM64_OFFSET(cs, 0xFE10);
+ __CHECK_SMRAM64_OFFSET(ss, 0xFE20);
+ __CHECK_SMRAM64_OFFSET(ds, 0xFE30);
+ __CHECK_SMRAM64_OFFSET(fs, 0xFE40);
+ __CHECK_SMRAM64_OFFSET(gs, 0xFE50);
+ __CHECK_SMRAM64_OFFSET(gdtr, 0xFE60);
+ __CHECK_SMRAM64_OFFSET(ldtr, 0xFE70);
+ __CHECK_SMRAM64_OFFSET(idtr, 0xFE80);
+ __CHECK_SMRAM64_OFFSET(tr, 0xFE90);
+ __CHECK_SMRAM64_OFFSET(io_restart_rip, 0xFEA0);
+ __CHECK_SMRAM64_OFFSET(io_restart_rcx, 0xFEA8);
+ __CHECK_SMRAM64_OFFSET(io_restart_rsi, 0xFEB0);
+ __CHECK_SMRAM64_OFFSET(io_restart_rdi, 0xFEB8);
+ __CHECK_SMRAM64_OFFSET(io_restart_dword, 0xFEC0);
+ __CHECK_SMRAM64_OFFSET(reserved1, 0xFEC4);
+ __CHECK_SMRAM64_OFFSET(io_inst_restart, 0xFEC8);
+ __CHECK_SMRAM64_OFFSET(auto_hlt_restart, 0xFEC9);
+ __CHECK_SMRAM64_OFFSET(reserved2, 0xFECA);
+ __CHECK_SMRAM64_OFFSET(efer, 0xFED0);
+ __CHECK_SMRAM64_OFFSET(svm_guest_flag, 0xFED8);
+ __CHECK_SMRAM64_OFFSET(svm_guest_vmcb_gpa, 0xFEE0);
+ __CHECK_SMRAM64_OFFSET(svm_guest_virtual_int, 0xFEE8);
+ __CHECK_SMRAM64_OFFSET(reserved3, 0xFEF0);
+ __CHECK_SMRAM64_OFFSET(smm_revison, 0xFEFC);
+ __CHECK_SMRAM64_OFFSET(smbase, 0xFF00);
+ __CHECK_SMRAM64_OFFSET(reserved4, 0xFF04);
+ __CHECK_SMRAM64_OFFSET(ssp, 0xFF18);
+ __CHECK_SMRAM64_OFFSET(svm_guest_pat, 0xFF20);
+ __CHECK_SMRAM64_OFFSET(svm_host_efer, 0xFF28);
+ __CHECK_SMRAM64_OFFSET(svm_host_cr4, 0xFF30);
+ __CHECK_SMRAM64_OFFSET(svm_host_cr3, 0xFF38);
+ __CHECK_SMRAM64_OFFSET(svm_host_cr0, 0xFF40);
+ __CHECK_SMRAM64_OFFSET(cr4, 0xFF48);
+ __CHECK_SMRAM64_OFFSET(cr3, 0xFF50);
+ __CHECK_SMRAM64_OFFSET(cr0, 0xFF58);
+ __CHECK_SMRAM64_OFFSET(dr7, 0xFF60);
+ __CHECK_SMRAM64_OFFSET(dr6, 0xFF68);
+ __CHECK_SMRAM64_OFFSET(rflags, 0xFF70);
+ __CHECK_SMRAM64_OFFSET(rip, 0xFF78);
+ __CHECK_SMRAM64_OFFSET(gprs, 0xFF80);
+#undef __CHECK_SMRAM64_OFFSET
+}
+
+union kvm_smram {
+ struct kvm_smram_state_64 smram64;
+ struct kvm_smram_state_32 smram32;
+ u8 bytes[512];
+};
+
+void __init kvm_emulator_init(void);
+
+
/* Host execution mode. */
#if defined(CONFIG_X86_32)
#define X86EMUL_MODE_HOST X86EMUL_MODE_PROT32
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index b3e72a86184e..8e6e85720242 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -13273,6 +13273,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_vmgexit_msr_protocol_exit);
static int __init kvm_x86_init(void)
{
kvm_mmu_x86_module_init();
+ kvm_emulator_init();
return 0;
}
module_init(kvm_x86_init);
@@ -0,0 +1,214 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <mlevitsk@redhat.com>
Date: Wed, 3 Aug 2022 18:50:06 +0300
Subject: [PATCH] KVM: x86: emulator/smm: use smram structs in the common code
Switch from using a raw array to 'union kvm_smram'.
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/include/asm/kvm_host.h | 5 +++--
arch/x86/kvm/emulate.c | 12 +++++++-----
arch/x86/kvm/kvm_emulate.h | 3 ++-
arch/x86/kvm/svm/svm.c | 8 ++++++--
arch/x86/kvm/vmx/vmx.c | 4 ++--
arch/x86/kvm/x86.c | 16 ++++++++--------
6 files changed, 28 insertions(+), 20 deletions(-)
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 19c04412f6e1..cff765545738 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -202,6 +202,7 @@ typedef enum exit_fastpath_completion fastpath_t;
struct x86_emulate_ctxt;
struct x86_exception;
+union kvm_smram;
enum x86_intercept;
enum x86_intercept_stage;
@@ -1552,8 +1553,8 @@ struct kvm_x86_ops {
void (*setup_mce)(struct kvm_vcpu *vcpu);
int (*smi_allowed)(struct kvm_vcpu *vcpu, bool for_injection);
- int (*enter_smm)(struct kvm_vcpu *vcpu, char *smstate);
- int (*leave_smm)(struct kvm_vcpu *vcpu, const char *smstate);
+ int (*enter_smm)(struct kvm_vcpu *vcpu, union kvm_smram *smram);
+ int (*leave_smm)(struct kvm_vcpu *vcpu, const union kvm_smram *smram);
void (*enable_smi_window)(struct kvm_vcpu *vcpu);
int (*mem_enc_ioctl)(struct kvm *kvm, void __user *argp);
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 48173cb63f7a..66fb9420842c 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2582,16 +2582,18 @@ static int rsm_load_state_64(struct x86_emulate_ctxt *ctxt,
static int em_rsm(struct x86_emulate_ctxt *ctxt)
{
unsigned long cr0, cr4, efer;
- char buf[512];
+ const union kvm_smram smram;
u64 smbase;
int ret;
+ BUILD_BUG_ON(sizeof(smram) != 512);
+
if ((ctxt->ops->get_hflags(ctxt) & X86EMUL_SMM_MASK) == 0)
return emulate_ud(ctxt);
smbase = ctxt->ops->get_smbase(ctxt);
- ret = ctxt->ops->read_phys(ctxt, smbase + 0xfe00, buf, sizeof(buf));
+ ret = ctxt->ops->read_phys(ctxt, smbase + 0xfe00, (void *)&smram, sizeof(smram));
if (ret != X86EMUL_CONTINUE)
return X86EMUL_UNHANDLEABLE;
@@ -2641,15 +2643,15 @@ static int em_rsm(struct x86_emulate_ctxt *ctxt)
* state (e.g. enter guest mode) before loading state from the SMM
* state-save area.
*/
- if (ctxt->ops->leave_smm(ctxt, buf))
+ if (ctxt->ops->leave_smm(ctxt, &smram))
goto emulate_shutdown;
#ifdef CONFIG_X86_64
if (emulator_has_longmode(ctxt))
- ret = rsm_load_state_64(ctxt, buf);
+ ret = rsm_load_state_64(ctxt, (const char *)&smram);
else
#endif
- ret = rsm_load_state_32(ctxt, buf);
+ ret = rsm_load_state_32(ctxt, (const char *)&smram);
if (ret != X86EMUL_CONTINUE)
goto emulate_shutdown;
diff --git a/arch/x86/kvm/kvm_emulate.h b/arch/x86/kvm/kvm_emulate.h
index 0eb13204bbc2..04ac0cef8b57 100644
--- a/arch/x86/kvm/kvm_emulate.h
+++ b/arch/x86/kvm/kvm_emulate.h
@@ -19,6 +19,7 @@
struct x86_emulate_ctxt;
enum x86_intercept;
enum x86_intercept_stage;
+union kvm_smram;
struct x86_exception {
u8 vector;
@@ -235,7 +236,7 @@ struct x86_emulate_ops {
unsigned (*get_hflags)(struct x86_emulate_ctxt *ctxt);
void (*exiting_smm)(struct x86_emulate_ctxt *ctxt);
- int (*leave_smm)(struct x86_emulate_ctxt *ctxt, const char *smstate);
+ int (*leave_smm)(struct x86_emulate_ctxt *ctxt, const union kvm_smram *smram);
void (*triple_fault)(struct x86_emulate_ctxt *ctxt);
int (*set_xcr)(struct x86_emulate_ctxt *ctxt, u32 index, u64 xcr);
};
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 92b30b4937fc..f7f58c4cf341 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -4308,12 +4308,14 @@ static int svm_smi_allowed(struct kvm_vcpu *vcpu, bool for_injection)
return 1;
}
-static int svm_enter_smm(struct kvm_vcpu *vcpu, char *smstate)
+static int svm_enter_smm(struct kvm_vcpu *vcpu, union kvm_smram *smram)
{
struct vcpu_svm *svm = to_svm(vcpu);
struct kvm_host_map map_save;
int ret;
+ char *smstate = (char *)smram;
+
if (!is_guest_mode(vcpu))
return 0;
@@ -4355,7 +4357,7 @@ static int svm_enter_smm(struct kvm_vcpu *vcpu, char *smstate)
return 0;
}
-static int svm_leave_smm(struct kvm_vcpu *vcpu, const char *smstate)
+static int svm_leave_smm(struct kvm_vcpu *vcpu, const union kvm_smram *smram)
{
struct vcpu_svm *svm = to_svm(vcpu);
struct kvm_host_map map, map_save;
@@ -4363,6 +4365,8 @@ static int svm_leave_smm(struct kvm_vcpu *vcpu, const char *smstate)
struct vmcb *vmcb12;
int ret;
+ const char *smstate = (const char *)smram;
+
if (!guest_cpuid_has(vcpu, X86_FEATURE_LM))
return 0;
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index eecf8a45446d..017fe8873620 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -7738,7 +7738,7 @@ static int vmx_smi_allowed(struct kvm_vcpu *vcpu, bool for_injection)
return !is_smm(vcpu);
}
-static int vmx_enter_smm(struct kvm_vcpu *vcpu, char *smstate)
+static int vmx_enter_smm(struct kvm_vcpu *vcpu, union kvm_smram *smram)
{
struct vcpu_vmx *vmx = to_vmx(vcpu);
@@ -7752,7 +7752,7 @@ static int vmx_enter_smm(struct kvm_vcpu *vcpu, char *smstate)
return 0;
}
-static int vmx_leave_smm(struct kvm_vcpu *vcpu, const char *smstate)
+static int vmx_leave_smm(struct kvm_vcpu *vcpu, const union kvm_smram *smram)
{
struct vcpu_vmx *vmx = to_vmx(vcpu);
int ret;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 8e6e85720242..ebd4315080cd 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -7943,9 +7943,9 @@ static void emulator_exiting_smm(struct x86_emulate_ctxt *ctxt)
}
static int emulator_leave_smm(struct x86_emulate_ctxt *ctxt,
- const char *smstate)
+ const union kvm_smram *smram)
{
- return static_call(kvm_x86_leave_smm)(emul_to_vcpu(ctxt), smstate);
+ return static_call(kvm_x86_leave_smm)(emul_to_vcpu(ctxt), smram);
}
static void emulator_triple_fault(struct x86_emulate_ctxt *ctxt)
@@ -9872,25 +9872,25 @@ static void enter_smm(struct kvm_vcpu *vcpu)
struct kvm_segment cs, ds;
struct desc_ptr dt;
unsigned long cr0;
- char buf[512];
+ union kvm_smram smram;
- memset(buf, 0, 512);
+ memset(smram.bytes, 0, sizeof(smram.bytes));
#ifdef CONFIG_X86_64
if (guest_cpuid_has(vcpu, X86_FEATURE_LM))
- enter_smm_save_state_64(vcpu, buf);
+ enter_smm_save_state_64(vcpu, (char *)&smram);
else
#endif
- enter_smm_save_state_32(vcpu, buf);
+ enter_smm_save_state_32(vcpu, (char *)&smram);
/*
* Give enter_smm() a chance to make ISA-specific changes to the vCPU
* state (e.g. leave guest mode) after we've saved the state into the
* SMM state-save area.
*/
- static_call(kvm_x86_enter_smm)(vcpu, buf);
+ static_call(kvm_x86_enter_smm)(vcpu, &smram);
kvm_smm_changed(vcpu, true);
- kvm_vcpu_write_guest(vcpu, vcpu->arch.smbase + 0xfe00, buf, sizeof(buf));
+ kvm_vcpu_write_guest(vcpu, vcpu->arch.smbase + 0xfe00, &smram, sizeof(smram));
if (static_call(kvm_x86_get_nmi_mask)(vcpu))
vcpu->arch.hflags |= HF_SMM_INSIDE_NMI_MASK;
@@ -0,0 +1,268 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <mlevitsk@redhat.com>
Date: Wed, 3 Aug 2022 18:50:07 +0300
Subject: [PATCH] KVM: x86: emulator/smm: use smram struct for 32 bit smram
load/restore
Use kvm_smram_state_32 struct to save/restore 32 bit SMM state
(used when X86_FEATURE_LM is not present in the guest CPUID).
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kvm/emulate.c | 81 +++++++++++++++---------------------------
arch/x86/kvm/x86.c | 75 +++++++++++++++++---------------------
2 files changed, 60 insertions(+), 96 deletions(-)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 66fb9420842c..aa60533d9d29 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2359,25 +2359,17 @@ static void rsm_set_desc_flags(struct desc_struct *desc, u32 flags)
desc->type = (flags >> 8) & 15;
}
-static int rsm_load_seg_32(struct x86_emulate_ctxt *ctxt, const char *smstate,
+static void rsm_load_seg_32(struct x86_emulate_ctxt *ctxt,
+ const struct kvm_smm_seg_state_32 *state,
+ u16 selector,
int n)
{
struct desc_struct desc;
- int offset;
- u16 selector;
-
- selector = GET_SMSTATE(u32, smstate, 0x7fa8 + n * 4);
-
- if (n < 3)
- offset = 0x7f84 + n * 12;
- else
- offset = 0x7f2c + (n - 3) * 12;
- set_desc_base(&desc, GET_SMSTATE(u32, smstate, offset + 8));
- set_desc_limit(&desc, GET_SMSTATE(u32, smstate, offset + 4));
- rsm_set_desc_flags(&desc, GET_SMSTATE(u32, smstate, offset));
+ set_desc_base(&desc, state->base);
+ set_desc_limit(&desc, state->limit);
+ rsm_set_desc_flags(&desc, state->flags);
ctxt->ops->set_segment(ctxt, selector, &desc, 0, n);
- return X86EMUL_CONTINUE;
}
#ifdef CONFIG_X86_64
@@ -2448,63 +2440,46 @@ static int rsm_enter_protected_mode(struct x86_emulate_ctxt *ctxt,
}
static int rsm_load_state_32(struct x86_emulate_ctxt *ctxt,
- const char *smstate)
+ const struct kvm_smram_state_32 *smstate)
{
- struct desc_struct desc;
struct desc_ptr dt;
- u16 selector;
- u32 val, cr0, cr3, cr4;
int i;
- cr0 = GET_SMSTATE(u32, smstate, 0x7ffc);
- cr3 = GET_SMSTATE(u32, smstate, 0x7ff8);
- ctxt->eflags = GET_SMSTATE(u32, smstate, 0x7ff4) | X86_EFLAGS_FIXED;
- ctxt->_eip = GET_SMSTATE(u32, smstate, 0x7ff0);
+ ctxt->eflags = smstate->eflags | X86_EFLAGS_FIXED;
+ ctxt->_eip = smstate->eip;
for (i = 0; i < 8; i++)
- *reg_write(ctxt, i) = GET_SMSTATE(u32, smstate, 0x7fd0 + i * 4);
-
- val = GET_SMSTATE(u32, smstate, 0x7fcc);
+ *reg_write(ctxt, i) = smstate->gprs[i];
- if (ctxt->ops->set_dr(ctxt, 6, val))
+ if (ctxt->ops->set_dr(ctxt, 6, smstate->dr6))
return X86EMUL_UNHANDLEABLE;
-
- val = GET_SMSTATE(u32, smstate, 0x7fc8);
-
- if (ctxt->ops->set_dr(ctxt, 7, val))
+ if (ctxt->ops->set_dr(ctxt, 7, smstate->dr7))
return X86EMUL_UNHANDLEABLE;
- selector = GET_SMSTATE(u32, smstate, 0x7fc4);
- set_desc_base(&desc, GET_SMSTATE(u32, smstate, 0x7f64));
- set_desc_limit(&desc, GET_SMSTATE(u32, smstate, 0x7f60));
- rsm_set_desc_flags(&desc, GET_SMSTATE(u32, smstate, 0x7f5c));
- ctxt->ops->set_segment(ctxt, selector, &desc, 0, VCPU_SREG_TR);
+ rsm_load_seg_32(ctxt, &smstate->tr, smstate->tr_sel, VCPU_SREG_TR);
+ rsm_load_seg_32(ctxt, &smstate->ldtr, smstate->ldtr_sel, VCPU_SREG_LDTR);
- selector = GET_SMSTATE(u32, smstate, 0x7fc0);
- set_desc_base(&desc, GET_SMSTATE(u32, smstate, 0x7f80));
- set_desc_limit(&desc, GET_SMSTATE(u32, smstate, 0x7f7c));
- rsm_set_desc_flags(&desc, GET_SMSTATE(u32, smstate, 0x7f78));
- ctxt->ops->set_segment(ctxt, selector, &desc, 0, VCPU_SREG_LDTR);
- dt.address = GET_SMSTATE(u32, smstate, 0x7f74);
- dt.size = GET_SMSTATE(u32, smstate, 0x7f70);
+ dt.address = smstate->gdtr.base;
+ dt.size = smstate->gdtr.limit;
ctxt->ops->set_gdt(ctxt, &dt);
- dt.address = GET_SMSTATE(u32, smstate, 0x7f58);
- dt.size = GET_SMSTATE(u32, smstate, 0x7f54);
+ dt.address = smstate->idtr.base;
+ dt.size = smstate->idtr.limit;
ctxt->ops->set_idt(ctxt, &dt);
- for (i = 0; i < 6; i++) {
- int r = rsm_load_seg_32(ctxt, smstate, i);
- if (r != X86EMUL_CONTINUE)
- return r;
- }
+ rsm_load_seg_32(ctxt, &smstate->es, smstate->es_sel, VCPU_SREG_ES);
+ rsm_load_seg_32(ctxt, &smstate->cs, smstate->cs_sel, VCPU_SREG_CS);
+ rsm_load_seg_32(ctxt, &smstate->ss, smstate->ss_sel, VCPU_SREG_SS);
- cr4 = GET_SMSTATE(u32, smstate, 0x7f14);
+ rsm_load_seg_32(ctxt, &smstate->ds, smstate->ds_sel, VCPU_SREG_DS);
+ rsm_load_seg_32(ctxt, &smstate->fs, smstate->fs_sel, VCPU_SREG_FS);
+ rsm_load_seg_32(ctxt, &smstate->gs, smstate->gs_sel, VCPU_SREG_GS);
- ctxt->ops->set_smbase(ctxt, GET_SMSTATE(u32, smstate, 0x7ef8));
+ ctxt->ops->set_smbase(ctxt, smstate->smbase);
- return rsm_enter_protected_mode(ctxt, cr0, cr3, cr4);
+ return rsm_enter_protected_mode(ctxt, smstate->cr0,
+ smstate->cr3, smstate->cr4);
}
#ifdef CONFIG_X86_64
@@ -2651,7 +2626,7 @@ static int em_rsm(struct x86_emulate_ctxt *ctxt)
ret = rsm_load_state_64(ctxt, (const char *)&smram);
else
#endif
- ret = rsm_load_state_32(ctxt, (const char *)&smram);
+ ret = rsm_load_state_32(ctxt, &smram.smram32);
if (ret != X86EMUL_CONTINUE)
goto emulate_shutdown;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ebd4315080cd..87c8021e542c 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -9726,22 +9726,18 @@ static u32 enter_smm_get_segment_flags(struct kvm_segment *seg)
return flags;
}
-static void enter_smm_save_seg_32(struct kvm_vcpu *vcpu, char *buf, int n)
+static void enter_smm_save_seg_32(struct kvm_vcpu *vcpu,
+ struct kvm_smm_seg_state_32 *state,
+ u32 *selector,
+ int n)
{
struct kvm_segment seg;
- int offset;
kvm_get_segment(vcpu, &seg, n);
- put_smstate(u32, buf, 0x7fa8 + n * 4, seg.selector);
-
- if (n < 3)
- offset = 0x7f84 + n * 12;
- else
- offset = 0x7f2c + (n - 3) * 12;
-
- put_smstate(u32, buf, offset + 8, seg.base);
- put_smstate(u32, buf, offset + 4, seg.limit);
- put_smstate(u32, buf, offset, enter_smm_get_segment_flags(&seg));
+ *selector = seg.selector;
+ state->base = seg.base;
+ state->limit = seg.limit;
+ state->flags = enter_smm_get_segment_flags(&seg);
}
#ifdef CONFIG_X86_64
@@ -9762,54 +9758,47 @@ static void enter_smm_save_seg_64(struct kvm_vcpu *vcpu, char *buf, int n)
}
#endif
-static void enter_smm_save_state_32(struct kvm_vcpu *vcpu, char *buf)
+static void enter_smm_save_state_32(struct kvm_vcpu *vcpu, struct kvm_smram_state_32 *smram)
{
struct desc_ptr dt;
- struct kvm_segment seg;
unsigned long val;
int i;
- put_smstate(u32, buf, 0x7ffc, kvm_read_cr0(vcpu));
- put_smstate(u32, buf, 0x7ff8, kvm_read_cr3(vcpu));
- put_smstate(u32, buf, 0x7ff4, kvm_get_rflags(vcpu));
- put_smstate(u32, buf, 0x7ff0, kvm_rip_read(vcpu));
+ smram->cr0 = kvm_read_cr0(vcpu);
+ smram->cr3 = kvm_read_cr3(vcpu);
+ smram->eflags = kvm_get_rflags(vcpu);
+ smram->eip = kvm_rip_read(vcpu);
for (i = 0; i < 8; i++)
- put_smstate(u32, buf, 0x7fd0 + i * 4, kvm_register_read_raw(vcpu, i));
+ smram->gprs[i] = kvm_register_read_raw(vcpu, i);
kvm_get_dr(vcpu, 6, &val);
- put_smstate(u32, buf, 0x7fcc, (u32)val);
+ smram->dr6 = (u32)val;
kvm_get_dr(vcpu, 7, &val);
- put_smstate(u32, buf, 0x7fc8, (u32)val);
+ smram->dr7 = (u32)val;
- kvm_get_segment(vcpu, &seg, VCPU_SREG_TR);
- put_smstate(u32, buf, 0x7fc4, seg.selector);
- put_smstate(u32, buf, 0x7f64, seg.base);
- put_smstate(u32, buf, 0x7f60, seg.limit);
- put_smstate(u32, buf, 0x7f5c, enter_smm_get_segment_flags(&seg));
-
- kvm_get_segment(vcpu, &seg, VCPU_SREG_LDTR);
- put_smstate(u32, buf, 0x7fc0, seg.selector);
- put_smstate(u32, buf, 0x7f80, seg.base);
- put_smstate(u32, buf, 0x7f7c, seg.limit);
- put_smstate(u32, buf, 0x7f78, enter_smm_get_segment_flags(&seg));
+ enter_smm_save_seg_32(vcpu, &smram->tr, &smram->tr_sel, VCPU_SREG_TR);
+ enter_smm_save_seg_32(vcpu, &smram->ldtr, &smram->ldtr_sel, VCPU_SREG_LDTR);
static_call(kvm_x86_get_gdt)(vcpu, &dt);
- put_smstate(u32, buf, 0x7f74, dt.address);
- put_smstate(u32, buf, 0x7f70, dt.size);
+ smram->gdtr.base = dt.address;
+ smram->gdtr.limit = dt.size;
static_call(kvm_x86_get_idt)(vcpu, &dt);
- put_smstate(u32, buf, 0x7f58, dt.address);
- put_smstate(u32, buf, 0x7f54, dt.size);
+ smram->idtr.base = dt.address;
+ smram->idtr.limit = dt.size;
- for (i = 0; i < 6; i++)
- enter_smm_save_seg_32(vcpu, buf, i);
+ enter_smm_save_seg_32(vcpu, &smram->es, &smram->es_sel, VCPU_SREG_ES);
+ enter_smm_save_seg_32(vcpu, &smram->cs, &smram->cs_sel, VCPU_SREG_CS);
+ enter_smm_save_seg_32(vcpu, &smram->ss, &smram->ss_sel, VCPU_SREG_SS);
- put_smstate(u32, buf, 0x7f14, kvm_read_cr4(vcpu));
+ enter_smm_save_seg_32(vcpu, &smram->ds, &smram->ds_sel, VCPU_SREG_DS);
+ enter_smm_save_seg_32(vcpu, &smram->fs, &smram->fs_sel, VCPU_SREG_FS);
+ enter_smm_save_seg_32(vcpu, &smram->gs, &smram->gs_sel, VCPU_SREG_GS);
- /* revision id */
- put_smstate(u32, buf, 0x7efc, 0x00020000);
- put_smstate(u32, buf, 0x7ef8, vcpu->arch.smbase);
+ smram->cr4 = kvm_read_cr4(vcpu);
+ smram->smm_revision = 0x00020000;
+ smram->smbase = vcpu->arch.smbase;
}
#ifdef CONFIG_X86_64
@@ -9880,7 +9869,7 @@ static void enter_smm(struct kvm_vcpu *vcpu)
enter_smm_save_state_64(vcpu, (char *)&smram);
else
#endif
- enter_smm_save_state_32(vcpu, (char *)&smram);
+ enter_smm_save_state_32(vcpu, &smram.smram32);
/*
* Give enter_smm() a chance to make ISA-specific changes to the vCPU
@@ -0,0 +1,279 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <mlevitsk@redhat.com>
Date: Wed, 3 Aug 2022 18:50:08 +0300
Subject: [PATCH] KVM: x86: emulator/smm: use smram struct for 64 bit smram
load/restore
Use kvm_smram_state_64 struct to save/restore the 64 bit SMM state
(used when X86_FEATURE_LM is present in the guest CPUID,
regardless of 32-bitness of the guest).
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kvm/emulate.c | 88 ++++++++++++++----------------------------
arch/x86/kvm/x86.c | 75 ++++++++++++++++-------------------
2 files changed, 62 insertions(+), 101 deletions(-)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index aa60533d9d29..5480b23112e3 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2373,24 +2373,16 @@ static void rsm_load_seg_32(struct x86_emulate_ctxt *ctxt,
}
#ifdef CONFIG_X86_64
-static int rsm_load_seg_64(struct x86_emulate_ctxt *ctxt, const char *smstate,
- int n)
+static void rsm_load_seg_64(struct x86_emulate_ctxt *ctxt,
+ const struct kvm_smm_seg_state_64 *state,
+ int n)
{
struct desc_struct desc;
- int offset;
- u16 selector;
- u32 base3;
-
- offset = 0x7e00 + n * 16;
-
- selector = GET_SMSTATE(u16, smstate, offset);
- rsm_set_desc_flags(&desc, GET_SMSTATE(u16, smstate, offset + 2) << 8);
- set_desc_limit(&desc, GET_SMSTATE(u32, smstate, offset + 4));
- set_desc_base(&desc, GET_SMSTATE(u32, smstate, offset + 8));
- base3 = GET_SMSTATE(u32, smstate, offset + 12);
- ctxt->ops->set_segment(ctxt, selector, &desc, base3, n);
- return X86EMUL_CONTINUE;
+ rsm_set_desc_flags(&desc, state->attributes << 8);
+ set_desc_limit(&desc, state->limit);
+ set_desc_base(&desc, (u32)state->base);
+ ctxt->ops->set_segment(ctxt, state->selector, &desc, state->base >> 32, n);
}
#endif
@@ -2484,71 +2476,49 @@ static int rsm_load_state_32(struct x86_emulate_ctxt *ctxt,
#ifdef CONFIG_X86_64
static int rsm_load_state_64(struct x86_emulate_ctxt *ctxt,
- const char *smstate)
+ const struct kvm_smram_state_64 *smstate)
{
- struct desc_struct desc;
struct desc_ptr dt;
- u64 val, cr0, cr3, cr4;
- u32 base3;
- u16 selector;
int i, r;
for (i = 0; i < 16; i++)
- *reg_write(ctxt, i) = GET_SMSTATE(u64, smstate, 0x7ff8 - i * 8);
+ *reg_write(ctxt, i) = smstate->gprs[15 - i];
- ctxt->_eip = GET_SMSTATE(u64, smstate, 0x7f78);
- ctxt->eflags = GET_SMSTATE(u32, smstate, 0x7f70) | X86_EFLAGS_FIXED;
+ ctxt->_eip = smstate->rip;
+ ctxt->eflags = smstate->rflags | X86_EFLAGS_FIXED;
- val = GET_SMSTATE(u64, smstate, 0x7f68);
-
- if (ctxt->ops->set_dr(ctxt, 6, val))
+ if (ctxt->ops->set_dr(ctxt, 6, smstate->dr6))
return X86EMUL_UNHANDLEABLE;
-
- val = GET_SMSTATE(u64, smstate, 0x7f60);
-
- if (ctxt->ops->set_dr(ctxt, 7, val))
+ if (ctxt->ops->set_dr(ctxt, 7, smstate->dr7))
return X86EMUL_UNHANDLEABLE;
- cr0 = GET_SMSTATE(u64, smstate, 0x7f58);
- cr3 = GET_SMSTATE(u64, smstate, 0x7f50);
- cr4 = GET_SMSTATE(u64, smstate, 0x7f48);
- ctxt->ops->set_smbase(ctxt, GET_SMSTATE(u32, smstate, 0x7f00));
- val = GET_SMSTATE(u64, smstate, 0x7ed0);
+ ctxt->ops->set_smbase(ctxt, smstate->smbase);
- if (ctxt->ops->set_msr(ctxt, MSR_EFER, val & ~EFER_LMA))
+ if (ctxt->ops->set_msr(ctxt, MSR_EFER, smstate->efer & ~EFER_LMA))
return X86EMUL_UNHANDLEABLE;
- selector = GET_SMSTATE(u32, smstate, 0x7e90);
- rsm_set_desc_flags(&desc, GET_SMSTATE(u32, smstate, 0x7e92) << 8);
- set_desc_limit(&desc, GET_SMSTATE(u32, smstate, 0x7e94));
- set_desc_base(&desc, GET_SMSTATE(u32, smstate, 0x7e98));
- base3 = GET_SMSTATE(u32, smstate, 0x7e9c);
- ctxt->ops->set_segment(ctxt, selector, &desc, base3, VCPU_SREG_TR);
+ rsm_load_seg_64(ctxt, &smstate->tr, VCPU_SREG_TR);
- dt.size = GET_SMSTATE(u32, smstate, 0x7e84);
- dt.address = GET_SMSTATE(u64, smstate, 0x7e88);
+ dt.size = smstate->idtr.limit;
+ dt.address = smstate->idtr.base;
ctxt->ops->set_idt(ctxt, &dt);
- selector = GET_SMSTATE(u32, smstate, 0x7e70);
- rsm_set_desc_flags(&desc, GET_SMSTATE(u32, smstate, 0x7e72) << 8);
- set_desc_limit(&desc, GET_SMSTATE(u32, smstate, 0x7e74));
- set_desc_base(&desc, GET_SMSTATE(u32, smstate, 0x7e78));
- base3 = GET_SMSTATE(u32, smstate, 0x7e7c);
- ctxt->ops->set_segment(ctxt, selector, &desc, base3, VCPU_SREG_LDTR);
+ rsm_load_seg_64(ctxt, &smstate->ldtr, VCPU_SREG_LDTR);
- dt.size = GET_SMSTATE(u32, smstate, 0x7e64);
- dt.address = GET_SMSTATE(u64, smstate, 0x7e68);
+ dt.size = smstate->gdtr.limit;
+ dt.address = smstate->gdtr.base;
ctxt->ops->set_gdt(ctxt, &dt);
- r = rsm_enter_protected_mode(ctxt, cr0, cr3, cr4);
+ r = rsm_enter_protected_mode(ctxt, smstate->cr0, smstate->cr3, smstate->cr4);
if (r != X86EMUL_CONTINUE)
return r;
- for (i = 0; i < 6; i++) {
- r = rsm_load_seg_64(ctxt, smstate, i);
- if (r != X86EMUL_CONTINUE)
- return r;
- }
+ rsm_load_seg_64(ctxt, &smstate->es, VCPU_SREG_ES);
+ rsm_load_seg_64(ctxt, &smstate->cs, VCPU_SREG_CS);
+ rsm_load_seg_64(ctxt, &smstate->ss, VCPU_SREG_SS);
+ rsm_load_seg_64(ctxt, &smstate->ds, VCPU_SREG_DS);
+ rsm_load_seg_64(ctxt, &smstate->fs, VCPU_SREG_FS);
+ rsm_load_seg_64(ctxt, &smstate->gs, VCPU_SREG_GS);
return X86EMUL_CONTINUE;
}
@@ -2623,7 +2593,7 @@ static int em_rsm(struct x86_emulate_ctxt *ctxt)
#ifdef CONFIG_X86_64
if (emulator_has_longmode(ctxt))
- ret = rsm_load_state_64(ctxt, (const char *)&smram);
+ ret = rsm_load_state_64(ctxt, &smram.smram64);
else
#endif
ret = rsm_load_state_32(ctxt, &smram.smram32);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 87c8021e542c..ada063ab8ae9 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -9741,20 +9741,17 @@ static void enter_smm_save_seg_32(struct kvm_vcpu *vcpu,
}
#ifdef CONFIG_X86_64
-static void enter_smm_save_seg_64(struct kvm_vcpu *vcpu, char *buf, int n)
+static void enter_smm_save_seg_64(struct kvm_vcpu *vcpu,
+ struct kvm_smm_seg_state_64 *state,
+ int n)
{
struct kvm_segment seg;
- int offset;
- u16 flags;
kvm_get_segment(vcpu, &seg, n);
- offset = 0x7e00 + n * 16;
-
- flags = enter_smm_get_segment_flags(&seg) >> 8;
- put_smstate(u16, buf, offset, seg.selector);
- put_smstate(u16, buf, offset + 2, flags);
- put_smstate(u32, buf, offset + 4, seg.limit);
- put_smstate(u64, buf, offset + 8, seg.base);
+ state->selector = seg.selector;
+ state->attributes = enter_smm_get_segment_flags(&seg) >> 8;
+ state->limit = seg.limit;
+ state->base = seg.base;
}
#endif
@@ -9802,57 +9799,51 @@ static void enter_smm_save_state_32(struct kvm_vcpu *vcpu, struct kvm_smram_stat
}
#ifdef CONFIG_X86_64
-static void enter_smm_save_state_64(struct kvm_vcpu *vcpu, char *buf)
+static void enter_smm_save_state_64(struct kvm_vcpu *vcpu, struct kvm_smram_state_64 *smram)
{
struct desc_ptr dt;
- struct kvm_segment seg;
unsigned long val;
int i;
for (i = 0; i < 16; i++)
- put_smstate(u64, buf, 0x7ff8 - i * 8, kvm_register_read_raw(vcpu, i));
+ smram->gprs[15 - i] = kvm_register_read_raw(vcpu, i);
+
+ smram->rip = kvm_rip_read(vcpu);
+ smram->rflags = kvm_get_rflags(vcpu);
- put_smstate(u64, buf, 0x7f78, kvm_rip_read(vcpu));
- put_smstate(u32, buf, 0x7f70, kvm_get_rflags(vcpu));
kvm_get_dr(vcpu, 6, &val);
- put_smstate(u64, buf, 0x7f68, val);
+ smram->dr6 = val;
kvm_get_dr(vcpu, 7, &val);
- put_smstate(u64, buf, 0x7f60, val);
-
- put_smstate(u64, buf, 0x7f58, kvm_read_cr0(vcpu));
- put_smstate(u64, buf, 0x7f50, kvm_read_cr3(vcpu));
- put_smstate(u64, buf, 0x7f48, kvm_read_cr4(vcpu));
+ smram->dr7 = val;
- put_smstate(u32, buf, 0x7f00, vcpu->arch.smbase);
+ smram->cr0 = kvm_read_cr0(vcpu);
+ smram->cr3 = kvm_read_cr3(vcpu);
+ smram->cr4 = kvm_read_cr4(vcpu);
- /* revision id */
- put_smstate(u32, buf, 0x7efc, 0x00020064);
+ smram->smbase = vcpu->arch.smbase;
+ smram->smm_revison = 0x00020064;
- put_smstate(u64, buf, 0x7ed0, vcpu->arch.efer);
+ smram->efer = vcpu->arch.efer;
- kvm_get_segment(vcpu, &seg, VCPU_SREG_TR);
- put_smstate(u16, buf, 0x7e90, seg.selector);
- put_smstate(u16, buf, 0x7e92, enter_smm_get_segment_flags(&seg) >> 8);
- put_smstate(u32, buf, 0x7e94, seg.limit);
- put_smstate(u64, buf, 0x7e98, seg.base);
+ enter_smm_save_seg_64(vcpu, &smram->tr, VCPU_SREG_TR);
static_call(kvm_x86_get_idt)(vcpu, &dt);
- put_smstate(u32, buf, 0x7e84, dt.size);
- put_smstate(u64, buf, 0x7e88, dt.address);
+ smram->idtr.limit = dt.size;
+ smram->idtr.base = dt.address;
- kvm_get_segment(vcpu, &seg, VCPU_SREG_LDTR);
- put_smstate(u16, buf, 0x7e70, seg.selector);
- put_smstate(u16, buf, 0x7e72, enter_smm_get_segment_flags(&seg) >> 8);
- put_smstate(u32, buf, 0x7e74, seg.limit);
- put_smstate(u64, buf, 0x7e78, seg.base);
+ enter_smm_save_seg_64(vcpu, &smram->ldtr, VCPU_SREG_LDTR);
static_call(kvm_x86_get_gdt)(vcpu, &dt);
- put_smstate(u32, buf, 0x7e64, dt.size);
- put_smstate(u64, buf, 0x7e68, dt.address);
+ smram->gdtr.limit = dt.size;
+ smram->gdtr.base = dt.address;
- for (i = 0; i < 6; i++)
- enter_smm_save_seg_64(vcpu, buf, i);
+ enter_smm_save_seg_64(vcpu, &smram->es, VCPU_SREG_ES);
+ enter_smm_save_seg_64(vcpu, &smram->cs, VCPU_SREG_CS);
+ enter_smm_save_seg_64(vcpu, &smram->ss, VCPU_SREG_SS);
+ enter_smm_save_seg_64(vcpu, &smram->ds, VCPU_SREG_DS);
+ enter_smm_save_seg_64(vcpu, &smram->fs, VCPU_SREG_FS);
+ enter_smm_save_seg_64(vcpu, &smram->gs, VCPU_SREG_GS);
}
#endif
@@ -9866,7 +9857,7 @@ static void enter_smm(struct kvm_vcpu *vcpu)
memset(smram.bytes, 0, sizeof(smram.bytes));
#ifdef CONFIG_X86_64
if (guest_cpuid_has(vcpu, X86_FEATURE_LM))
- enter_smm_save_state_64(vcpu, (char *)&smram);
+ enter_smm_save_state_64(vcpu, &smram.smram64);
else
#endif
enter_smm_save_state_32(vcpu, &smram.smram32);
@@ -0,0 +1,98 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <mlevitsk@redhat.com>
Date: Wed, 3 Aug 2022 18:50:09 +0300
Subject: [PATCH] KVM: x86: SVM: use smram structs
This removes the last user of put_smstate/GET_SMSTATE so
remove these functions as well.
Also add a sanity check that we don't attempt to enter the SMM
on non long mode capable guest CPU with a running nested guest.
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/include/asm/kvm_host.h | 6 ------
arch/x86/kvm/svm/svm.c | 21 ++++++---------------
2 files changed, 6 insertions(+), 21 deletions(-)
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index cff765545738..143cd0b5d593 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -2044,12 +2044,6 @@ static inline int kvm_cpu_get_apicid(int mps_cpu)
#endif
}
-#define put_smstate(type, buf, offset, val) \
- *(type *)((buf) + (offset) - 0x7e00) = val
-
-#define GET_SMSTATE(type, buf, offset) \
- (*(type *)((buf) + (offset) - 0x7e00))
-
int kvm_cpu_dirty_log_size(void);
int memslot_rmap_alloc(struct kvm_memory_slot *slot, unsigned long npages);
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index f7f58c4cf341..20f90c596d6a 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -4314,15 +4314,11 @@ static int svm_enter_smm(struct kvm_vcpu *vcpu, union kvm_smram *smram)
struct kvm_host_map map_save;
int ret;
- char *smstate = (char *)smram;
-
if (!is_guest_mode(vcpu))
return 0;
- /* FED8h - SVM Guest */
- put_smstate(u64, smstate, 0x7ed8, 1);
- /* FEE0h - SVM Guest VMCB Physical Address */
- put_smstate(u64, smstate, 0x7ee0, svm->nested.vmcb12_gpa);
+ smram->smram64.svm_guest_flag = 1;
+ smram->smram64.svm_guest_vmcb_gpa = svm->nested.vmcb12_gpa;
svm->vmcb->save.rax = vcpu->arch.regs[VCPU_REGS_RAX];
svm->vmcb->save.rsp = vcpu->arch.regs[VCPU_REGS_RSP];
@@ -4361,28 +4357,23 @@ static int svm_leave_smm(struct kvm_vcpu *vcpu, const union kvm_smram *smram)
{
struct vcpu_svm *svm = to_svm(vcpu);
struct kvm_host_map map, map_save;
- u64 saved_efer, vmcb12_gpa;
struct vmcb *vmcb12;
int ret;
- const char *smstate = (const char *)smram;
-
if (!guest_cpuid_has(vcpu, X86_FEATURE_LM))
return 0;
/* Non-zero if SMI arrived while vCPU was in guest mode. */
- if (!GET_SMSTATE(u64, smstate, 0x7ed8))
+ if (!smram->smram64.svm_guest_flag)
return 0;
if (!guest_cpuid_has(vcpu, X86_FEATURE_SVM))
return 1;
- saved_efer = GET_SMSTATE(u64, smstate, 0x7ed0);
- if (!(saved_efer & EFER_SVME))
+ if (!(smram->smram64.efer & EFER_SVME))
return 1;
- vmcb12_gpa = GET_SMSTATE(u64, smstate, 0x7ee0);
- if (kvm_vcpu_map(vcpu, gpa_to_gfn(vmcb12_gpa), &map) == -EINVAL)
+ if (kvm_vcpu_map(vcpu, gpa_to_gfn(smram->smram64.svm_guest_vmcb_gpa), &map) == -EINVAL)
return 1;
ret = 1;
@@ -4408,7 +4399,7 @@ static int svm_leave_smm(struct kvm_vcpu *vcpu, const union kvm_smram *smram)
vmcb12 = map.hva;
nested_copy_vmcb_control_to_cache(svm, &vmcb12->control);
nested_copy_vmcb_save_to_cache(svm, &vmcb12->save);
- ret = enter_svm_guest_mode(vcpu, vmcb12_gpa, vmcb12, false);
+ ret = enter_svm_guest_mode(vcpu, smram->smram64.svm_guest_vmcb_gpa, vmcb12, false);
if (ret)
goto unmap_save;
@@ -0,0 +1,40 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <mlevitsk@redhat.com>
Date: Wed, 3 Aug 2022 18:50:10 +0300
Subject: [PATCH] KVM: x86: SVM: don't save SVM state to SMRAM when VM is not
long mode capable
When the guest CPUID doesn't have support for long mode, 32 bit SMRAM
layout is used and it has no support for preserving EFER and/or SVM
state.
Note that this isn't relevant to running 32 bit guests on VM which is
long mode capable - such VM can still run 32 bit guests in compatibility
mode.
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kvm/svm/svm.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 20f90c596d6a..c816783737b0 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -4317,6 +4317,15 @@ static int svm_enter_smm(struct kvm_vcpu *vcpu, union kvm_smram *smram)
if (!is_guest_mode(vcpu))
return 0;
+ /*
+ * 32 bit SMRAM format doesn't preserve EFER and SVM state.
+ * SVM should not be enabled by the userspace without marking
+ * the CPU as at least long mode capable.
+ */
+
+ if (!guest_cpuid_has(vcpu, X86_FEATURE_LM))
+ return 1;
+
smram->smram64.svm_guest_flag = 1;
smram->smram64.svm_guest_vmcb_gpa = svm->nested.vmcb12_gpa;
@@ -0,0 +1,180 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <mlevitsk@redhat.com>
Date: Wed, 3 Aug 2022 18:50:11 +0300
Subject: [PATCH] KVM: x86: emulator/smm: preserve interrupt shadow in SMRAM
When #SMI is asserted, the CPU can be in interrupt shadow
due to sti or mov ss.
It is not mandatory in Intel/AMD prm to have the #SMI
blocked during the shadow, and on top of
that, since neither SVM nor VMX has true support for SMI
window, waiting for one instruction would mean single stepping
the guest.
Instead, allow #SMI in this case, but both reset the interrupt
window and stash its value in SMRAM to restore it on exit
from SMM.
This fixes rare failures seen mostly on windows guests on VMX,
when #SMI falls on the sti instruction which mainfest in
VM entry failure due to EFLAGS.IF not being set, but STI interrupt
window still being set in the VMCS.
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kvm/emulate.c | 17 ++++++++++++++---
arch/x86/kvm/kvm_emulate.h | 10 ++++++----
arch/x86/kvm/x86.c | 12 ++++++++++++
3 files changed, 32 insertions(+), 7 deletions(-)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 5480b23112e3..4c9c9844d38f 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2435,7 +2435,7 @@ static int rsm_load_state_32(struct x86_emulate_ctxt *ctxt,
const struct kvm_smram_state_32 *smstate)
{
struct desc_ptr dt;
- int i;
+ int i, r;
ctxt->eflags = smstate->eflags | X86_EFLAGS_FIXED;
ctxt->_eip = smstate->eip;
@@ -2470,8 +2470,16 @@ static int rsm_load_state_32(struct x86_emulate_ctxt *ctxt,
ctxt->ops->set_smbase(ctxt, smstate->smbase);
- return rsm_enter_protected_mode(ctxt, smstate->cr0,
- smstate->cr3, smstate->cr4);
+ r = rsm_enter_protected_mode(ctxt, smstate->cr0,
+ smstate->cr3, smstate->cr4);
+
+ if (r != X86EMUL_CONTINUE)
+ return r;
+
+ ctxt->ops->set_int_shadow(ctxt, 0);
+ ctxt->interruptibility = (u8)smstate->int_shadow;
+
+ return X86EMUL_CONTINUE;
}
#ifdef CONFIG_X86_64
@@ -2520,6 +2528,9 @@ static int rsm_load_state_64(struct x86_emulate_ctxt *ctxt,
rsm_load_seg_64(ctxt, &smstate->fs, VCPU_SREG_FS);
rsm_load_seg_64(ctxt, &smstate->gs, VCPU_SREG_GS);
+ ctxt->ops->set_int_shadow(ctxt, 0);
+ ctxt->interruptibility = (u8)smstate->int_shadow;
+
return X86EMUL_CONTINUE;
}
#endif
diff --git a/arch/x86/kvm/kvm_emulate.h b/arch/x86/kvm/kvm_emulate.h
index 04ac0cef8b57..d5707b3f254c 100644
--- a/arch/x86/kvm/kvm_emulate.h
+++ b/arch/x86/kvm/kvm_emulate.h
@@ -233,6 +233,7 @@ struct x86_emulate_ops {
bool (*guest_has_rdpid)(struct x86_emulate_ctxt *ctxt);
void (*set_nmi_mask)(struct x86_emulate_ctxt *ctxt, bool masked);
+ void (*set_int_shadow)(struct x86_emulate_ctxt *ctxt, u8 shadow);
unsigned (*get_hflags)(struct x86_emulate_ctxt *ctxt);
void (*exiting_smm)(struct x86_emulate_ctxt *ctxt);
@@ -496,7 +497,8 @@ struct kvm_smram_state_32 {
u32 reserved1[62];
u32 smbase;
u32 smm_revision;
- u32 reserved2[5];
+ u32 reserved2[4];
+ u32 int_shadow; /* KVM extension */
u32 cr4; /* CR4 is not present in Intel/AMD SMRAM image */
u32 reserved3[5];
@@ -544,6 +546,7 @@ static inline void __check_smram32_offsets(void)
__CHECK_SMRAM32_OFFSET(smbase, 0xFEF8);
__CHECK_SMRAM32_OFFSET(smm_revision, 0xFEFC);
__CHECK_SMRAM32_OFFSET(reserved2, 0xFF00);
+ __CHECK_SMRAM32_OFFSET(int_shadow, 0xFF10);
__CHECK_SMRAM32_OFFSET(cr4, 0xFF14);
__CHECK_SMRAM32_OFFSET(reserved3, 0xFF18);
__CHECK_SMRAM32_OFFSET(ds, 0xFF2C);
@@ -603,7 +606,7 @@ struct kvm_smram_state_64 {
u64 io_restart_rsi;
u64 io_restart_rdi;
u32 io_restart_dword;
- u32 reserved1;
+ u32 int_shadow;
u8 io_inst_restart;
u8 auto_hlt_restart;
u8 reserved2[6];
@@ -641,7 +644,6 @@ struct kvm_smram_state_64 {
u64 gprs[16]; /* GPRS in a reversed "natural" X86 order (R15/R14/../RCX/RAX.) */
};
-
static inline void __check_smram64_offsets(void)
{
#define __CHECK_SMRAM64_OFFSET(field, offset) \
@@ -662,7 +664,7 @@ static inline void __check_smram64_offsets(void)
__CHECK_SMRAM64_OFFSET(io_restart_rsi, 0xFEB0);
__CHECK_SMRAM64_OFFSET(io_restart_rdi, 0xFEB8);
__CHECK_SMRAM64_OFFSET(io_restart_dword, 0xFEC0);
- __CHECK_SMRAM64_OFFSET(reserved1, 0xFEC4);
+ __CHECK_SMRAM64_OFFSET(int_shadow, 0xFEC4);
__CHECK_SMRAM64_OFFSET(io_inst_restart, 0xFEC8);
__CHECK_SMRAM64_OFFSET(auto_hlt_restart, 0xFEC9);
__CHECK_SMRAM64_OFFSET(reserved2, 0xFECA);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ada063ab8ae9..4050b34806ac 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -7930,6 +7930,11 @@ static void emulator_set_nmi_mask(struct x86_emulate_ctxt *ctxt, bool masked)
static_call(kvm_x86_set_nmi_mask)(emul_to_vcpu(ctxt), masked);
}
+static void emulator_set_int_shadow(struct x86_emulate_ctxt *ctxt, u8 shadow)
+{
+ static_call(kvm_x86_set_interrupt_shadow)(emul_to_vcpu(ctxt), shadow);
+}
+
static unsigned emulator_get_hflags(struct x86_emulate_ctxt *ctxt)
{
return emul_to_vcpu(ctxt)->arch.hflags;
@@ -8001,6 +8006,7 @@ static const struct x86_emulate_ops emulate_ops = {
.guest_has_fxsr = emulator_guest_has_fxsr,
.guest_has_rdpid = emulator_guest_has_rdpid,
.set_nmi_mask = emulator_set_nmi_mask,
+ .set_int_shadow = emulator_set_int_shadow,
.get_hflags = emulator_get_hflags,
.exiting_smm = emulator_exiting_smm,
.leave_smm = emulator_leave_smm,
@@ -9796,6 +9802,8 @@ static void enter_smm_save_state_32(struct kvm_vcpu *vcpu, struct kvm_smram_stat
smram->cr4 = kvm_read_cr4(vcpu);
smram->smm_revision = 0x00020000;
smram->smbase = vcpu->arch.smbase;
+
+ smram->int_shadow = static_call(kvm_x86_get_interrupt_shadow)(vcpu);
}
#ifdef CONFIG_X86_64
@@ -9844,6 +9852,8 @@ static void enter_smm_save_state_64(struct kvm_vcpu *vcpu, struct kvm_smram_stat
enter_smm_save_seg_64(vcpu, &smram->ds, VCPU_SREG_DS);
enter_smm_save_seg_64(vcpu, &smram->fs, VCPU_SREG_FS);
enter_smm_save_seg_64(vcpu, &smram->gs, VCPU_SREG_GS);
+
+ smram->int_shadow = static_call(kvm_x86_get_interrupt_shadow)(vcpu);
}
#endif
@@ -9880,6 +9890,8 @@ static void enter_smm(struct kvm_vcpu *vcpu)
kvm_set_rflags(vcpu, X86_EFLAGS_FIXED);
kvm_rip_write(vcpu, 0x8000);
+ static_call(kvm_x86_set_interrupt_shadow)(vcpu, 0);
+
cr0 = vcpu->arch.cr0 & ~(X86_CR0_PE | X86_CR0_EM | X86_CR0_TS | X86_CR0_PG);
static_call(kvm_x86_set_cr0)(vcpu, cr0);
vcpu->arch.cr0 = cr0;