On Fri, Apr 24, 2020 at 05:11:44PM +0800, Yicong Yang wrote: > On 2020/4/24 14:02, Saheed Bolarinwa wrote: > > On 4/24/20 12:38 AM, Bjorn Helgaas wrote: > >> On Thu, Apr 23, 2020 at 07:55:17PM +0800, Yicong Yang wrote: > >>> BTW, pci_{read, write}_config_*() may also have the issues that > >>> export the private err code outside. You may want to solve these in > >>> a series along with this patch. > >> > >> If you see a specific issue, please point it out. > > arch/x86/platform/intel/iosf_mbi.c, iosf_mbi_pci_read_mdr(): > result = pci_read_config_dword(mbi_pdev, MBI_MDR_OFFSET, mdr); > if (result < 0) > goto fail_read; > return 0; > fail_read: > dev_err(&mbi_pdev->dev, "PCI config access failed with %d\n", result); > return result; This is a problem in the caller, not in pci_read_config*(). This caller is definitely broken, but fixing it is material for other patches, not the current effort to align pcie_capability_read*() and pci_read_config*(). > >> I looked at pci_read_config_word(), and it can return > >> PCIBIOS_DEVICE_NOT_FOUND, PCIBIOS_BAD_REGISTER_NUMBER, or the return > >> value from bus->ops->read(). > >> > >> I looked at all the users of PCIBIOS_*. There's really no interesting > >> use of any of them except by pcibios_err_to_errno() and > >> xen_pcibios_err_to_errno(), so I'm not sure it's even worth keeping > >> them. > > maybe we can mark them as deprecated. I can send a RFC one to do so. Let's put this on a list for later. I want to make sure this first effort is successful before throwing more stuff into the mix. Bjorn