Thread (6 messages) 6 messages, 1 author, 2021-08-11

[RFC 3/5] PCI: hv: Set NULL as the ACPI device for the PCI host bridge

From: Boqun Feng <hidden>
Date: 2021-08-11 15:36:48
Also in: linux-acpi, linux-hyperv, linux-pci, lkml
Subsystem: hyper-v/azure core and drivers, pci native host bridge and endpoint drivers, pci subsystem, the rest · Maintainers: "K. Y. Srinivasan", Haiyang Zhang, Wei Liu, Dexuan Cui, Long Li, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Linus Torvalds

A PCI host bridge of Hyper-V doesn't have the corresponding ACPI device,
therefore a NULL pointer needs to be set as the ->private of
pci_host_bridge since for platforms with ACPI ->private is used to store
the ACPI device information for the host bridges.

And since kzalloc() is used to allocate pci_host_bridge, as a result,
what is needed is just setting the correct size of ->private, kzalloc()
will zero the field as if set a NULL pointer to it.

Signed-off-by: Boqun Feng <redacted>
---
 drivers/pci/controller/pci-hyperv.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c
index 62dbe98d1fe1..fd3792b5edcc 100644
--- a/drivers/pci/controller/pci-hyperv.c
+++ b/drivers/pci/controller/pci-hyperv.c
@@ -3021,7 +3021,12 @@ static int hv_pci_probe(struct hv_device *hdev,
 	 */
 	BUILD_BUG_ON(sizeof(*hbus) > HV_HYP_PAGE_SIZE);
 
-	bridge = devm_pci_alloc_host_bridge(&hdev->device, 0);
+	/*
+	 * devm_pci_alloc_host_bridge() use kzalloc(), and we want to set
+	 * ->private as a NULL pointer, therefore no need to set ->private after
+	 * allocation.
+	 */
+	bridge = devm_pci_alloc_host_bridge(&hdev->device, sizeof(struct acpi_device *));
 	if (!bridge)
 		return -ENOMEM;
 
-- 
2.32.0


_______________________________________________
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