-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fpga: dfl: fix the kernel warning when release/assign ports for SRIOV
The dfl ports are registered as platform devices in PF mode. The port device should be removed from host when the user wants to configure the port as VF and pass through to VM. The FME dev ioctls DFL_FPGA_FME_PORT_RELEASE/ASSIGN are designed for this purpose. In previous implementation, the port platform device is not completely destroyed on port release. It is removed from system by platform_device_del(), but the platform device instance is retained. When the port assign ioctl is called, it is added back by platform_device_add(). It conflicts to the comments of device_add(): "Do not call this routine more than once for any device structure", and will cause kernel warning at runtime. The patch tries to completely unregisters the port platform device on release and registers a new one on assign. But the main work is to remove the dependency of struct dfl_feature_platform_data for many internal DFL APIs. This structure holds many DFL enumeration info for feature devices. Many DFL APIs are expected to work with these info even when the port platform device is unregistered. But with the change the platform_data will be freed in this case. So this patch introduced a new structure dfl_feature_dev_data for these APIs, it acts similarly as the previous dfl_feature_platform_data. The dfl_feature_platform_data then only needs a pointer this dfl_feature_dev_data to make feature device driver work. Signed-off-by: Xu Yilun <yilun.xu@intel.com> Signed-off-by: Russ Weight <russell.h.weight@intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
- Loading branch information
1 parent
0e27804
commit 320679c
Showing
11 changed files
with
698 additions
and
655 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.