From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:58248) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hBLup-0007RK-33 for qemu-devel@nongnu.org; Tue, 02 Apr 2019 12:05:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hBLuo-0000Sl-16 for qemu-devel@nongnu.org; Tue, 02 Apr 2019 12:05:35 -0400 References: <20190329111104.17223-1-berrange@redhat.com> <20190329111104.17223-12-berrange@redhat.com> <20190402180033.77510387.cohuck@redhat.com> From: Thomas Huth Message-ID: Date: Tue, 2 Apr 2019 18:05:15 +0200 MIME-Version: 1.0 In-Reply-To: <20190402180033.77510387.cohuck@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 11/14] hw/vfio/ccw: avoid taking address members in packed structs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Cornelia Huck , =?UTF-8?Q?Daniel_P=2e_Berrang=c3=a9?= Cc: qemu-devel@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Halil Pasic , David Hildenbrand , Max Filippov , Eric Farman , Farhan Ali , Gerd Hoffmann , Riku Voipio , Alex Williamson , Christian Borntraeger , Laurent Vivier On 02/04/2019 18.00, Cornelia Huck wrote: > On Fri, 29 Mar 2019 11:11:01 +0000 > Daniel P. Berrang=C3=A9 wrote: >=20 >> 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/vfio/ccw.c: In function =E2=80=98vfio_ccw_io_notifier_handler=E2=80= =99: >> hw/vfio/ccw.c:133:15: warning: taking address of packed member of =E2=80= =98struct SCHIB=E2=80=99 may result in an unaligned pointer value \ >> [-Waddress-of-packed-member] >> 133 | SCSW *s =3D &sch->curr_status.scsw; >> | ^~~~~~~~~~~~~~~~~~~~~~ >> hw/vfio/ccw.c:134:15: warning: taking address of packed member of =E2=80= =98struct SCHIB=E2=80=99 may result in an unaligned pointer value \ >> [-Waddress-of-packed-member] >> 134 | PMCW *p =3D &sch->curr_status.pmcw; >> | ^~~~~~~~~~~~~~~~~~~~~~ >> >> ...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=C3=A9 >> --- >> hw/vfio/ccw.c | 42 ++++++++++++++++++++++-------------------- >> 1 file changed, 22 insertions(+), 20 deletions(-) >=20 > I'm currently in the process of queuing this and the other three s390x > fixes, but I'm inclined to do so for 4.1 (it feels a bit late in the > cycle for 4.0.) >=20 > Other opinions? IMHO it would be nice to get rid of the compiler warnings for the release. Multiple people reviewed the patches, so I think it should still be fine to include them. Thomas