2020-05-08 12:11:12

by chenzhou

[permalink] [raw]
Subject: [PATCH -next] PCI: endpoint: use kmemdup_nul() in pci_epf_create()

It is more efficient to use kmemdup_nul() if the size is known exactly.

The doc in kernel:
"Note: Use kmemdup_nul() instead if the size is known exactly."

Signed-off-by: Chen Zhou <[email protected]>
---
drivers/pci/endpoint/pci-epf-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/endpoint/pci-epf-core.c b/drivers/pci/endpoint/pci-epf-core.c
index 244e00f48c5c..f035d2ebcae5 100644
--- a/drivers/pci/endpoint/pci-epf-core.c
+++ b/drivers/pci/endpoint/pci-epf-core.c
@@ -252,7 +252,7 @@ struct pci_epf *pci_epf_create(const char *name)
return ERR_PTR(-ENOMEM);

len = strchrnul(name, '.') - name;
- epf->name = kstrndup(name, len, GFP_KERNEL);
+ epf->name = kmemdup_nul(name, len, GFP_KERNEL);
if (!epf->name) {
kfree(epf);
return ERR_PTR(-ENOMEM);
--
2.20.1


2020-05-08 16:25:45

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH -next] PCI: endpoint: use kmemdup_nul() in pci_epf_create()

On Fri, May 08, 2020 at 08:10:29PM +0800, Chen Zhou wrote:
> It is more efficient to use kmemdup_nul() if the size is known exactly.
>
> The doc in kernel:
> "Note: Use kmemdup_nul() instead if the size is known exactly."

If you want to do this, I want to do at least the entire drivers/pci
directory at once so we don't have a bunch of onesy-twosy patches. It
looks like there's at least one more potential change in
pci_dev_str_match_path().

Also, please mention that the doc is from the kstrndup() function
comment.

> Signed-off-by: Chen Zhou <[email protected]>
> ---
> drivers/pci/endpoint/pci-epf-core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/endpoint/pci-epf-core.c b/drivers/pci/endpoint/pci-epf-core.c
> index 244e00f48c5c..f035d2ebcae5 100644
> --- a/drivers/pci/endpoint/pci-epf-core.c
> +++ b/drivers/pci/endpoint/pci-epf-core.c
> @@ -252,7 +252,7 @@ struct pci_epf *pci_epf_create(const char *name)
> return ERR_PTR(-ENOMEM);
>
> len = strchrnul(name, '.') - name;
> - epf->name = kstrndup(name, len, GFP_KERNEL);
> + epf->name = kmemdup_nul(name, len, GFP_KERNEL);
> if (!epf->name) {
> kfree(epf);
> return ERR_PTR(-ENOMEM);
> --
> 2.20.1
>