From: Jesper Juhl <juhl-lkml@dif.dk>

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: Andrew Morton <akpm@osdl.org>
---

 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);
 }
 
 /*
_