From 390170a30346dacb749f5eb6834359e95892e720b65015e5458f960032d28d74 Mon Sep 17 00:00:00 2001 From: Bruce Rogers Date: Thu, 5 Jul 2018 20:55:09 +0000 Subject: [PATCH] Accepting request 621214 from home:bfrogers:branches:Virtualization - Tweak build service constraints information to avoid failures - Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.12 * Patches added: 0067-xen-add-block-resize-support-for-xe.patch - Fix build failure of skiboot with gcc8 compiler skiboot-hdata-i2c.c-fix-building-with-gcc8.patch - Tweak build service constraints information to avoid failures - Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.12 * Patches added: 0067-xen-add-block-resize-support-for-xe.patch - Fix build failure of skiboot with gcc8 compiler skiboot-hdata-i2c.c-fix-building-with-gcc8.patch - Tweak build service constraints information to avoid failures - Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.12 * Patches added: 0067-xen-add-block-resize-support-for-xe.patch OBS-URL: https://build.opensuse.org/request/show/621214 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=415 --- ...-xen-add-block-resize-support-for-xe.patch | 186 ++++++++++++++++++ _constraints | 1 + qemu-linux-user.changes | 12 ++ qemu-linux-user.spec | 2 + qemu-testsuite.changes | 18 ++ qemu-testsuite.spec | 4 + qemu.changes | 18 ++ qemu.spec | 4 + qemu.spec.in | 2 + ...t-hdata-i2c.c-fix-building-with-gcc8.patch | 35 ++++ 10 files changed, 282 insertions(+) create mode 100644 0067-xen-add-block-resize-support-for-xe.patch create mode 100644 skiboot-hdata-i2c.c-fix-building-with-gcc8.patch diff --git a/0067-xen-add-block-resize-support-for-xe.patch b/0067-xen-add-block-resize-support-for-xe.patch new file mode 100644 index 00000000..aada0cff --- /dev/null +++ b/0067-xen-add-block-resize-support-for-xe.patch @@ -0,0 +1,186 @@ +From 65cf4933f17a0b7a1a684c3ebfc86ce334c33859 Mon Sep 17 00:00:00 2001 +From: Bruce Rogers +Date: Fri, 8 Jun 2018 11:04:36 -0600 +Subject: [PATCH] xen: add block resize support for xen disks + +Provide monitor naming of xen disks, and plumb guest driver +notification through xenstore of resizing instigated via the +monitor. + +Signed-off-by: Bruce Rogers +--- + block/block-backend.c | 12 +++++++++++- + blockdev.c | 8 ++++++++ + hw/block/xen_disk.c | 24 ++++++++++++++++++++++++ + include/hw/xen/xen.h | 4 ++++ + include/sysemu/block-backend.h | 2 ++ + stubs/xen-common.c | 9 +++++++++ + 6 files changed, 58 insertions(+), 1 deletion(-) + +diff --git a/block/block-backend.c b/block/block-backend.c +index 681b240b12..7f4f803c5b 100644 +--- a/block/block-backend.c ++++ b/block/block-backend.c +@@ -23,6 +23,7 @@ + #include "qemu/option.h" + #include "trace.h" + #include "migration/misc.h" ++#include "hw/xen/xen.h" + + /* Number of coroutines to reserve per attached device model */ + #define COROUTINE_POOL_RESERVATION 64 +@@ -895,7 +896,9 @@ char *blk_get_attached_dev_id(BlockBackend *blk) + { + DeviceState *dev; + +- assert(!blk->legacy_dev); ++ if (blk->legacy_dev) { ++ return xen_blk_get_attached_dev_id(blk->dev); ++ } + dev = blk->dev; + + if (!dev) { +@@ -2006,6 +2009,13 @@ int blk_truncate(BlockBackend *blk, int64_t offset, PreallocMode prealloc, + return bdrv_truncate(blk->root, offset, prealloc, errp); + } + ++void blk_legacy_resize_cb(BlockBackend *blk) ++{ ++ if (blk->legacy_dev) { ++ xen_blk_resize_cb(blk->dev); ++ } ++} ++ + static void blk_pdiscard_entry(void *opaque) + { + BlkRwCo *rwco = opaque; +diff --git a/blockdev.c b/blockdev.c +index c31bf3d98d..7aa158868b 100644 +--- a/blockdev.c ++++ b/blockdev.c +@@ -3014,6 +3014,7 @@ void qmp_block_resize(bool has_device, const char *device, + { + Error *local_err = NULL; + BlockBackend *blk = NULL; ++ BlockBackend *cb_blk = NULL; + BlockDriverState *bs; + AioContext *aio_context; + int ret; +@@ -3026,6 +3027,10 @@ void qmp_block_resize(bool has_device, const char *device, + return; + } + ++ if (has_device) { ++ cb_blk = blk_by_name(device); ++ } ++ + aio_context = bdrv_get_aio_context(bs); + aio_context_acquire(aio_context); + +@@ -3052,6 +3057,9 @@ void qmp_block_resize(bool has_device, const char *device, + + bdrv_drained_begin(bs); + ret = blk_truncate(blk, size, PREALLOC_MODE_OFF, errp); ++ if (!ret && cb_blk) { ++ blk_legacy_resize_cb(cb_blk); ++ } + bdrv_drained_end(bs); + + out: +diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c +index 1696382f36..faa40239c0 100644 +--- a/hw/block/xen_disk.c ++++ b/hw/block/xen_disk.c +@@ -1098,6 +1098,7 @@ static int blk_connect(struct XenDevice *xendev) + unsigned int ring_size, max_grants; + unsigned int i; + uint32_t *domids; ++ Error *errp = NULL; + + trace_xen_disk_connect(xendev->name); + +@@ -1157,6 +1158,13 @@ static int blk_connect(struct XenDevice *xendev) + blk_ref(blkdev->blk); + } + blk_attach_dev_legacy(blkdev->blk, blkdev); ++ if (!monitor_add_blk(blkdev->blk, g_strdup(blkdev->dev), &errp)) { ++ xen_pv_printf(&blkdev->xendev, 0, "error: %s\n", ++ error_get_pretty(errp)); ++ error_free(errp); ++ return -1; ++ } ++ + blkdev->file_size = blk_getlength(blkdev->blk); + if (blkdev->file_size < 0) { + BlockDriverState *bs = blk_bs(blkdev->blk); +@@ -1351,6 +1359,7 @@ static void blk_disconnect(struct XenDevice *xendev) + if (blkdev->blk) { + blk_set_aio_context(blkdev->blk, qemu_get_aio_context()); + blk_detach_dev(blkdev->blk, blkdev); ++ monitor_remove_blk(blkdev->blk); + blk_unref(blkdev->blk); + blkdev->blk = NULL; + } +@@ -1424,6 +1433,21 @@ static void blk_event(struct XenDevice *xendev) + qemu_bh_schedule(blkdev->bh); + } + ++void xen_blk_resize_cb(void *dev) ++{ ++ struct XenBlkDev *blkdev = dev; ++ blkdev->file_size = blk_getlength(blkdev->blk); ++ xenstore_write_be_int64(&blkdev->xendev, "sectors", ++ blkdev->file_size / blkdev->file_blk); ++ xen_be_set_state(&blkdev->xendev, blkdev->xendev.be_state); ++} ++ ++char *xen_blk_get_attached_dev_id(void *dev) ++{ ++ struct XenBlkDev *blkdev = dev; ++ return g_strdup_printf("xen-qdisk-%i", blkdev->xendev.dev); ++} ++ + struct XenDevOps xen_blkdev_ops = { + .size = sizeof(struct XenBlkDev), + .alloc = blk_alloc, +diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h +index 7efcdaa8fe..45c8c0b6f7 100644 +--- a/include/hw/xen/xen.h ++++ b/include/hw/xen/xen.h +@@ -48,4 +48,8 @@ void xen_hvm_modified_memory(ram_addr_t start, ram_addr_t length); + + void xen_register_framebuffer(struct MemoryRegion *mr); + ++void xen_blk_resize_cb(void *dev); ++ ++char *xen_blk_get_attached_dev_id(void *dev); ++ + #endif /* QEMU_HW_XEN_H */ +diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h +index 92ab624fac..9565dbaf97 100644 +--- a/include/sysemu/block-backend.h ++++ b/include/sysemu/block-backend.h +@@ -232,4 +232,6 @@ void blk_set_force_allow_inactivate(BlockBackend *blk); + void blk_register_buf(BlockBackend *blk, void *host, size_t size); + void blk_unregister_buf(BlockBackend *blk, void *host); + ++void blk_legacy_resize_cb(BlockBackend *blk); ++ + #endif +diff --git a/stubs/xen-common.c b/stubs/xen-common.c +index 09fce2dd36..91542fc019 100644 +--- a/stubs/xen-common.c ++++ b/stubs/xen-common.c +@@ -12,3 +12,12 @@ + void xenstore_store_pv_console_info(int i, Chardev *chr) + { + } ++ ++void xen_blk_resize_cb(void *dev) ++{ ++} ++ ++char *xen_blk_get_attached_dev_id(void *dev) ++{ ++ return g_strdup(""); ++} diff --git a/_constraints b/_constraints index 74105344..3b814156 100644 --- a/_constraints +++ b/_constraints @@ -13,6 +13,7 @@ ppc64 ppc64le + s390x qemu diff --git a/qemu-linux-user.changes b/qemu-linux-user.changes index 0cdd56b4..88f1dfbb 100644 --- a/qemu-linux-user.changes +++ b/qemu-linux-user.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Jul 5 15:22:40 UTC 2018 - brogers@suse.com + +- Tweak build service constraints information to avoid failures + +------------------------------------------------------------------- +Fri Jun 8 20:28:41 UTC 2018 - brogers@suse.com + +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.12 +* Patches added: + 0067-xen-add-block-resize-support-for-xe.patch + ------------------------------------------------------------------- Thu Jun 7 14:57:31 UTC 2018 - brogers@suse.com diff --git a/qemu-linux-user.spec b/qemu-linux-user.spec index 152b6976..4842da9c 100644 --- a/qemu-linux-user.spec +++ b/qemu-linux-user.spec @@ -92,6 +92,7 @@ Patch0063: 0063-i386-Define-the-Virt-SSBD-MSR-and-h.patch Patch0064: 0064-i386-define-the-AMD-virt-ssbd-CPUID.patch Patch0065: 0065-ahci-fix-PxCI-register-race.patch Patch0066: 0066-ccid-card-passthru-fix-regression-i.patch +Patch0067: 0067-xen-add-block-resize-support-for-xe.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. Source400: update_git.sh @@ -191,6 +192,7 @@ syscall layer occurs on the native hardware and operating system. %patch0064 -p1 %patch0065 -p1 %patch0066 -p1 +%patch0067 -p1 %build ./configure \ diff --git a/qemu-testsuite.changes b/qemu-testsuite.changes index d95fa4bf..a76882be 100644 --- a/qemu-testsuite.changes +++ b/qemu-testsuite.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Thu Jul 5 17:21:43 UTC 2018 - brogers@suse.com + +- Fix build failure of skiboot with gcc8 compiler + skiboot-hdata-i2c.c-fix-building-with-gcc8.patch + +------------------------------------------------------------------- +Thu Jul 5 15:22:19 UTC 2018 - brogers@suse.com + +- Tweak build service constraints information to avoid failures + +------------------------------------------------------------------- +Fri Jun 8 20:28:37 UTC 2018 - brogers@suse.com + +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.12 +* Patches added: + 0067-xen-add-block-resize-support-for-xe.patch + ------------------------------------------------------------------- Thu Jun 7 14:57:31 UTC 2018 - brogers@suse.com diff --git a/qemu-testsuite.spec b/qemu-testsuite.spec index 20d8f634..ec0a5899 100644 --- a/qemu-testsuite.spec +++ b/qemu-testsuite.spec @@ -196,6 +196,7 @@ Patch0063: 0063-i386-Define-the-Virt-SSBD-MSR-and-h.patch Patch0064: 0064-i386-define-the-AMD-virt-ssbd-CPUID.patch Patch0065: 0065-ahci-fix-PxCI-register-race.patch Patch0066: 0066-ccid-card-passthru-fix-regression-i.patch +Patch0067: 0067-xen-add-block-resize-support-for-xe.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. @@ -220,6 +221,7 @@ Patch1300: sgabios-stable-buildid.patch # SLOF (Currently no patches) # skiboot (Currently no patches) +Patch1500: skiboot-hdata-i2c.c-fix-building-with-gcc8.patch # ui/keycodemapdb (Currently no patches) @@ -930,6 +932,7 @@ This package provides a service file for starting and stopping KSM. %patch0064 -p1 %patch0065 -p1 %patch0066 -p1 +%patch0067 -p1 %if 0%{?suse_version} > 1320 %patch1000 -p1 @@ -958,6 +961,7 @@ pushd roms/SLOF popd pushd roms/skiboot +%patch1500 -p1 popd pushd ui/keycodemapdb diff --git a/qemu.changes b/qemu.changes index d95fa4bf..a76882be 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Thu Jul 5 17:21:43 UTC 2018 - brogers@suse.com + +- Fix build failure of skiboot with gcc8 compiler + skiboot-hdata-i2c.c-fix-building-with-gcc8.patch + +------------------------------------------------------------------- +Thu Jul 5 15:22:19 UTC 2018 - brogers@suse.com + +- Tweak build service constraints information to avoid failures + +------------------------------------------------------------------- +Fri Jun 8 20:28:37 UTC 2018 - brogers@suse.com + +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.12 +* Patches added: + 0067-xen-add-block-resize-support-for-xe.patch + ------------------------------------------------------------------- Thu Jun 7 14:57:31 UTC 2018 - brogers@suse.com diff --git a/qemu.spec b/qemu.spec index 4d3ddd43..6090137d 100644 --- a/qemu.spec +++ b/qemu.spec @@ -196,6 +196,7 @@ Patch0063: 0063-i386-Define-the-Virt-SSBD-MSR-and-h.patch Patch0064: 0064-i386-define-the-AMD-virt-ssbd-CPUID.patch Patch0065: 0065-ahci-fix-PxCI-register-race.patch Patch0066: 0066-ccid-card-passthru-fix-regression-i.patch +Patch0067: 0067-xen-add-block-resize-support-for-xe.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. @@ -220,6 +221,7 @@ Patch1300: sgabios-stable-buildid.patch # SLOF (Currently no patches) # skiboot (Currently no patches) +Patch1500: skiboot-hdata-i2c.c-fix-building-with-gcc8.patch # ui/keycodemapdb (Currently no patches) @@ -930,6 +932,7 @@ This package provides a service file for starting and stopping KSM. %patch0064 -p1 %patch0065 -p1 %patch0066 -p1 +%patch0067 -p1 %if 0%{?suse_version} > 1320 %patch1000 -p1 @@ -958,6 +961,7 @@ pushd roms/SLOF popd pushd roms/skiboot +%patch1500 -p1 popd pushd ui/keycodemapdb diff --git a/qemu.spec.in b/qemu.spec.in index be49704e..35ae9ce5 100644 --- a/qemu.spec.in +++ b/qemu.spec.in @@ -156,6 +156,7 @@ Patch1300: sgabios-stable-buildid.patch # SLOF (Currently no patches) # skiboot (Currently no patches) +Patch1500: skiboot-hdata-i2c.c-fix-building-with-gcc8.patch # ui/keycodemapdb (Currently no patches) @@ -829,6 +830,7 @@ pushd roms/SLOF popd pushd roms/skiboot +%patch1500 -p1 popd pushd ui/keycodemapdb diff --git a/skiboot-hdata-i2c.c-fix-building-with-gcc8.patch b/skiboot-hdata-i2c.c-fix-building-with-gcc8.patch new file mode 100644 index 00000000..f02a92af --- /dev/null +++ b/skiboot-hdata-i2c.c-fix-building-with-gcc8.patch @@ -0,0 +1,35 @@ +From 70d544de8739abbc381398cbfd07a6bd6dc8c1a5 Mon Sep 17 00:00:00 2001 +From: Stewart Smith +Date: Tue, 29 May 2018 14:54:10 +1000 +Subject: [PATCH] hdata/i2c.c: fix building with gcc8 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +hdata/test/../i2c.c:200:1: error: alignment 1 of ‘struct host_i2c_hdr’ is less than 4 [-Werror=packed-not-aligned] + } __packed; + ^ + +Fixes: https://github.com/open-power/skiboot/issues/160 +Signed-off-by: Stewart Smith +Signed-off-by: Bruce Rogers +--- + hdata/i2c.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/hdata/i2c.c b/hdata/i2c.c +index 5cb56faf..9bbec665 100644 +--- a/hdata/i2c.c ++++ b/hdata/i2c.c +@@ -197,7 +197,7 @@ static bool is_zeros(const void *p, size_t size) + struct host_i2c_hdr { + const struct HDIF_array_hdr hdr; + __be32 version; +-} __packed; ++} __packed __align(0x4); + + int parse_i2c_devs(const struct HDIF_common_hdr *hdr, int idata_index, + struct dt_node *xscom) +-- +2.18.0 +