Linux Media Controller development
 help / color / mirror / Atom feed
* [sailus-media-tree:metadata 163/169] drivers/media/pci/intel/ipu6/ipu7-fw-isys.c:599:3: error: cannot jump from this goto statement to its label
@ 2026-09-13 22:15 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-13 22:15 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: llvm, oe-kbuild-all, linux-media

tree:   git://linuxtv.org/sailus/media_tree.git metadata
head:   357c2e168b861a3df80c68a9c44de9c9c282ec46
commit: 6757a837e28b868ce4068fb422f168f92ced6c1a [163/169] media: ipu6: Serialise access to stream pointers by isys stream_lock
config: i386-randconfig-012-20260913 (https://download.01.org/0day-ci/archive/20260914/202609140614.KMCttn8e-lkp@intel.com/config)
compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260914/202609140614.KMCttn8e-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/202609140614.KMCttn8e-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/media/pci/intel/ipu6/ipu7-fw-isys.c:599:3: error: cannot jump from this goto statement to its label
     599 |                 goto leave;
         |                 ^
   drivers/media/pci/intel/ipu6/ipu7-fw-isys.c:602:2: note: jump bypasses initialization of variable with __attribute__((cleanup))
     602 |         guard(spinlock_irqsave)(&isys->streams_lock);
         |         ^
   include/linux/cleanup.h:423:2: note: expanded from macro 'guard'
     423 |         CLASS(_name, __UNIQUE_ID(guard))
         |         ^
   include/linux/cleanup.h:303:3: note: expanded from macro 'CLASS'
     303 |                 class_##_name##_constructor
         |                 ^
   <scratch space>:27:1: note: expanded from here
      27 | class_spinlock_irqsave_constructor
         | ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:16:23: note: expanded from macro '__PASTE'
      16 | #define __PASTE(a, b) ___PASTE(a, b)
         |                       ^
   include/linux/compiler_types.h:15:24: note: expanded from macro '___PASTE'
      15 | #define ___PASTE(a, b) a##b
         |                        ^
   <scratch space>:33:1: note: expanded from here
      33 | __UNIQUE_ID_unlock_437
         | ^
   drivers/media/pci/intel/ipu6/ipu7-fw-isys.c:602:2: note: jump bypasses initialization of variable with __attribute__((cleanup))
   include/linux/cleanup.h:423:15: note: expanded from macro 'guard'
     423 |         CLASS(_name, __UNIQUE_ID(guard))
         |                      ^
   include/linux/compiler.h:165:2: note: expanded from macro '__UNIQUE_ID'
     165 |         __PASTE(__UNIQUE_ID_,                                   \
         |         ^
   include/linux/compiler_types.h:16:23: note: expanded from macro '__PASTE'
      16 | #define __PASTE(a, b) ___PASTE(a, b)
         |                       ^
   include/linux/compiler_types.h:15:24: note: expanded from macro '___PASTE'
      15 | #define ___PASTE(a, b) a##b
         |                        ^
   <scratch space>:21:1: note: expanded from here
      21 | __UNIQUE_ID_guard_436
         | ^
   1 error generated.


vim +599 drivers/media/pci/intel/ipu6/ipu7-fw-isys.c

f268203d74ff25 Antti Laakso 2026-08-27  542  
f268203d74ff25 Antti Laakso 2026-08-27  543  static int ipu7_isys_isr_one(struct ipu6_bus_device *adev)
f268203d74ff25 Antti Laakso 2026-08-27  544  {
f268203d74ff25 Antti Laakso 2026-08-27  545  	struct ipu6_isys *isys = ipu6_bus_get_drvdata(adev);
f268203d74ff25 Antti Laakso 2026-08-27  546  	struct ipu6_isys_stream *stream = NULL;
f268203d74ff25 Antti Laakso 2026-08-27  547  	struct device *dev = &adev->auxdev.dev;
f268203d74ff25 Antti Laakso 2026-08-27  548  	struct ipu6_isys_csi2 *csi2 = NULL;
f268203d74ff25 Antti Laakso 2026-08-27  549  	struct ipu7_fw_isys_msg_err err_info;
f268203d74ff25 Antti Laakso 2026-08-27  550  	struct isys_fw_msgs *isys_fw_msg;
f268203d74ff25 Antti Laakso 2026-08-27  551  	struct ipu7_insys_resp *resp;
f268203d74ff25 Antti Laakso 2026-08-27  552  	u64 ts;
f268203d74ff25 Antti Laakso 2026-08-27  553  
f268203d74ff25 Antti Laakso 2026-08-27  554  	if (!isys->fwctx)
f268203d74ff25 Antti Laakso 2026-08-27  555  		return 1;
f268203d74ff25 Antti Laakso 2026-08-27  556  
f268203d74ff25 Antti Laakso 2026-08-27  557  	resp = ipu7_fw_isys_get_resp(isys);
f268203d74ff25 Antti Laakso 2026-08-27  558  	if (!resp)
f268203d74ff25 Antti Laakso 2026-08-27  559  		return 1;
f268203d74ff25 Antti Laakso 2026-08-27  560  
f268203d74ff25 Antti Laakso 2026-08-27  561  	if (resp->type >= N_IPU7_INSYS_RESP_TYPE) {
f268203d74ff25 Antti Laakso 2026-08-27  562  		dev_err(dev, "Unknown response type %u stream %u\n",
f268203d74ff25 Antti Laakso 2026-08-27  563  			resp->type, resp->stream_id);
f268203d74ff25 Antti Laakso 2026-08-27  564  		ipu7_fw_isys_put_resp(isys);
f268203d74ff25 Antti Laakso 2026-08-27  565  		return 1;
f268203d74ff25 Antti Laakso 2026-08-27  566  	}
f268203d74ff25 Antti Laakso 2026-08-27  567  
f268203d74ff25 Antti Laakso 2026-08-27  568  	err_info = resp->error_info;
f268203d74ff25 Antti Laakso 2026-08-27  569  	ts = ((u64)resp->timestamp[1] << 32) | resp->timestamp[0];
f268203d74ff25 Antti Laakso 2026-08-27  570  
f268203d74ff25 Antti Laakso 2026-08-27  571  	if (err_info.err_group == INSYS_MSG_ERR_GROUP_CAPTURE &&
f268203d74ff25 Antti Laakso 2026-08-27  572  	    err_info.err_code == INSYS_MSG_ERR_CAPTURE_SYNC_FRAME_DROP) {
f268203d74ff25 Antti Laakso 2026-08-27  573  		/* receive a sp w/o command, firmware drop it */
f268203d74ff25 Antti Laakso 2026-08-27  574  		dev_dbg(dev, "FRAME DROP: %02u %s stream %u\n",
f268203d74ff25 Antti Laakso 2026-08-27  575  			resp->type, is_fw_msg[resp->type].msg,
f268203d74ff25 Antti Laakso 2026-08-27  576  			resp->stream_id);
f268203d74ff25 Antti Laakso 2026-08-27  577  		dev_dbg(dev, "\tpin %u buf_id %llx frame %u\n",
f268203d74ff25 Antti Laakso 2026-08-27  578  			resp->pin_id, resp->buf_id, resp->frame_id);
f268203d74ff25 Antti Laakso 2026-08-27  579  		dev_dbg(dev, "\terror group %u code %u details [%u %u]\n",
f268203d74ff25 Antti Laakso 2026-08-27  580  			err_info.err_group, err_info.err_code,
f268203d74ff25 Antti Laakso 2026-08-27  581  			err_info.err_detail[0], err_info.err_detail[1]);
f268203d74ff25 Antti Laakso 2026-08-27  582  	} else if (err_info.err_code) {
f268203d74ff25 Antti Laakso 2026-08-27  583  		dev_err(dev, "%02u %s stream %u pin %u buf_id %llx frame %u\n",
f268203d74ff25 Antti Laakso 2026-08-27  584  			resp->type, is_fw_msg[resp->type].msg, resp->stream_id,
f268203d74ff25 Antti Laakso 2026-08-27  585  			resp->pin_id, resp->buf_id, resp->frame_id);
f268203d74ff25 Antti Laakso 2026-08-27  586  		dev_err(dev, "\terror group %u code %u details [%u %u]\n",
f268203d74ff25 Antti Laakso 2026-08-27  587  			err_info.err_group, err_info.err_code,
f268203d74ff25 Antti Laakso 2026-08-27  588  			err_info.err_detail[0], err_info.err_detail[1]);
f268203d74ff25 Antti Laakso 2026-08-27  589  	} else {
f268203d74ff25 Antti Laakso 2026-08-27  590  		dev_dbg(dev, "%02u %s stream %u pin %u buf_id %llx frame %u\n",
f268203d74ff25 Antti Laakso 2026-08-27  591  			resp->type, is_fw_msg[resp->type].msg, resp->stream_id,
f268203d74ff25 Antti Laakso 2026-08-27  592  			resp->pin_id, resp->buf_id, resp->frame_id);
f268203d74ff25 Antti Laakso 2026-08-27  593  		dev_dbg(dev, "\tts %llu\n", ts);
f268203d74ff25 Antti Laakso 2026-08-27  594  	}
f268203d74ff25 Antti Laakso 2026-08-27  595  
f268203d74ff25 Antti Laakso 2026-08-27  596  	if (resp->stream_id >= IPU7_ISYS_MAX_STREAMS) {
f268203d74ff25 Antti Laakso 2026-08-27  597  		dev_err(dev, "bad stream handle %u\n",
f268203d74ff25 Antti Laakso 2026-08-27  598  			resp->stream_id);
f268203d74ff25 Antti Laakso 2026-08-27 @599  		goto leave;
f268203d74ff25 Antti Laakso 2026-08-27  600  	}
f268203d74ff25 Antti Laakso 2026-08-27  601  
6757a837e28b86 Sakari Ailus 2025-12-18  602  	guard(spinlock_irqsave)(&isys->streams_lock);
6757a837e28b86 Sakari Ailus 2025-12-18  603  
99f62d82955331 Sakari Ailus 2026-06-26  604  	stream = resp->stream_id < IPU6_ISYS_MAX_STREAMS ?
99f62d82955331 Sakari Ailus 2026-06-26  605  		isys->streams_by_handle[resp->stream_id] : NULL;
f268203d74ff25 Antti Laakso 2026-08-27  606  	if (!stream) {
f268203d74ff25 Antti Laakso 2026-08-27  607  		dev_err(dev, "stream of stream_handle %u is unused\n",
f268203d74ff25 Antti Laakso 2026-08-27  608  			resp->stream_id);
f268203d74ff25 Antti Laakso 2026-08-27  609  		goto leave;
f268203d74ff25 Antti Laakso 2026-08-27  610  	}
f268203d74ff25 Antti Laakso 2026-08-27  611  
f268203d74ff25 Antti Laakso 2026-08-27  612  	stream->error = err_info.err_code;
f268203d74ff25 Antti Laakso 2026-08-27  613  
f268203d74ff25 Antti Laakso 2026-08-27  614  	if (stream->asd)
f268203d74ff25 Antti Laakso 2026-08-27  615  		csi2 = ipu6_isys_subdev_to_csi2(stream->asd);
f268203d74ff25 Antti Laakso 2026-08-27  616  
f268203d74ff25 Antti Laakso 2026-08-27  617  	switch (resp->type) {
f268203d74ff25 Antti Laakso 2026-08-27  618  	case IPU7_INSYS_RESP_TYPE_STREAM_OPEN_DONE:
f268203d74ff25 Antti Laakso 2026-08-27  619  		complete(&stream->stream_open_completion);
f268203d74ff25 Antti Laakso 2026-08-27  620  		break;
f268203d74ff25 Antti Laakso 2026-08-27  621  	case IPU7_INSYS_RESP_TYPE_STREAM_CLOSE_ACK:
f268203d74ff25 Antti Laakso 2026-08-27  622  		complete(&stream->stream_close_completion);
f268203d74ff25 Antti Laakso 2026-08-27  623  		break;
f268203d74ff25 Antti Laakso 2026-08-27  624  	case IPU7_INSYS_RESP_TYPE_STREAM_START_AND_CAPTURE_ACK:
f268203d74ff25 Antti Laakso 2026-08-27  625  		complete(&stream->stream_start_completion);
f268203d74ff25 Antti Laakso 2026-08-27  626  		break;
f268203d74ff25 Antti Laakso 2026-08-27  627  	case IPU7_INSYS_RESP_TYPE_STREAM_ABORT_ACK:
f268203d74ff25 Antti Laakso 2026-08-27  628  		complete(&stream->stream_stop_completion);
f268203d74ff25 Antti Laakso 2026-08-27  629  		break;
f268203d74ff25 Antti Laakso 2026-08-27  630  	case IPU7_INSYS_RESP_TYPE_STREAM_FLUSH_ACK:
f268203d74ff25 Antti Laakso 2026-08-27  631  		complete(&stream->stream_stop_completion);
f268203d74ff25 Antti Laakso 2026-08-27  632  		break;
f268203d74ff25 Antti Laakso 2026-08-27  633  	case IPU7_INSYS_RESP_TYPE_PIN_DATA_READY:
f268203d74ff25 Antti Laakso 2026-08-27  634  		/*
f268203d74ff25 Antti Laakso 2026-08-27  635  		 * firmware only release the capture msg until software
f268203d74ff25 Antti Laakso 2026-08-27  636  		 * get pin_data_ready event
f268203d74ff25 Antti Laakso 2026-08-27  637  		 */
f268203d74ff25 Antti Laakso 2026-08-27  638  		isys_fw_msg = container_of((void *)(uintptr_t)resp->buf_id,
f268203d74ff25 Antti Laakso 2026-08-27  639  					   struct isys_fw_msgs, dummy);
f268203d74ff25 Antti Laakso 2026-08-27  640  
f268203d74ff25 Antti Laakso 2026-08-27  641  		ipu6_put_fw_msg_buf(ipu6_bus_get_drvdata(adev), isys_fw_msg);
f268203d74ff25 Antti Laakso 2026-08-27  642  		if (resp->pin_id < IPU6_ISYS_OUTPUT_PINS)
f268203d74ff25 Antti Laakso 2026-08-27  643  			ipu6_stream_buf_ready(stream, resp->pin_id,
f268203d74ff25 Antti Laakso 2026-08-27  644  					      resp->pin.addr, ts, 0);
f268203d74ff25 Antti Laakso 2026-08-27  645  		else
f268203d74ff25 Antti Laakso 2026-08-27  646  			dev_err(dev, "No handler for pin %u ready\n",
f268203d74ff25 Antti Laakso 2026-08-27  647  				resp->pin_id);
f268203d74ff25 Antti Laakso 2026-08-27  648  		if (csi2)
f268203d74ff25 Antti Laakso 2026-08-27  649  			ipu7_isys_csi2_error(csi2);
f268203d74ff25 Antti Laakso 2026-08-27  650  
f268203d74ff25 Antti Laakso 2026-08-27  651  		break;
f268203d74ff25 Antti Laakso 2026-08-27  652  	case IPU7_INSYS_RESP_TYPE_STREAM_CAPTURE_ACK:
f268203d74ff25 Antti Laakso 2026-08-27  653  		break;
f268203d74ff25 Antti Laakso 2026-08-27  654  	case IPU7_INSYS_RESP_TYPE_STREAM_START_AND_CAPTURE_DONE:
f268203d74ff25 Antti Laakso 2026-08-27  655  	case IPU7_INSYS_RESP_TYPE_STREAM_CAPTURE_DONE:
f268203d74ff25 Antti Laakso 2026-08-27  656  		break;
f268203d74ff25 Antti Laakso 2026-08-27  657  	case IPU7_INSYS_RESP_TYPE_FRAME_SOF:
f268203d74ff25 Antti Laakso 2026-08-27  658  		if (csi2)
f268203d74ff25 Antti Laakso 2026-08-27  659  			ipu6_isys_csi2_sof_event_by_stream(stream);
f268203d74ff25 Antti Laakso 2026-08-27  660  
f268203d74ff25 Antti Laakso 2026-08-27  661  		stream->seq[stream->seq_index].sequence =
f268203d74ff25 Antti Laakso 2026-08-27  662  			atomic_read(&stream->sequence) - 1U;
f268203d74ff25 Antti Laakso 2026-08-27  663  		stream->seq[stream->seq_index].timestamp = ts;
f268203d74ff25 Antti Laakso 2026-08-27  664  		dev_dbg(dev,
f268203d74ff25 Antti Laakso 2026-08-27  665  			"SOF: stream %u frame %u (index %u), ts 0x%16.16llx\n",
f268203d74ff25 Antti Laakso 2026-08-27  666  			resp->stream_id, resp->frame_id,
f268203d74ff25 Antti Laakso 2026-08-27  667  			stream->seq[stream->seq_index].sequence, ts);
f268203d74ff25 Antti Laakso 2026-08-27  668  		stream->seq_index = (stream->seq_index + 1U)
f268203d74ff25 Antti Laakso 2026-08-27  669  			% IPU6_ISYS_MAX_PARALLEL_SOF;
f268203d74ff25 Antti Laakso 2026-08-27  670  		break;
f268203d74ff25 Antti Laakso 2026-08-27  671  	case IPU7_INSYS_RESP_TYPE_FRAME_EOF:
f268203d74ff25 Antti Laakso 2026-08-27  672  		if (csi2)
f268203d74ff25 Antti Laakso 2026-08-27  673  			ipu6_isys_csi2_eof_event_by_stream(stream);
f268203d74ff25 Antti Laakso 2026-08-27  674  
f268203d74ff25 Antti Laakso 2026-08-27  675  		dev_dbg(dev, "eof: stream %d(index %u) ts 0x%16.16llx\n",
f268203d74ff25 Antti Laakso 2026-08-27  676  			resp->stream_id,
f268203d74ff25 Antti Laakso 2026-08-27  677  			stream->seq[stream->seq_index].sequence, ts);
f268203d74ff25 Antti Laakso 2026-08-27  678  		break;
f268203d74ff25 Antti Laakso 2026-08-27  679  	default:
f268203d74ff25 Antti Laakso 2026-08-27  680  		dev_err(dev, "Unknown response type %u stream %u\n",
f268203d74ff25 Antti Laakso 2026-08-27  681  			resp->type, resp->stream_id);
f268203d74ff25 Antti Laakso 2026-08-27  682  		break;
f268203d74ff25 Antti Laakso 2026-08-27  683  	}
f268203d74ff25 Antti Laakso 2026-08-27  684  
f268203d74ff25 Antti Laakso 2026-08-27  685  leave:
f268203d74ff25 Antti Laakso 2026-08-27  686  	ipu7_fw_isys_put_resp(isys);
f268203d74ff25 Antti Laakso 2026-08-27  687  
f268203d74ff25 Antti Laakso 2026-08-27  688  	return 0;
f268203d74ff25 Antti Laakso 2026-08-27  689  }
f268203d74ff25 Antti Laakso 2026-08-27  690  

:::::: The code at line 599 was first introduced by commit
:::::: f268203d74ff25f5443a16813196fb8ecd775be3 media: ipu6: Add ipu7 isr handler

:::::: TO: Antti Laakso <antti.laakso@linux.intel.com>
:::::: CC: Sakari Ailus <sakari.ailus@linux.intel.com>

--
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-09-13 22:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-13 22:15 [sailus-media-tree:metadata 163/169] drivers/media/pci/intel/ipu6/ipu7-fw-isys.c:599:3: error: cannot jump from this goto statement to its label 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