diff options
| -rw-r--r-- | drivers/pci/pcie/aer.c | 15 | 
1 files changed, 9 insertions, 6 deletions
| diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c index ab99bc1b8542..5d62b82b5bc1 100644 --- a/drivers/pci/pcie/aer.c +++ b/drivers/pci/pcie/aer.c @@ -816,12 +816,15 @@ EXPORT_SYMBOL_NS_GPL(pci_print_aer, "CXL");   */  static int add_error_device(struct aer_err_info *e_info, struct pci_dev *dev)  { -	if (e_info->error_dev_num < AER_MAX_MULTI_ERR_DEVICES) { -		e_info->dev[e_info->error_dev_num] = pci_dev_get(dev); -		e_info->error_dev_num++; -		return 0; -	} -	return -ENOSPC; +	int i = e_info->error_dev_num; + +	if (i >= AER_MAX_MULTI_ERR_DEVICES) +		return -ENOSPC; + +	e_info->dev[i] = pci_dev_get(dev); +	e_info->error_dev_num++; + +	return 0;  }  /** | 
