qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] s390-ccw: Fix alignment for CCW1


From: Farhan Ali
Subject: Re: [Qemu-devel] [PATCH] s390-ccw: Fix alignment for CCW1
Date: Mon, 28 Aug 2017 09:18:28 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0



On 08/28/2017 09:06 AM, Cornelia Huck wrote:
On Mon, 28 Aug 2017 08:56:42 -0400
Farhan Ali <address@hidden> wrote:

On 08/28/2017 04:22 AM, Cornelia Huck wrote:
On Fri, 25 Aug 2017 11:05:30 -0400
Farhan Ali <address@hidden> wrote:

On 08/25/2017 10:04 AM, Cornelia Huck wrote:
On Fri, 25 Aug 2017 09:24:46 -0400
Farhan Ali <address@hidden> wrote:

The commit 198c0d1f9df8c4 s390x/css: check ccw address validity
exposes an alignment issue in ccw bios.

According to PoP the CCW must be doubleword aligned. Let's fix
this in the bios.

Cc: address@hidden
Signed-off-by: Farhan Ali <address@hidden>
Reviewed-by: Halil Pasic <address@hidden>
Reviewed-by: Eric Farman <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
---
 pc-bios/s390-ccw/cio.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pc-bios/s390-ccw/cio.h b/pc-bios/s390-ccw/cio.h
index f5b4549..55eaeee 100644
--- a/pc-bios/s390-ccw/cio.h
+++ b/pc-bios/s390-ccw/cio.h
@@ -133,7 +133,7 @@ struct ccw1 {
     __u8 flags;
     __u16 count;
     __u32 cda;
-} __attribute__ ((packed));
+} __attribute__ ((packed, aligned(8)));

 #define CCW_FLAG_DC              0x80
 #define CCW_FLAG_CC              0x40

Currently testing.

This looks obviously right, but did you figure out what the (probably
unrelated) other failure was?


That is still under investigation, for some reason it only fails for an
LDL DASD and it works for SCSIs and CDL DASD.

Which are the symptoms of the failure? I'd like to understand this
before I update the (currently working by accident) bios with an
updated version.

I'll just apply the patch for now.


Well it's seems like the failure for LDL DASD could be a disk setup
failure. We tried the test on a different environment with LDL disks and
everything worked fine with the patch applied.

Odd that it breaks after this change, though. Do you get command
rejects, or what happens?


It's the alignment of the CCW which causes the problem.

The exact error message when starting the guest was:

! No virtio device found !

Since it worked for SCSI and CDL, and failed for LDL disks on that particular system, we are not really sure what caused the failure. Debugging it further showed the CCW for LDL disks were not aligned at double word boundary.

Trying the test on a different system with LDL disks worked fine, with the aligned(8) fix.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]