s390x/pci: indicate QEMU supports relaxed translation for passthrough
Specifying this bit in the guest CLP response indicates that the guest can optionally choose to skip translation and instead use identity-mapped operations. Tested-by: Niklas Schnelle <schnelle@linux.ibm.com> Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> Message-ID: <20250226210013.238349-3-mjrosato@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
dfcee1ea4c
commit
d9b5dfc712
@ -238,8 +238,11 @@ static void s390_pci_read_group(S390PCIBusDevice *pbdev,
|
|||||||
pbdev->pci_group = s390_group_create(pbdev->zpci_fn.pfgid, start_gid);
|
pbdev->pci_group = s390_group_create(pbdev->zpci_fn.pfgid, start_gid);
|
||||||
|
|
||||||
resgrp = &pbdev->pci_group->zpci_group;
|
resgrp = &pbdev->pci_group->zpci_group;
|
||||||
|
if (pbdev->rtr_avail) {
|
||||||
|
resgrp->fr |= CLP_RSP_QPCIG_MASK_RTR;
|
||||||
|
}
|
||||||
if (cap->flags & VFIO_DEVICE_INFO_ZPCI_FLAG_REFRESH) {
|
if (cap->flags & VFIO_DEVICE_INFO_ZPCI_FLAG_REFRESH) {
|
||||||
resgrp->fr = 1;
|
resgrp->fr |= CLP_RSP_QPCIG_MASK_REFRESH;
|
||||||
}
|
}
|
||||||
resgrp->dasm = cap->dasm;
|
resgrp->dasm = cap->dasm;
|
||||||
resgrp->msia = cap->msi_addr;
|
resgrp->msia = cap->msi_addr;
|
||||||
|
@ -158,6 +158,7 @@ typedef struct ClpRspQueryPciGrp {
|
|||||||
#define CLP_RSP_QPCIG_MASK_NOI 0xfff
|
#define CLP_RSP_QPCIG_MASK_NOI 0xfff
|
||||||
uint16_t i;
|
uint16_t i;
|
||||||
uint8_t version;
|
uint8_t version;
|
||||||
|
#define CLP_RSP_QPCIG_MASK_RTR 0x20
|
||||||
#define CLP_RSP_QPCIG_MASK_FRAME 0x2
|
#define CLP_RSP_QPCIG_MASK_FRAME 0x2
|
||||||
#define CLP_RSP_QPCIG_MASK_REFRESH 0x1
|
#define CLP_RSP_QPCIG_MASK_REFRESH 0x1
|
||||||
uint8_t fr;
|
uint8_t fr;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user