From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Christoph Hellwig <hch@lst.de>,
Hannes Reinecke <hare@suse.de>, Jens Axboe <axboe@kernel.dk>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.19 019/207] block: simplify disk shutdown
Date: Mon, 26 Sep 2022 12:10:08 +0200 [thread overview]
Message-ID: <20220926100807.331946650@linuxfoundation.org> (raw)
In-Reply-To: <20220926100806.522017616@linuxfoundation.org>
From: Christoph Hellwig <hch@lst.de>
[ Upstream commit 6f8191fdf41d3a53cc1d63fe2234e812c55a0092 ]
Set the queue dying flag and call blk_mq_exit_queue from del_gendisk for
all disks that do not have separately allocated queues, and thus remove
the need to call blk_cleanup_queue for them.
Rename blk_cleanup_disk to blk_mq_destroy_queue to make it clear that
this function is intended only for separately allocated blk-mq queues.
This saves an extra queue freeze for devices without a separately
allocated queue.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://lore.kernel.org/r/20220619060552.1850436-6-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Stable-dep-of: 8fe4ce5836e9 ("scsi: core: Fix a use-after-free")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
block/blk-core.c | 37 -------------------------
block/blk-mq.c | 43 +++++++++++++++++++++++++++--
block/blk-sysfs.c | 5 ----
block/blk.h | 3 ++
block/bsg-lib.c | 4 +--
block/genhd.c | 23 ++++++++-------
drivers/block/ataflop.c | 1 -
drivers/block/loop.c | 1 -
drivers/block/mtip32xx/mtip32xx.c | 2 --
drivers/block/rnbd/rnbd-clt.c | 2 +-
drivers/block/sx8.c | 4 +--
drivers/block/virtio_blk.c | 1 -
drivers/block/z2ram.c | 1 -
drivers/cdrom/gdrom.c | 1 -
drivers/memstick/core/ms_block.c | 1 -
drivers/memstick/core/mspro_block.c | 1 -
drivers/mmc/core/block.c | 1 -
drivers/mmc/core/queue.c | 1 -
drivers/nvme/host/apple.c | 2 +-
drivers/nvme/host/core.c | 1 -
drivers/nvme/host/fc.c | 12 ++++----
drivers/nvme/host/pci.c | 2 +-
drivers/nvme/host/rdma.c | 12 ++++----
drivers/nvme/host/tcp.c | 12 ++++----
drivers/nvme/target/loop.c | 12 ++++----
drivers/s390/block/dasd.c | 2 +-
drivers/s390/block/dasd_genhd.c | 4 +--
drivers/scsi/scsi_lib.c | 6 ++--
drivers/scsi/scsi_sysfs.c | 2 +-
drivers/scsi/sd.c | 4 +--
drivers/scsi/sr.c | 4 +--
drivers/ufs/core/ufshcd.c | 4 +--
include/linux/blk-mq.h | 3 ++
include/linux/blkdev.h | 4 +--
34 files changed, 105 insertions(+), 113 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
index b8083decc07f..7743c68177e8 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -284,43 +284,6 @@ void blk_queue_start_drain(struct request_queue *q)
wake_up_all(&q->mq_freeze_wq);
}
-/**
- * blk_cleanup_queue - shutdown a request queue
- * @q: request queue to shutdown
- *
- * Mark @q DYING, drain all pending requests, mark @q DEAD, destroy and
- * put it. All future requests will be failed immediately with -ENODEV.
- *
- * Context: can sleep
- */
-void blk_cleanup_queue(struct request_queue *q)
-{
- /* cannot be called from atomic context */
- might_sleep();
-
- WARN_ON_ONCE(blk_queue_registered(q));
-
- /* mark @q DYING, no new request or merges will be allowed afterwards */
- blk_queue_flag_set(QUEUE_FLAG_DYING, q);
- blk_queue_start_drain(q);
-
- /*
- * Drain all requests queued before DYING marking. Set DEAD flag to
- * prevent that blk_mq_run_hw_queues() accesses the hardware queues
- * after draining finished.
- */
- blk_freeze_queue(q);
- blk_sync_queue(q);
- if (queue_is_mq(q)) {
- blk_mq_cancel_work_sync(q);
- blk_mq_exit_queue(q);
- }
-
- /* @q is and will stay empty, shutdown and put */
- blk_put_queue(q);
-}
-EXPORT_SYMBOL(blk_cleanup_queue);
-
/**
* blk_queue_enter() - try to increase q->q_usage_counter
* @q: request queue pointer
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 0a299941c622..6e22700dd6cf 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -3896,7 +3896,7 @@ static struct request_queue *blk_mq_init_queue_data(struct blk_mq_tag_set *set,
q->queuedata = queuedata;
ret = blk_mq_init_allocated_queue(set, q);
if (ret) {
- blk_cleanup_queue(q);
+ blk_put_queue(q);
return ERR_PTR(ret);
}
return q;
@@ -3908,6 +3908,35 @@ struct request_queue *blk_mq_init_queue(struct blk_mq_tag_set *set)
}
EXPORT_SYMBOL(blk_mq_init_queue);
+/**
+ * blk_mq_destroy_queue - shutdown a request queue
+ * @q: request queue to shutdown
+ *
+ * This shuts down a request queue allocated by blk_mq_init_queue() and drops
+ * the initial reference. All future requests will failed with -ENODEV.
+ *
+ * Context: can sleep
+ */
+void blk_mq_destroy_queue(struct request_queue *q)
+{
+ WARN_ON_ONCE(!queue_is_mq(q));
+ WARN_ON_ONCE(blk_queue_registered(q));
+
+ might_sleep();
+
+ blk_queue_flag_set(QUEUE_FLAG_DYING, q);
+ blk_queue_start_drain(q);
+ blk_freeze_queue(q);
+
+ blk_sync_queue(q);
+ blk_mq_cancel_work_sync(q);
+ blk_mq_exit_queue(q);
+
+ /* @q is and will stay empty, shutdown and put */
+ blk_put_queue(q);
+}
+EXPORT_SYMBOL(blk_mq_destroy_queue);
+
struct gendisk *__blk_mq_alloc_disk(struct blk_mq_tag_set *set, void *queuedata,
struct lock_class_key *lkclass)
{
@@ -3920,13 +3949,23 @@ struct gendisk *__blk_mq_alloc_disk(struct blk_mq_tag_set *set, void *queuedata,
disk = __alloc_disk_node(q, set->numa_node, lkclass);
if (!disk) {
- blk_cleanup_queue(q);
+ blk_put_queue(q);
return ERR_PTR(-ENOMEM);
}
+ set_bit(GD_OWNS_QUEUE, &disk->state);
return disk;
}
EXPORT_SYMBOL(__blk_mq_alloc_disk);
+struct gendisk *blk_mq_alloc_disk_for_queue(struct request_queue *q,
+ struct lock_class_key *lkclass)
+{
+ if (!blk_get_queue(q))
+ return NULL;
+ return __alloc_disk_node(q, NUMA_NO_NODE, lkclass);
+}
+EXPORT_SYMBOL(blk_mq_alloc_disk_for_queue);
+
static struct blk_mq_hw_ctx *blk_mq_alloc_and_init_hctx(
struct blk_mq_tag_set *set, struct request_queue *q,
int hctx_idx, int node)
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c
index 9b905e9443e4..84d7f8701567 100644
--- a/block/blk-sysfs.c
+++ b/block/blk-sysfs.c
@@ -748,11 +748,6 @@ static void blk_free_queue_rcu(struct rcu_head *rcu_head)
* decremented with blk_put_queue(). Once the refcount reaches 0 this function
* is called.
*
- * For drivers that have a request_queue on a gendisk and added with
- * __device_add_disk() the refcount to request_queue will reach 0 with
- * the last put_disk() called by the driver. For drivers which don't use
- * __device_add_disk() this happens with blk_cleanup_queue().
- *
* Drivers exist which depend on the release of the request_queue to be
* synchronous, it should not be deferred.
*
diff --git a/block/blk.h b/block/blk.h
index 434017701403..0d6668663ab5 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -411,6 +411,9 @@ int bdev_resize_partition(struct gendisk *disk, int partno, sector_t start,
sector_t length);
void blk_drop_partitions(struct gendisk *disk);
+struct gendisk *__alloc_disk_node(struct request_queue *q, int node_id,
+ struct lock_class_key *lkclass);
+
int bio_add_hw_page(struct request_queue *q, struct bio *bio,
struct page *page, unsigned int len, unsigned int offset,
unsigned int max_sectors, bool *same_page);
diff --git a/block/bsg-lib.c b/block/bsg-lib.c
index acfe1357bf6c..fd4cd5e68282 100644
--- a/block/bsg-lib.c
+++ b/block/bsg-lib.c
@@ -324,7 +324,7 @@ void bsg_remove_queue(struct request_queue *q)
container_of(q->tag_set, struct bsg_set, tag_set);
bsg_unregister_queue(bset->bd);
- blk_cleanup_queue(q);
+ blk_mq_destroy_queue(q);
blk_mq_free_tag_set(&bset->tag_set);
kfree(bset);
}
@@ -399,7 +399,7 @@ struct request_queue *bsg_setup_queue(struct device *dev, const char *name,
return q;
out_cleanup_queue:
- blk_cleanup_queue(q);
+ blk_mq_destroy_queue(q);
out_queue:
blk_mq_free_tag_set(set);
out_tag_set:
diff --git a/block/genhd.c b/block/genhd.c
index 278227ba1d53..4d15f828c449 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -617,6 +617,8 @@ void del_gendisk(struct gendisk *disk)
* Fail any new I/O.
*/
set_bit(GD_DEAD, &disk->state);
+ if (test_bit(GD_OWNS_QUEUE, &disk->state))
+ blk_queue_flag_set(QUEUE_FLAG_DYING, q);
set_capacity(disk, 0);
/*
@@ -663,11 +665,16 @@ void del_gendisk(struct gendisk *disk)
blk_mq_unquiesce_queue(q);
/*
- * Allow using passthrough request again after the queue is torn down.
+ * If the disk does not own the queue, allow using passthrough requests
+ * again. Else leave the queue frozen to fail all I/O.
*/
- blk_queue_flag_clear(QUEUE_FLAG_INIT_DONE, q);
- __blk_mq_unfreeze_queue(q, true);
-
+ if (!test_bit(GD_OWNS_QUEUE, &disk->state)) {
+ blk_queue_flag_clear(QUEUE_FLAG_INIT_DONE, q);
+ __blk_mq_unfreeze_queue(q, true);
+ } else {
+ if (queue_is_mq(q))
+ blk_mq_exit_queue(q);
+ }
}
EXPORT_SYMBOL(del_gendisk);
@@ -1338,9 +1345,6 @@ struct gendisk *__alloc_disk_node(struct request_queue *q, int node_id,
{
struct gendisk *disk;
- if (!blk_get_queue(q))
- return NULL;
-
disk = kzalloc_node(sizeof(struct gendisk), GFP_KERNEL, node_id);
if (!disk)
goto out_put_queue;
@@ -1391,7 +1395,6 @@ struct gendisk *__alloc_disk_node(struct request_queue *q, int node_id,
blk_put_queue(q);
return NULL;
}
-EXPORT_SYMBOL(__alloc_disk_node);
struct gendisk *__blk_alloc_disk(int node, struct lock_class_key *lkclass)
{
@@ -1404,9 +1407,10 @@ struct gendisk *__blk_alloc_disk(int node, struct lock_class_key *lkclass)
disk = __alloc_disk_node(q, node, lkclass);
if (!disk) {
- blk_cleanup_queue(q);
+ blk_put_queue(q);
return NULL;
}
+ set_bit(GD_OWNS_QUEUE, &disk->state);
return disk;
}
EXPORT_SYMBOL(__blk_alloc_disk);
@@ -1439,7 +1443,6 @@ EXPORT_SYMBOL(put_disk);
*/
void blk_cleanup_disk(struct gendisk *disk)
{
- blk_cleanup_queue(disk->queue);
put_disk(disk);
}
EXPORT_SYMBOL(blk_cleanup_disk);
diff --git a/drivers/block/ataflop.c b/drivers/block/ataflop.c
index e232cc4fd444..c6e41ee18aaa 100644
--- a/drivers/block/ataflop.c
+++ b/drivers/block/ataflop.c
@@ -2045,7 +2045,6 @@ static void atari_floppy_cleanup(void)
if (!unit[i].disk[type])
continue;
del_gendisk(unit[i].disk[type]);
- blk_cleanup_queue(unit[i].disk[type]->queue);
put_disk(unit[i].disk[type]);
}
blk_mq_free_tag_set(&unit[i].tag_set);
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index a59910ef948e..1c036ef686fb 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -2062,7 +2062,6 @@ static void loop_remove(struct loop_device *lo)
{
/* Make this loop device unreachable from pathname. */
del_gendisk(lo->lo_disk);
- blk_cleanup_queue(lo->lo_disk->queue);
blk_mq_free_tag_set(&lo->tag_set);
mutex_lock(&loop_ctl_mutex);
diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c
index 6699e4b2f7f4..06994a35acc7 100644
--- a/drivers/block/mtip32xx/mtip32xx.c
+++ b/drivers/block/mtip32xx/mtip32xx.c
@@ -3677,7 +3677,6 @@ static int mtip_block_shutdown(struct driver_data *dd)
if (test_bit(MTIP_DDF_INIT_DONE_BIT, &dd->dd_flag))
del_gendisk(dd->disk);
- blk_cleanup_queue(dd->queue);
blk_mq_free_tag_set(&dd->tags);
put_disk(dd->disk);
return 0;
@@ -4040,7 +4039,6 @@ static void mtip_pci_remove(struct pci_dev *pdev)
dev_info(&dd->pdev->dev, "device %s surprise removal\n",
dd->disk->disk_name);
- blk_cleanup_queue(dd->queue);
blk_mq_free_tag_set(&dd->tags);
/* De-initialize the protocol layer. */
diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c
index 409c76b81aed..a4470374f54f 100644
--- a/drivers/block/rnbd/rnbd-clt.c
+++ b/drivers/block/rnbd/rnbd-clt.c
@@ -1755,7 +1755,7 @@ static void rnbd_destroy_sessions(void)
list_for_each_entry_safe(dev, tn, &sess->devs_list, list) {
/*
* Here unmap happens in parallel for only one reason:
- * blk_cleanup_queue() takes around half a second, so
+ * del_gendisk() takes around half a second, so
* on huge amount of devices the whole module unload
* procedure takes minutes.
*/
diff --git a/drivers/block/sx8.c b/drivers/block/sx8.c
index 63b4f6431d2e..75057dbbcfbe 100644
--- a/drivers/block/sx8.c
+++ b/drivers/block/sx8.c
@@ -1536,7 +1536,7 @@ static int carm_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
clear_bit(0, &carm_major_alloc);
else if (host->major == 161)
clear_bit(1, &carm_major_alloc);
- blk_cleanup_queue(host->oob_q);
+ blk_mq_destroy_queue(host->oob_q);
blk_mq_free_tag_set(&host->tag_set);
err_out_dma_free:
dma_free_coherent(&pdev->dev, CARM_SHM_SIZE, host->shm, host->shm_dma);
@@ -1570,7 +1570,7 @@ static void carm_remove_one (struct pci_dev *pdev)
clear_bit(0, &carm_major_alloc);
else if (host->major == 161)
clear_bit(1, &carm_major_alloc);
- blk_cleanup_queue(host->oob_q);
+ blk_mq_destroy_queue(host->oob_q);
blk_mq_free_tag_set(&host->tag_set);
dma_free_coherent(&pdev->dev, CARM_SHM_SIZE, host->shm, host->shm_dma);
iounmap(host->mmio);
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index d756423e0059..59d6d5faf739 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -1107,7 +1107,6 @@ static void virtblk_remove(struct virtio_device *vdev)
flush_work(&vblk->config_work);
del_gendisk(vblk->disk);
- blk_cleanup_queue(vblk->disk->queue);
blk_mq_free_tag_set(&vblk->tag_set);
mutex_lock(&vblk->vdev_mutex);
diff --git a/drivers/block/z2ram.c b/drivers/block/z2ram.c
index 7a6ed83481b8..18ad43d9933e 100644
--- a/drivers/block/z2ram.c
+++ b/drivers/block/z2ram.c
@@ -384,7 +384,6 @@ static void __exit z2_exit(void)
for (i = 0; i < Z2MINOR_COUNT; i++) {
del_gendisk(z2ram_gendisk[i]);
- blk_cleanup_queue(z2ram_gendisk[i]->queue);
put_disk(z2ram_gendisk[i]);
}
blk_mq_free_tag_set(&tag_set);
diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c
index 8e78b37d0f6a..f4cc90ea6198 100644
--- a/drivers/cdrom/gdrom.c
+++ b/drivers/cdrom/gdrom.c
@@ -831,7 +831,6 @@ static int probe_gdrom(struct platform_device *devptr)
static int remove_gdrom(struct platform_device *devptr)
{
- blk_cleanup_queue(gd.gdrom_rq);
blk_mq_free_tag_set(&gd.tag_set);
free_irq(HW_EVENT_GDROM_CMD, &gd);
free_irq(HW_EVENT_GDROM_DMA, &gd);
diff --git a/drivers/memstick/core/ms_block.c b/drivers/memstick/core/ms_block.c
index f8fdf88fb240..ecbc46714e68 100644
--- a/drivers/memstick/core/ms_block.c
+++ b/drivers/memstick/core/ms_block.c
@@ -2188,7 +2188,6 @@ static void msb_remove(struct memstick_dev *card)
/* Remove the disk */
del_gendisk(msb->disk);
- blk_cleanup_queue(msb->queue);
blk_mq_free_tag_set(&msb->tag_set);
msb->queue = NULL;
diff --git a/drivers/memstick/core/mspro_block.c b/drivers/memstick/core/mspro_block.c
index 725ba74ded30..72e91c06c618 100644
--- a/drivers/memstick/core/mspro_block.c
+++ b/drivers/memstick/core/mspro_block.c
@@ -1294,7 +1294,6 @@ static void mspro_block_remove(struct memstick_dev *card)
del_gendisk(msb->disk);
dev_dbg(&card->dev, "mspro block remove\n");
- blk_cleanup_queue(msb->queue);
blk_mq_free_tag_set(&msb->tag_set);
msb->queue = NULL;
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index 912a398a9a76..2f89ae55c177 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -2509,7 +2509,6 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card,
return md;
err_cleanup_queue:
- blk_cleanup_queue(md->disk->queue);
blk_mq_free_tag_set(&md->queue.tag_set);
err_kfree:
kfree(md);
diff --git a/drivers/mmc/core/queue.c b/drivers/mmc/core/queue.c
index fa5324ceeebe..f824cfdab75a 100644
--- a/drivers/mmc/core/queue.c
+++ b/drivers/mmc/core/queue.c
@@ -494,7 +494,6 @@ void mmc_cleanup_queue(struct mmc_queue *mq)
if (blk_queue_quiesced(q))
blk_mq_unquiesce_queue(q);
- blk_cleanup_queue(q);
blk_mq_free_tag_set(&mq->tag_set);
/*
diff --git a/drivers/nvme/host/apple.c b/drivers/nvme/host/apple.c
index d702d7d60235..2d23b7d41f7e 100644
--- a/drivers/nvme/host/apple.c
+++ b/drivers/nvme/host/apple.c
@@ -1502,7 +1502,7 @@ static int apple_nvme_probe(struct platform_device *pdev)
if (!blk_get_queue(anv->ctrl.admin_q)) {
nvme_start_admin_queue(&anv->ctrl);
- blk_cleanup_queue(anv->ctrl.admin_q);
+ blk_mq_destroy_queue(anv->ctrl.admin_q);
anv->ctrl.admin_q = NULL;
ret = -ENODEV;
goto put_dev;
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 2f965356f345..6d76fc608b74 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -4105,7 +4105,6 @@ static void nvme_ns_remove(struct nvme_ns *ns)
if (!nvme_ns_head_multipath(ns->head))
nvme_cdev_del(&ns->cdev, &ns->cdev_device);
del_gendisk(ns->disk);
- blk_cleanup_queue(ns->queue);
down_write(&ns->ctrl->namespaces_rwsem);
list_del_init(&ns->list);
diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
index 4aff83b1b0c0..9a5ce70d7f21 100644
--- a/drivers/nvme/host/fc.c
+++ b/drivers/nvme/host/fc.c
@@ -2392,7 +2392,7 @@ nvme_fc_ctrl_free(struct kref *ref)
unsigned long flags;
if (ctrl->ctrl.tagset) {
- blk_cleanup_queue(ctrl->ctrl.connect_q);
+ blk_mq_destroy_queue(ctrl->ctrl.connect_q);
blk_mq_free_tag_set(&ctrl->tag_set);
}
@@ -2402,8 +2402,8 @@ nvme_fc_ctrl_free(struct kref *ref)
spin_unlock_irqrestore(&ctrl->rport->lock, flags);
nvme_start_admin_queue(&ctrl->ctrl);
- blk_cleanup_queue(ctrl->ctrl.admin_q);
- blk_cleanup_queue(ctrl->ctrl.fabrics_q);
+ blk_mq_destroy_queue(ctrl->ctrl.admin_q);
+ blk_mq_destroy_queue(ctrl->ctrl.fabrics_q);
blk_mq_free_tag_set(&ctrl->admin_tag_set);
kfree(ctrl->queues);
@@ -2953,7 +2953,7 @@ nvme_fc_create_io_queues(struct nvme_fc_ctrl *ctrl)
out_delete_hw_queues:
nvme_fc_delete_hw_io_queues(ctrl);
out_cleanup_blk_queue:
- blk_cleanup_queue(ctrl->ctrl.connect_q);
+ blk_mq_destroy_queue(ctrl->ctrl.connect_q);
out_free_tag_set:
blk_mq_free_tag_set(&ctrl->tag_set);
nvme_fc_free_io_queues(ctrl);
@@ -3642,9 +3642,9 @@ nvme_fc_init_ctrl(struct device *dev, struct nvmf_ctrl_options *opts,
return ERR_PTR(-EIO);
out_cleanup_admin_q:
- blk_cleanup_queue(ctrl->ctrl.admin_q);
+ blk_mq_destroy_queue(ctrl->ctrl.admin_q);
out_cleanup_fabrics_q:
- blk_cleanup_queue(ctrl->ctrl.fabrics_q);
+ blk_mq_destroy_queue(ctrl->ctrl.fabrics_q);
out_free_admin_tag_set:
blk_mq_free_tag_set(&ctrl->admin_tag_set);
out_free_queues:
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 9f6614f7dbeb..3516678d3754 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -1760,7 +1760,7 @@ static void nvme_dev_remove_admin(struct nvme_dev *dev)
* queue to flush these to completion.
*/
nvme_start_admin_queue(&dev->ctrl);
- blk_cleanup_queue(dev->ctrl.admin_q);
+ blk_mq_destroy_queue(dev->ctrl.admin_q);
blk_mq_free_tag_set(&dev->admin_tagset);
}
}
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
index 46c2dcf72f7e..240024dd5d85 100644
--- a/drivers/nvme/host/rdma.c
+++ b/drivers/nvme/host/rdma.c
@@ -840,8 +840,8 @@ static void nvme_rdma_destroy_admin_queue(struct nvme_rdma_ctrl *ctrl,
bool remove)
{
if (remove) {
- blk_cleanup_queue(ctrl->ctrl.admin_q);
- blk_cleanup_queue(ctrl->ctrl.fabrics_q);
+ blk_mq_destroy_queue(ctrl->ctrl.admin_q);
+ blk_mq_destroy_queue(ctrl->ctrl.fabrics_q);
blk_mq_free_tag_set(ctrl->ctrl.admin_tagset);
}
if (ctrl->async_event_sqe.data) {
@@ -935,10 +935,10 @@ static int nvme_rdma_configure_admin_queue(struct nvme_rdma_ctrl *ctrl,
nvme_cancel_admin_tagset(&ctrl->ctrl);
out_cleanup_queue:
if (new)
- blk_cleanup_queue(ctrl->ctrl.admin_q);
+ blk_mq_destroy_queue(ctrl->ctrl.admin_q);
out_cleanup_fabrics_q:
if (new)
- blk_cleanup_queue(ctrl->ctrl.fabrics_q);
+ blk_mq_destroy_queue(ctrl->ctrl.fabrics_q);
out_free_tagset:
if (new)
blk_mq_free_tag_set(ctrl->ctrl.admin_tagset);
@@ -957,7 +957,7 @@ static void nvme_rdma_destroy_io_queues(struct nvme_rdma_ctrl *ctrl,
bool remove)
{
if (remove) {
- blk_cleanup_queue(ctrl->ctrl.connect_q);
+ blk_mq_destroy_queue(ctrl->ctrl.connect_q);
blk_mq_free_tag_set(ctrl->ctrl.tagset);
}
nvme_rdma_free_io_queues(ctrl);
@@ -1012,7 +1012,7 @@ static int nvme_rdma_configure_io_queues(struct nvme_rdma_ctrl *ctrl, bool new)
out_cleanup_connect_q:
nvme_cancel_tagset(&ctrl->ctrl);
if (new)
- blk_cleanup_queue(ctrl->ctrl.connect_q);
+ blk_mq_destroy_queue(ctrl->ctrl.connect_q);
out_free_tag_set:
if (new)
blk_mq_free_tag_set(ctrl->ctrl.tagset);
diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c
index daa0e160e121..d7e5bbdb9b75 100644
--- a/drivers/nvme/host/tcp.c
+++ b/drivers/nvme/host/tcp.c
@@ -1881,7 +1881,7 @@ static void nvme_tcp_destroy_io_queues(struct nvme_ctrl *ctrl, bool remove)
{
nvme_tcp_stop_io_queues(ctrl);
if (remove) {
- blk_cleanup_queue(ctrl->connect_q);
+ blk_mq_destroy_queue(ctrl->connect_q);
blk_mq_free_tag_set(ctrl->tagset);
}
nvme_tcp_free_io_queues(ctrl);
@@ -1936,7 +1936,7 @@ static int nvme_tcp_configure_io_queues(struct nvme_ctrl *ctrl, bool new)
out_cleanup_connect_q:
nvme_cancel_tagset(ctrl);
if (new)
- blk_cleanup_queue(ctrl->connect_q);
+ blk_mq_destroy_queue(ctrl->connect_q);
out_free_tag_set:
if (new)
blk_mq_free_tag_set(ctrl->tagset);
@@ -1949,8 +1949,8 @@ static void nvme_tcp_destroy_admin_queue(struct nvme_ctrl *ctrl, bool remove)
{
nvme_tcp_stop_queue(ctrl, 0);
if (remove) {
- blk_cleanup_queue(ctrl->admin_q);
- blk_cleanup_queue(ctrl->fabrics_q);
+ blk_mq_destroy_queue(ctrl->admin_q);
+ blk_mq_destroy_queue(ctrl->fabrics_q);
blk_mq_free_tag_set(ctrl->admin_tagset);
}
nvme_tcp_free_admin_queue(ctrl);
@@ -2008,10 +2008,10 @@ static int nvme_tcp_configure_admin_queue(struct nvme_ctrl *ctrl, bool new)
nvme_cancel_admin_tagset(ctrl);
out_cleanup_queue:
if (new)
- blk_cleanup_queue(ctrl->admin_q);
+ blk_mq_destroy_queue(ctrl->admin_q);
out_cleanup_fabrics_q:
if (new)
- blk_cleanup_queue(ctrl->fabrics_q);
+ blk_mq_destroy_queue(ctrl->fabrics_q);
out_free_tagset:
if (new)
blk_mq_free_tag_set(ctrl->admin_tagset);
diff --git a/drivers/nvme/target/loop.c b/drivers/nvme/target/loop.c
index 59024af2da2e..0f5c77e22a0a 100644
--- a/drivers/nvme/target/loop.c
+++ b/drivers/nvme/target/loop.c
@@ -266,8 +266,8 @@ static void nvme_loop_destroy_admin_queue(struct nvme_loop_ctrl *ctrl)
if (!test_and_clear_bit(NVME_LOOP_Q_LIVE, &ctrl->queues[0].flags))
return;
nvmet_sq_destroy(&ctrl->queues[0].nvme_sq);
- blk_cleanup_queue(ctrl->ctrl.admin_q);
- blk_cleanup_queue(ctrl->ctrl.fabrics_q);
+ blk_mq_destroy_queue(ctrl->ctrl.admin_q);
+ blk_mq_destroy_queue(ctrl->ctrl.fabrics_q);
blk_mq_free_tag_set(&ctrl->admin_tag_set);
}
@@ -283,7 +283,7 @@ static void nvme_loop_free_ctrl(struct nvme_ctrl *nctrl)
mutex_unlock(&nvme_loop_ctrl_mutex);
if (nctrl->tagset) {
- blk_cleanup_queue(ctrl->ctrl.connect_q);
+ blk_mq_destroy_queue(ctrl->ctrl.connect_q);
blk_mq_free_tag_set(&ctrl->tag_set);
}
kfree(ctrl->queues);
@@ -410,9 +410,9 @@ static int nvme_loop_configure_admin_queue(struct nvme_loop_ctrl *ctrl)
out_cleanup_queue:
clear_bit(NVME_LOOP_Q_LIVE, &ctrl->queues[0].flags);
- blk_cleanup_queue(ctrl->ctrl.admin_q);
+ blk_mq_destroy_queue(ctrl->ctrl.admin_q);
out_cleanup_fabrics_q:
- blk_cleanup_queue(ctrl->ctrl.fabrics_q);
+ blk_mq_destroy_queue(ctrl->ctrl.fabrics_q);
out_free_tagset:
blk_mq_free_tag_set(&ctrl->admin_tag_set);
out_free_sq:
@@ -554,7 +554,7 @@ static int nvme_loop_create_io_queues(struct nvme_loop_ctrl *ctrl)
return 0;
out_cleanup_connect_q:
- blk_cleanup_queue(ctrl->ctrl.connect_q);
+ blk_mq_destroy_queue(ctrl->ctrl.connect_q);
out_free_tagset:
blk_mq_free_tag_set(&ctrl->tag_set);
out_destroy_queues:
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index ba6d78789660..e8489331f12b 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -3280,7 +3280,7 @@ static int dasd_alloc_queue(struct dasd_block *block)
static void dasd_free_queue(struct dasd_block *block)
{
if (block->request_queue) {
- blk_cleanup_queue(block->request_queue);
+ blk_mq_destroy_queue(block->request_queue);
blk_mq_free_tag_set(&block->tag_set);
block->request_queue = NULL;
}
diff --git a/drivers/s390/block/dasd_genhd.c b/drivers/s390/block/dasd_genhd.c
index a7a33ebf4bbe..5a83f0a39901 100644
--- a/drivers/s390/block/dasd_genhd.c
+++ b/drivers/s390/block/dasd_genhd.c
@@ -41,8 +41,8 @@ int dasd_gendisk_alloc(struct dasd_block *block)
if (base->devindex >= DASD_PER_MAJOR)
return -EBUSY;
- gdp = __alloc_disk_node(block->request_queue, NUMA_NO_NODE,
- &dasd_bio_compl_lkclass);
+ gdp = blk_mq_alloc_disk_for_queue(block->request_queue,
+ &dasd_bio_compl_lkclass);
if (!gdp)
return -ENOMEM;
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index f5c876d03c1a..0a267d6e2f7c 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -168,7 +168,7 @@ static void __scsi_queue_insert(struct scsi_cmnd *cmd, int reason, bool unbusy)
* Requeue this command. It will go before all other commands
* that are already in the queue. Schedule requeue work under
* lock such that the kblockd_schedule_work() call happens
- * before blk_cleanup_queue() finishes.
+ * before blk_mq_destroy_queue() finishes.
*/
cmd->result = 0;
@@ -429,9 +429,9 @@ static void scsi_starved_list_run(struct Scsi_Host *shost)
* it and the queue. Mitigate by taking a reference to the
* queue and never touching the sdev again after we drop the
* host lock. Note: if __scsi_remove_device() invokes
- * blk_cleanup_queue() before the queue is run from this
+ * blk_mq_destroy_queue() before the queue is run from this
* function then blk_run_queue() will return immediately since
- * blk_cleanup_queue() marks the queue with QUEUE_FLAG_DYING.
+ * blk_mq_destroy_queue() marks the queue with QUEUE_FLAG_DYING.
*/
slq = sdev->request_queue;
if (!blk_get_queue(slq))
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index 43949798a2e4..aa70d9282161 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
@@ -1475,7 +1475,7 @@ void __scsi_remove_device(struct scsi_device *sdev)
scsi_device_set_state(sdev, SDEV_DEL);
mutex_unlock(&sdev->state_mutex);
- blk_cleanup_queue(sdev->request_queue);
+ blk_mq_destroy_queue(sdev->request_queue);
cancel_work_sync(&sdev->requeue_work);
if (sdev->host->hostt->slave_destroy)
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index a1a2ac09066f..cb587e488601 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -3440,8 +3440,8 @@ static int sd_probe(struct device *dev)
if (!sdkp)
goto out;
- gd = __alloc_disk_node(sdp->request_queue, NUMA_NO_NODE,
- &sd_bio_compl_lkclass);
+ gd = blk_mq_alloc_disk_for_queue(sdp->request_queue,
+ &sd_bio_compl_lkclass);
if (!gd)
goto out_free;
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index 32d3b8274f14..a278b739d0c5 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -624,8 +624,8 @@ static int sr_probe(struct device *dev)
if (!cd)
goto fail;
- disk = __alloc_disk_node(sdev->request_queue, NUMA_NO_NODE,
- &sr_bio_compl_lkclass);
+ disk = blk_mq_alloc_disk_for_queue(sdev->request_queue,
+ &sr_bio_compl_lkclass);
if (!disk)
goto fail_free;
mutex_init(&cd->lock);
diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index 829da9cb14a8..55bb0d0422d5 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -9519,7 +9519,7 @@ void ufshcd_remove(struct ufs_hba *hba)
ufs_bsg_remove(hba);
ufshpb_remove(hba);
ufs_sysfs_remove_nodes(hba->dev);
- blk_cleanup_queue(hba->tmf_queue);
+ blk_mq_destroy_queue(hba->tmf_queue);
blk_mq_free_tag_set(&hba->tmf_tag_set);
scsi_remove_host(hba->host);
/* disable interrupts */
@@ -9815,7 +9815,7 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq)
return 0;
free_tmf_queue:
- blk_cleanup_queue(hba->tmf_queue);
+ blk_mq_destroy_queue(hba->tmf_queue);
free_tmf_tag_set:
blk_mq_free_tag_set(&hba->tmf_tag_set);
out_remove_scsi_host:
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index e2d9daf7e8dd..0fd96e92c6c6 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -686,10 +686,13 @@ struct gendisk *__blk_mq_alloc_disk(struct blk_mq_tag_set *set, void *queuedata,
\
__blk_mq_alloc_disk(set, queuedata, &__key); \
})
+struct gendisk *blk_mq_alloc_disk_for_queue(struct request_queue *q,
+ struct lock_class_key *lkclass);
struct request_queue *blk_mq_init_queue(struct blk_mq_tag_set *);
int blk_mq_init_allocated_queue(struct blk_mq_tag_set *set,
struct request_queue *q);
void blk_mq_unregister_dev(struct device *, struct request_queue *);
+void blk_mq_destroy_queue(struct request_queue *);
int blk_mq_alloc_tag_set(struct blk_mq_tag_set *set);
int blk_mq_alloc_sq_tag_set(struct blk_mq_tag_set *set,
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 76f77eed58c3..83eb8869a8c9 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -148,6 +148,7 @@ struct gendisk {
#define GD_NATIVE_CAPACITY 3
#define GD_ADDED 4
#define GD_SUPPRESS_PART_SCAN 5
+#define GD_OWNS_QUEUE 6
struct mutex open_mutex; /* open/close mutex */
unsigned open_partitions; /* number of open partitions */
@@ -810,8 +811,6 @@ static inline u64 sb_bdev_nr_blocks(struct super_block *sb)
int bdev_disk_changed(struct gendisk *disk, bool invalidate);
-struct gendisk *__alloc_disk_node(struct request_queue *q, int node_id,
- struct lock_class_key *lkclass);
void put_disk(struct gendisk *disk);
struct gendisk *__blk_alloc_disk(int node, struct lock_class_key *lkclass);
@@ -953,7 +952,6 @@ static inline unsigned int blk_max_size_offset(struct request_queue *q,
/*
* Access functions for manipulating queue properties
*/
-extern void blk_cleanup_queue(struct request_queue *);
void blk_queue_bounce_limit(struct request_queue *q, enum blk_bounce limit);
extern void blk_queue_max_hw_sectors(struct request_queue *, unsigned int);
extern void blk_queue_chunk_sectors(struct request_queue *, unsigned int);
--
2.35.1
next prev parent reply other threads:[~2022-09-26 11:39 UTC|newest]
Thread overview: 228+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-26 10:09 [PATCH 5.19 000/207] 5.19.12-rc1 review Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 001/207] drm/i915: Extract intel_edp_fixup_vbt_bpp() Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 002/207] drm/i915/pps: Split pps_init_delays() into distinct parts Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 003/207] drm/i915/bios: Split parse_driver_features() into two parts Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 004/207] drm/i915/bios: Split VBT parsing to global vs. panel specific parts Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 005/207] drm/i915/bios: Split VBT data into per-panel vs. global parts Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 006/207] drm/i915/dsi: filter invalid backlight and CABC ports Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 007/207] drm/i915/dsi: fix dual-link DSI backlight and CABC ports for display 11+ Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 008/207] smb3: Move the flush out of smb2_copychunk_range() into its callers Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 009/207] smb3: fix temporary data corruption in collapse range Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 010/207] smb3: fix temporary data corruption in insert range Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 011/207] usb: add quirks for Lenovo OneLink+ Dock Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 012/207] usb: gadget: udc-xilinx: replace memcpy with memcpy_toio Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 013/207] smb3: use filemap_write_and_wait_range instead of filemap_write_and_wait Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 014/207] Revert "usb: add quirks for Lenovo OneLink+ Dock" Greg Kroah-Hartman
2022-09-27 5:23 ` Jiri Slaby
2022-09-27 5:47 ` Greg Kroah-Hartman
2022-09-27 6:18 ` Jiri Slaby
2022-09-27 6:31 ` Greg Kroah-Hartman
2022-09-28 5:54 ` Jiri Slaby
2022-09-26 10:10 ` [PATCH 5.19 015/207] Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio" Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 016/207] xfrm: fix XFRMA_LASTUSED comment Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 017/207] block: remove QUEUE_FLAG_DEAD Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 018/207] block: stop setting the nomerges flags in blk_cleanup_queue Greg Kroah-Hartman
2022-09-26 10:10 ` Greg Kroah-Hartman [this message]
2022-09-26 10:10 ` [PATCH 5.19 020/207] scsi: core: Fix a use-after-free Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 021/207] drivers/base: Fix unsigned comparison to -1 in CPUMAP_FILE_MAX_BYTES Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 022/207] USB: core: Fix RST error in hub.c Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 023/207] USB: serial: option: add Quectel BG95 0x0203 composition Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 024/207] USB: serial: option: add Quectel RM520N Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 025/207] Revert "ALSA: usb-audio: Split endpoint setups for hw_params and prepare" Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 026/207] ALSA: core: Fix double-free at snd_card_new() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 027/207] ALSA: hda/tegra: set depop delay for tegra Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 028/207] ALSA: hda: Fix hang at HD-audio codec unbinding due to refcount saturation Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 029/207] ALSA: hda: Fix Nvidia dp infoframe Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 030/207] ALSA: hda: add Intel 5 Series / 3400 PCI DID Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 031/207] ALSA: hda/realtek: Add quirk for Huawei WRT-WX9 Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 032/207] ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5570 laptop Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 033/207] ALSA: hda/realtek: Re-arrange quirk table entries Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 034/207] ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 035/207] ALSA: hda/realtek: Add pincfg for ASUS G533Z " Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 036/207] ALSA: hda/realtek: Add quirk for ASUS GA503R laptop Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 037/207] ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 038/207] ALSA: hda/realtek: Add a quirk for HP OMEN 16 (8902) mute LED Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 039/207] iommu/vt-d: Check correct capability for sagaw determination Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 040/207] exfat: fix overflow for large capacity partition Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 041/207] btrfs: fix hang during unmount when stopping block group reclaim worker Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 042/207] btrfs: fix hang during unmount when stopping a space " Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 043/207] btrfs: zoned: wait for extent buffer IOs before finishing a zone Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 044/207] libperf evlist: Fix polling of system-wide events Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 045/207] media: flexcop-usb: fix endpoint type check Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 046/207] usb: dwc3: core: leave default DMA if the controller does not support 64-bit DMA Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 047/207] thunderbolt: Add support for Intel Maple Ridge single port controller Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 048/207] efi: x86: Wipe setup_data on pure EFI boot Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 049/207] efi: libstub: check Shim mode using MokSBStateRT Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 050/207] wifi: mt76: fix reading current per-tid starting sequence number for aggregation Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 051/207] gpio: mockup: fix NULL pointer dereference when removing debugfs Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 052/207] gpio: mockup: Fix potential resource leakage when register a chip Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 053/207] gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 054/207] riscv: fix a nasty sigreturn bug Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 055/207] riscv: fix RISCV_ISA_SVPBMT kconfig dependency warning Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 056/207] drm/i915/gem: Flush contexts on driver release Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 057/207] drm/i915/gem: Really move i915_gem_context.link under ref protection Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 058/207] xen/xenbus: fix xenbus_setup_ring() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 059/207] kasan: call kasan_malloc() from __kmalloc_*track_caller() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 060/207] can: flexcan: flexcan_mailbox_read() fix return value for drop = true Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 061/207] net: mana: Add rmb after checking owner bits Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 062/207] mm/slub: fix to return errno if kmalloc() fails Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 063/207] mm: slub: fix flush_cpu_slab()/__free_slab() invocations in task context Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 064/207] KVM: x86: Reinstate kvm_vcpu_arch.guest_supported_xcr0 Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 065/207] KVM: x86: Always enable legacy FP/SSE in allowed user XFEATURES Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 066/207] KVM: x86: Inject #UD on emulated XSETBV if XSAVES isnt enabled Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 067/207] perf/arm-cmn: Add more bits to child node address offset field Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 068/207] arm64: topology: fix possible overflow in amu_fie_setup() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 069/207] vmlinux.lds.h: CFI: Reduce alignment of jump-table to function alignment Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 070/207] batman-adv: Fix hang up with small MTU hard-interface Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 071/207] firmware: arm_scmi: Harden accesses to the reset domains Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 072/207] firmware: arm_scmi: Fix the asynchronous reset requests Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 073/207] arm64: dts: rockchip: Lower sd speed on quartz64-b Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 074/207] arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 075/207] arm64: dts: rockchip: Fix typo in lisense text for PX30.Core Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 076/207] drm/mediatek: dsi: Add atomic {destroy,duplicate}_state, reset callbacks Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 077/207] arm64: dts: imx8mm: Reverse CPLD_Dn GPIO label mapping on MX8Menlo Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 078/207] arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 079/207] arm64: dts: imx8mn: remove GPU power domain reset Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 080/207] arm64: dts: imx8ulp: add #reset-cells for pcc Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 081/207] dmaengine: ti: k3-udma-private: Fix refcount leak bug in of_xudma_dev_get() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 082/207] arm64: dts: rockchip: fix property for usb2 phy supply on rock-3a Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 083/207] arm64: dts: rockchip: fix property for usb2 phy supply on rk3568-evb1-v10 Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 084/207] arm64: dts: rockchip: Remove enable-active-low from rk3399-puma Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 085/207] arm64: dts: rockchip: Remove enable-active-low from rk3566-quartz64-a Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 086/207] arm64: dts: imx8mm-verdin: extend pmic voltages Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 087/207] netfilter: nf_conntrack_sip: fix ct_sip_walk_headers Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 088/207] netfilter: nf_conntrack_irc: Tighten matching on DCC message Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 089/207] netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 090/207] ice: Dont double unplug aux on peer initiated reset Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 091/207] ice: Fix crash by keep old cfg when update TCs more than queues Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 092/207] iavf: Fix cached head and tail value for iavf_get_tx_pending Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 093/207] ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 094/207] net: core: fix flow symmetric hash Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 095/207] wifi: iwlwifi: Mark IWLMEI as broken Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 096/207] arm64: dts: tqma8mqml: Include phy-imx8-pcie.h header Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 097/207] drm/mediatek: Fix wrong dither settings Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 098/207] arm64: dts: imx8mp-venice-gw74xx: fix CAN STBY polarity Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 099/207] arm64: dts: imx8mp-venice-gw74xx: fix ksz9477 cpu port Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 100/207] ARM: dts: lan966x: Fix the interrupt number for internal PHYs Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 101/207] net: phy: aquantia: wait for the suspend/resume operations to finish Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 102/207] arm64: dts: imx8mp-venice-gw74xx: fix port/phy validation Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 103/207] scsi: qla2xxx: Fix memory leak in __qlt_24xx_handle_abts() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 104/207] scsi: mpt3sas: Fix return value check of dma_get_required_mask() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 105/207] net: bonding: Share lacpdu_mcast_addr definition Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 106/207] net: bonding: Unsync device addresses on ndo_stop Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 107/207] net: team: " Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 108/207] drm/panel: simple: Fix innolux_g121i1_l01 bus_format Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 109/207] mm/slab_common: fix possible double free of kmem_cache Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 110/207] MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 111/207] MIPS: Loongson32: Fix PHY-mode being left unspecified Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 112/207] um: fix default console kernel parameter Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 113/207] iavf: Fix bad page state Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 114/207] mlxbf_gige: clear MDIO gateway lock after read Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 115/207] iavf: Fix set max MTU size with port VLAN and jumbo frames Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 116/207] i40e: Fix VF set max MTU size Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 117/207] i40e: Fix set max_tx_rate when it is lower than 1 Mbps Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 118/207] netdevsim: Fix hwstats debugfs file permissions Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 119/207] sfc: fix TX channel offset when using legacy interrupts Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 120/207] sfc: fix null pointer dereference in efx_hard_start_xmit Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 121/207] bnxt_en: fix flags to check for supported fw version Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 122/207] gve: Fix GFP flags when allocing pages Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 123/207] drm/hisilicon: Add depends on MMU Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 124/207] of: mdio: Add of_node_put() when breaking out of for_each_xx Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 125/207] net: ipa: properly limit modem routing table use Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 126/207] sfc/siena: fix TX channel offset when using legacy interrupts Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 127/207] sfc/siena: fix null pointer dereference in efx_hard_start_xmit Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 128/207] wireguard: ratelimiter: disable timings test by default Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 129/207] wireguard: netlink: avoid variable-sized memcpy on sockaddr Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 130/207] net: enetc: move enetc_set_psfp() out of the common enetc_set_features() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 131/207] net: enetc: deny offload of tc-based TSN features on VF interfaces Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 132/207] ipv6: Fix crash when IPv6 is administratively disabled Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 133/207] net/sched: taprio: avoid disabling offload when it was never enabled Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 134/207] net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 135/207] ice: config netdev tc before setting queues number Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 136/207] ice: Fix interface being down after reset with link-down-on-close flag on Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 137/207] netfilter: nf_tables: fix nft_counters_enabled underflow at nf_tables_addchain() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 138/207] netfilter: nf_tables: fix percpu memory leak " Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 139/207] netfilter: ebtables: fix memory leak when blob is malformed Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 140/207] netfilter: nf_ct_ftp: fix deadlock when nat rewrite is needed Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 141/207] net: ravb: Fix PHY state warning splat during system resume Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 142/207] net: sh_eth: " Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 143/207] gpio: tqmx86: fix uninitialized variable girq Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 144/207] can: gs_usb: gs_can_open(): fix race dev->can.state condition Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 145/207] perf stat: Fix BPF program section name Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 146/207] perf stat: Fix cpu map index in bperf cgroup code Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 147/207] perf jit: Include program header in ELF files Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 148/207] perf kcore_copy: Do not check /proc/modules is unchanged Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 149/207] perf tools: Honor namespace when synthesizing build-ids Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 150/207] drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 151/207] ice: Fix ice_xdp_xmit() when XDP TX queue number is not sufficient Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 152/207] net/smc: Stop the CLC flow if no link to map buffers on Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 153/207] net: phy: micrel: fix shared interrupt on LAN8814 Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 154/207] bonding: fix NULL deref in bond_rr_gen_slave_id Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 155/207] net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 156/207] net: sched: fix possible refcount leak in tc_new_tfilter() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 157/207] bnxt: prevent skb UAF after handing over to PTP worker Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 158/207] selftests: forwarding: add shebang for sch_red.sh Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 159/207] io_uring: ensure that cached task references are always put on exit Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 160/207] serial: fsl_lpuart: Reset prior to registration Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 161/207] serial: Create uart_xmit_advance() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 162/207] serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 163/207] serial: tegra-tcu: " Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 164/207] cgroup: cgroup_get_from_id() must check the looked-up kn is a directory Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 165/207] phy: marvell: phy-mvebu-a3700-comphy: Remove broken reset support Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 166/207] s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 167/207] drm/i915/display: Fix handling of enable_psr parameter Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 168/207] blk-mq: fix error handling in __blk_mq_alloc_disk Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 169/207] block: call blk_mq_exit_queue from disk_release for never added disks Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 170/207] block: Do not call blk_put_queue() if gendisk allocation fails Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 171/207] Drivers: hv: Never allocate anything besides framebuffer from framebuffer memory region Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 172/207] drm/gma500: Fix BUG: sleeping function called from invalid context errors Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 173/207] drm/gma500: Fix WARN_ON(lock->magic != lock) error Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 174/207] drm/gma500: Fix (vblank) IRQs not working after suspend/resume Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 175/207] gpio: ixp4xx: Make irqchip immutable Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 176/207] drm/amd/pm: disable BACO entry/exit completely on several sienna cichlid cards Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 177/207] drm/amdgpu: use dirty framebuffer helper Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 178/207] drm/amdgpu: change the alignment size of TMR BO to 1M Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 179/207] drm/amdgpu: add HDP remap functionality to nbio 7.7 Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 180/207] drm/amdgpu: Skip reset error status for psp v13_0_0 Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 181/207] drm/amd/display: Limit user regamma to a valid value Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 182/207] drm/amd/display: Reduce number of arguments of dml31s CalculateWatermarksAndDRAMSpeedChangeSupport() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 183/207] drm/amd/display: Reduce number of arguments of dml31s CalculateFlipSchedule() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 184/207] drm/amd/display: Mark dml30s UseMinimumDCFCLK() as noinline for stack usage Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 185/207] drm/rockchip: Fix return type of cdn_dp_connector_mode_valid Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 186/207] gpio: mt7621: Make the irqchip immutable Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 187/207] pmem: fix a name collision Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 188/207] fsdax: Fix infinite loop in dax_iomap_rw() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 189/207] workqueue: dont skip lockdep work dependency in cancel_work_sync() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 190/207] i2c: imx: If pm_runtime_get_sync() returned 1 device access is possible Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 191/207] i2c: mlxbf: incorrect base address passed during io write Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 192/207] i2c: mlxbf: prevent stack overflow in mlxbf_i2c_smbus_start_transaction() Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 193/207] i2c: mlxbf: Fix frequency calculation Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 194/207] i2c: mux: harden i2c_mux_alloc() against integer overflows Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 195/207] drm/amdgpu: dont register a dirty callback for non-atomic Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 196/207] certs: make system keyring depend on built-in x509 parser Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 197/207] Makefile.debug: set -g unconditional on CONFIG_DEBUG_INFO_SPLIT Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 198/207] Makefile.debug: re-enable debug info for .S files Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 199/207] devdax: Fix soft-reservation memory description Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 200/207] ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0 Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 201/207] ext4: limit the number of retries after discarding preallocations blocks Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 202/207] ext4: make mballoc try target group first even with mb_optimize_scan Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 203/207] ext4: avoid unnecessary spreading of allocations among groups Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 204/207] ext4: make directory inode spreading reflect flexbg size Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 205/207] ext4: use locality group preallocation for small closed files Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 206/207] ext4: use buckets for cr 1 block scan instead of rbtree Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 207/207] Revert "block: freeze the queue earlier in del_gendisk" Greg Kroah-Hartman
2022-09-26 13:41 ` [PATCH 5.19 000/207] 5.19.12-rc1 review Holger Hoffstätte
2022-09-26 15:19 ` Fenil Jain
2022-09-26 20:48 ` Justin Forbes
2022-09-26 22:24 ` Florian Fainelli
2022-09-26 22:46 ` Shuah Khan
2022-09-26 23:15 ` Zan Aziz
2022-09-27 2:07 ` Ron Economos
2022-09-27 7:48 ` Bagas Sanjaya
2022-09-27 7:55 ` Naresh Kamboju
2022-09-27 8:19 ` Greg Kroah-Hartman
2022-09-29 15:43 ` Naresh Kamboju
2022-09-29 22:16 ` Tetsuo Handa
2022-09-27 11:07 ` Sudip Mukherjee (Codethink)
2022-09-28 1:21 ` Guenter Roeck
2022-09-28 5:14 ` Jiri Slaby
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=20220926100807.331946650@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=axboe@kernel.dk \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=linux-kernel@vger.kernel.org \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox