From: Jonathan Cameron <jic23@kernel.org>
To: Yassine Oudjana <y.oudjana@protonmail.com>
Cc: "Lars-Peter Clausen" <lars@metafoo.de>,
"Bjorn Andersson" <andersson@kernel.org>,
"Konrad Dybcio" <konradybcio@kernel.org>,
"Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Simon Horman" <horms@kernel.org>,
"Masahiro Yamada" <masahiroy@kernel.org>,
"Nathan Chancellor" <nathan@kernel.org>,
"Nicolas Schier" <nicolas.schier@linux.dev>,
"Alexander Sverdlin" <alexander.sverdlin@gmail.com>,
"Sean Nyekjaer" <sean@geanix.com>,
"Javier Carrasco" <javier.carrasco.cruz@gmail.com>,
"Matti Vaittinen" <mazziesaccount@gmail.com>,
"Antoniu Miclaus" <antoniu.miclaus@analog.com>,
"Ramona Gradinariu" <ramona.gradinariu@analog.com>,
"Yo-Jung (Leo) Lin" <0xff07@gmail.com>,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Barnabás Czémán" <barnabas.czeman@mainlining.org>,
"Danila Tikhonov" <danila@jiaxyga.com>,
"Antoni Pokusinski" <apokusinski01@gmail.com>,
"Vasileios Amoiridis" <vassilisamir@gmail.com>,
"Petar Stoykov" <pd.pstoykov@gmail.com>,
"shuaijie wang" <wangshuaijie@awinic.com>,
"Yasin Lee" <yasin.lee.x@gmail.com>,
"Borislav Petkov (AMD)" <bp@alien8.de>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"Tony Luck" <tony.luck@intel.com>,
"Pawan Gupta" <pawan.kumar.gupta@linux.intel.com>,
"Ingo Molnar" <mingo@kernel.org>,
"Yassine Oudjana" <yassine.oudjana@gmail.com>,
linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org,
linux-arm-msm@vger.kernel.org, netdev@vger.kernel.org,
linux-kbuild@vger.kernel.org
Subject: Re: [PATCH 1/3] net: qrtr: Turn QRTR into a bus
Date: Sat, 12 Apr 2025 11:58:21 +0100 [thread overview]
Message-ID: <20250412115821.72f35c07@jic23-huawei> (raw)
In-Reply-To: <02aeebee-0acc-4a03-a7f1-a920a34fb378@protonmail.com>
On Thu, 10 Apr 2025 12:10:54 +0000
Yassine Oudjana <y.oudjana@protonmail.com> wrote:
> On 06/04/2025 7:01 pm, Jonathan Cameron wrote:
> > On Sun, 06 Apr 2025 14:07:43 +0000
> > Yassine Oudjana <y.oudjana@protonmail.com> wrote:
> >
> >> Implement a QRTR bus to allow for creating drivers for individual QRTR
> >> services. With this in place, devices are dynamically registered for QRTR
> >> services as they become available, and drivers for these devices are
> >> matched using service and instance IDs.
> >>
> >> In smd.c, replace all current occurences of qdev with qsdev in order to
> >> distinguish between the newly added QRTR device which represents a QRTR
> >> service with the existing QRTR SMD device which represents the endpoint
> >> through which services are provided.
> >>
> >> Signed-off-by: Yassine Oudjana <y.oudjana@protonmail.com>
> > Hi Yassine
> >
> > Just took a quick look through.
> >
> > It might make more sense to do this with an auxiliary_bus rather
> > than defining a new bus.
> >
> > I'd also split out the renames as a precursor patch.
> >
> > Various other comments inline.
> >
> > Jonathan
> >
> >> diff --git a/net/qrtr/af_qrtr.c b/net/qrtr/af_qrtr.c
> >> index 00c51cf693f3..e11682fd7960 100644
> >> --- a/net/qrtr/af_qrtr.c
> >> +++ b/net/qrtr/af_qrtr.c
> >> @@ -435,6 +435,7 @@ static void qrtr_node_assign(struct qrtr_node *node, unsigned int nid)
> >> int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len)
> >> {
> >> struct qrtr_node *node = ep->node;
> >> + const struct qrtr_ctrl_pkt *pkt;
> >> const struct qrtr_hdr_v1 *v1;
> >> const struct qrtr_hdr_v2 *v2;
> >> struct qrtr_sock *ipc;
> >> @@ -443,6 +444,7 @@ int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len)
> >> size_t size;
> >> unsigned int ver;
> >> size_t hdrlen;
> >> + int ret = 0;
> >>
> >> if (len == 0 || len & 3)
> >> return -EINVAL;
> >> @@ -516,12 +518,24 @@ int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len)
> >>
> >> qrtr_node_assign(node, cb->src_node);
> >>
> >> + pkt = data + hdrlen;
> >> +
> >> if (cb->type == QRTR_TYPE_NEW_SERVER) {
> >> /* Remote node endpoint can bridge other distant nodes */
> >> - const struct qrtr_ctrl_pkt *pkt;
> >> -
> >> - pkt = data + hdrlen;
> >> qrtr_node_assign(node, le32_to_cpu(pkt->server.node));
> >> +
> >> + /* Create a QRTR device */
> >> + ret = ep->add_device(ep, le32_to_cpu(pkt->server.node),
> >> + le32_to_cpu(pkt->server.port),
> >> + le32_to_cpu(pkt->server.service),
> >> + le32_to_cpu(pkt->server.instance));
> >> + if (ret)
> >> + goto err;
> >> + } else if (cb->type == QRTR_TYPE_DEL_SERVER) {
> >> + /* Remove QRTR device corresponding to service */
> >> + ret = ep->del_device(ep, le32_to_cpu(pkt->server.port));
> >> + if (ret)
> >> + goto err;
> >> }
> >>
> >> if (cb->type == QRTR_TYPE_RESUME_TX) {
> >> @@ -543,8 +557,7 @@ int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len)
> >>
> >> err:
> >> kfree_skb(skb);
> >> - return -EINVAL;
> >> -
> >> + return ret ? ret : -EINVAL;
> > How do we get here with non error value given we couldn't before?
>
> We don't, but we may have errors in ret other than -EINVAL returned by
> the newly added add_device and del_device which we should propagate.
Ah. Got it (I misread that!). Personally I'd go for setting ret in the
other error paths explicitly to -EINVAL. Mixing two styles of handling
where you have some paths setting ret and some not is rather confusing to read.
> >> +
> >> + return qdev->port == port;
> >> +}
> >> +
> >> +static void qcom_smd_qrtr_add_device_worker(struct work_struct *work)
> >> +{
> >> + struct qrtr_new_server *new_server = container_of(work, struct qrtr_new_server, work);
> >> + struct qrtr_smd_dev *qsdev = new_server->parent;
> >> + struct qrtr_device *qdev;
> >> + int ret;
> >> +
> >> + qdev = kzalloc(sizeof(*qdev), GFP_KERNEL);
> >> + if (!qdev)
> >> + return;
> >> +
> > Maybe
> > *qdev = (struct qrtr_device *) {
> > };
>
> (struct qrtr_device)
oops. Indeed that!
Jonathan
next prev parent reply other threads:[~2025-04-12 10:58 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-06 14:07 [PATCH 0/3] QRTR bus and Qualcomm Sensor Manager IIO drivers Yassine Oudjana
2025-04-06 14:07 ` [PATCH 1/3] net: qrtr: Turn QRTR into a bus Yassine Oudjana
2025-04-06 16:01 ` Jonathan Cameron
2025-04-10 12:10 ` Yassine Oudjana
2025-04-12 10:58 ` Jonathan Cameron [this message]
2025-04-10 12:44 ` Yassine Oudjana
2025-04-12 10:59 ` Jonathan Cameron
2025-06-25 22:20 ` Yassine Oudjana
2025-04-06 14:07 ` [PATCH 2/3] net: qrtr: Define macro to convert QMI version and instance to QRTR instance Yassine Oudjana
2025-04-09 14:54 ` Konrad Dybcio
2025-07-05 18:29 ` Yassine Oudjana
2025-07-07 17:06 ` Simon Horman
2025-07-09 7:44 ` Yassine Oudjana
2025-07-09 11:52 ` Simon Horman
2025-04-06 14:08 ` [PATCH 3/3] iio: Add Qualcomm Sensor Manager drivers Yassine Oudjana
2025-04-06 16:29 ` Jonathan Cameron
2025-04-10 12:31 ` Yassine Oudjana
2025-04-12 11:21 ` Jonathan Cameron
2025-06-18 19:19 ` Luca Weiss
2025-06-25 17:09 ` Yassine Oudjana
2025-04-08 10:27 ` [PATCH 0/3] QRTR bus and Qualcomm Sensor Manager IIO drivers Luca Weiss
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=20250412115821.72f35c07@jic23-huawei \
--to=jic23@kernel.org \
--cc=0xff07@gmail.com \
--cc=alexander.sverdlin@gmail.com \
--cc=andersson@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=antoniu.miclaus@analog.com \
--cc=apokusinski01@gmail.com \
--cc=barnabas.czeman@mainlining.org \
--cc=bp@alien8.de \
--cc=danila@jiaxyga.com \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=javier.carrasco.cruz@gmail.com \
--cc=konradybcio@kernel.org \
--cc=kuba@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=masahiroy@kernel.org \
--cc=mazziesaccount@gmail.com \
--cc=mingo@kernel.org \
--cc=nathan@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=netdev@vger.kernel.org \
--cc=nicolas.schier@linux.dev \
--cc=pabeni@redhat.com \
--cc=pawan.kumar.gupta@linux.intel.com \
--cc=pd.pstoykov@gmail.com \
--cc=ramona.gradinariu@analog.com \
--cc=sean@geanix.com \
--cc=tony.luck@intel.com \
--cc=vassilisamir@gmail.com \
--cc=wangshuaijie@awinic.com \
--cc=y.oudjana@protonmail.com \
--cc=yasin.lee.x@gmail.com \
--cc=yassine.oudjana@gmail.com \
/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.