From: Jesper Juhl 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 Signed-off-by: Andrew Morton --- sound/oss/ad1848.c | 3 +-- sound/oss/ad1889.c | 3 +-- sound/oss/dmasound/dmasound_awacs.c | 20 +++++++------------- sound/oss/emu10k1/midi.c | 6 ++---- sound/oss/emu10k1/passthrough.c | 3 +-- sound/oss/maestro.c | 2 +- sound/oss/mpu401.c | 3 +-- sound/oss/sb_common.c | 4 ++-- 8 files changed, 16 insertions(+), 28 deletions(-) diff -puN sound/oss/ad1848.c~remove-redundant-null-checks-before-kfree-in-sound-and sound/oss/ad1848.c --- 25/sound/oss/ad1848.c~remove-redundant-null-checks-before-kfree-in-sound-and 2005-05-31 16:43:24.000000000 -0700 +++ 25-akpm/sound/oss/ad1848.c 2005-05-31 16:43:24.000000000 -0700 @@ -2178,8 +2178,7 @@ void ad1848_unload(int io_base, int irq, if (devc != NULL) { - if(audio_devs[dev]->portc!=NULL) - kfree(audio_devs[dev]->portc); + kfree(audio_devs[dev]->portc); release_region(devc->base, 4); if (!share_dma) diff -puN sound/oss/ad1889.c~remove-redundant-null-checks-before-kfree-in-sound-and sound/oss/ad1889.c --- 25/sound/oss/ad1889.c~remove-redundant-null-checks-before-kfree-in-sound-and 2005-05-31 16:43:24.000000000 -0700 +++ 25-akpm/sound/oss/ad1889.c 2005-05-31 16:43:24.000000000 -0700 @@ -277,8 +277,7 @@ static void ad1889_free_dev(ad1889_dev_t for (j = 0; j < AD_MAX_STATES; j++) { dmabuf = &dev->state[j].dmabuf; - if (dmabuf->rawbuf != NULL) - kfree(dmabuf->rawbuf); + kfree(dmabuf->rawbuf); } kfree(dev); diff -puN sound/oss/dmasound/dmasound_awacs.c~remove-redundant-null-checks-before-kfree-in-sound-and sound/oss/dmasound/dmasound_awacs.c --- 25/sound/oss/dmasound/dmasound_awacs.c~remove-redundant-null-checks-before-kfree-in-sound-and 2005-05-31 16:43:24.000000000 -0700 +++ 25-akpm/sound/oss/dmasound/dmasound_awacs.c 2005-05-31 16:43:24.000000000 -0700 @@ -671,14 +671,10 @@ static void PMacIrqCleanup(void) release_OF_resource(awacs_node, 1); release_OF_resource(awacs_node, 2); - if (awacs_tx_cmd_space) - kfree(awacs_tx_cmd_space); - if (awacs_rx_cmd_space) - kfree(awacs_rx_cmd_space); - if (beep_dbdma_cmd_space) - kfree(beep_dbdma_cmd_space); - if (beep_buf) - kfree(beep_buf); + kfree(awacs_tx_cmd_space); + kfree(awacs_rx_cmd_space); + kfree(beep_dbdma_cmd_space); + kfree(beep_buf); #ifdef CONFIG_PMAC_PBOOK pmu_unregister_sleep_notifier(&awacs_sleep_notifier); #endif @@ -2301,8 +2297,7 @@ if (count <= 0) #endif if ((write_sq.max_count + 1) > number_of_tx_cmd_buffers) { - if (awacs_tx_cmd_space) - kfree(awacs_tx_cmd_space); + kfree(awacs_tx_cmd_space); number_of_tx_cmd_buffers = 0; /* we need nbufs + 1 (for the loop) and we should request + 1 @@ -2360,8 +2355,7 @@ if (count <= 0) #endif if ((read_sq.max_count+1) > number_of_rx_cmd_buffers ) { - if (awacs_rx_cmd_space) - kfree(awacs_rx_cmd_space); + kfree(awacs_rx_cmd_space); number_of_rx_cmd_buffers = 0; /* we need nbufs + 1 (for the loop) and we should request + 1 again @@ -2805,7 +2799,7 @@ __init setup_beep(void) beep_buf = (short *) kmalloc(BEEP_BUFLEN * 4, GFP_KERNEL); if (beep_buf == NULL) { printk(KERN_ERR "dmasound_pmac: no memory for beep buffer\n"); - if( beep_dbdma_cmd_space ) kfree(beep_dbdma_cmd_space) ; + kfree(beep_dbdma_cmd_space) ; return -ENOMEM ; } return 0 ; diff -puN sound/oss/emu10k1/midi.c~remove-redundant-null-checks-before-kfree-in-sound-and sound/oss/emu10k1/midi.c --- 25/sound/oss/emu10k1/midi.c~remove-redundant-null-checks-before-kfree-in-sound-and 2005-05-31 16:43:24.000000000 -0700 +++ 25-akpm/sound/oss/emu10k1/midi.c 2005-05-31 16:43:24.000000000 -0700 @@ -523,10 +523,8 @@ void emu10k1_seq_midi_close(int dev) card = midi_devs[dev]->devc; emu10k1_mpuout_close(card); - if (card->seq_mididev) { - kfree(card->seq_mididev); - card->seq_mididev = NULL; - } + kfree(card->seq_mididev); + card->seq_mididev = NULL; } int emu10k1_seq_midi_out(int dev, unsigned char midi_byte) diff -puN sound/oss/emu10k1/passthrough.c~remove-redundant-null-checks-before-kfree-in-sound-and sound/oss/emu10k1/passthrough.c --- 25/sound/oss/emu10k1/passthrough.c~remove-redundant-null-checks-before-kfree-in-sound-and 2005-05-31 16:43:24.000000000 -0700 +++ 25-akpm/sound/oss/emu10k1/passthrough.c 2005-05-31 16:43:24.000000000 -0700 @@ -213,8 +213,7 @@ void emu10k1_pt_stop(struct emu10k1_card sblive_writeptr(card, SPCS0 + i, 0, pt->old_spcs[i]); } pt->state = PT_STATE_INACTIVE; - if(pt->buf) - kfree(pt->buf); + kfree(pt->buf); } } diff -puN sound/oss/maestro.c~remove-redundant-null-checks-before-kfree-in-sound-and sound/oss/maestro.c --- 25/sound/oss/maestro.c~remove-redundant-null-checks-before-kfree-in-sound-and 2005-05-31 16:43:24.000000000 -0700 +++ 25-akpm/sound/oss/maestro.c 2005-05-31 16:43:24.000000000 -0700 @@ -2356,7 +2356,7 @@ ess_read(struct file *file, char __user } rec_return_free: - if(combbuf) kfree(combbuf); + kfree(combbuf); return ret; } diff -puN sound/oss/mpu401.c~remove-redundant-null-checks-before-kfree-in-sound-and sound/oss/mpu401.c --- 25/sound/oss/mpu401.c~remove-redundant-null-checks-before-kfree-in-sound-and 2005-05-31 16:43:24.000000000 -0700 +++ 25-akpm/sound/oss/mpu401.c 2005-05-31 16:43:24.000000000 -0700 @@ -1240,8 +1240,7 @@ void unload_mpu401(struct address_info * p=mpu401_synth_operations[n]; sound_unload_mididev(n); sound_unload_timerdev(hw_config->slots[2]); - if(p) - kfree(p); + kfree(p); } } diff -puN sound/oss/sb_common.c~remove-redundant-null-checks-before-kfree-in-sound-and sound/oss/sb_common.c --- 25/sound/oss/sb_common.c~remove-redundant-null-checks-before-kfree-in-sound-and 2005-05-31 16:43:24.000000000 -0700 +++ 25-akpm/sound/oss/sb_common.c 2005-05-31 16:43:24.000000000 -0700 @@ -915,8 +915,8 @@ void sb_dsp_unload(struct address_info * } else release_region(hw_config->io_base, 16); - if(detected_devc) - kfree(detected_devc); + + kfree(detected_devc); } /* _