[WAN]: kfree of NULL pointer is valid
authorJesper Juhl <juhl-lkml@dif.dk>
Tue, 3 May 2005 21:33:27 +0000 (14:33 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 3 May 2005 21:33:27 +0000 (14:33 -0700)
kfree(0) is perfectly valid, checking pointers for NULL before calling
kfree() on them is redundant. The patch below cleans away a few such
redundant checks (and while I was around some of those bits I couldn't
stop myself from making a few tiny whitespace changes as well).

Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Acked-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wan/cycx_x25.c
drivers/net/wan/pc300_tty.c
drivers/net/wan/sdla_chdlc.c
drivers/net/wan/x25_asy.c

index 5b48cd8568f51bd757913cae533d9239f6fa8e86..02d57c0b4243ac8ab61e4db9a3eb3e6e90d66d82 100644 (file)
@@ -436,9 +436,7 @@ static int cycx_wan_new_if(struct wan_device *wandev, struct net_device *dev,
        }
 
        if (err) {
-               if (chan->local_addr)
-                       kfree(chan->local_addr);
-
+               kfree(chan->local_addr);
                kfree(chan);
                return err;
        }
@@ -458,9 +456,7 @@ static int cycx_wan_del_if(struct wan_device *wandev, struct net_device *dev)
                struct cycx_x25_channel *chan = dev->priv;
 
                if (chan->svc) {
-                       if (chan->local_addr)
-                               kfree(chan->local_addr);
-
+                       kfree(chan->local_addr);
                        if (chan->state == WAN_CONNECTED)
                                del_timer(&chan->timer);
                }
index 29f84ad087303ee5eb7beaee32a80825b673062d..8454bf6caaa70136f6106869a30a8f61899c0002 100644 (file)
@@ -400,10 +400,8 @@ static void cpc_tty_close(struct tty_struct *tty, struct file *flip)
                cpc_tty->buf_rx.last = NULL;
        }
        
-       if (cpc_tty->buf_tx) {
-               kfree(cpc_tty->buf_tx);
-               cpc_tty->buf_tx = NULL;
-       }
+       kfree(cpc_tty->buf_tx);
+       cpc_tty->buf_tx = NULL;
 
        CPC_TTY_DBG("%s: TTY closed\n",cpc_tty->name);
        
@@ -666,7 +664,7 @@ static void cpc_tty_rx_work(void * data)
        unsigned long port;
        int i, j;
        st_cpc_tty_area *cpc_tty; 
-       volatile st_cpc_rx_buf * buf;
+       volatile st_cpc_rx_buf *buf;
        char flags=0,flg_rx=1; 
        struct tty_ldisc *ld;
 
@@ -680,9 +678,9 @@ static void cpc_tty_rx_work(void * data)
                        cpc_tty = &cpc_tty_area[port];
                
                        if ((buf=cpc_tty->buf_rx.first) != 0) {
-                               if(cpc_tty->tty) {
+                               if (cpc_tty->tty) {
                                        ld = tty_ldisc_ref(cpc_tty->tty);
-                                       if(ld) {
+                                       if (ld) {
                                                if (ld->receive_buf) {
                                                        CPC_TTY_DBG("%s: call line disc. receive_buf\n",cpc_tty->name);
                                                        ld->receive_buf(cpc_tty->tty, (char *)(buf->data), &flags, buf->size);
@@ -691,7 +689,7 @@ static void cpc_tty_rx_work(void * data)
                                        }
                                }       
                                cpc_tty->buf_rx.first = cpc_tty->buf_rx.first->next;
-                               kfree((unsigned char *)buf);
+                               kfree(buf);
                                buf = cpc_tty->buf_rx.first;
                                flg_rx = 1;
                        }
@@ -733,7 +731,7 @@ static void cpc_tty_rx_disc_frame(pc300ch_t *pc300chan)
 
 void cpc_tty_receive(pc300dev_t *pc300dev)
 {
-       st_cpc_tty_area    *cpc_tty; 
+       st_cpc_tty_area *cpc_tty; 
        pc300ch_t *pc300chan = (pc300ch_t *)pc300dev->chan; 
        pc300_t *card = (pc300_t *)pc300chan->card; 
        int ch = pc300chan->channel; 
@@ -742,7 +740,7 @@ void cpc_tty_receive(pc300dev_t *pc300dev)
        int rx_len, rx_aux; 
        volatile unsigned char status; 
        unsigned short first_bd = pc300chan->rx_first_bd;
-       st_cpc_rx_buf   *new=NULL;
+       st_cpc_rx_buf *new = NULL;
        unsigned char dsr_rx;
 
        if (pc300dev->cpc_tty == NULL) { 
@@ -762,7 +760,7 @@ void cpc_tty_receive(pc300dev_t *pc300dev)
                        if (status & DST_EOM) {
                                break;
                        }
-                       ptdescr=(pcsca_bd_t __iomem *)(card->hw.rambase+cpc_readl(&ptdescr->next));
+                       ptdescr = (pcsca_bd_t __iomem *)(card->hw.rambase+cpc_readl(&ptdescr->next));
                }
                        
                if (!rx_len) { 
@@ -771,10 +769,7 @@ void cpc_tty_receive(pc300dev_t *pc300dev)
                                cpc_writel(card->hw.scabase + DRX_REG(EDAL, ch), 
                                                RX_BD_ADDR(ch, pc300chan->rx_last_bd)); 
                        }
-                       if (new) {
-                               kfree(new);
-                               new = NULL;
-                       }
+                       kfree(new);
                        return; 
                }
                
@@ -787,7 +782,7 @@ void cpc_tty_receive(pc300dev_t *pc300dev)
                        continue;
                } 
                
-               new = (st_cpc_rx_buf *) kmalloc(rx_len + sizeof(st_cpc_rx_buf), GFP_ATOMIC);
+               new = (st_cpc_rx_buf *)kmalloc(rx_len + sizeof(st_cpc_rx_buf), GFP_ATOMIC);
                if (new == 0) {
                        cpc_tty_rx_disc_frame(pc300chan);
                        continue;
index afbe0024e3e15f84b5b25d498af252e64e5d9b28..496d29237e92750bb0ad090d6e7d3b12c7a14e4b 100644 (file)
@@ -3664,15 +3664,10 @@ static void wanpipe_tty_close(struct tty_struct *tty, struct file * filp)
                chdlc_disable_comm_shutdown(card);
                unlock_adapter_irq(&card->wandev.lock,&smp_flags);
 
-               if (card->tty_buf){
-                       kfree(card->tty_buf);
-                       card->tty_buf=NULL;                     
-               }
-
-               if (card->tty_rx){
-                       kfree(card->tty_rx);
-                       card->tty_rx=NULL;
-               }
+               kfree(card->tty_buf);
+               card->tty_buf = NULL;                   
+               kfree(card->tty_rx);
+               card->tty_rx = NULL;
        }
        return;
 }
index 8c5cfcb55826b522244947ac6cd2f373ae6d1c90..1c540d825551f6c0194d30e19a5cb51ffcaec5b4 100644 (file)
@@ -107,13 +107,9 @@ static struct x25_asy *x25_asy_alloc(void)
 static void x25_asy_free(struct x25_asy *sl)
 {
        /* Free all X.25 frame buffers. */
-       if (sl->rbuff)  {
-               kfree(sl->rbuff);
-       }
+       kfree(sl->rbuff);
        sl->rbuff = NULL;
-       if (sl->xbuff)  {
-               kfree(sl->xbuff);
-       }
+       kfree(sl->xbuff);
        sl->xbuff = NULL;
 
        if (!test_and_clear_bit(SLF_INUSE, &sl->flags)) {
@@ -134,10 +130,8 @@ static int x25_asy_change_mtu(struct net_device *dev, int newmtu)
        {
                printk("%s: unable to grow X.25 buffers, MTU change cancelled.\n",
                       dev->name);
-               if (xbuff != NULL)  
-                       kfree(xbuff);
-               if (rbuff != NULL)  
-                       kfree(rbuff);
+               kfree(xbuff);
+               kfree(rbuff);
                return -ENOMEM;
        }
 
@@ -169,10 +163,8 @@ static int x25_asy_change_mtu(struct net_device *dev, int newmtu)
 
        spin_unlock_bh(&sl->lock);
 
-       if (xbuff != NULL) 
-               kfree(xbuff);
-       if (rbuff != NULL)
-               kfree(rbuff);
+       kfree(xbuff);
+       kfree(rbuff);
        return 0;
 }