From: Tyrel Datwyler Date: Fri, 22 Mar 2019 18:27:22 +0000 (-0500) Subject: PCI: rpaphp: Get/put device node reference during slot alloc/dealloc X-Git-Tag: v5.4-rc1~993^2~22^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=91800660bbe9d4ae7791f0e646e5736180f01fc0;p=platform%2Fkernel%2Flinux-rpi.git PCI: rpaphp: Get/put device node reference during slot alloc/dealloc When allocating the slot structure we store a pointer to the associated device_node. We really should be incrementing the reference count, so add an of_node_get() during slot alloc and an of_node_put() during slot dealloc. Signed-off-by: Tyrel Datwyler Signed-off-by: Bjorn Helgaas --- diff --git a/drivers/pci/hotplug/rpaphp_slot.c b/drivers/pci/hotplug/rpaphp_slot.c index 5282aa3..93b4a94 100644 --- a/drivers/pci/hotplug/rpaphp_slot.c +++ b/drivers/pci/hotplug/rpaphp_slot.c @@ -21,6 +21,7 @@ /* free up the memory used by a slot */ void dealloc_slot_struct(struct slot *slot) { + of_node_put(slot->dn); kfree(slot->name); kfree(slot); } @@ -36,7 +37,7 @@ struct slot *alloc_slot_struct(struct device_node *dn, slot->name = kstrdup(drc_name, GFP_KERNEL); if (!slot->name) goto error_slot; - slot->dn = dn; + slot->dn = of_node_get(dn); slot->index = drc_index; slot->power_domain = power_domain; slot->hotplug_slot.ops = &rpaphp_hotplug_slot_ops;