> > Signed-off-by: Matthew Gerlach <matthew.gerlach@xxxxxxxxxxxxxxx> > Signed-off-by: Tianfei zhang <tianfei.zhang@xxxxxxxxx> > --- > drivers/fpga/dfl.c | 10 ++++++---- > drivers/fpga/dfl.h | 2 ++ > 2 files changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c > index 712c53363fda..b95b29c5c81d 100644 > --- a/drivers/fpga/dfl.c > +++ b/drivers/fpga/dfl.c > @@ -1707,11 +1707,13 @@ int dfl_fpga_cdev_config_ports_vf(struct > dfl_fpga_cdev *cdev, int num_vfs) > > mutex_lock(&cdev->lock); > /* > - * can't turn multiple ports into 1 VF device, only 1 port for 1 VF > - * device, so if released port number doesn't match VF device number, > - * then reject the request with -EINVAL error code. > + * In the OFS legacy model, it can't turn multiple ports into 1 VF > + * device, because only 1 port conneced to 1 VF device, so if released > + * port number doesn't match VF device number, then reject the request > + * with -EINVAL error code. > */ > - if (cdev->released_port_num != num_vfs) { > + if ((dfl_has_port_connected_afu(cdev) && Could we really use this as indication for which SRIOV model of hardware? > + cdev->released_port_num != num_vfs)) { > ret = -EINVAL; > goto done; > } > diff --git a/drivers/fpga/dfl.h b/drivers/fpga/dfl.h > index bc56b7e8c01b..83c2c50975e5 100644 > --- a/drivers/fpga/dfl.h > +++ b/drivers/fpga/dfl.h > @@ -471,6 +471,8 @@ void dfl_fpga_enum_info_free(struct > dfl_fpga_enum_info *info); > #define DFL_PORT_CONNECT_BITS MAX_DFL_FPGA_PORT_NUM > #define DFL_FEAT_PORT_CONNECT_MASK ((1UL << > (DFL_PORT_CONNECT_BITS)) - 1) > > +#define dfl_has_port_connected_afu(cdev) ((cdev)->flags & > DFL_FEAT_PORT_CONNECT_MASK) > + > /** > * struct dfl_fpga_cdev - container device of DFL based FPGA > * > -- > 2.26.2