Commit ccf50219 authored by Sudeep Holla's avatar Sudeep Holla

firmware: arm_scmi: Replace the use of of_node_put() to __free(device_node)

Use __free for device_node values, and thus drop calls to of_node_put.

The goal is simplify of_node reference cleanup by using this scope-based
of_node_put() cleanup to simplify function exit handling. When using __free
a resource is allocated within a block, it is automatically freed at the
end of the block.

This cleanup aligns well with the recent change in shmem.c to use __free
instead of explicit of_node_put() calls.

Message-Id: <20240827143838.1465913-3-sudeep.holla@arm.com>
Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
parent 50db2ef5
...@@ -129,18 +129,16 @@ static int mailbox_chan_validate(struct device *cdev, int *a2p_rx_chan, ...@@ -129,18 +129,16 @@ static int mailbox_chan_validate(struct device *cdev, int *a2p_rx_chan,
/* Bail out if provided shmem descriptors do not refer distinct areas */ /* Bail out if provided shmem descriptors do not refer distinct areas */
if (num_sh > 1) { if (num_sh > 1) {
struct device_node *np_tx, *np_rx; struct device_node *np_tx __free(device_node) =
of_parse_phandle(np, "shmem", 0);
struct device_node *np_rx __free(device_node) =
of_parse_phandle(np, "shmem", 1);
np_tx = of_parse_phandle(np, "shmem", 0);
np_rx = of_parse_phandle(np, "shmem", 1);
if (!np_tx || !np_rx || np_tx == np_rx) { if (!np_tx || !np_rx || np_tx == np_rx) {
dev_warn(cdev, "Invalid shmem descriptor for '%s'\n", dev_warn(cdev, "Invalid shmem descriptor for '%s'\n",
of_node_full_name(np)); of_node_full_name(np));
ret = -EINVAL; ret = -EINVAL;
} }
of_node_put(np_tx);
of_node_put(np_rx);
} }
/* Calculate channels IDs to use depending on mboxes/shmem layout */ /* Calculate channels IDs to use depending on mboxes/shmem layout */
......
...@@ -84,12 +84,11 @@ static irqreturn_t smc_msg_done_isr(int irq, void *data) ...@@ -84,12 +84,11 @@ static irqreturn_t smc_msg_done_isr(int irq, void *data)
static bool smc_chan_available(struct device_node *of_node, int idx) static bool smc_chan_available(struct device_node *of_node, int idx)
{ {
struct device_node *np = of_parse_phandle(of_node, "shmem", 0); struct device_node *np __free(device_node) =
of_parse_phandle(of_node, "shmem", 0);
if (!np) if (!np)
return false; return false;
of_node_put(np);
return true; return true;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment