[...] >> +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); g_free(hdr); return rc;