Re: [PATCH v3 1/2] cxl: Add mechanism for delivering AFU driver specific events
From: Andrew Donnellan <hidden>
Date: 2016-03-08 08:01:08
Also in:
lkml
On 08/03/16 12:48, Ian Munsie wrote:
From: Ian Munsie <redacted> This adds an afu_driver_ops structure with event_pending and deliver_event callbacks. An AFU driver such as cxlflash can fill these out and associate it with a context to enable passing custom AFU specific events to userspace. The cxl driver will call event_pending() during poll, select, read, etc. calls to check if an AFU driver specific event is pending, and will call deliver_event() to deliver that event. This way, the cxl driver takes care of all the usual locking semantics around these calls and handles all the generic cxl events, so that the AFU driver only needs to worry about it's own events. The deliver_event() call is passed a struct cxl_event buffer to fill in. The header will already be filled in for an AFU driver event, and the AFU driver is expected to expand the header.size as necessary (up to max_size, defined by struct cxl_event_afu_driver_reserved) and fill out it's own information. Since AFU drivers provide their own means for userspace to obtain the AFU file descriptor (i.e. cxlflash uses an ioctl on their scsi file descriptor to obtain the AFU file descriptor) and the generic cxl driver will never use this event, the ABI of the event is up to each individual AFU driver. Signed-off-by: Ian Munsie <redacted>
Reviewed-by: Andrew Donnellan <redacted> -- Andrew Donnellan Software Engineer, OzLabs andrew.donnellan@au1.ibm.com Australia Development Lab, Canberra +61 2 6201 8874 (work) IBM Australia Limited