Skip to contentSkip to conversation

NTB: Use struct_size() helper in devm_kzalloc()

PATCH In review Gustavo A. R. Silva 3 participants 3 messages Jun 19, 2020 – Aug 24, 2020 NTB driver core

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 NTB: Use struct_size() helper in devm_kzalloc()

Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes. Also, remove unnecessary variable _struct_size_.

This code was detected with the help of Coccinelle and, audited and fixed manually.

Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83

---
 drivers/ntb/test/ntb_msi_test.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
drivers/ntb/test/ntb_msi_test.c +1 -4
index 99d826ed9c34..7095ecd6223a 100644
@@ -319,7 +319,6 @@ static void ntb_msit_remove_dbgfs(struct ntb_msit_ctx *nm)
 static int ntb_msit_probe(struct ntb_client *client, struct ntb_dev *ntb)
 {
 	struct ntb_msit_ctx *nm;
-	size_t struct_size;
 	int peers;
 	int ret;
 
@@ -352,9 +351,7 @@ static int ntb_msit_probe(struct ntb_client *client, struct ntb_dev *ntb)
 		return ret;
 	}
 
-	struct_size = sizeof(*nm) + sizeof(*nm->peers) * peers;
-
-	nm = devm_kzalloc(&ntb->dev, struct_size, GFP_KERNEL);
+	nm = devm_kzalloc(&ntb->dev, struct_size(nm, peers, peers), GFP_KERNEL);
 	if (!nm)
 		return -ENOMEM;
 
Signature · 1 line
2.27.0
Reviewed-by on v1 1/1
#1 lore raw
Quoted 9 lines · Gustavo A. R. Silva

Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes. Also, remove unnecessary variable _struct_size_.

This code was detected with the help of Coccinelle and, audited and fixed manually.

Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83

Cool, I didn't know that existed! Thanks!

Quoted 28 lines
---
 drivers/ntb/test/ntb_msi_test.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
drivers/ntb/test/ntb_msi_test.c +1 -4
index 99d826ed9c34..7095ecd6223a 100644
@@ -319,7 +319,6 @@ static void ntb_msit_remove_dbgfs(struct ntb_msit_ctx *nm)
 static int ntb_msit_probe(struct ntb_client *client, struct ntb_dev *ntb)
 {
 	struct ntb_msit_ctx *nm;
-	size_t struct_size;
 	int peers;
 	int ret;
 
@@ -352,9 +351,7 @@ static int ntb_msit_probe(struct ntb_client *client, struct ntb_dev *ntb)
 		return ret;
 	}
 
-	struct_size = sizeof(*nm) + sizeof(*nm->peers) * peers;
-
-	nm = devm_kzalloc(&ntb->dev, struct_size, GFP_KERNEL);
+	nm = devm_kzalloc(&ntb->dev, struct_size(nm, peers, peers), GFP_KERNEL);
 	if (!nm)
 		return -ENOMEM;
 
maintainer
#2 lore raw
Quoted 10 lines · Logan Gunthorpe
Quoted 7 lines · Gustavo A. R. Silva

Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes. Also, remove unnecessary variable _struct_size_.

This code was detected with the help of Coccinelle and, audited and fixed manually.

Quoted 6 lines
Quoted 2 lines

Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83

Cool, I didn't know that existed! Thanks!

Added to the ntb-next branch.

Thanks,
Jon

Quoted 34 lines
Quoted 29 lines
---
 drivers/ntb/test/ntb_msi_test.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
drivers/ntb/test/ntb_msi_test.c +1 -4
index 99d826ed9c34..7095ecd6223a 100644
@@ -319,7 +319,6 @@ static void ntb_msit_remove_dbgfs(struct ntb_msit_ctx *nm)
 static int ntb_msit_probe(struct ntb_client *client, struct ntb_dev *ntb)
 {
 	struct ntb_msit_ctx *nm;
-	size_t struct_size;
 	int peers;
 	int ret;
 
@@ -352,9 +351,7 @@ static int ntb_msit_probe(struct ntb_client *client, struct ntb_dev *ntb)
 		return ret;
 	}
 
-	struct_size = sizeof(*nm) + sizeof(*nm->peers) * peers;
-
-	nm = devm_kzalloc(&ntb->dev, struct_size, GFP_KERNEL);
+	nm = devm_kzalloc(&ntb->dev, struct_size(nm, peers, peers), GFP_KERNEL);
 	if (!nm)
 		return -ENOMEM;
 
Signature · 3 lines
You received this message because you are subscribed to the Google Groups "linux-ntb" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion on the web visit https://groups.google.com/d/msgid/linux-ntb/268330b2-e42b-4d62-1ff0-8462d68e498e%40deltatee.com.