Compare commits

..

250 Commits

Author SHA1 Message Date
Thomas Lamprecht 3d4f3c6a24 update ABI file for 5.15.158-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-06-10 17:17:45 +02:00
Thomas Lamprecht 1a0a722a6b bump version to 5.15.158-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-06-10 16:56:34 +02:00
Thomas Lamprecht fa0c83e432 rebase patches on top of Ubuntu-5.15.0-115.125
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-06-10 16:55:23 +02:00
Thomas Lamprecht 4514dcd67d update sources to Ubuntu-5.15.0-115.125
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-06-10 16:55:23 +02:00
Thomas Lamprecht 45b7fc9080 update ABI file for 5.15.152-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-04-29 10:31:12 +02:00
Thomas Lamprecht 2c824a5e7e bump version to 5.15.152-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-04-29 09:35:04 +02:00
Thomas Lamprecht 272659029d update sources to Ubuntu-5.15.0-111.121
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-04-29 09:30:59 +02:00
Thomas Lamprecht e2963e6cc7 update ABI file for 5.15.149-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-03-29 16:01:57 +01:00
Thomas Lamprecht 1fd221805f bump version to 5.15.149-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-03-29 15:24:04 +01:00
Thomas Lamprecht c588c66897 update ZFS to 2.1.15
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-03-29 15:23:02 +01:00
Thomas Lamprecht dcb887c2c5 rebase patches on top of Ubuntu-5.15.0-104.114
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-03-29 15:21:30 +01:00
Thomas Lamprecht d7de6e6e73 update sources to Ubuntu-5.15.0-104.114
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-03-29 15:21:30 +01:00
Thomas Lamprecht a8bae8aa72 update ABI file for 5.15.143-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-02-08 19:42:36 +01:00
Thomas Lamprecht 71041494f8 bump version to 5.15.143-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-02-08 19:12:36 +01:00
Thomas Lamprecht 9f1d723ebd rebase patches on top of Ubuntu-5.15.0-100.110
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-02-08 18:49:26 +01:00
Thomas Lamprecht 2052f312a5 update sources to Ubuntu-5.15.0-100.110
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-02-08 18:49:26 +01:00
Thomas Lamprecht 1c369eca63 update ABI file for 5.15.136-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-01-23 13:53:02 +01:00
Thomas Lamprecht 9efb073fd8 bump version to 5.15.136-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-01-23 12:10:12 +01:00
Thomas Lamprecht 37677d8bb5 rebase patches on top of Ubuntu-5.15.0-94.104
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-01-23 12:09:08 +01:00
Thomas Lamprecht 680c0ca559 update sources to Ubuntu-5.15.0-94.104
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-01-23 12:09:08 +01:00
Thomas Lamprecht a73877a5f9 update ABI file for 5.15.131-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 15:08:01 +01:00
Thomas Lamprecht 5754e79c6c bump version to 5.15.131-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 14:43:48 +01:00
Thomas Lamprecht fb7fef1095 update ZFS to 2.1.14
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 14:42:15 +01:00
Thomas Lamprecht 501d739518 bump version to 5.15.131-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-14 12:34:01 +01:00
Thomas Lamprecht 5979e3a827 update sources to Ubuntu-5.15.0-91.101
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-14 12:32:06 +01:00
Thomas Lamprecht dcbc11ff68 update ABI file for 5.15.131-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-09 11:17:33 +01:00
Thomas Lamprecht a75b088f66 bump version to 5.15.131-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-09 10:30:04 +01:00
Thomas Lamprecht dec49aeaec rebase patches on top of Ubuntu-5.15.0-90.100
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-09 10:28:40 +01:00
Thomas Lamprecht 9926a46d5e update sources to Ubuntu-5.15.0-90.100
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-09 10:28:40 +01:00
Thomas Lamprecht 262409de1f update ABI file for 5.15.126-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-05 15:05:37 +02:00
Thomas Lamprecht de08dee85b update firmware list
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-05 15:01:41 +02:00
Thomas Lamprecht 68cfd2a11c bump version to 5.15.126-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-03 19:24:18 +02:00
Thomas Lamprecht 689d5e3eb2 rebase patches on top of Ubuntu-5.15.0-88.98
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-03 19:22:23 +02:00
Thomas Lamprecht 65409d8b4f update sources to Ubuntu-5.15.0-88.98
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-03 19:22:23 +02:00
Thomas Lamprecht e08cd8b881 update ABI file for 5.15.116-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-29 16:59:35 +02:00
Thomas Lamprecht 7552e7acfe bump version to 5.15.116-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-29 16:34:22 +02:00
Thomas Lamprecht 3bf225e636 update sources to Ubuntu-5.15.0-82.91
To disable CONFIG_GDS_FORCE_MITIGATION again

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-29 15:44:52 +02:00
Thomas Lamprecht 8c992dd41c refresh patches for current submodule state
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-29 15:41:11 +02:00
Thomas Lamprecht 067446a439 Merge remote-tracking branch 'origin/pve-kernel-5.15' into pve-kernel-5.15
To fix the missing push from the previous 5.15.108-2 build that fixed
zenbleed

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-29 15:32:00 +02:00
Wolfgang Bumiller c70fc5f9bb update ABI file for 5.15.111-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-08-18 12:55:53 +02:00
Wolfgang Bumiller 0c37b18017 bump version to 5.15.111-1
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-08-18 10:57:25 +02:00
Wolfgang Bumiller 06844ff615 d/control: depend on python3-dev
Fixes python3-config not being found when building with sbuild.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-08-18 10:54:45 +02:00
Stoiko Ivanov 0f9bca9cf7 update sources to Ubuntu-5.15.0-82.91
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-08-18 09:34:10 +02:00
Thomas Lamprecht 90bee66e85 bump version to 5.15.108-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-07-20 12:08:33 +02:00
Thomas Lamprecht 237da8e53e backport Zenbleed stop-gap fix CVE-2023-20593
the actual fix is the microcode update, but this is a stop-gap (with
a performance penalty) setting a chicken bit on affected CPUs that do
not have the new enough microcode loaded, disabling some features.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-07-20 12:08:33 +02:00
Thomas Lamprecht 2914b5a244 buildsys: set correct upload deb packages
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-19 16:09:04 +02:00
Thomas Lamprecht 873b9ad148 update ABI file for 5.15.108-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-19 16:04:32 +02:00
Thomas Lamprecht 7af7a135d4 bump version to 5.15.108-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 46f53dd76c buildsys: use annotations script to generate the base kernel build config
Since ubuntu-kernel commit 7ebda4aca852 ("UBUNTU: [Config] migrate
all configs into annotations") the Jammy based kernel now also
dropped the pre-generated config snippets in favor of their
annotation system.

Do as for Lunar, adapt from commit 880dc10 ("buildsys: use
annotations script to generate the base kernel build config")

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 6f85177a4f update kernel submodule to Ubuntu-5.15.0-77.84
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 97585a6faf buildsys: derive upload dist automatically
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 3ac9042330 d/control: drop useless dependency on already essential coreutils
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 8f874b75fb buildsys: add sbuild convenience target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 5134a37d2f d/rules: honor the parallel build-option
no fun to build the kernel with just a single job at the same time,
which happens e.g., in an sbuild environment.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 601f4bbffd d/source: ignore some false-positive lintian errors
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 3a41693627 d/control: add missing ${misc:Depends}
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 9f9078be64 d/control: drop build-dependency for perl-module
lintian rightfully errors out on this one, makes no sense to depend
on an implementation detail of the perl packaging ecosystem.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 22f515872d d/control: add missing Standards-Version field
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 91ea919ee0 d/control: allow alternative initramfs tools
like dracut

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht af277c0560 d/control: wrap-and-sort -tkn
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 061182c7ed d/control: drop build-dependencies on essential packages
we do not need a specific version..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht ae4a75cb51 buildsys: add DSC target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht a0620f611a buildsys: split applying patches over multiple line
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 3fd27e5117 buildsys: use versioned build dir
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 19b148a675 makefile: convert to use simple parenthesis
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 4ffe95f116 d/rules: convert to use simple parenthesis
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 11:56:56 +02:00
Thomas Lamprecht 6f9c016305 update ABI file for 5.15.107-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-10 13:47:42 +02:00
Thomas Lamprecht cac56ffc02 bump version to 5.15.107-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-10 13:13:52 +02:00
Thomas Lamprecht 3d06789d88 backport "netfilter: nf_tables: deactivate anonymous set from preparation phase"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-10 13:13:52 +02:00
Thomas Lamprecht 8b70203497 update ABI file for 5.15.107-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-10 13:13:52 +02:00
Thomas Lamprecht 0b45be4e3b buildsys: fixup PKGREL
only used for top level name, we could actually get this from the DEB
environment variables.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 13:54:30 +02:00
Thomas Lamprecht ea78e7fd12 bump version to 5.15.107-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 13:28:47 +02:00
Thomas Lamprecht 548f585b45 update kernel to Proxmox-5.15.107-1 and refresh patches
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 13:28:47 +02:00
Thomas Lamprecht 767a61c034 update ZFS to 2.1.11
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 11:05:12 +02:00
Thomas Lamprecht 31b8a08725 buildsys: fixup PKGREL
only used for assembling the package name.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-13 06:28:06 +02:00
Thomas Lamprecht 58523253dd bump version to 5.15.104-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-12 13:23:14 +02:00
Thomas Lamprecht c1caadf9e8 backport "igb: revert rtnl_lock() that causes deadlock"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-12 13:22:23 +02:00
Thomas Lamprecht 9beed8f7a5 update ABI file for 5.15.104-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-29 18:11:31 +02:00
Thomas Lamprecht 7330912018 bump version to 5.15.104-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-29 17:51:48 +02:00
Thomas Lamprecht d87c01a486 update to Proxmox-5.15.104-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-29 17:51:21 +02:00
Thomas Lamprecht ed663201d5 update ABI file for 5.15.102-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-14 16:49:59 +01:00
Thomas Lamprecht f40c4306ce bump version to 5.15.102-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-14 14:59:14 +01:00
Thomas Lamprecht 3917b25d81 update submodule and patches to Proxmox-5.15.102-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-14 14:59:14 +01:00
Thomas Lamprecht 4ca240afd7 update submodule and patches for Ubuntu-5.15.0-68.75
based on Linux 5.15.87

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-14 10:44:44 +01:00
Thomas Lamprecht b77e6230c9 d/rules: fix misspelled changelog date variable
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-10 16:40:52 +01:00
Thomas Lamprecht f20a494e2f wireless: Add Debian wireless-regdb certificates
so that plain Debian crda + wireless-regdb can work, alternatively we
could disable CRDA and bake in the regdb directly in the kernel,
using the CFG80211_INTERNAL_REGDB KConfig.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-10 12:55:32 +01:00
Thomas Lamprecht c7b4bf7ee3 update ABI file for 5.15.85-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-01 17:23:49 +01:00
Thomas Lamprecht 870570ed57 bump version to 5.15.85-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-01 16:30:28 +01:00
Thomas Lamprecht b6923c3e69 update sources to Ubuntu-5.15.0-65.72
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-01 16:03:30 +01:00
Thomas Lamprecht 2fdc4b1945 update ZFS to 2.1.9
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 16:06:58 +01:00
Thomas Lamprecht 96806b77db change submodule url to ubuntu-kernel
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-25 16:36:45 +01:00
Thomas Lamprecht b4d245a339 rename submodule to ubuntu-kernel
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-25 16:27:23 +01:00
Thomas Lamprecht 6ae4f00696 update ZFS to current 2.1.7-pve3
no relevant changes for the 5.15 based kernel though

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-10 10:59:11 +01:00
Thomas Lamprecht 31a56fc647 update ABI file for 5.15.83-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-15 14:43:01 +01:00
Thomas Lamprecht 84439439ae bump version to 5.15.83-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-15 12:03:14 +01:00
Thomas Lamprecht a1ea671261 d/rules: hard-code default for INET_TABLE_PERTURB_ORDER for now
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-15 12:03:14 +01:00
Thomas Lamprecht d0141aeccb update to v5.15.83
with v5.15.78 from ubuntu's master-next and the v5.15.78..v5.15.83
part cherry-picked from upstream stable linux-5.15.y branch

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-14 14:07:14 +01:00
Thomas Lamprecht 7a2d40e00e d/rules: use UTC ISO format for build timestamp
same info but shorter, avoiding cut-off on `uname -a` output due to
the relatively newly changed and reported "SMP PREEMPT_DYNAMIC" mode.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-14 10:05:51 +01:00
Thomas Lamprecht bc7e7ceec6 update ZFS to 2.1.7
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-06 16:43:43 +01:00
Thomas Lamprecht 87dbf2e0af update ABI file for 5.15.74-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-14 20:44:15 +01:00
Thomas Lamprecht 90d69926e3 update fw-list previous
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-14 20:38:19 +01:00
Thomas Lamprecht e80508c506 bump version to 5.15.74-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-14 20:17:40 +01:00
Thomas Lamprecht 3cf1727216 backport a few fixes-fixes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-14 20:16:30 +01:00
Thomas Lamprecht 1de3bb1f40 update patches for Ubuntu-5.15.0-54.60
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-14 20:05:01 +01:00
Thomas Lamprecht 81e07e4618 update submodule to Ubuntu-5.15.0-54.60
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-14 20:04:45 +01:00
Fiona Ebner 561d6d8499 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-24 09:27:02 +02:00
Thomas Lamprecht 671ee57b9d update ABI file for 5.15.64-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-13 15:36:15 +02:00
Thomas Lamprecht 7d86cd88c7 bump version to 5.15.64-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-13 14:28:12 +02:00
Thomas Lamprecht 3da8ec8523 backport some fixes-fixes
Ubuntu's latest tag updated from v5.15.60 to v5.15.64 and one
advantage of them trailing upstream stable 5.15.y is that we can
backport fixes of fixes that got in with that commit range.

Found with the report of:

git log --decorate v5.15..v5.15.73 | \
 ~/gitdm/stablefixes --fixed-after v5.15.64 --regressed-before v5.15.64

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-13 14:28:12 +02:00
Thomas Lamprecht 95d22b9bec rebase patches on top of Ubuntu-5.15.0-51.57
(generated with debian/scripts/import-upstream-tag)

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

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-13 10:28:51 +02:00
Thomas Lamprecht d893aeed50 update ABI file for 5.15.60-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-04 17:19:17 +02:00
Thomas Lamprecht 04ce24a7b8 bump version to 5.15.60-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-04 16:52:50 +02:00
Thomas Lamprecht 58ca301430 update sources to Ubuntu-5.15.0-50.56
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-04 16:46:03 +02:00
Thomas Lamprecht 9f481060ed update ZFS to 2.1.6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-04 16:30:27 +02:00
Thomas Lamprecht baec1f8715 update ABI file for 5.15.60-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-20 08:03:27 +02:00
Thomas Lamprecht 8c702bb389 bump version to 5.15.60-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-19 17:53:34 +02:00
Thomas Lamprecht 92d3915d3b rebase patches on top of Ubuntu-5.15.0-49.55
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-19 17:51:55 +02:00
Thomas Lamprecht 9b4c3df463 update sources to Ubuntu-5.15.0-49.55
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-09-19 17:51:55 +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
42 changed files with 30606 additions and 25962 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
[submodule "submodules/zfsonlinux"]
path = submodules/zfsonlinux
url = ../zfsonlinux
[submodule "submodules/ubuntu-hirsute"]
path = submodules/ubuntu-hirsute
url = ../mirror_ubuntu-hirsute-kernel
[submodule "submodules/ubuntu-kernel"]
path = submodules/ubuntu-kernel
url = ../mirror_ubuntu-kernels
+87 -70
View File
@@ -1,110 +1,127 @@
include /usr/share/dpkg/pkg-info.mk
# also bump pve-kernel-meta if either of MAJ.MIN, PATCHLEVEL or KREL change
KERNEL_MAJ=5
KERNEL_MIN=11
KERNEL_PATCHLEVEL=22
KERNEL_MIN=15
KERNEL_PATCHLEVEL=158
# increment KREL if the ABI changes (abicheck target in debian/rules)
# rebuild packages with new KREL and run 'make abiupdate'
KREL=7
KREL=1
PKGREL=12
PKGREL=1
KERNEL_MAJMIN=$(KERNEL_MAJ).$(KERNEL_MIN)
KERNEL_VER=$(KERNEL_MAJMIN).$(KERNEL_PATCHLEVEL)
EXTRAVERSION=-${KREL}-pve
KVNAME=${KERNEL_VER}${EXTRAVERSION}
PACKAGE=pve-kernel-${KVNAME}
HDRPACKAGE=pve-headers-${KVNAME}
EXTRAVERSION=-$(KREL)-pve
KVNAME=$(KERNEL_VER)$(EXTRAVERSION)
PACKAGE=pve-kernel-$(KVNAME)
HDRPACKAGE=pve-headers-$(KVNAME)
ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
# amd64/x86_64/x86 share the arch subdirectory in the kernel, 'x86' so we need
# a mapping
KERNEL_ARCH=x86
ifneq (${ARCH}, amd64)
KERNEL_ARCH=${ARCH}
ifneq ($(ARCH), amd64)
KERNEL_ARCH=$(ARCH)
endif
GITVERSION:=$(shell git rev-parse HEAD)
SKIPABI=0
BUILD_DIR=build
BUILD_DIR=pve-kernel-$(KERNEL_VER)
KERNEL_SRC=ubuntu-hirsute
KERNEL_SRC=ubuntu-kernel
KERNEL_SRC_SUBMODULE=submodules/$(KERNEL_SRC)
KERNEL_CFG_ORG=config-${KERNEL_VER}.org
KERNEL_CFG_ORG=config-$(KERNEL_VER).org
ZFSONLINUX_SUBMODULE=submodules/zfsonlinux
ZFSDIR=pkg-zfs
MODULES=modules
MODULE_DIRS=${ZFSDIR}
MODULE_DIRS=$(ZFSDIR)
# exported to debian/rules via debian/rules.d/dirs.mk
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
DSC=pve-kernel_$(KERNEL_VER)-$(PKGREL).dsc
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} ${USR_HDR_DEB} ${LINUX_TOOLS_DEB} ${LINUX_TOOLS_DBG_DEB}
DEBS=$(DST_DEB) $(HDR_DEB) $(USR_HDR_DEB) $(LINUX_TOOLS_DEB) $(LINUX_TOOLS_DBG_DEB)
UPLOAD_DEBS=$(DST_DEB) $(HDR_DEB) $(LINUX_TOOLS_DEB) $(LINUX_TOOLS_DBG_DEB)
all: deb
deb: ${DEBS}
deb: $(DEBS)
${LINUX_TOOLS_DEB} ${HDR_DEB}: ${DST_DEB}
${DST_DEB}: ${BUILD_DIR}.prepared
cd ${BUILD_DIR}; dpkg-buildpackage --jobs=auto -b -uc -us
lintian ${DST_DEB}
#lintian ${HDR_DEB}
lintian ${LINUX_TOOLS_DEB}
$(LINUX_TOOLS_DEB) $(HDR_DEB) $(USR_HDR_DEB) $(LINUX_TOOLS_DBG_DEB): $(DST_DEB)
$(DST_DEB): $(BUILD_DIR).prepared
cd $(BUILD_DIR); dpkg-buildpackage --jobs=auto -b -uc -us
lintian $(DST_DEB)
#lintian $(HDR_DEB)
lintian $(LINUX_TOOLS_DEB)
${BUILD_DIR}.prepared: $(addsuffix .prepared,${KERNEL_SRC} ${MODULES} debian)
cp -a fwlist-previous ${BUILD_DIR}/
cp -a abi-prev-* ${BUILD_DIR}/
cp -a abi-blacklist ${BUILD_DIR}/
dsc: $(DSC)
$(DSC): $(BUILD_DIR).prepared
cd $(BUILD_DIR); dpkg-buildpackage -S -uc -us -d
lintian $(DSC)
sbuild: $(DSC)
sbuild $(DSC)
$(BUILD_DIR).prepared: $(addsuffix .prepared,$(KERNEL_SRC) $(MODULES) debian)
cp -a fwlist-previous $(BUILD_DIR)/
cp -a abi-prev-* $(BUILD_DIR)/
cp -a abi-blacklist $(BUILD_DIR)/
touch $@
debian.prepared: debian
rm -rf ${BUILD_DIR}/debian
mkdir -p ${BUILD_DIR}
cp -a debian ${BUILD_DIR}/debian
echo "git clone git://git.proxmox.com/git/pve-kernel.git\\ngit checkout ${GITVERSION}" > ${BUILD_DIR}/debian/SOURCE
@$(foreach dir, ${DIRS},echo "${dir}=${${dir}}" >> ${BUILD_DIR}/debian/rules.d/env.mk;)
echo "KVNAME=${KVNAME}" >> ${BUILD_DIR}/debian/rules.d/env.mk
echo "KERNEL_MAJMIN=${KERNEL_MAJMIN}" >> ${BUILD_DIR}/debian/rules.d/env.mk
cd ${BUILD_DIR}; debian/rules debian/control
rm -rf $(BUILD_DIR)/debian
mkdir -p $(BUILD_DIR)
cp -a debian $(BUILD_DIR)/debian
echo "git clone git://git.proxmox.com/git/pve-kernel.git\\ngit checkout $(GITVERSION)" > $(BUILD_DIR)/debian/SOURCE
@$(foreach dir, $(DIRS),echo "$(dir)=$($(dir))" >> $(BUILD_DIR)/debian/rules.d/env.mk;)
echo "KVNAME=$(KVNAME)" >> $(BUILD_DIR)/debian/rules.d/env.mk
echo "KERNEL_MAJMIN=$(KERNEL_MAJMIN)" >> $(BUILD_DIR)/debian/rules.d/env.mk
cd $(BUILD_DIR); debian/rules debian/control
touch $@
${KERNEL_SRC}.prepared: ${KERNEL_SRC_SUBMODULE} | submodule
rm -rf ${BUILD_DIR}/${KERNEL_SRC} $@
mkdir -p ${BUILD_DIR}
cp -a ${KERNEL_SRC_SUBMODULE} ${BUILD_DIR}/${KERNEL_SRC}
$(KERNEL_SRC).prepared: $(KERNEL_SRC_SUBMODULE) | submodule
rm -rf $(BUILD_DIR)/$(KERNEL_SRC) $@
mkdir -p $(BUILD_DIR)
cp -a $(KERNEL_SRC_SUBMODULE) $(BUILD_DIR)/$(KERNEL_SRC)
# TODO: split for archs, track and diff in our repository?
cat ${BUILD_DIR}/${KERNEL_SRC}/debian.master/config/config.common.ubuntu ${BUILD_DIR}/${KERNEL_SRC}/debian.master/config/${ARCH}/config.common.${ARCH} ${BUILD_DIR}/${KERNEL_SRC}/debian.master/config/${ARCH}/config.flavour.generic > ${KERNEL_CFG_ORG}
cp ${KERNEL_CFG_ORG} ${BUILD_DIR}/${KERNEL_SRC}/.config
sed -i ${BUILD_DIR}/${KERNEL_SRC}/Makefile -e 's/^EXTRAVERSION.*$$/EXTRAVERSION=${EXTRAVERSION}/'
rm -rf ${BUILD_DIR}/${KERNEL_SRC}/debian ${BUILD_DIR}/${KERNEL_SRC}/debian.master
set -e; cd ${BUILD_DIR}/${KERNEL_SRC}; for patch in ../../patches/kernel/*.patch; do echo "applying patch '$$patch'" && patch -p1 < $${patch}; done
cd $(BUILD_DIR)/$(KERNEL_SRC); python3 debian/scripts/misc/annotations --arch amd64 --export >../../$(KERNEL_CFG_ORG)
cp $(KERNEL_CFG_ORG) $(BUILD_DIR)/$(KERNEL_SRC)/.config
sed -i $(BUILD_DIR)/$(KERNEL_SRC)/Makefile -e 's/^EXTRAVERSION.*$$/EXTRAVERSION=$(EXTRAVERSION)/'
rm -rf $(BUILD_DIR)/$(KERNEL_SRC)/debian $(BUILD_DIR)/$(KERNEL_SRC)/debian.master
set -e; cd $(BUILD_DIR)/$(KERNEL_SRC); \
for patch in ../../patches/kernel/*.patch; do \
echo "applying patch '$$patch'"; \
patch --batch -p1 < "$${patch}"; \
done
touch $@
${MODULES}.prepared: $(addsuffix .prepared,${MODULE_DIRS})
$(MODULES).prepared: $(addsuffix .prepared,$(MODULE_DIRS))
touch $@
${ZFSDIR}.prepared: ${ZFSONLINUX_SUBMODULE}
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
$(ZFSDIR).prepared: $(ZFSONLINUX_SUBMODULE)
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
.PHONY: upload
upload: ${DEBS}
tar cf - ${DEBS}|ssh -X repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist bullseye --arch ${ARCH}
upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
upload: $(UPLOAD_DEBS)
tar cf - $(UPLOAD_DEBS)|ssh -X repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist $(UPLOAD_DIST) --arch $(ARCH)
.PHONY: distclean
distclean: clean
@@ -114,18 +131,18 @@ distclean: clean
.PHONY: update_modules
update_modules: submodule
git submodule foreach 'git pull --ff-only origin master'
cd ${ZFSONLINUX_SUBMODULE}; git pull --ff-only origin master
cd $(ZFSONLINUX_SUBMODULE); git pull --ff-only origin master
# make sure submodules were initialized
.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 --recursive ${ZFSONLINUX_SUBMODULE}
test -f "$(KERNEL_SRC_SUBMODULE)/README" || git submodule update --init $(KERNEL_SRC_SUBMODULE)
test -f "$(ZFSONLINUX_SUBMODULE)/Makefile" || git submodule update --init --recursive $(ZFSONLINUX_SUBMODULE)
# call after ABI bump with header deb in working directory
.PHONY: abiupdate
abiupdate: abi-prev-${KVNAME}
abi-prev-${KVNAME}: abi-tmp-${KVNAME}
abiupdate: abi-prev-$(KVNAME)
abi-prev-$(KVNAME): abi-tmp-$(KVNAME)
ifneq ($(strip $(shell git status --untracked-files=no --porcelain -z)),)
@echo "working directory unclean, aborting!"
@false
@@ -133,15 +150,15 @@ else
git rm "abi-prev-*"
mv $< $@
git add $@
git commit -s -m "update ABI file for ${KVNAME}" -m "(generated with debian/scripts/abi-generate)"
@echo "update abi-prev-${KVNAME} committed!"
git commit -s -m "update ABI file for $(KVNAME)" -m "(generated with debian/scripts/abi-generate)"
@echo "update abi-prev-$(KVNAME) committed!"
endif
abi-tmp-${KVNAME}:
@ test -e ${HDR_DEB} || (echo "need ${HDR_DEB} to extract ABI data!" && false)
debian/scripts/abi-generate ${HDR_DEB} $@ ${KVNAME} 1
abi-tmp-$(KVNAME):
@ test -e $(HDR_DEB) || (echo "need $(HDR_DEB) to extract ABI data!" && false)
debian/scripts/abi-generate $(HDR_DEB) $@ $(KVNAME) 1
.PHONY: clean
clean:
rm -rf *~ build *.prepared ${KERNEL_CFG_ORG}
rm -f *.deb *.changes *.buildinfo
rm -rf *~ pve-kernel-[0-9]*/ *.prepared $(KERNEL_CFG_ORG)
rm -f *.deb *.dsc *.changes *.buildinfo *.build pve-kernel*.tar.*
+13 -20
View File
@@ -3,11 +3,15 @@ KERNEL SOURCE:
We currently use the Ubuntu kernel sources, available from:
http://kernel.ubuntu.com/git/ubuntu/ubuntu-hirsute.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:
@@ -31,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-hirsute/.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
@@ -60,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
@@ -138,45 +142,34 @@ NOTE: For the exact and current list see debian/rules (PVE_CONFIG_OPTS)
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)
-25494
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+366 -15
View File
@@ -1,32 +1,383 @@
pve-kernel (5.11.22-12) bullseye; urgency=medium
pve-kernel (5.15.158-1) bullseye; urgency=medium
* update sources to Ubuntu-5.11.0-41.45
* update sources to Ubuntu-5.15.0-115.125, based on 5.15.158
* bump ABI to 5.11.22-7
-- Proxmox Support Team <support@proxmox.com> Mon, 10 Jun 2024 16:56:16 +0200
-- Proxmox Support Team <support@proxmox.com> Sun, 07 Nov 2021 21:46:36 +0100
pve-kernel (5.15.152-1) bullseye; urgency=medium
pve-kernel (5.11.22-11) bullseye; urgency=medium
* update to Ubuntu-5.15.0-111.121, based on 5.15.152
* update sources to Ubuntu-5.11.0-39.43
-- Proxmox Support Team <support@proxmox.com> Mon, 29 Apr 2024 09:31:55 +0200
* bump ABI to 5.11.22-6
pve-kernel (5.15.149-1) bullseye; urgency=medium
* back port proposed fix for "ocfs2: mount fails with buffer overflow in strlen"
* update to Ubuntu-5.15.0-104.114 basing of 5.15.149
-- Proxmox Support Team <support@proxmox.com> Tue, 19 Oct 2021 12:43:14 +0200
* update ZFS to 2.1.15
pve-kernel (5.11.22-10) bullseye; urgency=medium
-- Proxmox Support Team <support@proxmox.com> Fri, 29 Mar 2024 15:24:01 +0100
* update sources to Ubuntu-5.11.0-38.42
pve-kernel (5.15.143-1) bullseye; urgency=medium
* update ZFS to 2.0.6
* update to Ubuntu-5.15.0-100.110 basing of 5.15.143
* bump ABI to 5.11.22-5
-- Proxmox Support Team <support@proxmox.com> Thu, 08 Feb 2024 19:12:26 +0100
* fix #3558: backport "bnx2x: Fix enabling network interfaces without VFs"
pve-kernel (5.15.136-1) bullseye; urgency=medium
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Sep 2021 08:15:41 +0200
* update to Ubuntu-5.15.0-94.104 basing of 5.15.136
-- Proxmox Support Team <support@proxmox.com> Tue, 23 Jan 2024 12:10:07 +0100
pve-kernel (5.15.131-3) bullseye; urgency=medium
* updates ZFS to 2.1.14
* bump ABI to 5.15.131-2
-- Proxmox Support Team <support@proxmox.com> Fri, 01 Dec 2023 14:42:42 +0100
pve-kernel (5.15.131-2) bullseye; urgency=medium
* update to Ubuntu-5.15.0-91.101 fixing an issue with enumerating USB
devices
-- Proxmox Support Team <support@proxmox.com> Tue, 14 Nov 2023 12:32:55 +0100
pve-kernel (5.15.131-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-90.100 basing of the 5.15.131 stable release
-- Proxmox Support Team <support@proxmox.com> Thu, 09 Nov 2023 10:29:57 +0100
pve-kernel (5.15.126-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-88.98 basing of 5.15.126
-- Proxmox Support Team <support@proxmox.com> Tue, 03 Oct 2023 19:24:13 +0200
pve-kernel (5.15.116-1) bullseye; urgency=medium
* disable CONFIG_GDS_FORCE_MITIGATION again to avoid software breakage with
older intel-microcode versions
-- Proxmox Support Team <support@proxmox.com> Tue, 29 Aug 2023 15:46:21 +0200
pve-kernel (5.15.111-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-82.91
-- Proxmox Support Team <support@proxmox.com> Fri, 18 Aug 2023 10:57:15 +0200
pve-kernel (5.15.108-2) bullseye; urgency=medium
* backport Zenbleed stop-gap workaround for CVE-2023-20593, the actual fix
is the amd64-microcode update.
-- Proxmox Support Team <support@proxmox.com> Thu, 20 Jul 2023 12:06:18 +0200
pve-kernel (5.15.108-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-77.84, based on 5.15.108
* bump ABI to 5.15.108-1
-- Proxmox Support Team <support@proxmox.com> Sat, 17 Jun 2023 11:41:53 +0200
pve-kernel (5.15.107-2) bullseye; urgency=medium
* backport "netfilter: nf_tables: deactivate anonymous set from preparation
phase"
-- Proxmox Support Team <support@proxmox.com> Wed, 10 May 2023 11:10:23 +0200
pve-kernel (5.15.107-1) bullseye; urgency=medium
* update to Proxmox-5.15.107-1
* update ZFS to 2.1.11
-- Proxmox Support Team <support@proxmox.com> Thu, 20 Apr 2023 12:05:46 +0200
pve-kernel (5.15.104-2) bullseye; urgency=medium
* backport "igb: revert rtnl_lock() that causes deadlock"
-- Proxmox Support Team <support@proxmox.com> Wed, 12 Apr 2023 13:23:09 +0200
pve-kernel (5.15.104-1) bullseye; urgency=medium
* update to upstream ubuntu and stable tree's v5.15.104
-- Proxmox Support Team <support@proxmox.com> Wed, 29 Mar 2023 17:51:33 +0200
pve-kernel (5.15.102-1) bullseye; urgency=medium
* update to upstream ubuntu and stable tree's v5.15.102
-- Proxmox Support Team <support@proxmox.com> Tue, 14 Mar 2023 14:48:39 +0100
pve-kernel (5.15.85-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-65.72 based on v5.15.85
* update ZFS to 2.1.9
-- Proxmox Support Team <support@proxmox.com> Wed, 01 Feb 2023 16:07:18 +0100
pve-kernel (5.15.83-1) bullseye; urgency=medium
* update ZFS to 2.1.7
* update to upstream stable v5.15.83
-- Proxmox Support Team <support@proxmox.com> Wed, 14 Dec 2022 14:09:09 +0100
pve-kernel (5.15.74-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-54.60
* bump ABI to 5.15.74-1
-- Proxmox Support Team <support@proxmox.com> Mon, 14 Nov 2022 20:17:15 +0100
pve-kernel (5.15.64-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-51.57
* bump ABI to 5.15.64-1
-- Proxmox Support Team <support@proxmox.com> Thu, 13 Oct 2022 10:30:34 +0200
pve-kernel (5.15.60-2) bullseye; urgency=medium
* update ZFS to 2.1.6
* update to Ubuntu-5.15.0-50.56
* bump ABI to 5.15.60-2
-- Proxmox Support Team <support@proxmox.com> Tue, 04 Oct 2022 16:52:28 +0200
pve-kernel (5.15.60-1) bullseye; urgency=medium
* update to Ubuntu-5.15.0-49.55
-- Proxmox Support Team <support@proxmox.com> Mon, 19 Sep 2022 17:53:17 +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
+21 -20
View File
@@ -25,15 +25,15 @@ Build-Depends: asciidoc-base,
libtool,
lintian,
lz4,
perl-modules,
python3-dev,
python3-minimal,
rsync,
sed,
sphinx-common,
tar,
xmlto,
zlib1g-dev
Build-Conflicts: pve-headers-@KVNAME@
zlib1g-dev,
zstd,
Build-Conflicts: pve-headers-@KVNAME@,
Standards-Version: 4.6.2
Vcs-Git: git://git.proxmox.com/git/pve-kernel
Vcs-Browser: https://git.proxmox.com/?p=pve-kernel.git
@@ -41,7 +41,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)
@@ -50,29 +50,30 @@ Package: pve-headers-@KVNAME@
Section: devel
Priority: optional
Architecture: any
Provides: linux-headers
Depends: coreutils | fileutils (>= 4.0)
Description: The Proxmox PVE Kernel Headers
Provides: linux-headers-@KVNAME@-amd64,
Depends: ${misc:Depends},
Description: Proxmox Kernel Headers
This package contains the linux kernel headers
Package: pve-kernel-@KVNAME@
Section: admin
Priority: optional
Architecture: any
Provides: linux-image
Suggests: pve-firmware
Depends: busybox, initramfs-tools
Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub-efi-arm64
Description: The Proxmox PVE Kernel Image
Provides: linux-image-@KVNAME@-amd64,
Suggests: pve-firmware,
Depends: busybox, initramfs-tools | linux-initramfs-tool, ${misc:Depends},
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
Provides: linux-debug,
Section: devel
Priority: optional
Build-Profiles: <pkg.pve-kernel.debug>
Description: The Proxmox PVE Kernel debug image
Depends: ${misc:Depends},
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/..
@@ -83,10 +84,10 @@ 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}
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.
+113 -107
View File
@@ -9,19 +9,23 @@ BUILD_DIR=$(shell pwd)
include /usr/share/dpkg/default.mk
include debian/rules.d/env.mk
include debian/rules.d/${DEB_BUILD_ARCH}.mk
include debian/rules.d/$(DEB_BUILD_ARCH).mk
MAKEFLAGS += $(subst parallel=,-j,$(filter parallel=%,${DEB_BUILD_OPTIONS}))
CHANGELOG_DATE:=$(shell dpkg-parsechangelog -SDate)
CHANGELOG_DATE_UTC_ISO := $(shell date -u -d '$(CHANGELOG_DATE)' +%Y-%m-%dT%H:%MZ)
PVE_KERNEL_PKG=pve-kernel-${KVNAME}
PVE_DEBUG_KERNEL_PKG=pve-kernel-${KVNAME}-dbgsym
PVE_HEADER_PKG=pve-headers-${KVNAME}
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
LINUX_TOOLS_PKG=linux-tools-$(KERNEL_MAJMIN)
KERNEL_SRC_COPY=$(KERNEL_SRC)_tmp
# TODO: split for archs, move to files?
PVE_CONFIG_OPTS= \
--set-val INET_TABLE_PERTURB_ORDER 16 \
-m INTEL_MEI_WDT \
-d CONFIG_SND_PCM_OSS \
-e CONFIG_TRANSPARENT_HUGEPAGE_MADVISE \
@@ -47,6 +51,8 @@ PVE_CONFIG_OPTS= \
-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 \
@@ -81,18 +87,19 @@ PVE_CONFIG_OPTS= \
-d CONFIG_SECURITY_LOCKDOWN_LSM \
-d CONFIG_SECURITY_LOCKDOWN_LSM_EARLY \
--set-str CONFIG_LSM yama,integrity,apparmor \
-d MICROCODE_LATE_LOADING \
-e CONFIG_PAGE_TABLE_ISOLATION
debian/control: $(wildcard debian/*.in)
sed -e 's/@@KVNAME@@/${KVNAME}/g' < debian/pve-kernel.prerm.in > debian/${PVE_KERNEL_PKG}.prerm
sed -e 's/@@KVNAME@@/${KVNAME}/g' < debian/pve-kernel.postrm.in > debian/${PVE_KERNEL_PKG}.postrm
sed -e 's/@@KVNAME@@/${KVNAME}/g' < debian/pve-kernel.postinst.in > debian/${PVE_KERNEL_PKG}.postinst
sed -e 's/@@KVNAME@@/${KVNAME}/g' < debian/pve-headers.postinst.in > debian/${PVE_HEADER_PKG}.postinst
chmod +x debian/${PVE_KERNEL_PKG}.prerm
chmod +x debian/${PVE_KERNEL_PKG}.postrm
chmod +x debian/${PVE_KERNEL_PKG}.postinst
chmod +x debian/${PVE_HEADER_PKG}.postinst
sed -e 's/@KVNAME@/${KVNAME}/g' -e 's/@KVMAJMIN@/${KERNEL_MAJMIN}/g' < debian/control.in > debian/control
sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/pve-kernel.prerm.in > debian/$(PVE_KERNEL_PKG).prerm
sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/pve-kernel.postrm.in > debian/$(PVE_KERNEL_PKG).postrm
sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/pve-kernel.postinst.in > debian/$(PVE_KERNEL_PKG).postinst
sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/pve-headers.postinst.in > debian/$(PVE_HEADER_PKG).postinst
chmod +x debian/$(PVE_KERNEL_PKG).prerm
chmod +x debian/$(PVE_KERNEL_PKG).postrm
chmod +x debian/$(PVE_KERNEL_PKG).postinst
chmod +x debian/$(PVE_HEADER_PKG).postinst
sed -e 's/@KVNAME@/$(KVNAME)/g' -e 's/@KVMAJMIN@/$(KERNEL_MAJMIN)/g' < debian/control.in > debian/control
build: .compile_mark .tools_compile_mark .modules_compile_mark
@@ -106,7 +113,7 @@ install: .install_mark .tools_install_mark .headers_install_mark .usr_headers_in
binary: install
debian/rules fwcheck abicheck
dh_strip -N${PVE_HEADER_PKG} -N${PVE_USR_HEADER_PKG}
dh_strip -N$(PVE_HEADER_PKG) -N$(PVE_USR_HEADER_PKG)
dh_makeshlibs
dh_shlibdeps
dh_installdeb
@@ -115,82 +122,82 @@ binary: install
dh_builddeb
.config_mark:
cd ${KERNEL_SRC}; scripts/config ${PVE_CONFIG_OPTS}
${MAKE} -C ${KERNEL_SRC} oldconfig
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}
rm -rf $(KERNEL_SRC_COPY)
cp -ar $(KERNEL_SRC) $(KERNEL_SRC_COPY)
touch $@
.compile_mark: .config_mark
${MAKE} -C ${KERNEL_SRC} KBUILD_BUILD_VERSION_TIMESTAMP="PVE ${DEB_VERSION} (${CHANGELOG_DATE})"
$(MAKE) -C $(KERNEL_SRC) KBUILD_BUILD_VERSION_TIMESTAMP="PVE $(DEB_VERSION) ($(CHANGELOG_DATE_UTC_ISO))"
touch $@
.install_mark: .compile_mark .modules_compile_mark
rm -rf debian/${PVE_KERNEL_PKG}
mkdir -p debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}
mkdir debian/${PVE_KERNEL_PKG}/boot
install -m 644 ${KERNEL_SRC}/.config debian/${PVE_KERNEL_PKG}/boot/config-${KVNAME}
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
rm -rf debian/$(PVE_KERNEL_PKG)
mkdir -p debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME)
mkdir debian/$(PVE_KERNEL_PKG)/boot
install -m 644 $(KERNEL_SRC)/.config debian/$(PVE_KERNEL_PKG)/boot/config-$(KVNAME)
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 zfs drivers
install -d -m 0755 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
install -d -m 0755 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
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.*
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
find debian/$(PVE_KERNEL_PKG)/lib/modules -name \*.ko -print | while read f ; do strip --strip-debug "$$f"; done
# finalize
/sbin/depmod -b debian/${PVE_KERNEL_PKG}/ ${KVNAME}
/sbin/depmod -b debian/$(PVE_KERNEL_PKG)/ $(KVNAME)
# Autogenerate blacklist for watchdog devices (see README)
install -m 0755 -d debian/${PVE_KERNEL_PKG}/lib/modprobe.d
ls debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/kernel/drivers/watchdog/ > watchdog-blacklist.tmp
install -m 0755 -d debian/$(PVE_KERNEL_PKG)/lib/modprobe.d
ls debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME)/kernel/drivers/watchdog/ > watchdog-blacklist.tmp
echo ipmi_watchdog.ko >> watchdog-blacklist.tmp
cat watchdog-blacklist.tmp|sed -e 's/^/blacklist /' -e 's/.ko$$//'|sort -u > debian/${PVE_KERNEL_PKG}/lib/modprobe.d/blacklist_${PVE_KERNEL_PKG}.conf
rm -f debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/source
rm -f debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/build
cat watchdog-blacklist.tmp|sed -e 's/^/blacklist /' -e 's/.ko$$//'|sort -u > debian/$(PVE_KERNEL_PKG)/lib/modprobe.d/blacklist_$(PVE_KERNEL_PKG).conf
rm -f debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME)/source
rm -f debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME)/build
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=python3
$(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'
${MAKE} -C ${KERNEL_SRC}/tools/perf man
! ldd $(KERNEL_SRC)/tools/perf/perf | grep -q -E '\blibbfd'
! ldd $(KERNEL_SRC)/tools/perf/perf | grep -q -E '\blibcrypto'
$(MAKE) -C $(KERNEL_SRC)/tools/perf man
touch $@
.tools_install_mark: .tools_compile_mark
rm -rf debian/${LINUX_TOOLS_PKG}
mkdir -p debian/${LINUX_TOOLS_PKG}/usr/bin
mkdir -p debian/${LINUX_TOOLS_PKG}/usr/share/man/man1
install -m 755 ${BUILD_DIR}/${KERNEL_SRC}/tools/perf/perf debian/${LINUX_TOOLS_PKG}/usr/bin/perf_$(KERNEL_MAJMIN)
for i in ${BUILD_DIR}/${KERNEL_SRC}/tools/perf/Documentation/*.1; do \
rm -rf debian/$(LINUX_TOOLS_PKG)
mkdir -p debian/$(LINUX_TOOLS_PKG)/usr/bin
mkdir -p debian/$(LINUX_TOOLS_PKG)/usr/share/man/man1
install -m 755 $(BUILD_DIR)/$(KERNEL_SRC)/tools/perf/perf debian/$(LINUX_TOOLS_PKG)/usr/bin/perf_$(KERNEL_MAJMIN)
for i in $(BUILD_DIR)/$(KERNEL_SRC)/tools/perf/Documentation/*.1; do \
fname="$${i##*/}"; manname="$${fname%.1}"; \
install -m644 "$$i" "debian/${LINUX_TOOLS_PKG}/usr/share/man/man1/$${manname}_$(KERNEL_MAJMIN).1"; \
install -m644 "$$i" "debian/$(LINUX_TOOLS_PKG)/usr/share/man/man1/$${manname}_$(KERNEL_MAJMIN).1"; \
done
touch $@
.headers_prepare_mark: .config_mark
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}
make -C ${KERNEL_SRC_COPY} mrproper
cd ${KERNEL_SRC_COPY}; find . -path './debian/*' -prune \
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)
make -C $(KERNEL_SRC_COPY) mrproper
cd $(KERNEL_SRC_COPY); find . -path './debian/*' -prune \
-o -path './include/*' -prune \
-o -path './Documentation' -prune \
-o -path './scripts' -prune \
@@ -202,41 +209,40 @@ endif
-o -name '*.sh' \
-o -name '*.pl' \
\) \
-print | cpio -pd --preserve-modification-time ${BUILD_DIR}/debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}
cd ${KERNEL_SRC_COPY}; \
-print | cpio -pd --preserve-modification-time $(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 | \
find arch/$(KERNEL_HEADER_ARCH) -name include -type d -print | \
xargs -n1 -i: find : -type f \
) | \
cpio -pd --preserve-modification-time ${BUILD_DIR}/debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}
cpio -pd --preserve-modification-time $(BUILD_DIR)/debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)
touch $@
.headers_compile_mark: .headers_prepare_mark
# set output to subdir of source to reduce number of hardcoded paths in output files
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 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}
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 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 $@
.headers_install_mark: .compile_mark .modules_compile_mark .headers_compile_mark
cp ${KERNEL_SRC}/include/generated/compile.h debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}/include/generated/compile.h
install -m 0644 ${KERNEL_SRC}/Module.symvers debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}
mkdir -p debian/${PVE_HEADER_PKG}/lib/modules/${KVNAME}
ln -sf /usr/src/linux-headers-${KVNAME} debian/${PVE_HEADER_PKG}/lib/modules/${KVNAME}/build
cp $(KERNEL_SRC)/include/generated/compile.h debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)/include/generated/compile.h
install -m 0644 $(KERNEL_SRC)/Module.symvers debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)
mkdir -p debian/$(PVE_HEADER_PKG)/lib/modules/$(KVNAME)
ln -sf /usr/src/linux-headers-$(KVNAME) debian/$(PVE_HEADER_PKG)/lib/modules/$(KVNAME)/build
touch $@
.usr_headers_install_mark: PKG_DIR = debian/${PVE_USR_HEADER_PKG}
.usr_headers_install_mark: OUT_DIR = ${PKG_DIR}/usr
.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_check ARCH=$(KERNEL_HEADER_ARCH)
$(MAKE) -C ${KERNEL_SRC} headers_install ARCH=$(KERNEL_HEADER_ARCH) INSTALL_HDR_PATH='$(CURDIR)'/$(OUT_DIR)
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 {} +
@@ -247,43 +253,43 @@ endif
mv $(OUT_DIR)/include/arch $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/
touch $@
.modules_compile_mark: ${MODULES}/zfs.ko
.modules_compile_mark: $(MODULES)/zfs.ko
touch $@
${MODULES}/zfs.ko: .compile_mark
cd ${MODULES}/${ZFSDIR}; ./autogen.sh
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/icp/icp.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/zfs/zfs.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}/
$(MODULES)/zfs.ko: .compile_mark
cd $(MODULES)/$(ZFSDIR); ./autogen.sh
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/icp/icp.ko $(MODULES)/
cp $(MODULES)/$(ZFSDIR)/module/zfs/zfs.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
fwlist-$(KVNAME): .compile_mark .modules_compile_mark
debian/scripts/find-firmware.pl debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME) >fwlist.tmp
mv fwlist.tmp $@
.PHONY: fwcheck
fwcheck: fwlist-${KVNAME} fwlist-previous
fwcheck: fwlist-$(KVNAME) fwlist-previous
@echo "checking fwlist for changes since last built firmware package.."
@echo "if this check fails, add fwlist-${KVNAME} to the pve-firmware repository and upload a new firmware package together with the ${KVNAME} kernel"
@echo "if this check fails, add fwlist-$(KVNAME) to the pve-firmware repository and upload a new firmware package together with the $(KVNAME) kernel"
sort fwlist-previous | uniq > fwlist-previous.sorted
sort fwlist-${KVNAME} | uniq > fwlist-${KVNAME}.sorted
diff -up -N fwlist-previous.sorted fwlist-${KVNAME}.sorted > fwlist.diff
rm fwlist.diff fwlist-previous.sorted fwlist-${KVNAME}.sorted
sort fwlist-$(KVNAME) | uniq > fwlist-$(KVNAME).sorted
diff -up -N fwlist-previous.sorted fwlist-$(KVNAME).sorted > fwlist.diff
rm fwlist.diff fwlist-previous.sorted fwlist-$(KVNAME).sorted
@echo "done, no need to rebuild pve-firmware"
abi-${KVNAME}: .compile_mark
debian/scripts/abi-generate debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}/Module.symvers abi-${KVNAME} ${KVNAME}
abi-$(KVNAME): .compile_mark
debian/scripts/abi-generate debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)/Module.symvers abi-$(KVNAME) $(KVNAME)
.PHONY: abicheck
abicheck: debian/scripts/abi-check abi-${KVNAME} abi-prev-* abi-blacklist
debian/scripts/abi-check abi-${KVNAME} abi-prev-* ${SKIPABI}
abicheck: debian/scripts/abi-check abi-$(KVNAME) abi-prev-* abi-blacklist
debian/scripts/abi-check abi-$(KVNAME) abi-prev-* $(SKIPABI)
.PHONY: clean
+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;
+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: $dir" if $dir !~ m|^(.*/)?(\d+.\d+.\d+\-\d+\-pve)(/+)?$|;
warn "\n\nNOTE: strange directory name: $dir\n\n" if $dir !~ m|^(.*/)?(\d+.\d+.\d+\-\d+\-pve)(/+)?$|;
my $apiver = $2;
+2
View File
@@ -0,0 +1,2 @@
pve-kernel source: debian-control-has-dbgsym-package (in section for pve-kernel-*-pve-dbgsym) Package [debian/control:*]
pve-kernel source: license-problem-gfdl-invariants invariant part is: with the :ref:`invariant sections <fdl-invariant>` being list their titles, with the :ref:`front-cover texts <fdl-cover-texts>` being list, and with the :ref:`back-cover texts <fdl-cover-texts>` being list [ubuntu-kernel/Documentation/userspace-api/media/fdl-appendix.rst]
+137 -57
View File
@@ -17,9 +17,16 @@ aic94xx-seq.fw kernel/drivers/scsi/aic94xx/aic94xx.ko
amd/amd_sev_fam17h_model0xh.sbin kernel/drivers/crypto/ccp/ccp.ko
amd/amd_sev_fam17h_model3xh.sbin kernel/drivers/crypto/ccp/ccp.ko
amd/amd_sev_fam19h_model0xh.sbin kernel/drivers/crypto/ccp/ccp.ko
amdgpu/aldebaran_mec2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/aldebaran_mec.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/aldebaran_rlc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/aldebaran_sdma.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/aldebaran_smc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/aldebaran_sos.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/aldebaran_ta.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/aldebaran_vcn.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/arcturus_asd.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/arcturus_gpu_info.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/arcturus_mec2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/arcturus_mec.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/arcturus_rlc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/arcturus_sdma.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
@@ -28,6 +35,18 @@ amdgpu/arcturus_sos.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/arcturus_ta.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/arcturus_vcn.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/banks_k_2_smc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_dmcub.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_me.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_mec2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_mec.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_pfp.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_rlc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_sdma.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_smc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_sos.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_ta.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/beige_goby_vcn.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/bonaire_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/bonaire_k_smc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/bonaire_mc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
@@ -50,6 +69,22 @@ amdgpu/carrizo_sdma1.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/carrizo_sdma.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/carrizo_uvd.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/carrizo_vce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish2_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish2_me.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish2_mec2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish2_mec.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish2_pfp.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish2_rlc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish2_sdma1.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish2_sdma.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish_me.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish_mec2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish_mec.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish_pfp.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish_rlc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish_sdma1.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/cyan_skillfish_sdma.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/dimgrey_cavefish_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/dimgrey_cavefish_dmcub.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/dimgrey_cavefish_me.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
@@ -311,7 +346,6 @@ amdgpu/renoir_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/renoir_dmcub.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/renoir_gpu_info.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/renoir_me.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/renoir_mec2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/renoir_mec.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/renoir_pfp.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/renoir_rlc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
@@ -444,6 +478,19 @@ amdgpu/verde_pfp.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/verde_rlc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/verde_smc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/verde_uvd.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_asd.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_ce.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_dmcub.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_gpu_info.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_me.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_mec2.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_mec.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_pfp.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_rlc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_sdma.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_ta.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_toc.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
amdgpu/yellow_carp_vcn.bin kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
ar5523.bin kernel/drivers/net/wireless/ath/ar5523/ar5523.ko
asihpi/dsp5000.bin kernel/sound/pci/asihpi/snd-asihpi.ko
asihpi/dsp6200.bin kernel/sound/pci/asihpi/snd-asihpi.ko
@@ -534,7 +581,7 @@ atmel_at76c506-wpa.bin kernel/drivers/net/wireless/atmel/atmel.ko
atmel/wilc1000_wifi_firmware-1.bin kernel/drivers/net/wireless/microchip/wilc1000/wilc1000.ko
atmsar11.fw kernel/drivers/atm/ambassador.ko
atsc_denver.inp kernel/drivers/media/common/siano/smsmdtv.ko
av7110/bootcode.bin kernel/drivers/media/pci/ttpci/dvb-ttpci.ko
av7110/bootcode.bin kernel/drivers/staging/media/av7110/dvb-ttpci.ko
b43legacy/ucode2.fw kernel/drivers/net/wireless/broadcom/b43legacy/b43legacy.ko
b43legacy/ucode4.fw kernel/drivers/net/wireless/broadcom/b43legacy/b43legacy.ko
b43/ucode11.fw kernel/drivers/net/wireless/broadcom/b43/b43.ko
@@ -563,13 +610,15 @@ bnx2/bnx2-rv2p-06-6.0.15.fw kernel/drivers/net/ethernet/broadcom/bnx2.ko
bnx2/bnx2-rv2p-09-6.0.17.fw kernel/drivers/net/ethernet/broadcom/bnx2.ko
bnx2/bnx2-rv2p-09ax-6.0.17.fw kernel/drivers/net/ethernet/broadcom/bnx2.ko
bnx2x/bnx2x-e1-7.13.15.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
bnx2x/bnx2x-e1-7.13.21.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
bnx2x/bnx2x-e1h-7.13.15.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
bnx2x/bnx2x-e1h-7.13.21.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
bnx2x/bnx2x-e2-7.13.15.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
bnx2x/bnx2x-e2-7.13.21.0.fw kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
brcm/bcm43xx-0.fw kernel/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcmsmac.ko
brcm/bcm43xx_hdr-0.fw kernel/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcmsmac.ko
brcm/brcm/brcmfmac*-pcie.*.txt kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcm/brcmfmac*-sdio.*.txt kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43012-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43012-sdio.clm_blob kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43143.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43143-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43236b.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
@@ -585,16 +634,23 @@ brcm/brcmfmac4335-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfm
brcm/brcmfmac43362-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4339-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43430a0-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43430b0-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43430-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43430-sdio.clm_blob kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43455-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43455-sdio.clm_blob kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43456-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4350c2-pcie.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4350-pcie.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4354-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4354-sdio.clm_blob kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43569.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4356-pcie.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4356-pcie.clm_blob kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4356-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4356-sdio.clm_blob kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43570-pcie.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43570-pcie.clm_blob kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4358-pcie.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4359-pcie.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4359-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
@@ -607,6 +663,14 @@ brcm/brcmfmac4366c-pcie.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmf
brcm/brcmfmac4371-pcie.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4373.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4373-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac4373-sdio.clm_blob kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43752-sdio.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac43752-sdio.clm_blob kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac*-pcie.*.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac*-pcie.*.txt kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac*-pcie.txt kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac*-sdio.*.bin kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
brcm/brcmfmac*-sdio.*.txt kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
BT3CPCC.bin kernel/drivers/bluetooth/bt3c_cs.ko
c218tunx.cod kernel/drivers/tty/moxa.ko
c320tunx.cod kernel/drivers/tty/moxa.ko
@@ -634,7 +698,7 @@ cis/tamarack.cis kernel/drivers/net/ethernet/8390/pcnet_cs.ko
cmmb_ming_app.inp kernel/drivers/media/common/siano/smsmdtv.ko
cmmb_vega_12mhz.inp kernel/drivers/media/common/siano/smsmdtv.ko
cmmb_venice_12mhz.inp kernel/drivers/media/common/siano/smsmdtv.ko
comedi/jr3pci.idm kernel/drivers/staging/comedi/drivers/jr3_pci.ko
comedi/jr3pci.idm kernel/drivers/comedi/drivers/jr3_pci.ko
cp204unx.cod kernel/drivers/tty/moxa.ko
cpia2/stv0672_vp4.bin kernel/drivers/media/usb/cpia2/cpia2.ko
cs46xx/cwc4630 kernel/sound/pci/cs46xx/snd-cs46xx.ko
@@ -660,8 +724,7 @@ cxgb4/t5fw.bin kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko
cxgb4/t5fw.bin kernel/drivers/scsi/csiostor/csiostor.ko
cxgb4/t6fw.bin kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko
cxgb4/t6fw.bin kernel/drivers/scsi/csiostor/csiostor.ko
cyzfirm.bin kernel/drivers/tty/cyclades.ko
daqboard2000_firmware.bin kernel/drivers/staging/comedi/drivers/daqboard2000.ko
daqboard2000_firmware.bin kernel/drivers/comedi/drivers/daqboard2000.ko
digiface_firmware.bin kernel/sound/pci/rme9652/snd-hdsp.ko
digiface_firmware_rev11.bin kernel/sound/pci/rme9652/snd-hdsp.ko
dvb-cx18-mpc718-mt352.fw kernel/drivers/media/pci/cx18/cx18.ko
@@ -670,6 +733,7 @@ dvb-demod-m88ds3103.fw kernel/drivers/media/dvb-frontends/m88ds3103.ko
dvb-demod-m88rs6000.fw kernel/drivers/media/dvb-frontends/m88ds3103.ko
dvb-demod-mn88472-02.fw kernel/drivers/media/dvb-frontends/mn88472.ko
dvb-demod-mn88473-01.fw kernel/drivers/media/dvb-frontends/mn88473.ko
dvb-demod-mxl692.fw kernel/drivers/media/dvb-frontends/mxl692.ko
dvb-demod-si2165.fw kernel/drivers/media/dvb-frontends/si2165.ko
dvb-demod-si2168-a20-01.fw kernel/drivers/media/dvb-frontends/si2168.ko
dvb-demod-si2168-a30-01.fw kernel/drivers/media/dvb-frontends/si2168.ko
@@ -796,33 +860,33 @@ hfi1_dc8051.fw kernel/drivers/infiniband/hw/hfi1/hfi1.ko
hfi1_fabric.fw kernel/drivers/infiniband/hw/hfi1/hfi1.ko
hfi1_pcie.fw kernel/drivers/infiniband/hw/hfi1/hfi1.ko
hfi1_sbus.fw kernel/drivers/infiniband/hw/hfi1/hfi1.ko
i2400m-fw-usb-1.5.sbcf kernel/drivers/staging/wimax/i2400m/i2400m-usb.ko
i6050-fw-usb-1.5.sbcf kernel/drivers/staging/wimax/i2400m/i2400m-usb.ko
i915/adlp_dmc_ver2_12.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/adlp_guc_62.0.3.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/adls_dmc_ver2_01.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/bxt_dmc_ver1_07.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/bxt_guc_49.0.1.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/bxt_guc_62.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/bxt_huc_2.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/cml_guc_49.0.1.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/cml_guc_62.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/cml_huc_4.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/cnl_dmc_ver1_07.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/dg1_dmc_ver2_02.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/ehl_guc_49.0.1.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/ehl_guc_62.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/ehl_huc_9.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/glk_dmc_ver1_04.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/glk_guc_49.0.1.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/glk_guc_62.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/glk_huc_4.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/icl_dmc_ver1_09.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/icl_guc_49.0.1.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/icl_guc_62.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/icl_huc_9.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/kbl_dmc_ver1_04.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/kbl_guc_49.0.1.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/kbl_guc_62.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/kbl_huc_4.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/rkl_dmc_ver2_02.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/rkl_dmc_ver2_03.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/skl_dmc_ver1_27.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/skl_guc_49.0.1.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/skl_guc_62.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/skl_huc_2.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/tgl_dmc_ver2_08.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/tgl_guc_49.0.1.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/tgl_huc_7.5.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/tgl_dmc_ver2_12.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/tgl_guc_62.0.0.bin kernel/drivers/gpu/drm/i915/i915.ko
i915/tgl_huc_7.9.3.bin kernel/drivers/gpu/drm/i915/i915.ko
idt82p33xxx.bin kernel/drivers/ptp/ptp_idt82p33.ko
intel/ibt-11-5.ddc kernel/drivers/bluetooth/btintel.ko
intel/ibt-11-5.sfi kernel/drivers/bluetooth/btintel.ko
@@ -841,11 +905,6 @@ isdbt_nova_12mhz.inp kernel/drivers/media/common/siano/smsmdtv.ko
isdbt_pele.inp kernel/drivers/media/common/siano/smsmdtv.ko
isdbt_rio.inp kernel/drivers/media/common/siano/smsmdtv.ko
isdn/ISAR.BIN kernel/drivers/isdn/hardware/mISDN/speedfax.ko
isi4608.bin kernel/drivers/tty/isicom.ko
isi4616.bin kernel/drivers/tty/isicom.ko
isi608.bin kernel/drivers/tty/isicom.ko
isi608em.bin kernel/drivers/tty/isicom.ko
isi616em.bin kernel/drivers/tty/isicom.ko
isight.fw kernel/drivers/usb/misc/isight_firmware.ko
isl3886pci kernel/drivers/net/wireless/intersil/p54/p54pci.ko
isl3886usb kernel/drivers/net/wireless/intersil/p54/p54usb.ko
@@ -873,24 +932,32 @@ iwlwifi-8000C-36.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-8265-36.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-9000-pu-b0-jf-b0-46.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-9260-th-b0-jf-b0-46.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-cc-a0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-ma-a0-gf-a0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-ma-a0-mr-a0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-b0-hr-b0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-b0-jf-b0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-c0-hr-b0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-b0-hr-b0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-b0-jf-b0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuZ-a0-hr-b0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuZ-a0-jf-b0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-so-a0-gf-a0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-so-a0-hr-b0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-so-a0-jf-b0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-SoSnj-a0-gf4-a0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-SoSnj-a0-gf-a0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-SoSnj-a0-hr-b0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-SoSnj-a0-mr-a0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-ty-a0-gf-a0-59.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-bz-a0-gf4-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-bz-a0-gf-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-bz-a0-hr-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-bz-a0-mr-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-cc-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-ma-a0-fm-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-ma-a0-gf4-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-ma-a0-gf-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-ma-a0-hr-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-ma-a0-mr-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-b0-hr-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-b0-jf-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-Qu-c0-hr-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-b0-hr-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuQnj-b0-jf-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuZ-a0-hr-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-QuZ-a0-jf-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-so-a0-gf-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-so-a0-hr-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-so-a0-jf-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-SoSnj-a0-gf4-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-SoSnj-a0-gf-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-SoSnj-a0-hr-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-SoSnj-a0-jf-b0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-SoSnj-a0-mr-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
iwlwifi-ty-a0-gf-a0-66.ucode kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
kaweth/new_code.bin kernel/drivers/net/usb/kaweth.ko
kaweth/new_code_fix.bin kernel/drivers/net/usb/kaweth.ko
kaweth/trigger_code.bin kernel/drivers/net/usb/kaweth.ko
@@ -952,8 +1019,8 @@ liquidio/lio_210nv_nic.bin kernel/drivers/net/ethernet/cavium/liquidio/liquidio.
liquidio/lio_210sv_nic.bin kernel/drivers/net/ethernet/cavium/liquidio/liquidio.ko
liquidio/lio_23xx_nic.bin kernel/drivers/net/ethernet/cavium/liquidio/liquidio.ko
liquidio/lio_410nv_nic.bin kernel/drivers/net/ethernet/cavium/liquidio/liquidio.ko
me2600_firmware.bin kernel/drivers/staging/comedi/drivers/me_daq.ko
me4000_firmware.bin kernel/drivers/staging/comedi/drivers/me4000.ko
me2600_firmware.bin kernel/drivers/comedi/drivers/me_daq.ko
me4000_firmware.bin kernel/drivers/comedi/drivers/me4000.ko
mediatek/mt7610e.bin kernel/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0e.ko
mediatek/mt7610e.bin kernel/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0u.ko
mediatek/mt7610u.bin kernel/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0u.ko
@@ -983,9 +1050,15 @@ mediatek/mt7668pr2h.bin kernel/drivers/bluetooth/btusb.ko
mediatek/mt7915_rom_patch.bin kernel/drivers/net/wireless/mediatek/mt76/mt7915/mt7915e.ko
mediatek/mt7915_wa.bin kernel/drivers/net/wireless/mediatek/mt76/mt7915/mt7915e.ko
mediatek/mt7915_wm.bin kernel/drivers/net/wireless/mediatek/mt76/mt7915/mt7915e.ko
mellanox/mlxsw_spectrum-13.2008.2018.mfa2 kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
mellanox/mlxsw_spectrum2-29.2008.2018.mfa2 kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
mellanox/mlxsw_spectrum3-30.2008.2018.mfa2 kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin kernel/drivers/net/wireless/mediatek/mt76/mt7921/mt7921e.ko
mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin kernel/drivers/net/wireless/mediatek/mt76/mt7921/mt7921e.ko
mediatek/WIFI_RAM_CODE_MT7922_1.bin kernel/drivers/net/wireless/mediatek/mt76/mt7921/mt7921e.ko
mediatek/WIFI_RAM_CODE_MT7961_1.bin kernel/drivers/net/wireless/mediatek/mt76/mt7921/mt7921e.ko
mellanox/mlxsw_spectrum-13.2008.2406.mfa2 kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
mellanox/mlxsw_spectrum2-29.2008.2406.mfa2 kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
mellanox/mlxsw_spectrum3-30.2008.2406.mfa2 kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
microchip/mscc_vsc8574_revb_int8051_29e8.bin kernel/drivers/net/phy/mscc/mscc.ko
microchip/mscc_vsc8584_revb_int8051_fb48.bin kernel/drivers/net/phy/mscc/mscc.ko
mixart/miXart8AES.xlx kernel/sound/pci/mixart/snd-mixart.ko
mixart/miXart8.elf kernel/sound/pci/mixart/snd-mixart.ko
mixart/miXart8.xlx kernel/sound/pci/mixart/snd-mixart.ko
@@ -1053,9 +1126,9 @@ netronome/nic_AMDA0097-0001_8x10.nffw kernel/drivers/net/ethernet/netronome/nfp/
netronome/nic_AMDA0099-0001_1x10_1x25.nffw kernel/drivers/net/ethernet/netronome/nfp/nfp.ko
netronome/nic_AMDA0099-0001_2x10.nffw kernel/drivers/net/ethernet/netronome/nfp/nfp.ko
netronome/nic_AMDA0099-0001_2x25.nffw kernel/drivers/net/ethernet/netronome/nfp/nfp.ko
ni6534a.bin kernel/drivers/staging/comedi/drivers/ni_pcidio.ko
niscrb01.bin kernel/drivers/staging/comedi/drivers/ni_pcidio.ko
niscrb02.bin kernel/drivers/staging/comedi/drivers/ni_pcidio.ko
ni6534a.bin kernel/drivers/comedi/drivers/ni_pcidio.ko
niscrb01.bin kernel/drivers/comedi/drivers/ni_pcidio.ko
niscrb02.bin kernel/drivers/comedi/drivers/ni_pcidio.ko
nvidia/gm200/acr/bl.bin kernel/drivers/gpu/drm/nouveau/nouveau.ko
nvidia/gm200/acr/ucode_load.bin kernel/drivers/gpu/drm/nouveau/nouveau.ko
nvidia/gm200/acr/ucode_unload.bin kernel/drivers/gpu/drm/nouveau/nouveau.ko
@@ -1629,6 +1702,8 @@ radeon/verde_rlc.bin kernel/drivers/gpu/drm/radeon/radeon.ko
radeon/VERDE_rlc.bin kernel/drivers/gpu/drm/radeon/radeon.ko
radeon/verde_smc.bin kernel/drivers/gpu/drm/radeon/radeon.ko
radeon/VERDE_smc.bin kernel/drivers/gpu/drm/radeon/radeon.ko
regulatory.db kernel/net/wireless/cfg80211.ko
regulatory.db.p7s kernel/net/wireless/cfg80211.ko
renesas_usb_fw.mem kernel/drivers/usb/host/xhci-pci.ko
riptide.hex kernel/sound/pci/riptide/snd-riptide.ko
rp2.fw kernel/drivers/tty/serial/rp2.ko
@@ -1673,6 +1748,9 @@ rtl_nic/rtl8153a-2.fw kernel/drivers/net/usb/r8152.ko
rtl_nic/rtl8153a-3.fw kernel/drivers/net/usb/r8152.ko
rtl_nic/rtl8153a-4.fw kernel/drivers/net/usb/r8152.ko
rtl_nic/rtl8153b-2.fw kernel/drivers/net/usb/r8152.ko
rtl_nic/rtl8153c-1.fw kernel/drivers/net/usb/r8152.ko
rtl_nic/rtl8156a-2.fw kernel/drivers/net/usb/r8152.ko
rtl_nic/rtl8156b-2.fw kernel/drivers/net/usb/r8152.ko
rtl_nic/rtl8168d-1.fw kernel/drivers/net/ethernet/realtek/r8169.ko
rtl_nic/rtl8168d-2.fw kernel/drivers/net/ethernet/realtek/r8169.ko
rtl_nic/rtl8168e-1.fw kernel/drivers/net/ethernet/realtek/r8169.ko
@@ -1689,7 +1767,7 @@ rtl_nic/rtl8402-1.fw kernel/drivers/net/ethernet/realtek/r8169.ko
rtl_nic/rtl8411-1.fw kernel/drivers/net/ethernet/realtek/r8169.ko
rtl_nic/rtl8411-2.fw kernel/drivers/net/ethernet/realtek/r8169.ko
rtlwifi/rtl8188efw.bin kernel/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/rtl8188ee.ko
rtlwifi/rtl8188eufw.bin kernel/drivers/staging/rtl8188eu/r8188eu.ko
rtlwifi/rtl8188eufw.bin kernel/drivers/staging/r8188eu/r8188eu.ko
rtlwifi/rtl8192cfw.bin kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.ko
rtlwifi/rtl8192cfwU_B.bin kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.ko
rtlwifi/rtl8192cfwU.bin kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.ko
@@ -1720,6 +1798,7 @@ rtw88/rtw8821c_fw.bin kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821c.ko
rtw88/rtw8822b_fw.bin kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822b.ko
rtw88/rtw8822c_fw.bin kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822c.ko
rtw88/rtw8822c_wow_fw.bin kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822c.ko
rtw89/rtw8852a_fw.bin kernel/drivers/net/wireless/realtek/rtw89/rtw89_core.ko
s5k4ecgx.bin kernel/drivers/media/i2c/s5k4ecgx.ko
sd8385.bin kernel/drivers/net/wireless/marvell/libertas/libertas_sdio.ko
sd8385_helper.bin kernel/drivers/net/wireless/marvell/libertas/libertas_sdio.ko
@@ -1764,6 +1843,7 @@ ti-connectivity/wl128x-fw-5-mr.bin kernel/drivers/net/wireless/ti/wl12xx/wl12xx.
ti-connectivity/wl128x-fw-5-plt.bin kernel/drivers/net/wireless/ti/wl12xx/wl12xx.ko
ti-connectivity/wl128x-fw-5-sr.bin kernel/drivers/net/wireless/ti/wl12xx/wl12xx.ko
ti-connectivity/wl18xx-fw-4.bin kernel/drivers/net/wireless/ti/wl18xx/wl18xx.ko
tigon/tg357766.bin kernel/drivers/net/ethernet/broadcom/tg3.ko
tigon/tg3.bin kernel/drivers/net/ethernet/broadcom/tg3.ko
tigon/tg3_tso5.bin kernel/drivers/net/ethernet/broadcom/tg3.ko
tigon/tg3_tso.bin kernel/drivers/net/ethernet/broadcom/tg3.ko
@@ -1794,9 +1874,9 @@ ueagle-atm/eagleII.fw kernel/drivers/usb/atm/ueagle-atm.ko
ueagle-atm/eagleIII.fw kernel/drivers/usb/atm/ueagle-atm.ko
ueagle-atm/eagleIV.fw kernel/drivers/usb/atm/ueagle-atm.ko
usb8388.bin kernel/drivers/net/wireless/marvell/libertas/usb8xxx.ko
usbduxfast_firmware.bin kernel/drivers/staging/comedi/drivers/usbduxfast.ko
usbdux_firmware.bin kernel/drivers/staging/comedi/drivers/usbdux.ko
usbduxsigma_firmware.bin kernel/drivers/staging/comedi/drivers/usbduxsigma.ko
usbduxfast_firmware.bin kernel/drivers/comedi/drivers/usbduxfast.ko
usbdux_firmware.bin kernel/drivers/comedi/drivers/usbdux.ko
usbduxsigma_firmware.bin kernel/drivers/comedi/drivers/usbduxsigma.ko
v4l-cx231xx-avcore-01.fw kernel/drivers/media/i2c/cx25840/cx25840.ko
v4l-cx23418-apu.fw kernel/drivers/media/pci/cx18/cx18.ko
v4l-cx23418-cpu.fw kernel/drivers/media/pci/cx18/cx18.ko
@@ -21,10 +21,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
index a72b154de7b0..4dd111086466 100755
index 6a2a04d92f42..6c9430ee1a09 100755
--- a/scripts/mkcompile_h
+++ b/scripts/mkcompile_h
@@ -24,10 +24,14 @@ else
@@ -22,10 +22,14 @@ else
VERSION=$KBUILD_BUILD_VERSION
fi
File diff suppressed because it is too large Load Diff
@@ -19,10 +19,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
index ba55851fe132..82675e1ecfb8 100644
index 3326dfced68a..3f1604948ace 100644
--- a/net/bridge/br_stp_if.c
+++ b/net/bridge/br_stp_if.c
@@ -265,10 +265,7 @@ bool br_stp_recalculate_bridge_id(struct net_bridge *br)
@@ -268,10 +268,7 @@ bool br_stp_recalculate_bridge_id(struct net_bridge *br)
return false;
list_for_each_entry(p, &br->port_list, list) {
@@ -55,10 +55,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 files changed, 111 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index ee85be64b680..a38a8e44422e 100644
index 6c1254a22225..91c091c0f2c9 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -3653,6 +3653,15 @@
@@ -4035,6 +4035,15 @@
Also, it enforces the PCI Local Bus spec
rule that those bits should be 0 in system reset
events (useful for kexec/kdump cases).
@@ -75,10 +75,10 @@ index ee85be64b680..a38a8e44422e 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 872cd0cecf6d..127401e15384 100644
index bc680bdcbbed..faa53ccc9b69 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -193,6 +193,106 @@ static int __init pci_apply_final_quirks(void)
@@ -194,6 +194,106 @@ static int __init pci_apply_final_quirks(void)
}
fs_initcall_sync(pci_apply_final_quirks);
@@ -185,7 +185,7 @@ index 872cd0cecf6d..127401e15384 100644
/*
* Decoding should be disabled for a PCI device during BAR sizing to avoid
* conflict. But doing so may cause problems on host bridge and perhaps other
@@ -4886,6 +4986,8 @@ static const struct pci_dev_acs_enabled {
@@ -4972,6 +5072,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 },
@@ -13,10 +13,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 16c777d45eb9..8c5341f9a271 100644
index d11c581ce9b9..0b0ce6979370 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. */
@@ -1,47 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Fabian Ebner <f.ebner@proxmox.com>
Date: Wed, 28 Jul 2021 08:55:31 +0200
Subject: [PATCH] io_uring: don't block level reissue off completion path
Some setups, like SCSI, can throw spurious -EAGAIN off the softirq
completion path. Normally we expect this to happen inline as part
of submission, but apparently SCSI has a weird corner case where it
can happen as part of normal completions.
This should be solved by having the -EAGAIN bubble back up the stack
as part of submission, but previous attempts at this failed and we're
not just quite there yet. Instead we currently use REQ_F_REISSUE to
handle this case.
For now, catch it in io_rw_should_reissue() and prevent a reissue
from a bogus path.
Upstream mail:
https://lore.kernel.org/io-uring/20210727165811.284510-3-axboe@kernel.dk/T/#u
Originally-by: Jens Axboe <axboe@kernel.dk>
[backport]
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
fs/io_uring.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/fs/io_uring.c b/fs/io_uring.c
index b9353cf8aab9..50d1920d2536 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -2746,6 +2746,13 @@ static bool io_rw_reissue(struct io_kiocb *req, long res)
if (percpu_ref_is_dying(&req->ctx->refs))
return false;
+ /*
+ * Play it safe and assume not safe to re-import and reissue if we're
+ * not in the original thread group (or in task context).
+ */
+ if (!same_thread_group(req->task, current) || !in_task())
+ return false;
+
lockdep_assert_held(&req->ctx->uring_lock);
ret = io_sq_thread_acquire_mm_files(req->ctx, req);
@@ -10,13 +10,13 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index 5cc9226f8e67..7dd94b012533 100644
index f80bc2ca888a..6ca7a4b8a8f4 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -10392,7 +10392,7 @@ static void netdev_wait_allrefs(struct net_device *dev)
refcnt = netdev_refcnt_read(dev);
if (refcnt && time_after(jiffies, warning_time + 10 * HZ)) {
@@ -10562,7 +10562,7 @@ static void netdev_wait_allrefs(struct net_device *dev)
if (refcnt != 1 &&
time_after(jiffies, warning_time +
netdev_unregister_timeout_secs * HZ)) {
- 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, refcnt);
@@ -1,12 +1,12 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
Date: Mon, 2 Aug 2021 10:22:30 +0200
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Mon, 27 Sep 2021 11:28:39 +0200
Subject: [PATCH] Revert "PCI: Coalesce host bridge contiguous apertures"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit c2ff8072deba40887560dc73dd2e558ec539ea09.
This reverts commit ab20e43b20b60f5cc8e2ea3763ffa388158469ac.
was reverted upstream because of reports similar to
@@ -15,27 +15,27 @@ Link: https://lore.kernel.org/r/20210709231529.GA3270116@roeck-us.net
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
drivers/pci/probe.c | 52 +++++----------------------------------------
1 file changed, 5 insertions(+), 47 deletions(-)
drivers/pci/probe.c | 50 ++++-----------------------------------------
1 file changed, 4 insertions(+), 46 deletions(-)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index b5fdf42c4c2a..be51670572fa 100644
index 103ee42f6717..6b73e9179111 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -19,7 +19,6 @@
#include <linux/hypervisor.h>
@@ -20,7 +20,6 @@
#include <linux/irqdomain.h>
#include <linux/pm_runtime.h>
#include <linux/bitfield.h>
-#include <linux/list_sort.h>
#include "pci.h"
#define CARDBUS_LATENCY_TIMER 176 /* secondary latency timer */
@@ -875,31 +874,14 @@ static void pci_set_bus_msi_domain(struct pci_bus *bus)
@@ -881,31 +880,14 @@ static void pci_set_bus_msi_domain(struct pci_bus *bus)
dev_set_msi_domain(&bus->dev, d);
}
-static int res_cmp(void *priv, const struct list_head *a,
- const struct list_head *b)
- const struct list_head *b)
-{
- struct resource_entry *entry1, *entry2;
-
@@ -65,7 +65,7 @@ index b5fdf42c4c2a..be51670572fa 100644
char addr[64], *fmt;
const char *name;
int err;
@@ -977,35 +959,11 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)
@@ -988,35 +970,11 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)
if (nr_node_ids > 1 && pcibus_to_node(bus) == NUMA_NO_NODE)
dev_warn(&bus->dev, "Unknown NUMA node; performance will be reduced\n");
@@ -92,14 +92,13 @@ index b5fdf42c4c2a..be51670572fa 100644
-
/* Add initial resources to the bus */
resource_list_for_each_entry_safe(window, n, &resources) {
- offset = window->offset;
- res = window->res;
+ list_move_tail(&window->node, &bridge->windows);
offset = window->offset;
res = window->res;
- if (!res->end)
- continue;
-
list_move_tail(&window->node, &bridge->windows);
+ offset = window->offset;
+ res = window->res;
- list_move_tail(&window->node, &bridge->windows);
if (res->flags & IORESOURCE_BUS)
pci_bus_insert_busn_res(bus, bus->number, res->end);
@@ -52,14 +52,14 @@ Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
drivers/pci/probe.c | 33 ++++++++++++++++++++++++++++-----
1 file changed, 28 insertions(+), 5 deletions(-)
drivers/pci/probe.c | 31 +++++++++++++++++++++++++++----
1 file changed, 27 insertions(+), 4 deletions(-)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index be51670572fa..133f5d2b189d 100644
index 6b73e9179111..50eef5b211f4 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -877,11 +877,11 @@ static void pci_set_bus_msi_domain(struct pci_bus *bus)
@@ -883,11 +883,11 @@ static void pci_set_bus_msi_domain(struct pci_bus *bus)
static int pci_register_host_bridge(struct pci_host_bridge *bridge)
{
struct device *parent = bridge->dev.parent;
@@ -74,7 +74,7 @@ index be51670572fa..133f5d2b189d 100644
char addr[64], *fmt;
const char *name;
int err;
@@ -959,11 +959,34 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)
@@ -970,11 +970,34 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)
if (nr_node_ids > 1 && pcibus_to_node(bus) == NUMA_NO_NODE)
dev_warn(&bus->dev, "Unknown NUMA node; performance will be reduced\n");
@@ -100,14 +100,13 @@ index be51670572fa..133f5d2b189d 100644
+
/* Add initial resources to the bus */
resource_list_for_each_entry_safe(window, n, &resources) {
+ offset = window->offset;
+ res = window->res;
- list_move_tail(&window->node, &bridge->windows);
offset = window->offset;
res = window->res;
+ if (!res->end)
+ continue;
+
list_move_tail(&window->node, &bridge->windows);
- offset = window->offset;
- res = window->res;
+ list_move_tail(&window->node, &bridge->windows);
if (res->flags & IORESOURCE_BUS)
pci_bus_insert_busn_res(bus, bus->number, res->end);
@@ -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 28faea9b5da6..9cfb8a026adb 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -331,7 +331,7 @@ config PAHOLE_HAS_SPLIT_BTF
def_bool PAHOLE_VERSION >= 119
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,76 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Valentin Vidic <vvidic@valentin-vidic.from.hr>
Date: Wed, 29 Sep 2021 20:06:54 +0200
Subject: [PATCH] ocfs2: mount fails with buffer overflow in strlen
Starting with kernel 5.11 built with CONFIG_FORTIFY_SOURCE mouting an
ocfs2 filesystem with either o2cb or pcmk cluster stack fails with the
trace below. Problem seems to be that strings for cluster stack and
cluster name are not guaranteed to be null terminated in the disk
representation, while strlcpy assumes that the source string is always
null terminated. This causes a read outside of the source string
triggering the buffer overflow detection.
detected buffer overflow in strlen
------------[ cut here ]------------
kernel BUG at lib/string.c:1149!
invalid opcode: 0000 [#1] SMP PTI
CPU: 1 PID: 910 Comm: mount.ocfs2 Not tainted 5.14.0-1-amd64 #1
Debian 5.14.6-2
RIP: 0010:fortify_panic+0xf/0x11
...
Call Trace:
ocfs2_initialize_super.isra.0.cold+0xc/0x18 [ocfs2]
ocfs2_fill_super+0x359/0x19b0 [ocfs2]
mount_bdev+0x185/0x1b0
? ocfs2_remount+0x440/0x440 [ocfs2]
legacy_get_tree+0x27/0x40
vfs_get_tree+0x25/0xb0
path_mount+0x454/0xa20
__x64_sys_mount+0x103/0x140
do_syscall_64+0x3b/0xc0
entry_SYSCALL_64_after_hwframe+0x44/0xae
Signed-off-by: Valentin Vidic <vvidic@valentin-vidic.from.hr>
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
fs/ocfs2/super.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index 2febc76e9de7..435f82892432 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -2171,11 +2171,17 @@ static int ocfs2_initialize_super(struct super_block *sb,
}
if (ocfs2_clusterinfo_valid(osb)) {
+ /*
+ * ci_stack and ci_cluster in ocfs2_cluster_info may not be null
+ * terminated, so make sure no overflow happens here by using
+ * memcpy. Destination strings will always be null terminated
+ * because osb is allocated using kzalloc.
+ */
osb->osb_stackflags =
OCFS2_RAW_SB(di)->s_cluster_info.ci_stackflags;
- strlcpy(osb->osb_cluster_stack,
+ memcpy(osb->osb_cluster_stack,
OCFS2_RAW_SB(di)->s_cluster_info.ci_stack,
- OCFS2_STACK_LABEL_LEN + 1);
+ OCFS2_STACK_LABEL_LEN);
if (strlen(osb->osb_cluster_stack) != OCFS2_STACK_LABEL_LEN) {
mlog(ML_ERROR,
"couldn't mount because of an invalid "
@@ -2184,9 +2190,9 @@ static int ocfs2_initialize_super(struct super_block *sb,
status = -EINVAL;
goto bail;
}
- strlcpy(osb->osb_cluster_name,
+ memcpy(osb->osb_cluster_name,
OCFS2_RAW_SB(di)->s_cluster_info.ci_cluster,
- OCFS2_CLUSTER_NAME_LEN + 1);
+ OCFS2_CLUSTER_NAME_LEN);
} else {
/* The empty string is identical with classic tools that
* don't know about s_cluster_info. */
@@ -0,0 +1,147 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Wolfgang Bumiller <w.bumiller@proxmox.com>
Date: Tue, 11 Jan 2022 09:31:59 +0100
Subject: [PATCH] blk-cgroup: always terminate io.stat lines
With the removal of seq_get_buf in blkcg_print_one_stat, we
cannot make adding the newline conditional on there being
relevant stats because the name was already written out
unconditionally.
Otherwise we may end up with multiple device names in one
line which is confusing and doesn't follow the nested-keyed
file format.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Fixes: 252c651a4c85 ("blk-cgroup: stop using seq_get_buf")
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
block/blk-cgroup.c | 9 ++-------
block/blk-iocost.c | 5 ++---
block/blk-iolatency.c | 8 +++-----
include/linux/blk-cgroup.h | 2 +-
4 files changed, 8 insertions(+), 16 deletions(-)
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index fd81a7370864..4677829e4ae3 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -900,7 +900,6 @@ static void blkcg_print_one_stat(struct blkcg_gq *blkg, struct seq_file *s)
{
struct blkg_iostat_set *bis = &blkg->iostat;
u64 rbytes, wbytes, rios, wios, dbytes, dios;
- bool has_stats = false;
const char *dname;
unsigned seq;
int i;
@@ -926,14 +925,12 @@ static void blkcg_print_one_stat(struct blkcg_gq *blkg, struct seq_file *s)
} while (u64_stats_fetch_retry(&bis->sync, seq));
if (rbytes || wbytes || rios || wios) {
- has_stats = true;
seq_printf(s, "rbytes=%llu wbytes=%llu rios=%llu wios=%llu dbytes=%llu dios=%llu",
rbytes, wbytes, rios, wios,
dbytes, dios);
}
if (blkcg_debug_stats && atomic_read(&blkg->use_delay)) {
- has_stats = true;
seq_printf(s, " use_delay=%d delay_nsec=%llu",
atomic_read(&blkg->use_delay),
atomic64_read(&blkg->delay_nsec));
@@ -945,12 +942,10 @@ static void blkcg_print_one_stat(struct blkcg_gq *blkg, struct seq_file *s)
if (!blkg->pd[i] || !pol->pd_stat_fn)
continue;
- if (pol->pd_stat_fn(blkg->pd[i], s))
- has_stats = true;
+ pol->pd_stat_fn(blkg->pd[i], s);
}
- if (has_stats)
- seq_printf(s, "\n");
+ seq_puts(s, "\n");
}
static int blkcg_print_stat(struct seq_file *sf, void *v)
diff --git a/block/blk-iocost.c b/block/blk-iocost.c
index 645a589edda8..b0846da38eda 100644
--- a/block/blk-iocost.c
+++ b/block/blk-iocost.c
@@ -3028,13 +3028,13 @@ static void ioc_pd_free(struct blkg_policy_data *pd)
kfree(iocg);
}
-static bool ioc_pd_stat(struct blkg_policy_data *pd, struct seq_file *s)
+static void ioc_pd_stat(struct blkg_policy_data *pd, struct seq_file *s)
{
struct ioc_gq *iocg = pd_to_iocg(pd);
struct ioc *ioc = iocg->ioc;
if (!ioc->enabled)
- return false;
+ return;
if (iocg->level == 0) {
unsigned vp10k = DIV64_U64_ROUND_CLOSEST(
@@ -3050,7 +3050,6 @@ static bool ioc_pd_stat(struct blkg_policy_data *pd, struct seq_file *s)
iocg->last_stat.wait_us,
iocg->last_stat.indebt_us,
iocg->last_stat.indelay_us);
- return true;
}
static u64 ioc_weight_prfill(struct seq_file *sf, struct blkg_policy_data *pd,
diff --git a/block/blk-iolatency.c b/block/blk-iolatency.c
index bdef8395af6e..a5f13743a280 100644
--- a/block/blk-iolatency.c
+++ b/block/blk-iolatency.c
@@ -906,7 +906,7 @@ static int iolatency_print_limit(struct seq_file *sf, void *v)
return 0;
}
-static bool iolatency_ssd_stat(struct iolatency_grp *iolat, struct seq_file *s)
+static void iolatency_ssd_stat(struct iolatency_grp *iolat, struct seq_file *s)
{
struct latency_stat stat;
int cpu;
@@ -929,17 +929,16 @@ static bool iolatency_ssd_stat(struct iolatency_grp *iolat, struct seq_file *s)
(unsigned long long)stat.ps.missed,
(unsigned long long)stat.ps.total,
iolat->rq_depth.max_depth);
- return true;
}
-static bool iolatency_pd_stat(struct blkg_policy_data *pd, struct seq_file *s)
+static void iolatency_pd_stat(struct blkg_policy_data *pd, struct seq_file *s)
{
struct iolatency_grp *iolat = pd_to_lat(pd);
unsigned long long avg_lat;
unsigned long long cur_win;
if (!blkcg_debug_stats)
- return false;
+ return;
if (iolat->ssd)
return iolatency_ssd_stat(iolat, s);
@@ -952,7 +951,6 @@ static bool iolatency_pd_stat(struct blkg_policy_data *pd, struct seq_file *s)
else
seq_printf(s, " depth=%u avg_lat=%llu win=%llu",
iolat->rq_depth.max_depth, avg_lat, cur_win);
- return true;
}
static struct blkg_policy_data *iolatency_pd_alloc(gfp_t gfp,
diff --git a/include/linux/blk-cgroup.h b/include/linux/blk-cgroup.h
index bc5c04d711bb..618359e3beca 100644
--- a/include/linux/blk-cgroup.h
+++ b/include/linux/blk-cgroup.h
@@ -153,7 +153,7 @@ typedef void (blkcg_pol_online_pd_fn)(struct blkg_policy_data *pd);
typedef void (blkcg_pol_offline_pd_fn)(struct blkg_policy_data *pd);
typedef void (blkcg_pol_free_pd_fn)(struct blkg_policy_data *pd);
typedef void (blkcg_pol_reset_pd_stats_fn)(struct blkg_policy_data *pd);
-typedef bool (blkcg_pol_stat_pd_fn)(struct blkg_policy_data *pd,
+typedef void (blkcg_pol_stat_pd_fn)(struct blkg_policy_data *pd,
struct seq_file *s);
struct blkcg_policy {
@@ -0,0 +1,34 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Tue, 25 Jan 2022 10:12:19 +0100
Subject: [PATCH] drivers/firmware: Don't mark as busy the simple-framebuffer
IO resource
The sysfb_create_simplefb() function requests a IO memory resource for the
simple-framebuffer platform device, but it also marks it as busy which can
lead to drivers requesting the same memory resource to fail.
Let's drop the IORESOURCE_BUSY flag and let drivers to request it as busy
instead.
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
drivers/firmware/sysfb_simplefb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/firmware/sysfb_simplefb.c b/drivers/firmware/sysfb_simplefb.c
index fd4fa923088a..ca907f7e76c6 100644
--- a/drivers/firmware/sysfb_simplefb.c
+++ b/drivers/firmware/sysfb_simplefb.c
@@ -99,7 +99,7 @@ __init struct platform_device *sysfb_create_simplefb(const struct screen_info *s
/* setup IORESOURCE_MEM as framebuffer memory */
memset(&res, 0, sizeof(res));
- res.flags = IORESOURCE_MEM | IORESOURCE_BUSY;
+ res.flags = IORESOURCE_MEM;
res.name = simplefb_resname;
res.start = base;
res.end = res.start + length - 1;
@@ -0,0 +1,63 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Zimmermann <tzimmermann@suse.de>
Date: Tue, 25 Jan 2022 10:12:20 +0100
Subject: [PATCH] drm/simpledrm: Request memory region in driver
Requesting the framebuffer memory in simpledrm marks the memory
range as busy. This used to be done by the firmware sysfb code,
but the driver is the correct place.
v2:
* use I/O memory if request_mem_region() fails (Jocelyn)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
drivers/gpu/drm/tiny/simpledrm.c | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/tiny/simpledrm.c b/drivers/gpu/drm/tiny/simpledrm.c
index f3c2c173ca4b..da58c0d0f44d 100644
--- a/drivers/gpu/drm/tiny/simpledrm.c
+++ b/drivers/gpu/drm/tiny/simpledrm.c
@@ -525,21 +525,33 @@ static int simpledrm_device_init_mm(struct simpledrm_device *sdev)
{
struct drm_device *dev = &sdev->dev;
struct platform_device *pdev = sdev->pdev;
- struct resource *mem;
+ struct resource *res, *mem;
void __iomem *screen_base;
int ret;
- mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!mem)
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
return -EINVAL;
- ret = devm_aperture_acquire_from_firmware(dev, mem->start, resource_size(mem));
+ ret = devm_aperture_acquire_from_firmware(dev, res->start, resource_size(res));
if (ret) {
drm_err(dev, "could not acquire memory range %pr: error %d\n",
- mem, ret);
+ res, ret);
return ret;
}
+ mem = devm_request_mem_region(&pdev->dev, res->start, resource_size(res),
+ sdev->dev.driver->name);
+ if (!mem) {
+ /*
+ * We cannot make this fatal. Sometimes this comes from magic
+ * spaces our resource handlers simply don't know about. Use
+ * the I/O-memory resource as-is and try to map that instead.
+ */
+ drm_warn(dev, "could not acquire memory region %pr\n", res);
+ mem = res;
+ }
+
screen_base = devm_ioremap_wc(&pdev->dev, mem->start,
resource_size(mem));
if (!screen_base)
@@ -0,0 +1,148 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Zimmermann <tzimmermann@suse.de>
Date: Tue, 25 Jan 2022 10:12:21 +0100
Subject: [PATCH] fbdev/simplefb: Request memory region in driver
Requesting the framebuffer memory in simpledrm marks the memory
range as busy. This used to be done by the firmware sysfb code,
but the driver is the correct place.
v2:
* store memory region in struct for later cleanup (Javier)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
drivers/video/fbdev/simplefb.c | 65 +++++++++++++++++++++++-----------
1 file changed, 45 insertions(+), 20 deletions(-)
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
index a2e3a4690025..8acfb12abfee 100644
--- a/drivers/video/fbdev/simplefb.c
+++ b/drivers/video/fbdev/simplefb.c
@@ -66,7 +66,21 @@ static int simplefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
return 0;
}
-struct simplefb_par;
+struct simplefb_par {
+ u32 palette[PSEUDO_PALETTE_SIZE];
+ struct resource *mem;
+#if defined CONFIG_OF && defined CONFIG_COMMON_CLK
+ bool clks_enabled;
+ unsigned int clk_count;
+ struct clk **clks;
+#endif
+#if defined CONFIG_OF && defined CONFIG_REGULATOR
+ bool regulators_enabled;
+ u32 regulator_count;
+ struct regulator **regulators;
+#endif
+};
+
static void simplefb_clocks_destroy(struct simplefb_par *par);
static void simplefb_regulators_destroy(struct simplefb_par *par);
@@ -76,12 +90,18 @@ static void simplefb_regulators_destroy(struct simplefb_par *par);
*/
static void simplefb_destroy(struct fb_info *info)
{
+ struct simplefb_par *par = info->par;
+ struct resource *mem = par->mem;
+
simplefb_regulators_destroy(info->par);
simplefb_clocks_destroy(info->par);
if (info->screen_base)
iounmap(info->screen_base);
framebuffer_release(info);
+
+ if (mem)
+ release_mem_region(mem->start, resource_size(mem));
}
static const struct fb_ops simplefb_ops = {
@@ -175,20 +195,6 @@ static int simplefb_parse_pd(struct platform_device *pdev,
return 0;
}
-struct simplefb_par {
- u32 palette[PSEUDO_PALETTE_SIZE];
-#if defined CONFIG_OF && defined CONFIG_COMMON_CLK
- bool clks_enabled;
- unsigned int clk_count;
- struct clk **clks;
-#endif
-#if defined CONFIG_OF && defined CONFIG_REGULATOR
- bool regulators_enabled;
- u32 regulator_count;
- struct regulator **regulators;
-#endif
-};
-
#if defined CONFIG_OF && defined CONFIG_COMMON_CLK
/*
* Clock handling code.
@@ -411,7 +417,7 @@ static int simplefb_probe(struct platform_device *pdev)
struct simplefb_params params;
struct fb_info *info;
struct simplefb_par *par;
- struct resource *mem;
+ struct resource *res, *mem;
/*
* Generic drivers must not be registered if a framebuffer exists.
@@ -436,15 +442,28 @@ static int simplefb_probe(struct platform_device *pdev)
if (ret)
return ret;
- mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!mem) {
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res) {
dev_err(&pdev->dev, "No memory resource\n");
return -EINVAL;
}
+ mem = request_mem_region(res->start, resource_size(res), "simplefb");
+ if (!mem) {
+ /*
+ * We cannot make this fatal. Sometimes this comes from magic
+ * spaces our resource handlers simply don't know about. Use
+ * the I/O-memory resource as-is and try to map that instead.
+ */
+ dev_warn(&pdev->dev, "simplefb: cannot reserve video memory at %pR\n", res);
+ mem = res;
+ }
+
info = framebuffer_alloc(sizeof(struct simplefb_par), &pdev->dev);
- if (!info)
- return -ENOMEM;
+ if (!info) {
+ ret = -ENOMEM;
+ goto error_release_mem_region;
+ }
platform_set_drvdata(pdev, info);
par = info->par;
@@ -501,6 +520,9 @@ static int simplefb_probe(struct platform_device *pdev)
info->var.xres, info->var.yres,
info->var.bits_per_pixel, info->fix.line_length);
+ if (mem != res)
+ par->mem = mem; /* release in clean-up handler */
+
ret = register_framebuffer(info);
if (ret < 0) {
dev_err(&pdev->dev, "Unable to register simplefb: %d\n", ret);
@@ -519,6 +541,9 @@ static int simplefb_probe(struct platform_device *pdev)
iounmap(info->screen_base);
error_fb_release:
framebuffer_release(info);
+error_release_mem_region:
+ if (mem != res)
+ release_mem_region(mem->start, resource_size(mem));
return ret;
}
@@ -0,0 +1,81 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Olga Kornievskaia <kolga@netapp.com>
Date: Wed, 16 Mar 2022 18:24:26 -0400
Subject: [PATCH] NFSv4.1 provide mount option to toggle trunking discovery
Introduce a new mount option -- trunkdiscovery,notrunkdiscovery -- to
toggle whether or not the client will engage in actively discovery
of trunking locations.
v2 make notrunkdiscovery default
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Fixes: 1976b2b31462 ("NFSv4.1 query for fs_location attr on a new file system")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
(cherry picked from commit a43bf604446414103b7535f38e739b65601c4fb2)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
fs/nfs/client.c | 3 ++-
fs/nfs/fs_context.c | 8 ++++++++
include/linux/nfs_fs_sb.h | 1 +
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 090b16890e3d..f303e96ce165 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -861,7 +861,8 @@ int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, struct nfs
}
if (clp->rpc_ops->discover_trunking != NULL &&
- (server->caps & NFS_CAP_FS_LOCATIONS)) {
+ (server->caps & NFS_CAP_FS_LOCATIONS &&
+ (server->flags & NFS_MOUNT_TRUNK_DISCOVERY))) {
error = clp->rpc_ops->discover_trunking(server, mntfh);
if (error < 0)
return error;
diff --git a/fs/nfs/fs_context.c b/fs/nfs/fs_context.c
index fb3cad38b149..0166370f088e 100644
--- a/fs/nfs/fs_context.c
+++ b/fs/nfs/fs_context.c
@@ -79,6 +79,7 @@ enum nfs_param {
Opt_source,
Opt_tcp,
Opt_timeo,
+ Opt_trunkdiscovery,
Opt_udp,
Opt_v,
Opt_vers,
@@ -179,6 +180,7 @@ static const struct fs_parameter_spec nfs_fs_parameters[] = {
fsparam_string("source", Opt_source),
fsparam_flag ("tcp", Opt_tcp),
fsparam_u32 ("timeo", Opt_timeo),
+ fsparam_flag_no("trunkdiscovery", Opt_trunkdiscovery),
fsparam_flag ("udp", Opt_udp),
fsparam_flag ("v2", Opt_v),
fsparam_flag ("v3", Opt_v),
@@ -528,6 +530,12 @@ static int nfs_fs_context_parse_param(struct fs_context *fc,
else
ctx->flags &= ~NFS_MOUNT_NOCTO;
break;
+ case Opt_trunkdiscovery:
+ if (result.negated)
+ ctx->flags &= ~NFS_MOUNT_TRUNK_DISCOVERY;
+ else
+ ctx->flags |= NFS_MOUNT_TRUNK_DISCOVERY;
+ break;
case Opt_ac:
if (result.negated)
ctx->flags |= NFS_MOUNT_NOAC;
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h
index 5e065f16d061..324bdd653ad4 100644
--- a/include/linux/nfs_fs_sb.h
+++ b/include/linux/nfs_fs_sb.h
@@ -157,6 +157,7 @@ struct nfs_server {
#define NFS_MOUNT_SOFTREVAL 0x800000
#define NFS_MOUNT_WRITE_EAGER 0x01000000
#define NFS_MOUNT_WRITE_WAIT 0x02000000
+#define NFS_MOUNT_TRUNK_DISCOVERY 0x04000000
unsigned int fattr_valid; /* Valid attributes */
unsigned int caps; /* server capabilities */
@@ -0,0 +1,69 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Marc Bevand <m@zorinaq.com>
Date: Tue, 21 Dec 2021 15:31:12 -0800
Subject: [PATCH] EDAC/amd64: Add PCI device IDs for family 19h model 50h
Add the new family 19h model 50h PCI IDs (device 18h functions 0 and 6)
to support Ryzen 5000 APUs ("Cezanne").
Signed-off-by: Marc Bevand <m@zorinaq.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
drivers/edac/amd64_edac.c | 15 +++++++++++++++
drivers/edac/amd64_edac.h | 3 +++
2 files changed, 18 insertions(+)
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index c6c58f01067f..f8ef2edf8abf 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -2660,6 +2660,16 @@ static struct amd64_family_type family_types[] = {
.dbam_to_cs = f17_addr_mask_to_cs_size,
}
},
+ [F19_M50H_CPUS] = {
+ .ctl_name = "F19h_M50h",
+ .f0_id = PCI_DEVICE_ID_AMD_19H_M50H_DF_F0,
+ .f6_id = PCI_DEVICE_ID_AMD_19H_M50H_DF_F6,
+ .max_mcs = 2,
+ .ops = {
+ .early_channel_count = f17_early_channel_count,
+ .dbam_to_cs = f17_addr_mask_to_cs_size,
+ }
+ },
};
/*
@@ -3706,6 +3716,11 @@ static struct amd64_family_type *per_family_init(struct amd64_pvt *pvt)
pvt->ops = &family_types[F17_M70H_CPUS].ops;
fam_type->ctl_name = "F19h_M20h";
break;
+ } else if (pvt->model >= 0x50 && pvt->model <= 0x5f) {
+ fam_type = &family_types[F19_M50H_CPUS];
+ pvt->ops = &family_types[F19_M50H_CPUS].ops;
+ fam_type->ctl_name = "F19h_M50h";
+ break;
} else if (pvt->model >= 0xa0 && pvt->model <= 0xaf) {
fam_type = &family_types[F19_M10H_CPUS];
pvt->ops = &family_types[F19_M10H_CPUS].ops;
diff --git a/drivers/edac/amd64_edac.h b/drivers/edac/amd64_edac.h
index 650cab401e21..352bda9803f6 100644
--- a/drivers/edac/amd64_edac.h
+++ b/drivers/edac/amd64_edac.h
@@ -128,6 +128,8 @@
#define PCI_DEVICE_ID_AMD_19H_DF_F6 0x1656
#define PCI_DEVICE_ID_AMD_19H_M10H_DF_F0 0x14ad
#define PCI_DEVICE_ID_AMD_19H_M10H_DF_F6 0x14b3
+#define PCI_DEVICE_ID_AMD_19H_M50H_DF_F0 0x166a
+#define PCI_DEVICE_ID_AMD_19H_M50H_DF_F6 0x1670
/*
* Function 1 - Address Map
@@ -301,6 +303,7 @@ enum amd_families {
F17_M70H_CPUS,
F19_CPUS,
F19_M10H_CPUS,
+ F19_M50H_CPUS,
NUM_FAMILIES,
};
@@ -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 2a45f026ee11..ba8617964982 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 */
@@ -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 98b25a7af8ce..0616ee9cd977 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2638,6 +2638,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 0616ee9cd977..6866f09a5b53 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -5829,3 +5829,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 fb09cd22cb7f..0b2bbcce321a 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;
@@ -482,6 +483,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 7e817493667d..f62bce0a74f0 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -12695,6 +12695,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();
mitigate_smt_rsb &= boot_cpu_has_bug(X86_BUG_SMT_RSB) && cpu_smt_possible();
return 0;
}
@@ -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 b2a98914a63c..4b1514a174b0 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -200,6 +200,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;
@@ -1464,8 +1465,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_op)(struct kvm *kvm, void __user *argp);
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 6866f09a5b53..ae6f89b79ef2 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2566,16 +2566,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;
@@ -2625,15 +2627,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 0b2bbcce321a..3b37b3e17379 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;
@@ -233,7 +234,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 af33aafcb410..76a35d939b9f 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -4328,12 +4328,14 @@ static int svm_smi_allowed(struct kvm_vcpu *vcpu, bool for_injection)
return !svm_smi_blocked(vcpu);
}
-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;
@@ -4375,7 +4377,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;
@@ -4383,6 +4385,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 ab7141c1def4..f844864b5763 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -7652,7 +7652,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);
@@ -7666,7 +7666,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 f62bce0a74f0..3d282bcce9ef 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -7489,9 +7489,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)
@@ -9370,25 +9370,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 ae6f89b79ef2..36c45c89563c 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2343,25 +2343,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
@@ -2432,63 +2424,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
@@ -2635,7 +2610,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 3d282bcce9ef..c6b5c0543931 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -9224,22 +9224,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
@@ -9260,54 +9256,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
@@ -9378,7 +9367,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 36c45c89563c..eb2f5e43f6ad 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2357,24 +2357,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
@@ -2468,71 +2460,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;
}
@@ -2607,7 +2577,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 c6b5c0543931..f309248fa888 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -9239,20 +9239,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
@@ -9300,57 +9297,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
@@ -9364,7 +9355,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 4b1514a174b0..95d609e67dd0 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -1936,12 +1936,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 alloc_all_memslots_rmaps(struct kvm *kvm);
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 76a35d939b9f..ba3861d5114b 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -4334,15 +4334,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];
@@ -4381,28 +4377,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;
@@ -4427,7 +4418,7 @@ static int svm_leave_smm(struct kvm_vcpu *vcpu, const union kvm_smram *smram)
vmcb12 = map.hva;
nested_load_control_from_vmcb12(svm, &vmcb12->control);
- 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 ba3861d5114b..ebbd2d3b4e53 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -4337,6 +4337,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 eb2f5e43f6ad..7f5710c34f4e 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2419,7 +2419,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;
@@ -2454,8 +2454,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
@@ -2504,6 +2512,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 3b37b3e17379..a64c190abf28 100644
--- a/arch/x86/kvm/kvm_emulate.h
+++ b/arch/x86/kvm/kvm_emulate.h
@@ -231,6 +231,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);
@@ -497,7 +498,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];
@@ -545,6 +547,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);
@@ -604,7 +607,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];
@@ -642,7 +645,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) \
@@ -663,7 +665,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 f309248fa888..4ea0e8112c42 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -7476,6 +7476,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;
@@ -7545,6 +7550,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,
@@ -9294,6 +9300,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
@@ -9342,6 +9350,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
@@ -9378,6 +9388,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;