From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Sagi Grimberg <sagig@mellanox.com>,
Nicholas Bellinger <nab@linux-iscsi.org>
Subject: [PATCH 3.18 077/183] iser-target: Allocate PI contexts dynamically
Date: Sun, 25 Jan 2015 10:06:39 -0800 [thread overview]
Message-ID: <20150125180813.522849830@linuxfoundation.org> (raw)
In-Reply-To: <20150125180810.160428929@linuxfoundation.org>
3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Sagi Grimberg <sagig@mellanox.com>
commit 570db170f37715b7df23c95868169f3d9affa48c upstream.
This patch converts to allocate PI contexts dynamically in order
avoid a potentially bogus np->tpg_np and associated NULL pointer
dereference in isert_connect_request() during iser-target endpoint
shutdown with multiple network portals.
Also, there is really no need to allocate these at connection
establishment since it is not guaranteed that all the IOs on
that connection will be to a PI formatted device.
We can do it in a lazy fashion so the initial burst will have a
transient slow down, but very fast all IOs will allocate a PI
context.
Squashed:
iser-target: Centralize PI context handling code
Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/infiniband/ulp/isert/ib_isert.c | 267 ++++++++++++++++++--------------
drivers/infiniband/ulp/isert/ib_isert.h | 7
2 files changed, 158 insertions(+), 116 deletions(-)
--- a/drivers/infiniband/ulp/isert/ib_isert.c
+++ b/drivers/infiniband/ulp/isert/ib_isert.c
@@ -96,8 +96,7 @@ isert_query_device(struct ib_device *ib_
}
static int
-isert_conn_setup_qp(struct isert_conn *isert_conn, struct rdma_cm_id *cma_id,
- u8 protection)
+isert_conn_setup_qp(struct isert_conn *isert_conn, struct rdma_cm_id *cma_id)
{
struct isert_device *device = isert_conn->conn_device;
struct ib_qp_init_attr attr;
@@ -132,7 +131,7 @@ isert_conn_setup_qp(struct isert_conn *i
attr.cap.max_recv_sge = 1;
attr.sq_sig_type = IB_SIGNAL_REQ_WR;
attr.qp_type = IB_QPT_RC;
- if (protection)
+ if (device->pi_capable)
attr.create_flags |= IB_QP_CREATE_SIGNATURE_EN;
pr_debug("isert_conn_setup_qp cma_id->device: %p\n",
@@ -442,8 +441,68 @@ isert_conn_free_fastreg_pool(struct iser
}
static int
+isert_create_pi_ctx(struct fast_reg_descriptor *desc,
+ struct ib_device *device,
+ struct ib_pd *pd)
+{
+ struct ib_mr_init_attr mr_init_attr;
+ struct pi_context *pi_ctx;
+ int ret;
+
+ pi_ctx = kzalloc(sizeof(*desc->pi_ctx), GFP_KERNEL);
+ if (!pi_ctx) {
+ pr_err("Failed to allocate pi context\n");
+ return -ENOMEM;
+ }
+
+ pi_ctx->prot_frpl = ib_alloc_fast_reg_page_list(device,
+ ISCSI_ISER_SG_TABLESIZE);
+ if (IS_ERR(pi_ctx->prot_frpl)) {
+ pr_err("Failed to allocate prot frpl err=%ld\n",
+ PTR_ERR(pi_ctx->prot_frpl));
+ ret = PTR_ERR(pi_ctx->prot_frpl);
+ goto err_pi_ctx;
+ }
+
+ pi_ctx->prot_mr = ib_alloc_fast_reg_mr(pd, ISCSI_ISER_SG_TABLESIZE);
+ if (IS_ERR(pi_ctx->prot_mr)) {
+ pr_err("Failed to allocate prot frmr err=%ld\n",
+ PTR_ERR(pi_ctx->prot_mr));
+ ret = PTR_ERR(pi_ctx->prot_mr);
+ goto err_prot_frpl;
+ }
+ desc->ind |= ISERT_PROT_KEY_VALID;
+
+ memset(&mr_init_attr, 0, sizeof(mr_init_attr));
+ mr_init_attr.max_reg_descriptors = 2;
+ mr_init_attr.flags |= IB_MR_SIGNATURE_EN;
+ pi_ctx->sig_mr = ib_create_mr(pd, &mr_init_attr);
+ if (IS_ERR(pi_ctx->sig_mr)) {
+ pr_err("Failed to allocate signature enabled mr err=%ld\n",
+ PTR_ERR(pi_ctx->sig_mr));
+ ret = PTR_ERR(pi_ctx->sig_mr);
+ goto err_prot_mr;
+ }
+
+ desc->pi_ctx = pi_ctx;
+ desc->ind |= ISERT_SIG_KEY_VALID;
+ desc->ind &= ~ISERT_PROTECTED;
+
+ return 0;
+
+err_prot_mr:
+ ib_dereg_mr(desc->pi_ctx->prot_mr);
+err_prot_frpl:
+ ib_free_fast_reg_page_list(desc->pi_ctx->prot_frpl);
+err_pi_ctx:
+ kfree(desc->pi_ctx);
+
+ return ret;
+}
+
+static int
isert_create_fr_desc(struct ib_device *ib_device, struct ib_pd *pd,
- struct fast_reg_descriptor *fr_desc, u8 protection)
+ struct fast_reg_descriptor *fr_desc)
{
int ret;
@@ -462,62 +521,12 @@ isert_create_fr_desc(struct ib_device *i
ret = PTR_ERR(fr_desc->data_mr);
goto err_data_frpl;
}
- pr_debug("Create fr_desc %p page_list %p\n",
- fr_desc, fr_desc->data_frpl->page_list);
fr_desc->ind |= ISERT_DATA_KEY_VALID;
- if (protection) {
- struct ib_mr_init_attr mr_init_attr = {0};
- struct pi_context *pi_ctx;
-
- fr_desc->pi_ctx = kzalloc(sizeof(*fr_desc->pi_ctx), GFP_KERNEL);
- if (!fr_desc->pi_ctx) {
- pr_err("Failed to allocate pi context\n");
- ret = -ENOMEM;
- goto err_data_mr;
- }
- pi_ctx = fr_desc->pi_ctx;
-
- pi_ctx->prot_frpl = ib_alloc_fast_reg_page_list(ib_device,
- ISCSI_ISER_SG_TABLESIZE);
- if (IS_ERR(pi_ctx->prot_frpl)) {
- pr_err("Failed to allocate prot frpl err=%ld\n",
- PTR_ERR(pi_ctx->prot_frpl));
- ret = PTR_ERR(pi_ctx->prot_frpl);
- goto err_pi_ctx;
- }
-
- pi_ctx->prot_mr = ib_alloc_fast_reg_mr(pd, ISCSI_ISER_SG_TABLESIZE);
- if (IS_ERR(pi_ctx->prot_mr)) {
- pr_err("Failed to allocate prot frmr err=%ld\n",
- PTR_ERR(pi_ctx->prot_mr));
- ret = PTR_ERR(pi_ctx->prot_mr);
- goto err_prot_frpl;
- }
- fr_desc->ind |= ISERT_PROT_KEY_VALID;
-
- mr_init_attr.max_reg_descriptors = 2;
- mr_init_attr.flags |= IB_MR_SIGNATURE_EN;
- pi_ctx->sig_mr = ib_create_mr(pd, &mr_init_attr);
- if (IS_ERR(pi_ctx->sig_mr)) {
- pr_err("Failed to allocate signature enabled mr err=%ld\n",
- PTR_ERR(pi_ctx->sig_mr));
- ret = PTR_ERR(pi_ctx->sig_mr);
- goto err_prot_mr;
- }
- fr_desc->ind |= ISERT_SIG_KEY_VALID;
- }
- fr_desc->ind &= ~ISERT_PROTECTED;
+ pr_debug("Created fr_desc %p\n", fr_desc);
return 0;
-err_prot_mr:
- ib_dereg_mr(fr_desc->pi_ctx->prot_mr);
-err_prot_frpl:
- ib_free_fast_reg_page_list(fr_desc->pi_ctx->prot_frpl);
-err_pi_ctx:
- kfree(fr_desc->pi_ctx);
-err_data_mr:
- ib_dereg_mr(fr_desc->data_mr);
+
err_data_frpl:
ib_free_fast_reg_page_list(fr_desc->data_frpl);
@@ -525,7 +534,7 @@ err_data_frpl:
}
static int
-isert_conn_create_fastreg_pool(struct isert_conn *isert_conn, u8 pi_support)
+isert_conn_create_fastreg_pool(struct isert_conn *isert_conn)
{
struct fast_reg_descriptor *fr_desc;
struct isert_device *device = isert_conn->conn_device;
@@ -549,8 +558,7 @@ isert_conn_create_fastreg_pool(struct is
}
ret = isert_create_fr_desc(device->ib_device,
- isert_conn->conn_pd, fr_desc,
- pi_support);
+ isert_conn->conn_pd, fr_desc);
if (ret) {
pr_err("Failed to create fastreg descriptor err=%d\n",
ret);
@@ -581,7 +589,6 @@ isert_connect_request(struct rdma_cm_id
struct isert_device *device;
struct ib_device *ib_dev = cma_id->device;
int ret = 0;
- u8 pi_support;
spin_lock_bh(&np->np_thread_lock);
if (!np->enabled) {
@@ -681,15 +688,7 @@ isert_connect_request(struct rdma_cm_id
goto out_mr;
}
- pi_support = np->tpg_np->tpg->tpg_attrib.t10_pi;
- if (pi_support && !device->pi_capable) {
- pr_err("Protection information requested but not supported, "
- "rejecting connect request\n");
- ret = rdma_reject(cma_id, NULL, 0);
- goto out_mr;
- }
-
- ret = isert_conn_setup_qp(isert_conn, cma_id, pi_support);
+ ret = isert_conn_setup_qp(isert_conn, cma_id);
if (ret)
goto out_conn_dev;
@@ -1151,11 +1150,7 @@ isert_put_login_tx(struct iscsi_conn *co
if (login->login_complete) {
if (!conn->sess->sess_ops->SessionType &&
isert_conn->conn_device->use_fastreg) {
- /* Normal Session and fastreg is used */
- u8 pi_support = login->np->tpg_np->tpg->tpg_attrib.t10_pi;
-
- ret = isert_conn_create_fastreg_pool(isert_conn,
- pi_support);
+ ret = isert_conn_create_fastreg_pool(isert_conn);
if (ret) {
pr_err("Conn: %p failed to create"
" fastreg pool\n", isert_conn);
@@ -2771,10 +2766,10 @@ isert_set_prot_checks(u8 prot_checks)
}
static int
-isert_reg_sig_mr(struct isert_conn *isert_conn, struct se_cmd *se_cmd,
- struct fast_reg_descriptor *fr_desc,
- struct ib_sge *data_sge, struct ib_sge *prot_sge,
- struct ib_sge *sig_sge)
+isert_reg_sig_mr(struct isert_conn *isert_conn,
+ struct se_cmd *se_cmd,
+ struct isert_rdma_wr *rdma_wr,
+ struct fast_reg_descriptor *fr_desc)
{
struct ib_send_wr sig_wr, inv_wr;
struct ib_send_wr *bad_wr, *wr = NULL;
@@ -2804,13 +2799,13 @@ isert_reg_sig_mr(struct isert_conn *iser
memset(&sig_wr, 0, sizeof(sig_wr));
sig_wr.opcode = IB_WR_REG_SIG_MR;
sig_wr.wr_id = ISER_FASTREG_LI_WRID;
- sig_wr.sg_list = data_sge;
+ sig_wr.sg_list = &rdma_wr->ib_sg[DATA];
sig_wr.num_sge = 1;
sig_wr.wr.sig_handover.access_flags = IB_ACCESS_LOCAL_WRITE;
sig_wr.wr.sig_handover.sig_attrs = &sig_attrs;
sig_wr.wr.sig_handover.sig_mr = pi_ctx->sig_mr;
if (se_cmd->t_prot_sg)
- sig_wr.wr.sig_handover.prot = prot_sge;
+ sig_wr.wr.sig_handover.prot = &rdma_wr->ib_sg[PROT];
if (!wr)
wr = &sig_wr;
@@ -2824,34 +2819,93 @@ isert_reg_sig_mr(struct isert_conn *iser
}
fr_desc->ind &= ~ISERT_SIG_KEY_VALID;
- sig_sge->lkey = pi_ctx->sig_mr->lkey;
- sig_sge->addr = 0;
- sig_sge->length = se_cmd->data_length;
+ rdma_wr->ib_sg[SIG].lkey = pi_ctx->sig_mr->lkey;
+ rdma_wr->ib_sg[SIG].addr = 0;
+ rdma_wr->ib_sg[SIG].length = se_cmd->data_length;
if (se_cmd->prot_op != TARGET_PROT_DIN_STRIP &&
se_cmd->prot_op != TARGET_PROT_DOUT_INSERT)
/*
* We have protection guards on the wire
* so we need to set a larget transfer
*/
- sig_sge->length += se_cmd->prot_length;
+ rdma_wr->ib_sg[SIG].length += se_cmd->prot_length;
pr_debug("sig_sge: addr: 0x%llx length: %u lkey: %x\n",
- sig_sge->addr, sig_sge->length,
- sig_sge->lkey);
+ rdma_wr->ib_sg[SIG].addr, rdma_wr->ib_sg[SIG].length,
+ rdma_wr->ib_sg[SIG].lkey);
err:
return ret;
}
static int
+isert_handle_prot_cmd(struct isert_conn *isert_conn,
+ struct isert_cmd *isert_cmd,
+ struct isert_rdma_wr *wr)
+{
+ struct isert_device *device = isert_conn->conn_device;
+ struct se_cmd *se_cmd = &isert_cmd->iscsi_cmd->se_cmd;
+ int ret;
+
+ if (!wr->fr_desc->pi_ctx) {
+ ret = isert_create_pi_ctx(wr->fr_desc,
+ device->ib_device,
+ isert_conn->conn_pd);
+ if (ret) {
+ pr_err("conn %p failed to allocate pi_ctx\n",
+ isert_conn);
+ return ret;
+ }
+ }
+
+ if (se_cmd->t_prot_sg) {
+ ret = isert_map_data_buf(isert_conn, isert_cmd,
+ se_cmd->t_prot_sg,
+ se_cmd->t_prot_nents,
+ se_cmd->prot_length,
+ 0, wr->iser_ib_op, &wr->prot);
+ if (ret) {
+ pr_err("conn %p failed to map protection buffer\n",
+ isert_conn);
+ return ret;
+ }
+
+ memset(&wr->ib_sg[PROT], 0, sizeof(wr->ib_sg[PROT]));
+ ret = isert_fast_reg_mr(isert_conn, wr->fr_desc, &wr->prot,
+ ISERT_PROT_KEY_VALID, &wr->ib_sg[PROT]);
+ if (ret) {
+ pr_err("conn %p failed to fast reg mr\n",
+ isert_conn);
+ goto unmap_prot_cmd;
+ }
+ }
+
+ ret = isert_reg_sig_mr(isert_conn, se_cmd, wr, wr->fr_desc);
+ if (ret) {
+ pr_err("conn %p failed to fast reg mr\n",
+ isert_conn);
+ goto unmap_prot_cmd;
+ }
+ wr->fr_desc->ind |= ISERT_PROTECTED;
+
+ return 0;
+
+unmap_prot_cmd:
+ if (se_cmd->t_prot_sg)
+ isert_unmap_data_buf(isert_conn, &wr->prot);
+
+ return ret;
+}
+
+static int
isert_reg_rdma(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
struct isert_rdma_wr *wr)
{
struct se_cmd *se_cmd = &cmd->se_cmd;
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
struct isert_conn *isert_conn = conn->context;
- struct ib_sge data_sge;
- struct ib_send_wr *send_wr;
struct fast_reg_descriptor *fr_desc = NULL;
+ struct ib_send_wr *send_wr;
+ struct ib_sge *ib_sg;
u32 offset;
int ret = 0;
unsigned long flags;
@@ -2876,38 +2930,21 @@ isert_reg_rdma(struct iscsi_conn *conn,
}
ret = isert_fast_reg_mr(isert_conn, fr_desc, &wr->data,
- ISERT_DATA_KEY_VALID, &data_sge);
+ ISERT_DATA_KEY_VALID, &wr->ib_sg[DATA]);
if (ret)
goto unmap_cmd;
if (se_cmd->prot_op != TARGET_PROT_NORMAL) {
- struct ib_sge prot_sge, sig_sge;
-
- if (se_cmd->t_prot_sg) {
- ret = isert_map_data_buf(isert_conn, isert_cmd,
- se_cmd->t_prot_sg,
- se_cmd->t_prot_nents,
- se_cmd->prot_length,
- 0, wr->iser_ib_op, &wr->prot);
- if (ret)
- goto unmap_cmd;
-
- ret = isert_fast_reg_mr(isert_conn, fr_desc, &wr->prot,
- ISERT_PROT_KEY_VALID, &prot_sge);
- if (ret)
- goto unmap_prot_cmd;
- }
-
- ret = isert_reg_sig_mr(isert_conn, se_cmd, fr_desc,
- &data_sge, &prot_sge, &sig_sge);
+ ret = isert_handle_prot_cmd(isert_conn, isert_cmd, wr);
if (ret)
- goto unmap_prot_cmd;
+ goto unmap_cmd;
- fr_desc->ind |= ISERT_PROTECTED;
- memcpy(&wr->s_ib_sge, &sig_sge, sizeof(sig_sge));
- } else
- memcpy(&wr->s_ib_sge, &data_sge, sizeof(data_sge));
+ ib_sg = &wr->ib_sg[SIG];
+ } else {
+ ib_sg = &wr->ib_sg[DATA];
+ }
+ memcpy(&wr->s_ib_sge, ib_sg, sizeof(*ib_sg));
wr->ib_sge = &wr->s_ib_sge;
wr->send_wr_num = 1;
memset(&wr->s_send_wr, 0, sizeof(*send_wr));
@@ -2932,9 +2969,7 @@ isert_reg_rdma(struct iscsi_conn *conn,
}
return 0;
-unmap_prot_cmd:
- if (se_cmd->t_prot_sg)
- isert_unmap_data_buf(isert_conn, &wr->prot);
+
unmap_cmd:
if (fr_desc) {
spin_lock_irqsave(&isert_conn->conn_lock, flags);
--- a/drivers/infiniband/ulp/isert/ib_isert.h
+++ b/drivers/infiniband/ulp/isert/ib_isert.h
@@ -82,6 +82,12 @@ struct isert_data_buf {
enum dma_data_direction dma_dir;
};
+enum {
+ DATA = 0,
+ PROT = 1,
+ SIG = 2,
+};
+
struct isert_rdma_wr {
struct list_head wr_list;
struct isert_cmd *isert_cmd;
@@ -91,6 +97,7 @@ struct isert_rdma_wr {
int send_wr_num;
struct ib_send_wr *send_wr;
struct ib_send_wr s_send_wr;
+ struct ib_sge ib_sg[3];
struct isert_data_buf data;
struct isert_data_buf prot;
struct fast_reg_descriptor *fr_desc;
next prev parent reply other threads:[~2015-01-25 18:06 UTC|newest]
Thread overview: 175+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-25 18:05 [PATCH 3.18 000/183] 3.18.4-stable review Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 002/183] net/mlx4: Cache line CQE/EQE stride fixes Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 003/183] netlink: Always copy on mmap TX Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 004/183] netlink: Dont reorder loads/stores before marking mmap netlink frame as available Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 005/183] geneve: Remove socket and offload handlers at destruction Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 006/183] geneve: Fix races between socket add and release Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 007/183] xen-netback: support frontends without feature-rx-notify again Greg Kroah-Hartman
2015-01-25 21:05 ` John
2015-01-25 18:05 ` [PATCH 3.18 008/183] net: drop the packet when fails to do software segmentation or header check Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 009/183] in6: fix conflict with glibc Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 010/183] tg3: tg3_disable_ints using uninitialized mailbox value to disable interrupts Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 012/183] batman-adv: Unify fragment size calculation Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 013/183] batman-adv: avoid NULL dereferences and fix if check Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 014/183] net/mlx4_en: Doorbell is byteswapped in Little Endian archs Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 015/183] tcp6: dont move IP6CB before xfrm6_policy_check() Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 016/183] net: Fix stacked vlan offload features computation Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 017/183] net: Reset secmark when scrubbing packet Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 018/183] net/core: Handle csum for CHECKSUM_COMPLETE VXLAN forwarding Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 019/183] net: Generalize ndo_gso_check to ndo_features_check Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 020/183] net/mlx4_core: Correcly update the mtts offset in the MR re-reg flow Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 021/183] tcp: Do not apply TSO segment limit to non-TSO packets Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 022/183] xen-netback: fixing the propagation of the transmit shaper timeout Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 023/183] alx: fix alx_poll() Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 024/183] team: avoid possible underflow of count_pending value for notify_peers and mcast_rejoin Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 025/183] enic: fix rx skb checksum Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 026/183] drm/vmwgfx: Dont use memory accounting for kernel-side fence objects Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 027/183] drm/vmwgfx: Fix error printout on signals pending Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 028/183] drm/vmwgfx: Fix fence event code Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 029/183] drm/ttm: Avoid memory allocation from shrinker functions Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 030/183] drm/fb_helper: move deferred fb checking into restore mode (v2) Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 031/183] drm/dp: retry AUX transactions 32 times (v1.1) Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 032/183] drm/dp-mst: Remove branches before dropping the reference Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 033/183] drm/radeon: fix typo in CI dpm disable Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 034/183] drm/radeon: work around a hw bug in MGCG on CIK Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 036/183] drm/radeon: KV has three PPLLs (v2) Greg Kroah-Hartman
2015-01-25 18:05 ` [PATCH 3.18 037/183] drm/radeon: fix sad_count check for dce3 Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 038/183] drm/radeon: adjust default bapm settings for KV Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 039/183] drm/radeon: properly filter DP1.2 4k modes on non-DP1.2 hw Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 040/183] drm/i915: Dont complain about stolen conflicts on gen3 Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 041/183] drm/i915: Disallow pin ioctl completely for kms drivers Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 042/183] drm/i915: Only warn the first time we attempt to mmio whilst suspended Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 043/183] drm/i915: resume MST after reading back hw state Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 045/183] drm/nv4c/mc: disable msi Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 051/183] ARC: [nsimosci] move peripherals to match model to FPGA Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 052/183] cxl: Change contexts_lock to a mutex to fix sleep while atomic bug Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 053/183] cxl: Add timeout to process element commands Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 054/183] cxl: Unmap MMIO regions when detaching a context Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 055/183] xhci: Check if slot is already in default state before moving it there Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 057/183] nl80211: check matches array length before acessing it Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 058/183] cfg80211: dont WARN about two consecutive Country IE hint Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 059/183] cfg80211: avoid mem leak on driver hint set Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 060/183] cfg80211: Fix 160 MHz channels with 80+80 and 160 MHz drivers Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 061/183] rtlwifi: rtl8192ce: Set fw_ready flag Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 062/183] rtlwifi: Fix error when accessing unmapped memory in skb Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 063/183] asus-nb-wmi: Add another wapf=4 quirk Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 064/183] hp_accel: Add support for HP ZBook 15 Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 065/183] tick/powerclamp: Remove tick_nohz_idle abuse Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 066/183] uapi/linux/target_core_user.h: fix headers_install.sh badness Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 067/183] tcm_loop: Fix wrong I_T nexus association Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 068/183] IB/iser: Fix possible SQ overflow Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 069/183] genirq: Prevent proc race against freeing of irq descriptors Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 070/183] iscsi-target: Fail connection on short sendmsg writes Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 071/183] iscsi,iser-target: Initiate termination only once Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 072/183] iser-target: Fix flush + disconnect completion handling Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 073/183] iser-target: Parallelize CM connection establishment Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 074/183] iser-target: Fix connected_handler + teardown flow race Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 075/183] iser-target: Handle ADDR_CHANGE event for listener cm_id Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 076/183] iser-target: Fix implicit termination of connections Greg Kroah-Hartman
2015-01-25 18:06 ` Greg Kroah-Hartman [this message]
2015-01-25 18:06 ` [PATCH 3.18 078/183] iser-target: Fix NULL dereference in SW mode DIF Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 079/183] iscsi,iser-target: Expose supported protection ops according to t10_pi Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 081/183] Revert "[SCSI] mpt2sas: Remove phys on topology change." Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 082/183] Revert "[SCSI] mpt3sas: Remove phys on topology change" Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 083/183] scsi: blacklist RSOC for Microsoft iSCSI target devices Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 084/183] scsi: fix random memory corruption with scsi-mq + T10 PI Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 086/183] clk: samsung: Fix double add of syscore ops after driver rebind Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 087/183] clk: Really fix deadlock with mmap_sem Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 088/183] clk: Dont try to use a struct clk* after it could have been freed Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 089/183] Revert "clk: ppc-corenet: Fix Section mismatch warning" Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 090/183] clk: rockchip: fix rk3288 cpuclk core dividers Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 091/183] clk: rockchip: fix rk3066 pll lock bit location Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 092/183] clk: berlin: bg2q: remove non-exist "smemc" gate clock Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 093/183] clk: at91: keep slow clk enabled to prevent system hang Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 094/183] ARM: dts: berlin: fix io clk and add missing core clk for BG2Q sdhci2 host Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 095/183] bugon.cocci: fix Options at the macro Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 096/183] dm: fix missed error code if .end_io isnt implemented by target_type Greg Kroah-Hartman
2015-01-25 18:06 ` [PATCH 3.18 097/183] parisc: fix out-of-register compiler error in ldcw inline assembler function Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 098/183] serial: fix parisc boot hang Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 099/183] storvsc: ring buffer failures may result in I/O freeze Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 100/183] net: ethernet: cpsw: fix hangs with interrupts Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 102/183] video/logo: prevent use of logos after they have been freed Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 103/183] video/fbdev: fix defios fsync Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 104/183] [media] smiapp-pll: Correct clock debug prints Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 106/183] [media] smiapp: Take mutex during PLL update in sensor initialisation Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 107/183] [media] sound: simplify au0828 quirk table Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 108/183] [media] sound: Update au0828 quirks table Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 109/183] [media] uvcvideo: Fix destruction order in uvc_delete() Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 110/183] [media] img-ir/hw: Always read data to clear buffer Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 111/183] [media] img-ir/hw: Fix potential deadlock stopping timer Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 112/183] [media] vivid: fix CROP_BOUNDS typo for video output Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 113/183] vfio-pci: Fix the check on pci device type in vfio_pci_probe() Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 114/183] locks: fix NULL-deref in generic_delete_lease Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 115/183] powernv: Fix OPAL tracepoint code Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 116/183] mmc: sdhci: Set SDHCI_POWER_ON with external vmmc Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 117/183] arm64: partially revert "ARM: 8167/1: extend the reserved memory for initrd to be page aligned" Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 118/183] iwlwifi: mvm: fix Rx with both chains Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 119/183] i40e: adds FCoE configure option Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 120/183] drivers: net: cpsw: fix multicast flush in dual emac mode Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 121/183] leds: netxbig: fix oops at probe time Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 122/183] ftrace/jprobes/x86: Fix conflict between jprobes and function graph tracing Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 123/183] ftrace: Fix updating of filters for shared global_ops filters Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 124/183] ftrace: Check both notrace and filter for old hash Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 125/183] NFSv4.1: Fix client id trunking on Linux Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 126/183] mei: clean reset bit before reset Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 128/183] uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS566 with usb-id 0bc2:a013 Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 129/183] uas: Add US_FL_NO_ATA_1X for 2 more Seagate disk enclosures Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 130/183] reset: sunxi: fix spinlock initialization Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 131/183] ARM: dts: berlin: correct BG2Qs SM GPIO location Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 132/183] pinctrl: lantiq: remove bogus of_gpio_chip_add Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 133/183] gpiolib: of: Correct error handling in of_get_named_gpiod_flags Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 134/183] gpio: crystalcove: use handle_nested_irq Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 135/183] gpio: fix memory and reference leaks in gpiochip_add error path Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 136/183] gpio: fix memory leak and sleep-while-atomic Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 137/183] gpio: fix sleep-while-atomic in gpiochip_remove Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 138/183] gpio: sysfs: fix gpio-chip device-attribute leak Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 139/183] gpio: sysfs: fix gpio " Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 140/183] OHCI: add a quirk for ULi M5237 blocking on reset Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 141/183] usb: dwc3: gadget: Fix TRB preparation during SG Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 142/183] usb: dwc3: gadget: Stop TRB preparation after limit is reached Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 143/183] USB: cp210x: fix ID for production CEL MeshConnect USB Stick Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 144/183] USB: cp210x: add IDs for CEL USB sticks and MeshWorks devices Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 145/183] USB: qcserial/option: make AT URCs work for Sierra Wireless MC73xx Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 146/183] USB: keyspan: fix null-deref at probe Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 147/183] usb: gadget: gadgetfs: Free memory allocated by memdup_user() Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 148/183] usb: gadget: udc: atmel: change setting for DMA Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 149/183] usb: gadget: udc: atmel: fix possible IN hang issue Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 150/183] usb: gadget: udc: atmel: fix possible oops when unloading module Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 151/183] USB: console: fix uninitialised ldisc semaphore Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 152/183] USB: console: fix potential use after free Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 153/183] USB: EHCI: fix initialization bug in iso_stream_schedule() Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 154/183] usb: musb: stuff leak of struct usb_hcd Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 155/183] can: kvaser_usb: Dont free packets when tight on URBs Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 156/183] can: kvaser_usb: Reset all URB tx contexts upon channel close Greg Kroah-Hartman
2015-01-25 18:07 ` [PATCH 3.18 157/183] can: kvaser_usb: Dont send a RESET_CHIP for non-existing channels Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 158/183] Input: elantech - support new ICs types for version 4 Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 160/183] Input: I8042 - add Acer Aspire 7738 to the nomux list Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 161/183] ARM: omap2plus_defconfig: use CONFIG_CPUFREQ_DT Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 162/183] ARM: imx6sx: Set PLL2 as parent of QSPI clocks Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 163/183] ARM: dts: imx25: Fix the SPI1 clocks Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 164/183] ARM: dts: imx51-babbage: Fix ULPI PHY reset modelling Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 165/183] ARM: imx6q: drop unnecessary semicolon Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 166/183] ARM: clk-imx6q: fix video divider for rev T0 1.0 Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 167/183] ARM: omap5/dra7xx: Fix frequency typos Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 168/183] ARM: omap5/dra7xx: Enable booting secondary CPU in HYP mode Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 169/183] bus: omap_l3_noc: Add resume hook to restore context Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 170/183] bus: omap_l3_noc: Correct returning IRQ_HANDLED unconditionally in the irq handler Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 171/183] ARM: dts: berlin: add broken-cd and set bus width for eMMC in Marvell DMP DT Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 172/183] ARM: shmobile: sh73a0 legacy: Set .control_parent for all irqpin instances Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 173/183] ARM: dts: dra7-evm: fix qspi device tree partition size Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 174/183] iio: ad799x: Fix ad7991/ad7995/ad7999 config setup Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 175/183] decompress_bunzip2: off by one in get_next_block() Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 176/183] um: Skip futex_atomic_cmpxchg_inatomic() test Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 177/183] x86, um: actually mark system call tables readonly Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 178/183] kbuild: Fix removal of the debian/ directory Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 179/183] LOCKD: Fix a race when initialising nlmsvc_timeout Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 180/183] target: Drop arbitrary maximum I/O size limit Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 181/183] vhost-scsi: Add missing virtio-scsi -> TCM attribute conversion Greg Kroah-Hartman
2015-01-25 18:08 ` [PATCH 3.18 183/183] KVM: nVMX: Disable unrestricted mode if ept=0 Greg Kroah-Hartman
[not found] ` <20150125180814.764501379@linuxfoundation.org>
2015-01-25 19:32 ` [PATCH 3.18 105/183] [media] af9005: fix kernel panic on init if compiled without IR Luca Olivetti
2015-01-25 22:01 ` Greg Kroah-Hartman
2015-01-25 22:56 ` Luca Olivetti
2015-01-25 21:40 ` [PATCH 3.18 000/183] 3.18.4-stable review Guenter Roeck
2015-01-25 22:05 ` Greg Kroah-Hartman
2015-01-26 17:42 ` Shuah Khan
2015-01-26 18:35 ` 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=20150125180813.522849830@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nab@linux-iscsi.org \
--cc=sagig@mellanox.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).