]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
block/Kyber: Make the lock context annotations compatible with Clang
authorBart Van Assche <bvanassche@acm.org>
Fri, 5 Jun 2026 18:01:05 +0000 (11:01 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 5 Jun 2026 19:41:11 +0000 (13:41 -0600)
While sparse ignores the __acquires() and __releases() arguments, Clang
verifies these. Make the arguments of __acquires() and __releases()
acceptable for Clang.

Reviewed-by: Hannes Reinecke <hare@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Link: https://patch.msgid.link/91cb8c790fc8b26b8aa742569fbf8c2c1d099dac.1780682325.git.bvanassche@acm.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/kyber-iosched.c

index b84163d1f8518e0b445822bfdf113e58d58accb5..971818bcdc9dbe9b53283d9bcad1baed0290fb8c 100644 (file)
@@ -882,6 +882,9 @@ static const struct elv_fs_entry kyber_sched_attrs[] = {
 };
 #undef KYBER_LAT_ATTR
 
+#define HCTX_FROM_SEQ_FILE(m) ((struct blk_mq_hw_ctx *)(m)->private)
+#define KYBER_HCTX_DATA(hctx) ((struct kyber_hctx_data *)(hctx)->sched_data)
+
 #ifdef CONFIG_BLK_DEBUG_FS
 #define KYBER_DEBUGFS_DOMAIN_ATTRS(domain, name)                       \
 static int kyber_##name##_tokens_show(void *data, struct seq_file *m)  \
@@ -894,7 +897,7 @@ static int kyber_##name##_tokens_show(void *data, struct seq_file *m)       \
 }                                                                      \
                                                                        \
 static void *kyber_##name##_rqs_start(struct seq_file *m, loff_t *pos) \
-       __acquires(&khd->lock)                                          \
+       __acquires(&KYBER_HCTX_DATA(HCTX_FROM_SEQ_FILE(m))->lock)       \
 {                                                                      \
        struct blk_mq_hw_ctx *hctx = m->private;                        \
        struct kyber_hctx_data *khd = hctx->sched_data;                 \
@@ -913,7 +916,7 @@ static void *kyber_##name##_rqs_next(struct seq_file *m, void *v,   \
 }                                                                      \
                                                                        \
 static void kyber_##name##_rqs_stop(struct seq_file *m, void *v)       \
-       __releases(&khd->lock)                                          \
+       __releases(&KYBER_HCTX_DATA(HCTX_FROM_SEQ_FILE(m))->lock)       \
 {                                                                      \
        struct blk_mq_hw_ctx *hctx = m->private;                        \
        struct kyber_hctx_data *khd = hctx->sched_data;                 \