Re: [PATCH 1/1] PCI/RCEC: Fix failure to inject errors to some RCiEP devices
From: 'Krzysztof Wilczyński'
Date: Thu Feb 18 2021 - 17:12:37 EST
Hi Qiuxu,
[...]
> > Agree to simplify the commit message. How about the following subject and commit message?
> >
> > Subject:
> > Use device number to check RCiEPBitmap of RCEC
> >
> > Commit message:
> > rcec_assoc_rciep() used the combination of device number and function
> > number 'devfn' to check whether the corresponding bit in the
> > RCiEPBimap of RCEC was set. According to [1], it only needs to use the
> > device number to check the corresponding bit in the RCiEPBitmap was
> > set. So fix it by using PCI_SLOT() to convert 'devfn' to device number
> > for rcec_assoc_rciep(). [1] PCIe r5.0, sec "7.9.10.2 Association
> > Bitmap for RCiEPs"
>
> I took your suggestion and came up with the following:
>
> Function rcec_assoc_rciep() incorrectly used "rciep->devfn" (a single
> byte encoding the device and function number) as the device number to
> check whether the corresponding bit was set in the RCiEPBitmap of the
> RCEC (Root Complex Event Collector) while enumerating over each bit of
> the RCiEPBitmap.
>
> As per the PCI Express Base Specification, Revision 5.0, Version 1.0,
> Section 7.9.10.2, "Association Bitmap for RCiEPs", p. 935, only needs to
> use a device number to check whether the corresponding bit was set in
> the RCiEPBitmap.
>
> Fix rcec_assoc_rciep() using the PCI_SLOT() macro and convert the value
> of "rciep->devfn" to a device number to ensure that the RCiEP devices
> are associated with the RCEC are linked when the RCEC is enumerated.
>
> Using either of the following as the subject:
>
> PCI/RCEC: Use device number to check RCiEPBitmap of RCEC
> PCI/RCEC: Fix RCiEP capable devices RCEC association
>
> What do you think? Also, feel free to change whatever you see fit, of
> course, as tis is only a suggestion.
We could probably add the following:
Fixes: 507b460f8144 ("PCI/ERR: Add pcie_link_rcec() to associate RCiEPs")
Since this would where the issue was originally introduced. I forgot to
mention this in the previous message, apologies.
Krzysztof