Re: [PATCH v6 16/21] vfio-pci/zdev: add open/close device hooks

From: Jason Gunthorpe
Date: Wed Apr 27 2022 - 10:04:20 EST


On Tue, Apr 26, 2022 at 04:08:37PM -0400, Matthew Rosato wrote:

> +static int vfio_pci_zdev_group_notifier(struct notifier_block *nb,
> + unsigned long action, void *data)
> +{
> + struct zpci_dev *zdev = container_of(nb, struct zpci_dev, nb);
> + int (*fn)(struct zpci_dev *zdev, struct kvm *kvm);
> + int rc = NOTIFY_OK;
> +
> + if (action == VFIO_GROUP_NOTIFY_SET_KVM) {
> + if (!zdev)
> + return NOTIFY_DONE;
> +
> + fn = symbol_get(kvm_s390_pci_register_kvm);
> + if (!fn)
> + return NOTIFY_DONE;
> +
> + if (fn(zdev, (struct kvm *)data))
> + rc = NOTIFY_BAD;
> +
> + symbol_put(kvm_s390_pci_register_kvm);

Is it possible this function can be in statically linked arch code?

Or, actually, is zPCI useful anyhow without kvm ie can you just have a
direct dependency here?

Jason