From: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Jason Gunthorpe <jgg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Mark Bloch <markb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
Steve Wise
<swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>,
Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: [RFC PATCH rdma-next 05/14] RDMA/core: Provide locked variant of device name to index function
Date: Thu, 21 Dec 2017 20:17:39 +0200 [thread overview]
Message-ID: <20171221181748.17126-6-leon@kernel.org> (raw)
In-Reply-To: <20171221181748.17126-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
From: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Add self-contained with locks device name to index function.
Reviewed-by: Mark Bloch <markb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Signed-off-by: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
drivers/infiniband/core/core_priv.h | 1 +
drivers/infiniband/core/device.c | 16 ++++++++++++++++
2 files changed, 17 insertions(+)
diff --git a/drivers/infiniband/core/core_priv.h b/drivers/infiniband/core/core_priv.h
index ded3850721e0..e71dd1814bf0 100644
--- a/drivers/infiniband/core/core_priv.h
+++ b/drivers/infiniband/core/core_priv.h
@@ -301,6 +301,7 @@ static inline int ib_mad_enforce_security(struct ib_mad_agent_private *map,
#endif
struct ib_device *__ib_device_get_by_index(u32 ifindex);
+struct ib_device *ib_device_get_by_index(u32 ifindex);
/* RDMA device netlink */
void nldev_init(void);
void nldev_exit(void);
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index cb69357a1909..adf3a4ca038b 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -150,6 +150,22 @@ struct ib_device *__ib_device_get_by_index(u32 index)
return NULL;
}
+/*
+ * Caller is responsible to return refrerence count by calling put_device()
+ */
+struct ib_device *ib_device_get_by_index(u32 index)
+{
+ struct ib_device *device;
+
+ down_write(&lists_rwsem);
+ device = __ib_device_get_by_index(index);
+ if (device)
+ get_device(&device->dev);
+
+ up_write(&lists_rwsem);
+ return device;
+}
+
static struct ib_device *__ib_device_get_by_name(const char *name)
{
struct ib_device *device;
--
2.15.1
--
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:[~2017-12-21 18:17 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-21 18:17 [RFC PATCH rdma-next 00/14] RDMA resource tracking Leon Romanovsky
[not found] ` <20171221181748.17126-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-12-21 18:17 ` [RFC PATCH rdma-next 01/14] RDMA/netlink: Simplify code of autoload modules Leon Romanovsky
2017-12-21 18:17 ` [RFC PATCH rdma-next 02/14] RDMA/core: Enforce requirement to hold lists_rwsem semaphore Leon Romanovsky
[not found] ` <20171221181748.17126-3-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-12-21 19:12 ` Jason Gunthorpe
[not found] ` <20171221191200.GE20015-uk2M96/98Pc@public.gmane.org>
2017-12-21 19:51 ` Leon Romanovsky
[not found] ` <20171221195134.GM2942-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-12-21 19:57 ` Leon Romanovsky
2017-12-21 20:23 ` Jason Gunthorpe
2017-12-21 18:17 ` [RFC PATCH rdma-next 03/14] RDMA/core: Replace open-coded variant of put_device Leon Romanovsky
2017-12-21 18:17 ` [RFC PATCH rdma-next 04/14] RDMA/nldev: Refactor nldev handle to be common function Leon Romanovsky
2017-12-21 18:17 ` Leon Romanovsky [this message]
2017-12-21 18:17 ` [RFC PATCH rdma-next 06/14] RDMA/netlink: Protect device query from device removal Leon Romanovsky
2017-12-21 18:17 ` [RFC PATCH rdma-next 07/14] RDMA/nldev: Protect port query from accidental " Leon Romanovsky
2017-12-21 18:17 ` [RFC PATCH rdma-next 08/14] RDMA/restrack: Add general infrastructure to track RDMA resources Leon Romanovsky
2017-12-21 18:17 ` [RFC PATCH rdma-next 09/14] RDMA/core: Add helper function to create named QPs Leon Romanovsky
2017-12-21 18:17 ` [RFC PATCH rdma-next 10/14] RDMA: Annotate create QP callers Leon Romanovsky
2017-12-21 18:17 ` [RFC PATCH rdma-next 11/14] RDMA/core: Add resource tracking for create and destroy CQs Leon Romanovsky
2017-12-21 18:17 ` [RFC PATCH rdma-next 12/14] RDMA/core: Add resource tracking for create and destroy PDs Leon Romanovsky
2017-12-21 18:17 ` [RFC PATCH rdma-next 13/14] RDMA/nldev: Provide global resource utilization Leon Romanovsky
2017-12-21 18:17 ` [RFC PATCH rdma-next 14/14] RDMA/nldev: Provide detailed QP information Leon Romanovsky
2017-12-21 18:21 ` [RFC PATCH rdma-next 00/14] RDMA resource tracking Leon Romanovsky
2017-12-21 19:14 ` Jason Gunthorpe
[not found] ` <20171221191424.GF20015-uk2M96/98Pc@public.gmane.org>
2017-12-21 19:52 ` Leon Romanovsky
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=20171221181748.17126-6-leon@kernel.org \
--to=leon-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=jgg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=markb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@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.