All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.