Hi Yi, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on awilliam-vfio/for-linus] [also build test WARNING on linus/master v6.2-rc6 next-20230203] [cannot apply to awilliam-vfio/next] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Yi-Liu/vfio-Update-the-kdoc-for-vfio_device_ops/20230203-163612 base: https://github.com/awilliam/linux-vfio.git for-linus patch link: https://lore.kernel.org/r/20230203083345.711443-3-yi.l.liu%40intel.com patch subject: [PATCH v2 2/2] docs: vfio: Update vfio.rst per latest interfaces reproduce: # https://github.com/intel-lab-lkp/linux/commit/8db2c0d3414387502a6c743d6fa383cec960e3ba git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Yi-Liu/vfio-Update-the-kdoc-for-vfio_device_ops/20230203-163612 git checkout 8db2c0d3414387502a6c743d6fa383cec960e3ba make menuconfig # enable CONFIG_COMPILE_TEST, CONFIG_WARN_MISSING_DOCUMENTS, CONFIG_WARN_ABI_ERRORS make htmldocs If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): >> Documentation/driver-api/vfio.rst:264: WARNING: Inline emphasis start-string without end-string. >> Documentation/driver-api/vfio.rst:296: WARNING: Literal block ends without a blank line; unexpected unindent. >> Documentation/driver-api/vfio.rst:305: WARNING: Unexpected indentation. >> Documentation/driver-api/vfio.rst:306: WARNING: Block quote ends without a blank line; unexpected unindent. vim +264 Documentation/driver-api/vfio.rst 263 > 264 vfio_alloc_device(dev_struct, member, dev, ops); 265 void vfio_put_device(struct vfio_device *device); 266 267 vfio_register_group_dev() indicates to the core to begin tracking the 268 iommu_group of the specified dev and register the dev as owned by a VFIO bus 269 driver. Once vfio_register_group_dev() returns it is possible for userspace to 270 start accessing the driver, thus the driver should ensure it is completely 271 ready before calling it. The driver provides an ops structure for callbacks 272 similar to a file operations structure:: 273 274 struct vfio_device_ops { 275 char *name; 276 int (*init)(struct vfio_device *vdev); 277 void (*release)(struct vfio_device *vdev); 278 int (*bind_iommufd)(struct vfio_device *vdev, 279 struct iommufd_ctx *ictx, u32 *out_device_id); 280 void (*unbind_iommufd)(struct vfio_device *vdev); 281 int (*attach_ioas)(struct vfio_device *vdev, u32 *pt_id); 282 int (*open_device)(struct vfio_device *vdev); 283 void (*close_device)(struct vfio_device *vdev); 284 ssize_t (*read)(struct vfio_device *vdev, char __user *buf, 285 size_t count, loff_t *ppos); 286 ssize_t (*write)(struct vfio_device *vdev, const char __user *buf, 287 size_t count, loff_t *size); 288 long (*ioctl)(struct vfio_device *vdev, unsigned int cmd, 289 unsigned long arg); 290 int (*mmap)(struct vfio_device *vdev, struct vm_area_struct *vma); 291 void (*request)(struct vfio_device *vdev, unsigned int count); 292 int (*match)(struct vfio_device *vdev, char *buf); 293 void (*dma_unmap)(struct vfio_device *vdev, u64 iova, u64 length); 294 int (*device_feature)(struct vfio_device *device, u32 flags, 295 void __user *arg, size_t argsz); > 296 }; 297 298 Each function is passed the vdev that was originally registered 299 in the vfio_register_group_dev() or vfio_register_emulated_iommu_dev() 300 call above. This allows the bus driver to obtain its private data using 301 container_of(). 302 - The init/release callbacks are issued when vfio_device is initialized 303 - and released. 304 - The open/close_device callbacks are issued when a new file descriptor is > 305 created for a device (via VFIO_GROUP_GET_DEVICE_FD). > 306 - The ioctl interface provides a direct pass through for VFIO_DEVICE_* ioctls. 307 - The [un]bind_iommufd callbacks are issued when the device is bound to 308 - and unbound from iommufd. 309 - The attach_ioas callback is issued when the device is attached to an IOAS 310 managed by the bound iommufd. The attached IOAS is automatically detached 311 when the device is unbound from the iommufd. 312 - The read/write/mmap interfaces implement the device region access defined by 313 the device's own VFIO_DEVICE_GET_REGION_INFO ioctl. 314 - The request callback is issued when device is going to be unregistered. 315 - The dma_unmap callback is issued when a range of iova's are unmapped in 316 the container or IOAS attached by the device. Drivers which care about 317 DMA unmap can implement this callback and must tolerate receiving unmap 318 notifications before the device is opened. 319 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests