Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
* Re: [PATCH v18 05/12] blk-zoned: Add an argument to blk_zone_plug_bio()
       [not found] <20250616223312.1607638-6-bvanassche@acm.org>
@ 2025-06-17 12:49 ` kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-06-17 12:49 UTC (permalink / raw)
  To: Bart Van Assche; +Cc: llvm, oe-kbuild-all

Hi Bart,

kernel test robot noticed the following build errors:

[auto build test ERROR on axboe-block/for-next]
[also build test ERROR on jejb-scsi/for-next mkp-scsi/for-next linus/master v6.16-rc2 next-20250617]
[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/Bart-Van-Assche/block-Support-block-drivers-that-preserve-the-order-of-write-requests/20250617-063905
base:   https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next
patch link:    https://lore.kernel.org/r/20250616223312.1607638-6-bvanassche%40acm.org
patch subject: [PATCH v18 05/12] blk-zoned: Add an argument to blk_zone_plug_bio()
config: um-allnoconfig (https://download.01.org/0day-ci/archive/20250617/202506172033.GPdkXO1C-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250617/202506172033.GPdkXO1C-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/202506172033.GPdkXO1C-lkp@intel.com/

All errors (new ones prefixed by >>):

>> block/blk-mq.c:3187:63: error: too many arguments to function call, expected 2, have 3
    3187 |         if (blk_queue_is_zoned(q) && blk_zone_plug_bio(bio, nr_segs, &from_cpu))
         |                                      ~~~~~~~~~~~~~~~~~               ^~~~~~~~~
   include/linux/blkdev.h:874:20: note: 'blk_zone_plug_bio' declared here
     874 | static inline bool blk_zone_plug_bio(struct bio *bio, unsigned int nr_segs)
         |                    ^                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 error generated.


vim +3187 block/blk-mq.c

  3122	
  3123	/**
  3124	 * blk_mq_submit_bio - Create and send a request to block device.
  3125	 * @bio: Bio pointer.
  3126	 *
  3127	 * Builds up a request structure from @q and @bio and send to the device. The
  3128	 * request may not be queued directly to hardware if:
  3129	 * * This request can be merged with another one
  3130	 * * We want to place request at plug queue for possible future merging
  3131	 * * There is an IO scheduler active at this queue
  3132	 *
  3133	 * It will not queue the request if there is an error with the bio, or at the
  3134	 * request creation.
  3135	 */
  3136	void blk_mq_submit_bio(struct bio *bio)
  3137	{
  3138		struct request_queue *q = bdev_get_queue(bio->bi_bdev);
  3139		struct blk_plug *plug = current->plug;
  3140		const int is_sync = op_is_sync(bio->bi_opf);
  3141		struct blk_mq_hw_ctx *hctx;
  3142		unsigned int nr_segs;
  3143		struct request *rq;
  3144		int from_cpu = -1;
  3145		blk_status_t ret;
  3146	
  3147		/*
  3148		 * A BIO that was released from a zone write plug has already been
  3149		 * through the preparation in this function, already holds a reference
  3150		 * on the queue usage counter, and is the only write BIO in-flight for
  3151		 * the target zone. Go straight to preparing a request for it.
  3152		 */
  3153		if (bio_zone_write_plugging(bio)) {
  3154			nr_segs = bio->__bi_nr_segments;
  3155			goto new_request;
  3156		}
  3157	
  3158		if (unlikely(bio_queue_enter(bio)))
  3159			return;
  3160	
  3161		/*
  3162		 * Device reconfiguration may change logical block size or reduce the
  3163		 * number of poll queues, so the checks for alignment and poll support
  3164		 * have to be done with queue usage counter held.
  3165		 */
  3166		if (unlikely(bio_unaligned(bio, q))) {
  3167			bio_io_error(bio);
  3168			goto queue_exit;
  3169		}
  3170	
  3171		if ((bio->bi_opf & REQ_POLLED) && !blk_mq_can_poll(q)) {
  3172			bio->bi_status = BLK_STS_NOTSUPP;
  3173			bio_endio(bio);
  3174			goto queue_exit;
  3175		}
  3176	
  3177		bio = __bio_split_to_limits(bio, &q->limits, &nr_segs);
  3178		if (!bio)
  3179			goto queue_exit;
  3180	
  3181		if (!bio_integrity_prep(bio))
  3182			goto queue_exit;
  3183	
  3184		if (blk_mq_attempt_bio_merge(q, bio, nr_segs))
  3185			goto queue_exit;
  3186	
> 3187		if (blk_queue_is_zoned(q) && blk_zone_plug_bio(bio, nr_segs, &from_cpu))
  3188			goto queue_exit;
  3189	
  3190	new_request:
  3191		rq = blk_mq_peek_cached_request(plug, q, from_cpu, bio->bi_opf);
  3192		if (rq) {
  3193			blk_mq_use_cached_rq(rq, plug, bio);
  3194			/*
  3195			 * Here we hold two references: one because of the
  3196			 * bio_queue_enter() call and a second one as the result of
  3197			 * request allocation. Drop one.
  3198			 */
  3199			blk_queue_exit(q);
  3200		} else {
  3201			rq = blk_mq_get_new_requests(q, from_cpu, plug, bio);
  3202			if (unlikely(!rq)) {
  3203				if (bio->bi_opf & REQ_NOWAIT)
  3204					bio_wouldblock_error(bio);
  3205				goto queue_exit;
  3206			}
  3207		}
  3208	
  3209		trace_block_getrq(bio);
  3210	
  3211		rq_qos_track(q, rq, bio);
  3212	
  3213		blk_mq_bio_to_request(rq, bio, nr_segs);
  3214	
  3215		ret = blk_crypto_rq_get_keyslot(rq);
  3216		if (ret != BLK_STS_OK) {
  3217			bio->bi_status = ret;
  3218			bio_endio(bio);
  3219			blk_mq_free_request(rq);
  3220			return;
  3221		}
  3222	
  3223		if (bio_zone_write_plugging(bio))
  3224			blk_zone_write_plug_init_request(rq);
  3225	
  3226		if (op_is_flush(bio->bi_opf) && blk_insert_flush(rq))
  3227			return;
  3228	
  3229		if (plug) {
  3230			blk_add_rq_to_plug(plug, rq);
  3231			return;
  3232		}
  3233	
  3234		hctx = rq->mq_hctx;
  3235		if ((rq->rq_flags & RQF_USE_SCHED) ||
  3236		    (hctx->dispatch_busy && (q->nr_hw_queues == 1 || !is_sync))) {
  3237			blk_mq_insert_request(rq, 0);
  3238			blk_mq_run_hw_queue(hctx, true);
  3239		} else {
  3240			blk_mq_run_dispatch_ops(q, blk_mq_try_issue_directly(hctx, rq));
  3241		}
  3242		return;
  3243	
  3244	queue_exit:
  3245		blk_queue_exit(q);
  3246	}
  3247	

-- 
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:[~2025-06-17 12:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20250616223312.1607638-6-bvanassche@acm.org>
2025-06-17 12:49 ` [PATCH v18 05/12] blk-zoned: Add an argument to blk_zone_plug_bio() 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