|
From: | Cédric Le Goater |
Subject: | Re: [PATCH v6 11/19] backends/iommufd: Implement HostIOMMUDeviceClass::get_cap() handler |
Date: | Mon, 3 Jun 2024 14:35:04 +0200 |
User-agent: | Mozilla Thunderbird |
On 6/3/24 13:32, Eric Auger wrote:
On 6/3/24 08:10, Zhenzhong Duan wrote:Suggested-by: Cédric Le Goater <[email protected]> Signed-off-by: Zhenzhong Duan <[email protected]> --- backends/iommufd.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/backends/iommufd.c b/backends/iommufd.c index c7e969d6f7..f2f7a762a0 100644 --- a/backends/iommufd.c +++ b/backends/iommufd.c @@ -230,6 +230,28 @@ bool iommufd_backend_get_device_info(IOMMUFDBackend *be, uint32_t devid, return true; }+static int hiod_iommufd_get_cap(HostIOMMUDevice *hiod, int cap, Error **errp)+{ + HostIOMMUDeviceCaps *caps = &hiod->caps; + + switch (cap) { + case HOST_IOMMU_DEVICE_CAP_IOMMU_TYPE: + return caps->type; + case HOST_IOMMU_DEVICE_CAP_AW_BITS: + return caps->aw_bits; + default: + error_setg(errp, "Not support get cap %x", cap);can't you add details about the faulting HostIOMMUDevice by tracing the devid for instance?
yes.
I would rephrase the error message into No support for capability 0x%x
I was going to propose "Unsupported capability ..." Thanks, C.
Eric+ return -EINVAL; + } +} + +static void hiod_iommufd_class_init(ObjectClass *oc, void *data) +{ + HostIOMMUDeviceClass *hioc = HOST_IOMMU_DEVICE_CLASS(oc); + + hioc->get_cap = hiod_iommufd_get_cap; +}; + static const TypeInfo types[] = { { .name = TYPE_IOMMUFD_BACKEND, @@ -246,6 +268,7 @@ static const TypeInfo types[] = { }, { .name = TYPE_HOST_IOMMU_DEVICE_IOMMUFD, .parent = TYPE_HOST_IOMMU_DEVICE, + .class_init = hiod_iommufd_class_init, .abstract = true, } };
[Prev in Thread] | Current Thread | [Next in Thread] |