From: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
To: netdev@vger.kernel.org
Cc: vadim.fedorenko@linux.dev, jiri@resnulli.us, davem@davemloft.net,
milena.olech@intel.com, linux-kernel@vger.kernel.org,
pabeni@redhat.com, kuba@kernel.org, mschmidt@redhat.com,
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
Subject: [PATCH net v4 4/4] dpll: fix broken error path in dpll_pin_alloc(..)
Date: Wed, 17 Jan 2024 10:14:16 +0100 [thread overview]
Message-ID: <20240117091416.504096-5-arkadiusz.kubalewski@intel.com> (raw)
In-Reply-To: <20240117091416.504096-1-arkadiusz.kubalewski@intel.com>
If pin type is not expected, or dpll_pin_prop_dup(..) failed to
allocate memory, the unwind error path shall not destroy pin's xarrays,
which were not yet initialized.
Add new goto label and use it to fix broken error path.
Fixes: 9431063ad323 ("dpll: core: Add DPLL framework base functions")
Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
---
v4:
- this change was part of [v3 1/3], separate it
drivers/dpll/dpll_core.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/dpll/dpll_core.c b/drivers/dpll/dpll_core.c
index 4ddb33462fff..ac426a9be072 100644
--- a/drivers/dpll/dpll_core.c
+++ b/drivers/dpll/dpll_core.c
@@ -486,22 +486,23 @@ dpll_pin_alloc(u64 clock_id, u32 pin_idx, struct module *module,
if (WARN_ON(prop->type < DPLL_PIN_TYPE_MUX ||
prop->type > DPLL_PIN_TYPE_MAX)) {
ret = -EINVAL;
- goto err;
+ goto err_pin_prop;
}
ret = dpll_pin_prop_dup(prop, &pin->prop);
if (ret)
- goto pin_free;
+ goto err_pin_prop;
refcount_set(&pin->refcount, 1);
xa_init_flags(&pin->dpll_refs, XA_FLAGS_ALLOC);
xa_init_flags(&pin->parent_refs, XA_FLAGS_ALLOC);
ret = xa_alloc_cyclic(&dpll_pin_xa, &pin->id, pin, xa_limit_32b,
&dpll_pin_xa_id, GFP_KERNEL);
if (ret)
- goto err;
+ goto err_xa_alloc;
return pin;
-err:
+err_xa_alloc:
xa_destroy(&pin->dpll_refs);
xa_destroy(&pin->parent_refs);
+err_pin_prop:
kfree(pin);
return ERR_PTR(ret);
}
--
2.38.1
prev parent reply other threads:[~2024-01-17 9:17 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-17 9:14 [PATCH net v4 0/4] dpll: fix unordered unbind/bind registerer issues Arkadiusz Kubalewski
2024-01-17 9:14 ` [PATCH net v4 1/4] dpll: fix pin dump crash for rebound module Arkadiusz Kubalewski
2024-01-17 14:23 ` Jiri Pirko
2024-01-18 11:12 ` Kubalewski, Arkadiusz
2024-01-17 9:14 ` [PATCH net v4 2/4] dpll: fix userspace availability of pins Arkadiusz Kubalewski
2024-01-17 9:14 ` [PATCH net v4 3/4] dpll: fix register pin with unregistered parent pin Arkadiusz Kubalewski
2024-01-17 9:14 ` Arkadiusz Kubalewski [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240117091416.504096-5-arkadiusz.kubalewski@intel.com \
--to=arkadiusz.kubalewski@intel.com \
--cc=davem@davemloft.net \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=milena.olech@intel.com \
--cc=mschmidt@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=vadim.fedorenko@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®