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
| ||
|
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