[ALSA] Remove redundant NULL checks before kfree
Timer Midlevel,ALSA sequencer,ALSA<-OSS sequencer,Digigram VX core I2C tea6330t,GUS Library,VIA82xx driver,VIA82xx-modem driver CA0106 driver,CS46xx driver,EMU10K1/EMU10K2 driver,YMFPCI driver Digigram VX Pocket driver,Common EMU synth,USB generic driver,USB USX2Y Checking a pointer for NULL before calling kfree() on it is redundant, kfree() deals with NULL pointers just fine. This patch removes such checks from sound/ This patch also makes another, but closely related, change. It avoids casting pointers about to be kfree()'ed. Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
6fd8b87f0e
commit
4d572776d4
18 changed files with 39 additions and 87 deletions
|
@ -325,14 +325,10 @@ snd_seq_oss_synth_cleanup(seq_oss_devinfo_t *dp)
|
||||||
}
|
}
|
||||||
snd_use_lock_free(&rec->use_lock);
|
snd_use_lock_free(&rec->use_lock);
|
||||||
}
|
}
|
||||||
if (info->sysex) {
|
kfree(info->sysex);
|
||||||
kfree(info->sysex);
|
info->sysex = NULL;
|
||||||
info->sysex = NULL;
|
kfree(info->ch);
|
||||||
}
|
info->ch = NULL;
|
||||||
if (info->ch) {
|
|
||||||
kfree(info->ch);
|
|
||||||
info->ch = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
dp->synth_opened = 0;
|
dp->synth_opened = 0;
|
||||||
dp->max_synthdev = 0;
|
dp->max_synthdev = 0;
|
||||||
|
@ -418,14 +414,10 @@ snd_seq_oss_synth_reset(seq_oss_devinfo_t *dp, int dev)
|
||||||
dp->file_mode) < 0) {
|
dp->file_mode) < 0) {
|
||||||
midi_synth_dev.opened--;
|
midi_synth_dev.opened--;
|
||||||
info->opened = 0;
|
info->opened = 0;
|
||||||
if (info->sysex) {
|
kfree(info->sysex);
|
||||||
kfree(info->sysex);
|
info->sysex = NULL;
|
||||||
info->sysex = NULL;
|
kfree(info->ch);
|
||||||
}
|
info->ch = NULL;
|
||||||
if (info->ch) {
|
|
||||||
kfree(info->ch);
|
|
||||||
info->ch = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,10 +140,7 @@ dummy_input(snd_seq_event_t *ev, int direct, void *private_data, int atomic, int
|
||||||
static void
|
static void
|
||||||
dummy_free(void *private_data)
|
dummy_free(void *private_data)
|
||||||
{
|
{
|
||||||
snd_seq_dummy_port_t *p;
|
kfree(private_data);
|
||||||
|
|
||||||
p = private_data;
|
|
||||||
kfree(p);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1469,14 +1469,10 @@ static int snd_timer_user_tselect(struct file *file, snd_timer_select_t __user *
|
||||||
if ((err = snd_timer_open(&tu->timeri, str, &tselect.id, current->pid)) < 0)
|
if ((err = snd_timer_open(&tu->timeri, str, &tselect.id, current->pid)) < 0)
|
||||||
goto __err;
|
goto __err;
|
||||||
|
|
||||||
if (tu->queue) {
|
kfree(tu->queue);
|
||||||
kfree(tu->queue);
|
tu->queue = NULL;
|
||||||
tu->queue = NULL;
|
kfree(tu->tqueue);
|
||||||
}
|
tu->tqueue = NULL;
|
||||||
if (tu->tqueue) {
|
|
||||||
kfree(tu->tqueue);
|
|
||||||
tu->tqueue = NULL;
|
|
||||||
}
|
|
||||||
if (tu->tread) {
|
if (tu->tread) {
|
||||||
tu->tqueue = (snd_timer_tread_t *)kmalloc(tu->queue_size * sizeof(snd_timer_tread_t), GFP_KERNEL);
|
tu->tqueue = (snd_timer_tread_t *)kmalloc(tu->queue_size * sizeof(snd_timer_tread_t), GFP_KERNEL);
|
||||||
if (tu->tqueue == NULL)
|
if (tu->tqueue == NULL)
|
||||||
|
|
|
@ -1264,14 +1264,10 @@ static void snd_vx_pcm_free(snd_pcm_t *pcm)
|
||||||
{
|
{
|
||||||
vx_core_t *chip = pcm->private_data;
|
vx_core_t *chip = pcm->private_data;
|
||||||
chip->pcm[pcm->device] = NULL;
|
chip->pcm[pcm->device] = NULL;
|
||||||
if (chip->playback_pipes) {
|
kfree(chip->playback_pipes);
|
||||||
kfree(chip->playback_pipes);
|
chip->playback_pipes = NULL;
|
||||||
chip->playback_pipes = NULL;
|
kfree(chip->capture_pipes);
|
||||||
}
|
chip->capture_pipes = NULL;
|
||||||
if (chip->capture_pipes) {
|
|
||||||
kfree(chip->capture_pipes);
|
|
||||||
chip->capture_pipes = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -266,8 +266,7 @@ TEA6330T_TREBLE("Tone Control - Treble", 0)
|
||||||
|
|
||||||
static void snd_tea6330_free(snd_i2c_device_t *device)
|
static void snd_tea6330_free(snd_i2c_device_t *device)
|
||||||
{
|
{
|
||||||
tea6330t_t *tea = device->private_data;
|
kfree(device->private_data);
|
||||||
kfree(tea);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int snd_tea6330t_update_mixer(snd_card_t * card,
|
int snd_tea6330t_update_mixer(snd_card_t * card,
|
||||||
|
|
|
@ -656,8 +656,7 @@ static snd_pcm_hardware_t snd_gf1_pcm_capture =
|
||||||
|
|
||||||
static void snd_gf1_pcm_playback_free(snd_pcm_runtime_t *runtime)
|
static void snd_gf1_pcm_playback_free(snd_pcm_runtime_t *runtime)
|
||||||
{
|
{
|
||||||
gus_pcm_private_t * pcmp = runtime->private_data;
|
kfree(runtime->private_data);
|
||||||
kfree(pcmp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int snd_gf1_pcm_playback_open(snd_pcm_substream_t *substream)
|
static int snd_gf1_pcm_playback_open(snd_pcm_substream_t *substream)
|
||||||
|
|
|
@ -332,11 +332,7 @@ static void snd_ca0106_intr_enable(ca0106_t *emu, unsigned int intrenb)
|
||||||
|
|
||||||
static void snd_ca0106_pcm_free_substream(snd_pcm_runtime_t *runtime)
|
static void snd_ca0106_pcm_free_substream(snd_pcm_runtime_t *runtime)
|
||||||
{
|
{
|
||||||
ca0106_pcm_t *epcm = runtime->private_data;
|
kfree(runtime->private_data);
|
||||||
|
|
||||||
if (epcm) {
|
|
||||||
kfree(epcm);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* open_playback callback */
|
/* open_playback callback */
|
||||||
|
|
|
@ -1295,8 +1295,7 @@ static snd_pcm_hw_constraint_list_t hw_constraints_period_sizes = {
|
||||||
|
|
||||||
static void snd_cs46xx_pcm_free_substream(snd_pcm_runtime_t *runtime)
|
static void snd_cs46xx_pcm_free_substream(snd_pcm_runtime_t *runtime)
|
||||||
{
|
{
|
||||||
cs46xx_pcm_t * cpcm = runtime->private_data;
|
kfree(runtime->private_data);
|
||||||
kfree(cpcm);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _cs46xx_playback_open_channel (snd_pcm_substream_t * substream,int pcm_channel_id)
|
static int _cs46xx_playback_open_channel (snd_pcm_substream_t * substream,int pcm_channel_id)
|
||||||
|
|
|
@ -361,10 +361,7 @@ static void snd_emu10k1x_gpio_write(emu10k1x_t *emu, unsigned int value)
|
||||||
|
|
||||||
static void snd_emu10k1x_pcm_free_substream(snd_pcm_runtime_t *runtime)
|
static void snd_emu10k1x_pcm_free_substream(snd_pcm_runtime_t *runtime)
|
||||||
{
|
{
|
||||||
emu10k1x_pcm_t *epcm = runtime->private_data;
|
kfree(runtime->private_data);
|
||||||
|
|
||||||
if (epcm)
|
|
||||||
kfree(epcm);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void snd_emu10k1x_pcm_interrupt(emu10k1x_t *emu, emu10k1x_voice_t *voice)
|
static void snd_emu10k1x_pcm_interrupt(emu10k1x_t *emu, emu10k1x_voice_t *voice)
|
||||||
|
|
|
@ -991,9 +991,7 @@ static void snd_emu10k1_pcm_efx_mixer_notify(emu10k1_t *emu, int idx, int activa
|
||||||
|
|
||||||
static void snd_emu10k1_pcm_free_substream(snd_pcm_runtime_t *runtime)
|
static void snd_emu10k1_pcm_free_substream(snd_pcm_runtime_t *runtime)
|
||||||
{
|
{
|
||||||
emu10k1_pcm_t *epcm = runtime->private_data;
|
kfree(runtime->private_data);
|
||||||
|
|
||||||
kfree(epcm);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int snd_emu10k1_efx_playback_close(snd_pcm_substream_t * substream)
|
static int snd_emu10k1_efx_playback_close(snd_pcm_substream_t * substream)
|
||||||
|
|
|
@ -491,10 +491,8 @@ static int clean_via_table(viadev_t *dev, snd_pcm_substream_t *substream,
|
||||||
snd_dma_free_pages(&dev->table);
|
snd_dma_free_pages(&dev->table);
|
||||||
dev->table.area = NULL;
|
dev->table.area = NULL;
|
||||||
}
|
}
|
||||||
if (dev->idx_table) {
|
kfree(dev->idx_table);
|
||||||
kfree(dev->idx_table);
|
dev->idx_table = NULL;
|
||||||
dev->idx_table = NULL;
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -352,10 +352,8 @@ static int clean_via_table(viadev_t *dev, snd_pcm_substream_t *substream,
|
||||||
snd_dma_free_pages(&dev->table);
|
snd_dma_free_pages(&dev->table);
|
||||||
dev->table.area = NULL;
|
dev->table.area = NULL;
|
||||||
}
|
}
|
||||||
if (dev->idx_table) {
|
kfree(dev->idx_table);
|
||||||
kfree(dev->idx_table);
|
dev->idx_table = NULL;
|
||||||
dev->idx_table = NULL;
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -829,9 +829,7 @@ static snd_pcm_hardware_t snd_ymfpci_capture =
|
||||||
|
|
||||||
static void snd_ymfpci_pcm_free_substream(snd_pcm_runtime_t *runtime)
|
static void snd_ymfpci_pcm_free_substream(snd_pcm_runtime_t *runtime)
|
||||||
{
|
{
|
||||||
ymfpci_pcm_t *ypcm = runtime->private_data;
|
kfree(runtime->private_data);
|
||||||
|
|
||||||
kfree(ypcm);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int snd_ymfpci_playback_open_1(snd_pcm_substream_t * substream)
|
static int snd_ymfpci_playback_open_1(snd_pcm_substream_t * substream)
|
||||||
|
|
|
@ -68,8 +68,7 @@ static int snd_vxpocket_free(vx_core_t *chip)
|
||||||
if (hw)
|
if (hw)
|
||||||
hw->card_list[vxp->index] = NULL;
|
hw->card_list[vxp->index] = NULL;
|
||||||
chip->card = NULL;
|
chip->card = NULL;
|
||||||
if (chip->dev)
|
kfree(chip->dev);
|
||||||
kfree(chip->dev);
|
|
||||||
|
|
||||||
snd_vx_free_firmware(chip);
|
snd_vx_free_firmware(chip);
|
||||||
kfree(chip);
|
kfree(chip);
|
||||||
|
|
|
@ -291,10 +291,8 @@ snd_emux_create_effect(snd_emux_port_t *p)
|
||||||
void
|
void
|
||||||
snd_emux_delete_effect(snd_emux_port_t *p)
|
snd_emux_delete_effect(snd_emux_port_t *p)
|
||||||
{
|
{
|
||||||
if (p->effect) {
|
kfree(p->effect);
|
||||||
kfree(p->effect);
|
p->effect = NULL;
|
||||||
p->effect = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -859,10 +859,8 @@ static void release_urb_ctx(snd_urb_ctx_t *u)
|
||||||
usb_free_urb(u->urb);
|
usb_free_urb(u->urb);
|
||||||
u->urb = NULL;
|
u->urb = NULL;
|
||||||
}
|
}
|
||||||
if (u->buf) {
|
kfree(u->buf);
|
||||||
kfree(u->buf);
|
u->buf = NULL;
|
||||||
u->buf = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -880,10 +878,8 @@ static void release_substream_urbs(snd_usb_substream_t *subs, int force)
|
||||||
release_urb_ctx(&subs->dataurb[i]);
|
release_urb_ctx(&subs->dataurb[i]);
|
||||||
for (i = 0; i < SYNC_URBS; i++)
|
for (i = 0; i < SYNC_URBS; i++)
|
||||||
release_urb_ctx(&subs->syncurb[i]);
|
release_urb_ctx(&subs->syncurb[i]);
|
||||||
if (subs->tmpbuf) {
|
kfree(subs->tmpbuf);
|
||||||
kfree(subs->tmpbuf);
|
subs->tmpbuf = NULL;
|
||||||
subs->tmpbuf = NULL;
|
|
||||||
}
|
|
||||||
subs->nurbs = 0;
|
subs->nurbs = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -623,10 +623,8 @@ static struct usb_feature_control_info audio_feature_info[] = {
|
||||||
/* private_free callback */
|
/* private_free callback */
|
||||||
static void usb_mixer_elem_free(snd_kcontrol_t *kctl)
|
static void usb_mixer_elem_free(snd_kcontrol_t *kctl)
|
||||||
{
|
{
|
||||||
if (kctl->private_data) {
|
kfree(kctl->private_data);
|
||||||
kfree(kctl->private_data);
|
kctl->private_data = NULL;
|
||||||
kctl->private_data = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -401,10 +401,8 @@ static void usX2Y_urbs_release(snd_usX2Y_substream_t *subs)
|
||||||
for (i = 0; i < NRURBS; i++)
|
for (i = 0; i < NRURBS; i++)
|
||||||
usX2Y_urb_release(subs->urb + i, subs != subs->usX2Y->subs[SNDRV_PCM_STREAM_PLAYBACK]);
|
usX2Y_urb_release(subs->urb + i, subs != subs->usX2Y->subs[SNDRV_PCM_STREAM_PLAYBACK]);
|
||||||
|
|
||||||
if (subs->tmpbuf) {
|
kfree(subs->tmpbuf);
|
||||||
kfree(subs->tmpbuf);
|
subs->tmpbuf = NULL;
|
||||||
subs->tmpbuf = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* initialize a substream's urbs
|
* initialize a substream's urbs
|
||||||
|
|
Loading…
Reference in a new issue