From: Jiri Pirko <jiri@resnulli.us>
To: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
Cc: netdev@vger.kernel.org, vadim.fedorenko@linux.dev,
michal.michalik@intel.com, milena.olech@intel.com,
pabeni@redhat.com, kuba@kernel.org
Subject: Re: [PATCH net 3/3] dpll: fix register pin with unregistered parent pin
Date: Wed, 8 Nov 2023 16:07:41 +0100 [thread overview]
Message-ID: <ZUukPbTCww26jltC@nanopsycho> (raw)
In-Reply-To: <20231108103226.1168500-4-arkadiusz.kubalewski@intel.com>
Wed, Nov 08, 2023 at 11:32:26AM CET, arkadiusz.kubalewski@intel.com wrote:
>In case of multiple kernel module instances using the same dpll device:
>if only one registers dpll device, then only that one can register
They why you don't register in multiple instances? See mlx5 for a
reference.
>directly connected pins with a dpll device. If unregistered parent
>determines if the muxed pin can be register with it or not, it forces
>serialized driver load order - first the driver instance which registers
>the direct pins needs to be loaded, then the other instances could
>register muxed type pins.
>
>Allow registration of a pin with a parent even if the parent was not
>yet registered, thus allow ability for unserialized driver instance
Weird.
>load order.
>Do not WARN_ON notification for unregistered pin, which can be invoked
>for described case, instead just return error.
>
>Fixes: 9431063ad323 ("dpll: core: Add DPLL framework base functions")
>Fixes: 9d71b54b65b1 ("dpll: netlink: Add DPLL framework base functions")
>Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
>---
> drivers/dpll/dpll_core.c | 4 ----
> drivers/dpll/dpll_netlink.c | 2 +-
> 2 files changed, 1 insertion(+), 5 deletions(-)
>
>diff --git a/drivers/dpll/dpll_core.c b/drivers/dpll/dpll_core.c
>index 4077b562ba3b..ae884b92d68c 100644
>--- a/drivers/dpll/dpll_core.c
>+++ b/drivers/dpll/dpll_core.c
>@@ -28,8 +28,6 @@ static u32 dpll_xa_id;
> WARN_ON_ONCE(!xa_get_mark(&dpll_device_xa, (d)->id, DPLL_REGISTERED))
> #define ASSERT_DPLL_NOT_REGISTERED(d) \
> WARN_ON_ONCE(xa_get_mark(&dpll_device_xa, (d)->id, DPLL_REGISTERED))
>-#define ASSERT_PIN_REGISTERED(p) \
>- WARN_ON_ONCE(!xa_get_mark(&dpll_pin_xa, (p)->id, DPLL_REGISTERED))
>
> struct dpll_device_registration {
> struct list_head list;
>@@ -641,8 +639,6 @@ int dpll_pin_on_pin_register(struct dpll_pin *parent, struct dpll_pin *pin,
> WARN_ON(!ops->state_on_pin_get) ||
> WARN_ON(!ops->direction_get))
> return -EINVAL;
>- if (ASSERT_PIN_REGISTERED(parent))
>- return -EINVAL;
>
> mutex_lock(&dpll_lock);
> ret = dpll_xa_ref_pin_add(&pin->parent_refs, parent, ops, priv);
>diff --git a/drivers/dpll/dpll_netlink.c b/drivers/dpll/dpll_netlink.c
>index 963bbbbe6660..ff430f43304f 100644
>--- a/drivers/dpll/dpll_netlink.c
>+++ b/drivers/dpll/dpll_netlink.c
>@@ -558,7 +558,7 @@ dpll_pin_event_send(enum dpll_cmd event, struct dpll_pin *pin)
> int ret = -ENOMEM;
> void *hdr;
>
>- if (WARN_ON(!xa_get_mark(&dpll_pin_xa, pin->id, DPLL_REGISTERED)))
>+ if (!xa_get_mark(&dpll_pin_xa, pin->id, DPLL_REGISTERED))
> return -ENODEV;
>
> msg = genlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
>--
>2.38.1
>
next prev parent reply other threads:[~2023-11-08 15:07 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-08 10:32 [PATCH net 0/3] dpll: fix unordered unbind/bind registerer issues Arkadiusz Kubalewski
2023-11-08 10:32 ` [PATCH net 1/3] dpll: fix pin dump crash after module unbind Arkadiusz Kubalewski
2023-11-08 11:36 ` Przemek Kitszel
2023-11-08 12:08 ` Kubalewski, Arkadiusz
2023-11-08 15:08 ` Jiri Pirko
2023-11-09 9:49 ` Kubalewski, Arkadiusz
2023-11-09 13:18 ` Jiri Pirko
2023-11-09 16:33 ` Kubalewski, Arkadiusz
2023-11-08 10:32 ` [PATCH net 2/3] dpll: fix pin dump crash for rebound module Arkadiusz Kubalewski
2023-11-08 14:30 ` Jiri Pirko
2023-11-09 12:20 ` Kubalewski, Arkadiusz
2023-11-09 13:19 ` Jiri Pirko
2023-11-09 16:30 ` Kubalewski, Arkadiusz
2023-11-09 18:06 ` Jiri Pirko
2023-11-09 23:32 ` Kubalewski, Arkadiusz
2023-11-10 6:45 ` Jiri Pirko
2023-11-10 9:01 ` Kubalewski, Arkadiusz
2023-11-10 10:06 ` Jiri Pirko
2023-11-10 11:18 ` Kubalewski, Arkadiusz
2023-11-10 11:44 ` Jiri Pirko
2023-11-10 14:11 ` Kubalewski, Arkadiusz
2023-11-08 10:32 ` [PATCH net 3/3] dpll: fix register pin with unregistered parent pin Arkadiusz Kubalewski
2023-11-08 15:07 ` Jiri Pirko [this message]
2023-11-09 9:59 ` Kubalewski, Arkadiusz
2023-11-09 10:56 ` Vadim Fedorenko
2023-11-09 16:02 ` Kubalewski, Arkadiusz
2023-11-09 18:04 ` Jiri Pirko
2023-11-09 23:21 ` Kubalewski, Arkadiusz
2023-11-10 6:48 ` Jiri Pirko
2023-11-10 8:50 ` Kubalewski, Arkadiusz
2023-11-10 10:07 ` Jiri Pirko
2023-11-10 11:19 ` Kubalewski, Arkadiusz
2023-11-09 13:20 ` Jiri Pirko
2023-11-09 16:13 ` Kubalewski, Arkadiusz
2023-11-09 10:50 ` [PATCH net 0/3] dpll: fix unordered unbind/bind registerer issues Vadim Fedorenko
2023-11-09 17:20 ` Kubalewski, Arkadiusz
2023-11-09 18:07 ` Jiri Pirko
2023-11-09 23:35 ` Kubalewski, Arkadiusz
2023-11-10 6:48 ` Jiri Pirko
2023-11-10 9:06 ` Kubalewski, Arkadiusz
2023-11-10 10:09 ` Jiri Pirko
2023-11-10 11:22 ` Kubalewski, Arkadiusz
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=ZUukPbTCww26jltC@nanopsycho \
--to=jiri@resnulli.us \
--cc=arkadiusz.kubalewski@intel.com \
--cc=kuba@kernel.org \
--cc=michal.michalik@intel.com \
--cc=milena.olech@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.