Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b7d90a35 authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela
Browse files

[ALSA] Fix Oops at rmmod with CONFIG_SND_VERBOSE_PROCFS=n



Fixed Oops at rmmod with CONFIG_SND_VERBOSE_PROCFS=n.
Add ifdef to struct fields for optimization and better compile
checks.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 61fb63c0
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -374,12 +374,14 @@ struct snd_pcm_substream {
	/* -- OSS things -- */
	struct snd_pcm_oss_substream oss;
#endif
#ifdef CONFIG_SND_VERBOSE_PROCFS
	struct snd_info_entry *proc_root;
	struct snd_info_entry *proc_info_entry;
	struct snd_info_entry *proc_hw_params_entry;
	struct snd_info_entry *proc_sw_params_entry;
	struct snd_info_entry *proc_status_entry;
	struct snd_info_entry *proc_prealloc_entry;
#endif
	/* misc flags */
	unsigned int no_mmap_ctrl: 1;
	unsigned int hw_opened: 1;
@@ -400,12 +402,14 @@ struct snd_pcm_str {
	struct snd_pcm_oss_stream oss;
#endif
	struct snd_pcm_file *files;
#ifdef CONFIG_SND_VERBOSE_PROCFS
	struct snd_info_entry *proc_root;
	struct snd_info_entry *proc_info_entry;
#ifdef CONFIG_SND_DEBUG
#ifdef CONFIG_SND_PCM_XRUN_DEBUG
	unsigned int xrun_debug;	/* 0 = disabled, 1 = verbose, 2 = stacktrace */
	struct snd_info_entry *proc_xrun_debug_entry;
#endif
#endif
};

struct snd_pcm {
+2 −0
Original line number Diff line number Diff line
@@ -75,7 +75,9 @@ struct snd_pcm_oss_substream {
struct snd_pcm_oss_stream {
	struct snd_pcm_oss_setup *setup_list;	/* setup list */
	struct mutex setup_mutex;
#ifdef CONFIG_SND_VERBOSE_PROCFS
	struct snd_info_entry *proc_entry;
#endif
};

struct snd_pcm_oss {
+2 −2
Original line number Diff line number Diff line
@@ -142,7 +142,7 @@ config SND_SUPPORT_OLD_API

config SND_VERBOSE_PROCFS
	bool "Verbose procfs contents"
	depends on SND
	depends on SND && PROC_FS
	default y
	help
	  Say Y here to include code for verbose procfs contents (provides
@@ -175,7 +175,7 @@ config SND_DEBUG_DETECT
config SND_PCM_XRUN_DEBUG
	bool "Enable PCM ring buffer overrun/underrun debugging"
	default n
	depends on SND_DEBUG
	depends on SND_DEBUG && SND_VERBOSE_PROCFS
	help
	  Say Y to enable the PCM ring buffer overrun/underrun debugging.
	  It is usually not required, but if you have trouble with
+3 −3
Original line number Diff line number Diff line
@@ -2214,7 +2214,7 @@ static int snd_pcm_oss_mmap(struct file *file, struct vm_area_struct *area)
	return 0;
}

#ifdef CONFIG_PROC_FS
#ifdef CONFIG_SND_VERBOSE_PROCFS
/*
 *  /proc interface
 */
@@ -2368,10 +2368,10 @@ static void snd_pcm_oss_proc_done(struct snd_pcm *pcm)
		}
	}
}
#else /* !CONFIG_PROC_FS */
#else /* !CONFIG_SND_VERBOSE_PROCFS */
#define snd_pcm_oss_proc_init(pcm)
#define snd_pcm_oss_proc_done(pcm)
#endif /* CONFIG_PROC_FS */
#endif /* CONFIG_SND_VERBOSE_PROCFS */

/*
 *  ENTRY functions
+3 −3
Original line number Diff line number Diff line
@@ -142,7 +142,7 @@ static int snd_pcm_control_ioctl(struct snd_card *card,
	return -ENOIOCTLCMD;
}

#if defined(CONFIG_PROC_FS) && defined(CONFIG_SND_VERBOSE_PROCFS)
#ifdef CONFIG_SND_VERBOSE_PROCFS

#define STATE(v) [SNDRV_PCM_STATE_##v] = #v
#define STREAM(v) [SNDRV_PCM_STREAM_##v] = #v
@@ -599,12 +599,12 @@ static int snd_pcm_substream_proc_done(struct snd_pcm_substream *substream)
	}
	return 0;
}
#else /* !CONFIG_PROC_FS */
#else /* !CONFIG_SND_VERBOSE_PROCFS */
static inline int snd_pcm_stream_proc_init(struct snd_pcm_str *pstr) { return 0; }
static inline int snd_pcm_stream_proc_done(struct snd_pcm_str *pstr) { return 0; }
static inline int snd_pcm_substream_proc_init(struct snd_pcm_substream *substream) { return 0; }
static inline int snd_pcm_substream_proc_done(struct snd_pcm_substream *substream) { return 0; }
#endif /* CONFIG_PROC_FS */
#endif /* CONFIG_SND_VERBOSE_PROCFS */

/**
 * snd_pcm_new_stream - create a new PCM stream
Loading