diff options
| author | Jason Gunthorpe <jgg@nvidia.com> | 2021-04-06 16:40:27 -0300 | 
|---|---|---|
| committer | Alex Williamson <alex.williamson@redhat.com> | 2021-04-07 15:39:16 -0600 | 
| commit | 91b9969d9c6bb7c02253bbfc536bfd892f636fdc (patch) | |
| tree | db6bbb6639ffa0c14f8dae99463064417ea90d56 /include | |
| parent | 2a3d15f270efa50d78d8a32d895e9d5396668f3a (diff) | |
vfio/mdev: Simplify driver registration
This is only done once, we don't need to generate code to initialize a
structure stored in the ELF .data segment. Fill in the three required
.driver members directly instead of copying data into them during
mdev_register_driver().
Further the to_mdev_driver() function doesn't belong in a public header,
just inline it into the two places that need it. Finally, we can now
clearly see that 'drv' derived from dev->driver cannot be NULL, firstly
because the driver core forbids it, and secondly because NULL won't pass
through the container_of(). Remove the dead code.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Message-Id: <4-v2-d36939638fc6+d54-vfio2_jgg@nvidia.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/mdev.h | 6 | 
1 files changed, 1 insertions, 5 deletions
diff --git a/include/linux/mdev.h b/include/linux/mdev.h index 52f7ea19dd0f..cb771c712da0 100644 --- a/include/linux/mdev.h +++ b/include/linux/mdev.h @@ -137,21 +137,17 @@ struct mdev_type_attribute mdev_type_attr_##_name =		\  /**   * struct mdev_driver - Mediated device driver - * @name: driver name   * @probe: called when new device created   * @remove: called when device removed   * @driver: device driver structure   *   **/  struct mdev_driver { -	const char *name;  	int (*probe)(struct mdev_device *dev);  	void (*remove)(struct mdev_device *dev);  	struct device_driver driver;  }; -#define to_mdev_driver(drv)	container_of(drv, struct mdev_driver, driver) -  static inline void *mdev_get_drvdata(struct mdev_device *mdev)  {  	return mdev->driver_data; @@ -170,7 +166,7 @@ extern struct bus_type mdev_bus_type;  int mdev_register_device(struct device *dev, const struct mdev_parent_ops *ops);  void mdev_unregister_device(struct device *dev); -int mdev_register_driver(struct mdev_driver *drv, struct module *owner); +int mdev_register_driver(struct mdev_driver *drv);  void mdev_unregister_driver(struct mdev_driver *drv);  struct device *mdev_parent_dev(struct mdev_device *mdev);  | 
