[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 13/14] hw/s390x/ipl: avoid taking address of fie
From: |
David Hildenbrand |
Subject: |
Re: [Qemu-devel] [PATCH 13/14] hw/s390x/ipl: avoid taking address of fields in packed struct |
Date: |
Fri, 29 Mar 2019 12:41:43 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
On 29.03.19 12:11, Daniel P. Berrangé wrote:
> Compiling with GCC 9 complains
>
> hw/s390x/ipl.c: In function ‘s390_ipl_set_boot_menu’:
> hw/s390x/ipl.c:256:25: warning: taking address of packed member of ‘struct
> QemuIplParameters’ may result in an unaligned pointer value
> [-Waddress-of-packed-member]
> 256 | uint32_t *timeout = &ipl->qipl.boot_menu_timeout;
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> This local variable is only present to save a little bit of
> typing when setting the field later. Get rid of this to avoid
> the warning about unaligned accesses.
>
> Signed-off-by: Daniel P. Berrangé <address@hidden>
> ---
> hw/s390x/ipl.c | 12 +++++-------
> 1 file changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
> index 896888bf8f..51b272e190 100644
> --- a/hw/s390x/ipl.c
> +++ b/hw/s390x/ipl.c
> @@ -252,8 +252,6 @@ static void s390_ipl_set_boot_menu(S390IPLState *ipl)
> {
> QemuOptsList *plist = qemu_find_opts("boot-opts");
> QemuOpts *opts = QTAILQ_FIRST(&plist->head);
> - uint8_t *flags = &ipl->qipl.qipl_flags;
> - uint32_t *timeout = &ipl->qipl.boot_menu_timeout;
> const char *tmp;
> unsigned long splash_time = 0;
>
> @@ -269,7 +267,7 @@ static void s390_ipl_set_boot_menu(S390IPLState *ipl)
> case S390_IPL_TYPE_CCW:
> /* In the absence of -boot menu, use zipl parameters */
> if (!qemu_opt_get(opts, "menu")) {
> - *flags |= QIPL_FLAG_BM_OPTS_ZIPL;
> + ipl->qipl.qipl_flags |= QIPL_FLAG_BM_OPTS_ZIPL;
> return;
> }
> break;
> @@ -286,23 +284,23 @@ static void s390_ipl_set_boot_menu(S390IPLState *ipl)
> return;
> }
>
> - *flags |= QIPL_FLAG_BM_OPTS_CMD;
> + ipl->qipl.qipl_flags |= QIPL_FLAG_BM_OPTS_CMD;
>
> tmp = qemu_opt_get(opts, "splash-time");
>
> if (tmp && qemu_strtoul(tmp, NULL, 10, &splash_time)) {
> error_report("splash-time is invalid, forcing it to 0");
> - *timeout = 0;
> + ipl->qipl.boot_menu_timeout = 0;
> return;
> }
>
> if (splash_time > 0xffffffff) {
> error_report("splash-time is too large, forcing it to max value");
> - *timeout = 0xffffffff;
> + ipl->qipl.boot_menu_timeout = 0xffffffff;
> return;
> }
>
> - *timeout = cpu_to_be32(splash_time);
> + ipl->qipl.boot_menu_timeout = cpu_to_be32(splash_time);
> }
>
> static CcwDevice *s390_get_ccw_device(DeviceState *dev_st)
>
Reviewed-by: David Hildenbrand <address@hidden>
--
Thanks,
David / dhildenb
- [Qemu-devel] [PATCH 08/14] qxl: avoid unaligned pointer reads/writes, (continued)
- [Qemu-devel] [PATCH 08/14] qxl: avoid unaligned pointer reads/writes, Daniel P . Berrangé, 2019/03/29
- [Qemu-devel] [PATCH 10/14] usb-mtp: avoid warning about unaligned access to filename, Daniel P . Berrangé, 2019/03/29
- [Qemu-devel] [PATCH 11/14] hw/vfio/ccw: avoid taking address members in packed structs, Daniel P . Berrangé, 2019/03/29
- [Qemu-devel] [PATCH 13/14] hw/s390x/ipl: avoid taking address of fields in packed struct, Daniel P . Berrangé, 2019/03/29
- [Qemu-devel] [PATCH 14/14] hw/s390x/3270-ccw: avoid taking address of fields in packed struct, Daniel P . Berrangé, 2019/03/29
- [Qemu-devel] [PATCH 12/14] hw/s390/css: avoid taking address members in packed structs, Daniel P . Berrangé, 2019/03/29
- Re: [Qemu-devel] [PATCH 00/14] misc set of fixes for warnings under GCC 9, Peter Maydell, 2019/03/29