• Vaibhav Jain's avatar
    cxl: Implement an ioctl to fetch afu card-id, offset-id and mode · 27d4dc71
    Vaibhav Jain authored
    Given a file descriptor on an afu device, libcxl currently uses the
    major/minor number obtained from fstat on the fd to construct path to
    the afu's sysfs directory. However it is possible that rather than using
    one of the device in /dev/cxl, a kernel driver creates its own device
    which export generic cxl interface to the userspace. This causes
    problems with libcxl as it tries to use a wrong major/minor number to
    construct the sysfs path and fail.
    
    So this patch introduces a new ioctl called CXL_IOCTL_GET_AFU_ID on the
    afu file descriptor to fetch the cxl_afu_id struct that holds the
    card/offset-id and mode information. These info is then used by libcxl to
    construct the correct path to the afu sysfs directory.
    
    Testing:
    	- Build against pseries be/le configs
    	- Testing with corresponding libcxl changes to verify that it constructs
    	  right sysfs path to the afu.
    Signed-off-by: default avatarVaibhav Jain <vaibhav@linux.vnet.ibm.com>
    Acked-by: default avatarIan Munsie <imunsie@au1.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    27d4dc71
file.c 13.9 KB