mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 02:50:43 +00:00
![Takashi Iwai](/assets/img/avatar_default.png)
The sequencer core module doesn't call some destructors in the error path of the init code, which may leave some resources. This patch mainly fix these leaks by calling the destructors appropriately at alsa_seq_init(). Also the patch brings a few cleanups along with it, namely: - Expand the old "if ((err = xxx) < 0)" coding style - Get rid of empty seq_queue_init() and its caller - Change snd_seq_info_done() to void Last but not least, a couple of functions lose __exit annotation since they are called also in alsa_seq_init(). No functional changes but minor code cleanups. Signed-off-by: Takashi Iwai <tiwai@suse.de>
40 lines
1.4 KiB
C
40 lines
1.4 KiB
C
/*
|
|
* ALSA sequencer /proc info
|
|
* Copyright (c) 1998 by Frank van de Pol <fvdpol@coil.demon.nl>
|
|
*
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*
|
|
*/
|
|
#ifndef __SND_SEQ_INFO_H
|
|
#define __SND_SEQ_INFO_H
|
|
|
|
#include <sound/info.h>
|
|
#include <sound/seq_kernel.h>
|
|
|
|
void snd_seq_info_clients_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer);
|
|
void snd_seq_info_timer_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer);
|
|
void snd_seq_info_queues_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer);
|
|
|
|
|
|
#ifdef CONFIG_SND_PROC_FS
|
|
int snd_seq_info_init(void);
|
|
void snd_seq_info_done(void);
|
|
#else
|
|
static inline int snd_seq_info_init(void) { return 0; }
|
|
static inline void snd_seq_info_done(void) {}
|
|
#endif
|
|
|
|
#endif
|