mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
some accumulated s390x fixes
-----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEEw9DWbcNiT/aowBjO3s9rk8bwL68FAmBCUygSHGNvaHVja0By ZWRoYXQuY29tAAoJEN7Pa5PG8C+v3AUQAJ0lmxoMCbnHQn4wbFRfQW8XH8MVKSFU mJ+UTcsKnoA+sgo6FkwxJwKWuhJ2tpeUHENRRSZ73KgnedA2tou4Cc/18oUtl8Oc TS3L8Eq6NQA6Xf+uSpOUKM0R+shgYdOO6QnWO8WGVhmpP6adQLHZX0tWomkXJfDS fpCt+ivs+iHkENL1+45wohwoXRaznYPIspHMhkL4AxvQfI55RifWjX0K+srpLgNy mkbAlhLJX+0AxA75EyhgWddYmu9HcMtFLMBFJcsALYxPtp21MTHd5ha9uDvrWkXS Q4jp1QMr+8kJrCUZTWSL25IfYHNoBZjMa+AB04rYC1BG1E6FZA2NKcd0kZtwEU+g hwer/HahSJ+TXohYkXsjEkpMYvCButmvzPjHLin9gzGjg8z31EpvqGuz/iZA9IgZ qA7tegwqclDLmBZjEge6jF3iCiM1f4292cGhsZ40Vmmkn+O2udSirzUGFxwQmdWn YR03lGi2BfC5ND42HBmEuqFna3GjfYBKhvromLFsVInws7uBQRzN4GJtzWMRY5R2 R5oeVz5NiimV4iqDUjCv/LjZD6fEJPyGTRzS2niVWSEqS/jfjBs3aBgwq9bAw7jo Wyv/jPUngbZnMcpl7FU9OyefJFuFgztVWD2+HFwrgrfJFhsmx/jkwNCUEYLL8JQ7 TwvTQHe547// =BhxJ -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/cohuck-gitlab/tags/s390x-20210305' into staging some accumulated s390x fixes # gpg: Signature made Fri 05 Mar 2021 15:50:00 GMT # gpg: using RSA key C3D0D66DC3624FF6A8C018CEDECF6B93C6F02FAF # gpg: issuer "cohuck@redhat.com" # gpg: Good signature from "Cornelia Huck <conny@cornelia-huck.de>" [unknown] # gpg: aka "Cornelia Huck <huckc@linux.vnet.ibm.com>" [full] # gpg: aka "Cornelia Huck <cornelia.huck@de.ibm.com>" [full] # gpg: aka "Cornelia Huck <cohuck@kernel.org>" [unknown] # gpg: aka "Cornelia Huck <cohuck@redhat.com>" [unknown] # Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0 18CE DECF 6B93 C6F0 2FAF * remotes/cohuck-gitlab/tags/s390x-20210305: target/s390x/kvm: Simplify debug code vfio-ccw: Do not read region ret_code after write css: SCHIB measurement block origin must be aligned virtio-ccw: commands on revision-less devices s390x/pci: restore missing Query PCI Function CLP data hw/s390x: fix build for virtio-9p-ccw target/s390x/arch_dump: Fix warning for the name field in the PT_NOTE section s390x/cpu_model: disallow unpack for --only-migratable Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
91e92cad67
8 changed files with 48 additions and 17 deletions
|
@ -40,7 +40,9 @@ virtio_ss.add(when: 'CONFIG_VIRTIO_NET', if_true: files('virtio-ccw-net.c'))
|
|||
virtio_ss.add(when: 'CONFIG_VIRTIO_RNG', if_true: files('virtio-ccw-rng.c'))
|
||||
virtio_ss.add(when: 'CONFIG_VIRTIO_SCSI', if_true: files('virtio-ccw-scsi.c'))
|
||||
virtio_ss.add(when: 'CONFIG_VIRTIO_SERIAL', if_true: files('virtio-ccw-serial.c'))
|
||||
virtio_ss.add(when: ['CONFIG_VIRTIO_9P', 'CONFIG_VIRTFS'], if_true: files('virtio-ccw-blk.c'))
|
||||
if have_virtfs
|
||||
virtio_ss.add(when: 'CONFIG_VIRTIO_9P', if_true: files('virtio-ccw-9p.c'))
|
||||
endif
|
||||
virtio_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-vsock-ccw.c'))
|
||||
virtio_ss.add(when: 'CONFIG_VHOST_USER_FS', if_true: files('vhost-user-fs-ccw.c'))
|
||||
s390x_ss.add_all(when: 'CONFIG_VIRTIO_CCW', if_true: virtio_ss)
|
||||
|
|
|
@ -284,10 +284,15 @@ int clp_service_call(S390CPU *cpu, uint8_t r2, uintptr_t ra)
|
|||
stq_p(&resquery->sdma, pbdev->zpci_fn.sdma);
|
||||
stq_p(&resquery->edma, pbdev->zpci_fn.edma);
|
||||
stw_p(&resquery->pchid, pbdev->zpci_fn.pchid);
|
||||
stw_p(&resquery->vfn, pbdev->zpci_fn.vfn);
|
||||
resquery->flags = pbdev->zpci_fn.flags;
|
||||
resquery->pfgid = pbdev->zpci_fn.pfgid;
|
||||
resquery->pft = pbdev->zpci_fn.pft;
|
||||
resquery->fmbl = pbdev->zpci_fn.fmbl;
|
||||
stl_p(&resquery->fid, pbdev->zpci_fn.fid);
|
||||
stl_p(&resquery->uid, pbdev->zpci_fn.uid);
|
||||
memcpy(resquery->pfip, pbdev->zpci_fn.pfip, CLP_PFIP_NR_SEGMENTS);
|
||||
memcpy(resquery->util_str, pbdev->zpci_fn.util_str, CLP_UTIL_STR_LEN);
|
||||
|
||||
for (i = 0; i < PCI_BAR_COUNT; i++) {
|
||||
uint32_t data = pci_get_long(pbdev->pdev->config +
|
||||
|
|
|
@ -327,13 +327,20 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
|
|||
ccw.cmd_code);
|
||||
check_len = !((ccw.flags & CCW_FLAG_SLI) && !(ccw.flags & CCW_FLAG_DC));
|
||||
|
||||
if (dev->force_revision_1 && dev->revision < 0 &&
|
||||
ccw.cmd_code != CCW_CMD_SET_VIRTIO_REV) {
|
||||
/*
|
||||
* virtio-1 drivers must start with negotiating to a revision >= 1,
|
||||
* so post a command reject for all other commands
|
||||
*/
|
||||
return -ENOSYS;
|
||||
if (dev->revision < 0 && ccw.cmd_code != CCW_CMD_SET_VIRTIO_REV) {
|
||||
if (dev->force_revision_1) {
|
||||
/*
|
||||
* virtio-1 drivers must start with negotiating to a revision >= 1,
|
||||
* so post a command reject for all other commands
|
||||
*/
|
||||
return -ENOSYS;
|
||||
} else {
|
||||
/*
|
||||
* If the driver issues any command that is not SET_VIRTIO_REV,
|
||||
* we'll have to operate the device in legacy mode.
|
||||
*/
|
||||
dev->revision = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Look at the command. */
|
||||
|
|
|
@ -104,9 +104,9 @@ again:
|
|||
goto again;
|
||||
}
|
||||
error_report("vfio-ccw: write I/O region failed with errno=%d", errno);
|
||||
ret = -errno;
|
||||
ret = errno ? -errno : -EFAULT;
|
||||
} else {
|
||||
ret = region->ret_code;
|
||||
ret = 0;
|
||||
}
|
||||
switch (ret) {
|
||||
case 0:
|
||||
|
@ -192,9 +192,9 @@ again:
|
|||
goto again;
|
||||
}
|
||||
error_report("vfio-ccw: write cmd region failed with errno=%d", errno);
|
||||
ret = -errno;
|
||||
ret = errno ? -errno : -EFAULT;
|
||||
} else {
|
||||
ret = region->ret_code;
|
||||
ret = 0;
|
||||
}
|
||||
switch (ret) {
|
||||
case 0:
|
||||
|
@ -232,9 +232,9 @@ again:
|
|||
goto again;
|
||||
}
|
||||
error_report("vfio-ccw: write cmd region failed with errno=%d", errno);
|
||||
ret = -errno;
|
||||
ret = errno ? -errno : -EFAULT;
|
||||
} else {
|
||||
ret = region->ret_code;
|
||||
ret = 0;
|
||||
}
|
||||
switch (ret) {
|
||||
case 0:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue