diff options
| author | Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> | 2017-05-17 02:48:05 +0200 |
|---|---|---|
| committer | Cornelia Huck <cornelia.huck@de.ibm.com> | 2017-05-19 12:29:01 +0200 |
| commit | 817d4a6bc8bc6c2ad57ffdbab1a33c9b930ddde4 (patch) | |
| tree | 40fef78b854e5ec1f3d4c29b04636afa3cf9152d /hw/s390x/s390-virtio-ccw.c | |
| parent | 8f3cf0128cbac1ac19be8515dc184edb88dd5fb1 (diff) | |
| download | focaccia-qemu-817d4a6bc8bc6c2ad57ffdbab1a33c9b930ddde4.tar.gz focaccia-qemu-817d4a6bc8bc6c2ad57ffdbab1a33c9b930ddde4.zip | |
s390x/css: realize css_create_sch
The S390 virtual css support already has a mechanism to create a virtual subchannel and provide it to the guest. However, to pass-through subchannels to a guest, we need to introduce a new mechanism to create the subchannel according to the real device information. Thus we reconstruct css_create_virtual_sch to a new css_create_sch function to handle all these cases and do allocation and initialization of the subchannel according to the device type and machine configuration. Reviewed-by: Pierre Morel <pmorel@linux.vnet.ibm.com> Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> Message-Id: <20170517004813.58227-6-bjsdjshi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'hw/s390x/s390-virtio-ccw.c')
| -rw-r--r-- | hw/s390x/s390-virtio-ccw.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index cd007ca8cf..c9021f2fa9 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -136,10 +136,15 @@ static void ccw_init(MachineState *machine) kvm_s390_enable_css_support(s390_cpu_addr2state(0)); } /* - * Create virtual css and set it as default so that non mcss-e - * enabled guests only see virtio devices. + * Non mcss-e enabled guests only see the devices from the default + * css, which is determined by the value of the squash_mcss property. + * Note: we must not squash non virtual devices to css 0xFE. */ - ret = css_create_css_image(VIRTUAL_CSSID, true); + if (css_bus->squash_mcss) { + ret = css_create_css_image(0, true); + } else { + ret = css_create_css_image(VIRTUAL_CSSID, true); + } assert(ret == 0); /* Create VirtIO network adapters */ |