Thread (30 messages) 30 messages, 7 authors, 2021-03-11

Re: [PATCH v2 2/5] PCI: dwc: Check alloc_page() return value

From: Jisheng Zhang <hidden>
Date: 2020-09-30 01:23:46
Also in: linux-amlogic, linux-arm-msm, linux-omap, linux-pci, linux-samsung-soc, linux-tegra, lkml

Hi Marc,

On Tue, 29 Sep 2020 18:29:52 +0100 Marc Zyngier wrote:

On 2020-09-24 12:06, Jisheng Zhang wrote:
quoted
We need to check alloc_page() succeed or not before continuing.

Signed-off-by: Jisheng Zhang <redacted>
---
 drivers/pci/controller/dwc/pcie-designware-host.c | 5 +++++
 1 file changed, 5 insertions(+)
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c
b/drivers/pci/controller/dwc/pcie-designware-host.c
index 0a19de946351..9e04e8ef3aa4 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -303,6 +303,11 @@ void dw_pcie_msi_init(struct pcie_port *pp)
      u64 msi_target;

      pp->msi_page = alloc_page(GFP_KERNEL);
+     if (!pp->msi_page) {
+             dev_err(dev, "Failed to alloc MSI page\n");  
A failing allocation will already scream, so there is no need to
add insult to injury.

More importantly, what is this MSI page ever used for? If I remember
well, this is just a random address that never gets written to.

So why do we allocate a page here? Why do we bother with this DMA
mapping?
Ard and Rob also pointed out that there's no need to allocate a page, instead,
we could use an address in the driver data for MSI address. So I refactored
the patches and verified this solution works fine. Could you please review
the V5?


Thanks

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help