v2: - add Acks/Reviews - refresh coccinelle run against v4.14-rc1 These are the first 31 patches[1] that have the goal of removing the .data field from struct timer_list, with the callback argument becoming a pointer to the struct timer_list itself.
The phases included in this series can be summarized as: Replace open-coded variants of setup_timer() with actual setup_timer() calls: [PATCH 01/31] coccinelle: Improve setup_timer.cocci matching [PATCH 02/31] timer: Convert open-coded init_timer() to setup_timer() [PATCH 03/31] timer: Remove init_timer_pinned_deferrable() in favor [PATCH 04/31] timer: Remove init_timer_on_stack() in favor of [PATCH 05/31] timer: Remove init_timer_pinned() in favor of [PATCH 06/31] timer: Remove init_timer_deferrable() in favor of Remove little or unused macros, with the goal of removing to ability to statically define the .data field: [PATCH 07/31] timer: Remove users of TIMER_DEFERRED_INITIALIZER [PATCH 08/31] timer: Remove users of TIMER_INITIALIZER [PATCH 09/31] timer: Remove unused static initializer macros [PATCH 10/31] timer: Remove users of expire and data arguments to [PATCH 11/31] timer: Remove expires and data arguments from [PATCH 12/31] timer: Remove expires argument from Fix usages of setup_timer() that Coccinelle can't reason about: [PATCH 13/31] timer: Remove meaningless .data/.function assignments [PATCH 14/31] timer: Collapse cross-function single-assignment .data [PATCH 15/31] timer: Additional init_timer() -> setup_timer() Eliminate all open-coded usage of the .data field: [PATCH 16/31] usb/phy-isp1301-omap: Remove .data assignment [PATCH 17/31] media/i2c/tc358743: Initialize timer [PATCH 18/31] scsi/aic7xxx: Clean up timer usage [PATCH 19/31] timer: Remove open-coded casts for .data and .function [PATCH 20/31] net/core: Collapse redundant sk_timer callback data [PATCH 21/31] s390/char/sclp: Use separate static data field with [PATCH 22/31] sparc/led: Use separate static data field with with [PATCH 23/31] mips/sgi-ip32: Use separate static data field with with [PATCH 24/31] mips/sgi-ip22: Use separate static data field with with [PATCH 25/31] net/atm/mpc: Use separate static data field with with [PATCH 26/31] staging/comedi/das16: Make timer initialization [PATCH 27/31] usb/gadget/snps_udc_core: Move timer initialization [PATCH 28/31] infiniband/rdmavt: Remove redundant timer [PATCH 29/31] scsi/bnx2i: Initialize timer [PATCH 30/31] appletalk: Remove unneeded synchronization [PATCH 31/31] timer: Switch to testing for .function instead of .data -Kees [1] https://lkml.org/lkml/2017/8/30/760