Compare commits

..

586 Commits

Author SHA1 Message Date
Thomas Lamprecht 7d6cee459e bump version to 6.2.16-20
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 14:17:55 +01:00
Thomas Lamprecht 154a9b8606 update ZFS to 2.1.14
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 14:16:42 +01:00
Thomas Lamprecht ddd91a3b05 rebase patches on top of Ubuntu-6.2.0-39.40
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 12:47:24 +01:00
Thomas Lamprecht b5335f0007 update sources to Ubuntu-6.2.0-39.40
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 12:47:24 +01:00
Thomas Lamprecht f65216536a bump version to 6.2.16-19
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-24 14:08:10 +02:00
Thomas Lamprecht 6d825fcff3 backport constraining guest-supported xfeatures only at KVM_GET_XSAVE{2}
This improves compatibility for guests w.r.t. live-migration, or live
snapshot rollback, to hosts with less (FPU) xfeatures supported, as
long as the set of features that was actually exposed to the guest is
still supported.

This improves on the ad856280ddea ("x86/kvm/fpu: Limit guest
user_xfeatures to supported bits of XCR0") bug fix.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-21 15:16:56 +02:00
Thomas Lamprecht 9a2449d7c2 normalize patches
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-21 15:15:35 +02:00
Stefan Sterz 3202de9857 backport exposing FLUSHBYASID when running nested VMs on AMD CPUs
this exposes the FLUSHBYASID CPU flag to nested VMs when running on an
AMD CPU. also reverts a made up check that would advertise
FLUSHBYASID as not supported. this enable certain modern hypervisors
such as VMWare ESXi 7 and Workstation 17 to run nested VMs properly
again.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-10-20 09:42:01 +02:00
Thomas Lamprecht a5f38dcb1b d/changelog: fix typo
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-11 18:11:41 +02:00
Thomas Lamprecht 69b6f57725 update ABI file for 6.2.16-18-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-11 17:28:39 +02:00
Thomas Lamprecht 498d87be50 bump version to 6.2.16-18
merge both versions, I saw the fix for AMD slightly to late and
previous build wasn't made public already anyway

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-11 17:05:39 +02:00
Thomas Lamprecht 04f267a5c7 backport fix for AMD erratum #1485 on Zen4-based CPUs
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-11 17:03:45 +02:00
Thomas Lamprecht f88c49fc42 update ABI file for 6.2.16-17-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-11 16:57:16 +02:00
Thomas Lamprecht 9edf5d6f9e bump version to 6.2.16-17
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-11 16:14:49 +02:00
Thomas Lamprecht d53c5ae125 update ZFS for backport of Intel AMX errata fix
From the upstream commit [0] that this update pulls in:

> Intel SPR erratum SPR4 says that if you trip into a vmexit while
> doing FPU save/restore, your AMX register state might misbehave...
> and by misbehave, I mean save all zeroes incorrectly, leading to
> explosions if you restore it.
>
> Since we're not using AMX for anything, the simple way to avoid
> this is to just not save/restore those when we do anything, since
> we're killing preemption of any sort across our save/restores.
>
> If we ever decide to use AMX, it's not clear that we have any
> way to mitigate this, on Linux...but I am not an expert.

[0]: https://github.com/openzfs/zfs/commit/c65aaa83876f9764f9017db278cefa453e1a3f5b

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-11 16:10:51 +02:00
Thomas Lamprecht 220839dc91 update ABI file for 6.2.16-16-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-03 17:04:07 +02:00
Thomas Lamprecht 67d3491e09 update fwlist
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-03 17:03:31 +02:00
Thomas Lamprecht a307b3ee38 bump version to 6.2.16-16
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-03 07:42:38 +02:00
Thomas Lamprecht 2db681b5f1 rebase patches on top of Ubuntu-6.2.0-36.36
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-03 07:05:13 +02:00
Thomas Lamprecht f048d6bc26 update sources to Ubuntu-6.2.0-36.36
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-03 07:05:13 +02:00
Thomas Lamprecht 8a4660dc25 update ABI file for 6.2.16-15-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-28 16:25:16 +02:00
Thomas Lamprecht 8c8a8be1ec bump version to 6.2.16-15
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-28 15:56:28 +02:00
Thomas Lamprecht 10ecb4534a update ZFS to 2.1.13
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-28 15:40:52 +02:00
Stoiko Ivanov 4696b978f7 cherry-pick fix for new amd64 ucode
The latest amd64-microcode package in sid [0] (which probably will
eventually make it to bookworm-security) has a change that requires
the added patch to work properly.

The changelog-entry refers to stable k.o branches only - but a quick
look through the linux-firmware.git log identifies:
`f2eb058afc57348cde66852272d6bf11da1eef8f` as relevant commit, which
refers (as NOTE in the patch) to:
a32b0f0db3f3 ("x86/microcode/AMD: Load late on both threads too")
which applies cleanly (although I cherry-picked the patch from the
6.1.y stable branch to have the original commit in the commit
message).

quickly tested compiling and booting the result in a VM (however w/o
a fitting CPU (Epyc Genoa or Bergamo) it should cause a change)

reported in our Enterprise Support as potential culprit for one
thread from 128 being reported as offline in `lscpu`

[0] https://metadata.ftp-master.debian.org/changelogs//non-free-firmware/a/amd64-microcode/amd64-microcode_3.20230808.1.1_changelog

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-09-26 11:37:58 +02:00
Thomas Lamprecht d772676031 fix thunderbolt ring-interrupt not being masked on suspend
Originally for v6.4-rc7 and now it also got already into some stable
trees, but not yet into a (released) ubuntu tag – so backport it
already.

Link: https://forum.proxmox.com/threads/133104/post-590457
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-20 06:36:01 +02:00
Thomas Lamprecht ea64c38da4 bump version to 6.2.16-14
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-19 13:37:23 +02:00
Thomas Lamprecht 9d2bc8164b bump version to 6.2.16-14
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-19 10:17:23 +02:00
Thomas Lamprecht 5ba48a84b0 add basic build instructions to README and build-dir-fresh target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-19 10:15:46 +02:00
Thomas Lamprecht 9ba0dde971 cherry-pick fix for setting X86_FEATURE_OSXSAVE feature
Avoids regressions where some code falsely think they cannot use some
CPU features like AVX1, e.g., ZFS.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-19 09:27:13 +02:00
Thomas Lamprecht 61656497ef update ABI file for 6.2.16-13-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-18 16:36:21 +02:00
Thomas Lamprecht fbf6b5609d bump version to 6.2.16-13
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-18 16:06:44 +02:00
Thomas Lamprecht 8ff596f2d3 rebase patches on top of Ubuntu-6.2.0-34.34
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-18 15:19:28 +02:00
Thomas Lamprecht b3aeb8dba9 update sources to Ubuntu-6.2.0-34.34
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-18 15:19:28 +02:00
Thomas Lamprecht ddba52024f backport thunderbolt-net fixes
A user of ours reported an issue with p2p thunderbolt-net w.r.t. IPv6
and failure to reestablish the connection after a reboot of a peer
node, in the forum [0] and the relayed it upstream, so lets
cherry-pick those two patches to our 6.2. Especially the IPv6 one
seems straight forward, and the other one makes it actually spec
conform and should only improve things.

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

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-18 10:40:31 +02:00
Fabian Grünbichler 1acfcad2f3 fix #4707: add override parameter for RMRR relaxation
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-09-06 08:53:13 +02:00
Fabian Grünbichler d58b652124 fix changelog typo
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-09-06 08:53:13 +02:00
Thomas Lamprecht 68a19ad8ea bump version to 6.2.16-12
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-04 15:24:36 +02:00
Fiona Ebner 6810c247a1 cherry-pick fix for KVM vCPU page fault loop
The mailing list thread [0] (found by Friedrich, many thanks!) leading
up to this patch sounds very familiar to issues users reported in the
community forum [1] and enterprise support channel, where a VM would
be stuck for no discernable reason with all vCPU threads spinning.

[0]: https://lore.kernel.org/all/f023d927-52aa-7e08-2ee5-59a2fbc65953@gameservers.com/T/#u
[1]: https://forum.proxmox.com/threads/127459/

Suggested-by: Friedrich Weber <f.weber@proxmox.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-09-04 15:15:42 +02:00
Thomas Lamprecht fce1ea7bb6 update fwlist for 6.2.16-11
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-01 08:34:59 +02:00
Thomas Lamprecht 5c467ccbc3 buildsys: inline getting git revision
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-31 12:09:49 +02:00
Thomas Lamprecht 243a198b63 bump version to 6.2.16-11
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-31 11:56:24 +02:00
Thomas Lamprecht 77b18ac62e rebase patches on top of Ubuntu-6.2.0-32.32
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-31 11:04:14 +02:00
Thomas Lamprecht 2d2b1d0218 update sources to Ubuntu-6.2.0-32.32
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-31 11:04:14 +02:00
Fiona Ebner 762b8cebe9 cherry-pick fix to surpress faulty segfault logging
While there is no actual issue, users are still nervous about the
faulty logging [0]. It might take a while until the fix comes in via
upstream, so just pick it up manually.

[0]: https://forum.proxmox.com/threads/130628/post-583864

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-08-25 15:31:30 +02:00
Wolfgang Bumiller 107ad7201b update ABI file for 6.2.16-10-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-08-18 14:13:43 +02:00
Wolfgang Bumiller f805291c9e bump version to 6.2.16-10
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-08-18 13:42:50 +02:00
Stoiko Ivanov 1523be72a7 d/rules: disable CONFIG_GDS_FORCE_MITIGATION
when not having installed an intel-microcode version containing the
mitigation, this options disables AVX instructions, which breaks quite
a lot of software (e.g. firefox, electron apps)

Reported-by: Stefan Hanreich <s.hanreich@proxmox.com>
Tested-by: Stefan Hanreich <s.hanreich@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-08-18 13:41:43 +02:00
Wolfgang Bumiller 330883cf2c update ABI file for 6.2.16-9-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-08-16 10:32:16 +02:00
Wolfgang Bumiller 8cf723cc45 bump version to 6.2.16-9
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-08-16 10:08:36 +02:00
Fiona Ebner 8b9dc02180 add patch for igc tx timeout issue
There were several reports about issues related to igc and tx timeout
and while the issue couldn't be reproduced locally, the hope is that
this fix Friedrich found will resolve the issue for the users. The
kernel versions in the reports would match with when 9b275176270e
("igc: Add ndo_tx_timeout support"), i.e. the one fixed by this
commit, landed.

[0]: https://forum.proxmox.com/threads/130935/
[1]: https://forum.proxmox.com/threads/130415/#post-580064
[2]: https://forum.proxmox.com/threads/132138/

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-08-16 10:01:05 +02:00
Stoiko Ivanov 442eb10018 d/rules: enable mitigation config-options
CONFIG_ARCH_HAS_CPU_FINALIZE_INIT and CONFIG_GDS_FORCE_MITIGATION
follows commit 3edbe24ed004516bd910f6e97fbd4b62cf589239
in ubuntu-upstream/master-next

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-08-16 09:56:31 +02:00
Stoiko Ivanov 9dd7462461 add fixes for downfall
by cherry-picking the relevant commits from launchpad/lunar [0].
(relevant commits are based on k.o/stable commits for this)

minimally tested by booting my (ryzen) machine with this kernel and
skimming through dmesg after boot.

[0] git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/lunar

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-08-16 09:56:23 +02:00
Fabian Grünbichler b7e93cf964 update ABI file for 6.2.16-8-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-08-03 13:16:16 +02:00
Fabian Grünbichler de18530801 bump version to 6.2.16-8
and drop PKGREL variable from Makefile, since every package release is a kernel ABI bump now.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-08-02 14:18:06 +02:00
Fabian Grünbichler 345bdbd264 build: sign modules and set trust anchor/lockdown
this is required for secure boot support.

at build time, an ephemeral key pair will be generated and all built modules
will be signed with it. the private key is discarded, and the public key
embedded in the kernel image for signature validation at module load time.

this change means that every kernel release must be considered an ABI change
from now on, else the signatures of on-disk modules and the signing key
embedded in the running kernel image might not match.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-08-02 14:14:00 +02:00
Fabian Grünbichler 25b7be41bf update README after rename
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-08-02 09:52:24 +02:00
Fabian Grünbichler 9219ee1bcf update ABI file for 6.2.16-6-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-08-01 14:51:16 +02:00
Fabian Grünbichler 26f4a81e89 bump version to 6.2.16-7
and rename source package in changelog as well.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-08-01 14:27:29 +02:00
Fabian Grünbichler 6e72c5b2b7 integrate meta packages and change prefix
long overdue, and avoids the issue of the meta packages version going down
after being folded in from the pve-kernel-meta repository.

the ABI needs to be bumped for every published kernel package now that modules
are signed, else the booted kernel image containing the public part of the
ephemeral signing key, and the on-disk (potentially upgraded in-place) signed
module files can disagree, and module loading would fail.

not changed (yet): git repository name, pve-firmware

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-08-01 14:27:29 +02:00
Thomas Lamprecht 7a00dc5a16 update ABI file for 6.2.16-5-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-07-25 18:14:53 +02:00
Thomas Lamprecht 5549cd3c6f bump version to 6.2.16-6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-07-25 17:33:54 +02:00
Thomas Lamprecht 08e179ff5c 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-25 16:56:06 +02:00
Thomas Lamprecht 069e83e462 fix 4770: backport "nvme: don't reject probe due to duplicate IDs"
we got quite some reports for this (e.g., Bugzilla or [0]), well in
non-enterprise setups as those cheap NVMe's just don't bother holding
up basic principles...

[0]: https://forum.proxmox.com/threads/128738/#post-567249

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-07-15 18:45:20 +02:00
Thomas Lamprecht c22aa75368 fix #4833: backport fix for recovering potential NX huge pages
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-07-15 18:41:35 +02:00
Thomas Lamprecht 6459eb2073 bump version to 6.2.16-5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-07-14 19:54:50 +02:00
Thomas Lamprecht 1559d22f35 kvm: xsave set: mask-out PKRU bit in xfeatures if vCPU has no support
Fixes live-migrations & snapshot-rollback of VMs with a restricted
CPU type (e.g., qemu64) from our 5.15 based kernel (default Proxmox
VE 7.4) to the 6.2 (and future newer) of Proxmox VE 8.0.

Previous to (upstream kernel) commit ad856280ddea ("x86/kvm/fpu: Limit
guest user_xfeatures to supported bits of XCR0") the PKRU bit of the
host could leak into the state from the guest, which caused trouble
when migrating between hosts with different CPUs, i.e., where the
source supported it but the target did not, causing a general
protection fault when the guest tried to use a pkru related
instruction after the migration.

But the fix, while welcome, caused a temporary out-of-sync state when
migrating such a VM from a kernel without the fix to a kernel with
the fix, as it threw of KVM when the CPUID of the guest and most of
the state doesn't report XSAVE and thus any xfeatures, but PKRU and
the related state is set as enabled, causing the vCPU to spin at 100%
without any progress forever.

The fix could be at two sites, either in QEMU or in the kernel, I
choose the kernel as we have all the info there for a targeted
heuristic so that we don't have to adapt QEMU and qemu-server, the
latter even on both sides.

Still, a short summary of the possible fixes and short drawbacks:
* on QEMU-side either
  - clear the PKRU state in the migration saved state would be rather
    complicated to implement as the vCPU is initialised way before we
    have the saved xfeature state available to check what we'd need
    to do, plus the user-space only gets a memory blob from ioctl
    KVM_GET_XSAVE2 that it passes to KVM_SET_XSAVE ioctl, there are
    no ABI guarantees, and while the struct seem stable for 5.15 to
    6.5-rc1, that doesn't has to be for future kernels, so off the
    table.
  - enforce that the CPUID reports PKU support even if it normally
    wouldn't. While this works (tested by hard-coding it as POC) it
    is a) not really nice and b) needs some interaction from
    qemu-server to enable this flag as otherwise we have no good info
    to decide when it's OK to do this, which means we need to adapt
    both PVE 7 and 8's qemu-server and also pve-qemu, workable but
    not optimal

* on Kernel/KVM-side we can hook into the set XSAVE ioctl specific to
  the KVM subsystem, which already reduces chance of regression for
  all other places. There we have access to the union/struct
  definitions of the saved state and thus can savely cast to that.
  We also got access to the vCPU's CPUID capabilities, meaning we can
  check if the XCR0 (first XSAVE Control Register) reports
  that it support the PKRU feature, and if it does *NOT* but the
  saved xfeatures register from XSAVE *DOES* report it, we can safely
  assume that this combination is due to an migration from an older,
  leaky kernel – and clear the bit in the xfeature register before
  restoring it to the guest vCPU KVM state, avoiding the confusing
  situation that made the vCPU spin at 100%.
  This should be safe to do, as the guest vCPU CPUID never reported
  support for the PKRU feature, and it's also a relatively niche and
  newish feature.

If it gains us something we can drop this patch a bit in the future
Proxmox VE 9 major release, but we should ensure that VMs that where
started before PVE 8 cannot be directly live-migrated to the release
that includes that change; so we should rather only drop it if the
maintenance burden is high.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-07-14 19:47:11 +02:00
Thomas Lamprecht e8568c4378 update ABI file for 6.2.16-4-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-07-07 10:01:08 +02:00
Thomas Lamprecht eb35a978a7 bump version to 6.2.16-4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-07-07 09:23:08 +02:00
Thomas Lamprecht 3f8d97b448 update submodule to Proxmox-6.2.16-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-07-07 09:22:11 +02:00
Thomas Lamprecht 2e2ec4e283 update ABI file for 6.2.16-3-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 09:45:54 +02:00
Thomas Lamprecht 5d884a7474 bump version to 6.2.16-3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 07:59:03 +02:00
Thomas Lamprecht 289e2dddd9 update to Proxmox-6.2.16-2 based on Ubuntu-6.2.0-25.25
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-17 07:56:37 +02:00
Thomas Lamprecht e55f32e36b buildsys: improve DSC target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-13 16:15:37 +02:00
Thomas Lamprecht 552149e720 bump version to 6.2.16-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-13 16:14:24 +02:00
Thomas Lamprecht 69c4dcfc68 update ZFS to 2.1.12
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-13 16:14:24 +02:00
Thomas Lamprecht 85f85b6fba backport "net/sched: flower: fix possible OOB write in fl_set_geneve_opt()"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-13 16:14:24 +02:00
Thomas Lamprecht 7e4bc8ae81 backport re-adding mdev_set_iommu_device() kABI
Should fix compat with SRIOV based Nvidia vGPU until they switch over
to using the vfio-pci-core framework instead of MDEV.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-13 16:14:24 +02:00
Thomas Lamprecht 5198ce8db0 scripts: modernize abi-generate & find-firmware
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-13 16:14:24 +02:00
Thomas Lamprecht c0b70725e7 scripts: modernize abi-check a bit
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-13 16:14:24 +02:00
Thomas Lamprecht 920c82fb9b debian: update postinst, postrm and prerm script style
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-13 15:14:15 +02:00
Thomas Lamprecht 6d345395f3 buildsys: derive upload dist automatically
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 21:26:37 +02:00
Thomas Lamprecht 9374c29828 update ABI file for 6.2.16-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:38 +02:00
Thomas Lamprecht 43bc574292 bump version to 6.2.16-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:38 +02:00
Thomas Lamprecht be704b572e update ZFS submodule to latest git
no actual source code changes, just packaging stuff for bookworm

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:38 +02:00
Thomas Lamprecht e1c98087b0 d/control: drop useless dependency on already essential coreutils
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:28:07 +02:00
Thomas Lamprecht 8b45a37be8 buildsys: add sbuild convenience target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:27 +02:00
Thomas Lamprecht 2de39b1616 update submodule to Proxmox-6.2.16-1 and refresh patches
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht 435ecf6664 update patches for Ubuntu-6.2.0-23.23
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht dad61fd72e d/control: define compat level via build-depends and raise to 13
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht 93c76a4add 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-05-20 19:25:13 +02:00
Thomas Lamprecht e8682962f4 d/source: ignore some false-positive lintian errors
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht f1ef3eb877 d/control: add missing ${misc:Depends}
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht 5d70d14bad 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-05-20 19:25:13 +02:00
Thomas Lamprecht 65f3c4a837 d/control: add missing Standards-Version field
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht d4beb8d050 d/control: wrap-and-sort -tkn
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht 7e3bd8b16a 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-05-20 19:25:13 +02:00
Thomas Lamprecht ecf7b6eb9a buildsys: add DSC target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht 8349ace63d buildsys: split applying patches over multiple line
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht a26760dd39 buildsys: use versioned build dir
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht 073584c381 d/rules: convert to use simple parenthesis
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht 8fbdb63a27 makefile: convert to use simple parenthesis
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 19:25:13 +02:00
Thomas Lamprecht b2e4b7ebcb update ABI file for 6.2.11-2-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-10 15:14:19 +02:00
Thomas Lamprecht ec30d8939d bump version to 6.2.11-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-10 13:14:51 +02:00
Thomas Lamprecht 91266dcbe2 backport "netfilter: nf_tables: deactivate anonymous set from preparation phase"
Link: https://ubuntu.com/security/CVE-2023-32233
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-10 11:13:20 +02:00
Thomas Lamprecht 54dffcb57d update ABI file for 6.2.11-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 12:55:16 +02:00
Thomas Lamprecht f3e9daac8e bump version to 6.2.11-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 11:59:39 +02:00
Thomas Lamprecht 44151cbd16 update submodule to Proxmox-6.2.11-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 11:58:33 +02:00
Thomas Lamprecht 83db87d85d update ZFS to 2.1.11
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 11:57:32 +02:00
Thomas Lamprecht 3429edcaae update ABI file for 6.2.9-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-03 12:47:05 +02:00
Thomas Lamprecht 6222eaab7a bump version to 6.2.9-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-03 11:53:01 +02:00
Thomas Lamprecht 4c423f4ce7 update ZFS to fix compat with v6.2.8+
Update the ZFS submodule so that it includes a commit with compat fix
[0] for kernel 6.2.8, which otherwise regressed build through the
484c2be84b49 ("block: count 'ios' and 'sectors' when io is done for
bio-based device") commit, which was backported to stable-6.2 from
the v6.3-rc3 "release".

[0]: https://github.com/openzfs/zfs/commit/59f187563937aa0d6c74a9854eb1cab6632866f9

Link:  https://github.com/openzfs/zfs/issues/14658
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-03 11:53:01 +02:00
Thomas Lamprecht 40592ac627 update to Proxmox-6.2.9-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-03 11:53:01 +02:00
Thomas Lamprecht 2c4688ec2e replace rever of RDMA link-speed reporting patch with fix
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-17 14:58:46 +01:00
Thomas Lamprecht e1ca9ca51d update ABI file for 6.2.6-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-15 09:55:06 +01:00
Thomas Lamprecht 82426c7c10 update fwlist for 6.2.6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-15 09:23:37 +01:00
Thomas Lamprecht 8a82ea07f9 bump version to 6.2.2-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-15 09:23:37 +01:00
Thomas Lamprecht af0b394907 update to Ubuntu-6.2.0-17.17
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-14 18:07:40 +01:00
Thomas Lamprecht 3509d749af update ABI file for 6.2.2-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-13 18:18:39 +01:00
Thomas Lamprecht e1c527fbd0 bump version to 6.2.2-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-13 17:57:09 +01:00
Thomas Lamprecht 97d08b747c update to Ubuntu-6.2.0-16.16
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-13 17:56:47 +01:00
Thomas Lamprecht b032345298 update fwlist for 6.2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-09 08:52:16 +01:00
Thomas Lamprecht 24d804a086 update and drop applied patches for 6.2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-08 12:29:55 +01:00
Thomas Lamprecht fd2107cc91 prepare for 6.2 release
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-08 12:07:25 +01:00
Thomas Lamprecht 43ea729172 buildsys: avoid that to new usr header get uploaded for bullseye
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-08 12:07:25 +01:00
Thomas Lamprecht 8977e76d1e update ABI file for 6.1.15-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-08 12:05:18 +01:00
Thomas Lamprecht 2367ef4bab bump version to 6.1.15-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-08 10:34:04 +01:00
Thomas Lamprecht cfb3869212 update submodule and patches to 6.1.15
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-08 09:50:30 +01:00
Fiona Ebner 3d016e115f add patch to fix issue with large IO requests
Several people reported IO-related issues since kernel 6.1.6 [0].
Things got better with 6.1.10, but apparently the issues are not fully
resolved (e.g. [1]).

I ran into an issue with PBS backup of a VM with passed-through disks
(error with 6.1.6, hang with 6.1.10+) and found that the issue did not
occur anymore with v6.3-rc1. Bisecting what fixed the issue led to the
commit in this patch. The hope is that it fixes some other issues too.

The commit has a CC-stable tag for 5.15+, but telling from the absence
of user reports, it was much less likely to trigger before 6.1.x (it's
not clear what x is, because of the other issue in 6.1.6). The commit
says it depends on 613b14884b85 ("block: handle bio_split_to_limits()
NULL return") which is already present as a3f1c82e0413 ("block:
handle bio_split_to_limits() NULL return") in the Ubuntu tree.

[0]: https://forum.proxmox.com/threads/119483/post-530365
[1]: https://forum.proxmox.com/threads/119483/post-537991

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-03-07 19:38:11 +01:00
Thomas Lamprecht 8b2b9abefa update ABI file for 6.1.14-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-01 08:43:05 +01:00
Thomas Lamprecht 4048746049 bump version to 6.1.14-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-27 18:09:53 +01:00
Thomas Lamprecht fc2b61b134 update submodule and patches to 6.1.14
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-27 18:09:00 +01:00
Thomas Lamprecht 3a6fd39fe7 d/rules: fix misspelled changelog date variable
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-10 16:40:14 +01:00
Thomas Lamprecht 9fde3ef1c6 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:48:20 +01:00
Thomas Lamprecht 0ce1c2c075 update previous fwlist
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-07 14:46:16 +01:00
Thomas Lamprecht 9810669ddf bump version to 6.1.10-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-07 14:10:16 +01:00
Thomas Lamprecht 7c0483e8cd update to Proxmox-6.1.10-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-07 14:09:31 +01:00
Fabian Grünbichler 826eb0ff89 build: re-enable BTF
but allow discarding BTF information when loading modules, so that upgrades
which are otherwise ABI compatible still work. this allows using BTF
information when matching and available, while degrading gracefully if the
currently running kernel is not identical to the one that module was built for.

in case of a mismatch, the kernel will log a warning when loading the module,
for example:

Jan 30 13:57:58 test kernel: BPF:          type_id=184 bits_offset=4096
Jan 30 13:57:58 test kernel: BPF:
Jan 30 13:57:58 test kernel: BPF: Invalid name
Jan 30 13:57:58 test kernel: BPF:
Jan 30 13:57:58 test kernel: failed to validate module [bonding] BTF: -22

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-01-31 17:44:18 +01:00
Thomas Lamprecht 2162f4c4e7 backport fix for CPU stalls with hugepage in use
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-31 10:21:37 +01:00
Wolfgang Bumiller 3ffc526456 d/control: add linux-initramfs-tool as alternative
This is provdied by both initramfs-tools and dracut.
Required to be able to use dracut in place of
initramfs-tools.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-01-30 09:41:52 +01:00
Thomas Lamprecht 4b70e25984 update ABI file for 6.1.6-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 15:28:10 +01:00
Thomas Lamprecht 6305b31642 bump version to 6.1.6-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 15:06:33 +01:00
Thomas Lamprecht 8da6dd78ce update ZFS to 2.1.9
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 15:06:24 +01:00
Thomas Lamprecht 5ddf42542e rebase patches on top of Ubuntu-6.1.0-14.14
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 15:01:34 +01:00
Thomas Lamprecht b7cd468287 update sources to Ubuntu-6.1.0-14.14
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 15:01:34 +01:00
Thomas Lamprecht 28761ee886 change submodule url to ubuntu-kernel
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-25 16:37:05 +01:00
Thomas Lamprecht 8e0208d23b update ZFS to 2.1.8
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-25 09:10:46 +01:00
Thomas Lamprecht 3203bc7c65 update ABI file for 6.1.2-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-10 09:49:13 +01:00
Thomas Lamprecht 7d2d23be68 bump version to 6.1.2-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-10 08:53:57 +01:00
Thomas Lamprecht 3ba39b6c0a rever fortify patch that breaks our gcc 10.2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-10 08:53:57 +01:00
Thomas Lamprecht 4d1db3083c backport some fixes-fixes from v6.1.4
found with

 git log --decorate v5.16^..v6.1.4 -- Makefile kernel/ secuirty drivers/ fs \
   block mm net virt/ ipc init arch/x86/ | ~/gitdm/stablefixes \
   --fixed-after v6.1.2 --regressed-before v6.1.2

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-07 14:52:24 +01:00
Thomas Lamprecht a0a93ff7fe revert two stable patches that have reports about regressions
we never released them yet (only introduced after 6.1.0), but there
are upstream reports about regressions for them at:
https://lore.kernel.org/netdev/CAK8fFZ5pzMaw3U1KXgC_OK4shKGsN=HDcR62cfPOuL0umXE1Ww@mail.gmail.com/
https://lore.kernel.org/netdev/CAK8fFZ6A_Gphw_3-QMGKEFQk=sfCw1Qmq0TVZK3rtAi7vb621A@mail.gmail.com/

So do a preventive revert.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-07 13:52:36 +01:00
Thomas Lamprecht 898be11352 rebase patches on top of Ubuntu-6.1.0-12.12
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-07 13:45:05 +01:00
Thomas Lamprecht 5e31f96e2c update sources to Ubuntu-6.1.0-12.12
(generated with debian/scripts/import-upstream-tag)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-07 13:42:55 +01:00
Thomas Lamprecht add5e35014 update ZFS submodule with open TMPFILE fixes for Linux 6.1 compat
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-07 13:27:32 +01:00
Thomas Lamprecht 23214d3d31 d/rules: enable budiling the userspace block driver as module
Requested-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-19 16:33:51 +01:00
Thomas Lamprecht d53796d63c readme: update for current source state
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-13 18:07:40 +01:00
Thomas Lamprecht 71031b0bc3 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-13 17:58:52 +01:00
Thomas Lamprecht e911b5aabc update ABI file for 6.1.0-1-pve
(generated with debian/scripts/abi-generate)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-13 15:50:53 +01:00
Thomas Lamprecht 704a0976ef update fwlist-previous
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-13 15:10:10 +01:00
Thomas Lamprecht 67ec0da236 bump version to 6.1.0-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-13 15:09:59 +01:00
Thomas Lamprecht 4ce29271b8 d/rules: always enable ZSTD compression built-in
as it was before

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-13 15:09:44 +01:00
Thomas Lamprecht 880dc1073f buildsys: use annotations script to generate the base kernel build config
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-13 15:08:27 +01:00
Thomas Lamprecht 12247ad0df update to Ubuntu-6.1.0-1.1
from upcoming 23.04 lunar repo

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-13 14:57:09 +01:00
Thomas Lamprecht 00d66e9633 submodules: rename ubuntu kernel directory to release agnostic
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-13 08:32:18 +01:00
Thomas Lamprecht d12013ce56 submodules: switch to combined repo via relative path
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-13 08:30:26 +01:00
Thomas Lamprecht 2a624c23cd update ZFS to 2.1.7
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-06 16:41:57 +01:00
Thomas Lamprecht 32bc81fb69 update ABI file for 5.19.17-1-pve
(generated with debian/scripts/abi-generate)

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

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

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

This reverts commit 198fde3a16.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

if copying was slow enough.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Packaging mostly taken from Debian[0]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-12 15:31:10 +01:00
Thomas Lamprecht eb6667c98c fix #2448: compile ISO8859-1 NLS as built-in
Allows to mount VFAT devices even if the currently running kernel was
removed before any VFAT, or other FS using the default Native
Language Support module was mounted during the current uptime.

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

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

So compile that module as built-in.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-05 12:08:29 +01:00
Thomas Lamprecht b78a79fb68 update ABI file for 5.3.7-1-pve
(generated with debian/scripts/abi-generate)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 15:42:57 +02:00
Thomas Lamprecht ff71f8b949 update patches for 5.0.8
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 14:11:57 +02:00
Thomas Lamprecht 117c2cd60c move from ubuntu-bionic to ubuntu-disco submodule
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 13:52:55 +02:00
54 changed files with 32646 additions and 24641 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
[submodule "submodules/zfsonlinux"]
path = submodules/zfsonlinux
url = ../zfsonlinux
[submodule "submodules/ubuntu-bionic"]
path = submodules/ubuntu-bionic
url = ../mirror_ubuntu-bionic-kernel
[submodule "submodules/ubuntu-kernel"]
path = submodules/ubuntu-kernel
url = ../mirror_ubuntu-kernels
+100 -114
View File
@@ -1,146 +1,133 @@
# also bump pve-kernel-meta if either of MAJ.MIN, PATCHLEVEL or KREL change
KERNEL_MAJ=4
KERNEL_MIN=15
KERNEL_PATCHLEVEL=18
# increment KREL if the ABI changes (abicheck target in debian/rules)
# rebuild packages with new KREL and run 'make abiupdate'
KREL=30
include /usr/share/dpkg/pkg-info.mk
PKGREL=58
# also bump proxmox-kernel-meta if the default MAJ.MIN version changes!
KERNEL_MAJ=6
KERNEL_MIN=2
KERNEL_PATCHLEVEL=16
# increment KREL for every published package release!
# rebuild packages with new KREL and run 'make abiupdate'
KREL=20
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=proxmox-kernel-$(KVNAME)
HDRPACKAGE=proxmox-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
ifeq ($(CC), cc)
GCC=gcc
else
GCC=$(CC)
endif
BUILD_DIR=proxmox-kernel-$(KERNEL_VER)
BUILD_DIR=build
KERNEL_SRC=ubuntu-bionic
KERNEL_SRC=ubuntu-kernel
KERNEL_SRC_SUBMODULE=submodules/$(KERNEL_SRC)
KERNEL_CFG_ORG=config-${KERNEL_VER}.org
E1000EDIR=e1000e-3.4.1.1
E1000ESRC=${E1000EDIR}.tar.gz
IGBDIR=igb-5.3.5.18
IGBSRC=${IGBDIR}.tar.gz
KERNEL_CFG_ORG=config-$(KERNEL_VER).org
ZFSONLINUX_SUBMODULE=submodules/zfsonlinux
SPLDIR=pkg-spl
ZFSDIR=pkg-zfs
MODULES=modules
MODULE_DIRS=${E1000EDIR} ${IGBDIR} ${SPLDIR} ${ZFSDIR}
MODULE_DIRS=$(ZFSDIR)
# exported to debian/rules via debian/rules.d/dirs.mk
DIRS=KERNEL_SRC E1000EDIR IGBDIR SPLDIR ZFSDIR MODULES
DIRS=KERNEL_SRC ZFSDIR MODULES
DST_DEB=${PACKAGE}_${KERNEL_VER}-${PKGREL}_${ARCH}.deb
HDR_DEB=${HDRPACKAGE}_${KERNEL_VER}-${PKGREL}_${ARCH}.deb
LINUX_TOOLS_DEB=linux-tools-$(KERNEL_MAJMIN)_${KERNEL_VER}-${PKGREL}_${ARCH}.deb
DSC=proxmox-kernel-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(KREL).dsc
DST_DEB=$(PACKAGE)_$(KERNEL_VER)-$(KREL)_$(ARCH).deb
META_DEB=proxmox-kernel-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(KREL)_all.deb
HDR_DEB=$(HDRPACKAGE)_$(KERNEL_VER)-$(KREL)_$(ARCH).deb
META_HDR_DEB=proxmox-headers-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(KREL)_all.deb
USR_HDR_DEB=proxmox-kernel-libc-dev_$(KERNEL_VER)-$(KREL)_$(ARCH).deb
LINUX_TOOLS_DEB=linux-tools-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(KREL)_$(ARCH).deb
LINUX_TOOLS_DBG_DEB=linux-tools-$(KERNEL_MAJMIN)-dbgsym_$(KERNEL_VER)-$(KREL)_$(ARCH).deb
DEBS=${DST_DEB} ${HDR_DEB} ${LINUX_TOOLS_DEB}
DEBS=$(DST_DEB) $(META_DEB) $(HDR_DEB) $(META_HDR_DEB) $(LINUX_TOOLS_DEB) $(LINUX_TOOLS_DBG_DEB) # $(USR_HDR_DEB)
all: check_gcc deb
deb: ${DEBS}
all: deb
deb: $(DEBS)
check_gcc:
$(GCC) --version|grep "6\.3" || false
@$(GCC) -Werror -mindirect-branch=thunk-extern -mindirect-branch-register -c -x c /dev/null -o check_gcc.o \
|| ( rm -f check_gcc.o; \
echo "Please install gcc-6 packages with indirect thunk / RETPOLINE support"; \
false)
@rm -f check_gcc.o
$(META_DEB) $(META_HDR_DEB) $(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}: ${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}
dsc:
$(MAKE) $(DSC)
lintian $(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}/
$(DSC): $(BUILD_DIR).prepared
cd $(BUILD_DIR); dpkg-buildpackage -S -uc -us -d
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 $@
.PHONY: build-dir-fresh
build-dir-fresh:
$(MAKE) clean
$(MAKE) $(BUILD_DIR).prepared
echo "created build-directory: $(BUILD_DIR).prepared/"
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 $(shell git rev-parse HEAD)" \
>$(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 $@
${E1000EDIR}.prepared: ${E1000ESRC}
rm -rf ${BUILD_DIR}/${MODULES}/${E1000EDIR} $@
mkdir -p ${BUILD_DIR}/${MODULES}/${E1000EDIR}
tar --strip-components=1 -C ${BUILD_DIR}/${MODULES}/${E1000EDIR} -xf ${E1000ESRC}
cd ${BUILD_DIR}/${MODULES}/${E1000EDIR}; patch -p1 < ../../../patches/intel/intel-module-gcc6-compat.patch
cd ${BUILD_DIR}/${MODULES}/${E1000EDIR}; patch -p1 < ../../../patches/intel/e1000e/e1000e_4.10_max-mtu.patch
cd ${BUILD_DIR}/${MODULES}/${E1000EDIR}; patch -p1 < ../../../patches/intel/e1000e/e1000e_4.15-new-timer.patch
touch $@
${IGBDIR}.prepared: ${IGBSRC}
rm -rf ${BUILD_DIR}/${MODULES}/${IGBDIR} $@
mkdir -p ${BUILD_DIR}/${MODULES}/${IGBDIR}
tar --strip-components=1 -C ${BUILD_DIR}/${MODULES}/${IGBDIR} -xf ${IGBSRC}
cd ${BUILD_DIR}/${MODULES}/${IGBDIR}; patch -p1 < ../../../patches/intel/igb/igb_4.15_mtu.patch
touch $@
${SPLDIR}.prepared: ${ZFSDIR}.prepared
${ZFSDIR}.prepared: ${ZFSONLINUX_SUBMODULE}
rm -rf ${BUILD_DIR}/${MODULES}/${SPLDIR} ${BUILD_DIR}/${MODULES}/${ZFSDIR} ${BUILD_DIR}/${MODULES}/tmp $@
mkdir -p ${BUILD_DIR}/${MODULES}/tmp
cp -a ${ZFSONLINUX_SUBMODULE}/* ${BUILD_DIR}/${MODULES}/tmp
cd ${BUILD_DIR}/${MODULES}/tmp; make kernel
rm -rf ${BUILD_DIR}/${MODULES}/tmp
touch ${ZFSDIR}.prepared ${SPLDIR}.prepared
$(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 --dist stretch --arch ${ARCH}
upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
upload: $(DEBS)
tar cf - $(DEBS)|ssh -X repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist $(UPLOAD_DIST) --arch $(ARCH)
.PHONY: distclean
distclean: clean
@@ -150,19 +137,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 ${ZFSONLINUX_SUBMODULE}
(test -f "${ZFSONLINUX_SUBMODULE}/zfs/upstream/README.markdown" && test -f "${ZFSONLINUX_SUBMODULE}/spl/upstream/README.markdown") || (cd ${ZFSONLINUX_SUBMODULE}; git submodule update --init)
test -f "$(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
@@ -170,15 +156,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 *~ proxmox-kernel-[0-9]*/ *.prepared $(KERNEL_CFG_ORG)
rm -f *.deb *.dsc *.changes *.buildinfo *.build proxmox-kernel*.tar.*
+104 -35
View File
@@ -1,22 +1,22 @@
KERNEL SOURCE:
==============
We currently use the Ubuntu kernel sources, available from:
We currently use the Ubuntu kernel sources, available from our mirror:
http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/
https://git.proxmox.com/?p=mirror_ubuntu-kernels.git;a=summary
Ubuntu will maintain those kernels till:
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable
or
https://pve.proxmox.com/pve-docs/chapter-pve-faq.html#faq-support-table
whatever happens to be earlier.
Additional/Updated Modules:
---------------------------
- include latest e1000e driver from intel/sourceforge
- include latest igb driver from intel/sourceforge
- include native OpenZFS filesystem kernel modules for Linux
* https://github.com/zfsonlinux/
@@ -24,6 +24,67 @@ Additional/Updated Modules:
For licensing questions, see: http://open-zfs.org/wiki/Talk:FAQ
BUILD
=====
As this is packaging for the Linux kernel with some extra integrations, like
ZFS, this repo cannot be handled like a plain Linux kernel git repository.
The actual Linux kernel source lives in a git submodule.
For a build you should init the submodules and then handle it like most our
Debian packaging builds. If unsure you can follow this:
Installing Build-Dependencies
-----------------------------
You can either just check the package metadata template `debian/control.in`
and install the packages listed in the `Build-Depends` section manually
(replace `debhelper-compat` with just `debhelper`) or use a more automated way
described below:
# install base build-dependencies and helpers
apt update
apt install devscripts
# create build-directory so that we got final packaging control files from the
# .in templates generated
make build-dir-fresh
# install build-dependencies (replace BUILD-DIR with actual one)
mk-build-deps -ir BUILD-DIR/debian/control
Package Build
-------------
# start the actual build
make deb
For simple KConfig modifications you can adapt the list in `debian/rules` file.
For quick code changes to the actual kernel code you can do them directly in
the submodule/ubuntu-kernels directory, then re-create the build-directory, e.g.:
make clean
# now build again, explicitly creating the build-dir isn't required anymore
# after one has the build-dependencies already installed.
make deb
Modify-Build-Test Cycles
------------------------
Ideally you avoid the need for doing a full package build and just directly
build linux from the ubuntu-kernels or the mainline (stable) repo with copying
over a build-config of a proxmox-kernel to that as .config and then using the
`make olddefconfig` target.
If you need full package builds you can try to make changes inside the
BUILD-DIR directly and then continue build from there, e.g., using
`dpkg-buildpackage -b -uc -us --no-pre-clean`. Depending on what stage you want
to continue build you might need to touch, or remove some *.prepared files.
Just check `debian/rules` for how kernel build progress is tracked by make.
SUBMODULE
=========
@@ -35,7 +96,7 @@ get applied with the `patch` tool. From a git point-of-view, the copied
directory remains clean even with extra patches applied since it does not
contain a .git directory, but a reference to the (still pristine) submodule:
$ cat build/ubuntu-bionic/.git
$ cat build/ubuntu-kernel/.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,18 +121,30 @@ top level meta package, depends on current default kernel series meta package.
git clone git://git.proxmox.com/git/proxmox-ve.git
pve-kernel-meta
---------------
proxmox-default-kernel
----------------------
depends on latest kernel and header package within a certain kernel series,
e.g., pve-kernel-4.15 / pve-headers-4.15
Depends on default kernel and header meta package, e.g., proxmox-kernel-6.2 /
proxmox-headers-6.2.
git clone git://git.proxmox.com/git/pve-kernel-meta.git
proxmox-kernel-X.Y
------------------
Depends on the latest kernel (or header, in case of proxmox-headers-X.Y)
package within a certain series.
e.g., proxmox-kernel-6.2 depends on proxmox-kernel-6.2.16-6-pve
NOTE: Since Proxmox VE 8, based on Debian 12 Bookworm, the kernel ABI is bumped
with every version bump due to module signing. Since then the meta package was
pulled into the kernel repo, before that it lived in pve-kernel-meta.git.
pve-firmware
------------
contains the firmware for all released PVE kernels.
Contains the firmware for all released PVE kernels.
git clone git://git.proxmox.com/git/pve-firmware.git
@@ -99,9 +172,21 @@ Watchdog blacklist
By default, all watchdog modules are black-listed because it is totally undefined
which device is actually used for /dev/watchdog.
We ship this list in /lib/modprobe.d/blacklist_pve-kernel-<VERSION>.conf
We ship this list in /lib/modprobe.d/blacklist_proxmox-kernel-<VERSION>.conf
The user typically edit /etc/modules to enable a specific watchdog device.
Debug kernel and modules
------------------------
In order to build a -dbgsym package containing an unstripped copy of the kernel
image and modules, enable the 'pkg.proxmox-kernel.debug' build profile (e.g. by
exporting DEB_BUILD_PROFILES='pkg.proxmox-kernel.debug'). The resulting package can
be used together with 'crash'/'kdump-tools' to debug kernel crashes.
Note: the -dbgsym package is only valid for the proxmox-kernel packages produced by
the same build. A kernel/module from a different build will likely not match,
even if both builds are of the same kernel and package version.
Additional information
----------------------
@@ -125,55 +210,39 @@ NOTE: For the exact and current list see debian/rules (PVE_CONFIG_OPTS)
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_DM=y
- add workaround for Debian bug #807000 (see
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=807000)
CONFIG_BLK_DEV_NVME=y
- compile NBD and RBD modules
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RBD=m
- enable IBM JFS file system as module
enable it as requested by users (bug #64)
requested by users (bug #64)
- enable apple HFS and HFSPLUS as module
enable it as requested by users
requested by users
- enable CONFIG_BCACHE=m (requested by user)
- enable CONFIG_BRIDGE=y
Else we get warnings on boot, that
net.bridge.bridge-nf-call-iptables is an unknown key
to avoid warnings on boot, e.g. that net.bridge.bridge-nf-call-iptables is an unknown key
- enable CONFIG_DEFAULT_SECURITY_APPARMOR
We need this for lxc
- set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
because if not set, it can give some dynamic memory or cpu frequencies
change, and vms can crash (mainly windows guest).
see http://forum.proxmox.com/threads/18238-Windows-7-x64-VMs-crashing-randomly-during-process-termination?p=93273#post93273
- use 'deadline' as default scheduler
This is the suggested setting for KVM. We also measure bad fsync
performance with ext4 and cfq.
This is the suggested setting for KVM. We also measure bad fsync performance with ext4 and cfq.
- disable CONFIG_INPUT_EVBUG
Module evbug is not blacklisted on debian, so we simply disable it
to avoid key-event logs (which is a big security problem)
Module evbug is not blacklisted on debian, so we simply disable it to avoid
key-event logs (which is a big security problem)
- enable CONFIG_MODVERSIONS (needed for ABI tracking)
- switch default UNWINDER to FRAME_POINTER
the recently introduced ORC_UNWINDER is not 100% stable yet, especially in combination with ZFS
- enable CONFIG_PAGE_TABLE_ISOLATION (Meltdown mitigation)
File diff suppressed because it is too large Load Diff
+27623
View File
File diff suppressed because it is too large Load Diff
+877 -75
View File
File diff suppressed because it is too large Load Diff
-1
View File
@@ -1 +0,0 @@
10
+71 -23
View File
@@ -1,4 +1,4 @@
Source: pve-kernel
Source: proxmox-kernel-@KVMAJMIN@
Section: devel
Priority: optional
Maintainer: Proxmox Support Team <support@proxmox.com>
@@ -7,10 +7,12 @@ Build-Depends: asciidoc-base,
bc,
bison,
cpio,
debhelper (>= 10~),
debhelper-compat (= 13),
dh-python,
dwarves,
file,
flex,
gcc-6 (>= 6.3.0-18+deb9u1),
gcc (>= 8.3.0-6),
git,
kmod,
libdw-dev,
@@ -22,14 +24,15 @@ Build-Depends: asciidoc-base,
libssl-dev,
libtool,
lintian,
perl-modules,
python-minimal,
lz4,
python3-minimal,
rsync,
sed,
tar,
sphinx-common,
xmlto,
zlib1g-dev,
Build-Conflicts: pve-headers-@KVNAME@,
zstd,
Build-Conflicts: proxmox-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
@@ -37,32 +40,77 @@ 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)
Package: pve-headers-@KVNAME@
Package: proxmox-headers-@KVNAME@
Section: devel
Priority: optional
Architecture: any
Provides: linux-headers,
linux-headers-2.6,
Depends: coreutils | fileutils (>= 4.0),
Description: The Proxmox PVE Kernel Headers
Provides: linux-headers-@KVNAME@-amd64, pve-headers-@KVNAME@
Depends: ${misc:Depends},
Description: Proxmox Kernel Headers
This package contains the linux kernel headers
Package: pve-kernel-@KVNAME@
Package: proxmox-kernel-@KVNAME@
Section: admin
Priority: optional
Architecture: any
Provides: linux-image,
linux-image-2.6,
Provides: linux-image-@KVNAME@-amd64, pve-kernel-@KVNAME@
Suggests: pve-firmware,
Depends: busybox,
grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub-efi-arm64,
initramfs-tools,
Description: The Proxmox PVE Kernel Image
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: proxmox-kernel-@KVNAME@-dbgsym
Architecture: any
Provides: linux-debug, pve-kernel-@KVNAME@-dbgsym
Section: devel
Priority: optional
Build-Profiles: <pkg.proxmox-kernel.debug>
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/..
to analyze kernel crashes. This package also contains the proxmox-kernel modules
in their unstripped version.
Package: proxmox-kernel-libc-dev
Section: devel
Priority: optional
Architecture: any
Provides: linux-libc-dev (=${binary:Version}), pve-kernel-libc-dev
Conflicts: linux-libc-dev,
Replaces: linux-libc-dev, pve-kernel-libc-dev
Breaks: pve-kernel-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.
Package: proxmox-headers-@KVMAJMIN@
Architecture: all
Section: admin
Provides: linux-headers-amd64, linux-headers-generic, pve-headers-@KVMAJMIN@
Replaces: pve-headers-@KVMAJMIN@
Priority: optional
Depends: proxmox-headers-@KVNAME@, ${misc:Depends},
Description: Latest Proxmox Kernel Headers
This is a metapackage which will install the kernel headers
for the latest available proxmox kernel from the @KVMAJMIN@
series.
Package: proxmox-kernel-@KVMAJMIN@
Architecture: all
Section: admin
Provides: linux-image-amd64, linux-image-generic, wireguard-modules (=1.0.0), pve-kernel-@KVMAJMIN@
Replaces: pve-kernel-@KVMAJMIN@
Priority: optional
Depends: pve-firmware, proxmox-kernel-@KVNAME@, ${misc:Depends},
Description: Latest Proxmox Kernel Image
This is a metapackage which will install the latest available
proxmox kernel from the @KVMAJMIN@ series.
+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.
+17
View File
@@ -0,0 +1,17 @@
#! /bin/sh
# Abort if any command returns an error value
set -e
case "$1" in
configure)
# setup kernel links for installation CD (rescue boot)
mkdir -p /boot/pve
ln -sf /boot/vmlinuz-@@KVNAME@@ /boot/pve/vmlinuz-@@KVMAJMIN@@
ln -sf /boot/initrd.img-@@KVNAME@@ /boot/pve/initrd.img-@@KVMAJMIN@@
;;
esac
#DEBHELPER#
exit 0
+19
View File
@@ -0,0 +1,19 @@
#! /bin/sh
# Abort if any command returns an error value
set -e
case "$1" in
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
# remove kernel symlinks
rm -f /boot/pve/vmlinuz-@@KVNAME@@
rm -f /boot/pve/initrd.img-@@KVNAME@@
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
@@ -1,6 +1,7 @@
#!/usr/bin/perl -w
#!/usr/bin/perl
use strict;
use warnings;
# Ignore all invocations except when called on to configure.
exit 0 unless $ARGV[0] =~ /configure/;
@@ -16,10 +17,9 @@ system("depmod $version");
if (-d "/etc/kernel/postinst.d") {
print STDERR "Examining /etc/kernel/postinst.d.\n";
system ("run-parts --verbose --exit-on-error --arg=$version " .
"--arg=$imagedir/vmlinuz-$version " .
"/etc/kernel/postinst.d") &&
die "Failed to process /etc/kernel/postinst.d";
system(
"run-parts --verbose --exit-on-error --arg=$version --arg=$imagedir/vmlinuz-$version /etc/kernel/postinst.d"
) && die "Failed to process /etc/kernel/postinst.d";
}
exit 0
+46
View File
@@ -0,0 +1,46 @@
#!/usr/bin/perl
use strict;
use warnings;
# Ignore all 'upgrade' invocations .
exit 0 if $ARGV[0] =~ /upgrade/;
my $imagedir = "/boot";
my $version = "@@KVNAME@@";
if (-d "/etc/kernel/postrm.d") {
print STDERR "Examining /etc/kernel/postrm.d.\n";
system (
"run-parts --verbose --exit-on-error --arg=$version --arg=$imagedir/vmlinuz-$version /etc/kernel/postrm.d"
) && die "Failed to process /etc/kernel/postrm.d";
}
unlink "$imagedir/initrd.img-$version";
unlink "$imagedir/initrd.img-$version.bak";
unlink "/var/lib/initramfs-tools/$version";
# Ignore all invocations except when called on to purge.
exit 0 unless $ARGV[0] =~ /purge/;
my @files_to_remove = qw{
modules.dep modules.isapnpmap modules.pcimap
modules.usbmap modules.parportmap
modules.generic_string modules.ieee1394map
modules.ieee1394map modules.pnpbiosmap
modules.alias modules.ccwmap modules.inputmap
modules.symbols modules.ofmap
modules.seriomap modules.*.bin
modules.softdep modules.devname
};
foreach my $extra_file (@files_to_remove) {
for (glob("/lib/modules/$version/$extra_file")) {
unlink;
}
}
system ("rmdir", "/lib/modules/$version") if -d "/lib/modules/$version";
exit 0
@@ -1,6 +1,7 @@
#!/usr/bin/perl -w
#!/usr/bin/perl
use strict;
use warnings;
# Ignore all invocations uxcept when called on to remove
exit 0 unless ($ARGV[0] && $ARGV[0] =~ /remove/) ;
@@ -14,10 +15,9 @@ my $version = "@@KVNAME@@";
if (-d "/etc/kernel/prerm.d") {
print STDERR "Examining /etc/kernel/prerm.d.\n";
system ("run-parts --verbose --exit-on-error --arg=$version " .
"--arg=$imagedir/vmlinuz-$version " .
"/etc/kernel/prerm.d") &&
die "Failed to process /etc/kernel/prerm.d";
system(
"run-parts --verbose --exit-on-error --arg=$version --arg=$imagedir/vmlinuz-$version /etc/kernel/prerm.d"
) && die "Failed to process /etc/kernel/prerm.d";
}
exit 0
-46
View File
@@ -1,46 +0,0 @@
#!/usr/bin/perl -w
use strict;
# Ignore all 'upgrade' invocations .
exit 0 if $ARGV[0] =~ /upgrade/;
my $imagedir = "/boot";
my $version = "@@KVNAME@@";
if (-d "/etc/kernel/postrm.d") {
print STDERR "Examining /etc/kernel/postrm.d.\n";
system ("run-parts --verbose --exit-on-error --arg=$version " .
"--arg=$imagedir/vmlinuz-$version " .
"/etc/kernel/postrm.d") &&
die "Failed to process /etc/kernel/postrm.d";
}
unlink "$imagedir/initrd.img-$version";
unlink "$imagedir/initrd.img-$version.bak";
unlink "/var/lib/initramfs-tools/$version";
# Ignore all invocations except when called on to purge.
exit 0 unless $ARGV[0] =~ /purge/;
my @files_to_remove = qw{
modules.dep modules.isapnpmap modules.pcimap
modules.usbmap modules.parportmap
modules.generic_string modules.ieee1394map
modules.ieee1394map modules.pnpbiosmap
modules.alias modules.ccwmap modules.inputmap
modules.symbols modules.ofmap
modules.seriomap modules.*.bin
modules.softdep modules.devname
};
foreach my $extra_file (@files_to_remove) {
for (glob("/lib/modules/$version/$extra_file")) {
unlink;
}
}
system ("rmdir", "/lib/modules/$version") if -d "/lib/modules/$version";
exit 0
+184 -115
View File
@@ -9,17 +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_HEADER_PKG=pve-headers-${KVNAME}
LINUX_TOOLS_PKG=linux-tools-${KERNEL_MAJMIN}
KERNEL_SRC_COPY=${KERNEL_SRC}_tmp
PMX_KERNEL_PKG=proxmox-kernel-$(KVNAME)
PMX_KERNEL_SERIES_PKG=proxmox-kernel-$(KERNEL_MAJMIN)
PMX_DEBUG_KERNEL_PKG=proxmox-kernel-$(KVNAME)-dbgsym
PMX_HEADER_PKG=proxmox-headers-$(KVNAME)
PMX_USR_HEADER_PKG=proxmox-kernel-libc-dev
LINUX_TOOLS_PKG=linux-tools-$(KERNEL_MAJMIN)
KERNEL_SRC_COPY=$(KERNEL_SRC)_tmp
# TODO: split for archs, move to files?
PVE_CONFIG_OPTS= \
PMX_CONFIG_OPTS= \
-m INTEL_MEI_WDT \
-d CONFIG_SND_PCM_OSS \
-e CONFIG_TRANSPARENT_HUGEPAGE_MADVISE \
@@ -27,49 +33,91 @@ PVE_CONFIG_OPTS= \
-m CONFIG_CEPH_FS \
-m CONFIG_BLK_DEV_NBD \
-m CONFIG_BLK_DEV_RBD \
-m CONFIG_BLK_DEV_UBLK \
-d CONFIG_SND_PCSP \
-m CONFIG_BCACHE \
-m CONFIG_JFS_FS \
-m CONFIG_HFS_FS \
-m CONFIG_HFSPLUS_FS \
-e CIFS_SMB_DIRECT \
-e CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU \
-e CONFIG_BRIDGE \
-e CONFIG_BRIDGE_NETFILTER \
-e CONFIG_BLK_DEV_SD \
-e CONFIG_BLK_DEV_SR \
-e CONFIG_BLK_DEV_DM \
-e CONFIG_BLK_DEV_NVME \
-m CONFIG_BLK_DEV_NVME \
-e CONFIG_NLS_ISO8859_1 \
-d CONFIG_INPUT_EVBUG \
-d CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND \
-d CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL \
-e CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE \
-d CONFIG_MODULE_SIG \
-e CONFIG_SYSFB_SIMPLEFB \
-e CONFIG_DRM_SIMPLEDRM \
-e CONFIG_MODULE_SIG \
-e CONFIG_MODULE_SIG_ALL \
-e CONFIG_MODULE_SIG_FORMAT \
--set-str CONFIG_MODULE_SIG_HASH sha512 \
--set-str CONFIG_MODULE_SIG_KEY certs/signing_key.pem \
-e CONFIG_MODULE_SIG_KEY_TYPE_RSA \
-e CONFIG_MODULE_SIG_SHA512 \
-d CONFIG_MEMCG_DISABLED \
-e CONFIG_MEMCG_SWAP_ENABLED \
-e CONFIG_HYPERV \
-m CONFIG_VFIO_IOMMU_TYPE1 \
-m CONFIG_VFIO_VIRQFD \
-m CONFIG_VFIO \
-m CONFIG_VFIO_PCI \
-m CONFIG_USB_XHCI_HCD \
-m CONFIG_USB_XHCI_PCI \
-m CONFIG_USB_EHCI_HCD \
-m CONFIG_USB_EHCI_PCI \
-m CONFIG_USB_EHCI_HCD_PLATFORM \
-m CONFIG_USB_OHCI_HCD \
-m CONFIG_USB_OHCI_HCD_PCI \
-m CONFIG_USB_OHCI_HCD_PLATFORM \
-d CONFIG_USB_OHCI_HCD_SSB \
-m CONFIG_USB_UHCI_HCD \
-d CONFIG_USB_SL811_HCD_ISO \
-e CONFIG_MEMCG_KMEM \
-d CONFIG_DEFAULT_CFQ \
-e CONFIG_DEFAULT_DEADLINE \
-e CONFIG_MODVERSIONS \
-e CONFIG_ZSTD_COMPRESS \
-d CONFIG_DEFAULT_SECURITY_DAC \
-e CONFIG_DEFAULT_SECURITY_APPARMOR \
--set-str CONFIG_DEFAULT_SECURITY apparmor \
-e CONFIG_MODULE_ALLOW_BTF_MISMATCH \
-d CONFIG_UNWINDER_ORC \
-d CONFIG_UNWINDER_GUESS \
-e CONFIG_UNWINDER_FRAME_POINTER \
-e CONFIG_PAGE_TABLE_ISOLATION
--set-str CONFIG_SYSTEM_TRUSTED_KEYS ""\
--set-str CONFIG_SYSTEM_REVOCATION_KEYS ""\
-e CONFIG_SECURITY_LOCKDOWN_LSM \
-e CONFIG_SECURITY_LOCKDOWN_LSM_EARLY \
--set-str CONFIG_LSM lockdown,yama,integrity,apparmor \
-e CONFIG_PAGE_TABLE_ISOLATION \
-e CONFIG_ARCH_HAS_CPU_FINALIZE_INIT \
-d CONFIG_GDS_FORCE_MITIGATION
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/proxmox-kernel.prerm.in > debian/$(PMX_KERNEL_PKG).prerm
sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/proxmox-kernel.postrm.in > debian/$(PMX_KERNEL_PKG).postrm
sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/proxmox-kernel.postinst.in > debian/$(PMX_KERNEL_PKG).postinst
sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/proxmox-headers.postinst.in > debian/$(PMX_HEADER_PKG).postinst
sed -e 's/@@KVMAJMIN@@/$(KERNEL_MAJMIN)/g' -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/proxmox-kernel-meta.postrm.in > debian/$(PMX_KERNEL_SERIES_PKG).postrm
sed -e 's/@@KVMAJMIN@@/$(KERNEL_MAJMIN)/g' -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/proxmox-kernel-meta.postinst.in > debian/$(PMX_KERNEL_SERIES_PKG).postinst
chmod +x debian/$(PMX_KERNEL_PKG).prerm
chmod +x debian/$(PMX_KERNEL_PKG).postrm
chmod +x debian/$(PMX_KERNEL_PKG).postinst
chmod +x debian/$(PMX_KERNEL_SERIES_PKG).postrm
chmod +x debian/$(PMX_KERNEL_SERIES_PKG).postinst
chmod +x debian/$(PMX_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
install: .install_mark .tools_install_mark .headers_install_mark
install: .install_mark .tools_install_mark .headers_install_mark .usr_headers_install_mark
dh_installdocs -A debian/copyright debian/SOURCE
dh_installchangelogs
dh_installman
@@ -79,7 +127,7 @@ install: .install_mark .tools_install_mark .headers_install_mark
binary: install
debian/rules fwcheck abicheck
dh_strip -N${PVE_HEADER_PKG}
dh_strip -N$(PMX_HEADER_PKG) -N$(PMX_USR_HEADER_PKG)
dh_makeshlibs
dh_shlibdeps
dh_installdeb
@@ -88,72 +136,90 @@ binary: install
dh_builddeb
.config_mark:
cd ${KERNEL_SRC}; scripts/config ${PVE_CONFIG_OPTS}
${MAKE} -C ${KERNEL_SRC} oldconfig
cd $(KERNEL_SRC); scripts/config $(PMX_CONFIG_OPTS)
$(MAKE) -C $(KERNEL_SRC) oldconfig
# copy to allow building in parallel to kernel/module compilation without interference
rm -rf $(KERNEL_SRC_COPY)
cp -ar $(KERNEL_SRC) $(KERNEL_SRC_COPY)
touch $@
.compile_mark: .config_mark
${MAKE} -C ${KERNEL_SRC} KBUILD_BUILD_VERSION_TIMESTAMP="PVE ${DEB_VERSION} (${CHANGELOG_DATE})"
$(MAKE) -C $(KERNEL_SRC) KBUILD_BUILD_VERSION_TIMESTAMP="PMX $(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
## install latest ibg driver
install -m 644 ${MODULES}/igb.ko debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/kernel/drivers/net/ethernet/intel/igb/
# install latest e1000e driver
install -m 644 ${MODULES}/e1000e.ko debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/kernel/drivers/net/ethernet/intel/e1000e/
rm -rf debian/$(PMX_KERNEL_PKG)
mkdir -p debian/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME)
mkdir debian/$(PMX_KERNEL_PKG)/boot
install -m 644 $(KERNEL_SRC)/.config debian/$(PMX_KERNEL_PKG)/boot/config-$(KVNAME)
install -m 644 $(KERNEL_SRC)/System.map debian/$(PMX_KERNEL_PKG)/boot/System.map-$(KVNAME)
install -m 644 $(KERNEL_SRC)/$(KERNEL_IMAGE_PATH) debian/$(PMX_KERNEL_PKG)/boot/$(KERNEL_INSTALL_FILE)-$(KVNAME)
$(MAKE) -C $(KERNEL_SRC) INSTALL_MOD_PATH=$(BUILD_DIR)/debian/$(PMX_KERNEL_PKG)/ modules_install
# install zfs drivers
install -d -m 0755 debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/zfs
install -m 644 $(addprefix ${MODULES}/,spl.ko splat.ko zfs.ko zavl.ko znvpair.ko zunicode.ko zcommon.ko zpios.ko icp.ko) debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/zfs
install -d -m 0755 debian/$(PMX_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/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME)/zfs
# remove firmware
rm -rf debian/${PVE_KERNEL_PKG}/lib/firmware
rm -rf debian/$(PMX_KERNEL_PKG)/lib/firmware
ifeq ($(filter pkg.proxmox-kernel.debug,$(DEB_BUILD_PROFILES)),)
echo "'pkg.proxmox-kernel.debug' build profile disabled, skipping -dbgsym creation"
else
echo "'pkg.proxmox-kernel.debug' build profile enabled, creating -dbgsym contents"
mkdir -p debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/$(KVNAME)
mkdir debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/boot
install -m 644 $(KERNEL_SRC)/vmlinux debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/boot/vmlinux-$(KVNAME)
cp -r debian/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME) debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/
rm -f debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/$(KVNAME)/source
rm -f debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/$(KVNAME)/build
rm -f debian/$(PMX_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/$(PMX_KERNEL_PKG)/lib/modules -name \*.ko -print | while read f ; do strip --strip-debug "$$f"; done
# sign modules using ephemeral, embedded key
if grep -q CONFIG_MODULE_SIG=y ubuntu-kernel/.config ; then \
find debian/$(PMX_KERNEL_PKG)/lib/modules -name \*.ko -print | while read f ; do \
./ubuntu-kernel/scripts/sign-file sha512 ./ubuntu-kernel/certs/signing_key.pem ubuntu-kernel/certs/signing_key.x509 "$$f" ; \
done; \
rm ./ubuntu-kernel/certs/signing_key.pem ; \
fi
# finalize
/sbin/depmod -b debian/${PVE_KERNEL_PKG}/ ${KVNAME}
/sbin/depmod -b debian/$(PMX_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/$(PMX_KERNEL_PKG)/lib/modprobe.d
ls debian/$(PMX_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/$(PMX_KERNEL_PKG)/lib/modprobe.d/blacklist_$(PMX_KERNEL_PKG).conf
rm -f debian/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME)/source
rm -f debian/$(PMX_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=python2.7
$(MAKE) -C $(KERNEL_SRC)/tools/perf prefix=/usr HAVE_NO_LIBBFD=1 HAVE_CPLUS_DEMANGLE_SUPPORT=1 NO_LIBPYTHON=1 NO_LIBPERL=1 NO_LIBCRYPTO=1 PYTHON=python3
echo "checking GPL-2 only perf binary for library linkage with incompatible licenses.."
! ldd ${KERNEL_SRC}/tools/perf/perf | grep -q -E '\blibbfd'
! ldd ${KERNEL_SRC}/tools/perf/perf | grep -q -E '\blibcrypto'
${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}
# copy to allow building in parallel to kernel/module compilation without interference
rm -rf ${KERNEL_SRC_COPY}
cp -ar ${KERNEL_SRC} ${KERNEL_SRC_COPY}
make -C ${KERNEL_SRC_COPY} mrproper
cd ${KERNEL_SRC_COPY}; find . -path './debian/*' -prune \
rm -rf debian/$(PMX_HEADER_PKG)
mkdir -p debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)
install -m 0644 $(KERNEL_SRC)/.config debian/$(PMX_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 \
@@ -165,84 +231,87 @@ binary: install
-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}; cp -a include scripts ${BUILD_DIR}/debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}
cd ${KERNEL_SRC_COPY}; \
-print | cpio -pd --preserve-modification-time $(BUILD_DIR)/debian/$(PMX_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/$(PMX_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 silentoldconfig prepare scripts
find ${BUILD_DIR}/${KERNEL_SRC_COPY}/${PVE_HEADER_PKG} -name \*.o.ur-\* | 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)/$(PMX_HEADER_PKG)
mkdir -p $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PMX_HEADER_PKG)
cp $(KERNEL_SRC)/.config $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PMX_HEADER_PKG)/.config
$(MAKE) -C $(KERNEL_SRC_COPY) O=$(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PMX_HEADER_PKG) -j1 syncconfig modules_prepare prepare scripts
cd $(KERNEL_SRC_COPY); cp -a include scripts $(BUILD_DIR)/debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)
find $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PMX_HEADER_PKG) -name \*.o.ur-\* -o -name '*.cmd' | xargs rm -f
rsync --ignore-existing -r -v -a $(addprefix $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PMX_HEADER_PKG)/,arch include kernel scripts tools) $(BUILD_DIR)/debian/$(PMX_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/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)/include/generated/compile.h
install -m 0644 $(KERNEL_SRC)/Module.symvers debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)
mkdir -p debian/$(PMX_HEADER_PKG)/lib/modules/$(KVNAME)
ln -sf /usr/src/linux-headers-$(KVNAME) debian/$(PMX_HEADER_PKG)/lib/modules/$(KVNAME)/build
touch $@
.modules_compile_mark: $(addprefix ${MODULES}/,igb.ko e1000e.ko spl.ko zfs.ko)
.usr_headers_install_mark: PKG_DIR = debian/$(PMX_USR_HEADER_PKG)
.usr_headers_install_mark: OUT_DIR = $(PKG_DIR)/usr
.usr_headers_install_mark: .config_mark
rm -rf '$(PKG_DIR)'
mkdir -p '$(PKG_DIR)'
$(MAKE) -C $(KERNEL_SRC) headers_install ARCH=$(KERNEL_HEADER_ARCH) INSTALL_HDR_PATH='$(CURDIR)'/$(OUT_DIR)
rm -rf $(OUT_DIR)/include/drm $(OUT_DIR)/include/scsi
find $(OUT_DIR)/include \( -name .install -o -name ..install.cmd \) -execdir rm {} +
# Move include/asm to arch-specific directory
mkdir -p $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)
mv $(OUT_DIR)/include/asm $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/
test ! -d $(OUT_DIR)/include/arch || \
mv $(OUT_DIR)/include/arch $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/
touch $@
${MODULES}/spl.ko: .compile_mark
cd ${MODULES}/${SPLDIR}; ./autogen.sh
cd ${MODULES}/${SPLDIR}; ./configure --with-config=kernel --with-linux=${BUILD_DIR}/${KERNEL_SRC} --with-linux-obj=${BUILD_DIR}/${KERNEL_SRC}
${MAKE} -C ${MODULES}/${SPLDIR}
cp ${MODULES}/${SPLDIR}/module/splat/splat.ko ${MODULES}/
cp ${MODULES}/${SPLDIR}/module/spl/spl.ko ${MODULES}/
.modules_compile_mark: $(MODULES)/zfs.ko
touch $@
${MODULES}/zfs.ko: .compile_mark ${MODULES}/spl.ko
cd ${MODULES}/${ZFSDIR}; ./autogen.sh
cd ${MODULES}/${ZFSDIR}; ./configure --with-spl=${BUILD_DIR}/${MODULES}/${SPLDIR} --with-spl-obj=${BUILD_DIR}/${MODULES}/${SPLDIR} --with-config=kernel --with-linux=${BUILD_DIR}/${KERNEL_SRC} --with-linux-obj=${BUILD_DIR}/${KERNEL_SRC}
${MAKE} -C ${MODULES}/${ZFSDIR}
cp ${MODULES}/${ZFSDIR}/module/avl/zavl.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/nvpair/znvpair.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/unicode/zunicode.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/zcommon/zcommon.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/zpios/zpios.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/icp/icp.ko ${MODULES}/
cp ${MODULES}/${ZFSDIR}/module/zfs/zfs.ko ${MODULES}/
$(MODULES)/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}/igb.ko: .compile_mark
${MAKE} -C ${MODULES}/${IGBDIR}/src BUILD_KERNEL=${KVNAME} KSRC=${BUILD_DIR}/${KERNEL_SRC}
cp ${MODULES}/${IGBDIR}/src/igb.ko ${MODULES}/
${MODULES}/e1000e.ko: .compile_mark
${MAKE} -C ${MODULES}/${E1000EDIR}/src BUILD_KERNEL=${KVNAME} KSRC=${BUILD_DIR}/${KERNEL_SRC}
cp ${MODULES}/${E1000EDIR}/src/e1000e.ko ${MODULES}/
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/$(PMX_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/$(PMX_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
+108 -113
View File
@@ -1,12 +1,14 @@
#!/usr/bin/perl -w
#!/usr/bin/perl
use strict;
use warnings;
my $abinew = shift;
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;
@@ -23,30 +25,30 @@ my $count;
print "II: Checking ABI...\n";
if ($skipabi) {
print "WW: Explicitly asked to ignore ABI, running in no-fail mode\n";
$fail_exit = 0;
$abiskip = 1;
$EE = "WW:";
print "WW: Explicitly asked to ignore ABI, running in no-fail mode\n";
$fail_exit = 0;
$abiskip = 1;
$EE = "WW:";
}
if ($prev_abistr ne $abistr) {
print "II: Different ABI's, running in no-fail mode\n";
$fail_exit = 0;
$EE = "WW:";
print "II: Different ABI's, running in no-fail mode\n";
$fail_exit = 0;
$EE = "WW:";
}
if (not -f "$abinew" or not -f "$abiold") {
print "EE: Previous or current ABI file missing!\n";
print " $abinew\n" if not -f "$abinew";
print " $abiold\n" if not -f "$abiold";
print "EE: Previous or current ABI file missing!\n";
print " $abinew\n" if not -f "$abinew";
print " $abiold\n" if not -f "$abiold";
# Exit if the ABI files are missing, but return status based on whether
# skip ABI was indicated.
if ("$abiskip" eq "1") {
exit(0);
} else {
exit(1);
}
# Exit if the ABI files are missing, but return status based on whether
# skip ABI was indicated.
if ("$abiskip" eq "1") {
exit(0);
} else {
exit(1);
}
}
my %symbols;
@@ -58,101 +60,97 @@ my %module_syms;
my $ignore = 0;
print " Reading symbols/modules to ignore...";
for $file ("abi-blacklist") {
if (-f $file) {
open(IGNORE, "< $file") or
die "Could not open $file";
while (<IGNORE>) {
chomp;
if ($_ =~ m/M: (.*)/) {
$modules_ignore{$1} = 1;
} else {
$symbols_ignore{$_} = 1;
}
$ignore++;
}
close(IGNORE);
for my $file ("abi-blacklist") {
next if !-f $file;
open(my $IGNORE_FH, '<', $file) or die "Could not open $file - $!";
while (<$IGNORE_FH>) {
chomp;
if ($_ =~ m/M: (.*)/) {
$modules_ignore{$1} = 1;
} else {
$symbols_ignore{$_} = 1;
}
$ignore++;
}
close($IGNORE_FH);
}
print "read $ignore symbols/modules.\n";
sub is_ignored($$) {
my ($mod, $sym) = @_;
my ($mod, $sym) = @_;
die "Missing module name in is_ignored()" if not defined($mod);
die "Missing symbol name in is_ignored()" if not defined($sym);
die "Missing module name in is_ignored()" if not defined($mod);
die "Missing symbol name in is_ignored()" if not defined($sym);
if (defined($symbols_ignore{$sym}) or defined($modules_ignore{$mod})) {
return 1;
}
return 0;
if (defined($symbols_ignore{$sym}) or defined($modules_ignore{$mod})) {
return 1;
}
return 0;
}
# Read new syms first
print " Reading new symbols ($abistr)...";
$count = 0;
open(NEW, "< $abinew") or
die "Could not open $abinew";
while (<NEW>) {
chomp;
m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
$symbols{$4}{'type'} = $1;
$symbols{$4}{'loc'} = $2;
$symbols{$4}{'hash'} = $3;
$module_syms{$2} = 0;
$count++;
open(my $NEW_FH, '<', $abinew) or die "Could not open $abinew - $!";
while (<$NEW_FH>) {
chomp;
m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
$symbols{$4}{'type'} = $1;
$symbols{$4}{'loc'} = $2;
$symbols{$4}{'hash'} = $3;
$module_syms{$2} = 0;
$count++;
}
close(NEW);
close($NEW_FH);
print "read $count symbols.\n";
# Now the old symbols, checking for missing ones
print " Reading old symbols...";
$count = 0;
open(OLD, "< $abiold") or
die "Could not open $abiold";
while (<OLD>) {
chomp;
m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
$symbols{$4}{'old_type'} = $1;
$symbols{$4}{'old_loc'} = $2;
$symbols{$4}{'old_hash'} = $3;
$count++;
open(my $OLD_FH, '<', $abiold) or die "Could not open $abiold - $!";
while (<$OLD_FH>) {
chomp;
m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
$symbols{$4}{'old_type'} = $1;
$symbols{$4}{'old_loc'} = $2;
$symbols{$4}{'old_hash'} = $3;
$count++;
}
close(OLD);
close($OLD_FH);
print "read $count symbols.\n";
print "II: Checking for missing symbols in new ABI...";
$count = 0;
foreach $sym (keys(%symbols)) {
if (!defined($symbols{$sym}{'type'})) {
print "\n" if not $count;
printf(" MISS : %s%s\n", $sym,
is_ignored($symbols{$sym}{'old_loc'}, $sym) ? " (ignored)" : "");
$count++ if !is_ignored($symbols{$sym}{'old_loc'}, $sym);
}
for my $sym (keys(%symbols)) {
if (!defined($symbols{$sym}{'type'})) {
print "\n" if not $count;
printf(" MISS : %s%s\n", $sym, is_ignored($symbols{$sym}{'old_loc'}, $sym) ? " (ignored)" : "");
$count++ if !is_ignored($symbols{$sym}{'old_loc'}, $sym);
}
}
print " " if $count;
print "found $count missing symbols\n";
if ($count) {
print "$EE Symbols gone missing (what did you do!?!)\n";
$errors++;
print "$EE Symbols gone missing (what did you do!?!)\n";
$errors++;
}
print "II: Checking for new symbols in new ABI...";
$count = 0;
foreach $sym (keys(%symbols)) {
if (!defined($symbols{$sym}{'old_type'})) {
print "\n" if not $count;
print " NEW : $sym\n";
$count++;
}
for my $sym (keys(%symbols)) {
if (!defined($symbols{$sym}{'old_type'})) {
print "\n" if not $count;
print " NEW : $sym\n";
$count++;
}
}
print " " if $count;
print "found $count new symbols\n";
if ($count) {
print "WW: Found new symbols. Not recommended unless ABI was bumped\n";
print "WW: Found new symbols. Not recommended unless ABI was bumped\n";
}
print "II: Checking for changes to ABI...\n";
@@ -160,37 +158,34 @@ $count = 0;
my $moved = 0;
my $changed_type = 0;
my $changed_hash = 0;
foreach $sym (keys(%symbols)) {
if (!defined($symbols{$sym}{'old_type'}) or
!defined($symbols{$sym}{'type'})) {
next;
}
for my $sym (keys(%symbols)) {
if (!defined($symbols{$sym}{'old_type'}) or !defined($symbols{$sym}{'type'})) {
next;
}
# Changes in location don't hurt us, but log it anyway
if ($symbols{$sym}{'loc'} ne $symbols{$sym}{'old_loc'}) {
printf(" MOVE : %-40s : %s => %s\n", $sym, $symbols{$sym}{'old_loc'},
$symbols{$sym}{'loc'});
$moved++;
}
# Changes in location don't hurt us, but log it anyway
if ($symbols{$sym}{'loc'} ne $symbols{$sym}{'old_loc'}) {
printf(" MOVE : %-40s : %s => %s\n", $sym, $symbols{$sym}{'old_loc'}, $symbols{$sym}{'loc'});
$moved++;
}
# Changes to export type are only bad if new type isn't
# EXPORT_SYMBOL. Changing things to GPL are bad.
if ($symbols{$sym}{'type'} ne $symbols{$sym}{'old_type'}) {
printf(" TYPE : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_type'}.
$symbols{$sym}{'type'}, is_ignored($symbols{$sym}{'loc'}, $sym)
? " (ignored)" : "");
$changed_type++ if $symbols{$sym}{'type'} ne "EXPORT_SYMBOL"
and !is_ignored($symbols{$sym}{'loc'}, $sym);
}
# Changes to export type are only bad if new type isn't
# EXPORT_SYMBOL. Changing things to GPL are bad.
if ($symbols{$sym}{'type'} ne $symbols{$sym}{'old_type'}) {
printf(" TYPE : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_type'}.
$symbols{$sym}{'type'}, is_ignored($symbols{$sym}{'loc'}, $sym)
? " (ignored)" : "");
$changed_type++ if $symbols{$sym}{'type'} ne "EXPORT_SYMBOL" and !is_ignored($symbols{$sym}{'loc'}, $sym);
}
# Changes to the hash are always bad
if ($symbols{$sym}{'hash'} ne $symbols{$sym}{'old_hash'}) {
printf(" HASH : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_hash'},
$symbols{$sym}{'hash'}, is_ignored($symbols{$sym}{'loc'}, $sym)
? " (ignored)" : "");
$changed_hash++ if !is_ignored($symbols{$sym}{'loc'}, $sym);
$module_syms{$symbols{$sym}{'loc'}}++;
}
# Changes to the hash are always bad
if ($symbols{$sym}{'hash'} ne $symbols{$sym}{'old_hash'}) {
printf(" HASH : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_hash'},
$symbols{$sym}{'hash'}, is_ignored($symbols{$sym}{'loc'}, $sym)
? " (ignored)" : "");
$changed_hash++ if !is_ignored($symbols{$sym}{'loc'}, $sym);
$module_syms{$symbols{$sym}{'loc'}}++;
}
}
print "WW: $moved symbols changed location\n" if $moved;
@@ -199,17 +194,17 @@ print "$EE $changed_hash symbols changed hash and weren't ignored\n" if $changed
$errors++ if $changed_hash or $changed_type;
if ($changed_hash) {
print "II: Module hash change summary...\n";
foreach $mod (sort { $module_syms{$b} <=> $module_syms{$a} } keys %module_syms) {
next if ! $module_syms{$mod};
printf(" %-40s: %d\n", $mod, $module_syms{$mod});
}
print "II: Module hash change summary...\n";
for my $mod (sort { $module_syms{$b} <=> $module_syms{$a} } keys %module_syms) {
next if ! $module_syms{$mod};
printf(" %-40s: %d\n", $mod, $module_syms{$mod});
}
}
print "II: Done\n";
if ($errors) {
exit($fail_exit);
exit($fail_exit);
} else {
exit(0);
exit(0);
}
+6 -3
View File
@@ -1,8 +1,11 @@
#!/usr/bin/perl -w
#!/usr/bin/perl
use PVE::Tools;
use strict;
use warnings;
use IO::File;
use PVE::Tools ();
use IO::File ();
sub usage {
die "USAGE: $0 INFILE OUTFILE [ABI INFILE-IS-DEB]\n";
+4 -4
View File
@@ -6,7 +6,7 @@ top=$(pwd)
if [ "$#" -ne 3 ]; then
echo "USAGE: $0 repo patchdir ref"
echo "\t exports patches from 'repo' to 'patchdir' based on 'ref'"
printf "\t exports patches from 'repo' to 'patchdir' based on 'ref'\n"
exit 1
fi
@@ -25,10 +25,10 @@ git format-patch \
--no-cover-letter \
--zero-commit \
--no-signature \
--output-dir \
"${top}/${kernel_patchdir}" \
--diff-algorithm=myers \
--output-directory="${top}/${kernel_patchdir}" \
"${base_ref}.."
git checkout ${base_ref}
git checkout "${base_ref}"
cd "${top}"
+9 -8
View File
@@ -1,6 +1,7 @@
#!/usr/bin/perl -w
#!/usr/bin/perl
use strict;
use warnings;
my $dir = shift;
@@ -8,25 +9,25 @@ die "no directory to scan" if !$dir;
die "no such directory" if ! -d $dir;
die "strange directory name" if $dir !~ m|^(.*/)?(4.15.\d+\-\d+\-pve)(/+)?$|;
warn "\n\nNOTE: strange directory name: $dir\n\n" if $dir !~ m|^(.*/)?(\d+.\d+.\d+\-\d+\-pve)(/+)?$|;
my $apiver = $2;
open(TMP, "find '$dir' -name '*.ko'|");
while (defined(my $fn = <TMP>)) {
open(my $FIND_KO_FH, "find '$dir' -name '*.ko'|");
while (defined(my $fn = <$FIND_KO_FH>)) {
chomp $fn;
my $relfn = $fn;
$relfn =~ s|^$dir/*||;
my $cmd = "/sbin/modinfo -F firmware '$fn'";
open(MOD, "$cmd|");
while (defined(my $fw = <MOD>)) {
open(my $MOD_FH, "$cmd|");
while (defined(my $fw = <$MOD_FH>)) {
chomp $fw;
print "$fw $relfn\n";
}
close(MOD);
close($MOD_FH);
}
close TMP;
close($FIND_KO_FH);
exit 0;
+2
View File
@@ -0,0 +1,2 @@
proxmox-kernel-6.2 source: debian-control-has-dbgsym-package (in section for proxmox-kernel-*-pve-dbgsym) Package [debian/control:*]
proxmox-kernel-6.2 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]
Binary file not shown.
+1130 -364
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
@@ -1,37 +0,0 @@
diff --git a/src/netdev.c b/src/netdev.c
index 73b0f9a..aef1bc2 100644
--- a/src/netdev.c
+++ b/src/netdev.c
@@ -6724,19 +6724,12 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu)
int max_frame = new_mtu + VLAN_ETH_HLEN + ETH_FCS_LEN;
/* Jumbo frame support */
- if ((max_frame > (VLAN_ETH_FRAME_LEN + ETH_FCS_LEN)) &&
+ if ((new_mtu > ETH_DATA_LEN) &&
!(adapter->flags & FLAG_HAS_JUMBO_FRAMES)) {
e_err("Jumbo Frames not supported.\n");
return -EINVAL;
}
- /* Supported frame sizes */
- if ((new_mtu < (VLAN_ETH_ZLEN + ETH_FCS_LEN)) ||
- (max_frame > adapter->max_hw_frame_size)) {
- e_err("Unsupported MTU setting\n");
- return -EINVAL;
- }
-
/* Jumbo frame workaround on 82579 and newer requires CRC be stripped */
if ((adapter->hw.mac.type >= e1000_pch2lan) &&
!(adapter->flags2 & FLAG2_CRC_STRIPPING) &&
@@ -8262,6 +8255,11 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
#endif /* HAVE_NETDEV_VLAN_FEATURES */
}
+ /* MTU range: 68 - max_hw_frame_size */
+ netdev->min_mtu = ETH_MIN_MTU;
+ netdev->max_mtu = adapter->max_hw_frame_size -
+ (VLAN_ETH_HLEN + ETH_FCS_LEN);
+
if (e1000e_enable_mng_pass_thru(&adapter->hw))
adapter->flags |= FLAG_MNG_PT_ENABLED;
@@ -1,53 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Tue, 5 Jun 2018 11:16:29 +0200
Subject: [PATCH] port to new internal kernel timer API
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
diff --git a/src/netdev.c b/src/netdev.c
--- a/src/netdev.c
+++ b/src/netdev.c
@@ -5389,9 +5389,10 @@
* Need to wait a few seconds after link up to get diagnostic information from
* the phy
**/
-static void e1000_update_phy_info(unsigned long data)
+static void e1000_update_phy_info(struct timer_list *t)
{
- struct e1000_adapter *adapter = (struct e1000_adapter *)data;
+ struct e1000_adapter *adapter;
+ adapter = from_timer(adapter, t, phy_info_timer);
if (test_bit(__E1000_DOWN, &adapter->state))
return;
@@ -5774,9 +5775,10 @@
* e1000_watchdog - Timer Call-back
* @data: pointer to adapter cast into an unsigned long
**/
-static void e1000_watchdog(unsigned long data)
+static void e1000_watchdog(struct timer_list *t)
{
- struct e1000_adapter *adapter = (struct e1000_adapter *)data;
+ struct e1000_adapter *adapter;
+ adapter = from_timer(adapter, t, watchdog_timer);
/* Do the rest outside of interrupt context */
schedule_work(&adapter->watchdog_task);
@@ -8348,13 +8348,9 @@
goto err_eeprom;
}
- init_timer(&adapter->watchdog_timer);
- adapter->watchdog_timer.function = e1000_watchdog;
- adapter->watchdog_timer.data = (unsigned long)adapter;
-
- init_timer(&adapter->phy_info_timer);
- adapter->phy_info_timer.function = e1000_update_phy_info;
- adapter->phy_info_timer.data = (unsigned long)adapter;
+ timer_setup(&adapter->watchdog_timer, e1000_watchdog, 0);
+
+ timer_setup(&adapter->phy_info_timer, e1000_update_phy_info, 0);
INIT_WORK(&adapter->reset_task, e1000_reset_task);
INIT_WORK(&adapter->watchdog_task, e1000_watchdog_task);
-15
View File
@@ -1,15 +0,0 @@
diff --git a/src/igb_main.c.orig b/src/igb_main.c
index 3ee1ec7..c8adf04 100644
--- a/src/igb_main.c.orig
+++ b/src/igb_main.c
@@ -5888,10 +5888,8 @@ static int igb_change_mtu(struct net_dev
while (test_and_set_bit(__IGB_RESETTING, &adapter->state))
usleep_range(1000, 2000);
-#ifndef HAVE_NETDEVICE_MIN_MAX_MTU
/* igb_down has a dependency on max_frame_size */
adapter->max_frame_size = max_frame;
-#endif
if (netif_running(netdev))
igb_down(adapter);
@@ -1,18 +0,0 @@
diff --git a/src/Makefile.orig b/src/Makefile
index 8e962f7..50bcdcc 100644
--- a/src/Makefile.orig
+++ b/src/Makefile
@@ -123,6 +123,13 @@ ifeq (,$(CC))
$(error Compiler not found)
endif
+# workaround for GCC6's default PIE
+ifeq ($(CC),gcc)
+ PIE_TEST = [ -z "`$(CC) -fno-PIE -no-pie -x c -c /dev/null -o /dev/null 2>&1`" ]
+ PIE_FLAGS := $(shell $(PIE_TEST) && echo '-fno-PIE -no-pie')
+ EXTRA_CFLAGS += $(PIE_FLAGS)
+endif
+
# we need to know what platform the driver is being built on
# some additional features are only built on Intel platforms
ARCH := $(shell uname -m | sed 's/i.86/i386/')
@@ -17,28 +17,19 @@ $KBUILD_BUILD_TIMESTAMP.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
scripts/mkcompile_h | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
init/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
index 87f1fc9801d7..4ef868f1f244 100755
--- a/scripts/mkcompile_h
+++ b/scripts/mkcompile_h
@@ -33,10 +33,14 @@ else
VERSION=$KBUILD_BUILD_VERSION
fi
diff --git a/init/Makefile b/init/Makefile
index ec557ada3c12..72095034f338 100644
--- a/init/Makefile
+++ b/init/Makefile
@@ -29,7 +29,7 @@ preempt-flag-$(CONFIG_PREEMPT_DYNAMIC) := PREEMPT_DYNAMIC
preempt-flag-$(CONFIG_PREEMPT_RT) := PREEMPT_RT
-if [ -z "$KBUILD_BUILD_TIMESTAMP" ]; then
- TIMESTAMP=`date`
+if [ -z "$KBUILD_BUILD_VERSION_TIMESTAMP" ]; then
+ if [ -z "$KBUILD_BUILD_TIMESTAMP" ]; then
+ TIMESTAMP=`date`
+ else
+ TIMESTAMP=$KBUILD_BUILD_TIMESTAMP
+ fi
else
- TIMESTAMP=$KBUILD_BUILD_TIMESTAMP
+ TIMESTAMP=$KBUILD_BUILD_VERSION_TIMESTAMP
fi
if test -z "$KBUILD_BUILD_USER"; then
LINUX_COMPILE_BY=$(whoami | sed 's/\\/\\\\/')
build-version = $(or $(KBUILD_BUILD_VERSION), $(build-version-auto))
-build-timestamp = $(or $(KBUILD_BUILD_TIMESTAMP), $(build-timestamp-auto))
+build-timestamp = $(or $(KBUILD_BUILD_VERSION_TIMESTAMP), $(KBUILD_BUILD_TIMESTAMP), $(build-timestamp-auto))
# Maximum length of UTS_VERSION is 64 chars
filechk_uts_version = \
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 808e2b914015..b0ad54384826 100644
index 75204d36d7f9..1fb5ff73ec1e 100644
--- a/net/bridge/br_stp_if.c
+++ b/net/bridge/br_stp_if.c
@@ -259,10 +259,7 @@ bool br_stp_recalculate_bridge_id(struct net_bridge *br)
@@ -265,10 +265,7 @@ bool br_stp_recalculate_bridge_id(struct net_bridge *br)
return false;
list_for_each_entry(p, &br->port_list, list) {
@@ -51,14 +51,14 @@ Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
.../admin-guide/kernel-parameters.txt | 9 ++
drivers/pci/quirks.c | 101 ++++++++++++++++++
2 files changed, 110 insertions(+)
drivers/pci/quirks.c | 102 ++++++++++++++++++
2 files changed, 111 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 325a5dd7813d..a95cc0b61b29 100644
index 5d47f23514d0..f06df077504b 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -3181,6 +3181,15 @@
@@ -4210,6 +4210,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,11 +75,11 @@ index 325a5dd7813d..a95cc0b61b29 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 e5d1a00c481d..7ecd84506d8d 100644
index 592e1c4ae697..aebf6f412203 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3769,6 +3769,106 @@ static int __init pci_apply_final_quirks(void)
@@ -194,6 +194,106 @@ static int __init pci_apply_final_quirks(void)
}
fs_initcall_sync(pci_apply_final_quirks);
+static bool acs_on_downstream;
@@ -183,13 +183,14 @@ index e5d1a00c481d..7ecd84506d8d 100644
+}
+
/*
* Following are device-specific reset methods which can be used to
* reset a single function if other methods (e.g. FLR, PM D0->D3) are
@@ -4664,6 +4764,7 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
* Decoding should be disabled for a PCI device during BAR sizing to avoid
* conflict. But doing so may cause problems on host bridge and perhaps other
@@ -4974,6 +5074,8 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_CAVIUM, 0xA060, pci_quirk_mf_endpoint_acs },
/* APM X-Gene */
{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
+ /* Enable overrides for missing ACS capabilities */
+ { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides },
{ 0 }
};
/* Ampere Computing */
{ PCI_VENDOR_ID_AMPERE, 0xE005, pci_quirk_xgene_acs },
{ PCI_VENDOR_ID_AMPERE, 0xE006, pci_quirk_xgene_acs },
@@ -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 706b13f0c698..c6749d154ebc 100644
index 73fad57408f7..99ae3e468ce6 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -78,7 +78,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,59 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Changwei Ge <ge.changwei@h3c.com>
Date: Wed, 31 Jan 2018 16:15:02 -0800
Subject: [PATCH] ocfs2: make metadata estimation accurate and clear
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Current code assume that ::w_unwritten_list always has only one item on.
This is not right and hard to get understood. So improve how to count
unwritten item.
Link: http://lkml.kernel.org/r/1515479070-32653-1-git-send-email-ge.changwei@h3c.com
Signed-off-by: Changwei Ge <ge.changwei@h3c.com>
Reported-by: John Lightsey <john@nixnuts.net>
Tested-by: John Lightsey <john@nixnuts.net>
Cc: Mark Fasheh <mfasheh@versity.com>
Cc: Joseph Qi <jiangqi903@gmail.com>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Changwei Ge <ge.changwei@h3c.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 63de8bd9328bf2a778fc277503da163ae3defa3c)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
fs/ocfs2/aops.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 7de0c9562b70..209cec7efef4 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -797,6 +797,7 @@ struct ocfs2_write_ctxt {
struct ocfs2_cached_dealloc_ctxt w_dealloc;
struct list_head w_unwritten_list;
+ unsigned int w_unwritten_count;
};
void ocfs2_unlock_and_free_pages(struct page **pages, int num_pages)
@@ -1386,6 +1387,7 @@ static int ocfs2_unwritten_check(struct inode *inode,
desc->c_clear_unwritten = 0;
list_add_tail(&new->ue_ip_node, &oi->ip_unwritten_list);
list_add_tail(&new->ue_node, &wc->w_unwritten_list);
+ wc->w_unwritten_count++;
new = NULL;
unlock:
spin_unlock(&oi->ip_lock);
@@ -2277,7 +2279,7 @@ static int ocfs2_dio_wr_get_block(struct inode *inode, sector_t iblock,
ue->ue_phys = desc->c_phys;
list_splice_tail_init(&wc->w_unwritten_list, &dwc->dw_zero_list);
- dwc->dw_zero_count++;
+ dwc->dw_zero_count += wc->w_unwritten_count;
}
ret = ocfs2_write_end_nolock(inode->i_mapping, pos, len, len, wc);
@@ -0,0 +1,28 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Wed, 7 Oct 2020 17:18:28 +0200
Subject: [PATCH] net: core: downgrade unregister_netdevice refcount leak from
emergency to error
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
net/core/dev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index 555bbe774734..de2e0d0185fc 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -10262,7 +10262,7 @@ static struct net_device *netdev_wait_allrefs_any(struct list_head *list)
if (time_after(jiffies, warning_time +
READ_ONCE(netdev_unregister_timeout_secs) * HZ)) {
list_for_each_entry(dev, list, todo_list) {
- pr_emerg("unregister_netdevice: waiting for %s to become free. Usage count = %d\n",
+ pr_err("unregister_netdevice: waiting for %s to become free. Usage count = %d\n",
dev->name, netdev_refcnt_read(dev));
ref_tracker_dir_print(&dev->refcnt_tracker, 10);
}
@@ -1,368 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Changwei Ge <ge.changwei@h3c.com>
Date: Wed, 31 Jan 2018 16:15:06 -0800
Subject: [PATCH] ocfs2: try to reuse extent block in dealloc without
meta_alloc
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
A crash issue was reported by John Lightsey with a call trace as follows:
ocfs2_split_extent+0x1ad3/0x1b40 [ocfs2]
ocfs2_change_extent_flag+0x33a/0x470 [ocfs2]
ocfs2_mark_extent_written+0x172/0x220 [ocfs2]
ocfs2_dio_end_io+0x62d/0x910 [ocfs2]
dio_complete+0x19a/0x1a0
do_blockdev_direct_IO+0x19dd/0x1eb0
__blockdev_direct_IO+0x43/0x50
ocfs2_direct_IO+0x8f/0xa0 [ocfs2]
generic_file_direct_write+0xb2/0x170
__generic_file_write_iter+0xc3/0x1b0
ocfs2_file_write_iter+0x4bb/0xca0 [ocfs2]
__vfs_write+0xae/0xf0
vfs_write+0xb8/0x1b0
SyS_write+0x4f/0xb0
system_call_fastpath+0x16/0x75
The BUG code told that extent tree wants to grow but no metadata was
reserved ahead of time. From my investigation into this issue, the root
cause it that although enough metadata is not reserved, there should be
enough for following use. Rightmost extent is merged into its left one
due to a certain times of marking extent written. Because during
marking extent written, we got many physically continuous extents. At
last, an empty extent showed up and the rightmost path is removed from
extent tree.
Add a new mechanism to reuse extent block cached in dealloc which were
just unlinked from extent tree to solve this crash issue.
Criteria is that during marking extents *written*, if extent rotation
and merging results in unlinking extent with growing extent tree later
without any metadata reserved ahead of time, try to reuse those extents
in dealloc in which deleted extents are cached.
Also, this patch addresses the issue John reported that ::dw_zero_count
is not calculated properly.
After applying this patch, the issue John reported was gone. Thanks for
the reproducer provided by John. And this patch has passed
ocfs2-test(29 cases) suite running by New H3C Group.
[ge.changwei@h3c.com: fix static checker warnning]
Link: http://lkml.kernel.org/r/63ADC13FD55D6546B7DECE290D39E373F29196AE@H3CMLB12-EX.srv.huawei-3com.com
[akpm@linux-foundation.org: brelse(NULL) is legal]
Link: http://lkml.kernel.org/r/1515479070-32653-2-git-send-email-ge.changwei@h3c.com
Signed-off-by: Changwei Ge <ge.changwei@h3c.com>
Reported-by: John Lightsey <john@nixnuts.net>
Tested-by: John Lightsey <john@nixnuts.net>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Joseph Qi <jiangqi903@gmail.com>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Mark Fasheh <mfasheh@versity.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 71a36944042b7d9dd71f6a5d1c5ea1c2353b5d42)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
fs/ocfs2/alloc.c | 206 ++++++++++++++++++++++++++++++++++++++++++++---
fs/ocfs2/alloc.h | 1 +
fs/ocfs2/aops.c | 6 ++
3 files changed, 203 insertions(+), 10 deletions(-)
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index 6b177de324c0..3760888f2e76 100644
--- a/fs/ocfs2/alloc.c
+++ b/fs/ocfs2/alloc.c
@@ -165,6 +165,13 @@ static int ocfs2_dinode_insert_check(struct ocfs2_extent_tree *et,
struct ocfs2_extent_rec *rec);
static int ocfs2_dinode_sanity_check(struct ocfs2_extent_tree *et);
static void ocfs2_dinode_fill_root_el(struct ocfs2_extent_tree *et);
+
+static int ocfs2_reuse_blk_from_dealloc(handle_t *handle,
+ struct ocfs2_extent_tree *et,
+ struct buffer_head **new_eb_bh,
+ int blk_wanted, int *blk_given);
+static int ocfs2_is_dealloc_empty(struct ocfs2_extent_tree *et);
+
static const struct ocfs2_extent_tree_operations ocfs2_dinode_et_ops = {
.eo_set_last_eb_blk = ocfs2_dinode_set_last_eb_blk,
.eo_get_last_eb_blk = ocfs2_dinode_get_last_eb_blk,
@@ -448,6 +455,7 @@ static void __ocfs2_init_extent_tree(struct ocfs2_extent_tree *et,
if (!obj)
obj = (void *)bh->b_data;
et->et_object = obj;
+ et->et_dealloc = NULL;
et->et_ops->eo_fill_root_el(et);
if (!et->et_ops->eo_fill_max_leaf_clusters)
@@ -1158,7 +1166,7 @@ static int ocfs2_add_branch(handle_t *handle,
struct buffer_head **last_eb_bh,
struct ocfs2_alloc_context *meta_ac)
{
- int status, new_blocks, i;
+ int status, new_blocks, i, block_given = 0;
u64 next_blkno, new_last_eb_blk;
struct buffer_head *bh;
struct buffer_head **new_eb_bhs = NULL;
@@ -1213,11 +1221,31 @@ static int ocfs2_add_branch(handle_t *handle,
goto bail;
}
- status = ocfs2_create_new_meta_bhs(handle, et, new_blocks,
- meta_ac, new_eb_bhs);
- if (status < 0) {
- mlog_errno(status);
- goto bail;
+ /* Firstyly, try to reuse dealloc since we have already estimated how
+ * many extent blocks we may use.
+ */
+ if (!ocfs2_is_dealloc_empty(et)) {
+ status = ocfs2_reuse_blk_from_dealloc(handle, et,
+ new_eb_bhs, new_blocks,
+ &block_given);
+ if (status < 0) {
+ mlog_errno(status);
+ goto bail;
+ }
+ }
+
+ BUG_ON(block_given > new_blocks);
+
+ if (block_given < new_blocks) {
+ BUG_ON(!meta_ac);
+ status = ocfs2_create_new_meta_bhs(handle, et,
+ new_blocks - block_given,
+ meta_ac,
+ &new_eb_bhs[block_given]);
+ if (status < 0) {
+ mlog_errno(status);
+ goto bail;
+ }
}
/* Note: new_eb_bhs[new_blocks - 1] is the guy which will be
@@ -1340,15 +1368,25 @@ static int ocfs2_shift_tree_depth(handle_t *handle,
struct ocfs2_alloc_context *meta_ac,
struct buffer_head **ret_new_eb_bh)
{
- int status, i;
+ int status, i, block_given = 0;
u32 new_clusters;
struct buffer_head *new_eb_bh = NULL;
struct ocfs2_extent_block *eb;
struct ocfs2_extent_list *root_el;
struct ocfs2_extent_list *eb_el;
- status = ocfs2_create_new_meta_bhs(handle, et, 1, meta_ac,
- &new_eb_bh);
+ if (!ocfs2_is_dealloc_empty(et)) {
+ status = ocfs2_reuse_blk_from_dealloc(handle, et,
+ &new_eb_bh, 1,
+ &block_given);
+ } else if (meta_ac) {
+ status = ocfs2_create_new_meta_bhs(handle, et, 1, meta_ac,
+ &new_eb_bh);
+
+ } else {
+ BUG();
+ }
+
if (status < 0) {
mlog_errno(status);
goto bail;
@@ -1511,7 +1549,7 @@ static int ocfs2_grow_tree(handle_t *handle, struct ocfs2_extent_tree *et,
int depth = le16_to_cpu(el->l_tree_depth);
struct buffer_head *bh = NULL;
- BUG_ON(meta_ac == NULL);
+ BUG_ON(meta_ac == NULL && ocfs2_is_dealloc_empty(et));
shift = ocfs2_find_branch_target(et, &bh);
if (shift < 0) {
@@ -6585,6 +6623,154 @@ ocfs2_find_per_slot_free_list(int type,
return fl;
}
+static struct ocfs2_per_slot_free_list *
+ocfs2_find_preferred_free_list(int type,
+ int preferred_slot,
+ int *real_slot,
+ struct ocfs2_cached_dealloc_ctxt *ctxt)
+{
+ struct ocfs2_per_slot_free_list *fl = ctxt->c_first_suballocator;
+
+ while (fl) {
+ if (fl->f_inode_type == type && fl->f_slot == preferred_slot) {
+ *real_slot = fl->f_slot;
+ return fl;
+ }
+
+ fl = fl->f_next_suballocator;
+ }
+
+ /* If we can't find any free list matching preferred slot, just use
+ * the first one.
+ */
+ fl = ctxt->c_first_suballocator;
+ *real_slot = fl->f_slot;
+
+ return fl;
+}
+
+/* Return Value 1 indicates empty */
+static int ocfs2_is_dealloc_empty(struct ocfs2_extent_tree *et)
+{
+ struct ocfs2_per_slot_free_list *fl = NULL;
+
+ if (!et->et_dealloc)
+ return 1;
+
+ fl = et->et_dealloc->c_first_suballocator;
+ if (!fl)
+ return 1;
+
+ if (!fl->f_first)
+ return 1;
+
+ return 0;
+}
+
+/* If extent was deleted from tree due to extent rotation and merging, and
+ * no metadata is reserved ahead of time. Try to reuse some extents
+ * just deleted. This is only used to reuse extent blocks.
+ * It is supposed to find enough extent blocks in dealloc if our estimation
+ * on metadata is accurate.
+ */
+static int ocfs2_reuse_blk_from_dealloc(handle_t *handle,
+ struct ocfs2_extent_tree *et,
+ struct buffer_head **new_eb_bh,
+ int blk_wanted, int *blk_given)
+{
+ int i, status = 0, real_slot;
+ struct ocfs2_cached_dealloc_ctxt *dealloc;
+ struct ocfs2_per_slot_free_list *fl;
+ struct ocfs2_cached_block_free *bf;
+ struct ocfs2_extent_block *eb;
+ struct ocfs2_super *osb =
+ OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci));
+
+ *blk_given = 0;
+
+ /* If extent tree doesn't have a dealloc, this is not faulty. Just
+ * tell upper caller dealloc can't provide any block and it should
+ * ask for alloc to claim more space.
+ */
+ dealloc = et->et_dealloc;
+ if (!dealloc)
+ goto bail;
+
+ for (i = 0; i < blk_wanted; i++) {
+ /* Prefer to use local slot */
+ fl = ocfs2_find_preferred_free_list(EXTENT_ALLOC_SYSTEM_INODE,
+ osb->slot_num, &real_slot,
+ dealloc);
+ /* If no more block can be reused, we should claim more
+ * from alloc. Just return here normally.
+ */
+ if (!fl) {
+ status = 0;
+ break;
+ }
+
+ bf = fl->f_first;
+ fl->f_first = bf->free_next;
+
+ new_eb_bh[i] = sb_getblk(osb->sb, bf->free_blk);
+ if (new_eb_bh[i] == NULL) {
+ status = -ENOMEM;
+ mlog_errno(status);
+ goto bail;
+ }
+
+ mlog(0, "Reusing block(%llu) from "
+ "dealloc(local slot:%d, real slot:%d)\n",
+ bf->free_blk, osb->slot_num, real_slot);
+
+ ocfs2_set_new_buffer_uptodate(et->et_ci, new_eb_bh[i]);
+
+ status = ocfs2_journal_access_eb(handle, et->et_ci,
+ new_eb_bh[i],
+ OCFS2_JOURNAL_ACCESS_CREATE);
+ if (status < 0) {
+ mlog_errno(status);
+ goto bail;
+ }
+
+ memset(new_eb_bh[i]->b_data, 0, osb->sb->s_blocksize);
+ eb = (struct ocfs2_extent_block *) new_eb_bh[i]->b_data;
+
+ /* We can't guarantee that buffer head is still cached, so
+ * polutlate the extent block again.
+ */
+ strcpy(eb->h_signature, OCFS2_EXTENT_BLOCK_SIGNATURE);
+ eb->h_blkno = cpu_to_le64(bf->free_blk);
+ eb->h_fs_generation = cpu_to_le32(osb->fs_generation);
+ eb->h_suballoc_slot = cpu_to_le16(real_slot);
+ eb->h_suballoc_loc = cpu_to_le64(bf->free_bg);
+ eb->h_suballoc_bit = cpu_to_le16(bf->free_bit);
+ eb->h_list.l_count =
+ cpu_to_le16(ocfs2_extent_recs_per_eb(osb->sb));
+
+ /* We'll also be dirtied by the caller, so
+ * this isn't absolutely necessary.
+ */
+ ocfs2_journal_dirty(handle, new_eb_bh[i]);
+
+ if (!fl->f_first) {
+ dealloc->c_first_suballocator = fl->f_next_suballocator;
+ kfree(fl);
+ }
+ kfree(bf);
+ }
+
+ *blk_given = i;
+
+bail:
+ if (unlikely(status < 0)) {
+ for (i = 0; i < blk_wanted; i++)
+ brelse(new_eb_bh[i]);
+ }
+
+ return status;
+}
+
int ocfs2_cache_block_dealloc(struct ocfs2_cached_dealloc_ctxt *ctxt,
int type, int slot, u64 suballoc,
u64 blkno, unsigned int bit)
diff --git a/fs/ocfs2/alloc.h b/fs/ocfs2/alloc.h
index 27b75cf32cfa..250bcacdf9e9 100644
--- a/fs/ocfs2/alloc.h
+++ b/fs/ocfs2/alloc.h
@@ -61,6 +61,7 @@ struct ocfs2_extent_tree {
ocfs2_journal_access_func et_root_journal_access;
void *et_object;
unsigned int et_max_leaf_clusters;
+ struct ocfs2_cached_dealloc_ctxt *et_dealloc;
};
/*
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 209cec7efef4..1cf7ac84b70b 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -2353,6 +2353,12 @@ static int ocfs2_dio_end_io_write(struct inode *inode,
ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(inode), di_bh);
+ /* Attach dealloc with extent tree in case that we may reuse extents
+ * which are already unlinked from current extent tree due to extent
+ * rotation and merging.
+ */
+ et.et_dealloc = &dealloc;
+
ret = ocfs2_lock_allocators(inode, &et, 0, dwc->dw_zero_count*2,
&data_ac, &meta_ac);
if (ret) {
@@ -1,54 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
Date: Tue, 3 Apr 2018 14:59:26 +0200
Subject: [PATCH] Revert "UBUNTU: [Packaging] retpoline -- add safe usage hint
support"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This (partially) reverts commit 1e39020902132b3065bedf0a0c33031e89f9f57a.
this modifies the upstream kernel build to call an Ubuntu script which
we remove before building. it would also be required by any module
builds afterwards and is not shipped by Ubuntu's kernel packages either.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
scripts/Makefile.build | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 5d72aa39d3c1..451546219dfc 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -295,27 +295,19 @@ objtool_dep = $(objtool_obj) \
$(wildcard include/config/orc/unwinder.h \
include/config/stack/validation.h)
-ifdef CONFIG_RETPOLINE
-cmd_ubuntu_retpoline = $(CONFIG_SHELL) $(srctree)/scripts/ubuntu-retpoline-extract-one $(@) $(<) "$(filter -m16 %code16gcc.h,$(a_flags))";
-else
-cmd_ubuntu_retpoline =
-endif
-
define rule_cc_o_c
$(call echo-cmd,checksrc) $(cmd_checksrc) \
$(call cmd_and_fixdep,cc_o_c) \
$(cmd_checkdoc) \
$(call echo-cmd,objtool) $(cmd_objtool) \
$(cmd_modversions_c) \
- $(call echo-cmd,ubuntu-retpoline) $(cmd_ubuntu_retpoline) \
$(call echo-cmd,record_mcount) $(cmd_record_mcount)
endef
define rule_as_o_S
$(call cmd_and_fixdep,as_o_S) \
$(call echo-cmd,objtool) $(cmd_objtool) \
- $(cmd_modversions_S) \
- $(call echo-cmd,ubuntu-retpoline) $(cmd_ubuntu_retpoline)
+ $(cmd_modversions_S)
endef
# List module undefined symbols (or empty line if not enabled)
@@ -0,0 +1,29 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Tue, 10 Jan 2023 08:52:40 +0100
Subject: [PATCH] Revert "fortify: Do not cast to "unsigned char""
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit 106b7a61c488d2022f44e3531ce33461c7c0685f.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
include/linux/fortify-string.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/fortify-string.h b/include/linux/fortify-string.h
index 7cad8bb031e9..acc24887db3e 100644
--- a/include/linux/fortify-string.h
+++ b/include/linux/fortify-string.h
@@ -18,7 +18,7 @@ void __write_overflow_field(size_t avail, size_t wanted) __compiletime_warning("
#define __compiletime_strlen(p) \
({ \
- char *__p = (char *)(p); \
+ unsigned char *__p = (unsigned char *)(p); \
size_t __ret = SIZE_MAX; \
size_t __p_size = __member_size(p); \
if (__p_size != SIZE_MAX && \
@@ -1,168 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Christoffer Dall <christoffer.dall@linaro.org>
Date: Mon, 4 Dec 2017 21:35:23 +0100
Subject: [PATCH] KVM: Take vcpu->mutex outside vcpu_load
As we're about to call vcpu_load() from architecture-specific
implementations of the KVM vcpu ioctls, but yet we access data
structures protected by the vcpu->mutex in the generic code, factor
this logic out from vcpu_load().
x86 is the only architecture which calls vcpu_load() outside of the main
vcpu ioctl function, and these calls will no longer take the vcpu mutex
following this patch. However, with the exception of
kvm_arch_vcpu_postcreate (see below), the callers are either in the
creation or destruction path of the VCPU, which means there cannot be
any concurrent access to the data structure, because the file descriptor
is not yet accessible, or is already gone.
kvm_arch_vcpu_postcreate makes the newly created vcpu potentially
accessible by other in-kernel threads through the kvm->vcpus array, and
we therefore take the vcpu mutex in this case directly.
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit ec7660ccdd2b71d8c7f0243f8590253713e9b75d)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kvm/vmx.c | 4 +---
arch/x86/kvm/x86.c | 16 ++++++----------
include/linux/kvm_host.h | 2 +-
virt/kvm/kvm_main.c | 17 ++++++-----------
4 files changed, 14 insertions(+), 25 deletions(-)
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 6875c8d13052..5dc2144a0991 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -10017,10 +10017,8 @@ static void vmx_switch_vmcs(struct kvm_vcpu *vcpu, struct loaded_vmcs *vmcs)
static void vmx_free_vcpu_nested(struct kvm_vcpu *vcpu)
{
struct vcpu_vmx *vmx = to_vmx(vcpu);
- int r;
- r = vcpu_load(vcpu);
- BUG_ON(r);
+ vcpu_load(vcpu);
vmx_switch_vmcs(vcpu, &vmx->vmcs01);
free_nested(vmx);
vcpu_put(vcpu);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 960b14ba645e..6b1e434ceaf8 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8061,17 +8061,13 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
{
- int r;
-
vcpu->arch.arch_capabilities = kvm_get_arch_capabilities();
kvm_vcpu_mtrr_init(vcpu);
- r = vcpu_load(vcpu);
- if (r)
- return r;
+ vcpu_load(vcpu);
kvm_vcpu_reset(vcpu, false);
kvm_mmu_setup(vcpu);
vcpu_put(vcpu);
- return r;
+ return 0;
}
void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
@@ -8081,13 +8077,15 @@ void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
kvm_hv_vcpu_postcreate(vcpu);
- if (vcpu_load(vcpu))
+ if (mutex_lock_killable(&vcpu->mutex))
return;
+ vcpu_load(vcpu);
msr.data = 0x0;
msr.index = MSR_IA32_TSC;
msr.host_initiated = true;
kvm_write_tsc(vcpu, &msr);
vcpu_put(vcpu);
+ mutex_unlock(&vcpu->mutex);
if (!kvmclock_periodic_sync)
return;
@@ -8474,9 +8472,7 @@ int kvm_arch_post_init_vm(struct kvm *kvm)
static void kvm_unload_vcpu_mmu(struct kvm_vcpu *vcpu)
{
- int r;
- r = vcpu_load(vcpu);
- BUG_ON(r);
+ vcpu_load(vcpu);
kvm_mmu_unload(vcpu);
vcpu_put(vcpu);
}
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index f182bbfb0ac5..f8b7ac63219d 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -560,7 +560,7 @@ static inline int kvm_vcpu_get_idx(struct kvm_vcpu *vcpu)
int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct kvm *kvm, unsigned id);
void kvm_vcpu_uninit(struct kvm_vcpu *vcpu);
-int __must_check vcpu_load(struct kvm_vcpu *vcpu);
+void vcpu_load(struct kvm_vcpu *vcpu);
void vcpu_put(struct kvm_vcpu *vcpu);
#ifdef __KVM_HAVE_IOAPIC
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index c6749d154ebc..66998264619b 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -172,17 +172,12 @@ bool kvm_is_reserved_pfn(kvm_pfn_t pfn)
/*
* Switches to specified vcpu, until a matching vcpu_put()
*/
-int vcpu_load(struct kvm_vcpu *vcpu)
+void vcpu_load(struct kvm_vcpu *vcpu)
{
- int cpu;
-
- if (mutex_lock_killable(&vcpu->mutex))
- return -EINTR;
- cpu = get_cpu();
+ int cpu = get_cpu();
preempt_notifier_register(&vcpu->preempt_notifier);
kvm_arch_vcpu_load(vcpu, cpu);
put_cpu();
- return 0;
}
EXPORT_SYMBOL_GPL(vcpu_load);
@@ -192,7 +187,6 @@ void vcpu_put(struct kvm_vcpu *vcpu)
kvm_arch_vcpu_put(vcpu);
preempt_notifier_unregister(&vcpu->preempt_notifier);
preempt_enable();
- mutex_unlock(&vcpu->mutex);
}
EXPORT_SYMBOL_GPL(vcpu_put);
@@ -2786,9 +2780,9 @@ static long kvm_vcpu_ioctl(struct file *filp,
#endif
- r = vcpu_load(vcpu);
- if (r)
- return r;
+ if (mutex_lock_killable(&vcpu->mutex))
+ return -EINTR;
+ vcpu_load(vcpu);
switch (ioctl) {
case KVM_RUN: {
struct pid *oldpid;
@@ -2961,6 +2955,7 @@ static long kvm_vcpu_ioctl(struct file *filp,
}
out:
vcpu_put(vcpu);
+ mutex_unlock(&vcpu->mutex);
kfree(fpu);
kfree(kvm_sregs);
return r;
@@ -0,0 +1,133 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Fri, 14 Jul 2023 18:10:32 +0200
Subject: [PATCH] kvm: xsave set: mask-out PKRU bit in xfeatures if vCPU has no
support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fixes live-migrations & snapshot-rollback of VMs with a restricted
CPU type (e.g., qemu64) from our 5.15 based kernel (default Proxmox
VE 7.4) to the 6.2 (and future newer) of Proxmox VE 8.0.
Previous to ad856280ddea ("x86/kvm/fpu: Limit guest user_xfeatures to
supported bits of XCR0") the PKRU bit of the host could leak into the
state from the guest, which caused trouble when migrating between
hosts with different CPUs, i.e., where the source supported it but
the target did not, causing a general protection fault when the guest
tried to use a pkru related instruction after the migration.
But the fix, while welcome, caused a temporary out-of-sync state when
migrating such a VM from a kernel without the fix to a kernel with
the fix, as it threw of KVM when the CPUID of the guest and most of
the state doesn't report XSAVE and thus any xfeatures, but PKRU and
the related state is set as enabled, causing the vCPU to spin at 100%
without any progress forever.
The fix could be at two sites, either in QEMU or in the kernel, I
choose the kernel as we have all the info there for a targeted
heuristic so that we don't have to adapt QEMU and qemu-server, the
latter even on both sides.
Still, a short summary of the possible fixes and short drawbacks:
* on QEMU-side either
- clear the PKRU state in the migration saved state would be rather
complicated to implement as the vCPU is initialised way before we
have the saved xfeature state available to check what we'd need
to do, plus the user-space only gets a memory blob from ioctl
KVM_GET_XSAVE2 that it passes to KVM_SET_XSAVE ioctl, there are
no ABI guarantees, and while the struct seem stable for 5.15 to
6.5-rc1, that doesn't has to be for future kernels, so off the
table.
- enforce that the CPUID reports PKU support even if it normally
wouldn't. While this works (tested by hard-coding it as POC) it
is a) not really nice and b) needs some interaction from
qemu-server to enable this flag as otherwise we have no good info
to decide when it's OK to do this, which means we need to adapt
both PVE 7 and 8's qemu-server and also pve-qemu, workable but
not optimal
* on Kernel/KVM-side we can hook into the set XSAVE ioctl specific to
the KVM subsystem, which already reduces chance of regression for
all other places. There we have access to the union/struct
definitions of the saved state and thus can savely cast to that.
We also got access to the vCPU's CPUID capabilities, meaning we can
check if the XCR0 (first XSAVE Control Register) reports
that it support the PKRU feature, and if it does *NOT* but the
saved xfeatures register from XSAVE *DOES* report it, we can safely
assume that this combination is due to an migration from an older,
leaky kernel and clear the bit in the xfeature register before
restoring it to the guest vCPU KVM state, avoiding the confusing
situation that made the vCPU spin at 100%.
This should be safe to do, as the guest vCPU CPUID never reported
support for the PKRU feature, and it's also a relatively niche and
newish feature.
If it gains us something we can drop this patch a bit in the future
Proxmox VE 9 major release, but we should ensure that VMs that where
started before PVE 8 cannot be directly live-migrated to the release
that includes that change; so we should rather only drop it if the
maintenance burden is high.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kvm/cpuid.c | 6 ++++++
arch/x86/kvm/cpuid.h | 2 ++
arch/x86/kvm/x86.c | 13 +++++++++++++
3 files changed, 21 insertions(+)
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index 7ccdf991d18e..61aefeb3fdbc 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -251,6 +251,12 @@ static u64 cpuid_get_supported_xcr0(struct kvm_cpuid_entry2 *entries, int nent)
return (best->eax | ((u64)best->edx << 32)) & kvm_caps.supported_xcr0;
}
+bool vcpu_supports_xsave_pkru(struct kvm_vcpu *vcpu) {
+ u64 guest_supported_xcr0 = cpuid_get_supported_xcr0(
+ vcpu->arch.cpuid_entries, vcpu->arch.cpuid_nent);
+ return (guest_supported_xcr0 & XFEATURE_MASK_PKRU) != 0;
+}
+
static void __kvm_update_cpuid_runtime(struct kvm_vcpu *vcpu, struct kvm_cpuid_entry2 *entries,
int nent)
{
diff --git a/arch/x86/kvm/cpuid.h b/arch/x86/kvm/cpuid.h
index b1658c0de847..12a02851ff57 100644
--- a/arch/x86/kvm/cpuid.h
+++ b/arch/x86/kvm/cpuid.h
@@ -32,6 +32,8 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
bool kvm_cpuid(struct kvm_vcpu *vcpu, u32 *eax, u32 *ebx,
u32 *ecx, u32 *edx, bool exact_only);
+bool vcpu_supports_xsave_pkru(struct kvm_vcpu *vcpu);
+
u32 xstate_required_size(u64 xstate_bv, bool compacted);
int cpuid_query_maxphyaddr(struct kvm_vcpu *vcpu);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ee603f4edce1..ff92ff41d5ce 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -5342,6 +5342,19 @@ static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu,
if (fpstate_is_confidential(&vcpu->arch.guest_fpu))
return 0;
+ if (!vcpu_supports_xsave_pkru(vcpu)) {
+ void *buf = guest_xsave->region;
+ union fpregs_state *ustate = buf;
+ if (ustate->xsave.header.xfeatures & XFEATURE_MASK_PKRU) {
+ printk(
+ KERN_NOTICE "clearing PKRU xfeature bit as vCPU from PID %d"
+ " reports no PKRU support - migration from fpu-leaky kernel?",
+ current->pid
+ );
+ ustate->xsave.header.xfeatures &= ~XFEATURE_MASK_PKRU;
+ }
+ }
+
return fpu_copy_uabi_to_guest_fpstate(&vcpu->arch.guest_fpu,
guest_xsave->region,
kvm_caps.supported_xcr0,
@@ -0,0 +1,41 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: kiler129 <grzegorz@noflash.pl>
Date: Mon, 18 Sep 2023 15:19:26 +0200
Subject: [PATCH] allow opt-in to allow pass-through on broken hardware..
adapted from https://github.com/kiler129/relax-intel-rmrr , licensed under MIT or GPL 2.0+
---
drivers/iommu/intel/iommu.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index 1c5ba4dbfe78..887667218e3b 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -297,6 +297,7 @@ static int dmar_map_gfx = 1;
static int dmar_map_ipu = 1;
static int intel_iommu_superpage = 1;
static int iommu_identity_mapping;
+static int intel_relaxable_rmrr = 0;
static int iommu_skip_te_disable;
#define IDENTMAP_GFX 2
@@ -358,6 +359,9 @@ static int __init intel_iommu_setup(char *str)
} else if (!strncmp(str, "tboot_noforce", 13)) {
pr_info("Intel-IOMMU: not forcing on after tboot. This could expose security risk for tboot\n");
intel_iommu_tboot_noforce = 1;
+ } else if (!strncmp(str, "relax_rmrr", 10)) {
+ pr_info("Intel-IOMMU: assuming all RMRRs are relaxable. This can lead to instability or data loss\n");
+ intel_relaxable_rmrr = 1;
} else {
pr_notice("Unknown option - '%s'\n", str);
}
@@ -2538,7 +2542,7 @@ static bool device_rmrr_is_relaxable(struct device *dev)
return false;
pdev = to_pci_dev(dev);
- if (IS_USB_DEVICE(pdev) || IS_GFX_DEVICE(pdev))
+ if (intel_relaxable_rmrr || IS_USB_DEVICE(pdev) || IS_GFX_DEVICE(pdev))
return true;
else
return false;
@@ -1,40 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jim Mattson <jmattson@google.com>
Date: Tue, 30 Oct 2018 12:20:21 -0700
Subject: [PATCH] kvm: x86: Don't modify MSR_PLATFORM_INFO on vCPU reset
If userspace has provided a different value for this MSR (e.g with the
turbo bits set), the userspace-provided value should survive a vCPU
reset. For backwards compatibility, MSR_PLATFORM_INFO is initialized
in kvm_arch_vcpu_setup.
Signed-off-by: Jim Mattson <jmattson@google.com>
Reviewed-by: Drew Schmitt <dasch@google.com>
Cc: Abhiroop Dabral <adabral@paloaltonetworks.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit e53d88af63ab4104e1226b8f9959f1e9903da10b)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kvm/x86.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 6b1e434ceaf8..93bc3504d39e 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8062,6 +8062,7 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
{
vcpu->arch.arch_capabilities = kvm_get_arch_capabilities();
+ vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
kvm_vcpu_mtrr_init(vcpu);
vcpu_load(vcpu);
kvm_vcpu_reset(vcpu, false);
@@ -8157,7 +8158,6 @@ void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event)
kvm_pmu_reset(vcpu);
vcpu->arch.smbase = 0x30000;
- vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
vcpu->arch.msr_misc_features_enables = 0;
vcpu->arch.xcr0 = XFEATURE_MASK_FP;
@@ -0,0 +1,42 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Mika Westerberg <mika.westerberg@linux.intel.com>
Date: Wed, 13 Sep 2023 08:26:47 +0300
Subject: [PATCH] net: thunderbolt: Fix TCPv6 GSO checksum calculation
Alex reported that running ssh over IPv6 does not work with
Thunderbolt/USB4 networking driver. The reason for that is that driver
should call skb_is_gso() before calling skb_is_gso_v6(), and it should
not return false after calculates the checksum successfully. This probably
was a copy paste error from the original driver where it was done properly.
Reported-by: Alex Balcanquall <alex@alexbal.com>
Fixes: e69b6c02b4c3 ("net: Add support for networking over Thunderbolt cable")
Cc: stable@vger.kernel.org
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
drivers/net/thunderbolt.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/net/thunderbolt.c b/drivers/net/thunderbolt.c
index 990484776f2d..0c554a7a5ce4 100644
--- a/drivers/net/thunderbolt.c
+++ b/drivers/net/thunderbolt.c
@@ -1005,12 +1005,11 @@ static bool tbnet_xmit_csum_and_map(struct tbnet *net, struct sk_buff *skb,
*tucso = ~csum_tcpudp_magic(ip_hdr(skb)->saddr,
ip_hdr(skb)->daddr, 0,
ip_hdr(skb)->protocol, 0);
- } else if (skb_is_gso_v6(skb)) {
+ } else if (skb_is_gso(skb) && skb_is_gso_v6(skb)) {
tucso = dest + ((void *)&(tcp_hdr(skb)->check) - data);
*tucso = ~csum_ipv6_magic(&ipv6_hdr(skb)->saddr,
&ipv6_hdr(skb)->daddr, 0,
IPPROTO_TCP, 0);
- return false;
} else if (protocol == htons(ETH_P_IPV6)) {
tucso = dest + skb_checksum_start_offset(skb) + skb->csum_offset;
*tucso = ~csum_ipv6_magic(&ipv6_hdr(skb)->saddr,
@@ -1,22 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Fri, 6 Sep 2019 13:04:30 +0200
Subject: [PATCH] ntb test: remove unused conflicting SZ_4G define
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
drivers/ntb/test/ntb_perf.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/ntb/test/ntb_perf.c b/drivers/ntb/test/ntb_perf.c
index 427112cf101a..1f8ee33a07a2 100644
--- a/drivers/ntb/test/ntb_perf.c
+++ b/drivers/ntb/test/ntb_perf.c
@@ -74,7 +74,6 @@
#define MAX_SRCS 32
#define DMA_OUT_RESOURCE_TO msecs_to_jiffies(50)
#define DMA_RETRIES 20
-#define SZ_4G (1ULL << 32)
#define MAX_SEG_ORDER 20 /* no larger than 1M for kmalloc buffer */
#define PIDX NTB_DEF_PEER_IDX
@@ -0,0 +1,134 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Mika Westerberg <mika.westerberg@linux.intel.com>
Date: Thu, 7 Sep 2023 16:02:30 +0300
Subject: [PATCH] thunderbolt: Restart XDomain discovery handshake after
failure
Alex reported that after rebooting the other host the peer-to-peer link
does not come up anymore. The reason for this is that the host that was
not rebooted tries to send the UUID request only 10 times according to
the USB4 Inter-Domain spec and gives up if it does not get reply. Then
when the other side is actually ready it cannot get the link established
anymore. The USB4 Inter-Domain spec requires that the discovery protocol
is restarted in that case so implement this now.
Reported-by: Alex Balcanquall <alex@alexbal.com>
Fixes: 8e1de7042596 ("thunderbolt: Add support for XDomain lane bonding")
Cc: stable@vger.kernel.org
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
drivers/thunderbolt/xdomain.c | 58 +++++++++++++++++++++++++----------
1 file changed, 41 insertions(+), 17 deletions(-)
diff --git a/drivers/thunderbolt/xdomain.c b/drivers/thunderbolt/xdomain.c
index 3c51e47dd86b..0b17a4d4e9b9 100644
--- a/drivers/thunderbolt/xdomain.c
+++ b/drivers/thunderbolt/xdomain.c
@@ -704,6 +704,27 @@ static void update_property_block(struct tb_xdomain *xd)
mutex_unlock(&xdomain_lock);
}
+static void start_handshake(struct tb_xdomain *xd)
+{
+ xd->state = XDOMAIN_STATE_INIT;
+ queue_delayed_work(xd->tb->wq, &xd->state_work,
+ msecs_to_jiffies(XDOMAIN_SHORT_TIMEOUT));
+}
+
+/* Can be called from state_work */
+static void __stop_handshake(struct tb_xdomain *xd)
+{
+ cancel_delayed_work_sync(&xd->properties_changed_work);
+ xd->properties_changed_retries = 0;
+ xd->state_retries = 0;
+}
+
+static void stop_handshake(struct tb_xdomain *xd)
+{
+ cancel_delayed_work_sync(&xd->state_work);
+ __stop_handshake(xd);
+}
+
static void tb_xdp_handle_request(struct work_struct *work)
{
struct xdomain_request_work *xw = container_of(work, typeof(*xw), work);
@@ -766,6 +787,15 @@ static void tb_xdp_handle_request(struct work_struct *work)
case UUID_REQUEST:
tb_dbg(tb, "%llx: received XDomain UUID request\n", route);
ret = tb_xdp_uuid_response(ctl, route, sequence, uuid);
+ /*
+ * If we've stopped the discovery with an error such as
+ * timing out, we will restart the handshake now that we
+ * received UUID request from the remote host.
+ */
+ if (!ret && xd && xd->state == XDOMAIN_STATE_ERROR) {
+ dev_dbg(&xd->dev, "restarting handshake\n");
+ start_handshake(xd);
+ }
break;
case LINK_STATE_STATUS_REQUEST:
@@ -1522,6 +1552,13 @@ static void tb_xdomain_queue_properties_changed(struct tb_xdomain *xd)
msecs_to_jiffies(XDOMAIN_SHORT_TIMEOUT));
}
+static void tb_xdomain_failed(struct tb_xdomain *xd)
+{
+ xd->state = XDOMAIN_STATE_ERROR;
+ queue_delayed_work(xd->tb->wq, &xd->state_work,
+ msecs_to_jiffies(XDOMAIN_DEFAULT_TIMEOUT));
+}
+
static void tb_xdomain_state_work(struct work_struct *work)
{
struct tb_xdomain *xd = container_of(work, typeof(*xd), state_work.work);
@@ -1548,7 +1585,7 @@ static void tb_xdomain_state_work(struct work_struct *work)
if (ret) {
if (ret == -EAGAIN)
goto retry_state;
- xd->state = XDOMAIN_STATE_ERROR;
+ tb_xdomain_failed(xd);
} else {
tb_xdomain_queue_properties_changed(xd);
if (xd->bonding_possible)
@@ -1613,7 +1650,7 @@ static void tb_xdomain_state_work(struct work_struct *work)
if (ret) {
if (ret == -EAGAIN)
goto retry_state;
- xd->state = XDOMAIN_STATE_ERROR;
+ tb_xdomain_failed(xd);
} else {
xd->state = XDOMAIN_STATE_ENUMERATED;
}
@@ -1624,6 +1661,8 @@ static void tb_xdomain_state_work(struct work_struct *work)
break;
case XDOMAIN_STATE_ERROR:
+ dev_dbg(&xd->dev, "discovery failed, stopping handshake\n");
+ __stop_handshake(xd);
break;
default:
@@ -1793,21 +1832,6 @@ static void tb_xdomain_release(struct device *dev)
kfree(xd);
}
-static void start_handshake(struct tb_xdomain *xd)
-{
- xd->state = XDOMAIN_STATE_INIT;
- queue_delayed_work(xd->tb->wq, &xd->state_work,
- msecs_to_jiffies(XDOMAIN_SHORT_TIMEOUT));
-}
-
-static void stop_handshake(struct tb_xdomain *xd)
-{
- cancel_delayed_work_sync(&xd->properties_changed_work);
- cancel_delayed_work_sync(&xd->state_work);
- xd->properties_changed_retries = 0;
- xd->state_retries = 0;
-}
-
static int __maybe_unused tb_xdomain_suspend(struct device *dev)
{
stop_handshake(tb_to_xdomain(dev));
@@ -0,0 +1,72 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Borislav Petkov (AMD)" <bp@alien8.de>
Date: Sat, 7 Oct 2023 12:57:02 +0200
Subject: [PATCH] x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fix erratum #1485 on Zen4 parts where running with STIBP disabled can
cause an #UD exception. The performance impact of the fix is negligible.
Reported-by: René Rebe <rene@exactcode.de>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Tested-by: René Rebe <rene@exactcode.de>
Cc: <stable@kernel.org>
Link: https://lore.kernel.org/r/D99589F4-BC5D-430B-87B2-72C20370CF57@exactcode.com
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/include/asm/msr-index.h | 9 +++++++--
arch/x86/kernel/cpu/amd.c | 8 ++++++++
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index ebbf80d8b8bd..a79b10e57757 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -630,12 +630,17 @@
/* AMD Last Branch Record MSRs */
#define MSR_AMD64_LBR_SELECT 0xc000010e
-/* Fam 17h MSRs */
-#define MSR_F17H_IRPERF 0xc00000e9
+/* Zen4 */
+#define MSR_ZEN4_BP_CFG 0xc001102e
+#define MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT 5
+/* Zen 2 */
#define MSR_ZEN2_SPECTRAL_CHICKEN 0xc00110e3
#define MSR_ZEN2_SPECTRAL_CHICKEN_BIT BIT_ULL(1)
+/* Fam 17h MSRs */
+#define MSR_F17H_IRPERF 0xc00000e9
+
/* Fam 16h MSRs */
#define MSR_F16H_L2I_PERF_CTL 0xc0010230
#define MSR_F16H_L2I_PERF_CTR 0xc0010231
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index a608a2b78073..154e9c0c16bd 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -80,6 +80,10 @@ static const int amd_div0[] =
AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0x00, 0x0, 0x2f, 0xf),
AMD_MODEL_RANGE(0x17, 0x50, 0x0, 0x5f, 0xf));
+static const int amd_erratum_1485[] =
+ AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x19, 0x10, 0x0, 0x1f, 0xf),
+ AMD_MODEL_RANGE(0x19, 0x60, 0x0, 0xaf, 0xf));
+
static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratum)
{
int osvw_id = *erratum++;
@@ -1125,6 +1129,10 @@ static void init_amd(struct cpuinfo_x86 *c)
pr_notice_once("AMD Zen1 DIV0 bug detected. Disable SMT for full protection.\n");
setup_force_cpu_bug(X86_BUG_DIV0);
}
+
+ if (!cpu_has(c, X86_FEATURE_HYPERVISOR) &&
+ cpu_has_amd_erratum(c, amd_erratum_1485))
+ msr_set_bit(MSR_ZEN4_BP_CFG, MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT);
}
#ifdef CONFIG_X86_32
@@ -0,0 +1,46 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Stefan Sterz <s.sterz@proxmox.com>
Date: Wed, 18 Oct 2023 10:45:45 +0200
Subject: [PATCH] Revert "nSVM: Check for reserved encodings of TLB_CONTROL in
nested VMCB"
This reverts commit 174a921b6975ef959dd82ee9e8844067a62e3ec1.
Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
---
arch/x86/kvm/svm/nested.c | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c
index add65dd59756..61a6c0235519 100644
--- a/arch/x86/kvm/svm/nested.c
+++ b/arch/x86/kvm/svm/nested.c
@@ -242,18 +242,6 @@ static bool nested_svm_check_bitmap_pa(struct kvm_vcpu *vcpu, u64 pa, u32 size)
kvm_vcpu_is_legal_gpa(vcpu, addr + size - 1);
}
-static bool nested_svm_check_tlb_ctl(struct kvm_vcpu *vcpu, u8 tlb_ctl)
-{
- /* Nested FLUSHBYASID is not supported yet. */
- switch(tlb_ctl) {
- case TLB_CONTROL_DO_NOTHING:
- case TLB_CONTROL_FLUSH_ALL_ASID:
- return true;
- default:
- return false;
- }
-}
-
static bool __nested_vmcb_check_controls(struct kvm_vcpu *vcpu,
struct vmcb_ctrl_area_cached *control)
{
@@ -273,9 +261,6 @@ static bool __nested_vmcb_check_controls(struct kvm_vcpu *vcpu,
IOPM_SIZE)))
return false;
- if (CC(!nested_svm_check_tlb_ctl(vcpu, control->tlb_ctl)))
- return false;
-
return true;
}
@@ -0,0 +1,36 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Sean Christopherson <seanjc@google.com>
Date: Wed, 18 Oct 2023 12:41:04 -0700
Subject: [PATCH] KVM: nSVM: Advertise support for flush-by-ASID
Advertise support for FLUSHBYASID when nested SVM is enabled, as KVM can
always emulate flushing TLB entries for a vmcb12 ASID, e.g. by running L2
with a new, fresh ASID in vmcb02. Some modern hypervisors, e.g. VMWare
Workstation 17, require FLUSHBYASID support and will refuse to run if it's
not present.
Punt on proper support, as "Honor L1's request to flush an ASID on nested
VMRUN" is one of the TODO items in the (incomplete) list of issues that
need to be addressed in order for KVM to NOT do a full TLB flush on every
nested SVM transition (see nested_svm_transition_tlb_flush()).
Reported-by: Stefan Sterz <s.sterz@proxmox.com>
Closes: https://lkml.kernel.org/r/b9915c9c-4cf6-051a-2d91-44cc6380f455%40proxmox.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
---
arch/x86/kvm/svm/svm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index cf31babfbbb9..99a7e93b2edf 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -4920,6 +4920,7 @@ static __init void svm_set_cpu_caps(void)
if (nested) {
kvm_cpu_cap_set(X86_FEATURE_SVM);
kvm_cpu_cap_set(X86_FEATURE_VMCBCLEAN);
+ kvm_cpu_cap_set(X86_FEATURE_FLUSHBYASID);
if (nrips)
kvm_cpu_cap_set(X86_FEATURE_NRIPS);
@@ -0,0 +1,164 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Sean Christopherson <seanjc@google.com>
Date: Wed, 27 Sep 2023 17:19:52 -0700
Subject: [PATCH] x86/fpu: Allow caller to constrain xfeatures when copying to
uabi buffer
Plumb an xfeatures mask into __copy_xstate_to_uabi_buf() so that KVM can
constrain which xfeatures are saved into the userspace buffer without
having to modify the user_xfeatures field in KVM's guest_fpu state.
KVM's ABI for KVM_GET_XSAVE{2} is that features that are not exposed to
guest must not show up in the effective xstate_bv field of the buffer.
Saving only the guest-supported xfeatures allows userspace to load the
saved state on a different host with a fewer xfeatures, so long as the
target host supports the xfeatures that are exposed to the guest.
KVM currently sets user_xfeatures directly to restrict KVM_GET_XSAVE{2} to
the set of guest-supported xfeatures, but doing so broke KVM's historical
ABI for KVM_SET_XSAVE, which allows userspace to load any xfeatures that
are supported by the *host*.
Cc: stable@vger.kernel.org
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20230928001956.924301-2-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 18164f66e6c59fda15c198b371fa008431efdb22)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/include/asm/fpu/api.h | 3 ++-
arch/x86/kernel/fpu/core.c | 5 +++--
arch/x86/kernel/fpu/xstate.c | 7 +++++--
arch/x86/kernel/fpu/xstate.h | 3 ++-
arch/x86/kvm/x86.c | 21 +++++++++------------
5 files changed, 21 insertions(+), 18 deletions(-)
diff --git a/arch/x86/include/asm/fpu/api.h b/arch/x86/include/asm/fpu/api.h
index b475d9a582b8..e829fa4c6788 100644
--- a/arch/x86/include/asm/fpu/api.h
+++ b/arch/x86/include/asm/fpu/api.h
@@ -148,7 +148,8 @@ static inline void fpu_update_guest_xfd(struct fpu_guest *guest_fpu, u64 xfd) {
static inline void fpu_sync_guest_vmexit_xfd_state(void) { }
#endif
-extern void fpu_copy_guest_fpstate_to_uabi(struct fpu_guest *gfpu, void *buf, unsigned int size, u32 pkru);
+extern void fpu_copy_guest_fpstate_to_uabi(struct fpu_guest *gfpu, void *buf,
+ unsigned int size, u64 xfeatures, u32 pkru);
extern int fpu_copy_uabi_to_guest_fpstate(struct fpu_guest *gfpu, const void *buf, u64 xcr0, u32 *vpkru);
static inline void fpstate_set_confidential(struct fpu_guest *gfpu)
diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
index a083f9ac9e4f..1d190761d00f 100644
--- a/arch/x86/kernel/fpu/core.c
+++ b/arch/x86/kernel/fpu/core.c
@@ -369,14 +369,15 @@ int fpu_swap_kvm_fpstate(struct fpu_guest *guest_fpu, bool enter_guest)
EXPORT_SYMBOL_GPL(fpu_swap_kvm_fpstate);
void fpu_copy_guest_fpstate_to_uabi(struct fpu_guest *gfpu, void *buf,
- unsigned int size, u32 pkru)
+ unsigned int size, u64 xfeatures, u32 pkru)
{
struct fpstate *kstate = gfpu->fpstate;
union fpregs_state *ustate = buf;
struct membuf mb = { .p = buf, .left = size };
if (cpu_feature_enabled(X86_FEATURE_XSAVE)) {
- __copy_xstate_to_uabi_buf(mb, kstate, pkru, XSTATE_COPY_XSAVE);
+ __copy_xstate_to_uabi_buf(mb, kstate, xfeatures, pkru,
+ XSTATE_COPY_XSAVE);
} else {
memcpy(&ustate->fxsave, &kstate->regs.fxsave,
sizeof(ustate->fxsave));
diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
index 1afbc4866b10..463ec0cd0dab 100644
--- a/arch/x86/kernel/fpu/xstate.c
+++ b/arch/x86/kernel/fpu/xstate.c
@@ -1053,6 +1053,7 @@ static void copy_feature(bool from_xstate, struct membuf *to, void *xstate,
* __copy_xstate_to_uabi_buf - Copy kernel saved xstate to a UABI buffer
* @to: membuf descriptor
* @fpstate: The fpstate buffer from which to copy
+ * @xfeatures: The mask of xfeatures to save (XSAVE mode only)
* @pkru_val: The PKRU value to store in the PKRU component
* @copy_mode: The requested copy mode
*
@@ -1063,7 +1064,8 @@ static void copy_feature(bool from_xstate, struct membuf *to, void *xstate,
* It supports partial copy but @to.pos always starts from zero.
*/
void __copy_xstate_to_uabi_buf(struct membuf to, struct fpstate *fpstate,
- u32 pkru_val, enum xstate_copy_mode copy_mode)
+ u64 xfeatures, u32 pkru_val,
+ enum xstate_copy_mode copy_mode)
{
const unsigned int off_mxcsr = offsetof(struct fxregs_state, mxcsr);
struct xregs_state *xinit = &init_fpstate.regs.xsave;
@@ -1087,7 +1089,7 @@ void __copy_xstate_to_uabi_buf(struct membuf to, struct fpstate *fpstate,
break;
case XSTATE_COPY_XSAVE:
- header.xfeatures &= fpstate->user_xfeatures;
+ header.xfeatures &= fpstate->user_xfeatures & xfeatures;
break;
}
@@ -1189,6 +1191,7 @@ void copy_xstate_to_uabi_buf(struct membuf to, struct task_struct *tsk,
enum xstate_copy_mode copy_mode)
{
__copy_xstate_to_uabi_buf(to, tsk->thread.fpu.fpstate,
+ tsk->thread.fpu.fpstate->user_xfeatures,
tsk->thread.pkru, copy_mode);
}
diff --git a/arch/x86/kernel/fpu/xstate.h b/arch/x86/kernel/fpu/xstate.h
index a4ecb04d8d64..3518fb26d06b 100644
--- a/arch/x86/kernel/fpu/xstate.h
+++ b/arch/x86/kernel/fpu/xstate.h
@@ -43,7 +43,8 @@ enum xstate_copy_mode {
struct membuf;
extern void __copy_xstate_to_uabi_buf(struct membuf to, struct fpstate *fpstate,
- u32 pkru_val, enum xstate_copy_mode copy_mode);
+ u64 xfeatures, u32 pkru_val,
+ enum xstate_copy_mode copy_mode);
extern void copy_xstate_to_uabi_buf(struct membuf to, struct task_struct *tsk,
enum xstate_copy_mode mode);
extern int copy_uabi_from_kernel_to_xstate(struct fpstate *fpstate, const void *kbuf, u32 *pkru);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ff92ff41d5ce..a43a950d04cb 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -5314,26 +5314,23 @@ static int kvm_vcpu_ioctl_x86_set_debugregs(struct kvm_vcpu *vcpu,
return 0;
}
-static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu *vcpu,
- struct kvm_xsave *guest_xsave)
+
+static void kvm_vcpu_ioctl_x86_get_xsave2(struct kvm_vcpu *vcpu,
+ u8 *state, unsigned int size)
{
if (fpstate_is_confidential(&vcpu->arch.guest_fpu))
return;
- fpu_copy_guest_fpstate_to_uabi(&vcpu->arch.guest_fpu,
- guest_xsave->region,
- sizeof(guest_xsave->region),
+ fpu_copy_guest_fpstate_to_uabi(&vcpu->arch.guest_fpu, state, size,
+ vcpu->arch.guest_fpu.fpstate->user_xfeatures,
vcpu->arch.pkru);
}
-static void kvm_vcpu_ioctl_x86_get_xsave2(struct kvm_vcpu *vcpu,
- u8 *state, unsigned int size)
+static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu *vcpu,
+ struct kvm_xsave *guest_xsave)
{
- if (fpstate_is_confidential(&vcpu->arch.guest_fpu))
- return;
-
- fpu_copy_guest_fpstate_to_uabi(&vcpu->arch.guest_fpu,
- state, size, vcpu->arch.pkru);
+ return kvm_vcpu_ioctl_x86_get_xsave2(vcpu, (void *)guest_xsave->region,
+ sizeof(guest_xsave->region));
}
static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu,
@@ -0,0 +1,119 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Sean Christopherson <seanjc@google.com>
Date: Wed, 27 Sep 2023 17:19:53 -0700
Subject: [PATCH] KVM: x86: Constrain guest-supported xfeatures only at
KVM_GET_XSAVE{2}
Mask off xfeatures that aren't exposed to the guest only when saving guest
state via KVM_GET_XSAVE{2} instead of modifying user_xfeatures directly.
Preserving the maximal set of xfeatures in user_xfeatures restores KVM's
ABI for KVM_SET_XSAVE, which prior to commit ad856280ddea ("x86/kvm/fpu:
Limit guest user_xfeatures to supported bits of XCR0") allowed userspace
to load xfeatures that are supported by the host, irrespective of what
xfeatures are exposed to the guest.
There is no known use case where userspace *intentionally* loads xfeatures
that aren't exposed to the guest, but the bug fixed by commit ad856280ddea
was specifically that KVM_GET_SAVE{2} would save xfeatures that weren't
exposed to the guest, e.g. would lead to userspace unintentionally loading
guest-unsupported xfeatures when live migrating a VM.
Restricting KVM_SET_XSAVE to guest-supported xfeatures is especially
problematic for QEMU-based setups, as QEMU has a bug where instead of
terminating the VM if KVM_SET_XSAVE fails, QEMU instead simply stops
loading guest state, i.e. resumes the guest after live migration with
incomplete guest state, and ultimately results in guest data corruption.
Note, letting userspace restore all host-supported xfeatures does not fix
setups where a VM is migrated from a host *without* commit ad856280ddea,
to a target with a subset of host-supported xfeatures. However there is
no way to safely address that scenario, e.g. KVM could silently drop the
unsupported features, but that would be a clear violation of KVM's ABI and
so would require userspace to opt-in, at which point userspace could
simply be updated to sanitize the to-be-loaded XSAVE state.
Reported-by: Tyler Stachecki <stachecki.tyler@gmail.com>
Closes: https://lore.kernel.org/all/20230914010003.358162-1-tstachecki@bloomberg.net
Fixes: ad856280ddea ("x86/kvm/fpu: Limit guest user_xfeatures to supported bits of XCR0")
Cc: stable@vger.kernel.org
Cc: Leonardo Bras <leobras@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Message-Id: <20230928001956.924301-3-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 8647c52e9504c99752a39f1d44f6268f82c40a5c)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
arch/x86/kernel/fpu/xstate.c | 5 +----
arch/x86/kvm/cpuid.c | 8 --------
arch/x86/kvm/x86.c | 18 ++++++++++++++++--
3 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
index 463ec0cd0dab..ebe698f8af73 100644
--- a/arch/x86/kernel/fpu/xstate.c
+++ b/arch/x86/kernel/fpu/xstate.c
@@ -1543,10 +1543,7 @@ static int fpstate_realloc(u64 xfeatures, unsigned int ksize,
fpregs_restore_userregs();
newfps->xfeatures = curfps->xfeatures | xfeatures;
-
- if (!guest_fpu)
- newfps->user_xfeatures = curfps->user_xfeatures | xfeatures;
-
+ newfps->user_xfeatures = curfps->user_xfeatures | xfeatures;
newfps->xfd = curfps->xfd & ~xfeatures;
/* Do the final updates within the locked region */
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index 61aefeb3fdbc..e5393ee652ba 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -350,14 +350,6 @@ static void kvm_vcpu_after_set_cpuid(struct kvm_vcpu *vcpu)
vcpu->arch.guest_supported_xcr0 =
cpuid_get_supported_xcr0(vcpu->arch.cpuid_entries, vcpu->arch.cpuid_nent);
- /*
- * FP+SSE can always be saved/restored via KVM_{G,S}ET_XSAVE, even if
- * XSAVE/XCRO are not exposed to the guest, and even if XSAVE isn't
- * supported by the host.
- */
- vcpu->arch.guest_fpu.fpstate->user_xfeatures = vcpu->arch.guest_supported_xcr0 |
- XFEATURE_MASK_FPSSE;
-
kvm_update_pv_runtime(vcpu);
vcpu->arch.maxphyaddr = cpuid_query_maxphyaddr(vcpu);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index a43a950d04cb..a4a44adf7c72 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -5318,12 +5318,26 @@ static int kvm_vcpu_ioctl_x86_set_debugregs(struct kvm_vcpu *vcpu,
static void kvm_vcpu_ioctl_x86_get_xsave2(struct kvm_vcpu *vcpu,
u8 *state, unsigned int size)
{
+ /*
+ * Only copy state for features that are enabled for the guest. The
+ * state itself isn't problematic, but setting bits in the header for
+ * features that are supported in *this* host but not exposed to the
+ * guest can result in KVM_SET_XSAVE failing when live migrating to a
+ * compatible host without the features that are NOT exposed to the
+ * guest.
+ *
+ * FP+SSE can always be saved/restored via KVM_{G,S}ET_XSAVE, even if
+ * XSAVE/XCRO are not exposed to the guest, and even if XSAVE isn't
+ * supported by the host.
+ */
+ u64 supported_xcr0 = vcpu->arch.guest_supported_xcr0 |
+ XFEATURE_MASK_FPSSE;
+
if (fpstate_is_confidential(&vcpu->arch.guest_fpu))
return;
fpu_copy_guest_fpstate_to_uabi(&vcpu->arch.guest_fpu, state, size,
- vcpu->arch.guest_fpu.fpstate->user_xfeatures,
- vcpu->arch.pkru);
+ supported_xcr0, vcpu->arch.pkru);
}
static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu *vcpu,