WSL2-Linux-Kernel/drivers/dma
Bolarinwa Olayemi Saheed d20df83b66 PCI: Convert PCIe capability PCIBIOS errors to errno
The PCI config accessors (pci_read_config_word(), et al) return
PCIBIOS_SUCCESSFUL (zero) or positive error values like
PCIBIOS_FUNC_NOT_SUPPORTED.

The PCIe capability accessors (pcie_capability_read_word(), et al)
similarly return PCIBIOS errors, but some callers assume they return
generic errno values like -EINVAL.

For example, the Myri-10G probe function returns a positive PCIBIOS error
if the pcie_capability_clear_and_set_word() in pcie_set_readrq() fails:

  myri10ge_probe
    status = pcie_set_readrq
      return pcie_capability_clear_and_set_word
    if (status)
      return status

A positive return from a PCI driver probe function would cause a "Driver
probe function unexpectedly returned" warning from local_pci_probe()
instead of the desired probe failure.

Convert PCIBIOS errors to generic errno for all callers of:

  pcie_capability_read_word
  pcie_capability_read_dword
  pcie_capability_write_word
  pcie_capability_write_dword
  pcie_capability_set_word
  pcie_capability_set_dword
  pcie_capability_clear_word
  pcie_capability_clear_dword
  pcie_capability_clear_and_set_word
  pcie_capability_clear_and_set_dword

that check the return code for anything other than zero.

[bhelgaas: commit log, squash together]
Suggested-by: Bjorn Helgaas <bjorn@helgaas.com>
Link: https://lore.kernel.org/r/20200615073225.24061-1-refactormyself@gmail.com
Signed-off-by: Bolarinwa Olayemi Saheed <refactormyself@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2020-06-26 13:50:09 -05:00
..
bestcomm
dw
dw-axi-dmac
dw-edma dmaengine: dw-edma: support local dma device transfer semantics 2020-05-04 14:24:27 +05:30
fsl-dpaa2-qdma dmaengine: fsl-dpaa2-qdma: remove set but not used variable 'dpaa2_qdma' 2020-03-06 19:04:55 +05:30
hsu
idxd dmaengine updates for v5.8-rc1 2020-06-10 11:03:04 -07:00
ioat PCI: Convert PCIe capability PCIBIOS errors to errno 2020-06-26 13:50:09 -05:00
ipu
mediatek treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
ppc4xx dmaengine: ppc4xx: Use scnprintf() for avoiding potential buffer overflow 2020-03-11 15:10:45 +05:30
qcom treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
sf-pdma dmaengine: sf-pdma: Simplify the error handling path in 'sf_pdma_probe()' 2020-05-13 17:07:50 +05:30
sh dmaengine: fix spelling mistake "exceds" -> "exceeds" 2020-03-23 11:39:49 +05:30
ti dmaengine updates for v5.8-rc1 2020-06-10 11:03:04 -07:00
xilinx dmaengine: zynqmp_dma: Move list_del inside zynqmp_dma_free_descriptor. 2020-05-15 11:21:11 +05:30
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile dmaengine: uniphier-xdmac: Add UniPhier external DMA controller driver 2020-03-02 14:54:34 +05:30
TODO
acpi-dma.c
altera-msgdma.c
amba-pl08x.c
at_hdmac.c dmaengine: at_hdmac: Fix deadlocks 2020-02-25 11:27:27 +05:30
at_hdmac_regs.h dmaengine: at_hdmac: Replace zero-length array with flexible-array 2020-05-13 20:25:16 +05:30
at_xdmac.c dmaengine: at_xdmac: Replace zero-length array with flexible-array 2020-05-13 20:25:41 +05:30
bcm-sba-raid.c dmaengine: bcm-sba-raid: Replace zero-length array with flexible-array member 2020-02-13 20:15:35 +05:30
bcm2835-dma.c
coh901318.c dmaengine: coh901318: Fix a double lock bug in dma_tc_handle() 2020-02-24 21:59:45 +05:30
coh901318.h
coh901318_lli.c
dma-axi-dmac.c
dma-jz4780.c
dmaengine.c dmaengine updates for v5.8-rc1 2020-06-10 11:03:04 -07:00
dmaengine.h dmaengine: Create debug directories for DMA devices 2020-03-11 14:56:14 +05:30
dmatest.c dmaengine updates for v5.8-rc1 2020-06-10 11:03:04 -07:00
ep93xx_dma.c
fsl-edma-common.c
fsl-edma-common.h
fsl-edma.c
fsl-qdma.c
fsl_raid.c
fsl_raid.h
fsldma.c
fsldma.h
hisi_dma.c
idma64.c
idma64.h
img-mdc-dma.c
imx-dma.c
imx-sdma.c dmaengine: imx-sdma: initialize all script addresses 2020-05-15 12:31:06 +05:30
iop-adma.c
iop-adma.h
k3dma.c
lpc18xx-dmamux.c
mcf-edma.c
mic_x100_dma.c
mic_x100_dma.h
milbeaut-hdmac.c
milbeaut-xdmac.c
mmp_pdma.c
mmp_tdma.c dmaengine updates for v5.8-rc1 2020-06-10 11:03:04 -07:00
moxart-dma.c dmaengine: moxart-dma: Drop pointless static qualifier in moxart_probe() 2020-05-13 17:33:17 +05:30
mpc512x_dma.c
mv_xor.c
mv_xor.h
mv_xor_v2.c
mxs-dma.c
nbpfaxi.c
of-dma.c
owl-dma.c dmaengine: owl: Use correct lock in owl_dma_get_pchan() 2020-05-04 14:25:06 +05:30
pch_dma.c dmaengine: pch_dma.c: Avoid data race between probe and irq handler 2020-04-23 11:47:16 +05:30
pl330.c
plx_dma.c
pxa_dma.c
s3c24xx-dma.c
sa11x0-dma.c dmaengine: sa11x0: Replace zero-length array with flexible-array member 2020-02-19 17:48:40 +05:30
sirf-dma.c
sprd-dma.c dmaengine: sprd: Set request pending flag when DMA controller is active 2020-03-23 11:38:24 +05:30
st_fdma.c
st_fdma.h
ste_dma40.c
ste_dma40_ll.c
ste_dma40_ll.h
stm32-dma.c dmaengine: stm32-dma: direct mode support through device tree 2020-04-27 21:40:12 +05:30
stm32-dmamux.c dmaengine: stm32-dmamux: driver defers probe for clock and reset 2020-02-24 22:22:44 +05:30
stm32-mdma.c dmaengine: stm32-mdma: use vchan_terminate_vdesc() in .terminate_all 2020-02-24 22:20:01 +05:30
sun4i-dma.c dmaengine: sun4i: set the linear_mode properly 2020-02-17 12:21:08 +05:30
sun6i-dma.c
tegra20-apb-dma.c dmaengine: tegra-apb: Ensure that clock is enabled during of DMA synchronization 2020-04-27 21:35:35 +05:30
tegra210-adma.c dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()' 2020-05-19 22:26:01 +05:30
timb_dma.c
txx9dmac.c
txx9dmac.h
uniphier-mdmac.c dmaengine: uniphier-mdmac: replace zero-length array with flexible-array member 2020-02-13 20:15:57 +05:30
uniphier-xdmac.c dmaengine: uniphier-xdmac: Remove redandant error log for platform_get_irq 2020-03-26 12:22:56 +05:30
virt-dma.c
virt-dma.h
xgene-dma.c
zx_dma.c