Re: [PATCH v5 15/21] KVM: s390: pci: add routines to start/stop interpretive execution

From: Matthew Rosato
Date: Tue Apr 12 2022 - 09:22:30 EST


On 4/8/22 8:47 AM, Jason Gunthorpe wrote:
On Mon, Apr 04, 2022 at 01:43:43PM -0400, Matthew Rosato wrote:
+int kvm_s390_pci_register_kvm(struct device *dev, void *data)
+{
+ struct zpci_dev *zdev = NULL;
+ struct kvm *kvm = data;
+
+ /* Only proceed for zPCI devices, quietly ignore others */
+ if (dev_is_pci(dev))
+ zdev = to_zpci_dev(dev);
+ if (!zdev)
+ return 0;

Especially since this only works if we have zpci device

So having the zpci code hook the kvm notifier and then call the arch
code from the zpci area seems pretty OK

Also why is a struct kvm * being passed as a void *?

Only because the function is intended to be called via iommu_group_for_each_dev (next patch) which requires int (*fn)(struct device *, void *)