Recent commits to kernel/git/torvalds/linux.git have made the following functions able to tolerate NULL arguments:
kmem_cache_destroy (commit 3942d29918522) mempool_destroy (commit 4e3ca3e033d1) dma_pool_destroy (commit 44d7175da6ea)
These patches remove the associated NULL tests for the files that I found easy to compile test. If these changes are OK, I will address the remainder later.
---
arch/x86/kvm/mmu.c | 6 -- block/bio-integrity.c | 7 -- block/bio.c | 7 -- block/blk-core.c | 3 - block/elevator.c | 3 - drivers/atm/he.c | 7 -- drivers/block/aoe/aoedev.c | 3 - drivers/block/drbd/drbd_main.c | 21 ++----- drivers/block/pktcdvd.c | 3 - drivers/block/rbd.c | 6 -- drivers/dma/dmaengine.c | 6 -- drivers/firmware/google/gsmi.c | 3 - drivers/gpu/drm/i915/i915_dma.c | 19 ++---- drivers/iommu/amd_iommu_init.c | 7 -- drivers/md/bcache/bset.c | 3 - drivers/md/bcache/request.c | 3 - drivers/md/bcache/super.c | 9 +-- drivers/md/dm-bufio.c | 3 - drivers/md/dm-cache-target.c | 3 - drivers/md/dm-crypt.c | 6 -- drivers/md/dm-io.c | 3 - drivers/md/dm-log-userspace-base.c | 3 - drivers/md/dm-region-hash.c | 4 - drivers/md/dm.c | 13 +--- drivers/md/multipath.c | 3 - drivers/md/raid1.c | 6 -- drivers/md/raid10.c | 9 +-- drivers/md/raid5.c | 3 - drivers/mtd/nand/nandsim.c | 3 - drivers/mtd/ubi/attach.c | 4 - drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 3 - drivers/staging/lustre/lustre/llite/super25.c | 16 +---- drivers/staging/lustre/lustre/obdclass/genops.c | 24 ++------ drivers/staging/lustre/lustre/obdclass/lu_object.c | 6 -- drivers/staging/rdma/hfi1/user_sdma.c | 3 - drivers/thunderbolt/ctl.c | 3 - drivers/usb/gadget/udc/bdc/bdc_core.c | 3 - drivers/usb/gadget/udc/gr_udc.c | 3 - drivers/usb/gadget/udc/mv_u3d_core.c | 3 - drivers/usb/gadget/udc/mv_udc_core.c | 3 - drivers/usb/host/fotg210-hcd.c | 12 +--- drivers/usb/host/fusbh200-hcd.c | 12 +--- drivers/usb/host/whci/init.c | 3 - drivers/usb/host/xhci-mem.c | 12 +--- fs/btrfs/backref.c | 3 - fs/btrfs/delayed-inode.c | 3 - fs/btrfs/delayed-ref.c | 12 +--- fs/btrfs/disk-io.c | 3 - fs/btrfs/extent_io.c | 6 -- fs/btrfs/extent_map.c | 3 - fs/btrfs/file.c | 3 - fs/btrfs/inode.c | 18 ++---- fs/btrfs/ordered-data.c | 3 - fs/dlm/memory.c | 6 -- fs/ecryptfs/main.c | 3 - fs/ext4/crypto.c | 9 +-- fs/ext4/extents_status.c | 3 - fs/ext4/mballoc.c | 3 - fs/f2fs/crypto.c | 9 +-- fs/gfs2/main.c | 29 ++-------- fs/jbd2/journal.c | 15 +---- fs/jbd2/revoke.c | 12 +--- fs/jbd2/transaction.c | 6 -- fs/jffs2/malloc.c | 27 +++------ fs/nfsd/nfscache.c | 6 -- fs/nilfs2/super.c | 12 +--- fs/ocfs2/dlm/dlmlock.c | 3 - fs/ocfs2/dlm/dlmmaster.c | 16 +---- fs/ocfs2/super.c | 18 ++---- fs/ocfs2/uptodate.c | 3 - lib/debugobjects.c | 3 - net/core/sock.c | 12 +--- net/dccp/ackvec.c | 12 +--- net/dccp/ccid.c | 3 - net/sunrpc/sched.c | 12 +--- 75 files changed, 180 insertions(+), 381 deletions(-)
Remove unneeded NULL test.
The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/)
// <smpl> @@ expression x; @@ -if (x != NULL) (kmem_cache_destroy|mempool_destroy|dma_pool_destroy)(x); // </smpl>
Signed-off-by: Julia Lawall Julia.Lawall@lip6.fr
--- drivers/gpu/drm/i915/i915_dma.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index ab37d11..1dc7c21 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -1059,12 +1059,9 @@ out_freecsr: put_bridge: pci_dev_put(dev_priv->bridge_dev); free_priv: - if (dev_priv->requests) - kmem_cache_destroy(dev_priv->requests); - if (dev_priv->vmas) - kmem_cache_destroy(dev_priv->vmas); - if (dev_priv->objects) - kmem_cache_destroy(dev_priv->objects); + kmem_cache_destroy(dev_priv->requests); + kmem_cache_destroy(dev_priv->vmas); + kmem_cache_destroy(dev_priv->objects); kfree(dev_priv); return ret; } @@ -1150,13 +1147,9 @@ int i915_driver_unload(struct drm_device *dev) if (dev_priv->regs != NULL) pci_iounmap(dev->pdev, dev_priv->regs);
- if (dev_priv->requests) - kmem_cache_destroy(dev_priv->requests); - if (dev_priv->vmas) - kmem_cache_destroy(dev_priv->vmas); - if (dev_priv->objects) - kmem_cache_destroy(dev_priv->objects); - + kmem_cache_destroy(dev_priv->requests); + kmem_cache_destroy(dev_priv->vmas); + kmem_cache_destroy(dev_priv->objects); pci_dev_put(dev_priv->bridge_dev); kfree(dev_priv);
On Sun, Sep 13, 2015 at 02:15:25PM +0200, Julia Lawall wrote:
Remove unneeded NULL test.
The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/)
// <smpl> @@ expression x; @@ -if (x != NULL) (kmem_cache_destroy|mempool_destroy|dma_pool_destroy)(x); // </smpl>
Signed-off-by: Julia Lawall Julia.Lawall@lip6.fr
Queued for -next, thanks for the patch. -Daniel
drivers/gpu/drm/i915/i915_dma.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index ab37d11..1dc7c21 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -1059,12 +1059,9 @@ out_freecsr: put_bridge: pci_dev_put(dev_priv->bridge_dev); free_priv:
- if (dev_priv->requests)
kmem_cache_destroy(dev_priv->requests);
- if (dev_priv->vmas)
kmem_cache_destroy(dev_priv->vmas);
- if (dev_priv->objects)
kmem_cache_destroy(dev_priv->objects);
- kmem_cache_destroy(dev_priv->requests);
- kmem_cache_destroy(dev_priv->vmas);
- kmem_cache_destroy(dev_priv->objects); kfree(dev_priv); return ret;
} @@ -1150,13 +1147,9 @@ int i915_driver_unload(struct drm_device *dev) if (dev_priv->regs != NULL) pci_iounmap(dev->pdev, dev_priv->regs);
- if (dev_priv->requests)
kmem_cache_destroy(dev_priv->requests);
- if (dev_priv->vmas)
kmem_cache_destroy(dev_priv->vmas);
- if (dev_priv->objects)
kmem_cache_destroy(dev_priv->objects);
- kmem_cache_destroy(dev_priv->requests);
- kmem_cache_destroy(dev_priv->vmas);
- kmem_cache_destroy(dev_priv->objects); pci_dev_put(dev_priv->bridge_dev); kfree(dev_priv);
Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Recent commits to kernel/git/torvalds/linux.git have made the following functions able to tolerate NULL arguments:
kmem_cache_destroy (commit 3942d29918522) mempool_destroy (commit 4e3ca3e033d1) dma_pool_destroy (commit 44d7175da6ea)
How do you think about to extend an other SmPL script?
Related topic: scripts/coccinelle/free: Delete NULL test before freeing functions https://systeme.lip6.fr/pipermail/cocci/2015-May/001960.html https://www.mail-archive.com/cocci@systeme.lip6.fr/msg01855.html
If these changes are OK, I will address the remainder later.
Would anybody like to reuse my general SmPL approach for similar source code clean-up?
Regards, Markus
dri-devel@lists.freedesktop.org