From: Johannes Stezenbach <js@linuxtv.org>

kfree(NULL) is safe (Kenneth Aafloy)

Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/media/dvb/bt8xx/dst.c               |    2 +-
 25-akpm/drivers/media/dvb/dvb-core/dvb_ca_en50221.c |    3 +--
 25-akpm/drivers/media/dvb/dvb-core/dvb_frontend.c   |    3 +--
 25-akpm/drivers/media/dvb/dvb-core/dvbdev.c         |    4 +---
 25-akpm/drivers/media/dvb/frontends/at76c651.c      |    2 +-
 25-akpm/drivers/media/dvb/frontends/cx22700.c       |    2 +-
 25-akpm/drivers/media/dvb/frontends/cx22702.c       |    2 +-
 25-akpm/drivers/media/dvb/frontends/cx24110.c       |    2 +-
 25-akpm/drivers/media/dvb/frontends/dib3000mb.c     |    3 +--
 25-akpm/drivers/media/dvb/frontends/dib3000mc.c     |    3 +--
 25-akpm/drivers/media/dvb/frontends/dvb_dummy_fe.c  |    2 +-
 25-akpm/drivers/media/dvb/frontends/l64781.c        |    2 +-
 25-akpm/drivers/media/dvb/frontends/mt312.c         |    3 +--
 25-akpm/drivers/media/dvb/frontends/mt352.c         |    2 +-
 25-akpm/drivers/media/dvb/frontends/nxt2002.c       |    2 +-
 25-akpm/drivers/media/dvb/frontends/nxt6000.c       |    2 +-
 25-akpm/drivers/media/dvb/frontends/or51211.c       |    2 +-
 25-akpm/drivers/media/dvb/frontends/sp8870.c        |    2 +-
 25-akpm/drivers/media/dvb/frontends/sp887x.c        |    2 +-
 25-akpm/drivers/media/dvb/frontends/stv0297.c       |    3 +--
 25-akpm/drivers/media/dvb/frontends/stv0299.c       |    2 +-
 25-akpm/drivers/media/dvb/frontends/tda10021.c      |    2 +-
 25-akpm/drivers/media/dvb/frontends/tda1004x.c      |    2 +-
 25-akpm/drivers/media/dvb/frontends/tda8083.c       |    2 +-
 25-akpm/drivers/media/dvb/frontends/tda80xx.c       |    2 +-
 25-akpm/drivers/media/dvb/frontends/ves1820.c       |    2 +-
 25-akpm/drivers/media/dvb/frontends/ves1x93.c       |    2 +-
 25-akpm/drivers/media/dvb/ttusb-dec/ttusbdecfe.c    |    4 ++--
 28 files changed, 29 insertions(+), 37 deletions(-)

diff -puN drivers/media/dvb/bt8xx/dst.c~dvb-frontends-kfree-cleanup drivers/media/dvb/bt8xx/dst.c
--- 25/drivers/media/dvb/bt8xx/dst.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/bt8xx/dst.c	2005-03-21 20:58:24.000000000 -0800
@@ -998,7 +998,7 @@ struct dvb_frontend* dst_attach(const st
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/dvb-core/dvb_ca_en50221.c~dvb-frontends-kfree-cleanup drivers/media/dvb/dvb-core/dvb_ca_en50221.c
--- 25/drivers/media/dvb/dvb-core/dvb_ca_en50221.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/dvb-core/dvb_ca_en50221.c	2005-03-21 20:58:24.000000000 -0800
@@ -1733,8 +1733,7 @@ int dvb_ca_en50221_init(struct dvb_adapt
 	if (ca != NULL) {
 		if (ca->dvbdev != NULL)
 			dvb_unregister_device(ca->dvbdev);
-		if (ca->slot_info != NULL)
-			kfree(ca->slot_info);
+		kfree(ca->slot_info);
 		kfree(ca);
 	}
 	pubca->private = NULL;
diff -puN drivers/media/dvb/dvb-core/dvbdev.c~dvb-frontends-kfree-cleanup drivers/media/dvb/dvb-core/dvbdev.c
--- 25/drivers/media/dvb/dvb-core/dvbdev.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/dvb-core/dvbdev.c	2005-03-21 20:58:24.000000000 -0800
@@ -395,9 +395,7 @@ int dvb_usercopy(struct inode *inode, st
         }
 
 out:
-        if (mbuf)
-                kfree(mbuf);
-
+        kfree(mbuf);
         return err;
 }
 
diff -puN drivers/media/dvb/dvb-core/dvb_frontend.c~dvb-frontends-kfree-cleanup drivers/media/dvb/dvb-core/dvb_frontend.c
--- 25/drivers/media/dvb/dvb-core/dvb_frontend.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/dvb-core/dvb_frontend.c	2005-03-21 20:58:24.000000000 -0800
@@ -908,8 +908,7 @@ int dvb_unregister_frontend(struct dvb_f
 	else
 		printk("dvb_frontend: Demodulator (%s) does not have a release callback!\n", fe->ops->info.name);
 	/* fe is invalid now */
-	if (fepriv)
-		kfree(fepriv);
+	kfree(fepriv);
 	up (&frontend_mutex);
 	return 0;
 }
diff -puN drivers/media/dvb/frontends/at76c651.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/at76c651.c
--- 25/drivers/media/dvb/frontends/at76c651.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/at76c651.c	2005-03-21 20:58:24.000000000 -0800
@@ -402,7 +402,7 @@ struct dvb_frontend* at76c651_attach(con
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/cx22700.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/cx22700.c
--- 25/drivers/media/dvb/frontends/cx22700.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/cx22700.c	2005-03-21 20:58:24.000000000 -0800
@@ -392,7 +392,7 @@ struct dvb_frontend* cx22700_attach(cons
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/cx22702.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/cx22702.c
--- 25/drivers/media/dvb/frontends/cx22702.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/cx22702.c	2005-03-21 20:58:24.000000000 -0800
@@ -476,7 +476,7 @@ struct dvb_frontend* cx22702_attach(cons
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/cx24110.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/cx24110.c
--- 25/drivers/media/dvb/frontends/cx24110.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/cx24110.c	2005-03-21 20:58:24.000000000 -0800
@@ -608,7 +608,7 @@ struct dvb_frontend* cx24110_attach(cons
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/dib3000mb.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/dib3000mb.c
--- 25/drivers/media/dvb/frontends/dib3000mb.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/dib3000mb.c	2005-03-21 20:58:24.000000000 -0800
@@ -738,8 +738,7 @@ struct dvb_frontend* dib3000mb_attach(co
 	return &state->frontend;
 
 error:
-	if (state)
-		kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/dib3000mc.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/dib3000mc.c
--- 25/drivers/media/dvb/frontends/dib3000mc.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/dib3000mc.c	2005-03-21 20:58:24.000000000 -0800
@@ -885,8 +885,7 @@ struct dvb_frontend* dib3000mc_attach(co
 	return &state->frontend;
 
 error:
-	if (state)
-		kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/dvb_dummy_fe.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/dvb_dummy_fe.c
--- 25/drivers/media/dvb/frontends/dvb_dummy_fe.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/dvb_dummy_fe.c	2005-03-21 20:58:24.000000000 -0800
@@ -123,7 +123,7 @@ struct dvb_frontend* dvb_dummy_fe_ofdm_a
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/l64781.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/l64781.c
--- 25/drivers/media/dvb/frontends/l64781.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/l64781.c	2005-03-21 20:58:24.000000000 -0800
@@ -559,7 +559,7 @@ struct dvb_frontend* l64781_attach(const
 
 error:
 	if (reg0x3e >= 0) l64781_writereg (state, 0x3e, reg0x3e);  /* restore reg 0x3e */
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/mt312.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/mt312.c
--- 25/drivers/media/dvb/frontends/mt312.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/mt312.c	2005-03-21 20:58:24.000000000 -0800
@@ -641,8 +641,7 @@ struct dvb_frontend* vp310_attach(const 
 	return &state->frontend;
 
 error:
-	if (state)
-		kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/mt352.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/mt352.c
--- 25/drivers/media/dvb/frontends/mt352.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/mt352.c	2005-03-21 20:58:24.000000000 -0800
@@ -581,7 +581,7 @@ struct dvb_frontend* mt352_attach(const 
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/nxt2002.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/nxt2002.c
--- 25/drivers/media/dvb/frontends/nxt2002.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/nxt2002.c	2005-03-21 20:58:24.000000000 -0800
@@ -661,7 +661,7 @@ struct dvb_frontend* nxt2002_attach(cons
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/nxt6000.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/nxt6000.c
--- 25/drivers/media/dvb/frontends/nxt6000.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/nxt6000.c	2005-03-21 20:58:24.000000000 -0800
@@ -511,7 +511,7 @@ struct dvb_frontend* nxt6000_attach(cons
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/or51211.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/or51211.c
--- 25/drivers/media/dvb/frontends/or51211.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/or51211.c	2005-03-21 20:58:24.000000000 -0800
@@ -588,7 +588,7 @@ struct dvb_frontend* or51211_attach(cons
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/sp8870.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/sp8870.c
--- 25/drivers/media/dvb/frontends/sp8870.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/sp8870.c	2005-03-21 20:58:24.000000000 -0800
@@ -570,7 +570,7 @@ struct dvb_frontend* sp8870_attach(const
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/sp887x.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/sp887x.c
--- 25/drivers/media/dvb/frontends/sp887x.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/sp887x.c	2005-03-21 20:58:24.000000000 -0800
@@ -564,7 +564,7 @@ struct dvb_frontend* sp887x_attach(const
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/stv0297.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/stv0297.c
--- 25/drivers/media/dvb/frontends/stv0297.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/stv0297.c	2005-03-21 20:58:24.000000000 -0800
@@ -758,8 +758,7 @@ struct dvb_frontend *stv0297_attach(cons
 	return &state->frontend;
 
 error:
-	if (state)
-		kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/stv0299.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/stv0299.c
--- 25/drivers/media/dvb/frontends/stv0299.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/stv0299.c	2005-03-21 20:58:24.000000000 -0800
@@ -675,7 +675,7 @@ struct dvb_frontend* stv0299_attach(cons
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/tda10021.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/tda10021.c
--- 25/drivers/media/dvb/frontends/tda10021.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/tda10021.c	2005-03-21 20:58:24.000000000 -0800
@@ -420,7 +420,7 @@ struct dvb_frontend* tda10021_attach(con
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/tda1004x.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/tda1004x.c
--- 25/drivers/media/dvb/frontends/tda1004x.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/tda1004x.c	2005-03-21 20:58:24.000000000 -0800
@@ -1097,7 +1097,7 @@ struct dvb_frontend* tda10045_attach(con
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/tda8083.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/tda8083.c
--- 25/drivers/media/dvb/frontends/tda8083.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/tda8083.c	2005-03-21 20:58:24.000000000 -0800
@@ -405,7 +405,7 @@ struct dvb_frontend* tda8083_attach(cons
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/tda80xx.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/tda80xx.c
--- 25/drivers/media/dvb/frontends/tda80xx.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/tda80xx.c	2005-03-21 20:58:24.000000000 -0800
@@ -683,7 +683,7 @@ struct dvb_frontend* tda80xx_attach(cons
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/ves1820.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/ves1820.c
--- 25/drivers/media/dvb/frontends/ves1820.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/ves1820.c	2005-03-21 20:58:24.000000000 -0800
@@ -404,7 +404,7 @@ struct dvb_frontend* ves1820_attach(cons
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/frontends/ves1x93.c~dvb-frontends-kfree-cleanup drivers/media/dvb/frontends/ves1x93.c
--- 25/drivers/media/dvb/frontends/ves1x93.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/frontends/ves1x93.c	2005-03-21 20:58:24.000000000 -0800
@@ -497,7 +497,7 @@ struct dvb_frontend* ves1x93_attach(cons
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
diff -puN drivers/media/dvb/ttusb-dec/ttusbdecfe.c~dvb-frontends-kfree-cleanup drivers/media/dvb/ttusb-dec/ttusbdecfe.c
--- 25/drivers/media/dvb/ttusb-dec/ttusbdecfe.c~dvb-frontends-kfree-cleanup	2005-03-21 20:58:24.000000000 -0800
+++ 25-akpm/drivers/media/dvb/ttusb-dec/ttusbdecfe.c	2005-03-21 20:58:24.000000000 -0800
@@ -169,7 +169,7 @@ struct dvb_frontend* ttusbdecfe_dvbt_att
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
@@ -195,7 +195,7 @@ struct dvb_frontend* ttusbdecfe_dvbs_att
 	return &state->frontend;
 
 error:
-	if (state) kfree(state);
+	kfree(state);
 	return NULL;
 }
 
_