* [freescale-fslc:pr/78 283/3687] include/linux/blk-mq.h:271:36: sparse: sparse: bad constant expression type
@ 2021-01-22 3:50 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-01-22 3:50 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 24377 bytes --]
CC: kbuild-all(a)lists.01.org
TO: Otavio Salvador <otavio@ossystems.com.br>
tree: https://github.com/Freescale/linux-fslc pr/78
head: 35b10ca99cd3cb57e545010466bbd588987c96f6
commit: 0196856db2fe33b0ffd413bd5e01a9bd31c110da [283/3687] i2c: imx: implement bus recovery with gpio for Layerscape
:::::: branch date: 8 months ago
:::::: commit date: 8 months ago
config: arm-randconfig-s032-20210122 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-208-g46a52ca4-dirty
# https://github.com/Freescale/linux-fslc/commit/0196856db2fe33b0ffd413bd5e01a9bd31c110da
git remote add freescale-fslc https://github.com/Freescale/linux-fslc
git fetch --no-tags freescale-fslc pr/78
git checkout 0196856db2fe33b0ffd413bd5e01a9bd31c110da
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
"sparse warnings: (new ones prefixed by >>)"
drivers/i2c/busses/i2c-imx.c: note: in included file (through include/scsi/scsi_host.h, include/linux/libata.h):
include/linux/blk-mq.h:123:35: sparse: sparse: Expected ; at end of declaration
include/linux/blk-mq.h:123:35: sparse: sparse: got (
include/linux/blk-mq.h:150:33: sparse: sparse: expected ; at end of declaration
include/linux/blk-mq.h:150:33: sparse: sparse: Expected } at end of specifier
include/linux/blk-mq.h:150:33: sparse: sparse: got *
include/linux/blk-mq.h:224:1: sparse: sparse: Expected ; at the end of type declaration
include/linux/blk-mq.h:224:1: sparse: sparse: got }
include/linux/blk-mq.h:271:44: sparse: sparse: Expected ) at end of cast operator
include/linux/blk-mq.h:271:44: sparse: sparse: got blk_mq_req_flags_t
>> include/linux/blk-mq.h:271:36: sparse: sparse: bad constant expression type
include/linux/blk-mq.h:281:36: sparse: sparse: Expected ) in function declarator
include/linux/blk-mq.h:281:36: sparse: sparse: got flags
include/linux/blk-mq.h:283:53: sparse: sparse: Expected ) in function declarator
include/linux/blk-mq.h:283:53: sparse: sparse: got flags
include/linux/blk-mq.h:367:24: sparse: sparse: Expected ; at end of declaration
include/linux/blk-mq.h:367:24: sparse: sparse: got request_to_qc_t
>> include/linux/blk-mq.h:373:9: sparse: sparse: Trying to use reserved word 'return' as identifier
include/linux/blk-mq.h:373:16: sparse: sparse: Expected ; at end of declaration
include/linux/blk-mq.h:373:16: sparse: sparse: got rq
include/linux/blk-mq.h:375:1: sparse: sparse: Expected ; at the end of type declaration
include/linux/blk-mq.h:375:1: sparse: sparse: got }
include/linux/blk-mq.h:381:1: sparse: sparse: Expected ; at the end of type declaration
include/linux/blk-mq.h:381:1: sparse: sparse: got }
drivers/i2c/busses/i2c-imx.c: note: in included file (through include/scsi/scsi_common.h, include/scsi/scsi.h, include/scsi/scsi_host.h, ...):
include/scsi/scsi_proto.h:187:1: sparse: sparse: Expected ; at the end of type declaration
include/scsi/scsi_proto.h:187:1: sparse: sparse: got }
drivers/i2c/busses/i2c-imx.c: note: in included file (through include/scsi/scsi_host.h, include/linux/libata.h):
include/linux/blk-mq.h:180:33: sparse: sparse: symbol 'complete' redeclared with different type (different base types):
>> include/linux/blk-mq.h:180:33: sparse: void ( [usertype] *[addressable] [toplevel] complete )( ... )
drivers/i2c/busses/i2c-imx.c: note: in included file (through include/linux/mm_types.h, include/linux/mmzone.h, include/linux/gfp.h, ...):
include/linux/completion.h:118:13: sparse: note: previously declared as:
>> include/linux/completion.h:118:13: sparse: void extern [addressable] [toplevel] complete( ... )
vim +271 include/linux/blk-mq.h
05229beeddf7e75e Jens Axboe 2015-11-05 144
81481eb423c295c5 Christoph Hellwig 2014-09-13 145
320ae51feed5c2f1 Jens Axboe 2013-10-24 146 struct blk_mq_ops {
320ae51feed5c2f1 Jens Axboe 2013-10-24 147 /*
320ae51feed5c2f1 Jens Axboe 2013-10-24 148 * Queue request
320ae51feed5c2f1 Jens Axboe 2013-10-24 149 */
320ae51feed5c2f1 Jens Axboe 2013-10-24 150 queue_rq_fn *queue_rq;
320ae51feed5c2f1 Jens Axboe 2013-10-24 151
d666ba98f849ad44 Jens Axboe 2018-11-27 152 /*
d666ba98f849ad44 Jens Axboe 2018-11-27 153 * If a driver uses bd->last to judge when to submit requests to
d666ba98f849ad44 Jens Axboe 2018-11-27 154 * hardware, it must define this function. In case of errors that
d666ba98f849ad44 Jens Axboe 2018-11-27 155 * make us stop issuing further requests, this hook serves the
d666ba98f849ad44 Jens Axboe 2018-11-27 156 * purpose of kicking the hardware (which the last request otherwise
d666ba98f849ad44 Jens Axboe 2018-11-27 157 * would have done).
d666ba98f849ad44 Jens Axboe 2018-11-27 158 */
d666ba98f849ad44 Jens Axboe 2018-11-27 159 commit_rqs_fn *commit_rqs;
d666ba98f849ad44 Jens Axboe 2018-11-27 160
de1482974080ec9e Ming Lei 2017-10-14 161 /*
de1482974080ec9e Ming Lei 2017-10-14 162 * Reserve budget before queue request, once .queue_rq is
de1482974080ec9e Ming Lei 2017-10-14 163 * run, it is driver's responsibility to release the
de1482974080ec9e Ming Lei 2017-10-14 164 * reserved budget. Also we have to handle failure case
de1482974080ec9e Ming Lei 2017-10-14 165 * of .get_budget for avoiding I/O deadlock.
de1482974080ec9e Ming Lei 2017-10-14 166 */
de1482974080ec9e Ming Lei 2017-10-14 167 get_budget_fn *get_budget;
de1482974080ec9e Ming Lei 2017-10-14 168 put_budget_fn *put_budget;
de1482974080ec9e Ming Lei 2017-10-14 169
320ae51feed5c2f1 Jens Axboe 2013-10-24 170 /*
320ae51feed5c2f1 Jens Axboe 2013-10-24 171 * Called on request timeout
320ae51feed5c2f1 Jens Axboe 2013-10-24 172 */
0152fb6b57c4fae7 Christoph Hellwig 2014-09-13 173 timeout_fn *timeout;
320ae51feed5c2f1 Jens Axboe 2013-10-24 174
05229beeddf7e75e Jens Axboe 2015-11-05 175 /*
05229beeddf7e75e Jens Axboe 2015-11-05 176 * Called to poll for completion of a specific tag.
05229beeddf7e75e Jens Axboe 2015-11-05 177 */
05229beeddf7e75e Jens Axboe 2015-11-05 178 poll_fn *poll;
05229beeddf7e75e Jens Axboe 2015-11-05 179
c7bb9ad1744ea14e Jens Axboe 2018-10-31 @180 complete_fn *complete;
30a91cb4ef385fe1 Christoph Hellwig 2014-02-10 181
320ae51feed5c2f1 Jens Axboe 2013-10-24 182 /*
320ae51feed5c2f1 Jens Axboe 2013-10-24 183 * Called when the block layer side of a hardware queue has been
320ae51feed5c2f1 Jens Axboe 2013-10-24 184 * set up, allowing the driver to allocate/init matching structures.
320ae51feed5c2f1 Jens Axboe 2013-10-24 185 * Ditto for exit/teardown.
320ae51feed5c2f1 Jens Axboe 2013-10-24 186 */
320ae51feed5c2f1 Jens Axboe 2013-10-24 187 init_hctx_fn *init_hctx;
320ae51feed5c2f1 Jens Axboe 2013-10-24 188 exit_hctx_fn *exit_hctx;
e9b267d91f6ddbc6 Christoph Hellwig 2014-04-15 189
e9b267d91f6ddbc6 Christoph Hellwig 2014-04-15 190 /*
e9b267d91f6ddbc6 Christoph Hellwig 2014-04-15 191 * Called for every command allocated by the block layer to allow
e9b267d91f6ddbc6 Christoph Hellwig 2014-04-15 192 * the driver to set up driver specific data.
f70ced09170761ac Ming Lei 2014-09-25 193 *
f70ced09170761ac Ming Lei 2014-09-25 194 * Tag greater than or equal to queue_depth is for setting up
f70ced09170761ac Ming Lei 2014-09-25 195 * flush request.
f70ced09170761ac Ming Lei 2014-09-25 196 *
e9b267d91f6ddbc6 Christoph Hellwig 2014-04-15 197 * Ditto for exit/teardown.
e9b267d91f6ddbc6 Christoph Hellwig 2014-04-15 198 */
e9b267d91f6ddbc6 Christoph Hellwig 2014-04-15 199 init_request_fn *init_request;
e9b267d91f6ddbc6 Christoph Hellwig 2014-04-15 200 exit_request_fn *exit_request;
d280bab305431c18 Bart Van Assche 2017-06-20 201 /* Called from inside blk_get_request() */
d280bab305431c18 Bart Van Assche 2017-06-20 202 void (*initialize_rq_fn)(struct request *rq);
da695ba236b993f0 Christoph Hellwig 2016-09-14 203
226b4fc75c78f9c4 Ming Lei 2019-07-25 204 /*
226b4fc75c78f9c4 Ming Lei 2019-07-25 205 * Called before freeing one request which isn't completed yet,
226b4fc75c78f9c4 Ming Lei 2019-07-25 206 * and usually for freeing the driver private data
226b4fc75c78f9c4 Ming Lei 2019-07-25 207 */
226b4fc75c78f9c4 Ming Lei 2019-07-25 208 cleanup_rq_fn *cleanup_rq;
226b4fc75c78f9c4 Ming Lei 2019-07-25 209
9ba20527f4d1430b Jens Axboe 2018-10-29 210 /*
9ba20527f4d1430b Jens Axboe 2018-10-29 211 * If set, returns whether or not this queue currently is busy
9ba20527f4d1430b Jens Axboe 2018-10-29 212 */
9ba20527f4d1430b Jens Axboe 2018-10-29 213 busy_fn *busy;
9ba20527f4d1430b Jens Axboe 2018-10-29 214
da695ba236b993f0 Christoph Hellwig 2016-09-14 215 map_queues_fn *map_queues;
2836ee4b1acbe7b3 Bart Van Assche 2017-04-26 216
2836ee4b1acbe7b3 Bart Van Assche 2017-04-26 217 #ifdef CONFIG_BLK_DEBUG_FS
2836ee4b1acbe7b3 Bart Van Assche 2017-04-26 218 /*
2836ee4b1acbe7b3 Bart Van Assche 2017-04-26 219 * Used by the debugfs implementation to show driver-specific
2836ee4b1acbe7b3 Bart Van Assche 2017-04-26 220 * information about a request.
2836ee4b1acbe7b3 Bart Van Assche 2017-04-26 221 */
2836ee4b1acbe7b3 Bart Van Assche 2017-04-26 222 void (*show_rq)(struct seq_file *m, struct request *rq);
2836ee4b1acbe7b3 Bart Van Assche 2017-04-26 223 #endif
320ae51feed5c2f1 Jens Axboe 2013-10-24 224 };
320ae51feed5c2f1 Jens Axboe 2013-10-24 225
320ae51feed5c2f1 Jens Axboe 2013-10-24 226 enum {
320ae51feed5c2f1 Jens Axboe 2013-10-24 227 BLK_MQ_F_SHOULD_MERGE = 1 << 0,
8a58d1f1f373238c Jens Axboe 2014-08-15 228 BLK_MQ_F_TAG_SHARED = 1 << 1,
1b792f2f92784c00 Jens Axboe 2016-09-21 229 BLK_MQ_F_BLOCKING = 1 << 5,
d34849913819a5e0 Jens Axboe 2017-01-13 230 BLK_MQ_F_NO_SCHED = 1 << 6,
24391c0dc57c3756 Shaohua Li 2015-01-23 231 BLK_MQ_F_ALLOC_POLICY_START_BIT = 8,
24391c0dc57c3756 Shaohua Li 2015-01-23 232 BLK_MQ_F_ALLOC_POLICY_BITS = 1,
320ae51feed5c2f1 Jens Axboe 2013-10-24 233
5d12f905cc50c081 Jens Axboe 2014-03-19 234 BLK_MQ_S_STOPPED = 0,
0d2602ca30e410e8 Jens Axboe 2014-05-13 235 BLK_MQ_S_TAG_ACTIVE = 1,
bd166ef183c263c5 Jens Axboe 2017-01-17 236 BLK_MQ_S_SCHED_RESTART = 2,
320ae51feed5c2f1 Jens Axboe 2013-10-24 237
a4391c6465d9c978 Jens Axboe 2014-06-05 238 BLK_MQ_MAX_DEPTH = 10240,
506e931f92defdc6 Jens Axboe 2014-05-07 239
506e931f92defdc6 Jens Axboe 2014-05-07 240 BLK_MQ_CPU_WORK_BATCH = 8,
320ae51feed5c2f1 Jens Axboe 2013-10-24 241 };
24391c0dc57c3756 Shaohua Li 2015-01-23 242 #define BLK_MQ_FLAG_TO_ALLOC_POLICY(flags) \
24391c0dc57c3756 Shaohua Li 2015-01-23 243 ((flags >> BLK_MQ_F_ALLOC_POLICY_START_BIT) & \
24391c0dc57c3756 Shaohua Li 2015-01-23 244 ((1 << BLK_MQ_F_ALLOC_POLICY_BITS) - 1))
24391c0dc57c3756 Shaohua Li 2015-01-23 245 #define BLK_ALLOC_POLICY_TO_MQ_FLAG(policy) \
24391c0dc57c3756 Shaohua Li 2015-01-23 246 ((policy & ((1 << BLK_MQ_F_ALLOC_POLICY_BITS) - 1)) \
24391c0dc57c3756 Shaohua Li 2015-01-23 247 << BLK_MQ_F_ALLOC_POLICY_START_BIT)
320ae51feed5c2f1 Jens Axboe 2013-10-24 248
24d2f90309b23f2c Christoph Hellwig 2014-04-15 249 struct request_queue *blk_mq_init_queue(struct blk_mq_tag_set *);
b62c21b71f08b7a4 Mike Snitzer 2015-03-12 250 struct request_queue *blk_mq_init_allocated_queue(struct blk_mq_tag_set *set,
737eb78e82d52d35 Damien Le Moal 2019-09-05 251 struct request_queue *q,
737eb78e82d52d35 Damien Le Moal 2019-09-05 252 bool elevator_init);
9316a9ed6895c4ad Jens Axboe 2018-10-15 253 struct request_queue *blk_mq_init_sq_queue(struct blk_mq_tag_set *set,
9316a9ed6895c4ad Jens Axboe 2018-10-15 254 const struct blk_mq_ops *ops,
9316a9ed6895c4ad Jens Axboe 2018-10-15 255 unsigned int queue_depth,
9316a9ed6895c4ad Jens Axboe 2018-10-15 256 unsigned int set_flags);
b21d5b301794ae33 Matias Bjørling 2016-09-16 257 void blk_mq_unregister_dev(struct device *, struct request_queue *);
320ae51feed5c2f1 Jens Axboe 2013-10-24 258
24d2f90309b23f2c Christoph Hellwig 2014-04-15 259 int blk_mq_alloc_tag_set(struct blk_mq_tag_set *set);
24d2f90309b23f2c Christoph Hellwig 2014-04-15 260 void blk_mq_free_tag_set(struct blk_mq_tag_set *set);
24d2f90309b23f2c Christoph Hellwig 2014-04-15 261
320ae51feed5c2f1 Jens Axboe 2013-10-24 262 void blk_mq_flush_plug_list(struct blk_plug *plug, bool from_schedule);
320ae51feed5c2f1 Jens Axboe 2013-10-24 263
320ae51feed5c2f1 Jens Axboe 2013-10-24 264 void blk_mq_free_request(struct request *rq);
320ae51feed5c2f1 Jens Axboe 2013-10-24 265 bool blk_mq_can_queue(struct blk_mq_hw_ctx *);
6f3b0e8bcf3cbb87 Christoph Hellwig 2015-11-26 266
3c94d83cb352627f Jens Axboe 2018-12-17 267 bool blk_mq_queue_inflight(struct request_queue *q);
ae8799125d565c79 Jens Axboe 2018-11-08 268
6f3b0e8bcf3cbb87 Christoph Hellwig 2015-11-26 269 enum {
9a95e4ef709533ef Bart Van Assche 2017-11-09 270 /* return when out of requests */
9a95e4ef709533ef Bart Van Assche 2017-11-09 @271 BLK_MQ_REQ_NOWAIT = (__force blk_mq_req_flags_t)(1 << 0),
9a95e4ef709533ef Bart Van Assche 2017-11-09 272 /* allocate from reserved pool */
9a95e4ef709533ef Bart Van Assche 2017-11-09 273 BLK_MQ_REQ_RESERVED = (__force blk_mq_req_flags_t)(1 << 1),
9a95e4ef709533ef Bart Van Assche 2017-11-09 274 /* allocate internal/sched tag */
9a95e4ef709533ef Bart Van Assche 2017-11-09 275 BLK_MQ_REQ_INTERNAL = (__force blk_mq_req_flags_t)(1 << 2),
9a95e4ef709533ef Bart Van Assche 2017-11-09 276 /* set RQF_PREEMPT */
9a95e4ef709533ef Bart Van Assche 2017-11-09 277 BLK_MQ_REQ_PREEMPT = (__force blk_mq_req_flags_t)(1 << 3),
6f3b0e8bcf3cbb87 Christoph Hellwig 2015-11-26 278 };
6f3b0e8bcf3cbb87 Christoph Hellwig 2015-11-26 279
cd6ce1482fd9e691 Bart Van Assche 2017-06-20 280 struct request *blk_mq_alloc_request(struct request_queue *q, unsigned int op,
9a95e4ef709533ef Bart Van Assche 2017-11-09 281 blk_mq_req_flags_t flags);
cd6ce1482fd9e691 Bart Van Assche 2017-06-20 282 struct request *blk_mq_alloc_request_hctx(struct request_queue *q,
9a95e4ef709533ef Bart Van Assche 2017-11-09 283 unsigned int op, blk_mq_req_flags_t flags,
9a95e4ef709533ef Bart Van Assche 2017-11-09 284 unsigned int hctx_idx);
0e62f51f8753b048 Jens Axboe 2014-06-04 285 struct request *blk_mq_tag_to_rq(struct blk_mq_tags *tags, unsigned int tag);
320ae51feed5c2f1 Jens Axboe 2013-10-24 286
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 287 enum {
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 288 BLK_MQ_UNIQUE_TAG_BITS = 16,
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 289 BLK_MQ_UNIQUE_TAG_MASK = (1 << BLK_MQ_UNIQUE_TAG_BITS) - 1,
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 290 };
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 291
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 292 u32 blk_mq_unique_tag(struct request *rq);
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 293
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 294 static inline u16 blk_mq_unique_tag_to_hwq(u32 unique_tag)
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 295 {
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 296 return unique_tag >> BLK_MQ_UNIQUE_TAG_BITS;
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 297 }
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 298
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 299 static inline u16 blk_mq_unique_tag_to_tag(u32 unique_tag)
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 300 {
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 301 return unique_tag & BLK_MQ_UNIQUE_TAG_MASK;
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 302 }
205fb5f5ba1d8edc Bart Van Assche 2014-10-30 303
320ae51feed5c2f1 Jens Axboe 2013-10-24 304
973c01919bce7e35 Keith Busch 2015-01-07 305 int blk_mq_request_started(struct request *rq);
aa306ab703e9452b Ming Lei 2019-07-24 306 int blk_mq_request_completed(struct request *rq);
e2490073cd7c3d6f Christoph Hellwig 2014-09-13 307 void blk_mq_start_request(struct request *rq);
2a842acab109f40f Christoph Hellwig 2017-06-03 308 void blk_mq_end_request(struct request *rq, blk_status_t error);
2a842acab109f40f Christoph Hellwig 2017-06-03 309 void __blk_mq_end_request(struct request *rq, blk_status_t error);
320ae51feed5c2f1 Jens Axboe 2013-10-24 310
2b053aca76b48e68 Bart Van Assche 2016-10-28 311 void blk_mq_requeue_request(struct request *rq, bool kick_requeue_list);
6fca6a611c27f1f0 Christoph Hellwig 2014-05-28 312 void blk_mq_kick_requeue_list(struct request_queue *q);
2849450ad39d2e69 Mike Snitzer 2016-09-14 313 void blk_mq_delay_kick_requeue_list(struct request_queue *q, unsigned long msecs);
16c15eb16a793f2d Keith Busch 2018-11-26 314 bool blk_mq_complete_request(struct request *rq);
9c5587346490ad43 Jens Axboe 2018-05-30 315 bool blk_mq_bio_list_merge(struct request_queue *q, struct list_head *list,
14ccb66b3f585b2b Christoph Hellwig 2019-06-06 316 struct bio *bio, unsigned int nr_segs);
fd00144301d64f17 Bart Van Assche 2016-10-28 317 bool blk_mq_queue_stopped(struct request_queue *q);
320ae51feed5c2f1 Jens Axboe 2013-10-24 318 void blk_mq_stop_hw_queue(struct blk_mq_hw_ctx *hctx);
320ae51feed5c2f1 Jens Axboe 2013-10-24 319 void blk_mq_start_hw_queue(struct blk_mq_hw_ctx *hctx);
280d45f6c35d8d7a Christoph Hellwig 2013-10-25 320 void blk_mq_stop_hw_queues(struct request_queue *q);
2f268556567ebeb3 Christoph Hellwig 2014-04-16 321 void blk_mq_start_hw_queues(struct request_queue *q);
ae911c5e796d51cb Jens Axboe 2016-12-08 322 void blk_mq_start_stopped_hw_queue(struct blk_mq_hw_ctx *hctx, bool async);
1b4a325858f695a9 Christoph Hellwig 2014-04-16 323 void blk_mq_start_stopped_hw_queues(struct request_queue *q, bool async);
97e0120990f4a703 Ming Lei 2017-06-06 324 void blk_mq_quiesce_queue(struct request_queue *q);
e4e739131ac93d37 Ming Lei 2017-06-06 325 void blk_mq_unquiesce_queue(struct request_queue *q);
7587a5ae7eef0439 Bart Van Assche 2017-04-07 326 void blk_mq_delay_run_hw_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs);
79f720a751cad613 Jens Axboe 2017-11-10 327 bool blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async);
b94ec296403e99d5 Mike Snitzer 2015-03-11 328 void blk_mq_run_hw_queues(struct request_queue *q, bool async);
e0489487ec9cd79e Sagi Grimberg 2016-03-10 329 void blk_mq_tagset_busy_iter(struct blk_mq_tag_set *tagset,
e0489487ec9cd79e Sagi Grimberg 2016-03-10 330 busy_tag_iter_fn *fn, void *priv);
f9934a80f91dba8c Ming Lei 2019-07-24 331 void blk_mq_tagset_wait_completed_request(struct blk_mq_tag_set *tagset);
c761d96b079e99d1 Jens Axboe 2015-01-02 332 void blk_mq_freeze_queue(struct request_queue *q);
b4c6a028774bcf3f Keith Busch 2014-12-19 333 void blk_mq_unfreeze_queue(struct request_queue *q);
1671d522cdd9933d Ming Lei 2017-03-27 334 void blk_freeze_queue_start(struct request_queue *q);
6bae363ee3057a14 Keith Busch 2017-03-01 335 void blk_mq_freeze_queue_wait(struct request_queue *q);
f91328c40a559362 Keith Busch 2017-03-01 336 int blk_mq_freeze_queue_wait_timeout(struct request_queue *q,
f91328c40a559362 Keith Busch 2017-03-01 337 unsigned long timeout);
320ae51feed5c2f1 Jens Axboe 2013-10-24 338
ed76e329d74a4b15 Jens Axboe 2018-10-29 339 int blk_mq_map_queues(struct blk_mq_queue_map *qmap);
868f2f0b72068a09 Keith Busch 2015-12-17 340 void blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, int nr_hw_queues);
868f2f0b72068a09 Keith Busch 2015-12-17 341
852ec80983d682dc Bart Van Assche 2017-06-21 342 void blk_mq_quiesce_queue_nowait(struct request_queue *q);
4f084b41a0c04a69 Ming Lei 2017-06-06 343
9cf2bab6307659b9 Jens Axboe 2018-10-31 344 unsigned int blk_mq_rq_cpu(struct request *rq);
9cf2bab6307659b9 Jens Axboe 2018-10-31 345
320ae51feed5c2f1 Jens Axboe 2013-10-24 346 /*
320ae51feed5c2f1 Jens Axboe 2013-10-24 347 * Driver command data is immediately after the request. So subtract request
2963e3f7e8e34658 Jens Axboe 2015-04-09 348 * size to get back to the original request, add request size to get the PDU.
320ae51feed5c2f1 Jens Axboe 2013-10-24 349 */
320ae51feed5c2f1 Jens Axboe 2013-10-24 350 static inline struct request *blk_mq_rq_from_pdu(void *pdu)
320ae51feed5c2f1 Jens Axboe 2013-10-24 351 {
320ae51feed5c2f1 Jens Axboe 2013-10-24 352 return pdu - sizeof(struct request);
320ae51feed5c2f1 Jens Axboe 2013-10-24 353 }
320ae51feed5c2f1 Jens Axboe 2013-10-24 354 static inline void *blk_mq_rq_to_pdu(struct request *rq)
320ae51feed5c2f1 Jens Axboe 2013-10-24 355 {
2963e3f7e8e34658 Jens Axboe 2015-04-09 356 return rq + 1;
320ae51feed5c2f1 Jens Axboe 2013-10-24 357 }
320ae51feed5c2f1 Jens Axboe 2013-10-24 358
320ae51feed5c2f1 Jens Axboe 2013-10-24 359 #define queue_for_each_hw_ctx(q, hctx, i) \
0d0b7d427987f6e9 Jose Alonso 2014-01-28 360 for ((i) = 0; (i) < (q)->nr_hw_queues && \
0d0b7d427987f6e9 Jose Alonso 2014-01-28 361 ({ hctx = (q)->queue_hw_ctx[i]; 1; }); (i)++)
320ae51feed5c2f1 Jens Axboe 2013-10-24 362
320ae51feed5c2f1 Jens Axboe 2013-10-24 363 #define hctx_for_each_ctx(hctx, ctx, i) \
0d0b7d427987f6e9 Jose Alonso 2014-01-28 364 for ((i) = 0; (i) < (hctx)->nr_ctx && \
0d0b7d427987f6e9 Jose Alonso 2014-01-28 365 ({ ctx = (hctx)->ctxs[(i)]; 1; }); (i)++)
320ae51feed5c2f1 Jens Axboe 2013-10-24 366
7b7ab780a048699d Sagi Grimberg 2018-12-14 367 static inline blk_qc_t request_to_qc_t(struct blk_mq_hw_ctx *hctx,
7b7ab780a048699d Sagi Grimberg 2018-12-14 368 struct request *rq)
7b7ab780a048699d Sagi Grimberg 2018-12-14 369 {
7b7ab780a048699d Sagi Grimberg 2018-12-14 370 if (rq->tag != -1)
7b7ab780a048699d Sagi Grimberg 2018-12-14 371 return rq->tag | (hctx->queue_num << BLK_QC_T_SHIFT);
7b7ab780a048699d Sagi Grimberg 2018-12-14 372
7b7ab780a048699d Sagi Grimberg 2018-12-14 @373 return rq->internal_tag | (hctx->queue_num << BLK_QC_T_SHIFT) |
7b7ab780a048699d Sagi Grimberg 2018-12-14 374 BLK_QC_T_INTERNAL;
7b7ab780a048699d Sagi Grimberg 2018-12-14 375 }
7b7ab780a048699d Sagi Grimberg 2018-12-14 376
:::::: The code@line 271 was first introduced by commit
:::::: 9a95e4ef709533efac4aafcb8bddf73f96db50ed block, nvme: Introduce blk_mq_req_flags_t
:::::: TO: Bart Van Assche <bart.vanassche@wdc.com>
:::::: CC: Jens Axboe <axboe@kernel.dk>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 29298 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-01-22 3:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-22 3:50 [freescale-fslc:pr/78 283/3687] include/linux/blk-mq.h:271:36: sparse: sparse: bad constant expression type 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.