Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
* [jpirko-mlxsw:wip_attestation_pre_rfc_draft1 20/26] drivers/attestation/core/ctlv.c:968:5: warning: stack frame size (1344) exceeds limit (1280) in 'ctlv_attestation_mr_log_get_query'
@ 2026-10-02 21:59 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-10-02 21:59 UTC (permalink / raw)
  To: Jiri Pirko; +Cc: llvm, oe-kbuild-all

tree:   https://github.com/jpirko/linux_mlxsw wip_attestation_pre_rfc_draft1
head:   a18af4e1b514bf11f88ca42d29b7b68f3b375378
commit: 7c3e9198f02658988c2f0ea335cdfd75b93236e0 [20/26] attestation: introduce the core framework
config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20261003/202610030528.9y9vbjsV-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 5f609f950d2e80addf5566623013db68394334db)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261003/202610030528.9y9vbjsV-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/202610030528.9y9vbjsV-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/attestation/core/ctlv.c:968:5: warning: stack frame size (1344) exceeds limit (1280) in 'ctlv_attestation_mr_log_get_query' [-Wframe-larger-than]
     968 | int ctlv_attestation_mr_log_get_query(void *priv, struct ctlv_op_ctx *ctx,
         |     ^
   1 warning generated.


vim +/ctlv_attestation_mr_log_get_query +968 drivers/attestation/core/ctlv.c

   967	
 > 968	int ctlv_attestation_mr_log_get_query(void *priv, struct ctlv_op_ctx *ctx,
   969					      const struct ctlv_cursor *request,
   970					      struct ctlv_cursor *reply)
   971	{
   972		struct attestation *att = priv;
   973		struct attestation_mr_log_entry *entry;
   974		struct ctlv_cursor item, nested;
   975		unsigned int ids[256];
   976		size_t ids_count = 0, index;
   977		unsigned int start, end;
   978		unsigned long xa_index;
   979		u64 boundary;
   980		u64 cursor = ctlv_op_query_cursor(ctx);
   981		int ret;
   982	
   983		ctlv_attestation_mr_log_get_mr_selection_for_each(&item, request) {
   984			u64 id = ctlv_attestation_mr_log_get_selection_mr_id_get(&item);
   985	
   986			if (id > UINT_MAX)
   987				return -ERANGE;
   988			for (index = 0; index < ids_count; index++)
   989				if (ids[index] == id)
   990					return -EINVAL;
   991			ids[ids_count++] = id;
   992		}
   993		if (cursor)
   994			boundary = ctlv_op_query_generation(ctx);
   995		else
   996			boundary = att->log->generation;
   997		if (boundary > UINT_MAX || boundary > att->log->generation)
   998			return -ESTALE;
   999		end = boundary;
  1000		if (ctlv_attestation_mr_log_get_mr_end_generation_present(request)) {
  1001			u64 requested_end =
  1002				ctlv_attestation_mr_log_get_mr_end_generation_get(request);
  1003	
  1004			end = min_t(u64, end, requested_end);
  1005		}
  1006		start = 1;
  1007		if (ctlv_attestation_mr_log_get_mr_start_generation_present(request)) {
  1008			u64 value =
  1009				ctlv_attestation_mr_log_get_mr_start_generation_get(request);
  1010	
  1011			if (value > UINT_MAX)
  1012				return -EINVAL;
  1013			start = value;
  1014		}
  1015		if (att->log->generation && start > end)
  1016			return -EINVAL;
  1017		if (!cursor && att->log->generation) {
  1018			if (!ctlv_attestation_mr_start_generation_put(reply, start) ||
  1019			    !ctlv_attestation_mr_end_generation_put(reply, end))
  1020				return -EMSGSIZE;
  1021		}
  1022		xa_index = cursor ? cursor : start;
  1023		entry = xa_find(&att->log->entries, &xa_index, end, XA_PRESENT);
  1024		while (entry &&
  1025		       !attestation_log_selected(ids, ids_count, entry->mr_id))
  1026			entry = xa_find_after(&att->log->entries, &xa_index, end,
  1027					      XA_PRESENT);
  1028		if (!entry)
  1029			return ctlv_op_query_done(ctx, boundary);
  1030		if (!cursor)
  1031			return ctlv_op_query_more(ctx, boundary,
  1032						  entry->mr_generation);
  1033		if (!ctlv_attestation_log_entry_start(reply, &nested))
  1034			return -EMSGSIZE;
  1035		ret = attestation_mr_log_entry_encode(&nested, entry);
  1036		ctlv_nest_end(&nested);
  1037		if (ret)
  1038			return ret;
  1039		entry = xa_find_after(&att->log->entries, &xa_index, end, XA_PRESENT);
  1040		while (entry &&
  1041		       !attestation_log_selected(ids, ids_count, entry->mr_id))
  1042			entry = xa_find_after(&att->log->entries, &xa_index, end,
  1043					      XA_PRESENT);
  1044		if (entry)
  1045			return ctlv_op_query_more(ctx, boundary,
  1046						  entry->mr_generation);
  1047		return ctlv_op_query_done(ctx, boundary);
  1048	}
  1049	

--
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:[~2026-10-02 21:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-02 21:59 [jpirko-mlxsw:wip_attestation_pre_rfc_draft1 20/26] drivers/attestation/core/ctlv.c:968:5: warning: stack frame size (1344) exceeds limit (1280) in 'ctlv_attestation_mr_log_get_query' kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox