42a945317b
- kvm-virtio-iommu-Fix-64kB-host-page-size-VFIO-device-ass.patch [bz#2211609 bz#2211634] - kvm-virtio-iommu-Rework-the-traces-in-virtio_iommu_set_p.patch [bz#2211609 bz#2211634] - kvm-vfio-pci-add-support-for-VF-token.patch [bz#2192818] - kvm-vfio-migration-Skip-log_sync-during-migration-SETUP-.patch [bz#2192818] - kvm-vfio-pci-Static-Resizable-BAR-capability.patch [bz#2192818] - kvm-vfio-pci-Fix-a-use-after-free-issue.patch [bz#2192818] - kvm-util-vfio-helpers-Use-g_file_read_link.patch [bz#2192818] - kvm-migration-Make-all-functions-check-have-the-same-for.patch [bz#2192818] - kvm-migration-Move-migration_properties-to-options.c.patch [bz#2192818] - kvm-migration-Add-switchover-ack-capability.patch [bz#2192818] - kvm-migration-Implement-switchover-ack-logic.patch [bz#2192818] - kvm-migration-Enable-switchover-ack-capability.patch [bz#2192818] - kvm-vfio-migration-Refactor-vfio_save_block-to-return-sa.patch [bz#2192818] - kvm-vfio-migration-Store-VFIO-migration-flags-in-VFIOMig.patch [bz#2192818] - kvm-vfio-migration-Add-VFIO-migration-pre-copy-support.patch [bz#2192818] - kvm-vfio-migration-Add-support-for-switchover-ack-capabi.patch [bz#2192818] - kvm-vfio-Implement-a-common-device-info-helper.patch [bz#2192818] - kvm-hw-vfio-pci-quirks-Support-alternate-offset-for-GPUD.patch [bz#2192818] - kvm-vfio-pci-Call-vfio_prepare_kvm_msi_virq_batch-in-MSI.patch [bz#2192818] - kvm-vfio-migration-Reset-bytes_transferred-properly.patch [bz#2192818] - kvm-vfio-migration-Make-VFIO-migration-non-experimental.patch [bz#2192818] - kvm-vfio-pci-Fix-a-segfault-in-vfio_realize.patch [bz#2192818] - kvm-vfio-pci-Free-leaked-timer-in-vfio_realize-error-pat.patch [bz#2192818] - kvm-hw-vfio-pci-quirks-Sanitize-capability-pointer.patch [bz#2192818] - kvm-vfio-pci-Disable-INTx-in-vfio_realize-error-path.patch [bz#2192818] - kvm-vfio-migration-Change-vIOMMU-blocker-from-global-to-.patch [bz#2192818] - kvm-vfio-migration-Free-resources-when-vfio_migration_re.patch [bz#2192818] - kvm-vfio-migration-Remove-print-of-Migration-disabled.patch [bz#2192818] - kvm-vfio-migration-Return-bool-type-for-vfio_migration_r.patch [bz#2192818] - kvm-vfio-Fix-null-pointer-dereference-bug-in-vfio_bars_f.patch [bz#2192818] - kvm-pc-bios-s390-ccw-Makefile-Use-z-noexecstack-to-silen.patch [bz#2220866] - kvm-pc-bios-s390-ccw-Fix-indentation-in-start.S.patch [bz#2220866] - kvm-pc-bios-s390-ccw-Provide-space-for-initial-stack-fra.patch [bz#2220866] - kvm-pc-bios-s390-ccw-Don-t-use-__bss_start-with-the-larl.patch [bz#2220866] - kvm-ui-Fix-pixel-colour-channel-order-for-PNG-screenshot.patch [bz#2222579] - kvm-block-blkio-fix-module_block.py-parsing.patch [bz#2213317] - kvm-Fix-virtio-blk-vhost-vdpa-typo-in-spec-file.patch [bz#2213317] - Resolves: bz#2211609 (With virtio-iommu and vfio-pci, qemu reports "warning: virtio-iommu page mask 0xfffffffffffff000 does not match 0x40201000") - Resolves: bz#2211634 ([aarch64] With virtio-iommu and vfio-pci, qemu coredump when host using kernel-64k package) - Resolves: bz#2192818 ([VFIO LM] Live migration) - Resolves: bz#2220866 (Misaligned symbol for s390-ccw image during qemu-kvm build) - Resolves: bz#2222579 (PNG screendump doesn't save screen correctly) - Resolves: bz#2213317 (Enable libblkio-based block drivers in QEMU)
79 lines
2.8 KiB
Diff
79 lines
2.8 KiB
Diff
From 7495a51c586818925470fb247882f5ba0f7b0ffd Mon Sep 17 00:00:00 2001
|
|
From: Thomas Huth <thuth@redhat.com>
|
|
Date: Tue, 27 Jun 2023 09:47:03 +0200
|
|
Subject: [PATCH 34/37] pc-bios/s390-ccw: Don't use __bss_start with the "larl"
|
|
instruction
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
RH-Author: Thomas Huth <thuth@redhat.com>
|
|
RH-MergeRequest: 180: Fix misaligned symbol error in the s390-ccw image during qemu-kvm build with binutils 2.40
|
|
RH-Bugzilla: 2220866
|
|
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
RH-Commit: [4/4] 2483a50c0ed37fa29db649ec44220ac83c215698 (thuth/qemu-kvm-cs9)
|
|
|
|
start.S currently cannot be compiled with Clang 16 and binutils 2.40:
|
|
|
|
ld: start.o(.text+0x8): misaligned symbol `__bss_start' (0xc1e5) for
|
|
relocation R_390_PC32DBL
|
|
|
|
According to the built-in linker script of ld, the symbol __bss_start
|
|
can actually point *before* the .bss section and does not need to have
|
|
any alignment, so in certain situations (like when using the internal
|
|
assembler of Clang), the __bss_start symbol can indeed be unaligned
|
|
and thus it is not suitable for being used with the "larl" instruction
|
|
that needs an address that is at least aligned to halfwords.
|
|
The problem went unnoticed so far since binutils <= 2.39 did not
|
|
check the alignment, but starting with binutils 2.40, such unaligned
|
|
addresses are now refused.
|
|
|
|
Fix it by loading the address indirectly instead.
|
|
|
|
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=2216662
|
|
Reported-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
Suggested-by: Andreas Krebbel <andreas.krebbel@de.ibm.com>
|
|
Message-Id: <20230629104821.194859-8-thuth@redhat.com>
|
|
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
|
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
|
(cherry picked from commit 7cd50cbe4ca3e2860b31b06ec92c17c54bd82d48)
|
|
---
|
|
pc-bios/s390-ccw/start.S | 6 ++++--
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/pc-bios/s390-ccw/start.S b/pc-bios/s390-ccw/start.S
|
|
index abd6fe6639..22c1c296df 100644
|
|
--- a/pc-bios/s390-ccw/start.S
|
|
+++ b/pc-bios/s390-ccw/start.S
|
|
@@ -19,7 +19,8 @@ _start:
|
|
larl %r15,stack + STACK_SIZE - STACK_FRAME_SIZE /* Set up stack */
|
|
|
|
/* clear bss */
|
|
- larl %r2,__bss_start
|
|
+ larl %r2,bss_start_literal /* __bss_start might be unaligned ... */
|
|
+ lg %r2,0(%r2) /* ... so load it indirectly */
|
|
larl %r3,_end
|
|
slgr %r3,%r2 /* get sizeof bss */
|
|
ltgr %r3,%r3 /* bss empty? */
|
|
@@ -45,7 +46,6 @@ done:
|
|
memsetxc:
|
|
xc 0(1,%r1),0(%r1)
|
|
|
|
-
|
|
/*
|
|
* void disabled_wait(void)
|
|
*
|
|
@@ -113,6 +113,8 @@ io_new_code:
|
|
br %r14
|
|
|
|
.align 8
|
|
+bss_start_literal:
|
|
+ .quad __bss_start
|
|
disabled_wait_psw:
|
|
.quad 0x0002000180000000,0x0000000000000000
|
|
enabled_wait_psw:
|
|
--
|
|
2.39.3
|
|
|