From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org,
Vaishali Thakkar <vaishali.thakkar@ionos.com>,
Jack Wang <jinpu.wang@ionos.com>,
Jason Gunthorpe <jgg@nvidia.com>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.15 509/779] RDMA/rtrs-clt: Rename rtrs_clt_sess to rtrs_clt_path
Date: Mon, 15 Aug 2022 20:02:33 +0200 [thread overview]
Message-ID: <20220815180359.020085034@linuxfoundation.org> (raw)
In-Reply-To: <20220815180337.130757997@linuxfoundation.org>
From: Vaishali Thakkar <vaishali.thakkar@ionos.com>
[ Upstream commit caa84d95c78f35168847e2ab861a3a7f87033d36 ]
rtrs_clt_sess is used for paths and not sessions on the client side. This
creates confusion so let's rename it to rtrs_clt_path. Also, rename
related variables and functions.
Coccinelle is used to do the transformations for most of the occurrences
and remaining ones were handled manually.
Link: https://lore.kernel.org/r/20220105180708.7774-4-jinpu.wang@ionos.com
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@ionos.com>
Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c | 8 +-
drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c | 123 +--
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 997 ++++++++++---------
drivers/infiniband/ulp/rtrs/rtrs-clt.h | 20 +-
drivers/infiniband/ulp/rtrs/rtrs-pri.h | 2 +-
drivers/infiniband/ulp/rtrs/rtrs.h | 4 +-
6 files changed, 586 insertions(+), 568 deletions(-)
diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c b/drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c
index 40b4d6dd4924..e7b57bdfe3ea 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c
@@ -13,8 +13,8 @@
void rtrs_clt_update_wc_stats(struct rtrs_clt_con *con)
{
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
- struct rtrs_clt_stats *stats = sess->stats;
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
+ struct rtrs_clt_stats *stats = clt_path->stats;
struct rtrs_clt_stats_pcpu *s;
int cpu;
@@ -174,8 +174,8 @@ static inline void rtrs_clt_update_rdma_stats(struct rtrs_clt_stats *stats,
void rtrs_clt_update_all_stats(struct rtrs_clt_io_req *req, int dir)
{
struct rtrs_clt_con *con = req->con;
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
- struct rtrs_clt_stats *stats = sess->stats;
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
+ struct rtrs_clt_stats *stats = clt_path->stats;
unsigned int len;
len = req->usr_len + req->data_len;
diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c b/drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c
index 4ee592ccf979..dbf9a778c3bd 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c
@@ -16,21 +16,21 @@
#define MIN_MAX_RECONN_ATT -1
#define MAX_MAX_RECONN_ATT 9999
-static void rtrs_clt_sess_release(struct kobject *kobj)
+static void rtrs_clt_path_release(struct kobject *kobj)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
- sess = container_of(kobj, struct rtrs_clt_sess, kobj);
+ clt_path = container_of(kobj, struct rtrs_clt_path, kobj);
- free_sess(sess);
+ free_path(clt_path);
}
static struct kobj_type ktype_sess = {
.sysfs_ops = &kobj_sysfs_ops,
- .release = rtrs_clt_sess_release
+ .release = rtrs_clt_path_release
};
-static void rtrs_clt_sess_stats_release(struct kobject *kobj)
+static void rtrs_clt_path_stats_release(struct kobject *kobj)
{
struct rtrs_clt_stats *stats;
@@ -43,7 +43,7 @@ static void rtrs_clt_sess_stats_release(struct kobject *kobj)
static struct kobj_type ktype_stats = {
.sysfs_ops = &kobj_sysfs_ops,
- .release = rtrs_clt_sess_stats_release,
+ .release = rtrs_clt_path_stats_release,
};
static ssize_t max_reconnect_attempts_show(struct device *dev,
@@ -197,10 +197,10 @@ static DEVICE_ATTR_RW(add_path);
static ssize_t rtrs_clt_state_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
- sess = container_of(kobj, struct rtrs_clt_sess, kobj);
- if (sess->state == RTRS_CLT_CONNECTED)
+ clt_path = container_of(kobj, struct rtrs_clt_path, kobj);
+ if (clt_path->state == RTRS_CLT_CONNECTED)
return sysfs_emit(page, "connected\n");
return sysfs_emit(page, "disconnected\n");
@@ -219,16 +219,16 @@ static ssize_t rtrs_clt_reconnect_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
int ret;
- sess = container_of(kobj, struct rtrs_clt_sess, kobj);
+ clt_path = container_of(kobj, struct rtrs_clt_path, kobj);
if (!sysfs_streq(buf, "1")) {
- rtrs_err(sess->clt, "%s: unknown value: '%s'\n",
+ rtrs_err(clt_path->clt, "%s: unknown value: '%s'\n",
attr->attr.name, buf);
return -EINVAL;
}
- ret = rtrs_clt_reconnect_from_sysfs(sess);
+ ret = rtrs_clt_reconnect_from_sysfs(clt_path);
if (ret)
return ret;
@@ -249,15 +249,15 @@ static ssize_t rtrs_clt_disconnect_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
- sess = container_of(kobj, struct rtrs_clt_sess, kobj);
+ clt_path = container_of(kobj, struct rtrs_clt_path, kobj);
if (!sysfs_streq(buf, "1")) {
- rtrs_err(sess->clt, "%s: unknown value: '%s'\n",
+ rtrs_err(clt_path->clt, "%s: unknown value: '%s'\n",
attr->attr.name, buf);
return -EINVAL;
}
- rtrs_clt_close_conns(sess, true);
+ rtrs_clt_close_conns(clt_path, true);
return count;
}
@@ -276,16 +276,16 @@ static ssize_t rtrs_clt_remove_path_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
int ret;
- sess = container_of(kobj, struct rtrs_clt_sess, kobj);
+ clt_path = container_of(kobj, struct rtrs_clt_path, kobj);
if (!sysfs_streq(buf, "1")) {
- rtrs_err(sess->clt, "%s: unknown value: '%s'\n",
+ rtrs_err(clt_path->clt, "%s: unknown value: '%s'\n",
attr->attr.name, buf);
return -EINVAL;
}
- ret = rtrs_clt_remove_path_from_sysfs(sess, &attr->attr);
+ ret = rtrs_clt_remove_path_from_sysfs(clt_path, &attr->attr);
if (ret)
return ret;
@@ -328,11 +328,11 @@ static ssize_t rtrs_clt_hca_port_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *page)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
- sess = container_of(kobj, typeof(*sess), kobj);
+ clt_path = container_of(kobj, typeof(*clt_path), kobj);
- return sysfs_emit(page, "%u\n", sess->hca_port);
+ return sysfs_emit(page, "%u\n", clt_path->hca_port);
}
static struct kobj_attribute rtrs_clt_hca_port_attr =
@@ -342,11 +342,11 @@ static ssize_t rtrs_clt_hca_name_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *page)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
- sess = container_of(kobj, struct rtrs_clt_sess, kobj);
+ clt_path = container_of(kobj, struct rtrs_clt_path, kobj);
- return sysfs_emit(page, "%s\n", sess->hca_name);
+ return sysfs_emit(page, "%s\n", clt_path->hca_name);
}
static struct kobj_attribute rtrs_clt_hca_name_attr =
@@ -356,12 +356,12 @@ static ssize_t rtrs_clt_cur_latency_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *page)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
- sess = container_of(kobj, struct rtrs_clt_sess, kobj);
+ clt_path = container_of(kobj, struct rtrs_clt_path, kobj);
return sysfs_emit(page, "%lld ns\n",
- ktime_to_ns(sess->s.hb_cur_latency));
+ ktime_to_ns(clt_path->s.hb_cur_latency));
}
static struct kobj_attribute rtrs_clt_cur_latency_attr =
@@ -371,11 +371,11 @@ static ssize_t rtrs_clt_src_addr_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *page)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
int len;
- sess = container_of(kobj, struct rtrs_clt_sess, kobj);
- len = sockaddr_to_str((struct sockaddr *)&sess->s.src_addr, page,
+ clt_path = container_of(kobj, struct rtrs_clt_path, kobj);
+ len = sockaddr_to_str((struct sockaddr *)&clt_path->s.src_addr, page,
PAGE_SIZE);
len += sysfs_emit_at(page, len, "\n");
return len;
@@ -388,11 +388,11 @@ static ssize_t rtrs_clt_dst_addr_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *page)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
int len;
- sess = container_of(kobj, struct rtrs_clt_sess, kobj);
- len = sockaddr_to_str((struct sockaddr *)&sess->s.dst_addr, page,
+ clt_path = container_of(kobj, struct rtrs_clt_path, kobj);
+ len = sockaddr_to_str((struct sockaddr *)&clt_path->s.dst_addr, page,
PAGE_SIZE);
len += sysfs_emit_at(page, len, "\n");
return len;
@@ -401,7 +401,7 @@ static ssize_t rtrs_clt_dst_addr_show(struct kobject *kobj,
static struct kobj_attribute rtrs_clt_dst_addr_attr =
__ATTR(dst_addr, 0444, rtrs_clt_dst_addr_show, NULL);
-static struct attribute *rtrs_clt_sess_attrs[] = {
+static struct attribute *rtrs_clt_path_attrs[] = {
&rtrs_clt_hca_name_attr.attr,
&rtrs_clt_hca_port_attr.attr,
&rtrs_clt_src_addr_attr.attr,
@@ -414,42 +414,43 @@ static struct attribute *rtrs_clt_sess_attrs[] = {
NULL,
};
-static const struct attribute_group rtrs_clt_sess_attr_group = {
- .attrs = rtrs_clt_sess_attrs,
+static const struct attribute_group rtrs_clt_path_attr_group = {
+ .attrs = rtrs_clt_path_attrs,
};
-int rtrs_clt_create_sess_files(struct rtrs_clt_sess *sess)
+int rtrs_clt_create_path_files(struct rtrs_clt_path *clt_path)
{
- struct rtrs_clt *clt = sess->clt;
+ struct rtrs_clt *clt = clt_path->clt;
char str[NAME_MAX];
int err;
struct rtrs_addr path = {
- .src = &sess->s.src_addr,
- .dst = &sess->s.dst_addr,
+ .src = &clt_path->s.src_addr,
+ .dst = &clt_path->s.dst_addr,
};
rtrs_addr_to_str(&path, str, sizeof(str));
- err = kobject_init_and_add(&sess->kobj, &ktype_sess, clt->kobj_paths,
+ err = kobject_init_and_add(&clt_path->kobj, &ktype_sess,
+ clt->kobj_paths,
"%s", str);
if (err) {
pr_err("kobject_init_and_add: %d\n", err);
- kobject_put(&sess->kobj);
+ kobject_put(&clt_path->kobj);
return err;
}
- err = sysfs_create_group(&sess->kobj, &rtrs_clt_sess_attr_group);
+ err = sysfs_create_group(&clt_path->kobj, &rtrs_clt_path_attr_group);
if (err) {
pr_err("sysfs_create_group(): %d\n", err);
goto put_kobj;
}
- err = kobject_init_and_add(&sess->stats->kobj_stats, &ktype_stats,
- &sess->kobj, "stats");
+ err = kobject_init_and_add(&clt_path->stats->kobj_stats, &ktype_stats,
+ &clt_path->kobj, "stats");
if (err) {
pr_err("kobject_init_and_add: %d\n", err);
- kobject_put(&sess->stats->kobj_stats);
+ kobject_put(&clt_path->stats->kobj_stats);
goto remove_group;
}
- err = sysfs_create_group(&sess->stats->kobj_stats,
+ err = sysfs_create_group(&clt_path->stats->kobj_stats,
&rtrs_clt_stats_attr_group);
if (err) {
pr_err("failed to create stats sysfs group, err: %d\n", err);
@@ -459,25 +460,25 @@ int rtrs_clt_create_sess_files(struct rtrs_clt_sess *sess)
return 0;
put_kobj_stats:
- kobject_del(&sess->stats->kobj_stats);
- kobject_put(&sess->stats->kobj_stats);
+ kobject_del(&clt_path->stats->kobj_stats);
+ kobject_put(&clt_path->stats->kobj_stats);
remove_group:
- sysfs_remove_group(&sess->kobj, &rtrs_clt_sess_attr_group);
+ sysfs_remove_group(&clt_path->kobj, &rtrs_clt_path_attr_group);
put_kobj:
- kobject_del(&sess->kobj);
- kobject_put(&sess->kobj);
+ kobject_del(&clt_path->kobj);
+ kobject_put(&clt_path->kobj);
return err;
}
-void rtrs_clt_destroy_sess_files(struct rtrs_clt_sess *sess,
+void rtrs_clt_destroy_path_files(struct rtrs_clt_path *clt_path,
const struct attribute *sysfs_self)
{
- kobject_del(&sess->stats->kobj_stats);
- kobject_put(&sess->stats->kobj_stats);
+ kobject_del(&clt_path->stats->kobj_stats);
+ kobject_put(&clt_path->stats->kobj_stats);
if (sysfs_self)
- sysfs_remove_file_self(&sess->kobj, sysfs_self);
- kobject_del(&sess->kobj);
+ sysfs_remove_file_self(&clt_path->kobj, sysfs_self);
+ kobject_del(&clt_path->kobj);
}
static struct attribute *rtrs_clt_attrs[] = {
diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
index 5e73127f2adc..a46ef2821e36 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
@@ -48,12 +48,12 @@ static struct class *rtrs_clt_dev_class;
static inline bool rtrs_clt_is_connected(const struct rtrs_clt *clt)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
bool connected = false;
rcu_read_lock();
- list_for_each_entry_rcu(sess, &clt->paths_list, s.entry)
- connected |= READ_ONCE(sess->state) == RTRS_CLT_CONNECTED;
+ list_for_each_entry_rcu(clt_path, &clt->paths_list, s.entry)
+ connected |= READ_ONCE(clt_path->state) == RTRS_CLT_CONNECTED;
rcu_read_unlock();
return connected;
@@ -163,29 +163,29 @@ EXPORT_SYMBOL(rtrs_clt_put_permit);
/**
* rtrs_permit_to_clt_con() - returns RDMA connection pointer by the permit
- * @sess: client session pointer
+ * @clt_path: client path pointer
* @permit: permit for the allocation of the RDMA buffer
* Note:
* IO connection starts from 1.
* 0 connection is for user messages.
*/
static
-struct rtrs_clt_con *rtrs_permit_to_clt_con(struct rtrs_clt_sess *sess,
+struct rtrs_clt_con *rtrs_permit_to_clt_con(struct rtrs_clt_path *clt_path,
struct rtrs_permit *permit)
{
int id = 0;
if (permit->con_type == RTRS_IO_CON)
- id = (permit->cpu_id % (sess->s.irq_con_num - 1)) + 1;
+ id = (permit->cpu_id % (clt_path->s.irq_con_num - 1)) + 1;
- return to_clt_con(sess->s.con[id]);
+ return to_clt_con(clt_path->s.con[id]);
}
/**
* rtrs_clt_change_state() - change the session state through session state
* machine.
*
- * @sess: client session to change the state of.
+ * @clt_path: client path to change the state of.
* @new_state: state to change to.
*
* returns true if sess's state is changed to new state, otherwise return false.
@@ -193,15 +193,15 @@ struct rtrs_clt_con *rtrs_permit_to_clt_con(struct rtrs_clt_sess *sess,
* Locks:
* state_wq lock must be hold.
*/
-static bool rtrs_clt_change_state(struct rtrs_clt_sess *sess,
+static bool rtrs_clt_change_state(struct rtrs_clt_path *clt_path,
enum rtrs_clt_state new_state)
{
enum rtrs_clt_state old_state;
bool changed = false;
- lockdep_assert_held(&sess->state_wq.lock);
+ lockdep_assert_held(&clt_path->state_wq.lock);
- old_state = sess->state;
+ old_state = clt_path->state;
switch (new_state) {
case RTRS_CLT_CONNECTING:
switch (old_state) {
@@ -275,42 +275,42 @@ static bool rtrs_clt_change_state(struct rtrs_clt_sess *sess,
break;
}
if (changed) {
- sess->state = new_state;
- wake_up_locked(&sess->state_wq);
+ clt_path->state = new_state;
+ wake_up_locked(&clt_path->state_wq);
}
return changed;
}
-static bool rtrs_clt_change_state_from_to(struct rtrs_clt_sess *sess,
+static bool rtrs_clt_change_state_from_to(struct rtrs_clt_path *clt_path,
enum rtrs_clt_state old_state,
enum rtrs_clt_state new_state)
{
bool changed = false;
- spin_lock_irq(&sess->state_wq.lock);
- if (sess->state == old_state)
- changed = rtrs_clt_change_state(sess, new_state);
- spin_unlock_irq(&sess->state_wq.lock);
+ spin_lock_irq(&clt_path->state_wq.lock);
+ if (clt_path->state == old_state)
+ changed = rtrs_clt_change_state(clt_path, new_state);
+ spin_unlock_irq(&clt_path->state_wq.lock);
return changed;
}
static void rtrs_rdma_error_recovery(struct rtrs_clt_con *con)
{
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
- if (rtrs_clt_change_state_from_to(sess,
+ if (rtrs_clt_change_state_from_to(clt_path,
RTRS_CLT_CONNECTED,
RTRS_CLT_RECONNECTING)) {
- struct rtrs_clt *clt = sess->clt;
+ struct rtrs_clt *clt = clt_path->clt;
unsigned int delay_ms;
/*
* Normal scenario, reconnect if we were successfully connected
*/
delay_ms = clt->reconnect_delay_sec * 1000;
- queue_delayed_work(rtrs_wq, &sess->reconnect_dwork,
+ queue_delayed_work(rtrs_wq, &clt_path->reconnect_dwork,
msecs_to_jiffies(delay_ms +
prandom_u32() % RTRS_RECONNECT_SEED));
} else {
@@ -319,7 +319,7 @@ static void rtrs_rdma_error_recovery(struct rtrs_clt_con *con)
* so notify waiter with error state, waiter is responsible
* for cleaning the rest and reconnect if needed.
*/
- rtrs_clt_change_state_from_to(sess,
+ rtrs_clt_change_state_from_to(clt_path,
RTRS_CLT_CONNECTING,
RTRS_CLT_CONNECTING_ERR);
}
@@ -380,14 +380,14 @@ static void complete_rdma_req(struct rtrs_clt_io_req *req, int errno,
bool notify, bool can_wait)
{
struct rtrs_clt_con *con = req->con;
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
int err;
if (WARN_ON(!req->in_use))
return;
if (WARN_ON(!req->con))
return;
- sess = to_clt_sess(con->c.path);
+ clt_path = to_clt_path(con->c.path);
if (req->sg_cnt) {
if (req->dir == DMA_FROM_DEVICE && req->need_inv) {
@@ -433,21 +433,21 @@ static void complete_rdma_req(struct rtrs_clt_io_req *req, int errno,
if (!refcount_dec_and_test(&req->ref))
return;
}
- ib_dma_unmap_sg(sess->s.dev->ib_dev, req->sglist,
+ ib_dma_unmap_sg(clt_path->s.dev->ib_dev, req->sglist,
req->sg_cnt, req->dir);
}
if (!refcount_dec_and_test(&req->ref))
return;
if (req->mp_policy == MP_POLICY_MIN_INFLIGHT)
- atomic_dec(&sess->stats->inflight);
+ atomic_dec(&clt_path->stats->inflight);
req->in_use = false;
req->con = NULL;
if (errno) {
rtrs_err_rl(con->c.path, "IO request failed: error=%d path=%s [%s:%u] notify=%d\n",
- errno, kobject_name(&sess->kobj), sess->hca_name,
- sess->hca_port, notify);
+ errno, kobject_name(&clt_path->kobj), clt_path->hca_name,
+ clt_path->hca_port, notify);
}
if (notify)
@@ -459,7 +459,7 @@ static int rtrs_post_send_rdma(struct rtrs_clt_con *con,
struct rtrs_rbuf *rbuf, u32 off,
u32 imm, struct ib_send_wr *wr)
{
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
enum ib_send_flags flags;
struct ib_sge sge;
@@ -472,16 +472,17 @@ static int rtrs_post_send_rdma(struct rtrs_clt_con *con,
/* user data and user message in the first list element */
sge.addr = req->iu->dma_addr;
sge.length = req->sg_size;
- sge.lkey = sess->s.dev->ib_pd->local_dma_lkey;
+ sge.lkey = clt_path->s.dev->ib_pd->local_dma_lkey;
/*
* From time to time we have to post signalled sends,
* or send queue will fill up and only QP reset can help.
*/
- flags = atomic_inc_return(&con->c.wr_cnt) % sess->s.signal_interval ?
+ flags = atomic_inc_return(&con->c.wr_cnt) % clt_path->s.signal_interval ?
0 : IB_SEND_SIGNALED;
- ib_dma_sync_single_for_device(sess->s.dev->ib_dev, req->iu->dma_addr,
+ ib_dma_sync_single_for_device(clt_path->s.dev->ib_dev,
+ req->iu->dma_addr,
req->sg_size, DMA_TO_DEVICE);
return rtrs_iu_post_rdma_write_imm(&con->c, req->iu, &sge, 1,
@@ -489,15 +490,15 @@ static int rtrs_post_send_rdma(struct rtrs_clt_con *con,
imm, flags, wr, NULL);
}
-static void process_io_rsp(struct rtrs_clt_sess *sess, u32 msg_id,
+static void process_io_rsp(struct rtrs_clt_path *clt_path, u32 msg_id,
s16 errno, bool w_inval)
{
struct rtrs_clt_io_req *req;
- if (WARN_ON(msg_id >= sess->queue_depth))
+ if (WARN_ON(msg_id >= clt_path->queue_depth))
return;
- req = &sess->reqs[msg_id];
+ req = &clt_path->reqs[msg_id];
/* Drop need_inv if server responded with send with invalidation */
req->need_inv &= !w_inval;
complete_rdma_req(req, errno, true, false);
@@ -507,9 +508,9 @@ static void rtrs_clt_recv_done(struct rtrs_clt_con *con, struct ib_wc *wc)
{
struct rtrs_iu *iu;
int err;
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
- WARN_ON((sess->flags & RTRS_MSG_NEW_RKEY_F) == 0);
+ WARN_ON((clt_path->flags & RTRS_MSG_NEW_RKEY_F) == 0);
iu = container_of(wc->wr_cqe, struct rtrs_iu,
cqe);
err = rtrs_iu_post_recv(&con->c, iu);
@@ -521,7 +522,7 @@ static void rtrs_clt_recv_done(struct rtrs_clt_con *con, struct ib_wc *wc)
static void rtrs_clt_rkey_rsp_done(struct rtrs_clt_con *con, struct ib_wc *wc)
{
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
struct rtrs_msg_rkey_rsp *msg;
u32 imm_type, imm_payload;
bool w_inval = false;
@@ -529,7 +530,7 @@ static void rtrs_clt_rkey_rsp_done(struct rtrs_clt_con *con, struct ib_wc *wc)
u32 buf_id;
int err;
- WARN_ON((sess->flags & RTRS_MSG_NEW_RKEY_F) == 0);
+ WARN_ON((clt_path->flags & RTRS_MSG_NEW_RKEY_F) == 0);
iu = container_of(wc->wr_cqe, struct rtrs_iu, cqe);
@@ -538,16 +539,17 @@ static void rtrs_clt_rkey_rsp_done(struct rtrs_clt_con *con, struct ib_wc *wc)
wc->byte_len);
goto out;
}
- ib_dma_sync_single_for_cpu(sess->s.dev->ib_dev, iu->dma_addr,
+ ib_dma_sync_single_for_cpu(clt_path->s.dev->ib_dev, iu->dma_addr,
iu->size, DMA_FROM_DEVICE);
msg = iu->buf;
if (le16_to_cpu(msg->type) != RTRS_MSG_RKEY_RSP) {
- rtrs_err(sess->clt, "rkey response is malformed: type %d\n",
+ rtrs_err(clt_path->clt,
+ "rkey response is malformed: type %d\n",
le16_to_cpu(msg->type));
goto out;
}
buf_id = le16_to_cpu(msg->buf_id);
- if (WARN_ON(buf_id >= sess->queue_depth))
+ if (WARN_ON(buf_id >= clt_path->queue_depth))
goto out;
rtrs_from_imm(be32_to_cpu(wc->ex.imm_data), &imm_type, &imm_payload);
@@ -560,10 +562,10 @@ static void rtrs_clt_rkey_rsp_done(struct rtrs_clt_con *con, struct ib_wc *wc)
if (WARN_ON(buf_id != msg_id))
goto out;
- sess->rbufs[buf_id].rkey = le32_to_cpu(msg->rkey);
- process_io_rsp(sess, msg_id, err, w_inval);
+ clt_path->rbufs[buf_id].rkey = le32_to_cpu(msg->rkey);
+ process_io_rsp(clt_path, msg_id, err, w_inval);
}
- ib_dma_sync_single_for_device(sess->s.dev->ib_dev, iu->dma_addr,
+ ib_dma_sync_single_for_device(clt_path->s.dev->ib_dev, iu->dma_addr,
iu->size, DMA_FROM_DEVICE);
return rtrs_clt_recv_done(con, wc);
out:
@@ -600,14 +602,14 @@ static int rtrs_post_recv_empty_x2(struct rtrs_con *con, struct ib_cqe *cqe)
static void rtrs_clt_rdma_done(struct ib_cq *cq, struct ib_wc *wc)
{
struct rtrs_clt_con *con = to_clt_con(wc->qp->qp_context);
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
u32 imm_type, imm_payload;
bool w_inval = false;
int err;
if (wc->status != IB_WC_SUCCESS) {
if (wc->status != IB_WC_WR_FLUSH_ERR) {
- rtrs_err(sess->clt, "RDMA failed: %s\n",
+ rtrs_err(clt_path->clt, "RDMA failed: %s\n",
ib_wc_status_msg(wc->status));
rtrs_rdma_error_recovery(con);
}
@@ -632,18 +634,18 @@ static void rtrs_clt_rdma_done(struct ib_cq *cq, struct ib_wc *wc)
w_inval = (imm_type == RTRS_IO_RSP_W_INV_IMM);
rtrs_from_io_rsp_imm(imm_payload, &msg_id, &err);
- process_io_rsp(sess, msg_id, err, w_inval);
+ process_io_rsp(clt_path, msg_id, err, w_inval);
} else if (imm_type == RTRS_HB_MSG_IMM) {
WARN_ON(con->c.cid);
- rtrs_send_hb_ack(&sess->s);
- if (sess->flags & RTRS_MSG_NEW_RKEY_F)
+ rtrs_send_hb_ack(&clt_path->s);
+ if (clt_path->flags & RTRS_MSG_NEW_RKEY_F)
return rtrs_clt_recv_done(con, wc);
} else if (imm_type == RTRS_HB_ACK_IMM) {
WARN_ON(con->c.cid);
- sess->s.hb_missed_cnt = 0;
- sess->s.hb_cur_latency =
- ktime_sub(ktime_get(), sess->s.hb_last_sent);
- if (sess->flags & RTRS_MSG_NEW_RKEY_F)
+ clt_path->s.hb_missed_cnt = 0;
+ clt_path->s.hb_cur_latency =
+ ktime_sub(ktime_get(), clt_path->s.hb_last_sent);
+ if (clt_path->flags & RTRS_MSG_NEW_RKEY_F)
return rtrs_clt_recv_done(con, wc);
} else {
rtrs_wrn(con->c.path, "Unknown IMM type %u\n",
@@ -670,7 +672,7 @@ static void rtrs_clt_rdma_done(struct ib_cq *cq, struct ib_wc *wc)
WARN_ON(!(wc->wc_flags & IB_WC_WITH_INVALIDATE ||
wc->wc_flags & IB_WC_WITH_IMM));
WARN_ON(wc->wr_cqe->done != rtrs_clt_rdma_done);
- if (sess->flags & RTRS_MSG_NEW_RKEY_F) {
+ if (clt_path->flags & RTRS_MSG_NEW_RKEY_F) {
if (wc->wc_flags & IB_WC_WITH_INVALIDATE)
return rtrs_clt_recv_done(con, wc);
@@ -685,7 +687,7 @@ static void rtrs_clt_rdma_done(struct ib_cq *cq, struct ib_wc *wc)
break;
default:
- rtrs_wrn(sess->clt, "Unexpected WC type: %d\n", wc->opcode);
+ rtrs_wrn(clt_path->clt, "Unexpected WC type: %d\n", wc->opcode);
return;
}
}
@@ -693,10 +695,10 @@ static void rtrs_clt_rdma_done(struct ib_cq *cq, struct ib_wc *wc)
static int post_recv_io(struct rtrs_clt_con *con, size_t q_size)
{
int err, i;
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
for (i = 0; i < q_size; i++) {
- if (sess->flags & RTRS_MSG_NEW_RKEY_F) {
+ if (clt_path->flags & RTRS_MSG_NEW_RKEY_F) {
struct rtrs_iu *iu = &con->rsp_ius[i];
err = rtrs_iu_post_recv(&con->c, iu);
@@ -710,16 +712,16 @@ static int post_recv_io(struct rtrs_clt_con *con, size_t q_size)
return 0;
}
-static int post_recv_sess(struct rtrs_clt_sess *sess)
+static int post_recv_path(struct rtrs_clt_path *clt_path)
{
size_t q_size = 0;
int err, cid;
- for (cid = 0; cid < sess->s.con_num; cid++) {
+ for (cid = 0; cid < clt_path->s.con_num; cid++) {
if (cid == 0)
q_size = SERVICE_CON_QUEUE_DEPTH;
else
- q_size = sess->queue_depth;
+ q_size = clt_path->queue_depth;
/*
* x2 for RDMA read responses + FR key invalidations,
@@ -727,9 +729,10 @@ static int post_recv_sess(struct rtrs_clt_sess *sess)
*/
q_size *= 2;
- err = post_recv_io(to_clt_con(sess->s.con[cid]), q_size);
+ err = post_recv_io(to_clt_con(clt_path->s.con[cid]), q_size);
if (err) {
- rtrs_err(sess->clt, "post_recv_io(), err: %d\n", err);
+ rtrs_err(clt_path->clt, "post_recv_io(), err: %d\n",
+ err);
return err;
}
}
@@ -741,7 +744,7 @@ struct path_it {
int i;
struct list_head skip_list;
struct rtrs_clt *clt;
- struct rtrs_clt_sess *(*next_path)(struct path_it *it);
+ struct rtrs_clt_path *(*next_path)(struct path_it *it);
};
/**
@@ -773,10 +776,10 @@ struct path_it {
* Locks:
* rcu_read_lock() must be hold.
*/
-static struct rtrs_clt_sess *get_next_path_rr(struct path_it *it)
+static struct rtrs_clt_path *get_next_path_rr(struct path_it *it)
{
- struct rtrs_clt_sess __rcu **ppcpu_path;
- struct rtrs_clt_sess *path;
+ struct rtrs_clt_path __rcu **ppcpu_path;
+ struct rtrs_clt_path *path;
struct rtrs_clt *clt;
clt = it->clt;
@@ -811,26 +814,26 @@ static struct rtrs_clt_sess *get_next_path_rr(struct path_it *it)
* Locks:
* rcu_read_lock() must be hold.
*/
-static struct rtrs_clt_sess *get_next_path_min_inflight(struct path_it *it)
+static struct rtrs_clt_path *get_next_path_min_inflight(struct path_it *it)
{
- struct rtrs_clt_sess *min_path = NULL;
+ struct rtrs_clt_path *min_path = NULL;
struct rtrs_clt *clt = it->clt;
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
int min_inflight = INT_MAX;
int inflight;
- list_for_each_entry_rcu(sess, &clt->paths_list, s.entry) {
- if (READ_ONCE(sess->state) != RTRS_CLT_CONNECTED)
+ list_for_each_entry_rcu(clt_path, &clt->paths_list, s.entry) {
+ if (READ_ONCE(clt_path->state) != RTRS_CLT_CONNECTED)
continue;
- if (!list_empty(raw_cpu_ptr(sess->mp_skip_entry)))
+ if (!list_empty(raw_cpu_ptr(clt_path->mp_skip_entry)))
continue;
- inflight = atomic_read(&sess->stats->inflight);
+ inflight = atomic_read(&clt_path->stats->inflight);
if (inflight < min_inflight) {
min_inflight = inflight;
- min_path = sess;
+ min_path = clt_path;
}
}
@@ -862,26 +865,26 @@ static struct rtrs_clt_sess *get_next_path_min_inflight(struct path_it *it)
* Therefore the caller MUST check the returned
* path is NULL and trigger the IO error.
*/
-static struct rtrs_clt_sess *get_next_path_min_latency(struct path_it *it)
+static struct rtrs_clt_path *get_next_path_min_latency(struct path_it *it)
{
- struct rtrs_clt_sess *min_path = NULL;
+ struct rtrs_clt_path *min_path = NULL;
struct rtrs_clt *clt = it->clt;
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
ktime_t min_latency = KTIME_MAX;
ktime_t latency;
- list_for_each_entry_rcu(sess, &clt->paths_list, s.entry) {
- if (READ_ONCE(sess->state) != RTRS_CLT_CONNECTED)
+ list_for_each_entry_rcu(clt_path, &clt->paths_list, s.entry) {
+ if (READ_ONCE(clt_path->state) != RTRS_CLT_CONNECTED)
continue;
- if (!list_empty(raw_cpu_ptr(sess->mp_skip_entry)))
+ if (!list_empty(raw_cpu_ptr(clt_path->mp_skip_entry)))
continue;
- latency = sess->s.hb_cur_latency;
+ latency = clt_path->s.hb_cur_latency;
if (latency < min_latency) {
min_latency = latency;
- min_path = sess;
+ min_path = clt_path;
}
}
@@ -928,7 +931,7 @@ static inline void path_it_deinit(struct path_it *it)
* the corresponding buffer of rtrs_iu (req->iu->buf), which later on will
* also hold the control message of rtrs.
* @req: an io request holding information about IO.
- * @sess: client session
+ * @clt_path: client path
* @conf: conformation callback function to notify upper layer.
* @permit: permit for allocation of RDMA remote buffer
* @priv: private pointer
@@ -940,7 +943,7 @@ static inline void path_it_deinit(struct path_it *it)
* @dir: direction of the IO.
*/
static void rtrs_clt_init_req(struct rtrs_clt_io_req *req,
- struct rtrs_clt_sess *sess,
+ struct rtrs_clt_path *clt_path,
void (*conf)(void *priv, int errno),
struct rtrs_permit *permit, void *priv,
const struct kvec *vec, size_t usr_len,
@@ -958,13 +961,13 @@ static void rtrs_clt_init_req(struct rtrs_clt_io_req *req,
req->sg_cnt = sg_cnt;
req->priv = priv;
req->dir = dir;
- req->con = rtrs_permit_to_clt_con(sess, permit);
+ req->con = rtrs_permit_to_clt_con(clt_path, permit);
req->conf = conf;
req->need_inv = false;
req->need_inv_comp = false;
req->inv_errno = 0;
refcount_set(&req->ref, 1);
- req->mp_policy = sess->clt->mp_policy;
+ req->mp_policy = clt_path->clt->mp_policy;
iov_iter_kvec(&iter, READ, vec, 1, usr_len);
len = _copy_from_iter(req->iu->buf, usr_len, &iter);
@@ -974,7 +977,7 @@ static void rtrs_clt_init_req(struct rtrs_clt_io_req *req,
}
static struct rtrs_clt_io_req *
-rtrs_clt_get_req(struct rtrs_clt_sess *sess,
+rtrs_clt_get_req(struct rtrs_clt_path *clt_path,
void (*conf)(void *priv, int errno),
struct rtrs_permit *permit, void *priv,
const struct kvec *vec, size_t usr_len,
@@ -983,14 +986,14 @@ rtrs_clt_get_req(struct rtrs_clt_sess *sess,
{
struct rtrs_clt_io_req *req;
- req = &sess->reqs[permit->mem_id];
- rtrs_clt_init_req(req, sess, conf, permit, priv, vec, usr_len,
+ req = &clt_path->reqs[permit->mem_id];
+ rtrs_clt_init_req(req, clt_path, conf, permit, priv, vec, usr_len,
sg, sg_cnt, data_len, dir);
return req;
}
static struct rtrs_clt_io_req *
-rtrs_clt_get_copy_req(struct rtrs_clt_sess *alive_sess,
+rtrs_clt_get_copy_req(struct rtrs_clt_path *alive_path,
struct rtrs_clt_io_req *fail_req)
{
struct rtrs_clt_io_req *req;
@@ -999,8 +1002,8 @@ rtrs_clt_get_copy_req(struct rtrs_clt_sess *alive_sess,
.iov_len = fail_req->usr_len
};
- req = &alive_sess->reqs[fail_req->permit->mem_id];
- rtrs_clt_init_req(req, alive_sess, fail_req->conf, fail_req->permit,
+ req = &alive_path->reqs[fail_req->permit->mem_id];
+ rtrs_clt_init_req(req, alive_path, fail_req->conf, fail_req->permit,
fail_req->priv, &vec, fail_req->usr_len,
fail_req->sglist, fail_req->sg_cnt,
fail_req->data_len, fail_req->dir);
@@ -1013,7 +1016,7 @@ static int rtrs_post_rdma_write_sg(struct rtrs_clt_con *con,
u32 size, u32 imm, struct ib_send_wr *wr,
struct ib_send_wr *tail)
{
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
struct ib_sge *sge = req->sge;
enum ib_send_flags flags;
struct scatterlist *sg;
@@ -1033,22 +1036,23 @@ static int rtrs_post_rdma_write_sg(struct rtrs_clt_con *con,
for_each_sg(req->sglist, sg, req->sg_cnt, i) {
sge[i].addr = sg_dma_address(sg);
sge[i].length = sg_dma_len(sg);
- sge[i].lkey = sess->s.dev->ib_pd->local_dma_lkey;
+ sge[i].lkey = clt_path->s.dev->ib_pd->local_dma_lkey;
}
num_sge = 1 + req->sg_cnt;
}
sge[i].addr = req->iu->dma_addr;
sge[i].length = size;
- sge[i].lkey = sess->s.dev->ib_pd->local_dma_lkey;
+ sge[i].lkey = clt_path->s.dev->ib_pd->local_dma_lkey;
/*
* From time to time we have to post signalled sends,
* or send queue will fill up and only QP reset can help.
*/
- flags = atomic_inc_return(&con->c.wr_cnt) % sess->s.signal_interval ?
+ flags = atomic_inc_return(&con->c.wr_cnt) % clt_path->s.signal_interval ?
0 : IB_SEND_SIGNALED;
- ib_dma_sync_single_for_device(sess->s.dev->ib_dev, req->iu->dma_addr,
+ ib_dma_sync_single_for_device(clt_path->s.dev->ib_dev,
+ req->iu->dma_addr,
size, DMA_TO_DEVICE);
return rtrs_iu_post_rdma_write_imm(&con->c, req->iu, sge, num_sge,
@@ -1075,7 +1079,7 @@ static int rtrs_clt_write_req(struct rtrs_clt_io_req *req)
{
struct rtrs_clt_con *con = req->con;
struct rtrs_path *s = con->c.path;
- struct rtrs_clt_sess *sess = to_clt_sess(s);
+ struct rtrs_clt_path *clt_path = to_clt_path(s);
struct rtrs_msg_rdma_write *msg;
struct rtrs_rbuf *rbuf;
@@ -1088,13 +1092,13 @@ static int rtrs_clt_write_req(struct rtrs_clt_io_req *req)
const size_t tsize = sizeof(*msg) + req->data_len + req->usr_len;
- if (tsize > sess->chunk_size) {
+ if (tsize > clt_path->chunk_size) {
rtrs_wrn(s, "Write request failed, size too big %zu > %d\n",
- tsize, sess->chunk_size);
+ tsize, clt_path->chunk_size);
return -EMSGSIZE;
}
if (req->sg_cnt) {
- count = ib_dma_map_sg(sess->s.dev->ib_dev, req->sglist,
+ count = ib_dma_map_sg(clt_path->s.dev->ib_dev, req->sglist,
req->sg_cnt, req->dir);
if (!count) {
rtrs_wrn(s, "Write request failed, map failed\n");
@@ -1111,7 +1115,7 @@ static int rtrs_clt_write_req(struct rtrs_clt_io_req *req)
imm = rtrs_to_io_req_imm(imm);
buf_id = req->permit->mem_id;
req->sg_size = tsize;
- rbuf = &sess->rbufs[buf_id];
+ rbuf = &clt_path->rbufs[buf_id];
if (count) {
ret = rtrs_map_sg_fr(req, count);
@@ -1119,7 +1123,7 @@ static int rtrs_clt_write_req(struct rtrs_clt_io_req *req)
rtrs_err_rl(s,
"Write request failed, failed to map fast reg. data, err: %d\n",
ret);
- ib_dma_unmap_sg(sess->s.dev->ib_dev, req->sglist,
+ ib_dma_unmap_sg(clt_path->s.dev->ib_dev, req->sglist,
req->sg_cnt, req->dir);
return ret;
}
@@ -1153,12 +1157,12 @@ static int rtrs_clt_write_req(struct rtrs_clt_io_req *req)
if (ret) {
rtrs_err_rl(s,
"Write request failed: error=%d path=%s [%s:%u]\n",
- ret, kobject_name(&sess->kobj), sess->hca_name,
- sess->hca_port);
+ ret, kobject_name(&clt_path->kobj), clt_path->hca_name,
+ clt_path->hca_port);
if (req->mp_policy == MP_POLICY_MIN_INFLIGHT)
- atomic_dec(&sess->stats->inflight);
+ atomic_dec(&clt_path->stats->inflight);
if (req->sg_cnt)
- ib_dma_unmap_sg(sess->s.dev->ib_dev, req->sglist,
+ ib_dma_unmap_sg(clt_path->s.dev->ib_dev, req->sglist,
req->sg_cnt, req->dir);
}
@@ -1169,9 +1173,9 @@ static int rtrs_clt_read_req(struct rtrs_clt_io_req *req)
{
struct rtrs_clt_con *con = req->con;
struct rtrs_path *s = con->c.path;
- struct rtrs_clt_sess *sess = to_clt_sess(s);
+ struct rtrs_clt_path *clt_path = to_clt_path(s);
struct rtrs_msg_rdma_read *msg;
- struct rtrs_ib_dev *dev = sess->s.dev;
+ struct rtrs_ib_dev *dev = clt_path->s.dev;
struct ib_reg_wr rwr;
struct ib_send_wr *wr = NULL;
@@ -1181,10 +1185,10 @@ static int rtrs_clt_read_req(struct rtrs_clt_io_req *req)
const size_t tsize = sizeof(*msg) + req->data_len + req->usr_len;
- if (tsize > sess->chunk_size) {
+ if (tsize > clt_path->chunk_size) {
rtrs_wrn(s,
"Read request failed, message size is %zu, bigger than CHUNK_SIZE %d\n",
- tsize, sess->chunk_size);
+ tsize, clt_path->chunk_size);
return -EMSGSIZE;
}
@@ -1254,15 +1258,15 @@ static int rtrs_clt_read_req(struct rtrs_clt_io_req *req)
*/
rtrs_clt_update_all_stats(req, READ);
- ret = rtrs_post_send_rdma(req->con, req, &sess->rbufs[buf_id],
+ ret = rtrs_post_send_rdma(req->con, req, &clt_path->rbufs[buf_id],
req->data_len, imm, wr);
if (ret) {
rtrs_err_rl(s,
"Read request failed: error=%d path=%s [%s:%u]\n",
- ret, kobject_name(&sess->kobj), sess->hca_name,
- sess->hca_port);
+ ret, kobject_name(&clt_path->kobj), clt_path->hca_name,
+ clt_path->hca_port);
if (req->mp_policy == MP_POLICY_MIN_INFLIGHT)
- atomic_dec(&sess->stats->inflight);
+ atomic_dec(&clt_path->stats->inflight);
req->need_inv = false;
if (req->sg_cnt)
ib_dma_unmap_sg(dev->ib_dev, req->sglist,
@@ -1280,18 +1284,18 @@ static int rtrs_clt_read_req(struct rtrs_clt_io_req *req)
static int rtrs_clt_failover_req(struct rtrs_clt *clt,
struct rtrs_clt_io_req *fail_req)
{
- struct rtrs_clt_sess *alive_sess;
+ struct rtrs_clt_path *alive_path;
struct rtrs_clt_io_req *req;
int err = -ECONNABORTED;
struct path_it it;
rcu_read_lock();
for (path_it_init(&it, clt);
- (alive_sess = it.next_path(&it)) && it.i < it.clt->paths_num;
+ (alive_path = it.next_path(&it)) && it.i < it.clt->paths_num;
it.i++) {
- if (READ_ONCE(alive_sess->state) != RTRS_CLT_CONNECTED)
+ if (READ_ONCE(alive_path->state) != RTRS_CLT_CONNECTED)
continue;
- req = rtrs_clt_get_copy_req(alive_sess, fail_req);
+ req = rtrs_clt_get_copy_req(alive_path, fail_req);
if (req->dir == DMA_TO_DEVICE)
err = rtrs_clt_write_req(req);
else
@@ -1301,7 +1305,7 @@ static int rtrs_clt_failover_req(struct rtrs_clt *clt,
continue;
}
/* Success path */
- rtrs_clt_inc_failover_cnt(alive_sess->stats);
+ rtrs_clt_inc_failover_cnt(alive_path->stats);
break;
}
path_it_deinit(&it);
@@ -1310,16 +1314,16 @@ static int rtrs_clt_failover_req(struct rtrs_clt *clt,
return err;
}
-static void fail_all_outstanding_reqs(struct rtrs_clt_sess *sess)
+static void fail_all_outstanding_reqs(struct rtrs_clt_path *clt_path)
{
- struct rtrs_clt *clt = sess->clt;
+ struct rtrs_clt *clt = clt_path->clt;
struct rtrs_clt_io_req *req;
int i, err;
- if (!sess->reqs)
+ if (!clt_path->reqs)
return;
- for (i = 0; i < sess->queue_depth; ++i) {
- req = &sess->reqs[i];
+ for (i = 0; i < clt_path->queue_depth; ++i) {
+ req = &clt_path->reqs[i];
if (!req->in_use)
continue;
@@ -1337,38 +1341,39 @@ static void fail_all_outstanding_reqs(struct rtrs_clt_sess *sess)
}
}
-static void free_sess_reqs(struct rtrs_clt_sess *sess)
+static void free_path_reqs(struct rtrs_clt_path *clt_path)
{
struct rtrs_clt_io_req *req;
int i;
- if (!sess->reqs)
+ if (!clt_path->reqs)
return;
- for (i = 0; i < sess->queue_depth; ++i) {
- req = &sess->reqs[i];
+ for (i = 0; i < clt_path->queue_depth; ++i) {
+ req = &clt_path->reqs[i];
if (req->mr)
ib_dereg_mr(req->mr);
kfree(req->sge);
- rtrs_iu_free(req->iu, sess->s.dev->ib_dev, 1);
+ rtrs_iu_free(req->iu, clt_path->s.dev->ib_dev, 1);
}
- kfree(sess->reqs);
- sess->reqs = NULL;
+ kfree(clt_path->reqs);
+ clt_path->reqs = NULL;
}
-static int alloc_sess_reqs(struct rtrs_clt_sess *sess)
+static int alloc_path_reqs(struct rtrs_clt_path *clt_path)
{
struct rtrs_clt_io_req *req;
int i, err = -ENOMEM;
- sess->reqs = kcalloc(sess->queue_depth, sizeof(*sess->reqs),
- GFP_KERNEL);
- if (!sess->reqs)
+ clt_path->reqs = kcalloc(clt_path->queue_depth,
+ sizeof(*clt_path->reqs),
+ GFP_KERNEL);
+ if (!clt_path->reqs)
return -ENOMEM;
- for (i = 0; i < sess->queue_depth; ++i) {
- req = &sess->reqs[i];
- req->iu = rtrs_iu_alloc(1, sess->max_hdr_size, GFP_KERNEL,
- sess->s.dev->ib_dev,
+ for (i = 0; i < clt_path->queue_depth; ++i) {
+ req = &clt_path->reqs[i];
+ req->iu = rtrs_iu_alloc(1, clt_path->max_hdr_size, GFP_KERNEL,
+ clt_path->s.dev->ib_dev,
DMA_TO_DEVICE,
rtrs_clt_rdma_done);
if (!req->iu)
@@ -1378,13 +1383,14 @@ static int alloc_sess_reqs(struct rtrs_clt_sess *sess)
if (!req->sge)
goto out;
- req->mr = ib_alloc_mr(sess->s.dev->ib_pd, IB_MR_TYPE_MEM_REG,
- sess->max_pages_per_mr);
+ req->mr = ib_alloc_mr(clt_path->s.dev->ib_pd,
+ IB_MR_TYPE_MEM_REG,
+ clt_path->max_pages_per_mr);
if (IS_ERR(req->mr)) {
err = PTR_ERR(req->mr);
req->mr = NULL;
- pr_err("Failed to alloc sess->max_pages_per_mr %d\n",
- sess->max_pages_per_mr);
+ pr_err("Failed to alloc clt_path->max_pages_per_mr %d\n",
+ clt_path->max_pages_per_mr);
goto out;
}
@@ -1394,7 +1400,7 @@ static int alloc_sess_reqs(struct rtrs_clt_sess *sess)
return 0;
out:
- free_sess_reqs(sess);
+ free_path_reqs(clt_path);
return err;
}
@@ -1447,13 +1453,13 @@ static void free_permits(struct rtrs_clt *clt)
clt->permits = NULL;
}
-static void query_fast_reg_mode(struct rtrs_clt_sess *sess)
+static void query_fast_reg_mode(struct rtrs_clt_path *clt_path)
{
struct ib_device *ib_dev;
u64 max_pages_per_mr;
int mr_page_shift;
- ib_dev = sess->s.dev->ib_dev;
+ ib_dev = clt_path->s.dev->ib_dev;
/*
* Use the smallest page size supported by the HCA, down to a
@@ -1463,24 +1469,24 @@ static void query_fast_reg_mode(struct rtrs_clt_sess *sess)
mr_page_shift = max(12, ffs(ib_dev->attrs.page_size_cap) - 1);
max_pages_per_mr = ib_dev->attrs.max_mr_size;
do_div(max_pages_per_mr, (1ull << mr_page_shift));
- sess->max_pages_per_mr =
- min3(sess->max_pages_per_mr, (u32)max_pages_per_mr,
+ clt_path->max_pages_per_mr =
+ min3(clt_path->max_pages_per_mr, (u32)max_pages_per_mr,
ib_dev->attrs.max_fast_reg_page_list_len);
- sess->clt->max_segments =
- min(sess->max_pages_per_mr, sess->clt->max_segments);
+ clt_path->clt->max_segments =
+ min(clt_path->max_pages_per_mr, clt_path->clt->max_segments);
}
-static bool rtrs_clt_change_state_get_old(struct rtrs_clt_sess *sess,
+static bool rtrs_clt_change_state_get_old(struct rtrs_clt_path *clt_path,
enum rtrs_clt_state new_state,
enum rtrs_clt_state *old_state)
{
bool changed;
- spin_lock_irq(&sess->state_wq.lock);
+ spin_lock_irq(&clt_path->state_wq.lock);
if (old_state)
- *old_state = sess->state;
- changed = rtrs_clt_change_state(sess, new_state);
- spin_unlock_irq(&sess->state_wq.lock);
+ *old_state = clt_path->state;
+ changed = rtrs_clt_change_state(clt_path, new_state);
+ spin_unlock_irq(&clt_path->state_wq.lock);
return changed;
}
@@ -1492,9 +1498,9 @@ static void rtrs_clt_hb_err_handler(struct rtrs_con *c)
rtrs_rdma_error_recovery(con);
}
-static void rtrs_clt_init_hb(struct rtrs_clt_sess *sess)
+static void rtrs_clt_init_hb(struct rtrs_clt_path *clt_path)
{
- rtrs_init_hb(&sess->s, &io_comp_cqe,
+ rtrs_init_hb(&clt_path->s, &io_comp_cqe,
RTRS_HB_INTERVAL_MS,
RTRS_HB_MISSED_MAX,
rtrs_clt_hb_err_handler,
@@ -1504,17 +1510,17 @@ static void rtrs_clt_init_hb(struct rtrs_clt_sess *sess)
static void rtrs_clt_reconnect_work(struct work_struct *work);
static void rtrs_clt_close_work(struct work_struct *work);
-static struct rtrs_clt_sess *alloc_sess(struct rtrs_clt *clt,
+static struct rtrs_clt_path *alloc_path(struct rtrs_clt *clt,
const struct rtrs_addr *path,
size_t con_num, u32 nr_poll_queues)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
int err = -ENOMEM;
int cpu;
size_t total_con;
- sess = kzalloc(sizeof(*sess), GFP_KERNEL);
- if (!sess)
+ clt_path = kzalloc(sizeof(*clt_path), GFP_KERNEL);
+ if (!clt_path)
goto err;
/*
@@ -1522,20 +1528,21 @@ static struct rtrs_clt_sess *alloc_sess(struct rtrs_clt *clt,
* +1: Extra connection for user messages
*/
total_con = con_num + nr_poll_queues + 1;
- sess->s.con = kcalloc(total_con, sizeof(*sess->s.con), GFP_KERNEL);
- if (!sess->s.con)
- goto err_free_sess;
+ clt_path->s.con = kcalloc(total_con, sizeof(*clt_path->s.con),
+ GFP_KERNEL);
+ if (!clt_path->s.con)
+ goto err_free_path;
- sess->s.con_num = total_con;
- sess->s.irq_con_num = con_num + 1;
+ clt_path->s.con_num = total_con;
+ clt_path->s.irq_con_num = con_num + 1;
- sess->stats = kzalloc(sizeof(*sess->stats), GFP_KERNEL);
- if (!sess->stats)
+ clt_path->stats = kzalloc(sizeof(*clt_path->stats), GFP_KERNEL);
+ if (!clt_path->stats)
goto err_free_con;
- mutex_init(&sess->init_mutex);
- uuid_gen(&sess->s.uuid);
- memcpy(&sess->s.dst_addr, path->dst,
+ mutex_init(&clt_path->init_mutex);
+ uuid_gen(&clt_path->s.uuid);
+ memcpy(&clt_path->s.dst_addr, path->dst,
rdma_addr_size((struct sockaddr *)path->dst));
/*
@@ -1544,53 +1551,54 @@ static struct rtrs_clt_sess *alloc_sess(struct rtrs_clt *clt,
* the sess->src_addr will contain only zeros, which is then fine.
*/
if (path->src)
- memcpy(&sess->s.src_addr, path->src,
+ memcpy(&clt_path->s.src_addr, path->src,
rdma_addr_size((struct sockaddr *)path->src));
- strscpy(sess->s.sessname, clt->sessname, sizeof(sess->s.sessname));
- sess->clt = clt;
- sess->max_pages_per_mr = RTRS_MAX_SEGMENTS;
- init_waitqueue_head(&sess->state_wq);
- sess->state = RTRS_CLT_CONNECTING;
- atomic_set(&sess->connected_cnt, 0);
- INIT_WORK(&sess->close_work, rtrs_clt_close_work);
- INIT_DELAYED_WORK(&sess->reconnect_dwork, rtrs_clt_reconnect_work);
- rtrs_clt_init_hb(sess);
-
- sess->mp_skip_entry = alloc_percpu(typeof(*sess->mp_skip_entry));
- if (!sess->mp_skip_entry)
+ strscpy(clt_path->s.sessname, clt->sessname,
+ sizeof(clt_path->s.sessname));
+ clt_path->clt = clt;
+ clt_path->max_pages_per_mr = RTRS_MAX_SEGMENTS;
+ init_waitqueue_head(&clt_path->state_wq);
+ clt_path->state = RTRS_CLT_CONNECTING;
+ atomic_set(&clt_path->connected_cnt, 0);
+ INIT_WORK(&clt_path->close_work, rtrs_clt_close_work);
+ INIT_DELAYED_WORK(&clt_path->reconnect_dwork, rtrs_clt_reconnect_work);
+ rtrs_clt_init_hb(clt_path);
+
+ clt_path->mp_skip_entry = alloc_percpu(typeof(*clt_path->mp_skip_entry));
+ if (!clt_path->mp_skip_entry)
goto err_free_stats;
for_each_possible_cpu(cpu)
- INIT_LIST_HEAD(per_cpu_ptr(sess->mp_skip_entry, cpu));
+ INIT_LIST_HEAD(per_cpu_ptr(clt_path->mp_skip_entry, cpu));
- err = rtrs_clt_init_stats(sess->stats);
+ err = rtrs_clt_init_stats(clt_path->stats);
if (err)
goto err_free_percpu;
- return sess;
+ return clt_path;
err_free_percpu:
- free_percpu(sess->mp_skip_entry);
+ free_percpu(clt_path->mp_skip_entry);
err_free_stats:
- kfree(sess->stats);
+ kfree(clt_path->stats);
err_free_con:
- kfree(sess->s.con);
-err_free_sess:
- kfree(sess);
+ kfree(clt_path->s.con);
+err_free_path:
+ kfree(clt_path);
err:
return ERR_PTR(err);
}
-void free_sess(struct rtrs_clt_sess *sess)
+void free_path(struct rtrs_clt_path *clt_path)
{
- free_percpu(sess->mp_skip_entry);
- mutex_destroy(&sess->init_mutex);
- kfree(sess->s.con);
- kfree(sess->rbufs);
- kfree(sess);
+ free_percpu(clt_path->mp_skip_entry);
+ mutex_destroy(&clt_path->init_mutex);
+ kfree(clt_path->s.con);
+ kfree(clt_path->rbufs);
+ kfree(clt_path);
}
-static int create_con(struct rtrs_clt_sess *sess, unsigned int cid)
+static int create_con(struct rtrs_clt_path *clt_path, unsigned int cid)
{
struct rtrs_clt_con *con;
@@ -1601,28 +1609,28 @@ static int create_con(struct rtrs_clt_sess *sess, unsigned int cid)
/* Map first two connections to the first CPU */
con->cpu = (cid ? cid - 1 : 0) % nr_cpu_ids;
con->c.cid = cid;
- con->c.path = &sess->s;
+ con->c.path = &clt_path->s;
/* Align with srv, init as 1 */
atomic_set(&con->c.wr_cnt, 1);
mutex_init(&con->con_mutex);
- sess->s.con[cid] = &con->c;
+ clt_path->s.con[cid] = &con->c;
return 0;
}
static void destroy_con(struct rtrs_clt_con *con)
{
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
- sess->s.con[con->c.cid] = NULL;
+ clt_path->s.con[con->c.cid] = NULL;
mutex_destroy(&con->con_mutex);
kfree(con);
}
static int create_con_cq_qp(struct rtrs_clt_con *con)
{
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
u32 max_send_wr, max_recv_wr, cq_num, max_send_sge, wr_limit;
int err, cq_vector;
struct rtrs_msg_rkey_rsp *rsp;
@@ -1631,7 +1639,7 @@ static int create_con_cq_qp(struct rtrs_clt_con *con)
if (con->c.cid == 0) {
max_send_sge = 1;
/* We must be the first here */
- if (WARN_ON(sess->s.dev))
+ if (WARN_ON(clt_path->s.dev))
return -EINVAL;
/*
@@ -1639,16 +1647,16 @@ static int create_con_cq_qp(struct rtrs_clt_con *con)
* Be careful not to close user connection before ib dev
* is gracefully put.
*/
- sess->s.dev = rtrs_ib_dev_find_or_add(con->c.cm_id->device,
+ clt_path->s.dev = rtrs_ib_dev_find_or_add(con->c.cm_id->device,
&dev_pd);
- if (!sess->s.dev) {
- rtrs_wrn(sess->clt,
+ if (!clt_path->s.dev) {
+ rtrs_wrn(clt_path->clt,
"rtrs_ib_dev_find_get_or_add(): no memory\n");
return -ENOMEM;
}
- sess->s.dev_ref = 1;
- query_fast_reg_mode(sess);
- wr_limit = sess->s.dev->ib_dev->attrs.max_qp_wr;
+ clt_path->s.dev_ref = 1;
+ query_fast_reg_mode(clt_path);
+ wr_limit = clt_path->s.dev->ib_dev->attrs.max_qp_wr;
/*
* Two (request + registration) completion for send
* Two for recv if always_invalidate is set on server
@@ -1665,27 +1673,28 @@ static int create_con_cq_qp(struct rtrs_clt_con *con)
* This is always true if user connection (cid == 0) is
* established first.
*/
- if (WARN_ON(!sess->s.dev))
+ if (WARN_ON(!clt_path->s.dev))
return -EINVAL;
- if (WARN_ON(!sess->queue_depth))
+ if (WARN_ON(!clt_path->queue_depth))
return -EINVAL;
- wr_limit = sess->s.dev->ib_dev->attrs.max_qp_wr;
+ wr_limit = clt_path->s.dev->ib_dev->attrs.max_qp_wr;
/* Shared between connections */
- sess->s.dev_ref++;
+ clt_path->s.dev_ref++;
max_send_wr = min_t(int, wr_limit,
/* QD * (REQ + RSP + FR REGS or INVS) + drain */
- sess->queue_depth * 3 + 1);
+ clt_path->queue_depth * 3 + 1);
max_recv_wr = min_t(int, wr_limit,
- sess->queue_depth * 3 + 1);
+ clt_path->queue_depth * 3 + 1);
max_send_sge = 2;
}
atomic_set(&con->c.sq_wr_avail, max_send_wr);
cq_num = max_send_wr + max_recv_wr;
/* alloc iu to recv new rkey reply when server reports flags set */
- if (sess->flags & RTRS_MSG_NEW_RKEY_F || con->c.cid == 0) {
+ if (clt_path->flags & RTRS_MSG_NEW_RKEY_F || con->c.cid == 0) {
con->rsp_ius = rtrs_iu_alloc(cq_num, sizeof(*rsp),
- GFP_KERNEL, sess->s.dev->ib_dev,
+ GFP_KERNEL,
+ clt_path->s.dev->ib_dev,
DMA_FROM_DEVICE,
rtrs_clt_rdma_done);
if (!con->rsp_ius)
@@ -1693,13 +1702,13 @@ static int create_con_cq_qp(struct rtrs_clt_con *con)
con->queue_num = cq_num;
}
cq_num = max_send_wr + max_recv_wr;
- cq_vector = con->cpu % sess->s.dev->ib_dev->num_comp_vectors;
- if (con->c.cid >= sess->s.irq_con_num)
- err = rtrs_cq_qp_create(&sess->s, &con->c, max_send_sge,
+ cq_vector = con->cpu % clt_path->s.dev->ib_dev->num_comp_vectors;
+ if (con->c.cid >= clt_path->s.irq_con_num)
+ err = rtrs_cq_qp_create(&clt_path->s, &con->c, max_send_sge,
cq_vector, cq_num, max_send_wr,
max_recv_wr, IB_POLL_DIRECT);
else
- err = rtrs_cq_qp_create(&sess->s, &con->c, max_send_sge,
+ err = rtrs_cq_qp_create(&clt_path->s, &con->c, max_send_sge,
cq_vector, cq_num, max_send_wr,
max_recv_wr, IB_POLL_SOFTIRQ);
/*
@@ -1711,7 +1720,7 @@ static int create_con_cq_qp(struct rtrs_clt_con *con)
static void destroy_con_cq_qp(struct rtrs_clt_con *con)
{
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
/*
* Be careful here: destroy_con_cq_qp() can be called even
@@ -1720,13 +1729,14 @@ static void destroy_con_cq_qp(struct rtrs_clt_con *con)
lockdep_assert_held(&con->con_mutex);
rtrs_cq_qp_destroy(&con->c);
if (con->rsp_ius) {
- rtrs_iu_free(con->rsp_ius, sess->s.dev->ib_dev, con->queue_num);
+ rtrs_iu_free(con->rsp_ius, clt_path->s.dev->ib_dev,
+ con->queue_num);
con->rsp_ius = NULL;
con->queue_num = 0;
}
- if (sess->s.dev_ref && !--sess->s.dev_ref) {
- rtrs_ib_dev_put(sess->s.dev);
- sess->s.dev = NULL;
+ if (clt_path->s.dev_ref && !--clt_path->s.dev_ref) {
+ rtrs_ib_dev_put(clt_path->s.dev);
+ clt_path->s.dev = NULL;
}
}
@@ -1764,8 +1774,8 @@ static int rtrs_rdma_addr_resolved(struct rtrs_clt_con *con)
static int rtrs_rdma_route_resolved(struct rtrs_clt_con *con)
{
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
- struct rtrs_clt *clt = sess->clt;
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
+ struct rtrs_clt *clt = clt_path->clt;
struct rtrs_msg_conn_req msg;
struct rdma_conn_param param;
@@ -1782,11 +1792,11 @@ static int rtrs_rdma_route_resolved(struct rtrs_clt_con *con)
.magic = cpu_to_le16(RTRS_MAGIC),
.version = cpu_to_le16(RTRS_PROTO_VER),
.cid = cpu_to_le16(con->c.cid),
- .cid_num = cpu_to_le16(sess->s.con_num),
- .recon_cnt = cpu_to_le16(sess->s.recon_cnt),
+ .cid_num = cpu_to_le16(clt_path->s.con_num),
+ .recon_cnt = cpu_to_le16(clt_path->s.recon_cnt),
};
- msg.first_conn = sess->for_new_clt ? FIRST_CONN : 0;
- uuid_copy(&msg.sess_uuid, &sess->s.uuid);
+ msg.first_conn = clt_path->for_new_clt ? FIRST_CONN : 0;
+ uuid_copy(&msg.sess_uuid, &clt_path->s.uuid);
uuid_copy(&msg.paths_uuid, &clt->paths_uuid);
err = rdma_connect_locked(con->c.cm_id, ¶m);
@@ -1799,8 +1809,8 @@ static int rtrs_rdma_route_resolved(struct rtrs_clt_con *con)
static int rtrs_rdma_conn_established(struct rtrs_clt_con *con,
struct rdma_cm_event *ev)
{
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
- struct rtrs_clt *clt = sess->clt;
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
+ struct rtrs_clt *clt = clt_path->clt;
const struct rtrs_msg_conn_rsp *msg;
u16 version, queue_depth;
int errno;
@@ -1831,31 +1841,32 @@ static int rtrs_rdma_conn_established(struct rtrs_clt_con *con,
if (con->c.cid == 0) {
queue_depth = le16_to_cpu(msg->queue_depth);
- if (sess->queue_depth > 0 && queue_depth != sess->queue_depth) {
+ if (clt_path->queue_depth > 0 && queue_depth != clt_path->queue_depth) {
rtrs_err(clt, "Error: queue depth changed\n");
/*
* Stop any more reconnection attempts
*/
- sess->reconnect_attempts = -1;
+ clt_path->reconnect_attempts = -1;
rtrs_err(clt,
"Disabling auto-reconnect. Trigger a manual reconnect after issue is resolved\n");
return -ECONNRESET;
}
- if (!sess->rbufs) {
- sess->rbufs = kcalloc(queue_depth, sizeof(*sess->rbufs),
- GFP_KERNEL);
- if (!sess->rbufs)
+ if (!clt_path->rbufs) {
+ clt_path->rbufs = kcalloc(queue_depth,
+ sizeof(*clt_path->rbufs),
+ GFP_KERNEL);
+ if (!clt_path->rbufs)
return -ENOMEM;
}
- sess->queue_depth = queue_depth;
- sess->s.signal_interval = min_not_zero(queue_depth,
+ clt_path->queue_depth = queue_depth;
+ clt_path->s.signal_interval = min_not_zero(queue_depth,
(unsigned short) SERVICE_CON_QUEUE_DEPTH);
- sess->max_hdr_size = le32_to_cpu(msg->max_hdr_size);
- sess->max_io_size = le32_to_cpu(msg->max_io_size);
- sess->flags = le32_to_cpu(msg->flags);
- sess->chunk_size = sess->max_io_size + sess->max_hdr_size;
+ clt_path->max_hdr_size = le32_to_cpu(msg->max_hdr_size);
+ clt_path->max_io_size = le32_to_cpu(msg->max_io_size);
+ clt_path->flags = le32_to_cpu(msg->flags);
+ clt_path->chunk_size = clt_path->max_io_size + clt_path->max_hdr_size;
/*
* Global IO size is always a minimum.
@@ -1866,20 +1877,20 @@ static int rtrs_rdma_conn_established(struct rtrs_clt_con *con,
* connections in parallel, use lock.
*/
mutex_lock(&clt->paths_mutex);
- clt->queue_depth = sess->queue_depth;
- clt->max_io_size = min_not_zero(sess->max_io_size,
+ clt->queue_depth = clt_path->queue_depth;
+ clt->max_io_size = min_not_zero(clt_path->max_io_size,
clt->max_io_size);
mutex_unlock(&clt->paths_mutex);
/*
* Cache the hca_port and hca_name for sysfs
*/
- sess->hca_port = con->c.cm_id->port_num;
- scnprintf(sess->hca_name, sizeof(sess->hca_name),
- sess->s.dev->ib_dev->name);
- sess->s.src_addr = con->c.cm_id->route.addr.src_addr;
+ clt_path->hca_port = con->c.cm_id->port_num;
+ scnprintf(clt_path->hca_name, sizeof(clt_path->hca_name),
+ clt_path->s.dev->ib_dev->name);
+ clt_path->s.src_addr = con->c.cm_id->route.addr.src_addr;
/* set for_new_clt, to allow future reconnect on any path */
- sess->for_new_clt = 1;
+ clt_path->for_new_clt = 1;
}
return 0;
@@ -1887,9 +1898,9 @@ static int rtrs_rdma_conn_established(struct rtrs_clt_con *con,
static inline void flag_success_on_conn(struct rtrs_clt_con *con)
{
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
- atomic_inc(&sess->connected_cnt);
+ atomic_inc(&clt_path->connected_cnt);
con->cm_err = 1;
}
@@ -1924,23 +1935,23 @@ static int rtrs_rdma_conn_rejected(struct rtrs_clt_con *con,
return -ECONNRESET;
}
-void rtrs_clt_close_conns(struct rtrs_clt_sess *sess, bool wait)
+void rtrs_clt_close_conns(struct rtrs_clt_path *clt_path, bool wait)
{
- if (rtrs_clt_change_state_get_old(sess, RTRS_CLT_CLOSING, NULL))
- queue_work(rtrs_wq, &sess->close_work);
+ if (rtrs_clt_change_state_get_old(clt_path, RTRS_CLT_CLOSING, NULL))
+ queue_work(rtrs_wq, &clt_path->close_work);
if (wait)
- flush_work(&sess->close_work);
+ flush_work(&clt_path->close_work);
}
static inline void flag_error_on_conn(struct rtrs_clt_con *con, int cm_err)
{
if (con->cm_err == 1) {
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
- sess = to_clt_sess(con->c.path);
- if (atomic_dec_and_test(&sess->connected_cnt))
+ clt_path = to_clt_path(con->c.path);
+ if (atomic_dec_and_test(&clt_path->connected_cnt))
- wake_up(&sess->state_wq);
+ wake_up(&clt_path->state_wq);
}
con->cm_err = cm_err;
}
@@ -1950,7 +1961,7 @@ static int rtrs_clt_rdma_cm_handler(struct rdma_cm_id *cm_id,
{
struct rtrs_clt_con *con = cm_id->context;
struct rtrs_path *s = con->c.path;
- struct rtrs_clt_sess *sess = to_clt_sess(s);
+ struct rtrs_clt_path *clt_path = to_clt_path(s);
int cm_err = 0;
switch (ev->event) {
@@ -1968,7 +1979,7 @@ static int rtrs_clt_rdma_cm_handler(struct rdma_cm_id *cm_id,
* i.e. wake up without state change, but we set cm_err.
*/
flag_success_on_conn(con);
- wake_up(&sess->state_wq);
+ wake_up(&clt_path->state_wq);
return 0;
}
break;
@@ -1997,7 +2008,7 @@ static int rtrs_clt_rdma_cm_handler(struct rdma_cm_id *cm_id,
/*
* Device removal is a special case. Queue close and return 0.
*/
- rtrs_clt_close_conns(sess, false);
+ rtrs_clt_close_conns(clt_path, false);
return 0;
default:
rtrs_err(s, "Unexpected RDMA CM error (CM event: %s, err: %d)\n",
@@ -2021,12 +2032,12 @@ static int rtrs_clt_rdma_cm_handler(struct rdma_cm_id *cm_id,
static int create_cm(struct rtrs_clt_con *con)
{
struct rtrs_path *s = con->c.path;
- struct rtrs_clt_sess *sess = to_clt_sess(s);
+ struct rtrs_clt_path *clt_path = to_clt_path(s);
struct rdma_cm_id *cm_id;
int err;
cm_id = rdma_create_id(&init_net, rtrs_clt_rdma_cm_handler, con,
- sess->s.dst_addr.ss_family == AF_IB ?
+ clt_path->s.dst_addr.ss_family == AF_IB ?
RDMA_PS_IB : RDMA_PS_TCP, IB_QPT_RC);
if (IS_ERR(cm_id)) {
err = PTR_ERR(cm_id);
@@ -2042,8 +2053,8 @@ static int create_cm(struct rtrs_clt_con *con)
rtrs_err(s, "Set address reuse failed, err: %d\n", err);
goto destroy_cm;
}
- err = rdma_resolve_addr(cm_id, (struct sockaddr *)&sess->s.src_addr,
- (struct sockaddr *)&sess->s.dst_addr,
+ err = rdma_resolve_addr(cm_id, (struct sockaddr *)&clt_path->s.src_addr,
+ (struct sockaddr *)&clt_path->s.dst_addr,
RTRS_CONNECT_TIMEOUT_MS);
if (err) {
rtrs_err(s, "Failed to resolve address, err: %d\n", err);
@@ -2055,8 +2066,8 @@ static int create_cm(struct rtrs_clt_con *con)
* or session state was really changed to error by device removal.
*/
err = wait_event_interruptible_timeout(
- sess->state_wq,
- con->cm_err || sess->state != RTRS_CLT_CONNECTING,
+ clt_path->state_wq,
+ con->cm_err || clt_path->state != RTRS_CLT_CONNECTING,
msecs_to_jiffies(RTRS_CONNECT_TIMEOUT_MS));
if (err == 0 || err == -ERESTARTSYS) {
if (err == 0)
@@ -2068,7 +2079,7 @@ static int create_cm(struct rtrs_clt_con *con)
err = con->cm_err;
goto errr;
}
- if (READ_ONCE(sess->state) != RTRS_CLT_CONNECTING) {
+ if (READ_ONCE(clt_path->state) != RTRS_CLT_CONNECTING) {
/* Device removal */
err = -ECONNABORTED;
goto errr;
@@ -2087,9 +2098,9 @@ static int create_cm(struct rtrs_clt_con *con)
return err;
}
-static void rtrs_clt_sess_up(struct rtrs_clt_sess *sess)
+static void rtrs_clt_path_up(struct rtrs_clt_path *clt_path)
{
- struct rtrs_clt *clt = sess->clt;
+ struct rtrs_clt *clt = clt_path->clt;
int up;
/*
@@ -2113,19 +2124,19 @@ static void rtrs_clt_sess_up(struct rtrs_clt_sess *sess)
mutex_unlock(&clt->paths_ev_mutex);
/* Mark session as established */
- sess->established = true;
- sess->reconnect_attempts = 0;
- sess->stats->reconnects.successful_cnt++;
+ clt_path->established = true;
+ clt_path->reconnect_attempts = 0;
+ clt_path->stats->reconnects.successful_cnt++;
}
-static void rtrs_clt_sess_down(struct rtrs_clt_sess *sess)
+static void rtrs_clt_path_down(struct rtrs_clt_path *clt_path)
{
- struct rtrs_clt *clt = sess->clt;
+ struct rtrs_clt *clt = clt_path->clt;
- if (!sess->established)
+ if (!clt_path->established)
return;
- sess->established = false;
+ clt_path->established = false;
mutex_lock(&clt->paths_ev_mutex);
WARN_ON(!clt->paths_up);
if (--clt->paths_up == 0)
@@ -2133,19 +2144,19 @@ static void rtrs_clt_sess_down(struct rtrs_clt_sess *sess)
mutex_unlock(&clt->paths_ev_mutex);
}
-static void rtrs_clt_stop_and_destroy_conns(struct rtrs_clt_sess *sess)
+static void rtrs_clt_stop_and_destroy_conns(struct rtrs_clt_path *clt_path)
{
struct rtrs_clt_con *con;
unsigned int cid;
- WARN_ON(READ_ONCE(sess->state) == RTRS_CLT_CONNECTED);
+ WARN_ON(READ_ONCE(clt_path->state) == RTRS_CLT_CONNECTED);
/*
* Possible race with rtrs_clt_open(), when DEVICE_REMOVAL comes
* exactly in between. Start destroying after it finishes.
*/
- mutex_lock(&sess->init_mutex);
- mutex_unlock(&sess->init_mutex);
+ mutex_lock(&clt_path->init_mutex);
+ mutex_unlock(&clt_path->init_mutex);
/*
* All IO paths must observe !CONNECTED state before we
@@ -2153,7 +2164,7 @@ static void rtrs_clt_stop_and_destroy_conns(struct rtrs_clt_sess *sess)
*/
synchronize_rcu();
- rtrs_stop_hb(&sess->s);
+ rtrs_stop_hb(&clt_path->s);
/*
* The order it utterly crucial: firstly disconnect and complete all
@@ -2162,15 +2173,15 @@ static void rtrs_clt_stop_and_destroy_conns(struct rtrs_clt_sess *sess)
* eventually notify upper layer about session disconnection.
*/
- for (cid = 0; cid < sess->s.con_num; cid++) {
- if (!sess->s.con[cid])
+ for (cid = 0; cid < clt_path->s.con_num; cid++) {
+ if (!clt_path->s.con[cid])
break;
- con = to_clt_con(sess->s.con[cid]);
+ con = to_clt_con(clt_path->s.con[cid]);
stop_cm(con);
}
- fail_all_outstanding_reqs(sess);
- free_sess_reqs(sess);
- rtrs_clt_sess_down(sess);
+ fail_all_outstanding_reqs(clt_path);
+ free_path_reqs(clt_path);
+ rtrs_clt_path_down(clt_path);
/*
* Wait for graceful shutdown, namely when peer side invokes
@@ -2180,13 +2191,14 @@ static void rtrs_clt_stop_and_destroy_conns(struct rtrs_clt_sess *sess)
* since CM does not fire anything. That is fine, we are not in
* hurry.
*/
- wait_event_timeout(sess->state_wq, !atomic_read(&sess->connected_cnt),
+ wait_event_timeout(clt_path->state_wq,
+ !atomic_read(&clt_path->connected_cnt),
msecs_to_jiffies(RTRS_CONNECT_TIMEOUT_MS));
- for (cid = 0; cid < sess->s.con_num; cid++) {
- if (!sess->s.con[cid])
+ for (cid = 0; cid < clt_path->s.con_num; cid++) {
+ if (!clt_path->s.con[cid])
break;
- con = to_clt_con(sess->s.con[cid]);
+ con = to_clt_con(clt_path->s.con[cid]);
mutex_lock(&con->con_mutex);
destroy_con_cq_qp(con);
mutex_unlock(&con->con_mutex);
@@ -2195,26 +2207,26 @@ static void rtrs_clt_stop_and_destroy_conns(struct rtrs_clt_sess *sess)
}
}
-static inline bool xchg_sessions(struct rtrs_clt_sess __rcu **rcu_ppcpu_path,
- struct rtrs_clt_sess *sess,
- struct rtrs_clt_sess *next)
+static inline bool xchg_paths(struct rtrs_clt_path __rcu **rcu_ppcpu_path,
+ struct rtrs_clt_path *clt_path,
+ struct rtrs_clt_path *next)
{
- struct rtrs_clt_sess **ppcpu_path;
+ struct rtrs_clt_path **ppcpu_path;
/* Call cmpxchg() without sparse warnings */
ppcpu_path = (typeof(ppcpu_path))rcu_ppcpu_path;
- return sess == cmpxchg(ppcpu_path, sess, next);
+ return clt_path == cmpxchg(ppcpu_path, clt_path, next);
}
-static void rtrs_clt_remove_path_from_arr(struct rtrs_clt_sess *sess)
+static void rtrs_clt_remove_path_from_arr(struct rtrs_clt_path *clt_path)
{
- struct rtrs_clt *clt = sess->clt;
- struct rtrs_clt_sess *next;
+ struct rtrs_clt *clt = clt_path->clt;
+ struct rtrs_clt_path *next;
bool wait_for_grace = false;
int cpu;
mutex_lock(&clt->paths_mutex);
- list_del_rcu(&sess->s.entry);
+ list_del_rcu(&clt_path->s.entry);
/* Make sure everybody observes path removal. */
synchronize_rcu();
@@ -2255,7 +2267,7 @@ static void rtrs_clt_remove_path_from_arr(struct rtrs_clt_sess *sess)
* removed. If @sess is the last element, then @next is NULL.
*/
rcu_read_lock();
- next = list_next_or_null_rr_rcu(&clt->paths_list, &sess->s.entry,
+ next = list_next_or_null_rr_rcu(&clt->paths_list, &clt_path->s.entry,
typeof(*next), s.entry);
rcu_read_unlock();
@@ -2264,11 +2276,11 @@ static void rtrs_clt_remove_path_from_arr(struct rtrs_clt_sess *sess)
* removed, so change the pointer manually.
*/
for_each_possible_cpu(cpu) {
- struct rtrs_clt_sess __rcu **ppcpu_path;
+ struct rtrs_clt_path __rcu **ppcpu_path;
ppcpu_path = per_cpu_ptr(clt->pcpu_path, cpu);
if (rcu_dereference_protected(*ppcpu_path,
- lockdep_is_held(&clt->paths_mutex)) != sess)
+ lockdep_is_held(&clt->paths_mutex)) != clt_path)
/*
* synchronize_rcu() was called just after deleting
* entry from the list, thus IO code path cannot
@@ -2281,7 +2293,7 @@ static void rtrs_clt_remove_path_from_arr(struct rtrs_clt_sess *sess)
* We race with IO code path, which also changes pointer,
* thus we have to be careful not to overwrite it.
*/
- if (xchg_sessions(ppcpu_path, sess, next))
+ if (xchg_paths(ppcpu_path, clt_path, next))
/*
* @ppcpu_path was successfully replaced with @next,
* that means that someone could also pick up the
@@ -2296,29 +2308,29 @@ static void rtrs_clt_remove_path_from_arr(struct rtrs_clt_sess *sess)
mutex_unlock(&clt->paths_mutex);
}
-static void rtrs_clt_add_path_to_arr(struct rtrs_clt_sess *sess)
+static void rtrs_clt_add_path_to_arr(struct rtrs_clt_path *clt_path)
{
- struct rtrs_clt *clt = sess->clt;
+ struct rtrs_clt *clt = clt_path->clt;
mutex_lock(&clt->paths_mutex);
clt->paths_num++;
- list_add_tail_rcu(&sess->s.entry, &clt->paths_list);
+ list_add_tail_rcu(&clt_path->s.entry, &clt->paths_list);
mutex_unlock(&clt->paths_mutex);
}
static void rtrs_clt_close_work(struct work_struct *work)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
- sess = container_of(work, struct rtrs_clt_sess, close_work);
+ clt_path = container_of(work, struct rtrs_clt_path, close_work);
- cancel_delayed_work_sync(&sess->reconnect_dwork);
- rtrs_clt_stop_and_destroy_conns(sess);
- rtrs_clt_change_state_get_old(sess, RTRS_CLT_CLOSED, NULL);
+ cancel_delayed_work_sync(&clt_path->reconnect_dwork);
+ rtrs_clt_stop_and_destroy_conns(clt_path);
+ rtrs_clt_change_state_get_old(clt_path, RTRS_CLT_CLOSED, NULL);
}
-static int init_conns(struct rtrs_clt_sess *sess)
+static int init_conns(struct rtrs_clt_path *clt_path)
{
unsigned int cid;
int err;
@@ -2328,31 +2340,31 @@ static int init_conns(struct rtrs_clt_sess *sess)
* to avoid clashes with previous sessions not yet closed
* sessions on a server side.
*/
- sess->s.recon_cnt++;
+ clt_path->s.recon_cnt++;
/* Establish all RDMA connections */
- for (cid = 0; cid < sess->s.con_num; cid++) {
- err = create_con(sess, cid);
+ for (cid = 0; cid < clt_path->s.con_num; cid++) {
+ err = create_con(clt_path, cid);
if (err)
goto destroy;
- err = create_cm(to_clt_con(sess->s.con[cid]));
+ err = create_cm(to_clt_con(clt_path->s.con[cid]));
if (err) {
- destroy_con(to_clt_con(sess->s.con[cid]));
+ destroy_con(to_clt_con(clt_path->s.con[cid]));
goto destroy;
}
}
- err = alloc_sess_reqs(sess);
+ err = alloc_path_reqs(clt_path);
if (err)
goto destroy;
- rtrs_start_hb(&sess->s);
+ rtrs_start_hb(&clt_path->s);
return 0;
destroy:
while (cid--) {
- struct rtrs_clt_con *con = to_clt_con(sess->s.con[cid]);
+ struct rtrs_clt_con *con = to_clt_con(clt_path->s.con[cid]);
stop_cm(con);
@@ -2367,7 +2379,7 @@ static int init_conns(struct rtrs_clt_sess *sess)
* doing rdma_resolve_addr(), switch to CONNECTION_ERR state
* manually to keep reconnecting.
*/
- rtrs_clt_change_state_get_old(sess, RTRS_CLT_CONNECTING_ERR, NULL);
+ rtrs_clt_change_state_get_old(clt_path, RTRS_CLT_CONNECTING_ERR, NULL);
return err;
}
@@ -2375,31 +2387,32 @@ static int init_conns(struct rtrs_clt_sess *sess)
static void rtrs_clt_info_req_done(struct ib_cq *cq, struct ib_wc *wc)
{
struct rtrs_clt_con *con = to_clt_con(wc->qp->qp_context);
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
struct rtrs_iu *iu;
iu = container_of(wc->wr_cqe, struct rtrs_iu, cqe);
- rtrs_iu_free(iu, sess->s.dev->ib_dev, 1);
+ rtrs_iu_free(iu, clt_path->s.dev->ib_dev, 1);
if (wc->status != IB_WC_SUCCESS) {
- rtrs_err(sess->clt, "Sess info request send failed: %s\n",
+ rtrs_err(clt_path->clt, "Path info request send failed: %s\n",
ib_wc_status_msg(wc->status));
- rtrs_clt_change_state_get_old(sess, RTRS_CLT_CONNECTING_ERR, NULL);
+ rtrs_clt_change_state_get_old(clt_path, RTRS_CLT_CONNECTING_ERR, NULL);
return;
}
rtrs_clt_update_wc_stats(con);
}
-static int process_info_rsp(struct rtrs_clt_sess *sess,
+static int process_info_rsp(struct rtrs_clt_path *clt_path,
const struct rtrs_msg_info_rsp *msg)
{
unsigned int sg_cnt, total_len;
int i, sgi;
sg_cnt = le16_to_cpu(msg->sg_cnt);
- if (!sg_cnt || (sess->queue_depth % sg_cnt)) {
- rtrs_err(sess->clt, "Incorrect sg_cnt %d, is not multiple\n",
+ if (!sg_cnt || (clt_path->queue_depth % sg_cnt)) {
+ rtrs_err(clt_path->clt,
+ "Incorrect sg_cnt %d, is not multiple\n",
sg_cnt);
return -EINVAL;
}
@@ -2408,15 +2421,15 @@ static int process_info_rsp(struct rtrs_clt_sess *sess,
* Check if IB immediate data size is enough to hold the mem_id and
* the offset inside the memory chunk.
*/
- if ((ilog2(sg_cnt - 1) + 1) + (ilog2(sess->chunk_size - 1) + 1) >
+ if ((ilog2(sg_cnt - 1) + 1) + (ilog2(clt_path->chunk_size - 1) + 1) >
MAX_IMM_PAYL_BITS) {
- rtrs_err(sess->clt,
+ rtrs_err(clt_path->clt,
"RDMA immediate size (%db) not enough to encode %d buffers of size %dB\n",
- MAX_IMM_PAYL_BITS, sg_cnt, sess->chunk_size);
+ MAX_IMM_PAYL_BITS, sg_cnt, clt_path->chunk_size);
return -EINVAL;
}
total_len = 0;
- for (sgi = 0, i = 0; sgi < sg_cnt && i < sess->queue_depth; sgi++) {
+ for (sgi = 0, i = 0; sgi < sg_cnt && i < clt_path->queue_depth; sgi++) {
const struct rtrs_sg_desc *desc = &msg->desc[sgi];
u32 len, rkey;
u64 addr;
@@ -2427,26 +2440,28 @@ static int process_info_rsp(struct rtrs_clt_sess *sess,
total_len += len;
- if (!len || (len % sess->chunk_size)) {
- rtrs_err(sess->clt, "Incorrect [%d].len %d\n", sgi,
+ if (!len || (len % clt_path->chunk_size)) {
+ rtrs_err(clt_path->clt, "Incorrect [%d].len %d\n",
+ sgi,
len);
return -EINVAL;
}
- for ( ; len && i < sess->queue_depth; i++) {
- sess->rbufs[i].addr = addr;
- sess->rbufs[i].rkey = rkey;
+ for ( ; len && i < clt_path->queue_depth; i++) {
+ clt_path->rbufs[i].addr = addr;
+ clt_path->rbufs[i].rkey = rkey;
- len -= sess->chunk_size;
- addr += sess->chunk_size;
+ len -= clt_path->chunk_size;
+ addr += clt_path->chunk_size;
}
}
/* Sanity check */
- if (sgi != sg_cnt || i != sess->queue_depth) {
- rtrs_err(sess->clt, "Incorrect sg vector, not fully mapped\n");
+ if (sgi != sg_cnt || i != clt_path->queue_depth) {
+ rtrs_err(clt_path->clt,
+ "Incorrect sg vector, not fully mapped\n");
return -EINVAL;
}
- if (total_len != sess->chunk_size * sess->queue_depth) {
- rtrs_err(sess->clt, "Incorrect total_len %d\n", total_len);
+ if (total_len != clt_path->chunk_size * clt_path->queue_depth) {
+ rtrs_err(clt_path->clt, "Incorrect total_len %d\n", total_len);
return -EINVAL;
}
@@ -2456,7 +2471,7 @@ static int process_info_rsp(struct rtrs_clt_sess *sess,
static void rtrs_clt_info_rsp_done(struct ib_cq *cq, struct ib_wc *wc)
{
struct rtrs_clt_con *con = to_clt_con(wc->qp->qp_context);
- struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
+ struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
struct rtrs_msg_info_rsp *msg;
enum rtrs_clt_state state;
struct rtrs_iu *iu;
@@ -2468,37 +2483,37 @@ static void rtrs_clt_info_rsp_done(struct ib_cq *cq, struct ib_wc *wc)
WARN_ON(con->c.cid);
iu = container_of(wc->wr_cqe, struct rtrs_iu, cqe);
if (wc->status != IB_WC_SUCCESS) {
- rtrs_err(sess->clt, "Sess info response recv failed: %s\n",
+ rtrs_err(clt_path->clt, "Path info response recv failed: %s\n",
ib_wc_status_msg(wc->status));
goto out;
}
WARN_ON(wc->opcode != IB_WC_RECV);
if (wc->byte_len < sizeof(*msg)) {
- rtrs_err(sess->clt, "Sess info response is malformed: size %d\n",
+ rtrs_err(clt_path->clt, "Path info response is malformed: size %d\n",
wc->byte_len);
goto out;
}
- ib_dma_sync_single_for_cpu(sess->s.dev->ib_dev, iu->dma_addr,
+ ib_dma_sync_single_for_cpu(clt_path->s.dev->ib_dev, iu->dma_addr,
iu->size, DMA_FROM_DEVICE);
msg = iu->buf;
if (le16_to_cpu(msg->type) != RTRS_MSG_INFO_RSP) {
- rtrs_err(sess->clt, "Sess info response is malformed: type %d\n",
+ rtrs_err(clt_path->clt, "Path info response is malformed: type %d\n",
le16_to_cpu(msg->type));
goto out;
}
rx_sz = sizeof(*msg);
rx_sz += sizeof(msg->desc[0]) * le16_to_cpu(msg->sg_cnt);
if (wc->byte_len < rx_sz) {
- rtrs_err(sess->clt, "Sess info response is malformed: size %d\n",
+ rtrs_err(clt_path->clt, "Path info response is malformed: size %d\n",
wc->byte_len);
goto out;
}
- err = process_info_rsp(sess, msg);
+ err = process_info_rsp(clt_path, msg);
if (err)
goto out;
- err = post_recv_sess(sess);
+ err = post_recv_path(clt_path);
if (err)
goto out;
@@ -2506,25 +2521,25 @@ static void rtrs_clt_info_rsp_done(struct ib_cq *cq, struct ib_wc *wc)
out:
rtrs_clt_update_wc_stats(con);
- rtrs_iu_free(iu, sess->s.dev->ib_dev, 1);
- rtrs_clt_change_state_get_old(sess, state, NULL);
+ rtrs_iu_free(iu, clt_path->s.dev->ib_dev, 1);
+ rtrs_clt_change_state_get_old(clt_path, state, NULL);
}
-static int rtrs_send_sess_info(struct rtrs_clt_sess *sess)
+static int rtrs_send_path_info(struct rtrs_clt_path *clt_path)
{
- struct rtrs_clt_con *usr_con = to_clt_con(sess->s.con[0]);
+ struct rtrs_clt_con *usr_con = to_clt_con(clt_path->s.con[0]);
struct rtrs_msg_info_req *msg;
struct rtrs_iu *tx_iu, *rx_iu;
size_t rx_sz;
int err;
rx_sz = sizeof(struct rtrs_msg_info_rsp);
- rx_sz += sizeof(struct rtrs_sg_desc) * sess->queue_depth;
+ rx_sz += sizeof(struct rtrs_sg_desc) * clt_path->queue_depth;
tx_iu = rtrs_iu_alloc(1, sizeof(struct rtrs_msg_info_req), GFP_KERNEL,
- sess->s.dev->ib_dev, DMA_TO_DEVICE,
+ clt_path->s.dev->ib_dev, DMA_TO_DEVICE,
rtrs_clt_info_req_done);
- rx_iu = rtrs_iu_alloc(1, rx_sz, GFP_KERNEL, sess->s.dev->ib_dev,
+ rx_iu = rtrs_iu_alloc(1, rx_sz, GFP_KERNEL, clt_path->s.dev->ib_dev,
DMA_FROM_DEVICE, rtrs_clt_info_rsp_done);
if (!tx_iu || !rx_iu) {
err = -ENOMEM;
@@ -2533,33 +2548,34 @@ static int rtrs_send_sess_info(struct rtrs_clt_sess *sess)
/* Prepare for getting info response */
err = rtrs_iu_post_recv(&usr_con->c, rx_iu);
if (err) {
- rtrs_err(sess->clt, "rtrs_iu_post_recv(), err: %d\n", err);
+ rtrs_err(clt_path->clt, "rtrs_iu_post_recv(), err: %d\n", err);
goto out;
}
rx_iu = NULL;
msg = tx_iu->buf;
msg->type = cpu_to_le16(RTRS_MSG_INFO_REQ);
- memcpy(msg->sessname, sess->s.sessname, sizeof(msg->sessname));
+ memcpy(msg->pathname, clt_path->s.sessname, sizeof(msg->pathname));
- ib_dma_sync_single_for_device(sess->s.dev->ib_dev, tx_iu->dma_addr,
+ ib_dma_sync_single_for_device(clt_path->s.dev->ib_dev,
+ tx_iu->dma_addr,
tx_iu->size, DMA_TO_DEVICE);
/* Send info request */
err = rtrs_iu_post_send(&usr_con->c, tx_iu, sizeof(*msg), NULL);
if (err) {
- rtrs_err(sess->clt, "rtrs_iu_post_send(), err: %d\n", err);
+ rtrs_err(clt_path->clt, "rtrs_iu_post_send(), err: %d\n", err);
goto out;
}
tx_iu = NULL;
/* Wait for state change */
- wait_event_interruptible_timeout(sess->state_wq,
- sess->state != RTRS_CLT_CONNECTING,
+ wait_event_interruptible_timeout(clt_path->state_wq,
+ clt_path->state != RTRS_CLT_CONNECTING,
msecs_to_jiffies(
RTRS_CONNECT_TIMEOUT_MS));
- if (READ_ONCE(sess->state) != RTRS_CLT_CONNECTED) {
- if (READ_ONCE(sess->state) == RTRS_CLT_CONNECTING_ERR)
+ if (READ_ONCE(clt_path->state) != RTRS_CLT_CONNECTED) {
+ if (READ_ONCE(clt_path->state) == RTRS_CLT_CONNECTING_ERR)
err = -ECONNRESET;
else
err = -ETIMEDOUT;
@@ -2567,82 +2583,82 @@ static int rtrs_send_sess_info(struct rtrs_clt_sess *sess)
out:
if (tx_iu)
- rtrs_iu_free(tx_iu, sess->s.dev->ib_dev, 1);
+ rtrs_iu_free(tx_iu, clt_path->s.dev->ib_dev, 1);
if (rx_iu)
- rtrs_iu_free(rx_iu, sess->s.dev->ib_dev, 1);
+ rtrs_iu_free(rx_iu, clt_path->s.dev->ib_dev, 1);
if (err)
/* If we've never taken async path because of malloc problems */
- rtrs_clt_change_state_get_old(sess, RTRS_CLT_CONNECTING_ERR, NULL);
+ rtrs_clt_change_state_get_old(clt_path,
+ RTRS_CLT_CONNECTING_ERR, NULL);
return err;
}
/**
- * init_sess() - establishes all session connections and does handshake
- * @sess: client session.
+ * init_path() - establishes all path connections and does handshake
+ * @clt_path: client path.
* In case of error full close or reconnect procedure should be taken,
* because reconnect or close async works can be started.
*/
-static int init_sess(struct rtrs_clt_sess *sess)
+static int init_path(struct rtrs_clt_path *clt_path)
{
int err;
char str[NAME_MAX];
struct rtrs_addr path = {
- .src = &sess->s.src_addr,
- .dst = &sess->s.dst_addr,
+ .src = &clt_path->s.src_addr,
+ .dst = &clt_path->s.dst_addr,
};
rtrs_addr_to_str(&path, str, sizeof(str));
- mutex_lock(&sess->init_mutex);
- err = init_conns(sess);
+ mutex_lock(&clt_path->init_mutex);
+ err = init_conns(clt_path);
if (err) {
- rtrs_err(sess->clt,
+ rtrs_err(clt_path->clt,
"init_conns() failed: err=%d path=%s [%s:%u]\n", err,
- str, sess->hca_name, sess->hca_port);
+ str, clt_path->hca_name, clt_path->hca_port);
goto out;
}
- err = rtrs_send_sess_info(sess);
+ err = rtrs_send_path_info(clt_path);
if (err) {
- rtrs_err(
- sess->clt,
- "rtrs_send_sess_info() failed: err=%d path=%s [%s:%u]\n",
- err, str, sess->hca_name, sess->hca_port);
+ rtrs_err(clt_path->clt,
+ "rtrs_send_path_info() failed: err=%d path=%s [%s:%u]\n",
+ err, str, clt_path->hca_name, clt_path->hca_port);
goto out;
}
- rtrs_clt_sess_up(sess);
+ rtrs_clt_path_up(clt_path);
out:
- mutex_unlock(&sess->init_mutex);
+ mutex_unlock(&clt_path->init_mutex);
return err;
}
static void rtrs_clt_reconnect_work(struct work_struct *work)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
struct rtrs_clt *clt;
unsigned int delay_ms;
int err;
- sess = container_of(to_delayed_work(work), struct rtrs_clt_sess,
- reconnect_dwork);
- clt = sess->clt;
+ clt_path = container_of(to_delayed_work(work), struct rtrs_clt_path,
+ reconnect_dwork);
+ clt = clt_path->clt;
- if (READ_ONCE(sess->state) != RTRS_CLT_RECONNECTING)
+ if (READ_ONCE(clt_path->state) != RTRS_CLT_RECONNECTING)
return;
- if (sess->reconnect_attempts >= clt->max_reconnect_attempts) {
- /* Close a session completely if max attempts is reached */
- rtrs_clt_close_conns(sess, false);
+ if (clt_path->reconnect_attempts >= clt->max_reconnect_attempts) {
+ /* Close a path completely if max attempts is reached */
+ rtrs_clt_close_conns(clt_path, false);
return;
}
- sess->reconnect_attempts++;
+ clt_path->reconnect_attempts++;
/* Stop everything */
- rtrs_clt_stop_and_destroy_conns(sess);
+ rtrs_clt_stop_and_destroy_conns(clt_path);
msleep(RTRS_RECONNECT_BACKOFF);
- if (rtrs_clt_change_state_get_old(sess, RTRS_CLT_CONNECTING, NULL)) {
- err = init_sess(sess);
+ if (rtrs_clt_change_state_get_old(clt_path, RTRS_CLT_CONNECTING, NULL)) {
+ err = init_path(clt_path);
if (err)
goto reconnect_again;
}
@@ -2650,10 +2666,10 @@ static void rtrs_clt_reconnect_work(struct work_struct *work)
return;
reconnect_again:
- if (rtrs_clt_change_state_get_old(sess, RTRS_CLT_RECONNECTING, NULL)) {
- sess->stats->reconnects.fail_cnt++;
+ if (rtrs_clt_change_state_get_old(clt_path, RTRS_CLT_RECONNECTING, NULL)) {
+ clt_path->stats->reconnects.fail_cnt++;
delay_ms = clt->reconnect_delay_sec * 1000;
- queue_delayed_work(rtrs_wq, &sess->reconnect_dwork,
+ queue_delayed_work(rtrs_wq, &clt_path->reconnect_dwork,
msecs_to_jiffies(delay_ms +
prandom_u32() %
RTRS_RECONNECT_SEED));
@@ -2762,7 +2778,7 @@ static void free_clt(struct rtrs_clt *clt)
}
/**
- * rtrs_clt_open() - Open a session to an RTRS server
+ * rtrs_clt_open() - Open a path to an RTRS server
* @ops: holds the link event callback and the private pointer.
* @sessname: name of the session
* @paths: Paths to be established defined by their src and dst addresses
@@ -2780,23 +2796,23 @@ static void free_clt(struct rtrs_clt *clt)
* Return a valid pointer on success otherwise PTR_ERR.
*/
struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops,
- const char *sessname,
+ const char *pathname,
const struct rtrs_addr *paths,
size_t paths_num, u16 port,
size_t pdu_sz, u8 reconnect_delay_sec,
s16 max_reconnect_attempts, u32 nr_poll_queues)
{
- struct rtrs_clt_sess *sess, *tmp;
+ struct rtrs_clt_path *clt_path, *tmp;
struct rtrs_clt *clt;
int err, i;
- if (strchr(sessname, '/') || strchr(sessname, '.')) {
- pr_err("sessname cannot contain / and .\n");
+ if (strchr(pathname, '/') || strchr(pathname, '.')) {
+ pr_err("pathname cannot contain / and .\n");
err = -EINVAL;
goto out;
}
- clt = alloc_clt(sessname, paths_num, port, pdu_sz, ops->priv,
+ clt = alloc_clt(pathname, paths_num, port, pdu_sz, ops->priv,
ops->link_ev,
reconnect_delay_sec,
max_reconnect_attempts);
@@ -2805,49 +2821,49 @@ struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops,
goto out;
}
for (i = 0; i < paths_num; i++) {
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
- sess = alloc_sess(clt, &paths[i], nr_cpu_ids,
+ clt_path = alloc_path(clt, &paths[i], nr_cpu_ids,
nr_poll_queues);
- if (IS_ERR(sess)) {
- err = PTR_ERR(sess);
- goto close_all_sess;
+ if (IS_ERR(clt_path)) {
+ err = PTR_ERR(clt_path);
+ goto close_all_path;
}
if (!i)
- sess->for_new_clt = 1;
- list_add_tail_rcu(&sess->s.entry, &clt->paths_list);
+ clt_path->for_new_clt = 1;
+ list_add_tail_rcu(&clt_path->s.entry, &clt->paths_list);
- err = init_sess(sess);
+ err = init_path(clt_path);
if (err) {
- list_del_rcu(&sess->s.entry);
- rtrs_clt_close_conns(sess, true);
- free_percpu(sess->stats->pcpu_stats);
- kfree(sess->stats);
- free_sess(sess);
- goto close_all_sess;
+ list_del_rcu(&clt_path->s.entry);
+ rtrs_clt_close_conns(clt_path, true);
+ free_percpu(clt_path->stats->pcpu_stats);
+ kfree(clt_path->stats);
+ free_path(clt_path);
+ goto close_all_path;
}
- err = rtrs_clt_create_sess_files(sess);
+ err = rtrs_clt_create_path_files(clt_path);
if (err) {
- list_del_rcu(&sess->s.entry);
- rtrs_clt_close_conns(sess, true);
- free_percpu(sess->stats->pcpu_stats);
- kfree(sess->stats);
- free_sess(sess);
- goto close_all_sess;
+ list_del_rcu(&clt_path->s.entry);
+ rtrs_clt_close_conns(clt_path, true);
+ free_percpu(clt_path->stats->pcpu_stats);
+ kfree(clt_path->stats);
+ free_path(clt_path);
+ goto close_all_path;
}
}
err = alloc_permits(clt);
if (err)
- goto close_all_sess;
+ goto close_all_path;
return clt;
-close_all_sess:
- list_for_each_entry_safe(sess, tmp, &clt->paths_list, s.entry) {
- rtrs_clt_destroy_sess_files(sess, NULL);
- rtrs_clt_close_conns(sess, true);
- kobject_put(&sess->kobj);
+close_all_path:
+ list_for_each_entry_safe(clt_path, tmp, &clt->paths_list, s.entry) {
+ rtrs_clt_destroy_path_files(clt_path, NULL);
+ rtrs_clt_close_conns(clt_path, true);
+ kobject_put(&clt_path->kobj);
}
rtrs_clt_destroy_sysfs_root(clt);
free_clt(clt);
@@ -2858,38 +2874,39 @@ struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops,
EXPORT_SYMBOL(rtrs_clt_open);
/**
- * rtrs_clt_close() - Close a session
+ * rtrs_clt_close() - Close a path
* @clt: Session handle. Session is freed upon return.
*/
void rtrs_clt_close(struct rtrs_clt *clt)
{
- struct rtrs_clt_sess *sess, *tmp;
+ struct rtrs_clt_path *clt_path, *tmp;
/* Firstly forbid sysfs access */
rtrs_clt_destroy_sysfs_root(clt);
/* Now it is safe to iterate over all paths without locks */
- list_for_each_entry_safe(sess, tmp, &clt->paths_list, s.entry) {
- rtrs_clt_close_conns(sess, true);
- rtrs_clt_destroy_sess_files(sess, NULL);
- kobject_put(&sess->kobj);
+ list_for_each_entry_safe(clt_path, tmp, &clt->paths_list, s.entry) {
+ rtrs_clt_close_conns(clt_path, true);
+ rtrs_clt_destroy_path_files(clt_path, NULL);
+ kobject_put(&clt_path->kobj);
}
free_permits(clt);
free_clt(clt);
}
EXPORT_SYMBOL(rtrs_clt_close);
-int rtrs_clt_reconnect_from_sysfs(struct rtrs_clt_sess *sess)
+int rtrs_clt_reconnect_from_sysfs(struct rtrs_clt_path *clt_path)
{
enum rtrs_clt_state old_state;
int err = -EBUSY;
bool changed;
- changed = rtrs_clt_change_state_get_old(sess, RTRS_CLT_RECONNECTING,
+ changed = rtrs_clt_change_state_get_old(clt_path,
+ RTRS_CLT_RECONNECTING,
&old_state);
if (changed) {
- sess->reconnect_attempts = 0;
- queue_delayed_work(rtrs_wq, &sess->reconnect_dwork, 0);
+ clt_path->reconnect_attempts = 0;
+ queue_delayed_work(rtrs_wq, &clt_path->reconnect_dwork, 0);
}
if (changed || old_state == RTRS_CLT_RECONNECTING) {
/*
@@ -2897,15 +2914,15 @@ int rtrs_clt_reconnect_from_sysfs(struct rtrs_clt_sess *sess)
* execution, so do the flush if we have queued something
* right now or work is pending.
*/
- flush_delayed_work(&sess->reconnect_dwork);
- err = (READ_ONCE(sess->state) ==
+ flush_delayed_work(&clt_path->reconnect_dwork);
+ err = (READ_ONCE(clt_path->state) ==
RTRS_CLT_CONNECTED ? 0 : -ENOTCONN);
}
return err;
}
-int rtrs_clt_remove_path_from_sysfs(struct rtrs_clt_sess *sess,
+int rtrs_clt_remove_path_from_sysfs(struct rtrs_clt_path *clt_path,
const struct attribute *sysfs_self)
{
enum rtrs_clt_state old_state;
@@ -2921,16 +2938,16 @@ int rtrs_clt_remove_path_from_sysfs(struct rtrs_clt_sess *sess,
* removing the path.
*/
do {
- rtrs_clt_close_conns(sess, true);
- changed = rtrs_clt_change_state_get_old(sess,
+ rtrs_clt_close_conns(clt_path, true);
+ changed = rtrs_clt_change_state_get_old(clt_path,
RTRS_CLT_DEAD,
&old_state);
} while (!changed && old_state != RTRS_CLT_DEAD);
if (changed) {
- rtrs_clt_remove_path_from_arr(sess);
- rtrs_clt_destroy_sess_files(sess, sysfs_self);
- kobject_put(&sess->kobj);
+ rtrs_clt_remove_path_from_arr(clt_path);
+ rtrs_clt_destroy_path_files(clt_path, sysfs_self);
+ kobject_put(&clt_path->kobj);
}
return 0;
@@ -2976,7 +2993,7 @@ int rtrs_clt_request(int dir, struct rtrs_clt_req_ops *ops,
struct scatterlist *sg, unsigned int sg_cnt)
{
struct rtrs_clt_io_req *req;
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
enum dma_data_direction dma_dir;
int err = -ECONNABORTED, i;
@@ -2998,19 +3015,19 @@ int rtrs_clt_request(int dir, struct rtrs_clt_req_ops *ops,
rcu_read_lock();
for (path_it_init(&it, clt);
- (sess = it.next_path(&it)) && it.i < it.clt->paths_num; it.i++) {
- if (READ_ONCE(sess->state) != RTRS_CLT_CONNECTED)
+ (clt_path = it.next_path(&it)) && it.i < it.clt->paths_num; it.i++) {
+ if (READ_ONCE(clt_path->state) != RTRS_CLT_CONNECTED)
continue;
- if (usr_len + hdr_len > sess->max_hdr_size) {
- rtrs_wrn_rl(sess->clt,
+ if (usr_len + hdr_len > clt_path->max_hdr_size) {
+ rtrs_wrn_rl(clt_path->clt,
"%s request failed, user message size is %zu and header length %zu, but max size is %u\n",
dir == READ ? "Read" : "Write",
- usr_len, hdr_len, sess->max_hdr_size);
+ usr_len, hdr_len, clt_path->max_hdr_size);
err = -EMSGSIZE;
break;
}
- req = rtrs_clt_get_req(sess, ops->conf_fn, permit, ops->priv,
+ req = rtrs_clt_get_req(clt_path, ops->conf_fn, permit, ops->priv,
vec, usr_len, sg, sg_cnt, data_len,
dma_dir);
if (dir == READ)
@@ -3036,16 +3053,16 @@ int rtrs_clt_rdma_cq_direct(struct rtrs_clt *clt, unsigned int index)
/* If no path, return -1 for block layer not to try again */
int cnt = -1;
struct rtrs_con *con;
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
struct path_it it;
rcu_read_lock();
for (path_it_init(&it, clt);
- (sess = it.next_path(&it)) && it.i < it.clt->paths_num; it.i++) {
- if (READ_ONCE(sess->state) != RTRS_CLT_CONNECTED)
+ (clt_path = it.next_path(&it)) && it.i < it.clt->paths_num; it.i++) {
+ if (READ_ONCE(clt_path->state) != RTRS_CLT_CONNECTED)
continue;
- con = sess->s.con[index + 1];
+ con = clt_path->s.con[index + 1];
cnt = ib_process_cq_direct(con->cq, -1);
if (cnt)
break;
@@ -3083,12 +3100,12 @@ EXPORT_SYMBOL(rtrs_clt_query);
int rtrs_clt_create_path_from_sysfs(struct rtrs_clt *clt,
struct rtrs_addr *addr)
{
- struct rtrs_clt_sess *sess;
+ struct rtrs_clt_path *clt_path;
int err;
- sess = alloc_sess(clt, addr, nr_cpu_ids, 0);
- if (IS_ERR(sess))
- return PTR_ERR(sess);
+ clt_path = alloc_path(clt, addr, nr_cpu_ids, 0);
+ if (IS_ERR(clt_path))
+ return PTR_ERR(clt_path);
mutex_lock(&clt->paths_mutex);
if (clt->paths_num == 0) {
@@ -3097,7 +3114,7 @@ int rtrs_clt_create_path_from_sysfs(struct rtrs_clt *clt,
* the addition of the first path is like a new session for
* the storage server
*/
- sess->for_new_clt = 1;
+ clt_path->for_new_clt = 1;
}
mutex_unlock(&clt->paths_mutex);
@@ -3107,24 +3124,24 @@ int rtrs_clt_create_path_from_sysfs(struct rtrs_clt *clt,
* IO will never grab it. Also it is very important to add
* path before init, since init fires LINK_CONNECTED event.
*/
- rtrs_clt_add_path_to_arr(sess);
+ rtrs_clt_add_path_to_arr(clt_path);
- err = init_sess(sess);
+ err = init_path(clt_path);
if (err)
- goto close_sess;
+ goto close_path;
- err = rtrs_clt_create_sess_files(sess);
+ err = rtrs_clt_create_path_files(clt_path);
if (err)
- goto close_sess;
+ goto close_path;
return 0;
-close_sess:
- rtrs_clt_remove_path_from_arr(sess);
- rtrs_clt_close_conns(sess, true);
- free_percpu(sess->stats->pcpu_stats);
- kfree(sess->stats);
- free_sess(sess);
+close_path:
+ rtrs_clt_remove_path_from_arr(clt_path);
+ rtrs_clt_close_conns(clt_path, true);
+ free_percpu(clt_path->stats->pcpu_stats);
+ kfree(clt_path->stats);
+ free_path(clt_path);
return err;
}
diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.h b/drivers/infiniband/ulp/rtrs/rtrs-clt.h
index d616f325bc40..7f2a64995fb6 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs-clt.h
+++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.h
@@ -124,7 +124,7 @@ struct rtrs_rbuf {
u32 rkey;
};
-struct rtrs_clt_sess {
+struct rtrs_clt_path {
struct rtrs_path s;
struct rtrs_clt *clt;
wait_queue_head_t state_wq;
@@ -156,7 +156,7 @@ struct rtrs_clt_sess {
struct rtrs_clt {
struct list_head paths_list; /* rcu protected list */
size_t paths_num;
- struct rtrs_clt_sess
+ struct rtrs_clt_path
__rcu * __percpu *pcpu_path;
uuid_t paths_uuid;
int paths_up;
@@ -186,9 +186,9 @@ static inline struct rtrs_clt_con *to_clt_con(struct rtrs_con *c)
return container_of(c, struct rtrs_clt_con, c);
}
-static inline struct rtrs_clt_sess *to_clt_sess(struct rtrs_path *s)
+static inline struct rtrs_clt_path *to_clt_path(struct rtrs_path *s)
{
- return container_of(s, struct rtrs_clt_sess, s);
+ return container_of(s, struct rtrs_clt_path, s);
}
static inline int permit_size(struct rtrs_clt *clt)
@@ -201,16 +201,16 @@ static inline struct rtrs_permit *get_permit(struct rtrs_clt *clt, int idx)
return (struct rtrs_permit *)(clt->permits + permit_size(clt) * idx);
}
-int rtrs_clt_reconnect_from_sysfs(struct rtrs_clt_sess *sess);
-void rtrs_clt_close_conns(struct rtrs_clt_sess *sess, bool wait);
+int rtrs_clt_reconnect_from_sysfs(struct rtrs_clt_path *path);
+void rtrs_clt_close_conns(struct rtrs_clt_path *clt_path, bool wait);
int rtrs_clt_create_path_from_sysfs(struct rtrs_clt *clt,
struct rtrs_addr *addr);
-int rtrs_clt_remove_path_from_sysfs(struct rtrs_clt_sess *sess,
+int rtrs_clt_remove_path_from_sysfs(struct rtrs_clt_path *path,
const struct attribute *sysfs_self);
void rtrs_clt_set_max_reconnect_attempts(struct rtrs_clt *clt, int value);
int rtrs_clt_get_max_reconnect_attempts(const struct rtrs_clt *clt);
-void free_sess(struct rtrs_clt_sess *sess);
+void free_path(struct rtrs_clt_path *clt_path);
/* rtrs-clt-stats.c */
@@ -243,8 +243,8 @@ ssize_t rtrs_clt_reset_all_help(struct rtrs_clt_stats *stats,
int rtrs_clt_create_sysfs_root_files(struct rtrs_clt *clt);
void rtrs_clt_destroy_sysfs_root(struct rtrs_clt *clt);
-int rtrs_clt_create_sess_files(struct rtrs_clt_sess *sess);
-void rtrs_clt_destroy_sess_files(struct rtrs_clt_sess *sess,
+int rtrs_clt_create_path_files(struct rtrs_clt_path *clt_path);
+void rtrs_clt_destroy_path_files(struct rtrs_clt_path *clt_path,
const struct attribute *sysfs_self);
#endif /* RTRS_CLT_H */
diff --git a/drivers/infiniband/ulp/rtrs/rtrs-pri.h b/drivers/infiniband/ulp/rtrs/rtrs-pri.h
index 412cf5ce3e7c..b69fa1fe9a70 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs-pri.h
+++ b/drivers/infiniband/ulp/rtrs/rtrs-pri.h
@@ -230,7 +230,7 @@ struct rtrs_msg_conn_rsp {
/**
* struct rtrs_msg_info_req
* @type: @RTRS_MSG_INFO_REQ
- * @sessname: Session name chosen by client
+ * @pathname: Path name chosen by client
*/
struct rtrs_msg_info_req {
__le16 type;
diff --git a/drivers/infiniband/ulp/rtrs/rtrs.h b/drivers/infiniband/ulp/rtrs/rtrs.h
index 9da9202fbee5..c529b6d63c9a 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs.h
+++ b/drivers/infiniband/ulp/rtrs/rtrs.h
@@ -53,13 +53,13 @@ struct rtrs_clt_ops {
};
struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops,
- const char *sessname,
+ const char *pathname,
const struct rtrs_addr *paths,
size_t path_cnt, u16 port,
size_t pdu_sz, u8 reconnect_delay_sec,
s16 max_reconnect_attempts, u32 nr_poll_queues);
-void rtrs_clt_close(struct rtrs_clt *sess);
+void rtrs_clt_close(struct rtrs_clt *clt_path);
enum wait_type {
RTRS_PERMIT_NOWAIT = 0,
--
2.35.1
next prev parent reply other threads:[~2022-08-15 19:22 UTC|newest]
Thread overview: 804+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-15 17:54 [PATCH 5.15 000/779] 5.15.61-rc1 review Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 001/779] Makefile: link with -z noexecstack --no-warn-rwx-segments Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 002/779] x86: link vdso and boot " Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 003/779] Revert "pNFS: nfs3_set_ds_client should set NFS_CS_NOPING" Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 004/779] scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover" Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 005/779] pNFS/flexfiles: Report RDMA connection errors to the server Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 006/779] NFSD: Clean up the show_nf_flags() macro Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 007/779] nfsd: eliminate the NFSD_FILE_BREAK_* flags Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 008/779] ALSA: usb-audio: Add quirk for Behringer UMC202HD Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 009/779] ALSA: bcd2000: Fix a UAF bug on the error path of probing Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 010/779] ALSA: hda/realtek: Add quirk for Clevo NV45PZ Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 011/779] ALSA: hda/realtek: Add quirk for HP Spectre x360 15-eb0xxx Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 012/779] wifi: mac80211_hwsim: fix race condition in pending packet Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 013/779] wifi: mac80211_hwsim: add back erroneously removed cast Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 014/779] wifi: mac80211_hwsim: use 32-bit skb cookie Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 015/779] add barriers to buffer_uptodate and set_buffer_uptodate Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 016/779] lockd: detect and reject lock arguments that overflow Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 017/779] HID: hid-input: add Surface Go battery quirk Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 018/779] HID: wacom: Only report rotation for art pen Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 019/779] HID: wacom: Dont register pad_input for touch switch Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 020/779] KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 021/779] KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL " Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 022/779] KVM: SVM: Dont BUG if userspace injects an interrupt with GIF=0 Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 023/779] KVM: s390: pv: dont present the ecall interrupt twice Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 024/779] KVM: x86: Split kvm_is_valid_cr4() and export only the non-vendor bits Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 025/779] KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 026/779] KVM: nVMX: Account for KVM reserved CR4 bits in consistency checks Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 027/779] KVM: nVMX: Inject #UD if VMXON is attempted with incompatible CR0/CR4 Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 028/779] KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 029/779] KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 030/779] KVM: nVMX: Always enable TSC scaling for L2 when it was enabled for L1 Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 031/779] KVM: x86: Tag kvm_mmu_x86_module_init() with __init Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 032/779] KVM: x86: do not report preemption if the steal time cache is stale Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 033/779] KVM: x86: revalidate steal time cache if MSR value changes Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 034/779] riscv: set default pm_power_off to NULL Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 035/779] ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 036/779] ALSA: hda/cirrus - support for iMac 12,1 model Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 037/779] ALSA: hda/realtek: Add quirk for another Asus K42JZ model Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 038/779] ALSA: hda/realtek: Add a quirk for HP OMEN 15 (8786) mute LED Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 039/779] tty: vt: initialize unicode screen buffer Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 040/779] vfs: Check the truncate maximum size in inode_newsize_ok() Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 041/779] fs: Add missing umask strip in vfs_tmpfile Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 042/779] thermal: sysfs: Fix cooling_device_stats_setup() error code path Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 043/779] fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 044/779] fbcon: Fix accelerated fbdev scrolling while logo is still shown Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 045/779] usbnet: Fix linkwatch use-after-free on disconnect Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 046/779] fix short copy handling in copy_mc_pipe_to_iter() Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 047/779] crypto: ccp - Use kzalloc for sev ioctl interfaces to prevent kernel memory leak Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 048/779] ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh() Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 049/779] parisc: Fix device names in /proc/iomem Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 050/779] parisc: Drop pa_swapper_pg_lock spinlock Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 051/779] parisc: Check the return value of ioremap() in lba_driver_probe() Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 052/779] parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 053/779] riscv:uprobe fix SR_SPIE set/clear handling Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 054/779] dt-bindings: riscv: fix SiFive l2-caches cache-sets Greg Kroah-Hartman
2022-08-15 17:54 ` [PATCH 5.15 055/779] RISC-V: kexec: Fixup use of smp_processor_id() in preemptible context Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 056/779] RISC-V: Fixup get incorrect user mode PC for kernel mode regs Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 057/779] RISC-V: Fixup schedule out issue in machine_crash_shutdown() Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 058/779] RISC-V: Add modules to virtual kernel memory layout dump Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 059/779] rtc: rx8025: fix 12/24 hour mode detection on RX-8035 Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 060/779] drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 061/779] drm/shmem-helper: Add missing vunmap on error Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 062/779] drm/vc4: hdmi: Disable audio if dmas property is present but empty Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 063/779] drm/hyperv-drm: Include framebuffer and EDID headers Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 064/779] drm/nouveau: fix another off-by-one in nvbios_addr Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 065/779] drm/nouveau: Dont pm_runtime_put_sync(), only pm_runtime_put_autosuspend() Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 066/779] drm/nouveau/acpi: Dont print error when we get -EINPROGRESS from pm_runtime Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 067/779] drm/nouveau/kms: Fix failure path for creating DP connectors Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 068/779] drm/amdgpu: Check BOs requested pinning domains against its preferred_domains Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 069/779] drm/amdgpu: fix check in fbdev init Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 070/779] bpf: Fix KASAN use-after-free Read in compute_effective_progs Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 071/779] btrfs: reject log replay if there is unsupported RO compat flag Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 072/779] mtd: rawnand: arasan: Fix clock rate in NV-DDR Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 073/779] mtd: rawnand: arasan: Update NAND bus clock instead of system clock Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 074/779] um: Remove straying parenthesis Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 075/779] um: seed rng using host OS rng Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 076/779] iio: fix iio_format_avail_range() printing for none IIO_VAL_INT Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 077/779] iio: light: isl29028: Fix the warning in isl29028_remove() Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 078/779] scsi: sg: Allow waiting for commands to complete on removed device Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 079/779] scsi: qla2xxx: Fix incorrect display of max frame size Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 080/779] scsi: qla2xxx: Zero undefined mailbox IN registers Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 081/779] soundwire: qcom: Check device status before reading devid Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 082/779] ksmbd: fix memory leak in smb2_handle_negotiate Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 083/779] ksmbd: prevent out of bound read for SMB2_TREE_CONNNECT Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 084/779] ksmbd: fix use-after-free bug in smb2_tree_disconect Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 085/779] fuse: limit nsec Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 086/779] fuse: ioctl: translate ENOSYS Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 087/779] serial: mvebu-uart: uart2 error bits clearing Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 088/779] md-raid: destroy the bitmap after destroying the thread Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 089/779] md-raid10: fix KASAN warning Greg Kroah-Hartman
2022-08-19 10:45 ` Pavel Machek
2022-08-20 16:03 ` Mikulas Patocka
2022-08-15 17:55 ` [PATCH 5.15 090/779] mbcache: dont reclaim used entries Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 091/779] mbcache: add functions to delete entry if unused Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 092/779] media: [PATCH] pci: atomisp_cmd: fix three missing checks on list iterator Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 093/779] ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr() Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 094/779] powerpc/fsl-pci: Fix Class Code of PCIe Root Port Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 095/779] powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 096/779] powerpc/powernv: Avoid crashing if rng is NULL Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 097/779] MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 098/779] coresight: Clear the connection field properly Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 099/779] usb: typec: ucsi: Acknowledge the GET_ERROR_STATUS command completion Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 100/779] USB: HCD: Fix URB giveback issue in tasklet function Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 101/779] ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 102/779] arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 103/779] USB: gadget: Fix use-after-free Read in usb_udc_uevent() Greg Kroah-Hartman
2022-08-16 1:43 ` nobuhiro1.iwamatsu
2022-08-16 9:26 ` Greg KH
2022-08-16 13:48 ` Alan Stern
2022-08-15 17:55 ` [PATCH 5.15 104/779] usb: dwc3: gadget: refactor dwc3_repare_one_trb Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 105/779] usb: dwc3: gadget: fix high speed multiplier setting Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 106/779] netfilter: nf_tables: do not allow SET_ID to refer to another table Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 107/779] netfilter: nf_tables: do not allow CHAIN_ID " Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 108/779] netfilter: nf_tables: do not allow RULE_ID to refer to another chain Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 109/779] netfilter: nf_tables: fix null deref due to zeroed list head Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 110/779] epoll: autoremove wakers even more aggressively Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 111/779] x86: Handle idle=nomwait cmdline properly for x86_idle Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 112/779] arch: make TRACE_IRQFLAGS_NMI_SUPPORT generic Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 113/779] arm64: Do not forget syscall when starting a new thread Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 114/779] arm64: fix oops in concurrently setting insn_emulation sysctls Greg Kroah-Hartman
2022-08-15 17:55 ` [PATCH 5.15 115/779] arm64: kasan: Revert "arm64: mte: reset the page tag in page->flags" Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 116/779] ext2: Add more validity checks for inode counts Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 117/779] sched/fair: Introduce SIS_UTIL to search idle CPU based on sum of util_avg Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 118/779] genirq: Dont return error on missing optional irq_request_resources() Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 119/779] irqchip/mips-gic: Only register IPI domain when SMP is enabled Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 120/779] genirq: GENERIC_IRQ_IPI depends on SMP Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 121/779] sched/core: Always flush pending blk_plug Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 122/779] irqchip/mips-gic: Check the return value of ioremap() in gic_of_init() Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 123/779] wait: Fix __wait_event_hrtimeout for RT/DL tasks Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 124/779] ARM: dts: imx6ul: add missing properties for sram Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 125/779] ARM: dts: imx6ul: change operating-points to uint32-matrix Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 126/779] ARM: dts: imx6ul: fix keypad compatible Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 127/779] ARM: dts: imx6ul: fix csi node compatible Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 128/779] ARM: dts: imx6ul: fix lcdif " Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 129/779] ARM: dts: imx6ul: fix qspi " Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 130/779] ARM: dts: BCM5301X: Add DT for Meraki MR26 Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 131/779] ARM: dts: ux500: Fix Codina accelerometer mounting matrix Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 132/779] ARM: dts: ux500: Fix Gavini " Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 133/779] spi: synquacer: Add missing clk_disable_unprepare() Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 134/779] ARM: OMAP2+: display: Fix refcount leak bug Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 135/779] ARM: OMAP2+: pdata-quirks: " Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 136/779] ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 137/779] ACPI: EC: Drop the EC_FLAGS_IGNORE_DSDT_GPE quirk Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 138/779] ACPI: PM: save NVS memory for Lenovo G40-45 Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 139/779] ACPI: LPSS: Fix missing check in register_device_clock() Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 140/779] ARM: dts: qcom: sdx55: Fix the IRQ trigger type for UART Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 141/779] arm64: dts: qcom: ipq8074: fix NAND node name Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 142/779] arm64: dts: allwinner: a64: orangepi-win: Fix LED " Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 143/779] ARM: shmobile: rcar-gen2: Increase refcount for new reference Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 144/779] firmware: tegra: Fix error check return value of debugfs_create_file() Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 145/779] hwmon: (dell-smm) Add Dell XPS 13 7390 to fan control whitelist Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 146/779] hwmon: (sht15) Fix wrong assumptions in device remove callback Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 147/779] PM: hibernate: defer device probing when resuming from hibernation Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 148/779] selinux: fix memleak in security_read_state_kernel() Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 149/779] selinux: Add boundary check in put_entry() Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 150/779] kasan: test: Silence GCC 12 warnings Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 151/779] drm/amdgpu: Remove one duplicated ef removal Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 152/779] powerpc/64s: Disable stack variable initialisation for prom_init Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 153/779] spi: spi-rspi: Fix PIO fallback on RZ platforms Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 154/779] netfilter: nf_tables: add rescheduling points during loop detection walks Greg Kroah-Hartman
2022-08-15 18:58 ` Florian Westphal
2022-08-16 9:15 ` Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 155/779] ARM: findbit: fix overflowing offset Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 156/779] meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 157/779] arm64: dts: renesas: beacon: Fix regulator node names Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 158/779] spi: spi-altera-dfl: Fix an error handling path Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 159/779] ARM: bcm: Fix refcount leak in bcm_kona_smc_init Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 160/779] ACPI: processor/idle: Annotate more functions to live in cpuidle section Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 161/779] ARM: dts: imx7d-colibri-emmc: add cpu1 supply Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 162/779] soc: renesas: r8a779a0-sysc: Fix A2DP1 and A2CV[2357] PDR values Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 163/779] scsi: hisi_sas: Use managed PCI functions Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 164/779] dt-bindings: iio: accel: Add DT binding doc for ADXL355 Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 165/779] soc: amlogic: Fix refcount leak in meson-secure-pwrc.c Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 166/779] arm64: dts: renesas: Fix thermal-sensors on single-zone sensors Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 167/779] x86/pmem: Fix platform-device leak in error path Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 168/779] ARM: dts: ast2500-evb: fix board compatible Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 169/779] ARM: dts: ast2600-evb: " Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 170/779] ARM: dts: ast2600-evb-a1: " Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 171/779] arm64: dts: mt8192: Fix idle-states nodes naming scheme Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 172/779] arm64: dts: mt8192: Fix idle-states entry-method Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 173/779] arm64: select TRACE_IRQFLAGS_NMI_SUPPORT Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 174/779] arm64: cpufeature: Allow different PMU versions in ID_DFR0_EL1 Greg Kroah-Hartman
2022-08-15 17:56 ` [PATCH 5.15 175/779] locking/lockdep: Fix lockdep_init_map_*() confusion Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 176/779] arm64: dts: qcom: sc7180: Remove ipa_fw_mem node on trogdor Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 177/779] soc: fsl: guts: machine variable might be unset Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 178/779] block: fix infinite loop for invalid zone append Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 179/779] ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 180/779] ARM: OMAP2+: Fix refcount leak in omapdss_init_of Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 181/779] ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 182/779] arm64: dts: qcom: sdm630: disable GPU by default Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 183/779] arm64: dts: qcom: sdm630: fix the qusb2phy ref clock Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 184/779] arm64: dts: qcom: sdm630: fix gpus interconnect path Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 185/779] arm64: dts: qcom: sdm636-sony-xperia-ganges-mermaid: correct sdc2 pinconf Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 186/779] cpufreq: zynq: Fix refcount leak in zynq_get_revision Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 187/779] regulator: qcom_smd: Fix pm8916_pldo range Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 188/779] ACPI: APEI: Fix _EINJ vs EFI_MEMORY_SP Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 189/779] ARM: dts: qcom-msm8974: fix irq type on blsp2_uart1 Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 190/779] soc: qcom: ocmem: Fix refcount leak in of_get_ocmem Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 191/779] soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 192/779] ARM: dts: qcom: pm8841: add required thermal-sensor-cells Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 193/779] bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe() Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 194/779] stack: Declare {randomize_,}kstack_offset to fix Sparse warnings Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 195/779] arm64: dts: qcom: msm8916: Fix typo in pronto remoteproc node Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 196/779] ACPI: APEI: explicit init of HEST and GHES in apci_init() Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 197/779] drivers/iio: Remove all strcpy() uses Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 198/779] ACPI: VIOT: Fix ACS setup Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 199/779] arm64: dts: qcom: sm6125: Move sdc2 pinctrl from seine-pdx201 to sm6125 Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 200/779] arm64: dts: qcom: sm6125: Append -state suffix to pinctrl nodes Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 201/779] arm64: dts: qcom: sm8250: add missing PCIe PHY clock-cells Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 202/779] arm64: dts: mt7622: fix BPI-R64 WPS button Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 203/779] arm64: tegra: Fixup SYSRAM references Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 204/779] arm64: tegra: Update Tegra234 BPMP channel addresses Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 205/779] arm64: tegra: Mark BPMP channels as no-memory-wc Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 206/779] arm64: tegra: Fix SDMMC1 CD on P2888 Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 207/779] erofs: avoid consecutive detection for Highmem memory Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 208/779] blk-mq: dont create hctx debugfs dir until q->debugfs_dir is created Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 209/779] spi: Fix simplification of devm_spi_register_controller Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 210/779] spi: tegra20-slink: fix UAF in tegra_slink_remove() Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 211/779] hwmon: (drivetemp) Add module alias Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 212/779] blktrace: Trace remapped requests correctly Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 213/779] PM: domains: Ensure genpd_debugfs_dir exists before remove Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 214/779] dm writecache: return void from functions Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 215/779] dm writecache: count number of blocks read, not number of read bios Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 216/779] dm writecache: count number of blocks written, not number of write bios Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 217/779] dm writecache: count number of blocks discarded, not number of discard bios Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 218/779] regulator: of: Fix refcount leak bug in of_get_regulation_constraints() Greg Kroah-Hartman
2022-08-19 13:10 ` Pavel Machek
2022-08-15 17:57 ` [PATCH 5.15 219/779] soc: qcom: Make QCOM_RPMPD depend on PM Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 220/779] arm64: dts: qcom: qcs404: Fix incorrect USB2 PHYs assignment Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 221/779] irqdomain: Report irq number for NOMAP domains Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 222/779] drivers/perf: arm_spe: Fix consistency of SYS_PMSCR_EL1.CX Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 223/779] nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt() Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 224/779] x86/extable: Fix ex_handler_msr() print condition Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 225/779] selftests/seccomp: Fix compile warning when CC=clang Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 226/779] thermal/tools/tmon: Include pthread and time headers in tmon.h Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 227/779] dm: return early from dm_pr_call() if DM device is suspended Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 228/779] pwm: sifive: Simplify offset calculation for PWMCMP registers Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 229/779] pwm: sifive: Ensure the clk is enabled exactly once per running PWM Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 230/779] pwm: sifive: Shut down hardware only after pwmchip_remove() completed Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 231/779] pwm: lpc18xx-sct: Reduce number of devm memory allocations Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 232/779] pwm: lpc18xx-sct: Simplify driver by not using pwm_[gs]et_chip_data() Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 233/779] pwm: lpc18xx: Fix period handling Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 234/779] drm/dp: Export symbol / kerneldoc fixes for DP AUX bus Greg Kroah-Hartman
2022-08-15 17:57 ` [PATCH 5.15 235/779] drm/bridge: tc358767: Move (e)DP bridge endpoint parsing into dedicated function Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 236/779] ath10k: do not enforce interrupt trigger type Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 237/779] drm/st7735r: Fix module autoloading for Okaya RH128128T Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 238/779] drm/panel: Fix build error when CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20=y && CONFIG_DRM_DISPLAY_HELPER=m Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 239/779] wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c() Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 240/779] ath11k: fix netdev open race Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 241/779] drm/mipi-dbi: align max_chunk to 2 in spi_transfer Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 242/779] ath11k: Fix incorrect debug_mask mappings Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 243/779] drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers() Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 244/779] drm/mediatek: Modify dsi funcs to atomic operations Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 245/779] drm/mediatek: Separate poweron/poweroff from enable/disable and define new funcs Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 246/779] drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 247/779] drm/meson: encoder_hdmi: switch to bridge DRM_BRIDGE_ATTACH_NO_CONNECTOR Greg Kroah-Hartman
2022-09-12 16:08 ` Stefan Agner
2022-09-12 18:48 ` Stefan Agner
2022-09-13 11:22 ` Greg Kroah-Hartman
2022-09-23 9:12 ` Neil Armstrong
2022-09-23 9:18 ` Greg Kroah-Hartman
2022-09-23 9:30 ` Neil Armstrong
2022-08-15 17:58 ` [PATCH 5.15 248/779] drm/meson: encoder_hdmi: Fix refcount leak in meson_encoder_hdmi_init Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 249/779] drm/bridge: lt9611uxc: Cancel only drivers work Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 250/779] i2c: npcm: Remove own slave addresses 2:10 Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 251/779] i2c: npcm: Correct slave role behavior Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 252/779] i2c: mxs: Silence a clang warning Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 253/779] virtio-gpu: fix a missing check to avoid NULL dereference Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 254/779] drm/shmem-helper: Unexport drm_gem_shmem_create_with_handle() Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 255/779] drm/shmem-helper: Export dedicated wrappers for GEM object functions Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 256/779] drm/shmem-helper: Pass GEM shmem object in public interfaces Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 257/779] drm/virtio: Fix NULL vs IS_ERR checking in virtio_gpu_object_shmem_init Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 258/779] drm: adv7511: override i2c address of cec before accessing it Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 259/779] crypto: sun8i-ss - do not allocate memory when handling hash requests Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 260/779] crypto: sun8i-ss - fix error codes in allocate_flows() Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 261/779] net: fix sk_wmem_schedule() and sk_rmem_schedule() errors Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 262/779] can: netlink: allow configuring of fixed bit rates without need for do_set_bittiming callback Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 263/779] can: netlink: allow configuring of fixed data bit rates without need for do_set_data_bittiming callback Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 264/779] i2c: Fix a potential use after free Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 265/779] crypto: sun8i-ss - fix infinite loop in sun8i_ss_setup_ivs() Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 266/779] media: atmel: atmel-sama7g5-isc: fix warning in configs without OF Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 267/779] media: tw686x: Register the irq at the end of probe Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 268/779] media: imx-jpeg: Correct some definition according specification Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 269/779] media: imx-jpeg: Leave a blank space before the configuration data Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 270/779] media: imx-jpeg: Add pm-runtime support for imx-jpeg Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 271/779] media: imx-jpeg: use NV12M to represent non contiguous NV12 Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 272/779] media: imx-jpeg: Set V4L2_BUF_FLAG_LAST at eos Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 273/779] media: imx-jpeg: Refactor function mxc_jpeg_parse Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 274/779] media: imx-jpeg: Identify and handle precision correctly Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 275/779] media: imx-jpeg: Handle source change in a function Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 276/779] media: imx-jpeg: Support dynamic resolution change Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 277/779] media: imx-jpeg: Align upwards buffer size Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 278/779] media: imx-jpeg: Implement drain using v4l2-mem2mem helpers Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 279/779] ath9k: fix use-after-free in ath9k_hif_usb_rx_cb Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 280/779] wifi: iwlegacy: 4965: fix potential off-by-one overflow in il4965_rs_fill_link_cmd() Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 281/779] drm/radeon: fix incorrrect SPDX-License-Identifiers Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 282/779] rcutorture: Warn on individual rcu_torture_init() error conditions Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 283/779] rcutorture: Dont cpuhp_remove_state() if cpuhp_setup_state() failed Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 284/779] rcutorture: Fix ksoftirqd boosting timing and iteration Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 285/779] test_bpf: fix incorrect netdev features Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 286/779] crypto: ccp - During shutdown, check SEV data pointer before using Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 287/779] drm: bridge: adv7511: Add check for mipi_dsi_driver_register Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 288/779] media: imx-jpeg: Disable slot interrupt when frame done Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 289/779] drm/mcde: Fix refcount leak in mcde_dsi_bind Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 290/779] media: hdpvr: fix error value returns in hdpvr_read Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 291/779] media: v4l2-mem2mem: prevent pollerr when last_buffer_dequeued is set Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 292/779] media: driver/nxp/imx-jpeg: fix a unexpected return value problem Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 293/779] media: tw686x: Fix memory leak in tw686x_video_init Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 294/779] drm/vc4: plane: Remove subpixel positioning check Greg Kroah-Hartman
2022-08-15 17:58 ` [PATCH 5.15 295/779] drm/vc4: plane: Fix margin calculations for the right/bottom edges Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 296/779] drm/bridge: Add a function to abstract away panels Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 297/779] drm/vc4: dsi: Switch to devm_drm_of_get_bridge Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 298/779] drm/vc4: Use of_device_get_match_data() Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 299/779] drm/vc4: dsi: Release workaround buffer and DMA Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 300/779] drm/vc4: dsi: Correct DSI divider calculations Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 301/779] drm/vc4: dsi: Correct pixel order for DSI0 Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 302/779] drm/vc4: dsi: Register dsi0 as the correct vc4 encoder type Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 303/779] drm/vc4: dsi: Fix dsi0 interrupt support Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 304/779] drm/vc4: dsi: Add correct stop condition to vc4_dsi_encoder_disable iteration Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 305/779] drm/vc4: hdmi: Fix HPD GPIO detection Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 306/779] drm/vc4: hdmi: Avoid full hdmi audio fifo writes Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 307/779] drm/vc4: hdmi: Reset HDMI MISC_CONTROL register Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 308/779] drm/vc4: hdmi: Fix timings for interlaced modes Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 309/779] drm/vc4: hdmi: Correct HDMI timing registers " Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 310/779] crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 311/779] selftests/xsk: Destroy BPF resources only when ctx refcount drops to 0 Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 312/779] drm/rockchip: vop: Dont crash for invalid duplicate_state() Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 313/779] drm/rockchip: Fix an error handling path rockchip_dp_probe() Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 314/779] drm/mediatek: dpi: Remove output format of YUV Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 315/779] drm/mediatek: dpi: Only enable dpi after the bridge is enabled Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 316/779] drm: bridge: sii8620: fix possible off-by-one Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 317/779] hinic: Use the bitmap API when applicable Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 318/779] net: hinic: fix bug that ethtool get wrong stats Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 319/779] net: hinic: avoid kernel hung in hinic_get_stats64() Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 320/779] drm/msm/mdp5: Fix global state lock backoff Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 321/779] crypto: hisilicon/sec - dont sleep when in softirq Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 322/779] crypto: hisilicon - Kunpeng916 crypto driver " Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 323/779] media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 324/779] drm/msm: Avoid dirtyfb stalls on video mode displays (v2) Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 325/779] drm/msm/dpu: Fix for non-visible planes Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 326/779] mt76: mt76x02u: fix possible memory leak in __mt76x02u_mcu_send_msg Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 327/779] mt76: mt7615: do not update pm stats in case of error Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 328/779] ieee80211: add EHT 1K aggregation definitions Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 329/779] mt76: mt7921: fix aggregation subframes setting to HE max Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 330/779] mt76: mt7921: enlarge maximum VHT MPDU length to 11454 Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 331/779] mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init() Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 332/779] mediatek: mt76: eeprom: fix missing of_node_put() in mt76_find_power_limits_node() Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 333/779] skmsg: Fix invalid last sg check in sk_msg_recvmsg() Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 334/779] drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 335/779] tcp: make retransmitted SKB fit into the send window Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 336/779] libbpf: Fix the name of a reused map Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 337/779] selftests: timers: valid-adjtimex: build fix for newer toolchains Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 338/779] selftests: timers: clocksource-switch: fix passing errors from child Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 339/779] bpf: Fix subprog names in stack traces Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 340/779] fs: check FMODE_LSEEK to control internal pipe splicing Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 341/779] media: cedrus: h265: Fix flag name Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 342/779] media: hantro: postproc: Fix motion vector space size Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 343/779] media: hantro: Simplify postprocessor Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 344/779] media: hevc: Embedded indexes in RPS Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 345/779] media: staging: media: hantro: Fix typos Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 346/779] wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi() Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 347/779] wifi: p54: Fix an error handling path in p54spi_probe() Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 348/779] wifi: p54: add missing parentheses in p54_flush() Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 349/779] selftests/bpf: fix a test for snprintf() overflow Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 350/779] libbpf: fix an snprintf() overflow check Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 351/779] can: pch_can: do not report txerr and rxerr during bus-off Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 352/779] can: rcar_can: " Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 353/779] can: sja1000: " Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 354/779] can: hi311x: " Greg Kroah-Hartman
2022-08-15 17:59 ` [PATCH 5.15 355/779] can: sun4i_can: " Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 356/779] can: kvaser_usb_hydra: " Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 357/779] can: kvaser_usb_leaf: " Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 358/779] can: usb_8dev: " Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 359/779] can: error: specify the values of data[5..7] of CAN error frames Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 360/779] can: pch_can: pch_can_error(): initialize errc before using it Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 361/779] Bluetooth: hci_intel: Add check for platform_driver_register Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 362/779] i2c: cadence: Support PEC for SMBus block read Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 363/779] i2c: mux-gpmux: Add of_node_put() when breaking out of loop Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 364/779] wifi: wil6210: debugfs: fix uninitialized variable use in `wil_write_file_wmi()` Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 365/779] wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 366/779] wifi: libertas: Fix possible refcount leak in if_usb_probe() Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 367/779] media: cedrus: hevc: Add check for invalid timestamp Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 368/779] net/mlx5e: Remove WARN_ON when trying to offload an unsupported TLS cipher/version Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 369/779] net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 370/779] net/mlx5: Adjust log_max_qp to be 18 at most Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 371/779] crypto: hisilicon/hpre - dont use GFP_KERNEL to alloc mem during softirq Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 372/779] crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 373/779] crypto: hisilicon/sec - fix auth key size error Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 374/779] inet: add READ_ONCE(sk->sk_bound_dev_if) in INET_MATCH() Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 375/779] ipv6: add READ_ONCE(sk->sk_bound_dev_if) in INET6_MATCH() Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 376/779] net: allow unbound socket for packets in VRF when tcp_l3mdev_accept set Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 377/779] netdevsim: fib: Fix reference count leak on route deletion failure Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 378/779] wifi: rtw88: check the return value of alloc_workqueue() Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 379/779] iavf: Fix max_rate limiting Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 380/779] iavf: Fix tc qdisc show listing too many queues Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 381/779] netdevsim: Avoid allocation warnings triggered from user space Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 382/779] net: rose: fix netdev reference changes Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 383/779] net: ionic: fix error check for vlan flags in ionic_set_nic_features() Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 384/779] dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 385/779] net: usb: make USB_RTL8153_ECM non user configurable Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 386/779] wireguard: ratelimiter: use hrtimer in selftest Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 387/779] wireguard: allowedips: dont corrupt stack when detecting overflow Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 388/779] HID: amd_sfh: Dont show client init failed as error when discovery fails Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 389/779] clk: renesas: r9a06g032: Fix UART clkgrp bitsel Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 390/779] mtd: maps: Fix refcount leak in of_flash_probe_versatile Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 391/779] mtd: maps: Fix refcount leak in ap_flash_init Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 392/779] mtd: rawnand: meson: Fix a potential double free issue Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 393/779] of: check previous kernels ima-kexec-buffer against memory bounds Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 394/779] scsi: qla2xxx: edif: Reduce Initiator-Initiator thrashing Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 395/779] scsi: qla2xxx: edif: Fix potential stuck session in sa update Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 396/779] scsi: qla2xxx: edif: Reduce connection thrash Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 397/779] scsi: qla2xxx: edif: Fix inconsistent check of db_flags Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 398/779] scsi: qla2xxx: edif: Synchronize NPIV deletion with authentication application Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 399/779] scsi: qla2xxx: edif: Add retry for ELS passthrough Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 400/779] scsi: qla2xxx: edif: Fix n2n discovery issue with secure target Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 401/779] scsi: qla2xxx: edif: Fix n2n login retry for secure device Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 402/779] KVM: SVM: Unwind "speculative" RIP advancement if INTn injection "fails" Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 403/779] KVM: SVM: Stuff next_rip on emulated INT3 injection if NRIPS is supported Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 404/779] phy: samsung: exynosautov9-ufs: correct TSRV register configurations Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 405/779] PCI: microchip: Fix refcount leak in mc_pcie_init_irq_domains() Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 406/779] PCI: tegra194: Fix PM error handling in tegra_pcie_config_ep() Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 407/779] HID: cp2112: prevent a buffer overflow in cp2112_xfer() Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 408/779] mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 409/779] mtd: partitions: Fix refcount leak in parse_redboot_of Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 410/779] mtd: parsers: ofpart: Fix refcount leak in bcm4908_partitions_fw_offset Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 411/779] mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()s error path Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 412/779] PCI: mediatek-gen3: Fix refcount leak in mtk_pcie_init_irq_domains() Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 413/779] fpga: altera-pr-ip: fix unsigned comparison with less than zero Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 414/779] usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe Greg Kroah-Hartman
2022-08-15 18:00 ` [PATCH 5.15 415/779] usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 416/779] usb: gadget: tegra-xudc: Fix error check in tegra_xudc_powerdomain_init() Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 417/779] usb: xhci: tegra: Fix error check Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 418/779] netfilter: xtables: Bring SPDX identifier back Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 419/779] scsi: qla2xxx: edif: Send LOGO for unexpected IKE message Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 420/779] scsi: qla2xxx: edif: Reduce disruption due to multiple app start Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 421/779] scsi: qla2xxx: edif: Fix no login after " Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 422/779] scsi: qla2xxx: edif: Tear down session if keys have been removed Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 423/779] scsi: qla2xxx: edif: Fix session thrash Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 424/779] scsi: qla2xxx: edif: Fix no logout on delete for N2N Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 425/779] iio: accel: bma400: Fix the scale min and max macro values Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 426/779] platform/chrome: cros_ec: Always expose last resume result Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 427/779] iio: accel: bma400: Reordering of header files Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 428/779] clk: mediatek: reset: Fix written reset bit offset Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 429/779] lib/test_hmm: avoid accessing uninitialized pages Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 430/779] memremap: remove support for external pgmap refcounts Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 431/779] mm/memremap: fix memunmap_pages() race with get_dev_pagemap() Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 432/779] KVM: Dont set Accessed/Dirty bits for ZERO_PAGE Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 433/779] mwifiex: Ignore BTCOEX events from the 88W8897 firmware Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 434/779] mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 435/779] scsi: iscsi: Allow iscsi_if_stop_conn() to be called from kernel Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 436/779] scsi: iscsi: Add helper to remove a session from the kernel Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 437/779] scsi: iscsi: Fix session removal on shutdown Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 438/779] dmaengine: dw-edma: Fix eDMA Rd/Wr-channels and DMA-direction semantics Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 439/779] mtd: dataflash: Add SPI ID table Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 440/779] clk: qcom: camcc-sm8250: Fix halt on boot by reducing drivers init level Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 441/779] misc: rtsx: Fix an error handling path in rtsx_pci_probe() Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 442/779] driver core: fix potential deadlock in __driver_attach Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 443/779] clk: qcom: clk-krait: unlock spin after mux completion Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 444/779] clk: qcom: gcc-msm8939: Add missing SYSTEM_MM_NOC_BFDCD_CLK_SRC Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 445/779] clk: qcom: gcc-msm8939: Fix bimc_ddr_clk_src rcgr base address Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 446/779] clk: qcom: gcc-msm8939: Add missing system_mm_noc_bfdcd_clk_src Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 447/779] clk: qcom: gcc-msm8939: Point MM peripherals to system_mm_noc clock Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 448/779] usb: host: xhci: use snprintf() in xhci_decode_trb() Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 449/779] RDMA/rxe: Fix deadlock in rxe_do_local_ops() Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 450/779] clk: qcom: ipq8074: fix NSS core PLL-s Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 451/779] clk: qcom: ipq8074: SW workaround for UBI32 PLL lock Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 452/779] clk: qcom: ipq8074: fix NSS port frequency tables Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 453/779] clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 454/779] clk: qcom: camcc-sdm845: Fix topology around titan_top power domain Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 455/779] clk: qcom: camcc-sm8250: " Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 456/779] clk: qcom: clk-rcg2: Fail Duty-Cycle configuration if MND divider is not enabled Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 457/779] clk: qcom: clk-rcg2: Make sure to not write d=0 to the NMD register Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 458/779] mm/mempolicy: fix get_nodes out of bound access Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 459/779] PCI: dwc: Stop link on host_init errors and de-initialization Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 460/779] PCI: dwc: Add unroll iATU space support to dw_pcie_disable_atu() Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 461/779] PCI: dwc: Disable outbound windows only for controllers using iATU Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 462/779] PCI: dwc: Set INCREASE_REGION_SIZE flag based on limit address Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 463/779] PCI: dwc: Deallocate EPC memory on dw_pcie_ep_init() errors Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 464/779] PCI: dwc: Always enable CDM check if "snps,enable-cdm-check" exists Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 465/779] soundwire: bus_type: fix remove and shutdown support Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 466/779] soundwire: revisit driver bind/unbind and callbacks Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 467/779] KVM: arm64: Dont return from void function Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 468/779] dmaengine: sf-pdma: Add multithread support for a DMA channel Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 469/779] PCI: endpoint: Dont stop controller when unbinding endpoint function Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 470/779] scsi: qla2xxx: Check correct variable in qla24xx_async_gffid() Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 471/779] intel_th: Fix a resource leak in an error handling path Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 472/779] intel_th: msu-sink: Potential dereference of null pointer Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 473/779] intel_th: msu: Fix vmalloced buffers Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 474/779] binder: fix redefinition of seq_file attributes Greg Kroah-Hartman
2022-08-15 18:01 ` [PATCH 5.15 475/779] staging: rtl8192u: Fix sleep in atomic context bug in dm_fsync_timer_callback Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 476/779] mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 477/779] mmc: mxcmmc: Silence a clang warning Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 478/779] mmc: renesas_sdhi: Get the reset handle early in the probe Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 479/779] memstick/ms_block: Fix some incorrect memory allocation Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 480/779] memstick/ms_block: Fix a memory leak Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 481/779] mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 482/779] of: device: Fix missing of_node_put() in of_dma_set_restricted_buffer Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 483/779] mmc: block: Add single read for 4k sector cards Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 484/779] KVM: s390: pv: leak the topmost page table when destroy fails Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 485/779] PCI/portdrv: Dont disable AER reporting in get_port_device_capability() Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 486/779] PCI: qcom: Set up rev 2.1.0 PARF_PHY before enabling clocks Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 487/779] scsi: smartpqi: Fix DMA direction for RAID requests Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 488/779] xtensa: iss/network: provide release() callback Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 489/779] xtensa: iss: fix handling error cases in iss_net_configure() Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 490/779] usb: gadget: udc: amd5536 depends on HAS_DMA Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 491/779] usb: aspeed-vhub: Fix refcount leak bug in ast_vhub_init_desc() Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 492/779] usb: dwc3: core: Deprecate GCTL.CORESOFTRESET Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 493/779] usb: dwc3: core: Do not perform GCTL_CORE_SOFTRESET during bootup Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 494/779] usb: dwc3: qcom: fix missing optional irq warnings Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 495/779] eeprom: idt_89hpesx: uninitialized data in idt_dbgfs_csr_write() Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 496/779] phy: stm32: fix error return in stm32_usbphyc_phy_init Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 497/779] interconnect: imx: fix max_node_id Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 498/779] um: random: Dont initialise hwrng struct with zero Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 499/779] RDMA/irdma: Fix a window for use-after-free Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 500/779] RDMA/irdma: Fix VLAN connection with wildcard address Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 501/779] RDMA/irdma: Fix setting of QP context err_rq_idx_valid field Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 502/779] RDMA/rtrs-srv: Fix modinfo output for stringify Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 503/779] RDMA/rtrs: Fix warning when use poll mode on client side Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 504/779] RDMA/rtrs: Replace duplicate check with is_pollqueue helper Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 505/779] RDMA/rtrs: Introduce destroy_cq helper Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 506/779] RDMA/rtrs: Do not allow sessname to contain special symbols / and Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 507/779] RDMA/rtrs: Rename rtrs_sess to rtrs_path Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 508/779] RDMA/rtrs-srv: Rename rtrs_srv_sess to rtrs_srv_path Greg Kroah-Hartman
2022-08-15 18:02 ` Greg Kroah-Hartman [this message]
2022-08-15 18:02 ` [PATCH 5.15 510/779] RDMA/rtrs-clt: Replace list_next_or_null_rr_rcu with an inline function Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 511/779] RDMA/qedr: Fix potential memory leak in __qedr_alloc_mr() Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 512/779] RDMA/hns: Fix incorrect clearing of interrupt status register Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 513/779] RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 514/779] iio: cros: Register FIFO callback after sensor is registered Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 515/779] clk: qcom: gcc-msm8939: Fix weird field spacing in ftbl_gcc_camss_cci_clk Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 516/779] RDMA/hfi1: fix potential memory leak in setup_base_ctxt() Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 517/779] gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data() Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 518/779] HID: mcp2221: prevent a buffer overflow in mcp_smbus_write() Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 519/779] HID: amd_sfh: Add NULL check for hid device Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 520/779] dmaengine: imx-dma: Cast of_device_get_match_data() with (uintptr_t) Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 521/779] scripts/gdb: lx-dmesg: read records individually Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 522/779] scripts/gdb: fix lx-dmesg on 32 bits arch Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 523/779] RDMA/rxe: Fix mw bind to allow any consumer key portion Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 524/779] mmc: cavium-octeon: Add of_node_put() when breaking out of loop Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 525/779] mmc: cavium-thunderx: " Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 526/779] HID: alps: Declare U1_UNICORN_LEGACY support Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 527/779] RDMA/rxe: For invalidate compare according to set keys in mr Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 528/779] PCI: tegra194: Fix Root Port interrupt handling Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 529/779] PCI: tegra194: Fix link up retry sequence Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 530/779] HID: amd_sfh: Handle condition of "no sensors" Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 531/779] USB: serial: fix tty-port initialized comments Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 532/779] usb: cdns3: change place of priv_ep assignment in cdns3_gadget_ep_dequeue(), cdns3_gadget_ep_enable() Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 533/779] mtd: spi-nor: fix spi_nor_spimem_setup_op() call in spi_nor_erase_{sector,chip}() Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 534/779] KVM: nVMX: Set UMIP bit CR4_FIXED1 MSR when emulating UMIP Greg Kroah-Hartman
2022-08-15 18:02 ` [PATCH 5.15 535/779] platform/olpc: Fix uninitialized data in debugfs write Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 536/779] RDMA/srpt: Duplicate port name members Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 537/779] RDMA/srpt: Introduce a reference count in struct srpt_device Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 538/779] RDMA/srpt: Fix a use-after-free Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 539/779] android: binder: stop saving a pointer to the VMA Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 540/779] mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 541/779] selftests: kvm: set rax before vmcall Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 542/779] of/fdt: declared return type does not match actual return type Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 543/779] RDMA/mlx5: Add missing check for return value in get namespace flow Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 544/779] RDMA/rxe: Add memory barriers to kernel queues Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 545/779] RDMA/rxe: Remove the is_user members of struct rxe_sq/rxe_rq/rxe_srq Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 546/779] RDMA/rxe: Fix error unwind in rxe_create_qp() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 547/779] block/rnbd-srv: Set keep_id to true after mutex_trylock Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 548/779] null_blk: fix ida error handling in null_add_dev() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 549/779] nvme: use command_id instead of req->tag in trace_nvme_complete_rq() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 550/779] nvme: define compat_ioctl again to unbreak 32-bit userspace Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 551/779] nvme: disable namespace access for unsupported metadata Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 552/779] nvme: dont return an error from nvme_configure_metadata Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 553/779] nvme: catch -ENODEV from nvme_revalidate_zones again Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 554/779] block/bio: remove duplicate append pages code Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 555/779] block: ensure iov_iter advances for added pages Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 556/779] jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 557/779] ext4: recover csum seed of tmp_inode after migrating to extents Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 558/779] jbd2: fix assertion jh->b_frozen_data == NULL failure when journal aborted Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 559/779] usb: cdns3: Dont use priv_dev uninitialized in cdns3_gadget_ep_enable() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 560/779] opp: Fix error check in dev_pm_opp_attach_genpd() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 561/779] ASoC: cros_ec_codec: Fix refcount leak in cros_ec_codec_platform_probe Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 562/779] ASoC: samsung: Fix error handling in aries_audio_probe Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 563/779] ASoC: imx-audmux: Silence a clang warning Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 564/779] ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe Greg Kroah-Hartman
2022-08-19 13:16 ` Pavel Machek
2022-08-15 18:03 ` [PATCH 5.15 565/779] ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe Greg Kroah-Hartman
2022-08-19 13:14 ` Pavel Machek
2022-08-15 18:03 ` [PATCH 5.15 566/779] ASoC: codecs: da7210: add check for i2c_add_driver Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 567/779] ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 568/779] serial: 8250: Export ICR access helpers for internal use Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 569/779] serial: 8250: dma: Allow driver operations before starting DMA transfers Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 570/779] serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 571/779] ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 572/779] ASoC: codecs: wcd9335: " Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 573/779] rpmsg: char: Add mutex protection for rpmsg_eptdev_open() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 574/779] rpmsg: mtk_rpmsg: Fix circular locking dependency Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 575/779] remoteproc: k3-r5: Fix refcount leak in k3_r5_cluster_of_init Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 576/779] selftests/livepatch: better synchronize test_klp_callbacks_busy Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 577/779] profiling: fix shift too large makes kernel panic Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 578/779] remoteproc: imx_rproc: Fix refcount leak in imx_rproc_addr_init Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 579/779] ASoC: samsung: h1940_uda1380: include proepr GPIO consumer header Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 580/779] powerpc/perf: Optimize clearing the pending PMI and remove WARN_ON for PMI check in power_pmu_disable Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 581/779] ASoC: samsung: change gpiod_speaker_power and rx1950_audio from global to static variables Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 582/779] tty: n_gsm: Delete gsmtty open SABM frame when config requester Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 583/779] tty: n_gsm: fix user open not possible at responder until initiator open Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 584/779] tty: n_gsm: fix tty registration before control channel open Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 585/779] tty: n_gsm: fix wrong queuing behavior in gsm_dlci_data_output() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 586/779] tty: n_gsm: fix missing timer to handle stalled links Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 587/779] tty: n_gsm: fix non flow control frames during mux flow off Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 588/779] tty: n_gsm: fix packet re-transmission without open control channel Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 589/779] tty: n_gsm: fix race condition in gsmld_write() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 590/779] tty: n_gsm: fix resource allocation order in gsm_activate_mux() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 591/779] ASoC: qcom: Fix missing of_node_put() in asoc_qcom_lpass_cpu_platform_probe() Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 592/779] ASoC: imx-card: Fix DSD/PDM mclk frequency Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 593/779] remoteproc: qcom: wcnss: Fix handling of IRQs Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 594/779] vfio/ccw: Do not change FSM state in subchannel event Greg Kroah-Hartman
2022-08-15 18:03 ` [PATCH 5.15 595/779] serial: 8250_fsl: Dont report FE, PE and OE twice Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 596/779] tty: n_gsm: fix wrong T1 retry count handling Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 597/779] tty: n_gsm: fix DM command Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 598/779] tty: n_gsm: fix missing corner cases in gsmld_poll() Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 599/779] MIPS: vdso: Utilize __pa() for gic_pfn Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 600/779] swiotlb: fail map correctly with failed io_tlb_default_mem Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 601/779] ASoC: mt6359: Fix refcount leak bug Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 602/779] serial: 8250_bcm7271: Save/restore RTS in suspend/resume Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 603/779] iommu/exynos: Handle failed IOMMU device registration properly Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 604/779] 9p: fix a bunch of checkpatch warnings Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 605/779] 9p: Drop kref usage Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 606/779] 9p: Add client parameter to p9_req_put() Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 607/779] net: 9p: fix refcount leak in p9_read_work() error handling Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 608/779] MIPS: Fixed __debug_virt_addr_valid() Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 609/779] rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 610/779] kfifo: fix kfifo_to_user() return type Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 611/779] lib/smp_processor_id: fix imbalanced instrumentation_end() call Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 612/779] proc: fix a dentry lock race between release_task and lookup Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 613/779] remoteproc: qcom: pas: Check if coredump is enabled Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 614/779] remoteproc: sysmon: Wait for SSCTL service to come up Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 615/779] mfd: t7l66xb: Drop platform disable callback Greg Kroah-Hartman
2022-08-19 13:28 ` Pavel Machek
2022-08-15 18:04 ` [PATCH 5.15 616/779] mfd: max77620: Fix refcount leak in max77620_initialise_fps Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 617/779] iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 618/779] perf tools: Fix dso_id inode generation comparison Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 619/779] s390/dump: fix old lowcore virtual vs physical address confusion Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 620/779] s390/maccess: fix semantics of memcpy_real() and its callers Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 621/779] s390/crash: fix incorrect number of bytes to copy to user space Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 622/779] s390/zcore: fix race when reading from hardware system area Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 623/779] ASoC: fsl_asrc: force cast the asrc_format type Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 624/779] ASoC: fsl-asoc-card: " Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 625/779] ASoC: fsl_easrc: use snd_pcm_format_t type for sample_format Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 626/779] ASoC: imx-card: use snd_pcm_format_t type for asrc_format Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 627/779] ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp() Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 628/779] fuse: Remove the control interface for virtio-fs Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 629/779] ASoC: audio-graph-card: Add of_node_put() in fail path Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 630/779] watchdog: sp5100_tco: Fix a memory leak of EFCH MMIO resource Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 631/779] watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe() Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 632/779] video: fbdev: amba-clcd: Fix refcount leak bugs Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 633/779] video: fbdev: sis: fix typos in SiS_GetModeID() Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 634/779] ASoC: mchp-spdifrx: disable end of block interrupt on failures Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 635/779] powerpc/32: Call mmu_mark_initmem_nx() regardless of data block mapping Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 636/779] powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32 Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 637/779] powerpc/iommu: Fix iommu_table_in_use for a small default DMA window case Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 638/779] powerpc/pci: Prefer PCI domain assignment via DT linux,pci-domain and alias Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 639/779] tty: serial: fsl_lpuart: correct the count of break characters Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 640/779] s390/dump: fix os_info virtual vs physical address confusion Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 641/779] s390/smp: cleanup target CPU callback starting Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 642/779] s390/smp: cleanup control register update routines Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 643/779] s390/maccess: rework absolute lowcore accessors Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 644/779] s390/smp: enforce lowcore protection on CPU restart Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 645/779] f2fs: fix to remove F2FS_COMPR_FL and tag F2FS_NOCOMP_FL at the same time Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 646/779] powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 647/779] powerpc/xive: Fix refcount leak in xive_get_max_prio Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 648/779] powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 649/779] perf symbol: Fail to read phdr workaround Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 650/779] kprobes: Forbid probing on trampoline and BPF code areas Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 651/779] x86/bus_lock: Dont assume the init value of DEBUGCTLMSR.BUS_LOCK_DETECT to be zero Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 652/779] powerpc/pci: Fix PHB numbering when using opal-phbid Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 653/779] genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 654/779] scripts/faddr2line: Fix vmlinux detection on arm64 Greg Kroah-Hartman
2022-08-15 18:04 ` [PATCH 5.15 655/779] sched/deadline: Merge dl_task_can_attach() and dl_cpu_busy() Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 656/779] sched, cpuset: Fix dl_cpu_busy() panic due to empty cs->cpus_allowed Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 657/779] x86/numa: Use cpumask_available instead of hardcoded NULL check Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 658/779] video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock() Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 659/779] tools/thermal: Fix possible path truncations Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 660/779] sched: Fix the check of nr_running at queue wakelist Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 661/779] sched: Remove the limitation of WF_ON_CPU on wakelist if wakee cpu is idle Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 662/779] sched/core: Do not requeue task on CPU excluded from cpus_mask Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 663/779] x86/entry: Build thunk_$(BITS) only if CONFIG_PREEMPTION=y Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 664/779] f2fs: allow compression for mmap files in compress_mode=user Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 665/779] f2fs: do not allow to decompress files have FI_COMPRESS_RELEASED Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 666/779] video: fbdev: vt8623fb: Check the size of screen before memset_io() Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 667/779] video: fbdev: arkfb: " Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 668/779] video: fbdev: s3fb: " Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 669/779] scsi: ufs: core: Correct ufshcd_shutdown() flow Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 670/779] scsi: zfcp: Fix missing auto port scan and thus missing target ports Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 671/779] scsi: qla2xxx: Fix imbalance vha->vref_count Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 672/779] scsi: qla2xxx: Fix discovery issues in FC-AL topology Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 673/779] scsi: qla2xxx: Turn off multi-queue for 8G adapters Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 674/779] scsi: qla2xxx: Fix crash due to stale SRB access around I/O timeouts Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 675/779] scsi: qla2xxx: Fix excessive I/O error messages by default Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 676/779] scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 677/779] scsi: qla2xxx: Wind down adapter after PCIe error Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 678/779] scsi: qla2xxx: Fix losing FCP-2 targets on long port disable with I/Os Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 679/779] scsi: qla2xxx: Fix losing target when it reappears during delete Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 680/779] scsi: qla2xxx: Fix losing FCP-2 targets during port perturbation tests Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 681/779] x86/bugs: Enable STIBP for IBPB mitigated RETBleed Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 682/779] ftrace/x86: Add back ftrace_expected assignment Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 683/779] x86/kprobes: Update kcb status flag after singlestepping Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 684/779] x86/olpc: fix logical not is only applied to the left hand side Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 685/779] SMB3: fix lease break timeout when multiple deferred close handles for the same file Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 686/779] posix-cpu-timers: Cleanup CPU timers before freeing them during exec Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 687/779] Input: gscps2 - check return value of ioremap() in gscps2_probe() Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 688/779] __follow_mount_rcu(): verify that mount_lock remains unchanged Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 689/779] spmi: trace: fix stack-out-of-bound access in SPMI tracing functions Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 690/779] drm/mediatek: Allow commands to be sent during video mode Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 691/779] drm/mediatek: Keep dsi as LP00 before dcs cmds transfer Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 692/779] crypto: blake2s - remove shash module Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 693/779] drm/dp/mst: Read the extended DPCD capabilities during system resume Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 694/779] drm/vc4: drv: Adopt the dma configuration from the HVS or V3D component Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 695/779] usbnet: smsc95xx: Dont clear read-only PHY interrupt Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 696/779] usbnet: smsc95xx: Avoid link settings race on interrupt reception Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 697/779] usbnet: smsc95xx: Forward PHY interrupts to PHY driver to avoid polling Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 698/779] usbnet: smsc95xx: Fix deadlock on runtime resume Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 699/779] firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 700/779] scsi: lpfc: Fix EEH support for NVMe I/O Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 701/779] scsi: lpfc: SLI path split: Refactor lpfc_iocbq Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 702/779] scsi: lpfc: SLI path split: Refactor fast and slow paths to native SLI4 Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 703/779] scsi: lpfc: SLI path split: Refactor SCSI paths Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 704/779] scsi: lpfc: Remove extra atomic_inc on cmd_pending in queuecommand after VMID Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 705/779] intel_th: pci: Add Meteor Lake-P support Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 706/779] intel_th: pci: Add Raptor Lake-S PCH support Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 707/779] intel_th: pci: Add Raptor Lake-S CPU support Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 708/779] KVM: set_msr_mce: Permit guests to ignore single-bit ECC errors Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 709/779] KVM: x86: Signal #GP, not -EPERM, on bad WRMSR(MCi_CTL/STATUS) Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 710/779] iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE) Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 711/779] PCI/AER: Iterate over error counters instead of error strings Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 712/779] PCI: qcom: Power on PHY before IPQ8074 DBI register accesses Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 713/779] serial: 8250_pci: Refactor the loop in pci_ite887x_init() Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 714/779] serial: 8250_pci: Replace dev_*() by pci_*() macros Greg Kroah-Hartman
2022-08-15 18:05 ` [PATCH 5.15 715/779] serial: 8250: Fold EndRun device support into OxSemi Tornado code Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 716/779] serial: 8250: Add proper clock handling for OxSemi PCIe devices Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 717/779] tty: 8250: Add support for Brainboxes PX cards Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 718/779] dm writecache: set a default MAX_WRITEBACK_JOBS Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 719/779] kexec, KEYS, s390: Make use of built-in and secondary keyring for signature verification Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 720/779] dm thin: fix use-after-free crash in dm_sm_register_threshold_callback Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 721/779] net/9p: Initialize the iounit field during fid creation Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 722/779] ARM: remove some dead code Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 723/779] timekeeping: contribute wall clock to rng on time change Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 724/779] locking/csd_lock: Change csdlock_debug from early_param to __setup Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 725/779] block: remove the struct blk_queue_ctx forward declaration Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 726/779] block: dont allow the same type rq_qos add more than once Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 727/779] btrfs: ensure pages are unlocked on cow_file_range() failure Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 728/779] btrfs: reset block group chunk force if we have to wait Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 729/779] btrfs: properly flag filesystem with BTRFS_FEATURE_INCOMPAT_BIG_METADATA Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 730/779] ACPI: CPPC: Do not prevent CPPC from working in the future Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 731/779] powerpc/powernv/kvm: Use darn for H_RANDOM on Power9 Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 732/779] KVM: x86/pmu: Introduce the ctrl_mask value for fixed counter Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 733/779] KVM: VMX: Mark all PERF_GLOBAL_(OVF)_CTRL bits reserved if theres no vPMU Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 734/779] KVM: x86/pmu: Ignore pmu->global_ctrl check if vPMU doesnt support global_ctrl Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 735/779] KVM: VMX: Add helper to check if the guest PMU has PERF_GLOBAL_CTRL Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 736/779] KVM: nVMX: Attempt to load PERF_GLOBAL_CTRL on nVMX xfer iff it exists Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 737/779] dm raid: fix address sanitizer warning in raid_status Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 738/779] dm raid: fix address sanitizer warning in raid_resume Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 739/779] tracing: Add __rel_loc using trace event macros Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 740/779] tracing: Avoid -Warray-bounds warning for __rel_loc macro Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 741/779] ext4: update s_overhead_clusters in the superblock during an on-line resize Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 742/779] ext4: fix extent status tree race in writeback error recovery path Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 743/779] ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 744/779] ext4: fix use-after-free in ext4_xattr_set_entry Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 745/779] ext4: correct max_inline_xattr_value_size computing Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 746/779] ext4: correct the misjudgment in ext4_iget_extra_inode Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 747/779] ext4: fix warning in ext4_iomap_begin as race between bmap and write Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 748/779] ext4: check if directory block is within i_size Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 749/779] ext4: make sure ext4_append() always allocates new block Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 750/779] ext4: remove EA inode entry from mbcache on inode eviction Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 751/779] ext4: use kmemdup() to replace kmalloc + memcpy Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 752/779] ext4: unindent codeblock in ext4_xattr_block_set() Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 753/779] ext4: fix race when reusing xattr blocks Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 754/779] KEYS: asymmetric: enforce SM2 signature use pkey algo Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 755/779] tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 756/779] xen-blkback: fix persistent grants negotiation Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 757/779] xen-blkback: Apply feature_persistent parameter when connect Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 758/779] xen-blkfront: " Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 759/779] powerpc: Fix eh field when calling lwarx on PPC32 Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 760/779] tracing: Use a struct alignof to determine trace event field alignment Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 761/779] net_sched: cls_route: remove from list when handle is 0 Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 762/779] mac80211: fix a memory leak where sta_info is not freed Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 763/779] tcp: fix over estimation in sk_forced_mem_schedule() Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 764/779] crypto: lib/blake2s - reduce stack frame usage in self test Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 765/779] Revert "mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv" Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 766/779] Revert "s390/smp: enforce lowcore protection on CPU restart" Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 767/779] drm/bridge: tc358767: Fix (e)DP bridge endpoint parsing in dedicated function Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 768/779] net: phy: smsc: Disable Energy Detect Power-Down in interrupt mode Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 769/779] drm/vc4: change vc4_dma_range_matches from a global to static Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 770/779] tracing/perf: Avoid -Warray-bounds warning for __rel_loc macro Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 771/779] drm/msm: Fix dirtyfb refcounting Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 772/779] drm/meson: Fix refcount leak in meson_encoder_hdmi_init Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 773/779] io_uring: mem-account pbuf buckets Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 774/779] Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP" Greg Kroah-Hartman
2022-08-15 18:06 ` [PATCH 5.15 775/779] Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression Greg Kroah-Hartman
2022-08-15 18:07 ` [PATCH 5.15 776/779] drm/bridge: Move devm_drm_of_get_bridge to bridge/panel.c Greg Kroah-Hartman
2022-08-15 18:07 ` [PATCH 5.15 777/779] scsi: lpfc: Fix locking for lpfc_sli_iocbq_lookup() Greg Kroah-Hartman
2022-08-15 18:07 ` [PATCH 5.15 778/779] scsi: lpfc: Fix element offset in __lpfc_sli_release_iocbq_s4() Greg Kroah-Hartman
2022-08-15 18:07 ` [PATCH 5.15 779/779] scsi: lpfc: Resolve some cleanup issues following SLI path refactoring Greg Kroah-Hartman
2022-08-15 23:39 ` [PATCH 5.15 000/779] 5.15.61-rc1 review Shuah Khan
2022-08-16 7:58 ` Bagas Sanjaya
2022-08-16 8:41 ` Naresh Kamboju
2022-08-16 8:47 ` Pali Rohár
2022-08-16 12:21 ` Greg Kroah-Hartman
2022-08-16 11:34 ` Guenter Roeck
2022-08-16 12:17 ` Greg Kroah-Hartman
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=20220815180359.020085034@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=jgg@nvidia.com \
--cc=jinpu.wang@ionos.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=vaishali.thakkar@ionos.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: 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
Powered by JetHome