All of lore.kernel.org
 help / color / mirror / Atom feed
* [jgunthorpe:smmuv3_nesting 8/13] drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c:37:9: error: implicit declaration of function 'arm_smmu_make_s2_domain_ste'
@ 2024-10-07  6:48 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-10-07  6:48 UTC (permalink / raw)
  To: Jason Gunthorpe; +Cc: oe-kbuild-all

tree:   https://github.com/jgunthorpe/linux smmuv3_nesting
head:   001e0c0e12b947eb9f8c10a4a9af17d3e553778d
commit: 78386173763b7040e4a9309bc06818b1b915b9d9 [8/13] iommu/arm-smmu-v3: Support IOMMU_DOMAIN_NESTED
config: arm64-randconfig-r051-20241007 (https://download.01.org/0day-ci/archive/20241007/202410071420.v34rXHLS-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241007/202410071420.v34rXHLS-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/202410071420.v34rXHLS-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c: In function 'arm_smmu_make_nested_cd_table_ste':
>> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c:37:9: error: implicit declaration of function 'arm_smmu_make_s2_domain_ste' [-Wimplicit-function-declaration]
      37 |         arm_smmu_make_s2_domain_ste(target, master, nested_domain->s2_parent,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c: In function 'arm_smmu_make_nested_domain_ste':
>> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c:82:17: error: implicit declaration of function 'arm_smmu_make_abort_ste'; did you mean 'arm_smmu_make_s1_cd'? [-Wimplicit-function-declaration]
      82 |                 arm_smmu_make_abort_ste(target);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
         |                 arm_smmu_make_s1_cd


vim +/arm_smmu_make_s2_domain_ste +37 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c

    32	
    33	static void arm_smmu_make_nested_cd_table_ste(
    34		struct arm_smmu_ste *target, struct arm_smmu_master *master,
    35		struct arm_smmu_nested_domain *nested_domain, bool ats_enabled)
    36	{
  > 37		arm_smmu_make_s2_domain_ste(target, master, nested_domain->s2_parent,
    38					    ats_enabled);
    39	
    40		target->data[0] = cpu_to_le64(STRTAB_STE_0_V |
    41					      FIELD_PREP(STRTAB_STE_0_CFG,
    42							 STRTAB_STE_0_CFG_NESTED));
    43		target->data[0] |= nested_domain->ste[0] &
    44				   ~cpu_to_le64(STRTAB_STE_0_CFG);
    45		target->data[1] |= nested_domain->ste[1];
    46	}
    47	
    48	/*
    49	 * Create a physical STE from the virtual STE that userspace provided when it
    50	 * created the nested domain. Using the vSTE userspace can request:
    51	 * - Non-valid STE
    52	 * - Abort STE
    53	 * - Bypass STE (install the S2, no CD table)
    54	 * - CD table STE (install the S2 and the userspace CD table)
    55	 */
    56	static void arm_smmu_make_nested_domain_ste(
    57		struct arm_smmu_ste *target, struct arm_smmu_master *master,
    58		struct arm_smmu_nested_domain *nested_domain, bool ats_enabled)
    59	{
    60		unsigned int cfg =
    61			FIELD_GET(STRTAB_STE_0_CFG, le64_to_cpu(nested_domain->ste[0]));
    62	
    63		/*
    64		 * Userspace can request a non-valid STE through the nesting interface.
    65		 * We relay that into an abort physical STE with the intention that
    66		 * C_BAD_STE for this SID can be generated to userspace.
    67		 */
    68		if (!(nested_domain->ste[0] & cpu_to_le64(STRTAB_STE_0_V)))
    69			cfg = STRTAB_STE_0_CFG_ABORT;
    70	
    71		switch (cfg) {
    72		case STRTAB_STE_0_CFG_S1_TRANS:
    73			arm_smmu_make_nested_cd_table_ste(target, master, nested_domain,
    74							  ats_enabled);
    75			break;
    76		case STRTAB_STE_0_CFG_BYPASS:
    77			arm_smmu_make_s2_domain_ste(
    78				target, master, nested_domain->s2_parent, ats_enabled);
    79			break;
    80		case STRTAB_STE_0_CFG_ABORT:
    81		default:
  > 82			arm_smmu_make_abort_ste(target);
    83			break;
    84		}
    85	}
    86	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-10-07  6:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-07  6:48 [jgunthorpe:smmuv3_nesting 8/13] drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c:37:9: error: implicit declaration of function 'arm_smmu_make_s2_domain_ste' kernel test robot

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.