On 3/23/20 8:37 AM, Christian Borntraeger wrote: > > > On 23.03.20 08:15, Christian Borntraeger wrote: >> [...] >> >>>> +int s390_ipl_prepare_pv_header(void) >>>> +{ >>>> + IplParameterBlock *ipib = s390_ipl_get_iplb_pv(); >>>> + IPLBlockPV *ipib_pv = &ipib->pv; >>>> + void *hdr = g_malloc(ipib_pv->pv_header_len); >>>> + int rc; >>>> + >>>> + cpu_physical_memory_read(ipib_pv->pv_header_addr, hdr, >>>> + ipib_pv->pv_header_len); >>>> + rc = s390_pv_set_sec_parms((uint64_t)hdr, >>>> + ipib_pv->pv_header_len); >>> This causes a compiler issue when building for 32 bit x86 as follows: >>> >>> /home/abuild/rpmbuild/BUILD/qemu-4.2.0/hw/s390x/ipl.c: In function >>> 's390_ipl_prepare_pv_header': >>> /home/abuild/rpmbuild/BUILD/qemu-4.2.0/hw/s390x/ipl.c:659:32: error: >>> cast from pointer to integer of different size [-Werror=pointer-to-int- >>> cast] >>> 659 | rc = s390_pv_set_sec_parms((uint64_t)hdr, >>> | ^ >> >> Interesting. It seems that there is no travis-ci coverage for this >> case. >> >> I guess we need something like this. >> >> diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c >> index 1d04cd5..01bdf81 100644 >> --- a/hw/s390x/ipl.c >> +++ b/hw/s390x/ipl.c >> @@ -656,7 +656,7 @@ int s390_ipl_prepare_pv_header(void) >> >> cpu_physical_memory_read(ipib_pv->pv_header_addr, hdr, >> ipib_pv->pv_header_len); >> - rc = s390_pv_set_sec_parms((uint64_t)hdr, >> + rc = s390_pv_set_sec_parms((uint64_t)(unsigned long) hdr, >> ipib_pv->pv_header_len); > > uint_ptr instead of long is probably even better (for Windows). >
Yeah, I was wondering why you did a double cast instead of uintptr_t. ;-) I'll send out a revised version soon.
signature.asc
Description: OpenPGP digital signature