From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org,
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
Sagi Grimberg <sagi@grimberg.me>,
Chaitanya Kulkarni <kch@nvidia.com>,
Christoph Hellwig <hch@lst.de>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.15 034/132] nvmet: use a private workqueue instead of the system workqueue
Date: Mon, 23 May 2022 19:04:03 +0200 [thread overview]
Message-ID: <20220523165829.132547750@linuxfoundation.org> (raw)
In-Reply-To: <20220523165823.492309987@linuxfoundation.org>
From: Sagi Grimberg <sagi@grimberg.me>
[ Upstream commit 8832cf922151e9dfa2821736beb0ae2dd3968b6e ]
Any attempt to flush kernel-global WQs has possibility of deadlock
so we should simply stop using them, instead introduce nvmet_wq
which is the generic nvmet workqueue for work elements that
don't explicitly require a dedicated workqueue (by the mere fact
that they are using the system_wq).
Changes were done using the following replaces:
- s/schedule_work(/queue_work(nvmet_wq, /g
- s/schedule_delayed_work(/queue_delayed_work(nvmet_wq, /g
- s/flush_scheduled_work()/flush_workqueue(nvmet_wq)/g
Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/nvme/target/admin-cmd.c | 2 +-
drivers/nvme/target/configfs.c | 2 +-
drivers/nvme/target/core.c | 24 ++++++++++++++++++------
drivers/nvme/target/fc.c | 8 ++++----
drivers/nvme/target/fcloop.c | 16 ++++++++--------
drivers/nvme/target/io-cmd-file.c | 6 +++---
drivers/nvme/target/loop.c | 4 ++--
drivers/nvme/target/nvmet.h | 1 +
drivers/nvme/target/passthru.c | 2 +-
drivers/nvme/target/rdma.c | 12 ++++++------
drivers/nvme/target/tcp.c | 10 +++++-----
11 files changed, 50 insertions(+), 37 deletions(-)
diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
index aa6d84d8848e..52bb262d267a 100644
--- a/drivers/nvme/target/admin-cmd.c
+++ b/drivers/nvme/target/admin-cmd.c
@@ -978,7 +978,7 @@ void nvmet_execute_async_event(struct nvmet_req *req)
ctrl->async_event_cmds[ctrl->nr_async_event_cmds++] = req;
mutex_unlock(&ctrl->lock);
- schedule_work(&ctrl->async_event_work);
+ queue_work(nvmet_wq, &ctrl->async_event_work);
}
void nvmet_execute_keep_alive(struct nvmet_req *req)
diff --git a/drivers/nvme/target/configfs.c b/drivers/nvme/target/configfs.c
index 496d775c6770..cea30e4f5053 100644
--- a/drivers/nvme/target/configfs.c
+++ b/drivers/nvme/target/configfs.c
@@ -1554,7 +1554,7 @@ static void nvmet_port_release(struct config_item *item)
struct nvmet_port *port = to_nvmet_port(item);
/* Let inflight controllers teardown complete */
- flush_scheduled_work();
+ flush_workqueue(nvmet_wq);
list_del(&port->global_entry);
kfree(port->ana_state);
diff --git a/drivers/nvme/target/core.c b/drivers/nvme/target/core.c
index b8425fa34300..a8dafe8670f2 100644
--- a/drivers/nvme/target/core.c
+++ b/drivers/nvme/target/core.c
@@ -20,6 +20,9 @@ struct workqueue_struct *zbd_wq;
static const struct nvmet_fabrics_ops *nvmet_transports[NVMF_TRTYPE_MAX];
static DEFINE_IDA(cntlid_ida);
+struct workqueue_struct *nvmet_wq;
+EXPORT_SYMBOL_GPL(nvmet_wq);
+
/*
* This read/write semaphore is used to synchronize access to configuration
* information on a target system that will result in discovery log page
@@ -205,7 +208,7 @@ void nvmet_add_async_event(struct nvmet_ctrl *ctrl, u8 event_type,
list_add_tail(&aen->entry, &ctrl->async_events);
mutex_unlock(&ctrl->lock);
- schedule_work(&ctrl->async_event_work);
+ queue_work(nvmet_wq, &ctrl->async_event_work);
}
static void nvmet_add_to_changed_ns_log(struct nvmet_ctrl *ctrl, __le32 nsid)
@@ -385,7 +388,7 @@ static void nvmet_keep_alive_timer(struct work_struct *work)
if (reset_tbkas) {
pr_debug("ctrl %d reschedule traffic based keep-alive timer\n",
ctrl->cntlid);
- schedule_delayed_work(&ctrl->ka_work, ctrl->kato * HZ);
+ queue_delayed_work(nvmet_wq, &ctrl->ka_work, ctrl->kato * HZ);
return;
}
@@ -403,7 +406,7 @@ void nvmet_start_keep_alive_timer(struct nvmet_ctrl *ctrl)
pr_debug("ctrl %d start keep-alive timer for %d secs\n",
ctrl->cntlid, ctrl->kato);
- schedule_delayed_work(&ctrl->ka_work, ctrl->kato * HZ);
+ queue_delayed_work(nvmet_wq, &ctrl->ka_work, ctrl->kato * HZ);
}
void nvmet_stop_keep_alive_timer(struct nvmet_ctrl *ctrl)
@@ -1477,7 +1480,7 @@ void nvmet_ctrl_fatal_error(struct nvmet_ctrl *ctrl)
mutex_lock(&ctrl->lock);
if (!(ctrl->csts & NVME_CSTS_CFS)) {
ctrl->csts |= NVME_CSTS_CFS;
- schedule_work(&ctrl->fatal_err_work);
+ queue_work(nvmet_wq, &ctrl->fatal_err_work);
}
mutex_unlock(&ctrl->lock);
}
@@ -1617,9 +1620,15 @@ static int __init nvmet_init(void)
goto out_free_zbd_work_queue;
}
+ nvmet_wq = alloc_workqueue("nvmet-wq", WQ_MEM_RECLAIM, 0);
+ if (!nvmet_wq) {
+ error = -ENOMEM;
+ goto out_free_buffered_work_queue;
+ }
+
error = nvmet_init_discovery();
if (error)
- goto out_free_work_queue;
+ goto out_free_nvmet_work_queue;
error = nvmet_init_configfs();
if (error)
@@ -1628,7 +1637,9 @@ static int __init nvmet_init(void)
out_exit_discovery:
nvmet_exit_discovery();
-out_free_work_queue:
+out_free_nvmet_work_queue:
+ destroy_workqueue(nvmet_wq);
+out_free_buffered_work_queue:
destroy_workqueue(buffered_io_wq);
out_free_zbd_work_queue:
destroy_workqueue(zbd_wq);
@@ -1640,6 +1651,7 @@ static void __exit nvmet_exit(void)
nvmet_exit_configfs();
nvmet_exit_discovery();
ida_destroy(&cntlid_ida);
+ destroy_workqueue(nvmet_wq);
destroy_workqueue(buffered_io_wq);
destroy_workqueue(zbd_wq);
diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
index 22b5108168a6..c43bc5e1c7a2 100644
--- a/drivers/nvme/target/fc.c
+++ b/drivers/nvme/target/fc.c
@@ -1491,7 +1491,7 @@ __nvmet_fc_free_assocs(struct nvmet_fc_tgtport *tgtport)
list_for_each_entry_rcu(assoc, &tgtport->assoc_list, a_list) {
if (!nvmet_fc_tgt_a_get(assoc))
continue;
- if (!schedule_work(&assoc->del_work))
+ if (!queue_work(nvmet_wq, &assoc->del_work))
/* already deleting - release local reference */
nvmet_fc_tgt_a_put(assoc);
}
@@ -1546,7 +1546,7 @@ nvmet_fc_invalidate_host(struct nvmet_fc_target_port *target_port,
continue;
assoc->hostport->invalid = 1;
noassoc = false;
- if (!schedule_work(&assoc->del_work))
+ if (!queue_work(nvmet_wq, &assoc->del_work))
/* already deleting - release local reference */
nvmet_fc_tgt_a_put(assoc);
}
@@ -1592,7 +1592,7 @@ nvmet_fc_delete_ctrl(struct nvmet_ctrl *ctrl)
nvmet_fc_tgtport_put(tgtport);
if (found_ctrl) {
- if (!schedule_work(&assoc->del_work))
+ if (!queue_work(nvmet_wq, &assoc->del_work))
/* already deleting - release local reference */
nvmet_fc_tgt_a_put(assoc);
return;
@@ -2060,7 +2060,7 @@ nvmet_fc_rcv_ls_req(struct nvmet_fc_target_port *target_port,
iod->rqstdatalen = lsreqbuf_len;
iod->hosthandle = hosthandle;
- schedule_work(&iod->work);
+ queue_work(nvmet_wq, &iod->work);
return 0;
}
diff --git a/drivers/nvme/target/fcloop.c b/drivers/nvme/target/fcloop.c
index 54606f1872b4..5c16372f3b53 100644
--- a/drivers/nvme/target/fcloop.c
+++ b/drivers/nvme/target/fcloop.c
@@ -360,7 +360,7 @@ fcloop_h2t_ls_req(struct nvme_fc_local_port *localport,
spin_lock(&rport->lock);
list_add_tail(&rport->ls_list, &tls_req->ls_list);
spin_unlock(&rport->lock);
- schedule_work(&rport->ls_work);
+ queue_work(nvmet_wq, &rport->ls_work);
return ret;
}
@@ -393,7 +393,7 @@ fcloop_h2t_xmt_ls_rsp(struct nvmet_fc_target_port *targetport,
spin_lock(&rport->lock);
list_add_tail(&rport->ls_list, &tls_req->ls_list);
spin_unlock(&rport->lock);
- schedule_work(&rport->ls_work);
+ queue_work(nvmet_wq, &rport->ls_work);
}
return 0;
@@ -448,7 +448,7 @@ fcloop_t2h_ls_req(struct nvmet_fc_target_port *targetport, void *hosthandle,
spin_lock(&tport->lock);
list_add_tail(&tport->ls_list, &tls_req->ls_list);
spin_unlock(&tport->lock);
- schedule_work(&tport->ls_work);
+ queue_work(nvmet_wq, &tport->ls_work);
return ret;
}
@@ -480,7 +480,7 @@ fcloop_t2h_xmt_ls_rsp(struct nvme_fc_local_port *localport,
spin_lock(&tport->lock);
list_add_tail(&tport->ls_list, &tls_req->ls_list);
spin_unlock(&tport->lock);
- schedule_work(&tport->ls_work);
+ queue_work(nvmet_wq, &tport->ls_work);
}
return 0;
@@ -520,7 +520,7 @@ fcloop_tgt_discovery_evt(struct nvmet_fc_target_port *tgtport)
tgt_rscn->tport = tgtport->private;
INIT_WORK(&tgt_rscn->work, fcloop_tgt_rscn_work);
- schedule_work(&tgt_rscn->work);
+ queue_work(nvmet_wq, &tgt_rscn->work);
}
static void
@@ -739,7 +739,7 @@ fcloop_fcp_req(struct nvme_fc_local_port *localport,
INIT_WORK(&tfcp_req->tio_done_work, fcloop_tgt_fcprqst_done_work);
kref_init(&tfcp_req->ref);
- schedule_work(&tfcp_req->fcp_rcv_work);
+ queue_work(nvmet_wq, &tfcp_req->fcp_rcv_work);
return 0;
}
@@ -921,7 +921,7 @@ fcloop_fcp_req_release(struct nvmet_fc_target_port *tgtport,
{
struct fcloop_fcpreq *tfcp_req = tgt_fcp_req_to_fcpreq(tgt_fcpreq);
- schedule_work(&tfcp_req->tio_done_work);
+ queue_work(nvmet_wq, &tfcp_req->tio_done_work);
}
static void
@@ -976,7 +976,7 @@ fcloop_fcp_abort(struct nvme_fc_local_port *localport,
if (abortio)
/* leave the reference while the work item is scheduled */
- WARN_ON(!schedule_work(&tfcp_req->abort_rcv_work));
+ WARN_ON(!queue_work(nvmet_wq, &tfcp_req->abort_rcv_work));
else {
/*
* as the io has already had the done callback made,
diff --git a/drivers/nvme/target/io-cmd-file.c b/drivers/nvme/target/io-cmd-file.c
index df7e033dd273..228871d48106 100644
--- a/drivers/nvme/target/io-cmd-file.c
+++ b/drivers/nvme/target/io-cmd-file.c
@@ -292,7 +292,7 @@ static void nvmet_file_execute_flush(struct nvmet_req *req)
if (!nvmet_check_transfer_len(req, 0))
return;
INIT_WORK(&req->f.work, nvmet_file_flush_work);
- schedule_work(&req->f.work);
+ queue_work(nvmet_wq, &req->f.work);
}
static void nvmet_file_execute_discard(struct nvmet_req *req)
@@ -352,7 +352,7 @@ static void nvmet_file_execute_dsm(struct nvmet_req *req)
if (!nvmet_check_data_len_lte(req, nvmet_dsm_len(req)))
return;
INIT_WORK(&req->f.work, nvmet_file_dsm_work);
- schedule_work(&req->f.work);
+ queue_work(nvmet_wq, &req->f.work);
}
static void nvmet_file_write_zeroes_work(struct work_struct *w)
@@ -382,7 +382,7 @@ static void nvmet_file_execute_write_zeroes(struct nvmet_req *req)
if (!nvmet_check_transfer_len(req, 0))
return;
INIT_WORK(&req->f.work, nvmet_file_write_zeroes_work);
- schedule_work(&req->f.work);
+ queue_work(nvmet_wq, &req->f.work);
}
u16 nvmet_file_parse_io_cmd(struct nvmet_req *req)
diff --git a/drivers/nvme/target/loop.c b/drivers/nvme/target/loop.c
index 0285ccc7541f..2553f487c9f2 100644
--- a/drivers/nvme/target/loop.c
+++ b/drivers/nvme/target/loop.c
@@ -166,7 +166,7 @@ static blk_status_t nvme_loop_queue_rq(struct blk_mq_hw_ctx *hctx,
iod->req.transfer_len = blk_rq_payload_bytes(req);
}
- schedule_work(&iod->work);
+ queue_work(nvmet_wq, &iod->work);
return BLK_STS_OK;
}
@@ -187,7 +187,7 @@ static void nvme_loop_submit_async_event(struct nvme_ctrl *arg)
return;
}
- schedule_work(&iod->work);
+ queue_work(nvmet_wq, &iod->work);
}
static int nvme_loop_init_iod(struct nvme_loop_ctrl *ctrl,
diff --git a/drivers/nvme/target/nvmet.h b/drivers/nvme/target/nvmet.h
index 7143c7fa7464..dbeb0b8c1194 100644
--- a/drivers/nvme/target/nvmet.h
+++ b/drivers/nvme/target/nvmet.h
@@ -365,6 +365,7 @@ struct nvmet_req {
extern struct workqueue_struct *buffered_io_wq;
extern struct workqueue_struct *zbd_wq;
+extern struct workqueue_struct *nvmet_wq;
static inline void nvmet_set_result(struct nvmet_req *req, u32 result)
{
diff --git a/drivers/nvme/target/passthru.c b/drivers/nvme/target/passthru.c
index f0efb3537989..6220e1dd961a 100644
--- a/drivers/nvme/target/passthru.c
+++ b/drivers/nvme/target/passthru.c
@@ -281,7 +281,7 @@ static void nvmet_passthru_execute_cmd(struct nvmet_req *req)
if (req->p.use_workqueue || effects) {
INIT_WORK(&req->p.work, nvmet_passthru_execute_cmd_work);
req->p.rq = rq;
- schedule_work(&req->p.work);
+ queue_work(nvmet_wq, &req->p.work);
} else {
rq->end_io_data = req;
blk_execute_rq_nowait(ns ? ns->disk : NULL, rq, 0,
diff --git a/drivers/nvme/target/rdma.c b/drivers/nvme/target/rdma.c
index f1eedbf493d5..18e082091c82 100644
--- a/drivers/nvme/target/rdma.c
+++ b/drivers/nvme/target/rdma.c
@@ -1583,7 +1583,7 @@ static int nvmet_rdma_queue_connect(struct rdma_cm_id *cm_id,
if (queue->host_qid == 0) {
/* Let inflight controller teardown complete */
- flush_scheduled_work();
+ flush_workqueue(nvmet_wq);
}
ret = nvmet_rdma_cm_accept(cm_id, queue, &event->param.conn);
@@ -1668,7 +1668,7 @@ static void __nvmet_rdma_queue_disconnect(struct nvmet_rdma_queue *queue)
if (disconnect) {
rdma_disconnect(queue->cm_id);
- schedule_work(&queue->release_work);
+ queue_work(nvmet_wq, &queue->release_work);
}
}
@@ -1698,7 +1698,7 @@ static void nvmet_rdma_queue_connect_fail(struct rdma_cm_id *cm_id,
mutex_unlock(&nvmet_rdma_queue_mutex);
pr_err("failed to connect queue %d\n", queue->idx);
- schedule_work(&queue->release_work);
+ queue_work(nvmet_wq, &queue->release_work);
}
/**
@@ -1772,7 +1772,7 @@ static int nvmet_rdma_cm_handler(struct rdma_cm_id *cm_id,
if (!queue) {
struct nvmet_rdma_port *port = cm_id->context;
- schedule_delayed_work(&port->repair_work, 0);
+ queue_delayed_work(nvmet_wq, &port->repair_work, 0);
break;
}
fallthrough;
@@ -1902,7 +1902,7 @@ static void nvmet_rdma_repair_port_work(struct work_struct *w)
nvmet_rdma_disable_port(port);
ret = nvmet_rdma_enable_port(port);
if (ret)
- schedule_delayed_work(&port->repair_work, 5 * HZ);
+ queue_delayed_work(nvmet_wq, &port->repair_work, 5 * HZ);
}
static int nvmet_rdma_add_port(struct nvmet_port *nport)
@@ -2046,7 +2046,7 @@ static void nvmet_rdma_remove_one(struct ib_device *ib_device, void *client_data
}
mutex_unlock(&nvmet_rdma_queue_mutex);
- flush_scheduled_work();
+ flush_workqueue(nvmet_wq);
}
static struct ib_client nvmet_rdma_ib_client = {
diff --git a/drivers/nvme/target/tcp.c b/drivers/nvme/target/tcp.c
index 2b8bab28417b..f592e5f7f5f3 100644
--- a/drivers/nvme/target/tcp.c
+++ b/drivers/nvme/target/tcp.c
@@ -1251,7 +1251,7 @@ static void nvmet_tcp_schedule_release_queue(struct nvmet_tcp_queue *queue)
spin_lock(&queue->state_lock);
if (queue->state != NVMET_TCP_Q_DISCONNECTING) {
queue->state = NVMET_TCP_Q_DISCONNECTING;
- schedule_work(&queue->release_work);
+ queue_work(nvmet_wq, &queue->release_work);
}
spin_unlock(&queue->state_lock);
}
@@ -1662,7 +1662,7 @@ static void nvmet_tcp_listen_data_ready(struct sock *sk)
goto out;
if (sk->sk_state == TCP_LISTEN)
- schedule_work(&port->accept_work);
+ queue_work(nvmet_wq, &port->accept_work);
out:
read_unlock_bh(&sk->sk_callback_lock);
}
@@ -1793,7 +1793,7 @@ static u16 nvmet_tcp_install_queue(struct nvmet_sq *sq)
if (sq->qid == 0) {
/* Let inflight controller teardown complete */
- flush_scheduled_work();
+ flush_workqueue(nvmet_wq);
}
queue->nr_cmds = sq->size * 2;
@@ -1854,12 +1854,12 @@ static void __exit nvmet_tcp_exit(void)
nvmet_unregister_transport(&nvmet_tcp_ops);
- flush_scheduled_work();
+ flush_workqueue(nvmet_wq);
mutex_lock(&nvmet_tcp_queue_mutex);
list_for_each_entry(queue, &nvmet_tcp_queue_list, queue_list)
kernel_sock_shutdown(queue->sock, SHUT_RDWR);
mutex_unlock(&nvmet_tcp_queue_mutex);
- flush_scheduled_work();
+ flush_workqueue(nvmet_wq);
destroy_workqueue(nvmet_tcp_wq);
}
--
2.35.1
next prev parent reply other threads:[~2022-05-23 17:39 UTC|newest]
Thread overview: 142+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-23 17:03 [PATCH 5.15 000/132] 5.15.42-rc1 review Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 001/132] usb: gadget: fix race when gadget driver register via ioctl Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 002/132] io_uring: arm poll for non-nowait files Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 003/132] floppy: use a statically allocated error counter Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 004/132] kernel/resource: Introduce request_mem_region_muxed() Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 005/132] i2c: piix4: Replace hardcoded memory map size with a #define Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 006/132] i2c: piix4: Move port I/O region request/release code into functions Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 007/132] i2c: piix4: Move SMBus controller base address detect into function Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 008/132] i2c: piix4: Move SMBus port selection " Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 009/132] i2c: piix4: Add EFCH MMIO support to region request and release Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 010/132] i2c: piix4: Add EFCH MMIO support to SMBus base address detect Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 011/132] i2c: piix4: Add EFCH MMIO support for SMBus port select Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 012/132] i2c: piix4: Enable EFCH MMIO for Family 17h+ Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 013/132] Watchdog: sp5100_tco: Move timer initialization into function Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 014/132] Watchdog: sp5100_tco: Refactor MMIO base address initialization Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 015/132] Watchdog: sp5100_tco: Add initialization using EFCH MMIO Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 016/132] Watchdog: sp5100_tco: Enable Family 17h+ CPUs Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 017/132] mm/kfence: reset PG_slab and memcg_data before freeing __kfence_pool Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 018/132] Revert "drm/i915/opregion: check port number bounds for SWSCI display power state" Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 019/132] rtc: fix use-after-free on device removal Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 020/132] rtc: pcf2127: fix bug when reading alarm registers Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 021/132] um: Cleanup syscall_handler_t definition/cast, fix warning Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 022/132] Input: add bounds checking to input_set_capability() Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 023/132] Input: stmfts - fix reference leak in stmfts_input_open Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 024/132] nvme-pci: add quirks for Samsung X5 SSDs Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 025/132] gfs2: Disable page faults during lockless buffered reads Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 026/132] rtc: sun6i: Fix time overflow handling Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 027/132] crypto: stm32 - fix reference leak in stm32_crc_remove Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 028/132] crypto: x86/chacha20 - Avoid spurious jumps to other functions Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 029/132] ALSA: hda/realtek: Enable headset mic on Lenovo P360 Greg Kroah-Hartman
2022-05-23 17:03 ` [PATCH 5.15 030/132] s390/traps: improve panic message for translation-specification exception Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 031/132] s390/pci: improve zpci_dev reference counting Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 032/132] vhost_vdpa: dont setup irq offloading when irq_num < 0 Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 033/132] tools/virtio: compile with -pthread Greg Kroah-Hartman
2022-05-23 17:04 ` Greg Kroah-Hartman [this message]
2022-05-23 17:04 ` [PATCH 5.15 035/132] nvme-multipath: fix hang when disk goes live over reconnect Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 036/132] rtc: mc146818-lib: Fix the AltCentury for AMD platforms Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 037/132] fs: fix an infinite loop in iomap_fiemap Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 038/132] MIPS: lantiq: check the return value of kzalloc() Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 039/132] drbd: remove usage of list iterator variable after loop Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 040/132] platform/chrome: cros_ec_debugfs: detach log reader wq from devm Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 041/132] ARM: 9191/1: arm/stacktrace, kasan: Silence KASAN warnings in unwind_frame() Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 042/132] nilfs2: fix lockdep warnings in page operations for btree nodes Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 043/132] nilfs2: fix lockdep warnings during disk space reclamation Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 044/132] ALSA: usb-audio: Restore Rane SL-1 quirk Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 045/132] ALSA: wavefront: Proper check of get_user() error Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 046/132] ALSA: hda/realtek: Add quirk for TongFang devices with pop noise Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 047/132] perf: Fix sys_perf_event_open() race against self Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 048/132] selinux: fix bad cleanup on error in hashtab_duplicate() Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 049/132] Fix double fget() in vhost_net_set_backend() Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 050/132] PCI/PM: Avoid putting Elo i2 PCIe Ports in D3cold Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 051/132] Revert "can: m_can: pci: use custom bit timings for Elkhart Lake" Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 052/132] KVM: x86/mmu: Update number of zapped pages even if page list is stable Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 053/132] arm64: paravirt: Use RCU read locks to guard stolen_time Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 054/132] arm64: mte: Ensure the cleared tags are visible before setting the PTE Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 055/132] crypto: qcom-rng - fix infinite loop on requests not multiple of WORD_SZ Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 056/132] libceph: fix potential use-after-free on linger ping and resends Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 057/132] drm/amd: Dont reset dGPUs if the system is going to s2idle Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 058/132] drm/i915/dmc: Add MMIO range restrictions Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 059/132] drm/dp/mst: fix a possible memory leak in fetch_monitor_name() Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 060/132] dma-buf: fix use of DMA_BUF_SET_NAME_{A,B} in userspace Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 061/132] dma-buf: ensure unique directory name for dmabuf stats Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 062/132] ARM: dts: aspeed-g6: remove FWQSPID group in pinctrl dtsi Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 063/132] pinctrl: pinctrl-aspeed-g6: remove FWQSPID group in pinctrl Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 064/132] ARM: dts: aspeed-g6: fix SPI1/SPI2 quad pin group Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 065/132] ARM: dts: aspeed: Add ADC for AST2600 and enable for Rainier and Everest Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 066/132] ARM: dts: aspeed: Add secure boot controller node Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 067/132] ARM: dts: aspeed: Add video engine to g6 Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 068/132] pinctrl: mediatek: mt8365: fix IES control pins Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 069/132] ALSA: hda - fix unused Realtek function when PM is not enabled Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 070/132] net: ipa: record proper RX transaction count Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 071/132] net: macb: Increment rx bd head after allocating skb and buffer Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 072/132] xfrm: rework default policy structure Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 073/132] xfrm: fix "disable_policy" flag use when arriving from different devices Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 074/132] net/sched: act_pedit: sanitize shift argument before usage Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 075/132] netfilter: flowtable: fix excessive hw offload attempts after failure Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 076/132] netfilter: nft_flow_offload: skip dst neigh lookup for ppp devices Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 077/132] net: fix dev_fill_forward_path with pppoe + bridge Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 078/132] netfilter: nft_flow_offload: fix offload with pppoe + vlan Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 079/132] Revert "PCI: aardvark: Rewrite IRQ code to chained IRQ handler" Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 080/132] net: systemport: Fix an error handling path in bcm_sysport_probe() Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 081/132] net: vmxnet3: fix possible use-after-free bugs in vmxnet3_rq_alloc_rx_buf() Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 082/132] net: vmxnet3: fix possible NULL pointer dereference in vmxnet3_rq_cleanup() Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 083/132] ice: fix crash when writing timestamp on RX rings Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 084/132] ice: fix possible under reporting of ethtool Tx and Rx statistics Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 085/132] ice: move ice_container_type onto ice_ring_container Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 086/132] ice: Fix interrupt moderation settings getting cleared Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 087/132] clk: at91: generated: consider range when calculating best rate Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 088/132] net/qla3xxx: Fix a test in ql_reset_work() Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 089/132] NFC: nci: fix sleep in atomic context bugs caused by nci_skb_alloc Greg Kroah-Hartman
2022-05-23 17:04 ` [PATCH 5.15 090/132] net/mlx5: DR, Fix missing flow_source when creating multi-destination FW table Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 091/132] net/mlx5e: Properly block LRO when XDP is enabled Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 092/132] net: af_key: add check for pfkey_broadcast in function pfkey_process Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 093/132] ARM: 9196/1: spectre-bhb: enable for Cortex-A15 Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 094/132] ARM: 9197/1: spectre-bhb: fix loop8 sequence for Thumb2 Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 095/132] mptcp: change the parameter of __mptcp_make_csum Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 096/132] mptcp: reuse __mptcp_make_csum in validate_data_csum Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 097/132] mptcp: fix checksum byte order Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 098/132] mptcp: strict local address ID selection Greg Kroah-Hartman
2022-05-24 3:56 ` Mat Martineau
2022-05-23 17:05 ` [PATCH 5.15 099/132] mptcp: Do TCP fallback on early DSS checksum failure Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 100/132] igb: skip phy status check where unavailable Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 101/132] netfilter: flowtable: fix TCP flow teardown Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 102/132] netfilter: flowtable: pass flowtable to nf_flow_table_iterate() Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 103/132] netfilter: flowtable: move dst_check to packet path Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 104/132] net: bridge: Clear offload_fwd_mark when passing frame up bridge interface Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 105/132] riscv: dts: sifive: fu540-c000: align dma node name with dtschema Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 106/132] scsi: ufs: core: Fix referencing invalid rsp field Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 107/132] perf build: Fix check for btf__load_from_kernel_by_id() in libbpf Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 108/132] gpio: gpio-vf610: do not touch other bits when set the target bit Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 109/132] gpio: mvebu/pwm: Refuse requests with inverted polarity Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 110/132] perf regs x86: Fix arch__intr_reg_mask() for the hybrid platform Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 111/132] perf bench numa: Address compiler error on s390 Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 112/132] scsi: scsi_dh_alua: Properly handle the ALUA transitioning state Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 113/132] scsi: qla2xxx: Fix missed DMA unmap for aborted commands Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 114/132] mac80211: fix rx reordering with non explicit / psmp ack policy Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 115/132] nl80211: validate S1G channel width Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 116/132] selftests: add ping test with ping_group_range tuned Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 117/132] Revert "fbdev: Make fb_release() return -ENODEV if fbdev was unregistered" Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 118/132] fbdev: Prevent possible use-after-free in fb_release() Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 119/132] net: fix wrong network header length Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 120/132] nl80211: fix locking in nl80211_set_tx_bitrate_mask() Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 121/132] ethernet: tulip: fix missing pci_disable_device() on error in tulip_init_one() Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 122/132] net: stmmac: fix missing pci_disable_device() on error in stmmac_pci_probe() Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 123/132] net: atlantic: fix "frag[0] not initialized" Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 124/132] net: atlantic: reduce scope of is_rsc_complete Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 125/132] net: atlantic: add check for MAX_SKB_FRAGS Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 126/132] net: atlantic: verify hw_head_ lies within TX buffer ring Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 127/132] arm64: Enable repeat tlbi workaround on KRYO4XX gold CPUs Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 128/132] Input: ili210x - fix reset timing Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 129/132] dt-bindings: pinctrl: aspeed-g6: remove FWQSPID group Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 130/132] mt76: mt7921e: fix possible probe failure after reboot Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 131/132] i2c: mt7621: fix missing clk_disable_unprepare() on error in mtk_i2c_probe() Greg Kroah-Hartman
2022-05-23 17:05 ` [PATCH 5.15 132/132] afs: Fix afs_getattr() to refetch file status if callback break occurred Greg Kroah-Hartman
2022-05-23 18:42 ` [PATCH 5.15 000/132] 5.15.42-rc1 review Florian Fainelli
2022-05-23 22:56 ` Shuah Khan
2022-05-24 2:05 ` Naresh Kamboju
2022-05-24 6:53 ` Fox Chen
2022-05-24 14:54 ` Sudip Mukherjee
2022-05-24 15:11 ` Ron Economos
2022-05-24 20:04 ` Guenter Roeck
2022-05-25 0:23 ` Khalid Masum
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=20220523165829.132547750@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=hch@lst.de \
--cc=kch@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=sagi@grimberg.me \
--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