diff options
Diffstat (limited to 'drivers/fpga/dfl.c')
| -rw-r--r-- | drivers/fpga/dfl.c | 14 | 
1 files changed, 8 insertions, 6 deletions
| diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c index c99b78ee008a..f86666cf2c6a 100644 --- a/drivers/fpga/dfl.c +++ b/drivers/fpga/dfl.c @@ -1019,16 +1019,18 @@ create_feature_instance(struct build_feature_devs_info *binfo,  {  	unsigned int irq_base, nr_irqs;  	struct dfl_feature_info *finfo; +	u8 revision = 0;  	int ret; -	u8 revision;  	u64 v; -	v = readq(binfo->ioaddr + ofst); -	revision = FIELD_GET(DFH_REVISION, v); +	if (fid != FEATURE_ID_AFU) { +		v = readq(binfo->ioaddr + ofst); +		revision = FIELD_GET(DFH_REVISION, v); -	/* read feature size and id if inputs are invalid */ -	size = size ? size : feature_size(v); -	fid = fid ? fid : feature_id(v); +		/* read feature size and id if inputs are invalid */ +		size = size ? size : feature_size(v); +		fid = fid ? fid : feature_id(v); +	}  	if (binfo->len - ofst < size)  		return -EINVAL; |