Commit 60b4dfcd authored by Paolo Abeni's avatar Paolo Abeni
Browse files

Merge branch 'nfc-hci-save-a-few-bytes-of-memory-when-registering-a-nfc_llc-engine'

Christophe says:

====================
nfc: hci: Save a few bytes of memory when registering a 'nfc_llc' engine

nfc_llc_register() calls pass a string literal as the 'name' parameter.

So kstrdup_const() can be used instead of kfree() to avoid a memory
allocation in such cases.
====================

Link: https://lore.kernel.org/r/cover.1706946099.git.christophe.jaillet@wanadoo.fr


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parents 06e6bc1b 83cdd8db
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -30,15 +30,19 @@ int __init nfc_llc_init(void)
	return r;
}

void nfc_llc_exit(void)
static void nfc_llc_del_engine(struct nfc_llc_engine *llc_engine)
{
	struct nfc_llc_engine *llc_engine, *n;

	list_for_each_entry_safe(llc_engine, n, &llc_engines, entry) {
	list_del(&llc_engine->entry);
		kfree(llc_engine->name);
	kfree_const(llc_engine->name);
	kfree(llc_engine);
}

void nfc_llc_exit(void)
{
	struct nfc_llc_engine *llc_engine, *n;

	list_for_each_entry_safe(llc_engine, n, &llc_engines, entry)
		nfc_llc_del_engine(llc_engine);
}

int nfc_llc_register(const char *name, const struct nfc_llc_ops *ops)
@@ -49,7 +53,7 @@ int nfc_llc_register(const char *name, const struct nfc_llc_ops *ops)
	if (llc_engine == NULL)
		return -ENOMEM;

	llc_engine->name = kstrdup(name, GFP_KERNEL);
	llc_engine->name = kstrdup_const(name, GFP_KERNEL);
	if (llc_engine->name == NULL) {
		kfree(llc_engine);
		return -ENOMEM;
@@ -82,9 +86,7 @@ void nfc_llc_unregister(const char *name)
	if (llc_engine == NULL)
		return;

	list_del(&llc_engine->entry);
	kfree(llc_engine->name);
	kfree(llc_engine);
	nfc_llc_del_engine(llc_engine);
}

struct nfc_llc *nfc_llc_allocate(const char *name, struct nfc_hci_dev *hdev,