On Mon, Sep 20, 2021 at 08:02:29PM +0200, Cornelia Huck wrote: > On Thu, Sep 09 2021, Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > > > Many of the mdev drivers use a simple counter for keeping track of the > > available instances. Move this code to the core code and store the counter > > in the mdev_type. Implement it using correct locking, fixing mdpy. > > > > Drivers provide a get_available() callback to set the number of available > > instances for their mtypes which is fixed at registration time. The core > > provides a standard sysfs attribute to return the available_instances. > > So, according to the documentation, available_instances is > mandatory. This means that drivers either need to provide get_available > or implement their own version of the attribute. I think we want to > update vfio-mediated-device.rst as well? I added this, and something similar for the device_api patch too, thanks diff --git a/Documentation/driver-api/vfio-mediated-device.rst b/Documentation/driver-api/vfio-mediated-device.rst index 9f26079cacae35..0a130d76b33a48 100644 --- a/Documentation/driver-api/vfio-mediated-device.rst +++ b/Documentation/driver-api/vfio-mediated-device.rst @@ -106,6 +106,7 @@ structure to represent a mediated device's driver:: int (*probe) (struct mdev_device *dev); void (*remove) (struct mdev_device *dev); struct device_driver driver; + unsigned int (*get_available)(struct mdev_type *mtype); }; A mediated bus driver for mdev should use this structure in the function calls @@ -230,7 +231,8 @@ Directories and files under the sysfs for Each Physical Device * available_instances This attribute should show the number of devices of type <type-id> that can be - created. + created. Drivers can supply a get_availble() function pointer to have the core + code create and maintain this sysfs automatically. * [device]