[dpdk-dev] no need to test for NULL when freeing
Commit Message
free() already handles NULL pointer.
Signed-off-by: David Marchand <david.marchand@6wind.com>
---
app/test/test_devargs.c | 3 +-
app/test/test_link_bonding.c | 6 ++--
app/test/test_pci.c | 3 +-
app/test/test_ring.c | 36 ++++++++--------------
drivers/net/xenvirt/rte_eth_xenvirt.c | 6 ++--
drivers/net/xenvirt/rte_mempool_gntalloc.c | 9 ++----
examples/ip_pipeline/cpu_core_map.c | 3 +-
.../pipeline/pipeline_flow_classification_be.c | 6 ++--
examples/vhost_xen/vhost_monitor.c | 3 +-
examples/vhost_xen/xenstore_parse.c | 33 +++++++-------------
lib/librte_eal/common/eal_common_devargs.c | 3 +-
lib/librte_eal/linuxapp/eal/eal_memory.c | 3 +-
lib/librte_ether/rte_ethdev.c | 6 ++--
lib/librte_kvargs/rte_kvargs.c | 4 +--
14 files changed, 41 insertions(+), 83 deletions(-)
Comments
2016-01-21 12:23, David Marchand:
> free() already handles NULL pointer.
>
> Signed-off-by: David Marchand <david.marchand@6wind.com>
> ---
> app/test/test_devargs.c | 3 +-
> app/test/test_link_bonding.c | 6 ++--
> app/test/test_pci.c | 3 +-
> app/test/test_ring.c | 36 ++++++++--------------
> drivers/net/xenvirt/rte_eth_xenvirt.c | 6 ++--
> drivers/net/xenvirt/rte_mempool_gntalloc.c | 9 ++----
> examples/ip_pipeline/cpu_core_map.c | 3 +-
> .../pipeline/pipeline_flow_classification_be.c | 6 ++--
> examples/vhost_xen/vhost_monitor.c | 3 +-
> examples/vhost_xen/xenstore_parse.c | 33 +++++++-------------
> lib/librte_eal/common/eal_common_devargs.c | 3 +-
> lib/librte_eal/linuxapp/eal/eal_memory.c | 3 +-
> lib/librte_ether/rte_ethdev.c | 6 ++--
> lib/librte_kvargs/rte_kvargs.c | 4 +--
> 14 files changed, 41 insertions(+), 83 deletions(-)
Have you used a coccinelle script?
On Thu, Jan 21, 2016 at 12:30 PM, Thomas Monjalon
<thomas.monjalon@6wind.com> wrote:
> 2016-01-21 12:23, David Marchand:
>> free() already handles NULL pointer.
>>
>> Signed-off-by: David Marchand <david.marchand@6wind.com>
>> ---
>> app/test/test_devargs.c | 3 +-
>> app/test/test_link_bonding.c | 6 ++--
>> app/test/test_pci.c | 3 +-
>> app/test/test_ring.c | 36 ++++++++--------------
>> drivers/net/xenvirt/rte_eth_xenvirt.c | 6 ++--
>> drivers/net/xenvirt/rte_mempool_gntalloc.c | 9 ++----
>> examples/ip_pipeline/cpu_core_map.c | 3 +-
>> .../pipeline/pipeline_flow_classification_be.c | 6 ++--
>> examples/vhost_xen/vhost_monitor.c | 3 +-
>> examples/vhost_xen/xenstore_parse.c | 33 +++++++-------------
>> lib/librte_eal/common/eal_common_devargs.c | 3 +-
>> lib/librte_eal/linuxapp/eal/eal_memory.c | 3 +-
>> lib/librte_ether/rte_ethdev.c | 6 ++--
>> lib/librte_kvargs/rte_kvargs.c | 4 +--
>> 14 files changed, 41 insertions(+), 83 deletions(-)
>
> Have you used a coccinelle script?
Nop, some shell script of mine with manual checks.
2016-01-21 12:23, David Marchand:
> free() already handles NULL pointer.
>
> Signed-off-by: David Marchand <david.marchand@6wind.com>
Applied, thanks
@@ -48,8 +48,7 @@ static void free_devargs_list(void)
while (!TAILQ_EMPTY(&devargs_list)) {
devargs = TAILQ_FIRST(&devargs_list);
TAILQ_REMOVE(&devargs_list, devargs, next);
- if (devargs->args)
- free(devargs->args);
+ free(devargs->args);
free(devargs);
}
}
@@ -4023,10 +4023,8 @@ test_close_bonded_device(void)
static void
testsuite_teardown(void)
{
- if (test_params->pkt_eth_hdr != NULL) {
- free(test_params->pkt_eth_hdr);
- test_params->pkt_eth_hdr = NULL;
- }
+ free(test_params->pkt_eth_hdr);
+ test_params->pkt_eth_hdr = NULL;
/* Clean up and remove slaves from bonded device */
remove_slaves_and_stop_bonded_device();
@@ -139,8 +139,7 @@ static void free_devargs_list(void)
while (!TAILQ_EMPTY(&devargs_list)) {
devargs = TAILQ_FIRST(&devargs_list);
TAILQ_REMOVE(&devargs_list, devargs, next);
- if (devargs->args)
- free(devargs->args);
+ free(devargs->args);
free(devargs);
}
}
@@ -471,17 +471,13 @@ test_ring_basic(void)
if (ret != 0)
goto fail;
- if (src)
- free(src);
- if (dst)
- free(dst);
+ free(src);
+ free(dst);
return 0;
fail:
- if (src)
- free(src);
- if (dst)
- free(dst);
+ free(src);
+ free(dst);
return -1;
}
@@ -759,17 +755,13 @@ test_ring_burst_basic(void)
goto fail;
/* Free memory before test completed */
- if (src)
- free(src);
- if (dst)
- free(dst);
+ free(src);
+ free(dst);
return 0;
fail:
- if (src)
- free(src);
- if (dst)
- free(dst);
+ free(src);
+ free(dst);
return -1;
}
@@ -1168,17 +1160,13 @@ test_ring_stats(void)
memset(&r->stats[lcore_id], 0, sizeof(r->stats[lcore_id]));
/* Free memory before test completed */
- if (src)
- free(src);
- if (dst)
- free(dst);
+ free(src);
+ free(dst);
return 0;
fail:
- if (src)
- free(src);
- if (dst)
- free(dst);
+ free(src);
+ free(dst);
return -1;
#endif
}
@@ -431,10 +431,8 @@ gntalloc_vring_create(int queue_type, uint32_t size, int vtidx)
va = NULL;
}
out:
- if (pa_arr)
- free(pa_arr);
- if (gref_arr)
- free(gref_arr);
+ free(pa_arr);
+ free(gref_arr);
return va;
}
@@ -229,15 +229,12 @@ mmap_failed:
munmap(gnt_arr[i].va, pg_sz);
}
out:
- if (gnt_arr)
- free(gnt_arr);
+ free(gnt_arr);
if (orig_va)
munmap(orig_va, sz);
if (mp == NULL) {
- if (gref_arr)
- free(gref_arr);
- if (pa_arr)
- free(pa_arr);
+ free(gref_arr);
+ free(pa_arr);
/* some gref has already been de-allocated from the list in the driver,
* so dealloc one by one, and it is safe to deallocate twice
@@ -488,6 +488,5 @@ cpu_core_map_get_lcore_id(struct cpu_core_map *map,
void
cpu_core_map_free(struct cpu_core_map *map)
{
- if (map)
- free(map);
+ free(map);
}
@@ -333,10 +333,8 @@ pipeline_fc_parse_args(struct pipeline_flow_classification *p,
return 0;
error_parse:
- if (key_mask_str != NULL)
- free(key_mask_str);
- if (p->key_mask != NULL)
- free(p->key_mask);
+ free(key_mask_str);
+ free(p->key_mask);
return -1;
}
@@ -296,8 +296,7 @@ virtio_net_config_ll *new_device(unsigned int virtio_idx, struct xen_guest *gues
add_config_ll_entry(new_ll_dev);
return new_ll_dev;
err:
- if (new_ll_dev)
- free(new_ll_dev);
+ free(new_ll_dev);
rte_free(virtqueue_rx);
rte_free(virtqueue_tx);
@@ -203,8 +203,7 @@ xen_free_gntnode(struct xen_gntnode *gntnode)
{
if (gntnode == NULL)
return;
- if (gntnode->gnt_info)
- free(gntnode->gnt_info);
+ free(gntnode->gnt_info);
free(gntnode);
}
@@ -286,14 +285,10 @@ parse_gntnode(int dom_id, char *path)
return gntnode;
err:
- if (gnt)
- free(gnt);
- if (gntnode)
- free(gntnode);
- if (gref_list)
- free(gref_list);
- if (buf)
- free(buf);
+ free(gnt);
+ free(gntnode);
+ free(gref_list);
+ free(buf);
return NULL;
}
@@ -412,8 +407,7 @@ parse_mpool_va(struct xen_mempool *mempool)
}
ret = 0;
out:
- if (buf)
- free(buf);
+ free(buf);
return ret;
}
@@ -460,8 +454,7 @@ cleanup_mempool(struct xen_mempool *mempool)
}
mempool->pindex = NULL;
- if (mempool->mempfn_tbl)
- free(mempool->mempfn_tbl);
+ free(mempool->mempfn_tbl);
mempool->mempfn_tbl = NULL;
}
@@ -559,8 +552,7 @@ xen_map_vringflag(struct xen_vring *vring)
free(buf);
return 0;
err:
- if (buf)
- free(buf);
+ free(buf);
if (vring->flag) {
munmap(vring->flag, pg_sz);
vring->flag = NULL;
@@ -622,8 +614,7 @@ cleanup_vring(struct xen_vring *vring)
}
vring->rx_pindex = NULL;
- if (vring->rxpfn_tbl)
- free(vring->rxpfn_tbl);
+ free(vring->rxpfn_tbl);
vring->rxpfn_tbl = NULL;
if (vring->txvring_addr) {
@@ -644,8 +635,7 @@ cleanup_vring(struct xen_vring *vring)
}
vring->tx_pindex = NULL;
- if (vring->txpfn_tbl)
- free(vring->txpfn_tbl);
+ free(vring->txpfn_tbl);
vring->txpfn_tbl = NULL;
if (vring->flag) {
@@ -680,8 +670,7 @@ xen_parse_etheraddr(struct xen_vring *vring)
goto out;
ret = 0;
out:
- if (buf)
- free(buf);
+ free(buf);
return ret;
}
@@ -120,8 +120,7 @@ rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str)
return 0;
fail:
- if (buf)
- free(buf);
+ free(buf);
if (devargs) {
free(devargs->args);
free(devargs);
@@ -1412,8 +1412,7 @@ rte_eal_hugepage_init(void)
return 0;
fail:
- if (tmp_hp)
- free(tmp_hp);
+ free(tmp_hp);
return -1;
}
@@ -586,10 +586,8 @@ rte_eth_dev_attach_vdev(const char *vdevargs, uint8_t *port_id)
ret = 0;
end:
- if (name)
- free(name);
- if (args)
- free(args);
+ free(name);
+ free(args);
if (ret < 0)
RTE_LOG(ERR, EAL, "Driver, cannot attach the device\n");
@@ -177,9 +177,7 @@ rte_kvargs_free(struct rte_kvargs *kvlist)
if (!kvlist)
return;
- if (kvlist->str != NULL)
- free(kvlist->str);
-
+ free(kvlist->str);
free(kvlist);
}