All of lore.kernel.org
 help / color / mirror / Atom feed
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




  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 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.