Message ID | 20240527132443.14038-1-ilpo.jarvinen@linux.intel.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/2] mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos | expand |
On 27/05/24 16:24, Ilpo Järvinen wrote: > jmicron_pmos() and sdhci_pci_probe() use pci_{read,write}_config_byte() > that return PCIBIOS_* codes. The return code is then returned as is by > jmicron_probe() and sdhci_pci_probe(). Similarly, the return code is > also returned as is from jmicron_resume(). Both probe and resume > functions should return normal errnos. > > Convert PCIBIOS_* returns code using pcibios_err_to_errno() into normal > errno before returning them the fix these issues. > > Fixes: 7582041ff3d4 ("mmc: sdhci-pci: fix simple_return.cocci warnings") > Fixes: 45211e215984 ("sdhci: toggle JMicron PMOS setting") > Cc: stable@vger.kernel.org > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> > --- > drivers/mmc/host/sdhci-pci-core.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c > index ef89ec382bfe..23e6ba70144c 100644 > --- a/drivers/mmc/host/sdhci-pci-core.c > +++ b/drivers/mmc/host/sdhci-pci-core.c > @@ -1326,7 +1326,7 @@ static int jmicron_pmos(struct sdhci_pci_chip *chip, int on) > > ret = pci_read_config_byte(chip->pdev, 0xAE, &scratch); > if (ret) > - return ret; > + goto fail; > > /* > * Turn PMOS on [bit 0], set over current detection to 2.4 V > @@ -1337,7 +1337,10 @@ static int jmicron_pmos(struct sdhci_pci_chip *chip, int on) > else > scratch &= ~0x47; > > - return pci_write_config_byte(chip->pdev, 0xAE, scratch); > + ret = pci_write_config_byte(chip->pdev, 0xAE, scratch); > + > +fail: > + return pcibios_err_to_errno(ret); > } > > static int jmicron_probe(struct sdhci_pci_chip *chip) > @@ -2202,7 +2205,7 @@ static int sdhci_pci_probe(struct pci_dev *pdev, > > ret = pci_read_config_byte(pdev, PCI_SLOT_INFO, &slots); > if (ret) > - return ret; > + return pcibios_err_to_errno(ret); > > slots = PCI_SLOT_INFO_SLOTS(slots) + 1; > dev_dbg(&pdev->dev, "found %d slot(s)\n", slots); > @@ -2211,7 +2214,7 @@ static int sdhci_pci_probe(struct pci_dev *pdev, > > ret = pci_read_config_byte(pdev, PCI_SLOT_INFO, &first_bar); > if (ret) > - return ret; > + return pcibios_err_to_errno(ret); > > first_bar &= PCI_SLOT_INFO_FIRST_BAR_MASK; >
On Mon, 27 May 2024 at 15:24, Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> wrote: > > jmicron_pmos() and sdhci_pci_probe() use pci_{read,write}_config_byte() > that return PCIBIOS_* codes. The return code is then returned as is by > jmicron_probe() and sdhci_pci_probe(). Similarly, the return code is > also returned as is from jmicron_resume(). Both probe and resume > functions should return normal errnos. > > Convert PCIBIOS_* returns code using pcibios_err_to_errno() into normal > errno before returning them the fix these issues. > > Fixes: 7582041ff3d4 ("mmc: sdhci-pci: fix simple_return.cocci warnings") > Fixes: 45211e215984 ("sdhci: toggle JMicron PMOS setting") > Cc: stable@vger.kernel.org > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Applied for fixes, thanks! Kind regards Uffe > --- > drivers/mmc/host/sdhci-pci-core.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c > index ef89ec382bfe..23e6ba70144c 100644 > --- a/drivers/mmc/host/sdhci-pci-core.c > +++ b/drivers/mmc/host/sdhci-pci-core.c > @@ -1326,7 +1326,7 @@ static int jmicron_pmos(struct sdhci_pci_chip *chip, int on) > > ret = pci_read_config_byte(chip->pdev, 0xAE, &scratch); > if (ret) > - return ret; > + goto fail; > > /* > * Turn PMOS on [bit 0], set over current detection to 2.4 V > @@ -1337,7 +1337,10 @@ static int jmicron_pmos(struct sdhci_pci_chip *chip, int on) > else > scratch &= ~0x47; > > - return pci_write_config_byte(chip->pdev, 0xAE, scratch); > + ret = pci_write_config_byte(chip->pdev, 0xAE, scratch); > + > +fail: > + return pcibios_err_to_errno(ret); > } > > static int jmicron_probe(struct sdhci_pci_chip *chip) > @@ -2202,7 +2205,7 @@ static int sdhci_pci_probe(struct pci_dev *pdev, > > ret = pci_read_config_byte(pdev, PCI_SLOT_INFO, &slots); > if (ret) > - return ret; > + return pcibios_err_to_errno(ret); > > slots = PCI_SLOT_INFO_SLOTS(slots) + 1; > dev_dbg(&pdev->dev, "found %d slot(s)\n", slots); > @@ -2211,7 +2214,7 @@ static int sdhci_pci_probe(struct pci_dev *pdev, > > ret = pci_read_config_byte(pdev, PCI_SLOT_INFO, &first_bar); > if (ret) > - return ret; > + return pcibios_err_to_errno(ret); > > first_bar &= PCI_SLOT_INFO_FIRST_BAR_MASK; > > -- > 2.39.2 >
diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c index ef89ec382bfe..23e6ba70144c 100644 --- a/drivers/mmc/host/sdhci-pci-core.c +++ b/drivers/mmc/host/sdhci-pci-core.c @@ -1326,7 +1326,7 @@ static int jmicron_pmos(struct sdhci_pci_chip *chip, int on) ret = pci_read_config_byte(chip->pdev, 0xAE, &scratch); if (ret) - return ret; + goto fail; /* * Turn PMOS on [bit 0], set over current detection to 2.4 V @@ -1337,7 +1337,10 @@ static int jmicron_pmos(struct sdhci_pci_chip *chip, int on) else scratch &= ~0x47; - return pci_write_config_byte(chip->pdev, 0xAE, scratch); + ret = pci_write_config_byte(chip->pdev, 0xAE, scratch); + +fail: + return pcibios_err_to_errno(ret); } static int jmicron_probe(struct sdhci_pci_chip *chip) @@ -2202,7 +2205,7 @@ static int sdhci_pci_probe(struct pci_dev *pdev, ret = pci_read_config_byte(pdev, PCI_SLOT_INFO, &slots); if (ret) - return ret; + return pcibios_err_to_errno(ret); slots = PCI_SLOT_INFO_SLOTS(slots) + 1; dev_dbg(&pdev->dev, "found %d slot(s)\n", slots); @@ -2211,7 +2214,7 @@ static int sdhci_pci_probe(struct pci_dev *pdev, ret = pci_read_config_byte(pdev, PCI_SLOT_INFO, &first_bar); if (ret) - return ret; + return pcibios_err_to_errno(ret); first_bar &= PCI_SLOT_INFO_FIRST_BAR_MASK;
jmicron_pmos() and sdhci_pci_probe() use pci_{read,write}_config_byte() that return PCIBIOS_* codes. The return code is then returned as is by jmicron_probe() and sdhci_pci_probe(). Similarly, the return code is also returned as is from jmicron_resume(). Both probe and resume functions should return normal errnos. Convert PCIBIOS_* returns code using pcibios_err_to_errno() into normal errno before returning them the fix these issues. Fixes: 7582041ff3d4 ("mmc: sdhci-pci: fix simple_return.cocci warnings") Fixes: 45211e215984 ("sdhci: toggle JMicron PMOS setting") Cc: stable@vger.kernel.org Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> --- drivers/mmc/host/sdhci-pci-core.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)