qemu-stable
[Top][All Lists]
Advanced

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

Re: [Qemu-stable] [Qemu-devel] [PATCH] s390-ccw: force diag 308 subcode


From: Cornelia Huck
Subject: Re: [Qemu-stable] [Qemu-devel] [PATCH] s390-ccw: force diag 308 subcode to unsigned long
Date: Thu, 3 May 2018 17:44:12 +0200

On Thu, 3 May 2018 11:25:08 -0400
Farhan Ali <address@hidden> wrote:

> On 05/02/2018 08:52 AM, Cornelia Huck wrote:
> > We currently pass an integer as the subcode parameter. However,
> > the upper bits of the register containing the subcode need to
> > be 0, which is not guaranteed unless we explicitly specify the
> > subcode to be an unsigned long value.
> > 
> > Fixes: d046c51dad3 ("pc-bios/s390-ccw: Get device address via diag 308/6")
> > Cc:address@hidden
> > Signed-off-by: Cornelia Huck<address@hidden>  
> 
> Sorry for my ignorance, but is there a C standard that says upper bits 
> of an int is not guaranteed to be 0?

The value (5 resp. 6) is small enough to fit into a regular integer,
and the compiler generated a lhi for the load, which did not change any
upper values that might have been in the register previously. Telling
the compiler to treat the value as an unsigned long makes it generate a
lghi.



reply via email to

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