Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/nouveau: Use for_each_child_of_node_scoped()

Avoids the need for manual cleanup of_node_put() in early exits
from the loop.

Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240830073654.3539640-1-ruanjinjie@huawei.com

authored by

Jinjie Ruan and committed by
Danilo Krummrich
c7d84a45 7a5115ba

+2 -3
+2 -3
drivers/gpu/drm/nouveau/nouveau_connector.c
··· 477 477 struct nouveau_connector *nv_connector = nouveau_connector(connector); 478 478 struct nouveau_encoder *nv_encoder; 479 479 struct pci_dev *pdev = to_pci_dev(dev->dev); 480 - struct device_node *cn, *dn = pci_device_to_OF_node(pdev); 480 + struct device_node *dn = pci_device_to_OF_node(pdev); 481 481 482 482 if (!dn || 483 483 !((nv_encoder = find_encoder(connector, DCB_OUTPUT_TMDS)) || 484 484 (nv_encoder = find_encoder(connector, DCB_OUTPUT_ANALOG)))) 485 485 return NULL; 486 486 487 - for_each_child_of_node(dn, cn) { 487 + for_each_child_of_node_scoped(dn, cn) { 488 488 const char *name = of_get_property(cn, "name", NULL); 489 489 const void *edid = of_get_property(cn, "EDID", NULL); 490 490 int idx = name ? name[strlen(name) - 1] - 'A' : 0; ··· 492 492 if (nv_encoder->dcb->i2c_index == idx && edid) { 493 493 nv_connector->edid = 494 494 kmemdup(edid, EDID_LENGTH, GFP_KERNEL); 495 - of_node_put(cn); 496 495 return nv_encoder; 497 496 } 498 497 }