All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] ALSA: Yet more cleanups for procfs
@ 2019-02-05 16:07 Takashi Iwai
  2019-02-05 16:07 ` [PATCH 1/4] ALSA: info: Drop unused snd_info_entry.card field Takashi Iwai
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Takashi Iwai @ 2019-02-05 16:07 UTC (permalink / raw)
  To: alsa-devel

Hi,

this is the last part of my procfs cleanup patches.
These are merely cleanups, no functional changes are expected.

The whole patches are found in topic/proc-fixes in sound git tree.


thanks,

Takashi

===

Takashi Iwai (4):
  ALSA: info: Drop unused snd_info_entry.card field
  ALSA: info: Minor optimization
  ALSA: info: Move card id proc creation into info.c
  ALSA: cs46xx: Clean up proc file creations

 include/sound/core.h                |  1 -
 include/sound/info.h                |  1 -
 sound/core/info.c                   | 36 +++++++--------
 sound/core/init.c                   | 31 ++-----------
 sound/pci/cs46xx/cs46xx_dsp_spos.h  |  6 ---
 sound/pci/cs46xx/dsp_spos.c         | 87 ++++++++++++-------------------------
 sound/pci/cs46xx/dsp_spos_scb_lib.c | 13 +++---
 7 files changed, 55 insertions(+), 120 deletions(-)

-- 
2.16.4

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/4] ALSA: info: Drop unused snd_info_entry.card field
  2019-02-05 16:07 [PATCH 0/4] ALSA: Yet more cleanups for procfs Takashi Iwai
@ 2019-02-05 16:07 ` Takashi Iwai
  2019-02-05 16:07 ` [PATCH 2/4] ALSA: info: Minor optimization Takashi Iwai
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Takashi Iwai @ 2019-02-05 16:07 UTC (permalink / raw)
  To: alsa-devel

It's referred only in snd_card_id_read() which can receive the card
object via private_data.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 include/sound/info.h | 1 -
 sound/core/info.c    | 4 +---
 sound/core/init.c    | 6 ++++--
 3 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/include/sound/info.h b/include/sound/info.h
index 96530f7599e1..97fdda41e076 100644
--- a/include/sound/info.h
+++ b/include/sound/info.h
@@ -82,7 +82,6 @@ struct snd_info_entry {
 		struct snd_info_entry_ops *ops;
 	} c;
 	struct snd_info_entry *parent;
-	struct snd_card *card;
 	struct module *module;
 	void *private_data;
 	void (*private_free)(struct snd_info_entry *entry);
diff --git a/sound/core/info.c b/sound/core/info.c
index 92edc9488b5b..76800326ac56 100644
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -750,10 +750,8 @@ struct snd_info_entry *snd_info_create_card_entry(struct snd_card *card,
 	if (!parent)
 		parent = card->proc_root;
 	entry = snd_info_create_entry(name, parent);
-	if (entry) {
+	if (entry)
 		entry->module = card->module;
-		entry->card = card;
-	}
 	return entry;
 }
 EXPORT_SYMBOL(snd_info_create_card_entry);
diff --git a/sound/core/init.c b/sound/core/init.c
index 4849c611c0fe..5252a9ce13dc 100644
--- a/sound/core/init.c
+++ b/sound/core/init.c
@@ -104,7 +104,9 @@ EXPORT_SYMBOL(snd_mixer_oss_notify_callback);
 static void snd_card_id_read(struct snd_info_entry *entry,
 			     struct snd_info_buffer *buffer)
 {
-	snd_iprintf(buffer, "%s\n", entry->card->id);
+	struct snd_card *card = entry->private_data;
+
+	snd_iprintf(buffer, "%s\n", card->id);
 }
 
 static int init_info_for_card(struct snd_card *card)
@@ -116,7 +118,7 @@ static int init_info_for_card(struct snd_card *card)
 		dev_dbg(card->dev, "unable to create card entry\n");
 		return -ENOMEM;
 	}
-	entry->c.text.read = snd_card_id_read;
+	snd_info_set_text_ops(entry, card, snd_card_id_read);
 	card->proc_id = entry;
 
 	return snd_info_card_register(card);
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/4] ALSA: info: Minor optimization
  2019-02-05 16:07 [PATCH 0/4] ALSA: Yet more cleanups for procfs Takashi Iwai
  2019-02-05 16:07 ` [PATCH 1/4] ALSA: info: Drop unused snd_info_entry.card field Takashi Iwai
@ 2019-02-05 16:07 ` Takashi Iwai
  2019-02-05 17:55   ` Jaroslav Kysela
  2019-02-05 16:07 ` [PATCH 3/4] ALSA: info: Move card id proc creation into info.c Takashi Iwai
  2019-02-05 16:07 ` [PATCH 4/4] ALSA: cs46xx: Clean up proc file creations Takashi Iwai
  3 siblings, 1 reply; 7+ messages in thread
From: Takashi Iwai @ 2019-02-05 16:07 UTC (permalink / raw)
  To: alsa-devel

Just a minor code optimization to reduce the source code size
slightly.  No functional changes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/core/info.c | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)

diff --git a/sound/core/info.c b/sound/core/info.c
index 76800326ac56..12b80e6d9ee4 100644
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -463,11 +463,12 @@ static struct snd_info_entry *create_subdir(struct module *mod,
 }
 
 static struct snd_info_entry *
-snd_info_create_entry(const char *name, struct snd_info_entry *parent);
+snd_info_create_entry(const char *name, struct snd_info_entry *parent,
+		      struct module *module);
 
 int __init snd_info_init(void)
 {
-	snd_proc_root = snd_info_create_entry("asound", NULL);
+	snd_proc_root = snd_info_create_entry("asound", NULL, THIS_MODULE);
 	if (!snd_proc_root)
 		return -ENOMEM;
 	snd_proc_root->mode = S_IFDIR | 0555;
@@ -684,7 +685,8 @@ EXPORT_SYMBOL(snd_info_get_str);
  * Return: The pointer of the new instance, or %NULL on failure.
  */
 static struct snd_info_entry *
-snd_info_create_entry(const char *name, struct snd_info_entry *parent)
+snd_info_create_entry(const char *name, struct snd_info_entry *parent,
+		      struct module *module)
 {
 	struct snd_info_entry *entry;
 	entry = kzalloc(sizeof(*entry), GFP_KERNEL);
@@ -701,6 +703,7 @@ snd_info_create_entry(const char *name, struct snd_info_entry *parent)
 	INIT_LIST_HEAD(&entry->children);
 	INIT_LIST_HEAD(&entry->list);
 	entry->parent = parent;
+	entry->module = module;
 	if (parent)
 		list_add_tail(&entry->list, &parent->children);
 	return entry;
@@ -720,14 +723,9 @@ struct snd_info_entry *snd_info_create_module_entry(struct module * module,
 					       const char *name,
 					       struct snd_info_entry *parent)
 {
-	struct snd_info_entry *entry;
-
 	if (!parent)
 		parent = snd_proc_root;
-	entry = snd_info_create_entry(name, parent);
-	if (entry)
-		entry->module = module;
-	return entry;
+	return snd_info_create_entry(name, parent, module);
 }
 EXPORT_SYMBOL(snd_info_create_module_entry);
 
@@ -745,14 +743,9 @@ struct snd_info_entry *snd_info_create_card_entry(struct snd_card *card,
 					     const char *name,
 					     struct snd_info_entry * parent)
 {
-	struct snd_info_entry *entry;
-
 	if (!parent)
 		parent = card->proc_root;
-	entry = snd_info_create_entry(name, parent);
-	if (entry)
-		entry->module = card->module;
-	return entry;
+	return snd_info_create_entry(name, parent, card->module);
 }
 EXPORT_SYMBOL(snd_info_create_card_entry);
 
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/4] ALSA: info: Move card id proc creation into info.c
  2019-02-05 16:07 [PATCH 0/4] ALSA: Yet more cleanups for procfs Takashi Iwai
  2019-02-05 16:07 ` [PATCH 1/4] ALSA: info: Drop unused snd_info_entry.card field Takashi Iwai
  2019-02-05 16:07 ` [PATCH 2/4] ALSA: info: Minor optimization Takashi Iwai
@ 2019-02-05 16:07 ` Takashi Iwai
  2019-02-05 16:07 ` [PATCH 4/4] ALSA: cs46xx: Clean up proc file creations Takashi Iwai
  3 siblings, 0 replies; 7+ messages in thread
From: Takashi Iwai @ 2019-02-05 16:07 UTC (permalink / raw)
  To: alsa-devel

The creation of card's id proc file can be moved gracefully into
info.c.  Also, the assignment of card->proc_id is superfluous and can
be dropped.  So let's do it.

Basically this is no functional change but code refactoring, but one
potential behavior change is that now it returns properly the error
code from snd_info_card_register().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 include/sound/core.h |  1 -
 sound/core/info.c    | 11 ++++++++++-
 sound/core/init.c    | 33 ++++-----------------------------
 3 files changed, 14 insertions(+), 31 deletions(-)

diff --git a/include/sound/core.h b/include/sound/core.h
index 36a5934cf4b1..e923c23e05dd 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -120,7 +120,6 @@ struct snd_card {
 	struct list_head ctl_files;	/* active control files */
 
 	struct snd_info_entry *proc_root;	/* root for soundcard specific files */
-	struct snd_info_entry *proc_id;	/* the card id */
 	struct proc_dir_entry *proc_root_link;	/* number link to real id */
 
 	struct list_head files_list;	/* all files associated to this card */
diff --git a/sound/core/info.c b/sound/core/info.c
index 12b80e6d9ee4..f8e054b9f1ae 100644
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -504,6 +504,14 @@ int __exit snd_info_done(void)
 	return 0;
 }
 
+static void snd_card_id_read(struct snd_info_entry *entry,
+			     struct snd_info_buffer *buffer)
+{
+	struct snd_card *card = entry->private_data;
+
+	snd_iprintf(buffer, "%s\n", card->id);
+}
+
 /*
  * create a card proc file
  * called from init.c
@@ -521,7 +529,8 @@ int snd_info_card_create(struct snd_card *card)
 	if (!entry)
 		return -ENOMEM;
 	card->proc_root = entry;
-	return 0;
+
+	return snd_card_ro_proc_new(card, "id", card, snd_card_id_read);
 }
 
 /*
diff --git a/sound/core/init.c b/sound/core/init.c
index 5252a9ce13dc..0c4dc40376a7 100644
--- a/sound/core/init.c
+++ b/sound/core/init.c
@@ -100,33 +100,6 @@ int (*snd_mixer_oss_notify_callback)(struct snd_card *card, int free_flag);
 EXPORT_SYMBOL(snd_mixer_oss_notify_callback);
 #endif
 
-#ifdef CONFIG_SND_PROC_FS
-static void snd_card_id_read(struct snd_info_entry *entry,
-			     struct snd_info_buffer *buffer)
-{
-	struct snd_card *card = entry->private_data;
-
-	snd_iprintf(buffer, "%s\n", card->id);
-}
-
-static int init_info_for_card(struct snd_card *card)
-{
-	struct snd_info_entry *entry;
-
-	entry = snd_info_create_card_entry(card, "id", card->proc_root);
-	if (!entry) {
-		dev_dbg(card->dev, "unable to create card entry\n");
-		return -ENOMEM;
-	}
-	snd_info_set_text_ops(entry, card, snd_card_id_read);
-	card->proc_id = entry;
-
-	return snd_info_card_register(card);
-}
-#else /* !CONFIG_SND_PROC_FS */
-#define init_info_for_card(card)
-#endif
-
 static int check_empty_slot(struct module *module, int slot)
 {
 	return !slots[slot] || !*slots[slot];
@@ -493,7 +466,6 @@ static int snd_card_do_free(struct snd_card *card)
 	snd_device_free_all(card);
 	if (card->private_free)
 		card->private_free(card);
-	snd_info_free_entry(card->proc_id);
 	if (snd_info_card_free(card) < 0) {
 		dev_warn(card->dev, "unable to free card info\n");
 		/* Not fatal error */
@@ -797,7 +769,10 @@ int snd_card_register(struct snd_card *card)
 	}
 	snd_cards[card->number] = card;
 	mutex_unlock(&snd_card_mutex);
-	init_info_for_card(card);
+	err = snd_info_card_register(card);
+	if (err < 0)
+		return err;
+
 #if IS_ENABLED(CONFIG_SND_MIXER_OSS)
 	if (snd_mixer_oss_notify_callback)
 		snd_mixer_oss_notify_callback(card, SND_MIXER_OSS_NOTIFY_REGISTER);
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/4] ALSA: cs46xx: Clean up proc file creations
  2019-02-05 16:07 [PATCH 0/4] ALSA: Yet more cleanups for procfs Takashi Iwai
                   ` (2 preceding siblings ...)
  2019-02-05 16:07 ` [PATCH 3/4] ALSA: info: Move card id proc creation into info.c Takashi Iwai
@ 2019-02-05 16:07 ` Takashi Iwai
  3 siblings, 0 replies; 7+ messages in thread
From: Takashi Iwai @ 2019-02-05 16:07 UTC (permalink / raw)
  To: alsa-devel

Again no functional changes, but only code clean up.
Use a standard macro for initializing the procfs entries, also drop
the info entries stored in dsp_spos_instance, as they are removed
recursively by a single snd_info_free_entry() calls.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/cs46xx/cs46xx_dsp_spos.h  |  6 ---
 sound/pci/cs46xx/dsp_spos.c         | 87 ++++++++++++-------------------------
 sound/pci/cs46xx/dsp_spos_scb_lib.c | 13 +++---
 3 files changed, 33 insertions(+), 73 deletions(-)

diff --git a/sound/pci/cs46xx/cs46xx_dsp_spos.h b/sound/pci/cs46xx/cs46xx_dsp_spos.h
index 8008c59288a6..a02e1e19c021 100644
--- a/sound/pci/cs46xx/cs46xx_dsp_spos.h
+++ b/sound/pci/cs46xx/cs46xx_dsp_spos.h
@@ -177,22 +177,16 @@ struct dsp_spos_instance {
 	/* proc fs */  
 	struct snd_card *snd_card;
 	struct snd_info_entry * proc_dsp_dir;
-	struct snd_info_entry * proc_sym_info_entry;
-	struct snd_info_entry * proc_modules_info_entry;
-	struct snd_info_entry * proc_parameter_dump_info_entry;
-	struct snd_info_entry * proc_sample_dump_info_entry;
 
 	/* SCB's descriptors */
 	int nscb;
 	int scb_highest_frag_index;
 	struct dsp_scb_descriptor scbs[DSP_MAX_SCB_DESC];
-	struct snd_info_entry * proc_scb_info_entry;
 	struct dsp_scb_descriptor * the_null_scb;
 
 	/* Task's descriptors */
 	int ntask;
 	struct dsp_task_descriptor tasks[DSP_MAX_TASK_DESC];
-	struct snd_info_entry * proc_task_info_entry;
 
 	/* SPDIF status */
 	int spdif_status_out;
diff --git a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c
index 3555f839371e..c28e58602679 100644
--- a/sound/pci/cs46xx/dsp_spos.c
+++ b/sound/pci/cs46xx/dsp_spos.c
@@ -809,52 +809,39 @@ int cs46xx_dsp_proc_init (struct snd_card *card, struct snd_cs46xx *chip)
 
 	entry = snd_info_create_card_entry(card, "spos_symbols",
 					   ins->proc_dsp_dir);
-	if (entry) {
-		entry->private_data = chip;
-		entry->mode = S_IFREG | 0644;
-		entry->c.text.read = cs46xx_dsp_proc_symbol_table_read;
-	}
-	ins->proc_sym_info_entry = entry;
+	if (entry)
+		snd_info_set_text_ops(entry, chip,
+				      cs46xx_dsp_proc_symbol_table_read);
     
-	if ((entry = snd_info_create_card_entry(card, "spos_modules", ins->proc_dsp_dir)) != NULL) {
-		entry->content = SNDRV_INFO_CONTENT_TEXT;
-		entry->private_data = chip;
-		entry->mode = S_IFREG | 0644;
-		entry->c.text.read = cs46xx_dsp_proc_modules_read;
-	}
-	ins->proc_modules_info_entry = entry;
+	entry = snd_info_create_card_entry(card, "spos_modules",
+					   ins->proc_dsp_dir);
+	if (entry)
+		snd_info_set_text_ops(entry, chip,
+				      cs46xx_dsp_proc_modules_read);
 
-	if ((entry = snd_info_create_card_entry(card, "parameter", ins->proc_dsp_dir)) != NULL) {
-		entry->content = SNDRV_INFO_CONTENT_TEXT;
-		entry->private_data = chip;
-		entry->mode = S_IFREG | 0644;
-		entry->c.text.read = cs46xx_dsp_proc_parameter_dump_read;
-	}
-	ins->proc_parameter_dump_info_entry = entry;
+	entry = snd_info_create_card_entry(card, "parameter",
+					   ins->proc_dsp_dir);
+	if (entry)
+		snd_info_set_text_ops(entry, chip,
+				      cs46xx_dsp_proc_parameter_dump_read);
 
-	if ((entry = snd_info_create_card_entry(card, "sample", ins->proc_dsp_dir)) != NULL) {
-		entry->content = SNDRV_INFO_CONTENT_TEXT;
-		entry->private_data = chip;
-		entry->mode = S_IFREG | 0644;
-		entry->c.text.read = cs46xx_dsp_proc_sample_dump_read;
-	}
-	ins->proc_sample_dump_info_entry = entry;
+	entry = snd_info_create_card_entry(card, "sample",
+					   ins->proc_dsp_dir);
+	if (entry)
+		snd_info_set_text_ops(entry, chip,
+				      cs46xx_dsp_proc_sample_dump_read);
 
-	if ((entry = snd_info_create_card_entry(card, "task_tree", ins->proc_dsp_dir)) != NULL) {
-		entry->content = SNDRV_INFO_CONTENT_TEXT;
-		entry->private_data = chip;
-		entry->mode = S_IFREG | 0644;
-		entry->c.text.read = cs46xx_dsp_proc_task_tree_read;
-	}
-	ins->proc_task_info_entry = entry;
+	entry = snd_info_create_card_entry(card, "task_tree",
+					   ins->proc_dsp_dir);
+	if (entry)
+		snd_info_set_text_ops(entry, chip,
+				      cs46xx_dsp_proc_task_tree_read);
 
-	if ((entry = snd_info_create_card_entry(card, "scb_info", ins->proc_dsp_dir)) != NULL) {
-		entry->content = SNDRV_INFO_CONTENT_TEXT;
-		entry->private_data = chip;
-		entry->mode = S_IFREG | 0644;
-		entry->c.text.read = cs46xx_dsp_proc_scb_read;
-	}
-	ins->proc_scb_info_entry = entry;
+	entry = snd_info_create_card_entry(card, "scb_info",
+					   ins->proc_dsp_dir);
+	if (entry)
+		snd_info_set_text_ops(entry, chip,
+				      cs46xx_dsp_proc_scb_read);
 
 	mutex_lock(&chip->spos_mutex);
 	/* register/update SCB's entries on proc */
@@ -876,24 +863,6 @@ int cs46xx_dsp_proc_done (struct snd_cs46xx *chip)
 	if (!ins)
 		return 0;
 
-	snd_info_free_entry(ins->proc_sym_info_entry);
-	ins->proc_sym_info_entry = NULL;
-
-	snd_info_free_entry(ins->proc_modules_info_entry);
-	ins->proc_modules_info_entry = NULL;
-
-	snd_info_free_entry(ins->proc_parameter_dump_info_entry);
-	ins->proc_parameter_dump_info_entry = NULL;
-
-	snd_info_free_entry(ins->proc_sample_dump_info_entry);
-	ins->proc_sample_dump_info_entry = NULL;
-
-	snd_info_free_entry(ins->proc_scb_info_entry);
-	ins->proc_scb_info_entry = NULL;
-
-	snd_info_free_entry(ins->proc_task_info_entry);
-	ins->proc_task_info_entry = NULL;
-
 	mutex_lock(&chip->spos_mutex);
 	for (i = 0; i < ins->nscb; ++i) {
 		if (ins->scbs[i].deleted) continue;
diff --git a/sound/pci/cs46xx/dsp_spos_scb_lib.c b/sound/pci/cs46xx/dsp_spos_scb_lib.c
index e056f9dc228b..1d9d610262de 100644
--- a/sound/pci/cs46xx/dsp_spos_scb_lib.c
+++ b/sound/pci/cs46xx/dsp_spos_scb_lib.c
@@ -254,8 +254,9 @@ void cs46xx_dsp_proc_register_scb_desc (struct snd_cs46xx *chip,
 	if (ins->snd_card != NULL && ins->proc_dsp_dir != NULL &&
 	    scb->proc_info == NULL) {
   
-		if ((entry = snd_info_create_card_entry(ins->snd_card, scb->scb_name, 
-							ins->proc_dsp_dir)) != NULL) {
+		entry = snd_info_create_card_entry(ins->snd_card, scb->scb_name,
+						   ins->proc_dsp_dir);
+		if (entry) {
 			scb_info = kmalloc(sizeof(struct proc_scb_info), GFP_KERNEL);
 			if (!scb_info) {
 				snd_info_free_entry(entry);
@@ -265,12 +266,8 @@ void cs46xx_dsp_proc_register_scb_desc (struct snd_cs46xx *chip,
 
 			scb_info->chip = chip;
 			scb_info->scb_desc = scb;
-      
-			entry->content = SNDRV_INFO_CONTENT_TEXT;
-			entry->private_data = scb_info;
-			entry->mode = S_IFREG | 0644;
-      
-			entry->c.text.read = cs46xx_dsp_proc_scb_info_read;
+			snd_info_set_text_ops(entry, scb_info,
+					      cs46xx_dsp_proc_scb_info_read);
 		}
 out:
 		scb->proc_info = entry;
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/4] ALSA: info: Minor optimization
  2019-02-05 16:07 ` [PATCH 2/4] ALSA: info: Minor optimization Takashi Iwai
@ 2019-02-05 17:55   ` Jaroslav Kysela
  2019-02-05 19:27     ` Takashi Iwai
  0 siblings, 1 reply; 7+ messages in thread
From: Jaroslav Kysela @ 2019-02-05 17:55 UTC (permalink / raw)
  To: Takashi Iwai, alsa-devel

Dne 5.2.2019 v 17:07 Takashi Iwai napsal(a):
> Just a minor code optimization to reduce the source code size
> slightly.  No functional changes.
> 
> Signed-off-by: Takashi Iwai <tiwai@suse.de>
> ---
>  sound/core/info.c | 23 ++++++++---------------
>  1 file changed, 8 insertions(+), 15 deletions(-)
> 
> diff --git a/sound/core/info.c b/sound/core/info.c
> index 76800326ac56..12b80e6d9ee4 100644
> --- a/sound/core/info.c
> +++ b/sound/core/info.c
> @@ -463,11 +463,12 @@ static struct snd_info_entry *create_subdir(struct module *mod,
>  }
>  
>  static struct snd_info_entry *
> -snd_info_create_entry(const char *name, struct snd_info_entry *parent);
> +snd_info_create_entry(const char *name, struct snd_info_entry *parent,
> +		      struct module *module);
>  
>  int __init snd_info_init(void)
>  {
> -	snd_proc_root = snd_info_create_entry("asound", NULL);
> +	snd_proc_root = snd_info_create_entry("asound", NULL, THIS_MODULE);
>  	if (!snd_proc_root)
>  		return -ENOMEM;
>  	snd_proc_root->mode = S_IFDIR | 0555;
> @@ -684,7 +685,8 @@ EXPORT_SYMBOL(snd_info_get_str);
>   * Return: The pointer of the new instance, or %NULL on failure.
>   */
>  static struct snd_info_entry *
> -snd_info_create_entry(const char *name, struct snd_info_entry *parent)
> +snd_info_create_entry(const char *name, struct snd_info_entry *parent,
> +		      struct module *module)
>  {
>  	struct snd_info_entry *entry;
>  	entry = kzalloc(sizeof(*entry), GFP_KERNEL);
> @@ -701,6 +703,7 @@ snd_info_create_entry(const char *name, struct snd_info_entry *parent)
>  	INIT_LIST_HEAD(&entry->children);
>  	INIT_LIST_HEAD(&entry->list);
>  	entry->parent = parent;
> +	entry->module = module;
>  	if (parent)
>  		list_add_tail(&entry->list, &parent->children);
>  	return entry;
> @@ -720,14 +723,9 @@ struct snd_info_entry *snd_info_create_module_entry(struct module * module,
>  					       const char *name,
>  					       struct snd_info_entry *parent)
>  {
> -	struct snd_info_entry *entry;
> -
>  	if (!parent)
>  		parent = snd_proc_root;
> -	entry = snd_info_create_entry(name, parent);
> -	if (entry)
> -		entry->module = module;
> -	return entry;
> +	return snd_info_create_entry(name, parent, module);
>  }
>  EXPORT_SYMBOL(snd_info_create_module_entry);
>  
> @@ -745,14 +743,9 @@ struct snd_info_entry *snd_info_create_card_entry(struct snd_card *card,
>  					     const char *name,
>  					     struct snd_info_entry * parent)
>  {
> -	struct snd_info_entry *entry;
> -
>  	if (!parent)
>  		parent = card->proc_root;
> -	entry = snd_info_create_entry(name, parent);
> -	if (entry)
> -		entry->module = card->module;
> -	return entry;
> +	return snd_info_create_entry(name, parent, card->module);
>  }
>  EXPORT_SYMBOL(snd_info_create_card_entry);

Won't be better to define those two above functions as inline now?

For rest: Reviewed-by: Jaroslav Kysela <perex@perex.cz>

Thanks,
	Jaroslav

-- 
Jaroslav Kysela <perex@perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/4] ALSA: info: Minor optimization
  2019-02-05 17:55   ` Jaroslav Kysela
@ 2019-02-05 19:27     ` Takashi Iwai
  0 siblings, 0 replies; 7+ messages in thread
From: Takashi Iwai @ 2019-02-05 19:27 UTC (permalink / raw)
  To: Jaroslav Kysela; +Cc: alsa-devel

On Tue, 05 Feb 2019 18:55:50 +0100,
Jaroslav Kysela wrote:
> 
> Dne 5.2.2019 v 17:07 Takashi Iwai napsal(a):
> > Just a minor code optimization to reduce the source code size
> > slightly.  No functional changes.
> > 
> > Signed-off-by: Takashi Iwai <tiwai@suse.de>
> > ---
> >  sound/core/info.c | 23 ++++++++---------------
> >  1 file changed, 8 insertions(+), 15 deletions(-)
> > 
> > diff --git a/sound/core/info.c b/sound/core/info.c
> > index 76800326ac56..12b80e6d9ee4 100644
> > --- a/sound/core/info.c
> > +++ b/sound/core/info.c
> > @@ -463,11 +463,12 @@ static struct snd_info_entry *create_subdir(struct module *mod,
> >  }
> >  
> >  static struct snd_info_entry *
> > -snd_info_create_entry(const char *name, struct snd_info_entry *parent);
> > +snd_info_create_entry(const char *name, struct snd_info_entry *parent,
> > +		      struct module *module);
> >  
> >  int __init snd_info_init(void)
> >  {
> > -	snd_proc_root = snd_info_create_entry("asound", NULL);
> > +	snd_proc_root = snd_info_create_entry("asound", NULL, THIS_MODULE);
> >  	if (!snd_proc_root)
> >  		return -ENOMEM;
> >  	snd_proc_root->mode = S_IFDIR | 0555;
> > @@ -684,7 +685,8 @@ EXPORT_SYMBOL(snd_info_get_str);
> >   * Return: The pointer of the new instance, or %NULL on failure.
> >   */
> >  static struct snd_info_entry *
> > -snd_info_create_entry(const char *name, struct snd_info_entry *parent)
> > +snd_info_create_entry(const char *name, struct snd_info_entry *parent,
> > +		      struct module *module)
> >  {
> >  	struct snd_info_entry *entry;
> >  	entry = kzalloc(sizeof(*entry), GFP_KERNEL);
> > @@ -701,6 +703,7 @@ snd_info_create_entry(const char *name, struct snd_info_entry *parent)
> >  	INIT_LIST_HEAD(&entry->children);
> >  	INIT_LIST_HEAD(&entry->list);
> >  	entry->parent = parent;
> > +	entry->module = module;
> >  	if (parent)
> >  		list_add_tail(&entry->list, &parent->children);
> >  	return entry;
> > @@ -720,14 +723,9 @@ struct snd_info_entry *snd_info_create_module_entry(struct module * module,
> >  					       const char *name,
> >  					       struct snd_info_entry *parent)
> >  {
> > -	struct snd_info_entry *entry;
> > -
> >  	if (!parent)
> >  		parent = snd_proc_root;
> > -	entry = snd_info_create_entry(name, parent);
> > -	if (entry)
> > -		entry->module = module;
> > -	return entry;
> > +	return snd_info_create_entry(name, parent, module);
> >  }
> >  EXPORT_SYMBOL(snd_info_create_module_entry);
> >  
> > @@ -745,14 +743,9 @@ struct snd_info_entry *snd_info_create_card_entry(struct snd_card *card,
> >  					     const char *name,
> >  					     struct snd_info_entry * parent)
> >  {
> > -	struct snd_info_entry *entry;
> > -
> >  	if (!parent)
> >  		parent = card->proc_root;
> > -	entry = snd_info_create_entry(name, parent);
> > -	if (entry)
> > -		entry->module = card->module;
> > -	return entry;
> > +	return snd_info_create_entry(name, parent, card->module);
> >  }
> >  EXPORT_SYMBOL(snd_info_create_card_entry);
> 
> Won't be better to define those two above functions as inline now?

That's possible, but then we'd need to export snd_proc_root.  Also
snd_info_create_entry() is a local function right now, so we'll need
to export this one, too.  Overall, there won't be any big gain, I
guess.


thanks,

Takashi

> 
> For rest: Reviewed-by: Jaroslav Kysela <perex@perex.cz>
> 
> Thanks,
> 	Jaroslav
> 
> -- 
> Jaroslav Kysela <perex@perex.cz>
> Linux Sound Maintainer; ALSA Project; Red Hat, Inc.
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-02-05 19:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-05 16:07 [PATCH 0/4] ALSA: Yet more cleanups for procfs Takashi Iwai
2019-02-05 16:07 ` [PATCH 1/4] ALSA: info: Drop unused snd_info_entry.card field Takashi Iwai
2019-02-05 16:07 ` [PATCH 2/4] ALSA: info: Minor optimization Takashi Iwai
2019-02-05 17:55   ` Jaroslav Kysela
2019-02-05 19:27     ` Takashi Iwai
2019-02-05 16:07 ` [PATCH 3/4] ALSA: info: Move card id proc creation into info.c Takashi Iwai
2019-02-05 16:07 ` [PATCH 4/4] ALSA: cs46xx: Clean up proc file creations Takashi Iwai

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.