On Fri, 29 Mar 2019 11:11:02 +0000 Daniel P. Berrangé <[email protected]> wrote:
> The GCC 9 compiler complains about many places in s390 code > that take the address of members of the 'struct SCHIB' which > is marked packed: > > hw/s390x/css.c: In function ‘sch_handle_clear_func’: > hw/s390x/css.c:698:15: warning: taking address of packed member of ‘struct > SCHIB’ may result in an unaligned pointer val\ > ue [-Waddress-of-packed-member] > 698 | PMCW *p = &sch->curr_status.pmcw; > | ^~~~~~~~~~~~~~~~~~~~~~ > hw/s390x/css.c:699:15: warning: taking address of packed member of ‘struct > SCHIB’ may result in an unaligned pointer val\ > ue [-Waddress-of-packed-member] > 699 | SCSW *s = &sch->curr_status.scsw; > | ^~~~~~~~~~~~~~~~~~~~~~ > > ...snip many more... > > Almost all of these are just done for convenience to avoid > typing out long variable/field names when referencing struct > members. We can get most of this convenience by taking the > address of the 'struct SCHIB' instead, avoiding triggering > the compiler warnings. > > In a couple of places we copy via a local variable which is > a technique already applied elsewhere in s390 code for this > problem. > > Signed-off-by: Daniel P. Berrangé <[email protected]> Reviewed-by: Halil Pasic <[email protected]> Thanks!
