[PATCH v2 00/31] struct timer_list callback argument conversion, step 1

From: Kees Cook
Date: Wed Sep 20 2017 - 19:32:57 EST


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