From: Bart Van Assche <bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
To: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>,
Sagi Grimberg <sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>,
Laurence Oberman
<loberman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: [PATCH 3/6] IB/srp: Fix srp_create_target() error handling
Date: Tue, 10 May 2016 17:13:52 -0700 [thread overview]
Message-ID: <57327940.3030206@sandisk.com> (raw)
In-Reply-To: <573278D9.4050908-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
Avoid that the following kernel oops occurs if memory pool
allocation fails:
BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [<ffffffffa048d0a0>] ib_drain_rq+0x0/0x20 [ib_core]
Call Trace:
[<ffffffffa04af386>] srp_create_target+0xca6/0x13a9 [ib_srp]
[<ffffffff813cc863>] dev_attr_store+0x13/0x20
[<ffffffff81214b50>] sysfs_kf_write+0x40/0x50
[<ffffffff81213f1c>] kernfs_fop_write+0x13c/0x180
[<ffffffff81197683>] __vfs_write+0x23/0xf0
[<ffffffff81198744>] vfs_write+0xa4/0x1a0
[<ffffffff81199a44>] SyS_write+0x44/0xa0
[<ffffffff8159e3e9>] entry_SYSCALL_64_fastpath+0x1c/0xac
Fixes: 1dc7b1f10dcb ("IB/srp: use the new CQ API")
Signed-off-by: Bart Van Assche <bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
Cc: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
Cc: Sagi Grimberg <sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
Cc: Laurence Oberman <loberman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: <stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> # v4.5+
---
drivers/infiniband/ulp/srp/ib_srp.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 74e3ec8..f4dc6f9 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -447,16 +447,16 @@ static struct srp_fr_pool *srp_alloc_fr_pool(struct srp_target_port *target)
/**
* srp_destroy_qp() - destroy an RDMA queue pair
- * @ch: SRP RDMA channel.
+ * @qp: RDMA queue pair.
*
* Drain the qp before destroying it. This avoids that the receive
* completion handler can access the queue pair while it is
* being destroyed.
*/
-static void srp_destroy_qp(struct srp_rdma_ch *ch)
+static void srp_destroy_qp(struct ib_qp *qp)
{
- ib_drain_rq(ch->qp);
- ib_destroy_qp(ch->qp);
+ ib_drain_rq(qp);
+ ib_destroy_qp(qp);
}
static int srp_create_ch_ib(struct srp_rdma_ch *ch)
@@ -529,7 +529,7 @@ static int srp_create_ch_ib(struct srp_rdma_ch *ch)
}
if (ch->qp)
- srp_destroy_qp(ch);
+ srp_destroy_qp(ch->qp);
if (ch->recv_cq)
ib_free_cq(ch->recv_cq);
if (ch->send_cq)
@@ -553,7 +553,7 @@ static int srp_create_ch_ib(struct srp_rdma_ch *ch)
return 0;
err_qp:
- srp_destroy_qp(ch);
+ srp_destroy_qp(qp);
err_send_cq:
ib_free_cq(send_cq);
@@ -596,7 +596,7 @@ static void srp_free_ch_ib(struct srp_target_port *target,
ib_destroy_fmr_pool(ch->fmr_pool);
}
- srp_destroy_qp(ch);
+ srp_destroy_qp(ch->qp);
ib_free_cq(ch->send_cq);
ib_free_cq(ch->recv_cq);
--
2.8.2
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-05-11 0:13 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-11 0:12 [PATCH 0/6] IB/srp: Second series of patches for kernel v4.7 Bart Van Assche
[not found] ` <573278D9.4050908-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-11 0:12 ` [PATCH 1/6] IB/srp: Print "ib_srp: " prefix once Bart Van Assche
[not found] ` <57327904.1040102-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-11 7:23 ` Leon Romanovsky
2016-05-11 13:24 ` Steve Wise
2016-05-11 15:15 ` Bart Van Assche
2016-05-11 0:13 ` [PATCH 2/6] IB/srp: Fix a memory descriptor leak in an error path Bart Van Assche
[not found] ` <57327921.9030306-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-11 7:31 ` Leon Romanovsky
[not found] ` <20160511073127.GC25215-2ukJVAZIZ/Y@public.gmane.org>
2016-05-11 15:19 ` Bart Van Assche
2016-05-11 0:13 ` Bart Van Assche [this message]
[not found] ` <57327940.3030206-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-11 7:39 ` [PATCH 3/6] IB/srp: Fix srp_create_target() error handling Leon Romanovsky
2016-05-11 0:14 ` [PATCH 4/6] IB/core: Enhance ib_map_mr_sg() Bart Van Assche
[not found] ` <57327981.4080404-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-11 7:53 ` Leon Romanovsky
[not found] ` <20160511075359.GE25215-2ukJVAZIZ/Y@public.gmane.org>
2016-05-11 15:22 ` Bart Van Assche
[not found] ` <57334E35.3010403-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-11 15:31 ` Laurence Oberman
[not found] ` <688520061.35288974.1462980673444.JavaMail.zimbra-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-11 15:41 ` Bart Van Assche
[not found] ` <573352B3.4030908-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-11 15:56 ` Laurence Oberman
2016-05-12 16:28 ` Laurence Oberman
[not found] ` <1821483712.35493025.1463070514224.JavaMail.zimbra-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-12 16:38 ` Laurence Oberman
[not found] ` <2086883286.35494019.1463071093121.JavaMail.zimbra-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-12 16:50 ` Laurence Oberman
[not found] ` <1037308880.35509753.1463071803556.JavaMail.zimbra-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-12 17:00 ` Bart Van Assche
[not found] ` <5734B6A4.5070205-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-05-12 17:02 ` Laurence Oberman
2016-05-11 0:15 ` [PATCH 5/6] IB/srp: Swap two code blocks in srp_add_one() Bart Van Assche
2016-05-11 0:16 ` [PATCH 6/6] IB/srp: Prevent mapping failures Bart Van Assche
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=57327940.3030206@sandisk.com \
--to=bart.vanassche-xdaiopvojttbdgjk7y7tuq@public.gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=hch-jcswGhMUV9g@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=loberman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.