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
This commit is contained in:
parent
b3c240d94a
commit
fcae0737b2
186
0067-xen-add-block-resize-support-for-xe.patch
Normal file
186
0067-xen-add-block-resize-support-for-xe.patch
Normal file
@ -0,0 +1,186 @@
|
||||
From 65cf4933f17a0b7a1a684c3ebfc86ce334c33859 Mon Sep 17 00:00:00 2001
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
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 <brogers@suse.com>
|
||||
---
|
||||
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("");
|
||||
+}
|
@ -13,6 +13,7 @@
|
||||
<conditions>
|
||||
<arch>ppc64</arch>
|
||||
<arch>ppc64le</arch>
|
||||
<arch>s390x</arch>
|
||||
<package>qemu</package>
|
||||
</conditions>
|
||||
<hardware>
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 \
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
18
qemu.changes
18
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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
35
skiboot-hdata-i2c.c-fix-building-with-gcc8.patch
Normal file
35
skiboot-hdata-i2c.c-fix-building-with-gcc8.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From 70d544de8739abbc381398cbfd07a6bd6dc8c1a5 Mon Sep 17 00:00:00 2001
|
||||
From: Stewart Smith <stewart@linux.ibm.com>
|
||||
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 <stewart@linux.ibm.com>
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user