From: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
To: Devesh Sharma
<devesh.sharma-laKkSmNT4hbQT0dZR+AlfA@public.gmane.org>,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org
Subject: Re: [for-next 2/2] xprtrdma: fix deallocation sequence of pd
Date: Thu, 17 Jul 2014 10:05:49 -0500 [thread overview]
Message-ID: <53C7E64D.90501@opengridcomputing.com> (raw)
In-Reply-To: <3fdcf67f-2e90-4c61-92da-a8f7743cf54a-3RiH6ntJJkOPfaB/Gd0HpljyZtpTMMwT@public.gmane.org>
On 7/17/2014 9:01 AM, Devesh Sharma wrote:
> xprtrdma tries to destroy pd after destruction of cm_id. However,
> pd should be deallocated before destruction of cm_id.
Why?
I think you really mean that the pd dealloc needs to be done before the
module deref that you added in the first patch. But let us see what
Roland says about how device removal is supposed to be handled when
kernel applications are using the device...
> Signed-off-by: Devesh Sharma <devesh.sharma-laKkSmNT4hbQT0dZR+AlfA@public.gmane.org>
> ---
> net/sunrpc/xprtrdma/verbs.c | 22 +++++++++++++---------
> 1 files changed, 13 insertions(+), 9 deletions(-)
>
> diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
> index b00e55e..096e94b 100644
> --- a/net/sunrpc/xprtrdma/verbs.c
> +++ b/net/sunrpc/xprtrdma/verbs.c
> @@ -544,7 +544,7 @@ rpcrdma_ia_open(struct rpcrdma_xprt *xprt, struct sockaddr *addr, int memreg)
> if (rc) {
> dprintk("RPC: %s: ib_query_device failed %d\n",
> __func__, rc);
> - goto out2;
> + goto out3;
> }
>
> if (devattr.device_cap_flags & IB_DEVICE_LOCAL_DMA_LKEY) {
> @@ -602,14 +602,14 @@ rpcrdma_ia_open(struct rpcrdma_xprt *xprt, struct sockaddr *addr, int memreg)
> "phys register failed with %lX\n",
> __func__, PTR_ERR(ia->ri_bind_mem));
> rc = -ENOMEM;
> - goto out2;
> + goto out3;
> }
> break;
> default:
> printk(KERN_ERR "RPC: Unsupported memory "
> "registration mode: %d\n", memreg);
> rc = -ENOMEM;
> - goto out2;
> + goto out3;
> }
> dprintk("RPC: %s: memory registration strategy is %d\n",
> __func__, memreg);
> @@ -619,6 +619,9 @@ rpcrdma_ia_open(struct rpcrdma_xprt *xprt, struct sockaddr *addr, int memreg)
>
> rwlock_init(&ia->ri_qplock);
> return 0;
> +out3:
> + ib_dealloc_pd(ia->ri_pd);
> + ia->ri_pd = NULL;
> out2:
> module_put(ia->ri_id->device->owner);
> rdma_destroy_id(ia->ri_id);
> @@ -643,19 +646,20 @@ rpcrdma_ia_close(struct rpcrdma_ia *ia)
> dprintk("RPC: %s: ib_dereg_mr returned %i\n",
> __func__, rc);
> }
> +
> if (ia->ri_id != NULL && !IS_ERR(ia->ri_id)) {
> if (ia->ri_id->qp)
> rdma_destroy_qp(ia->ri_id);
> +
> + if (ia->ri_pd != NULL && !IS_ERR(ia->ri_pd)) {
> + rc = ib_dealloc_pd(ia->ri_pd);
> + dprintk("RPC: %s: ib_dealloc_pd returned %i\n",
> + __func__, rc);
> + }
> module_put(ia->ri_id->device->owner);
> rdma_destroy_id(ia->ri_id);
> ia->ri_id = NULL;
> }
> -
> - if (ia->ri_pd != NULL && !IS_ERR(ia->ri_pd)) {
> - rc = ib_dealloc_pd(ia->ri_pd);
> - dprintk("RPC: %s: ib_dealloc_pd returned %i\n",
> - __func__, rc);
> - }
> }
>
> /*
--
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:[~2014-07-17 15:05 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1405605697-11583-1-git-send-email-devesh.sharma@emulex.com>
[not found] ` <1405605697-11583-1-git-send-email-devesh.sharma-laKkSmNT4hbQT0dZR+AlfA@public.gmane.org>
2014-07-17 14:01 ` [for-next 1/2] xprtrdma: take reference of rdma provider module Devesh Sharma
[not found] ` <3e39e90f-7095-4eb9-a844-516672a355ad-3RiH6ntJJkOPfaB/Gd0HpljyZtpTMMwT@public.gmane.org>
2014-07-17 15:01 ` Steve Wise
[not found] ` <53C7E546.3080008-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2014-07-17 15:05 ` Chuck Lever
[not found] ` <78A77C48-AC73-4C01-B139-A00B4F674C70-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2014-07-17 15:31 ` Devesh Sharma
2014-07-17 15:20 ` Devesh Sharma
2014-07-17 16:06 ` Hefty, Sean
[not found] ` <1828884A29C6694DAF28B7E6B8A823739933FCA3-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-07-17 18:57 ` Shirley Ma
[not found] ` <53C81CB7.2030000-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2014-07-17 19:07 ` Steve Wise
2014-07-17 19:50 ` Hefty, Sean
[not found] ` <1828884A29C6694DAF28B7E6B8A823739933FDEA-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-07-17 19:55 ` Steve Wise
2014-07-17 20:23 ` Shirley Ma
2014-07-17 20:08 ` Steve Wise
2014-07-17 20:41 ` Chuck Lever
[not found] ` <DF7CE85B-288D-4CC2-AD51-B326D5F1EE1A-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2014-07-17 20:59 ` Steve Wise
2014-07-18 5:05 ` Devesh Sharma
[not found] ` <EE7902D3F51F404C82415C4803930ACD3FE1482F-DWYeeINJQrxExQ8dmkPuX0M9+F4ksjoh@public.gmane.org>
2014-07-18 13:27 ` Steve Wise
2014-07-18 15:47 ` Shirley Ma
[not found] ` <53C94199.4050601-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2014-07-21 6:11 ` Devesh Sharma
[not found] ` <EE7902D3F51F404C82415C4803930ACD3FE1C7B7-DWYeeINJQrxExQ8dmkPuX0M9+F4ksjoh@public.gmane.org>
2014-07-21 11:48 ` Devesh Sharma
[not found] ` <a6345162-863d -447c-b7c2-059ced190a13@CMEXHTCAS1.ad.emulex.com>
[not found] ` <a6345162-863d-447c-b7c2-059ced190a13-3RiH6ntJJkP8BX6JNMqfyFjyZtpTMMwT@public.gmane.org>
2014-07-21 14:53 ` Chuck Lever
[not found] ` <27ACE237-161A-4CA5-AA5C-6349CC4118E3-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2014-07-21 15:03 ` Steve Wise
2014-07-21 15:20 ` Chuck Lever
[not found] ` <D88D1952-83A1-4FF9-B028-AAE7A859A 5B1@oracle.com>
[not found] ` <D88D1952-83A1-4FF9-B028-AAE7A859A5B1-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2014-07-21 15:22 ` Steve Wise
2014-07-21 17:07 ` Devesh Sharma
[not found] ` <EE7902D3F51F404C82415C4803930ACD3FE1D9CF-DWYeeINJQrxExQ8dmkPuX0M9+F4ksjoh@public.gmane.org>
2014-07-21 17:30 ` Chuck Lever
[not found] ` <0CDA5340-DDD6-42F8-8359-0069BBC9E24C-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2014-07-22 5:06 ` Devesh Sharma
[not found] ` <EE7902D3F51F404C82415C4803930ACD3FE1DB1D-DWYeeINJQrxExQ8dmkPuX0M9+F4ksjoh@public.gmane.org>
2014-07-30 18:39 ` Chuck Lever
[not found] ` <A40CDF7D-7ED2-4D67-957F-8F977D567774-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2014-07-31 5:14 ` Devesh Sharma
[not found] ` <EE7902D3F51F404C82415C4803930ACD3FE23695-DWYeeINJQrxExQ8dmkPuX0M9+F4ksjoh@public.gmane.org>
2014-08-18 9:52 ` Devesh Sharma
[not found] ` <6a71f6a5-f335-42c6-b8b7-8b4bac5aae83-3RiH6ntJJkP8BX6JNMqfyFjyZtpTMMwT@public.gmane.org>
2014-08-18 13:13 ` Chuck Lever
2014-07-21 5:23 ` Devesh Sharma
2014-07-17 21:25 ` Shirley Ma
2014-07-18 6:19 ` Devesh Sharma
[not found] ` <EE7902D3F51F404C82415C4803930ACD3FE1686F-DWYeeINJQrxExQ8dmkPuX0M9+F4ksjoh@public.gmane.org>
2014-07-18 15:27 ` Chuck Lever
[not found] ` <D9783B2E-8D18-442E-9BFE-0863F9DD6B96-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2014-07-21 5:40 ` Devesh Sharma
2014-07-17 14:01 ` [for-next 2/2] xprtrdma: fix deallocation sequence of pd Devesh Sharma
[not found] ` <3fdcf67f-2e90-4c61-92da-a8f7743cf54a-3RiH6ntJJkOPfaB/Gd0HpljyZtpTMMwT@public.gmane.org>
2014-07-17 15:05 ` Steve Wise [this message]
[not found] ` <53C7E64D.90501-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2014-07-17 15:35 ` Devesh Sharma
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=53C7E64D.90501@opengridcomputing.com \
--to=swise-7bpotxp6k4+p2yhjcf5u+vpxobypeauw@public.gmane.org \
--cc=chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=devesh.sharma-laKkSmNT4hbQT0dZR+AlfA@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox