All of lore.kernel.org
 help / color / mirror / Atom feed
* [jpirko-mlxsw:wip_attestation_all_2 48/68] lib/ctlv/tests/event_kunit.c:281 ctlv_event_test_creator_misuse() warn: passing zero to 'PTR_ERR'
@ 2026-11-14  0:54 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-11-14  0:54 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

Unfiltered warning: this smatch report is sent as-is and has not been
reviewed for false positives, so please treat it with due skepticism.

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Jiri Pirko <jiri@nvidia.com>

tree:   https://github.com/jpirko/linux_mlxsw wip_attestation_all_2
head:   7ff5e548abbc2312431d4eea9ad283347963a6e2
commit: 3e5d2a45aaa3688da1de5a2430c2993c39451793 [48/68] ctlv: Add KUnit tests
:::::: branch date: 9 hours ago
:::::: commit date: 9 hours ago
config: um-randconfig-2200-20261114 (https://download.01.org/0day-ci/archive/20261114/202611140128.XwkaCdD4-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
smatch: v0.5.0-9187-g5189e3fb

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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202611140128.XwkaCdD4-lkp@intel.com/

New smatch warnings:
lib/ctlv/tests/event_kunit.c:281 ctlv_event_test_creator_misuse() warn: passing zero to 'PTR_ERR'
lib/ctlv/tests/event_kunit.c:310 ctlv_event_test_a_dead_device() warn: passing zero to 'PTR_ERR'
lib/ctlv/tests/event_kunit.c:364 ctlv_event_test_explicit_loss() warn: passing zero to 'PTR_ERR'
lib/ctlv/tests/event_kunit.c:649 ctlv_event_test_context_lifetime() warn: passing zero to 'PTR_ERR'
lib/ctlv/tests/blob_kunit.c:608 ctlv_blob_test_a_blob_outside_the_buffer() warn: passing zero to 'PTR_ERR'
lib/ctlv/tests/blob_kunit.c:632 ctlv_blob_test_stale_cursor_is_rejected() warn: passing zero to 'PTR_ERR'
lib/ctlv/tests/blob_kunit.c:851 ctlv_blob_test_aliased_device_mappings() warn: passing zero to 'PTR_ERR'
lib/ctlv/tests/blob_kunit.c:904 ctlv_blob_test_cpu_and_device_access_are_serial() warn: passing zero to 'PTR_ERR'
lib/ctlv/tests/blob_kunit.c:979 ctlv_blob_test_exporter_failures() warn: passing zero to 'PTR_ERR'

Old smatch warnings:
lib/ctlv/tests/event_kunit.c:287 ctlv_event_test_creator_misuse() warn: passing zero to 'PTR_ERR'
lib/ctlv/tests/event_kunit.c:290 ctlv_event_test_creator_misuse() warn: passing zero to 'PTR_ERR'

vim +/PTR_ERR +281 lib/ctlv/tests/event_kunit.c

3e5d2a45aaa368 Jiri Pirko 2026-08-26  270  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  271  static void ctlv_event_test_creator_misuse(struct kunit *test)
3e5d2a45aaa368 Jiri Pirko 2026-08-26  272  {
3e5d2a45aaa368 Jiri Pirko 2026-08-26  273  	struct ctlv_event_test_fixture *fx = ctlv_event_test_fixture_open(test);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  274  	struct ctlv_cursor *payload;
3e5d2a45aaa368 Jiri Pirko 2026-08-26  275  	struct ctlv_op_ctx *ctx;
3e5d2a45aaa368 Jiri Pirko 2026-08-26  276  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  277  	kunit_warning_suppress(test) {
3e5d2a45aaa368 Jiri Pirko 2026-08-26  278  		/* An op of this device that is executed rather than emitted. */
3e5d2a45aaa368 Jiri Pirko 2026-08-26  279  		ctx = ctlv_event_create(&fx->ctlv, CTLV_FIXTURE_OP_NOOP,
3e5d2a45aaa368 Jiri Pirko 2026-08-26  280  					&payload, GFP_KERNEL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26 @281  		KUNIT_EXPECT_EQ(test, PTR_ERR(ctx), -EINVAL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  282  		/* An op of a family this device is not of. */
3e5d2a45aaa368 Jiri Pirko 2026-08-26  283  		ctx = ctlv_event_create(&fx->ctlv,
3e5d2a45aaa368 Jiri Pirko 2026-08-26  284  					CTLV_OP(CTLV_FAMILY_FIXTURE + 1,
3e5d2a45aaa368 Jiri Pirko 2026-08-26  285  						1),
3e5d2a45aaa368 Jiri Pirko 2026-08-26  286  					&payload, GFP_KERNEL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  287  		KUNIT_EXPECT_EQ(test, PTR_ERR(ctx), -EINVAL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  288  		/* And one of no family at all. */
3e5d2a45aaa368 Jiri Pirko 2026-08-26  289  		ctx = ctlv_event_create(&fx->ctlv, 0, &payload, GFP_KERNEL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  290  		KUNIT_EXPECT_EQ(test, PTR_ERR(ctx), -EINVAL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  291  		KUNIT_EXPECT_SUPPRESSED_WARNING_COUNT(test, 3);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  292  	}
3e5d2a45aaa368 Jiri Pirko 2026-08-26  293  	KUNIT_EXPECT_EQ(test, ctlv_event_test_queued(fx), 0);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  294  	KUNIT_EXPECT_EQ(test, fx->cfile.sequence, 0);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  295  }
3e5d2a45aaa368 Jiri Pirko 2026-08-26  296  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  297  static void ctlv_event_test_a_dead_device(struct kunit *test)
3e5d2a45aaa368 Jiri Pirko 2026-08-26  298  {
3e5d2a45aaa368 Jiri Pirko 2026-08-26  299  	struct ctlv_event_test_fixture *fx = ctlv_event_test_fixture_open(test);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  300  	struct ctlv_cursor *payload;
3e5d2a45aaa368 Jiri Pirko 2026-08-26  301  	struct ctlv_op_ctx *ctx;
3e5d2a45aaa368 Jiri Pirko 2026-08-26  302  	struct ctlv_event *event;
3e5d2a45aaa368 Jiri Pirko 2026-08-26  303  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  304  	ctlv_event_test_subscribe(test, fx, CTLV_FIXTURE_OP_PINGED);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  305  	WRITE_ONCE(fx->ctlv.family, NULL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  306  	ctlv_event_device_dead(&fx->ctlv);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  307  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  308  	ctx = ctlv_event_create(&fx->ctlv, CTLV_FIXTURE_OP_PINGED, &payload,
3e5d2a45aaa368 Jiri Pirko 2026-08-26  309  				GFP_KERNEL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26 @310  	KUNIT_EXPECT_EQ(test, PTR_ERR(ctx), -ENODEV);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  311  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  312  	/* What was queued instead, out of storage this open reserved. */
3e5d2a45aaa368 Jiri Pirko 2026-08-26  313  	event = ctlv_event_test_take(fx);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  314  	KUNIT_ASSERT_NOT_NULL(test, event);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  315  	KUNIT_EXPECT_TRUE(test, event->reserved);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  316  	KUNIT_EXPECT_EQ(test, event->hdr.op_id, CTLV_OP_DEVICE_REMOVED);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  317  	KUNIT_EXPECT_EQ(test, event->hdr.sequence, 1);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  318  	KUNIT_EXPECT_EQ(test, event->hdr.length, event->len);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  319  	KUNIT_EXPECT_EQ(test, fx->cfile.queue_used, fx->ctlv.queue_reserved);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  320  	KUNIT_EXPECT_EQ(test, ctlv_event_test_queued(fx), 0);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  321  }
3e5d2a45aaa368 Jiri Pirko 2026-08-26  322  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  323  /* Dropped without queueing, and without taking a sequence number. */
3e5d2a45aaa368 Jiri Pirko 2026-08-26  324  static void ctlv_event_test_an_event_nobody_wants(struct kunit *test)
3e5d2a45aaa368 Jiri Pirko 2026-08-26  325  {
3e5d2a45aaa368 Jiri Pirko 2026-08-26  326  	struct ctlv_event_test_fixture *fx = ctlv_event_test_fixture_open(test);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  327  	struct ctlv_cursor *payload;
3e5d2a45aaa368 Jiri Pirko 2026-08-26  328  	struct ctlv_op_ctx *ctx;
3e5d2a45aaa368 Jiri Pirko 2026-08-26  329  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  330  	ctx = ctlv_event_create(&fx->ctlv, CTLV_FIXTURE_OP_PINGED, &payload,
3e5d2a45aaa368 Jiri Pirko 2026-08-26  331  				GFP_KERNEL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  332  	KUNIT_ASSERT_FALSE(test, IS_ERR(ctx));
3e5d2a45aaa368 Jiri Pirko 2026-08-26  333  	KUNIT_EXPECT_EQ(test, ctlv_event_emit(ctx), 0);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  334  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  335  	KUNIT_EXPECT_EQ(test, ctlv_event_test_queued(fx), 0);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  336  	KUNIT_EXPECT_EQ(test, fx->cfile.sequence, 0);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  337  	KUNIT_EXPECT_EQ(test, fx->cfile.queue_used, fx->ctlv.queue_reserved);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  338  }
3e5d2a45aaa368 Jiri Pirko 2026-08-26  339  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  340  static void ctlv_event_test_explicit_loss(struct kunit *test)
3e5d2a45aaa368 Jiri Pirko 2026-08-26  341  {
3e5d2a45aaa368 Jiri Pirko 2026-08-26  342  	struct ctlv_event_test_fixture *fx = ctlv_event_test_fixture_open(test);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  343  	struct ctlv_event_test_reader_waiter waiter = {
3e5d2a45aaa368 Jiri Pirko 2026-08-26  344  		.cfile = &fx->cfile,
3e5d2a45aaa368 Jiri Pirko 2026-08-26  345  	};
3e5d2a45aaa368 Jiri Pirko 2026-08-26  346  	struct ctlv_file *other = ctlv_event_test_other_open(test, fx);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  347  	struct task_struct *task;
3e5d2a45aaa368 Jiri Pirko 2026-08-26  348  	struct ctlv_cursor *payload;
3e5d2a45aaa368 Jiri Pirko 2026-08-26  349  	struct ctlv_op_ctx *ctx;
3e5d2a45aaa368 Jiri Pirko 2026-08-26  350  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  351  	init_completion(&waiter.entered);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  352  	init_completion(&waiter.done);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  353  	ctlv_event_test_subscribe(test, fx, CTLV_FIXTURE_OP_PINGED);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  354  	task = kthread_run(ctlv_event_test_reader_wait, &waiter, "ctlv-event-reader");
3e5d2a45aaa368 Jiri Pirko 2026-08-26  355  	KUNIT_ASSERT_FALSE(test, IS_ERR(task));
3e5d2a45aaa368 Jiri Pirko 2026-08-26  356  	wait_for_completion(&waiter.entered);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  357  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  358  	kunit_activate_static_stub(test, ctlv_event_create,
3e5d2a45aaa368 Jiri Pirko 2026-08-26  359  				   ctlv_event_test_create_nomem);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  360  	kunit_activate_static_stub(test, ctlv_event_alloc,
3e5d2a45aaa368 Jiri Pirko 2026-08-26  361  				   ctlv_event_test_record_unexpected);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  362  	ctx = ctlv_event_create(&fx->ctlv, CTLV_FIXTURE_OP_PINGED,
3e5d2a45aaa368 Jiri Pirko 2026-08-26  363  				&payload, GFP_KERNEL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26 @364  	KUNIT_EXPECT_EQ(test, PTR_ERR(ctx), -ENOMEM);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  365  	KUNIT_EXPECT_EQ(test, fx->cfile.sequence, 0);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  366  	ctlv_event_lost(&fx->ctlv, CTLV_FIXTURE_OP_PINGED);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  367  	kunit_deactivate_static_stub(test, ctlv_event_alloc);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  368  	kunit_deactivate_static_stub(test, ctlv_event_create);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  369  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  370  	KUNIT_EXPECT_NE(test, wait_for_completion_timeout(&waiter.done, HZ),
3e5d2a45aaa368 Jiri Pirko 2026-08-26  371  			0UL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  372  	kthread_stop(task);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  373  	KUNIT_EXPECT_EQ(test, waiter.result, 0);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  374  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  375  	ctx = ctlv_event_create(&fx->ctlv, CTLV_FIXTURE_OP_PINGED,
3e5d2a45aaa368 Jiri Pirko 2026-08-26  376  				&payload, GFP_KERNEL);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  377  	KUNIT_ASSERT_FALSE(test, IS_ERR(ctx));
3e5d2a45aaa368 Jiri Pirko 2026-08-26  378  	KUNIT_EXPECT_EQ(test, ctlv_event_emit(ctx), 0);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  379  	ctlv_event_lost(&fx->ctlv, CTLV_FIXTURE_OP_PINGED);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  380  
3e5d2a45aaa368 Jiri Pirko 2026-08-26  381  	KUNIT_EXPECT_EQ(test, fx->cfile.sequence, 3);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  382  	KUNIT_EXPECT_TRUE(test, fx->cfile.overflowing);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  383  	KUNIT_EXPECT_EQ(test, fx->cfile.first_dropped, 1);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  384  	KUNIT_EXPECT_EQ(test, fx->cfile.last_dropped, 3);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  385  	KUNIT_EXPECT_EQ(test, fx->cfile.dropped, 3);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  386  	KUNIT_EXPECT_EQ(test, ctlv_event_test_queued(fx), 1);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  387  	KUNIT_EXPECT_EQ(test, other->sequence, 0);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  388  	KUNIT_EXPECT_FALSE(test, other->overflowing);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  389  	KUNIT_EXPECT_EQ(test, ctlv_event_test_file_queued(other), 0);
3e5d2a45aaa368 Jiri Pirko 2026-08-26  390  }
3e5d2a45aaa368 Jiri Pirko 2026-08-26  391  

-- 
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-11-14  0:54 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-14  0:54 [jpirko-mlxsw:wip_attestation_all_2 48/68] lib/ctlv/tests/event_kunit.c:281 ctlv_event_test_creator_misuse() warn: passing zero to 'PTR_ERR' 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.