From: kernel test robot <lkp@intel.com>
To: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
Andy Gross <agross@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konrad.dybcio@linaro.org>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzk@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
Alex Elder <elder@linaro.org>,
Srini Kandagatla <srinivas.kandagatla@linaro.org>
Cc: oe-kbuild-all@lists.linux.dev, kernel@quicinc.com,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: Re: [PATCH 07/11] firmware: qcom-scm: use SHM bridge if available
Date: Tue, 29 Aug 2023 13:32:55 +0800 [thread overview]
Message-ID: <202308291359.QP042fIw-lkp@intel.com> (raw)
In-Reply-To: <20230828192507.117334-8-bartosz.golaszewski@linaro.org>
Hi Bartosz,
kernel test robot noticed the following build errors:
[auto build test ERROR on robh/for-next]
[also build test ERROR on arm64/for-next/core linus/master v6.5]
[cannot apply to next-20230828]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Bartosz-Golaszewski/firmware-qcom-scm-drop-unneeded-extern-specifiers/20230829-032930
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link: https://lore.kernel.org/r/20230828192507.117334-8-bartosz.golaszewski%40linaro.org
patch subject: [PATCH 07/11] firmware: qcom-scm: use SHM bridge if available
config: m68k-randconfig-r006-20230829 (https://download.01.org/0day-ci/archive/20230829/202308291359.QP042fIw-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230829/202308291359.QP042fIw-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308291359.QP042fIw-lkp@intel.com/
All errors (new ones prefixed by >>):
m68k-linux-ld: drivers/firmware/qcom_scm-smc.o: in function `__scm_smc_call':
>> drivers/firmware/qcom_scm-smc.c:179:(.text+0xa8): undefined reference to `qcom_shm_bridge_alloc'
>> m68k-linux-ld: drivers/firmware/qcom_scm-smc.c:221:(.text+0x1ac): undefined reference to `qcom_shm_bridge_free'
m68k-linux-ld: drivers/firmware/qcom_scm-smc.c:206:(.text+0x23a): undefined reference to `qcom_shm_bridge_free'
vim +179 drivers/firmware/qcom_scm-smc.c
148
149
150 int __scm_smc_call(struct device *dev, const struct qcom_scm_desc *desc,
151 enum qcom_scm_convention qcom_convention,
152 struct qcom_scm_res *res, bool atomic)
153 {
154 int arglen = desc->arginfo & 0xf;
155 int i, ret;
156 dma_addr_t args_phys = 0;
157 void *args_virt = NULL;
158 size_t alloc_len;
159 gfp_t flag = atomic ? GFP_ATOMIC : GFP_KERNEL;
160 u32 smccc_call_type = atomic ? ARM_SMCCC_FAST_CALL : ARM_SMCCC_STD_CALL;
161 u32 qcom_smccc_convention = (qcom_convention == SMC_CONVENTION_ARM_32) ?
162 ARM_SMCCC_SMC_32 : ARM_SMCCC_SMC_64;
163 struct arm_smccc_res smc_res;
164 struct arm_smccc_args smc = {0};
165 bool using_shm_bridge = qcom_scm_shm_bridge_available();
166
167 smc.args[0] = ARM_SMCCC_CALL_VAL(
168 smccc_call_type,
169 qcom_smccc_convention,
170 desc->owner,
171 SCM_SMC_FNID(desc->svc, desc->cmd));
172 smc.args[1] = desc->arginfo;
173 for (i = 0; i < SCM_SMC_N_REG_ARGS; i++)
174 smc.args[i + SCM_SMC_FIRST_REG_IDX] = desc->args[i];
175
176 if (unlikely(arglen > SCM_SMC_N_REG_ARGS)) {
177 alloc_len = SCM_SMC_N_EXT_ARGS * sizeof(u64);
178 if (using_shm_bridge)
> 179 args_virt = qcom_shm_bridge_alloc(NULL,
180 PAGE_ALIGN(alloc_len),
181 flag);
182 else
183 args_virt = kzalloc(PAGE_ALIGN(alloc_len), flag);
184 if (!args_virt)
185 return -ENOMEM;
186
187 if (qcom_smccc_convention == ARM_SMCCC_SMC_32) {
188 __le32 *args = args_virt;
189
190 for (i = 0; i < SCM_SMC_N_EXT_ARGS; i++)
191 args[i] = cpu_to_le32(desc->args[i +
192 SCM_SMC_FIRST_EXT_IDX]);
193 } else {
194 __le64 *args = args_virt;
195
196 for (i = 0; i < SCM_SMC_N_EXT_ARGS; i++)
197 args[i] = cpu_to_le64(desc->args[i +
198 SCM_SMC_FIRST_EXT_IDX]);
199 }
200
201 args_phys = dma_map_single(dev, args_virt, alloc_len,
202 DMA_TO_DEVICE);
203
204 if (dma_mapping_error(dev, args_phys)) {
205 if (using_shm_bridge)
206 qcom_shm_bridge_free(args_virt);
207 else
208 kfree(args_virt);
209 return -ENOMEM;
210 }
211
212 smc.args[SCM_SMC_LAST_REG_IDX] = args_phys;
213 }
214
215 /* ret error check follows after args_virt cleanup*/
216 ret = __scm_smc_do(dev, &smc, &smc_res, atomic);
217
218 if (args_virt) {
219 dma_unmap_single(dev, args_phys, alloc_len, DMA_TO_DEVICE);
220 if (using_shm_bridge)
> 221 qcom_shm_bridge_free(args_virt);
222 else
223 kfree(args_virt);
224 }
225
226 if (ret)
227 return ret;
228
229 if (res) {
230 res->result[0] = smc_res.a1;
231 res->result[1] = smc_res.a2;
232 res->result[2] = smc_res.a3;
233 }
234
235 return (long)smc_res.a0 ? qcom_scm_remap_error(smc_res.a0) : 0;
236
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
Andy Gross <agross@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konrad.dybcio@linaro.org>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzk@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
Alex Elder <elder@linaro.org>,
Srini Kandagatla <srinivas.kandagatla@linaro.org>
Cc: oe-kbuild-all@lists.linux.dev, kernel@quicinc.com,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: Re: [PATCH 07/11] firmware: qcom-scm: use SHM bridge if available
Date: Tue, 29 Aug 2023 13:32:55 +0800 [thread overview]
Message-ID: <202308291359.QP042fIw-lkp@intel.com> (raw)
In-Reply-To: <20230828192507.117334-8-bartosz.golaszewski@linaro.org>
Hi Bartosz,
kernel test robot noticed the following build errors:
[auto build test ERROR on robh/for-next]
[also build test ERROR on arm64/for-next/core linus/master v6.5]
[cannot apply to next-20230828]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Bartosz-Golaszewski/firmware-qcom-scm-drop-unneeded-extern-specifiers/20230829-032930
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link: https://lore.kernel.org/r/20230828192507.117334-8-bartosz.golaszewski%40linaro.org
patch subject: [PATCH 07/11] firmware: qcom-scm: use SHM bridge if available
config: m68k-randconfig-r006-20230829 (https://download.01.org/0day-ci/archive/20230829/202308291359.QP042fIw-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230829/202308291359.QP042fIw-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308291359.QP042fIw-lkp@intel.com/
All errors (new ones prefixed by >>):
m68k-linux-ld: drivers/firmware/qcom_scm-smc.o: in function `__scm_smc_call':
>> drivers/firmware/qcom_scm-smc.c:179:(.text+0xa8): undefined reference to `qcom_shm_bridge_alloc'
>> m68k-linux-ld: drivers/firmware/qcom_scm-smc.c:221:(.text+0x1ac): undefined reference to `qcom_shm_bridge_free'
m68k-linux-ld: drivers/firmware/qcom_scm-smc.c:206:(.text+0x23a): undefined reference to `qcom_shm_bridge_free'
vim +179 drivers/firmware/qcom_scm-smc.c
148
149
150 int __scm_smc_call(struct device *dev, const struct qcom_scm_desc *desc,
151 enum qcom_scm_convention qcom_convention,
152 struct qcom_scm_res *res, bool atomic)
153 {
154 int arglen = desc->arginfo & 0xf;
155 int i, ret;
156 dma_addr_t args_phys = 0;
157 void *args_virt = NULL;
158 size_t alloc_len;
159 gfp_t flag = atomic ? GFP_ATOMIC : GFP_KERNEL;
160 u32 smccc_call_type = atomic ? ARM_SMCCC_FAST_CALL : ARM_SMCCC_STD_CALL;
161 u32 qcom_smccc_convention = (qcom_convention == SMC_CONVENTION_ARM_32) ?
162 ARM_SMCCC_SMC_32 : ARM_SMCCC_SMC_64;
163 struct arm_smccc_res smc_res;
164 struct arm_smccc_args smc = {0};
165 bool using_shm_bridge = qcom_scm_shm_bridge_available();
166
167 smc.args[0] = ARM_SMCCC_CALL_VAL(
168 smccc_call_type,
169 qcom_smccc_convention,
170 desc->owner,
171 SCM_SMC_FNID(desc->svc, desc->cmd));
172 smc.args[1] = desc->arginfo;
173 for (i = 0; i < SCM_SMC_N_REG_ARGS; i++)
174 smc.args[i + SCM_SMC_FIRST_REG_IDX] = desc->args[i];
175
176 if (unlikely(arglen > SCM_SMC_N_REG_ARGS)) {
177 alloc_len = SCM_SMC_N_EXT_ARGS * sizeof(u64);
178 if (using_shm_bridge)
> 179 args_virt = qcom_shm_bridge_alloc(NULL,
180 PAGE_ALIGN(alloc_len),
181 flag);
182 else
183 args_virt = kzalloc(PAGE_ALIGN(alloc_len), flag);
184 if (!args_virt)
185 return -ENOMEM;
186
187 if (qcom_smccc_convention == ARM_SMCCC_SMC_32) {
188 __le32 *args = args_virt;
189
190 for (i = 0; i < SCM_SMC_N_EXT_ARGS; i++)
191 args[i] = cpu_to_le32(desc->args[i +
192 SCM_SMC_FIRST_EXT_IDX]);
193 } else {
194 __le64 *args = args_virt;
195
196 for (i = 0; i < SCM_SMC_N_EXT_ARGS; i++)
197 args[i] = cpu_to_le64(desc->args[i +
198 SCM_SMC_FIRST_EXT_IDX]);
199 }
200
201 args_phys = dma_map_single(dev, args_virt, alloc_len,
202 DMA_TO_DEVICE);
203
204 if (dma_mapping_error(dev, args_phys)) {
205 if (using_shm_bridge)
206 qcom_shm_bridge_free(args_virt);
207 else
208 kfree(args_virt);
209 return -ENOMEM;
210 }
211
212 smc.args[SCM_SMC_LAST_REG_IDX] = args_phys;
213 }
214
215 /* ret error check follows after args_virt cleanup*/
216 ret = __scm_smc_do(dev, &smc, &smc_res, atomic);
217
218 if (args_virt) {
219 dma_unmap_single(dev, args_phys, alloc_len, DMA_TO_DEVICE);
220 if (using_shm_bridge)
> 221 qcom_shm_bridge_free(args_virt);
222 else
223 kfree(args_virt);
224 }
225
226 if (ret)
227 return ret;
228
229 if (res) {
230 res->result[0] = smc_res.a1;
231 res->result[1] = smc_res.a2;
232 res->result[2] = smc_res.a3;
233 }
234
235 return (long)smc_res.a0 ? qcom_scm_remap_error(smc_res.a0) : 0;
236
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-08-29 5:36 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-28 19:24 [PATCH 00/11] arm64: qcom: add and enable SHM Bridge support Bartosz Golaszewski
2023-08-28 19:24 ` Bartosz Golaszewski
2023-08-28 19:24 ` [PATCH 01/11] firmware: qcom-scm: drop unneeded 'extern' specifiers Bartosz Golaszewski
2023-08-28 19:24 ` Bartosz Golaszewski
2023-08-29 7:51 ` Krzysztof Kozlowski
2023-08-29 7:51 ` Krzysztof Kozlowski
2023-09-13 19:22 ` Bjorn Andersson
2023-09-13 19:22 ` Bjorn Andersson
2023-08-28 19:24 ` [PATCH 02/11] firmware: qcom-scm: order includes alphabetically Bartosz Golaszewski
2023-08-28 19:24 ` Bartosz Golaszewski
2023-08-29 7:52 ` Krzysztof Kozlowski
2023-08-29 7:52 ` Krzysztof Kozlowski
2023-08-28 19:24 ` [PATCH 03/11] firmware: qcom-scm: atomically assign and read the global __scm pointer Bartosz Golaszewski
2023-08-28 19:24 ` Bartosz Golaszewski
2023-08-29 7:59 ` Krzysztof Kozlowski
2023-08-29 7:59 ` Krzysztof Kozlowski
2023-08-29 12:31 ` Bartosz Golaszewski
2023-08-29 12:31 ` Bartosz Golaszewski
2023-08-29 12:48 ` Krzysztof Kozlowski
2023-08-29 12:48 ` Krzysztof Kozlowski
2023-10-17 8:24 ` Om Prakash Singh
2023-10-17 8:24 ` Om Prakash Singh
2023-10-17 8:29 ` Bartosz Golaszewski
2023-10-17 8:29 ` Bartosz Golaszewski
2023-08-28 19:25 ` [PATCH 04/11] firmware: qcom-scm: add support for SHM bridge operations Bartosz Golaszewski
2023-08-28 19:25 ` Bartosz Golaszewski
2023-08-28 19:25 ` [PATCH 05/11] dt-bindings: document the Qualcomm TEE Shared Memory Bridge Bartosz Golaszewski
2023-08-28 19:25 ` Bartosz Golaszewski
2023-08-29 8:02 ` Krzysztof Kozlowski
2023-08-29 8:02 ` Krzysztof Kozlowski
2023-08-29 9:30 ` Konrad Dybcio
2023-08-29 9:30 ` Konrad Dybcio
2023-08-30 13:48 ` Bartosz Golaszewski
2023-08-30 13:48 ` Bartosz Golaszewski
2023-08-30 14:31 ` Krzysztof Kozlowski
2023-08-30 14:31 ` Krzysztof Kozlowski
2023-08-30 14:39 ` Bartosz Golaszewski
2023-08-30 14:39 ` Bartosz Golaszewski
2023-08-30 14:58 ` Krzysztof Kozlowski
2023-08-30 14:58 ` Krzysztof Kozlowski
2023-08-30 16:21 ` Bartosz Golaszewski
2023-08-30 16:21 ` Bartosz Golaszewski
2023-08-28 19:25 ` [PATCH 06/11] firmware: qcom-shm-bridge: new driver Bartosz Golaszewski
2023-08-28 19:25 ` Bartosz Golaszewski
2023-08-29 8:18 ` Krzysztof Kozlowski
2023-08-29 8:18 ` Krzysztof Kozlowski
2023-08-29 13:24 ` Bartosz Golaszewski
2023-08-29 13:24 ` Bartosz Golaszewski
2023-08-29 16:47 ` Krzysztof Kozlowski
2023-08-29 16:47 ` Krzysztof Kozlowski
2023-08-30 13:09 ` Bartosz Golaszewski
2023-08-30 13:09 ` Bartosz Golaszewski
2023-08-30 14:31 ` Krzysztof Kozlowski
2023-08-30 14:31 ` Krzysztof Kozlowski
2023-08-29 8:22 ` Krzysztof Kozlowski
2023-08-29 8:22 ` Krzysztof Kozlowski
2023-08-28 19:25 ` [PATCH 07/11] firmware: qcom-scm: use SHM bridge if available Bartosz Golaszewski
2023-08-28 19:25 ` Bartosz Golaszewski
2023-08-29 5:32 ` kernel test robot [this message]
2023-08-29 5:32 ` kernel test robot
2023-08-29 5:43 ` kernel test robot
2023-08-29 5:43 ` kernel test robot
2023-08-28 19:25 ` [PATCH 08/11] arm64: defconfig: enable Qualcomm SHM bridge module Bartosz Golaszewski
2023-08-28 19:25 ` Bartosz Golaszewski
2023-08-28 19:25 ` [PATCH 09/11] arm64: dts: qcom: sm8450: enable SHM bridge Bartosz Golaszewski
2023-08-28 19:25 ` Bartosz Golaszewski
2023-08-28 19:25 ` [PATCH 10/11] arm64: dts: qcom: sa8775p: " Bartosz Golaszewski
2023-08-28 19:25 ` Bartosz Golaszewski
2023-08-28 19:25 ` [PATCH 11/11] arm64: dts: qcom: sm8150: " Bartosz Golaszewski
2023-08-28 19:25 ` Bartosz Golaszewski
2023-08-28 21:23 ` [PATCH 00/11] arm64: qcom: add and enable SHM Bridge support Dmitry Baryshkov
2023-08-28 21:23 ` Dmitry Baryshkov
2023-08-29 19:03 ` Bartosz Golaszewski
2023-08-29 19:03 ` Bartosz Golaszewski
2023-08-29 20:48 ` Dmitry Baryshkov
2023-08-29 20:48 ` Dmitry Baryshkov
2023-09-14 19:36 ` (subset) " Bjorn Andersson
2023-09-14 19:36 ` Bjorn Andersson
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=202308291359.QP042fIw-lkp@intel.com \
--to=lkp@intel.com \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=arnd@arndb.de \
--cc=bartosz.golaszewski@linaro.org \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=elder@linaro.org \
--cc=kernel@quicinc.com \
--cc=konrad.dybcio@linaro.org \
--cc=krzk@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=robh+dt@kernel.org \
--cc=srinivas.kandagatla@linaro.org \
--cc=will@kernel.org \
/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.