From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kirti Wankhede Subject: Re: [RFC PATCH v4 1/3] Mediated device Core driver Date: Mon, 6 Jun 2016 10:57:49 +0530 Message-ID: <799479b0-44d5-061f-185a-43df0dba2fb3@nvidia.com> References: <1464119897-10844-1-git-send-email-kwankhede@nvidia.com> <1464119897-10844-2-git-send-email-kwankhede@nvidia.com> <20160603165746.3df39542@oc7835276234> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Cc: , , , , , , , , , To: Dong Jia Return-path: Received: from hqemgate15.nvidia.com ([216.228.121.64]:15641 "EHLO hqemgate15.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751449AbcFFF2H (ORCPT ); Mon, 6 Jun 2016 01:28:07 -0400 In-Reply-To: <20160603165746.3df39542@oc7835276234> Sender: kvm-owner@vger.kernel.org List-ID: On 6/3/2016 2:27 PM, Dong Jia wrote: > On Wed, 25 May 2016 01:28:15 +0530 > Kirti Wankhede wrote: > > > ...snip... > >> +struct phy_device_ops { >> + struct module *owner; >> + const struct attribute_group **dev_attr_groups; >> + const struct attribute_group **mdev_attr_groups; >> + >> + int (*supported_config)(struct device *dev, char *config); >> + int (*create)(struct device *dev, uuid_le uuid, >> + uint32_t instance, char *mdev_params); >> + int (*destroy)(struct device *dev, uuid_le uuid, >> + uint32_t instance); >> + int (*start)(uuid_le uuid); >> + int (*shutdown)(uuid_le uuid); >> + ssize_t (*read)(struct mdev_device *vdev, char *buf, size_t count, >> + enum mdev_emul_space address_space, loff_t pos); >> + ssize_t (*write)(struct mdev_device *vdev, char *buf, size_t count, >> + enum mdev_emul_space address_space, loff_t pos); >> + int (*set_irqs)(struct mdev_device *vdev, uint32_t flags, >> + unsigned int index, unsigned int start, >> + unsigned int count, void *data); >> + int (*get_region_info)(struct mdev_device *vdev, int region_index, >> + struct pci_region_info *region_info); >> + int (*validate_map_request)(struct mdev_device *vdev, >> + unsigned long virtaddr, >> + unsigned long *pfn, unsigned long *size, >> + pgprot_t *prot); >> +}; > > Dear Kirti: > > When I rebased my vfio-ccw patches on this series, I found I need an > extra 'ioctl' callback in phy_device_ops. > Thanks for taking closer look. As per my knowledge ccw is not PCI device, right? Correct me if I'm wrong. I'm curious to know. Are you planning to write a driver (vfio-mccw) for mediated ccw device? Thanks, Kirti > The ccw physical device only supports one ccw mediated device. And I > have two new ioctl commands for the ccw mediated device. One is > to hot-reset the resource in the physical device that allocated for > the mediated device, the other is to do an I/O instruction translation > and perform an I/O operation on the physical device. I found the > existing callbacks could not meet my requirements. > > Something like the following would be fine for my case: > int (*ioctl)(struct mdev_device *vdev, > unsigned int cmd, > unsigned long arg); > > What do you think about this? > > -------- > Dong Jia >