From: Yu Kuai <yukuai3@huawei.com> To: <axboe@kernel.dk>, <tj@kernel.org> Cc: <linux-block@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <cgroups@vger.kernel.org>, <yukuai3@huawei.com>, <yi.zhang@huawei.com> Subject: [PATCH 1/6] rq-qos: introduce rq_qos_free() Date: Thu, 23 Sep 2021 21:46:26 +0800 [thread overview] Message-ID: <20210923134631.105719-2-yukuai3@huawei.com> (raw) In-Reply-To: <20210923134631.105719-1-yukuai3@huawei.com> Prepare to split the release of rq_qos from blk_cleanup_queue() to blk_release_queue() to fix a uaf problem, no functional changes. Signed-off-by: Yu Kuai <yukuai3@huawei.com> --- block/blk-rq-qos.c | 10 ++++++++++ block/blk-rq-qos.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/block/blk-rq-qos.c b/block/blk-rq-qos.c index 14ff6d37698c..bc22d0312765 100644 --- a/block/blk-rq-qos.c +++ b/block/blk-rq-qos.c @@ -308,3 +308,13 @@ void rq_qos_exit(struct request_queue *q) rqos->ops->exit(rqos); } } + +void rq_qos_free(struct request_queue *q) +{ + while (q->rq_qos) { + struct rq_qos *rqos = q->rq_qos; + + q->rq_qos = rqos->next; + rqos->ops->free(rqos); + } +} diff --git a/block/blk-rq-qos.h b/block/blk-rq-qos.h index f000f83e0621..0af5750bb737 100644 --- a/block/blk-rq-qos.h +++ b/block/blk-rq-qos.h @@ -46,6 +46,7 @@ struct rq_qos_ops { void (*cleanup)(struct rq_qos *, struct bio *); void (*queue_depth_changed)(struct rq_qos *); void (*exit)(struct rq_qos *); + void (*free)(struct rq_qos *); const struct blk_mq_debugfs_attr *debugfs_attrs; }; @@ -215,5 +216,6 @@ static inline void rq_qos_queue_depth_changed(struct request_queue *q) } void rq_qos_exit(struct request_queue *); +void rq_qos_free(struct request_queue *); #endif -- 2.31.1
WARNING: multiple messages have this Message-ID (diff)
From: Yu Kuai <yukuai3@huawei.com> To: axboe@kernel.dk, tj@kernel.org Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, yukuai3@huawei.com, yi.zhang@huawei.com Subject: [PATCH 1/6] rq-qos: introduce rq_qos_free() Date: Thu, 23 Sep 2021 21:46:26 +0800 [thread overview] Message-ID: <20210923134631.105719-2-yukuai3@huawei.com> (raw) In-Reply-To: <20210923134631.105719-1-yukuai3@huawei.com> Prepare to split the release of rq_qos from blk_cleanup_queue() to blk_release_queue() to fix a uaf problem, no functional changes. Signed-off-by: Yu Kuai <yukuai3@huawei.com> --- block/blk-rq-qos.c | 10 ++++++++++ block/blk-rq-qos.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/block/blk-rq-qos.c b/block/blk-rq-qos.c index 14ff6d37698c..bc22d0312765 100644 --- a/block/blk-rq-qos.c +++ b/block/blk-rq-qos.c @@ -308,3 +308,13 @@ void rq_qos_exit(struct request_queue *q) rqos->ops->exit(rqos); } } + +void rq_qos_free(struct request_queue *q) +{ + while (q->rq_qos) { + struct rq_qos *rqos = q->rq_qos; + + q->rq_qos = rqos->next; + rqos->ops->free(rqos); + } +} diff --git a/block/blk-rq-qos.h b/block/blk-rq-qos.h index f000f83e0621..0af5750bb737 100644 --- a/block/blk-rq-qos.h +++ b/block/blk-rq-qos.h @@ -46,6 +46,7 @@ struct rq_qos_ops { void (*cleanup)(struct rq_qos *, struct bio *); void (*queue_depth_changed)(struct rq_qos *); void (*exit)(struct rq_qos *); + void (*free)(struct rq_qos *); const struct blk_mq_debugfs_attr *debugfs_attrs; }; @@ -215,5 +216,6 @@ static inline void rq_qos_queue_depth_changed(struct request_queue *q) } void rq_qos_exit(struct request_queue *); +void rq_qos_free(struct request_queue *); #endif -- 2.31.1
next prev parent reply other threads:[~2021-09-23 13:36 UTC|newest] Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-23 13:46 [PATCH 0/6] fix uaf in rq_qos_done_io() Yu Kuai 2021-09-23 13:46 ` Yu Kuai 2021-09-23 13:46 ` Yu Kuai [this message] 2021-09-23 13:46 ` [PATCH 1/6] rq-qos: introduce rq_qos_free() Yu Kuai 2021-09-23 13:46 ` [PATCH 2/6] blk-wbt: introduce wbt_free() Yu Kuai 2021-09-23 13:46 ` Yu Kuai 2021-09-23 13:46 ` [PATCH 3/6] io-cost: introduce ioc_rqos_free() Yu Kuai 2021-09-23 13:46 ` Yu Kuai 2021-09-23 13:46 ` [PATCH 4/6] blk-iolatency: splict blkcg_iolatency_free() from blkcg_iolatency_exit() Yu Kuai 2021-09-23 13:46 ` Yu Kuai 2021-09-23 13:46 ` [PATCH 5/6] blk-ioprio: introduce blkcg_ioprio_free() Yu Kuai 2021-09-23 13:46 ` Yu Kuai 2021-09-23 13:46 ` [PATCH 6/6] rq-qos: fix uaf in rq_qos_done_io() Yu Kuai 2021-09-23 13:46 ` Yu Kuai 2021-09-24 0:41 ` Ming Lei 2021-09-24 0:41 ` Ming Lei 2021-09-24 1:23 ` yukuai (C) 2021-09-24 1:23 ` yukuai (C) 2021-09-24 1:49 ` Ming Lei 2021-09-24 1:49 ` Ming Lei 2021-09-24 8:19 ` yukuai (C) 2021-09-24 8:19 ` yukuai (C)
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210923134631.105719-2-yukuai3@huawei.com \ --to=yukuai3@huawei.com \ --cc=axboe@kernel.dk \ --cc=cgroups@vger.kernel.org \ --cc=linux-block@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=tj@kernel.org \ --cc=yi.zhang@huawei.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.