Impact on the Linux kernel

An RSS stream, created by Vegard Nossum, shows the result of applying many of the following semantic patches to the new submissions to the mainline git repository.

Semantic patches and patches related to collateral evolutions

Patches that have been integrated into the official Linux tree (Linus Torvalds' repository):
  • Use UPIO_MEM. 1 (semantic patch)
  • Use resource_size. 1 2 3 4 5 6 (semantic patch)
  • Use dev_get_drvdata 1 2 (semantic patch)
  • use usb_get_intfdata, usb_set_intfdata. 1 2 (semantic patch)
  • use usb_endpoint functions. 1 2 3 4 5 6 7 8 8 9 10 11 12 (semantic patch) 13 (semantic patch)
  • use DEFINE_SPINLOCK. 1 2 3 4 5 5 (semantic patch)
  • use ARRAY_SIZE. 1 2 3 4 5 (semantic patch)
  • use DIV_ROUND_CLOSEST. 1 2 3 4 (semantic patch) 4 (semantic patch)
  • use DIV_ROUND_UP. 1 2 3 4 5 6 7 8 (semantic patch) 8 9 10 11 12 (semantic patch)
  • use BUG_ON. 1 2 3 4 5 6 7 8 (semantic patch)
  • use FIELD_SIZEOF. 1 (semantic patch)
  • use time_before, time_before_eq, etc. 1 2 3 4 5 6 7 8 9 10 11 12 13 (semantic patch)
  • potential-error-irqfunc.patch (semantic patch)
  • kzalloc-treewide.patch (semantic patch)
  • Bug fixing patches

  • Use kzalloc for allocating only one thing 1 2 (semantic match)
  • Fix size given to memset 1 2 3 4 5 6 (semantic match)
  • Size of a pointer 1 2 3 4 5 6 7 8 (semantic match)
  • Use PTR_ERR to get error code 1 (semantic match)
  • Use ERR_PTR/IS_ERR to return a flag as a pointer 1 (semantic match)
  • Remove exceptional
    &
    on function name 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (semantic patch)
  • Drop NULL test on list_entry result 1 2 (semantic match)
  • Drop double structure field initializations 1 2 3 4 5 6 (semantic patch)
  • Correct use of request_region/request_mem_region 1 (semantic patch)
  • Correct size computation 1 2 3 4 (semantic patch)
  • Make some structure declarations static 1 (semantic patch)
  • Adjust NULL test after dereference 1 (semantic match) 2 3 4 5 6 7 8 9 10 11 12 (semantic match)
  • Convert SUPPORTED constants to ADVERTISED constants 1 (semantic match)
  • Remove nested saving of irq flags 1 2 3 4 (semantic match)
  • Add kmalloc NULL test 1 2 3 4 5 6 7 (semantic match)
  • Drop a NULL test on a value that is never NULL 1 (semantic patch)
  • Move a dereference below a NULL test 1 2 (semantic patch)
  • Shift NULL test to a subfield 1 (semantic patch)
  • Use BLOCK_NIL rather than 0xffff 1 (semantic patch)
  • Drop code after return. 1
  • Drop redundant NULL test. 1 2 3 4 5 6 7 8 9 11 12 (semantic patch) 13 (semantic match)
  • Add missing snd_card_free. 1 (semantic match)
  • Move dereference to after a NULL test. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 (semantic patch) 14 15 16 17 18 19 (semantic patch) 20 (semantic match)
  • Move dereference to after a IS_ERR test. 1 2 (semantic match)
  • Add missing fput 1 (semantic match)
  • Make error handling code coherent 1 (semantic patch)
  • Use {simple,strict}_strtoul 1 2 3 4 (semantic patch)
  • Add missing fuse_request_free 1 (semantic match)
  • Convert && to || 1 2 (semantic patch)
  • Convert NULL test to ISERR test 1 (semantic patch) 2 (semantic patch) 3 (semantic patch) 4 (semantic match) 5 (semantic match) 6 (semantic match) 7 8 9 (semantic match)
  • Fix argument to __mesh_table_free 1 (semantic match)
  • Adjust error handling code involving auth_domain_put 1 (semantic match)
  • Eliminate double sizeof 1 2 (semantic patch)
  • Replace spin_unlock by mutex_unlock 1 (semantic patch)
  • Add local_irq_restore in error handling code 1 2 3 (semantic patch)
  • Release mutex in error handling code 1 2 3 4 5 6 7 (semantic patch)
  • Eliminate NULL test after alloc_bootmem 1 2 3 4 5 6 7 8 9 10 11 (semantic patch)
  • Add missing of_node_put after of_find_node_by_name or of_find_node_by_type 1 (semantic patch) 2 3 4 (semantic patch) 5
  • Remove useles kzalloc 1 (semantic match)
  • Add missing kfree 1 2 3 (semantic match) 4 5 6 7 8 9 10 11 12 13 14 15 16 (semantic match) 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (semantic match)
  • Eliminate NULL pointer dereference 1 2 (semantic match)
  • Eliminate double free involving framebuffer_release 1 (semantic match)
  • IS_ERR test on the result of kzalloc 1
  • Bad use of unsigned values 1 (semantic match)
  • Test with IS_ERR directly, rather than testing for less than 0 1 (semantic match)
  • Test with IS_ERR rather than testing for 0/NULL. 1 2 3 4 (semantic match) 5 (semantic match) 6 (semantic match) 7 (semantic match) related change
  • Drop unused variables 1 2 3 4 5 (semantic patch)
  • Correct occurrences of !x&y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (semantic patch)
  • Use video_device_release 1 2 (semantic match)
  • Use sockfd_put 1 (semantic patch)
  • Use tipc_port_unlock 1 (semantic patch)
  • Drop unnecessary continue 1 2 (semantic patch)
  • Add missing x25_neigh_put 1 (semantic match)
  • Add missing iounmap 1 2 3 (semantic match)
  • Drop redundant include of moduleparam.h 1 (semantic patch)
  • Add missing call to posix_acl_release 1 (semantic patch)
  • Fix use of skb after netif_rx 1 2 3 (semantic match)
  • Add missing of_node_put 1 2 3 (semantic patch) 4 (semantic patch) 5 6 7 (semantic match)
  • Add missing pci_dev_put 1 2 3 4 5 (semantic patch) 5 (semantic match) 6 (semantic patch) 7 (semantic match)
  • Move misplaced pci_dev_put's 1 2 (semantic match) 3 4 (semantic match)
  • Use netdev_priv 1 2 (semantic patch)
  • test conversion for pointers from 0 to NULL 1, 2 3 (semantic patch)
  • potential-parse-error 1, 2, 3, 4a, 4b, 5,
  • atari_pamsnetc-old-declaration-ritchie-style-fix.patch
  • Patches submitted by others using Coccinelle

  • convert irq function names 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
  • introduce kzfree 0
  • boolean negation and bitwise operation in wrong order 1 2
  • ARRAY_SIZE changes 1 2
  • list usage cleanup 2 3 4 5
  • Remove some pointless conditionals before kfree_skb() 1
  • Convert usage of b43_{phy,radio}_{mask,set,maskset}() 1 2 3 4 5
  • Introduce missing mutex_unlock() 1
  • Use 'unsigned long' for irqflags 1, 2 3 4
  • le*_add_cpu conversion, etc 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
  • Converting pointer manipulation to use readb, etc. commit version ( preliminary version )
  • Some patches based on bugs in Dovecot found using Coccinelle: 1, 2, 3, 4, 5, 6, 7
  • Updating return values in network code: 1
  • Missing rfkill_destroy: 1, 2
  • Missing mutex_unlock: 1
  • Remove redundant zero fill: 1
  • Removing some uses of the big kernel lock: 1