lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date:	Mon,  1 Jun 2015 05:24:19 -0400
From:	Allen Hubbe <Allen.Hubbe@....com>
To:	linux-ntb@...glegroups.com
Cc:	linux-kernel@...r.kernel.org, linux-pci@...r.kernel.org,
	Jon Mason <jdmason@...zu.us>,
	Dave Jiang <dave.jiang@...el.com>,
	Allen Hubbe <Allen.Hubbe@....com>
Subject: [PATCH] NTB: Register client drivers with name and owner

Following the example of pci_register_driver, change ntb_register_client
to be a macro, calling __ntb_register_client with THIS_MODULE and
KBUILD_MODNAME to initialize the driver .owner and .name members.

Signed-off-by: Allen Hubbe <Allen.Hubbe@....com>
---
 drivers/ntb/ntb.c               | 10 +++++-----
 drivers/ntb/ntb_transport.c     |  1 -
 drivers/ntb/test/ntb_pingpong.c |  1 -
 drivers/ntb/test/ntb_tool.c     |  1 -
 include/linux/ntb.h             |  8 +++++---
 5 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/drivers/ntb/ntb.c b/drivers/ntb/ntb.c
index 0e27745b9c4b..23435f2a5486 100644
--- a/drivers/ntb/ntb.c
+++ b/drivers/ntb/ntb.c
@@ -74,22 +74,22 @@ MODULE_DESCRIPTION(DRIVER_DESCRIPTION);
 static struct bus_type ntb_bus;
 static void ntb_dev_release(struct device *dev);
 
-int ntb_register_client(struct ntb_client *client)
+int __ntb_register_client(struct ntb_client *client, struct module *mod,
+			  const char *mod_name)
 {
 	if (!client)
 		return -EINVAL;
-	if (!client->name)
-		return -EINVAL;
 	if (!ntb_client_ops_is_valid(&client->ops))
 		return -EINVAL;
 
 	memset(&client->drv, 0, sizeof(client->drv));
 	client->drv.bus = &ntb_bus;
-	client->drv.name = client->name;
+	client->drv.name = mod_name;
+	client->drv.owner = mod;
 
 	return driver_register(&client->drv);
 }
-EXPORT_SYMBOL(ntb_register_client);
+EXPORT_SYMBOL(__ntb_register_client);
 
 void ntb_unregister_client(struct ntb_client *client)
 {
diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c
index b70b6a30a0b5..cbf649caabbe 100644
--- a/drivers/ntb/ntb_transport.c
+++ b/drivers/ntb/ntb_transport.c
@@ -1948,7 +1948,6 @@ static struct ntb_client ntb_transport_client = {
 		.probe = ntb_transport_probe,
 		.remove = ntb_transport_free,
 	},
-	.name = NTB_TRANSPORT_NAME,
 };
 
 static int __init ntb_transport_init(void)
diff --git a/drivers/ntb/test/ntb_pingpong.c b/drivers/ntb/test/ntb_pingpong.c
index a18f895839c3..fe1600566981 100644
--- a/drivers/ntb/test/ntb_pingpong.c
+++ b/drivers/ntb/test/ntb_pingpong.c
@@ -246,6 +246,5 @@ static struct ntb_client pp_client = {
 		.probe = pp_probe,
 		.remove = pp_remove,
 	},
-	.name = DRIVER_NAME,
 };
 module_ntb_client(pp_client);
diff --git a/drivers/ntb/test/ntb_tool.c b/drivers/ntb/test/ntb_tool.c
index 49628efc0c2b..c7933936b41d 100644
--- a/drivers/ntb/test/ntb_tool.c
+++ b/drivers/ntb/test/ntb_tool.c
@@ -527,7 +527,6 @@ static struct ntb_client tool_client = {
 		.probe = tool_probe,
 		.remove = tool_remove,
 	},
-	.name = DRIVER_NAME,
 };
 
 static int __init tool_init(void)
diff --git a/include/linux/ntb.h b/include/linux/ntb.h
index e8f29be3c543..790b8ee181f6 100644
--- a/include/linux/ntb.h
+++ b/include/linux/ntb.h
@@ -304,12 +304,10 @@ static inline int ntb_dev_ops_is_valid(const struct ntb_dev_ops *ops)
 /**
  * struct ntb_client - client interested in ntb devices
  * @drv:		Linux driver object.
- * @name:		Client driver name.
  * @ops:		See &ntb_client_ops.
  */
 struct ntb_client {
 	struct device_driver		drv;
-	const char			*name;
 	const struct ntb_client_ops	ops;
 };
 
@@ -353,7 +351,11 @@ struct ntb_dev {
  *
  * Return: Zero if the client is registered, otherwise an error number.
  */
-int ntb_register_client(struct ntb_client *client);
+#define ntb_register_client(__client) \
+	__ntb_register_client((__client), THIS_MODULE, KBUILD_MODNAME)
+
+int __ntb_register_client(struct ntb_client *client, struct module *mod,
+			  const char *mod_name);
 
 /**
  * ntb_unregister_client() - unregister a client for interest in ntb devices
-- 
2.4.0.rc0.43.gcf8a8c6

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ