lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aMbAZigHiAN2xupOYs9DodY2mOdNtw_oVjOaweflgA8IoXRQ5ctoZ8GYJ8PNAKDgL4f9N_UD7tFmkePUy9BCE8v20Mae2x-eL1ZpyJEdLZY=@protonmail.com>
Date: Sat, 05 Jul 2025 18:29:39 +0000
From: Yassine Oudjana <y.oudjana@...tonmail.com>
To: Konrad Dybcio <konrad.dybcio@....qualcomm.com>
Cc: Jonathan Cameron <jic23@...nel.org>, Lars-Peter Clausen <lars@...afoo.de>, Bjorn Andersson <andersson@...nel.org>, Konrad Dybcio <konradybcio@...nel.org>, Manivannan Sadhasivam <manivannan.sadhasivam@...aro.org>, "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Simon Horman <horms@...nel.org>, Masahiro Yamada <masahiroy@...nel.org>, Nathan Chancellor <nathan@...nel.org>, Nicolas Schier <nicolas.schier@...ux.dev>, Alexander Sverdlin <alexander.sverdlin@...il.com>, Sean Nyekjaer <sean@...nix.com>, Javier Carrasco <javier.carrasco.cruz@...il.com>, Matti Vaittinen <mazziesaccount@...il.com>, Antoniu Miclaus <antoniu.miclaus@...log.com>, Ramona Gradinariu <ramona.gradinariu@...log.com>, "Yo-Jung (Leo) Lin" <0xff07@...il.com>, Andy Shevchenko <andriy.shevchenko@...ux.intel.com>, Neil Armstrong <neil.armstrong@...aro.org>, Barnabás Czémán
	<barnabas.czeman@...nlining.org>, Danila Tikhonov <danila@...xyga.com>, Antoni Pokusinski <apokusinski01@...il.com>, Vasileios Amoiridis <vassilisamir@...il.com>, Petar Stoykov <pd.pstoykov@...il.com>, shuaijie wang <wangshuaijie@...nic.com>, Yasin Lee <yasin.lee.x@...il.com>, "Borislav Petkov (AMD)" <bp@...en8.de>, Dave Hansen <dave.hansen@...ux.intel.com>, Tony Luck <tony.luck@...el.com>, Pawan Gupta <pawan.kumar.gupta@...ux.intel.com>, Ingo Molnar <mingo@...nel.org>, Yassine Oudjana <yassine.oudjana@...il.com>, linux-kernel@...r.kernel.org, linux-iio@...r.kernel.org, linux-arm-msm@...r.kernel.org, netdev@...r.kernel.org, linux-kbuild@...r.kernel.org
Subject: Re: [PATCH 2/3] net: qrtr: Define macro to convert QMI version and instance to QRTR instance

On Wednesday, April 9th, 2025 at 3:54 PM, Konrad Dybcio <konrad.dybcio@....qualcomm.com> wrote:

> On 4/6/25 4:07 PM, Yassine Oudjana wrote:
> 
> > Move QRTR instance conversion from qmi_interface into a new macro in order
> > to reuse it in QRTR device ID tables.
> > 
> > Signed-off-by: Yassine Oudjana y.oudjana@...tonmail.com
> > ---
> > drivers/soc/qcom/qmi_interface.c | 5 +++--
> > include/linux/soc/qcom/qrtr.h | 2 ++
> > 2 files changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/soc/qcom/qmi_interface.c b/drivers/soc/qcom/qmi_interface.c
> > index bc6d6379d8b1..cb57b7e1f252 100644
> > --- a/drivers/soc/qcom/qmi_interface.c
> > +++ b/drivers/soc/qcom/qmi_interface.c
> > @@ -14,6 +14,7 @@
> > #include <linux/workqueue.h>
> > #include <trace/events/sock.h>
> > #include <linux/soc/qcom/qmi.h>
> > +#include <linux/soc/qcom/qrtr.h>
> > 
> > static struct socket *qmi_sock_create(struct qmi_handle *qmi,
> > struct sockaddr_qrtr *sq);
> > @@ -173,7 +174,7 @@ static void qmi_send_new_lookup(struct qmi_handle *qmi, struct qmi_service *svc)
> > memset(&pkt, 0, sizeof(pkt));
> > pkt.cmd = cpu_to_le32(QRTR_TYPE_NEW_LOOKUP);
> > pkt.server.service = cpu_to_le32(svc->service);
> > - pkt.server.instance = cpu_to_le32(svc->version | svc->instance << 8);
> > + pkt.server.instance = cpu_to_le32(QRTR_INSTANCE(svc->version, svc->instance));
> > 
> > sq.sq_family = qmi->sq.sq_family;
> > sq.sq_node = qmi->sq.sq_node;
> > @@ -236,7 +237,7 @@ static void qmi_send_new_server(struct qmi_handle *qmi, struct qmi_service *svc)
> > memset(&pkt, 0, sizeof(pkt));
> > pkt.cmd = cpu_to_le32(QRTR_TYPE_NEW_SERVER);
> > pkt.server.service = cpu_to_le32(svc->service);
> > - pkt.server.instance = cpu_to_le32(svc->version | svc->instance << 8);
> > + pkt.server.instance = cpu_to_le32(QRTR_INSTANCE(svc->version, svc->instance));
> > pkt.server.node = cpu_to_le32(qmi->sq.sq_node);
> > pkt.server.port = cpu_to_le32(qmi->sq.sq_port);
> > 
> > diff --git a/include/linux/soc/qcom/qrtr.h b/include/linux/soc/qcom/qrtr.h
> > index 4d7f25c64c56..10c89a35cbb9 100644
> > --- a/include/linux/soc/qcom/qrtr.h
> > +++ b/include/linux/soc/qcom/qrtr.h
> > @@ -13,6 +13,8 @@ struct qrtr_device {
> > 
> > #define to_qrtr_device(d) container_of(d, struct qrtr_device, dev)
> > 
> > +#define QRTR_INSTANCE(qmi_version, qmi_instance) (qmi_version | qmi_instance << 8)
> 
> 
> Please use FIELD_PREP + GENMASK to avoid potential overflows
> 
> Konrad

Since I'm using this macro in initializing QRTR match tables I am unable to use
FIELD_PREP. When I do, I get such errors:

In file included from ../arch/arm64/include/asm/sysreg.h:1108,
                 from ../arch/arm64/include/asm/memory.h:223,
                 from ../arch/arm64/include/asm/pgtable-prot.h:8,
                 from ../arch/arm64/include/asm/sparsemem.h:8,
                 from ../include/linux/numa.h:23,
                 from ../include/linux/cpumask.h:17,
                 from ../include/linux/smp.h:13,
                 from ../include/linux/lockdep.h:14,
                 from ../include/linux/mutex.h:17,
                 from ../include/linux/kernfs.h:11,
                 from ../include/linux/sysfs.h:16,
                 from ../include/linux/iio/buffer.h:9,
                 from ../drivers/iio/common/qcom_smgr/qcom_smgr.c:8:
../include/linux/bitfield.h:114:9: error: braced-group within expression allowed only inside a function
  114 |         ({                                                              \
      |         ^
../include/linux/soc/qcom/qrtr.h:21:10: note: in expansion of macro 'FIELD_PREP'
   21 |         (FIELD_PREP(GENMASK(7, 0), qmi_version) | FIELD_PREP(GENMASK(15, 8), qmi_instance))
      |          ^~~~~~~~~~
../drivers/iio/common/qcom_smgr/qcom_smgr.c:825:29: note: in expansion of macro 'QRTR_INSTANCE'
  825 |                 .instance = QRTR_INSTANCE(SNS_SMGR_QMI_SVC_V1,
      |                             ^~~~~~~~~~~~~
../include/linux/bitfield.h:114:9: error: braced-group within expression allowed only inside a function
  114 |         ({                                                              \
      |         ^
../include/linux/soc/qcom/qrtr.h:21:51: note: in expansion of macro 'FIELD_PREP'
   21 |         (FIELD_PREP(GENMASK(7, 0), qmi_version) | FIELD_PREP(GENMASK(15, 8), qmi_instance))
      |                                                   ^~~~~~~~~~
../drivers/iio/common/qcom_smgr/qcom_smgr.c:825:29: note: in expansion of macro 'QRTR_INSTANCE'
  825 |                 .instance = QRTR_INSTANCE(SNS_SMGR_QMI_SVC_V1,
      |                             ^~~~~~~~~~~~~

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ