[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] xio3130_upstream: Add ACS (Access Control Services) capab
From: |
Michael S. Tsirkin |
Subject: |
Re: [PATCH v2] xio3130_upstream: Add ACS (Access Control Services) capability |
Date: |
Tue, 16 Aug 2022 06:10:56 -0400 |
On Tue, Aug 16, 2022 at 05:16:38PM +0800, Paul Schlacter wrote:
> v1 -> v2:
> - Allow ACS to be disabled.
> - Suggested by Michael S. Tsirkin, use disable-acs to set property.
>
> v1:
> - Add ACS (Access Control Services) capability.
changelog generally after ---
>
> If it is a pcie device, check that all devices on the path from
Hmm I don't see any checks on a path. what does this refer to?
>
> the device to the root complex have ACS enabled, and then the
>
> device will become an iommu_group.
>
> it will have the effect of isolation
>
>
>
> Signed-off-by: wangliang <wlfightup@gmail.com>
>
> Signed-off-by: wangliang <wangliang40@baidu.com>
>
why two signatures?
>
> ---
>
> hw/pci-bridge/xio3130_upstream.c | 12 +++++++++++-
>
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
Patch has corrupted whitespace.
>
> diff --git a/hw/pci-bridge/xio3130_upstream.c b/hw/pci-bridge/
> xio3130_upstream.c
>
> index 2df952222b..5433d06fb3 100644
>
> --- a/hw/pci-bridge/xio3130_upstream.c
>
> +++ b/hw/pci-bridge/xio3130_upstream.c
>
> @@ -24,6 +24,7 @@
>
> #include "hw/pci/msi.h"
>
> #include "hw/pci/pcie.h"
>
> #include "hw/pci/pcie_port.h"
>
> +#include "hw/qdev-properties.h"
>
> #include "migration/vmstate.h"
>
> #include "qemu/module.h"
>
>
>
> @@ -59,6 +60,7 @@ static void xio3130_upstream_reset(DeviceState *qdev)
>
> static void xio3130_upstream_realize(PCIDevice *d, Error **errp)
>
> {
>
> PCIEPort *p = PCIE_PORT(d);
>
> + PCIESlot *s = PCIE_SLOT(d);
>
> int rc;
>
>
>
> pci_bridge_initfn(d, TYPE_PCIE_BUS);
>
> @@ -94,7 +96,9 @@ static void xio3130_upstream_realize(PCIDevice *d, Error
> **errp)
>
> goto err;
>
> }
>
>
>
> - pcie_acs_init(d, XIO3130_ACS_OFFSET);
>
> + if (!s->disable_acs) {
>
> + pcie_acs_init(d, XIO3130_ACS_OFFSET);
>
> + }
>
> return;
>
>
>
> err:
>
> @@ -113,6 +117,11 @@ static void xio3130_upstream_exitfn(PCIDevice *d)
>
> pci_bridge_exitfn(d);
>
> }
>
>
>
> +static Property xio3130_upstream_props[] = {
>
> + DEFINE_PROP_BOOL("disable-acs", PCIESlot, disable_acs, false),
>
> + DEFINE_PROP_END_OF_LIST()
>
> +};
>
> +
I'd say prefix the property with "x-".
>
> static const VMStateDescription vmstate_xio3130_upstream = {
>
> .name = "xio3130-express-upstream-port",
>
> .priority = MIG_PRI_PCI_BUS,
>
> @@ -142,6 +151,7 @@ static void xio3130_upstream_class_init(ObjectClass
> *klass,
> void *data)
>
> dc->desc = "TI X3130 Upstream Port of PCI Express Switch";
>
> dc->reset = xio3130_upstream_reset;
>
> dc->vmsd = &vmstate_xio3130_upstream;
>
> + device_class_set_props(dc, xio3130_upstream_props);
>
> }
>
Seems to lack compat machinety for existing machine types.
>
>
> static const TypeInfo xio3130_upstream_info = {
>
> --
>
> 2.24.3 (Apple Git-128)
>