On Fri, Nov 3, 2017 at 2:28 AM, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > Non-merge commits (relative to Linus' tree): 10201 > 9162 files changed, 500400 insertions(+), 233533 deletions(-) We're close enough with the timer_setup() conversion[1] that I thought I might start providing a status update. As of this -next tree, there are (at least) 192 "non trivial" conversions staged (with a matching subject of ": Convert timers to use timer_setup"), producing: 600 files changed, 2695 insertions(+), 3088 deletions(-) There are 72 outstanding non-trivial conversions (almost all are in-flight to various trees and haven't appeared in -next yet). Combined with the trivial treewide conversions it produces: 518 files changed, 2086 insertions(+), 2686 deletions(-) After that, all 1119 timer_setup() callsites will be finished. My tree, based on next-20171103, is here: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/log/?h=kspp/timer/next/20171103/conversions Notes and break-down of patch statuses: # in-flight (tip/timers/core) scsi: aic7xxx: Convert timers to use timer_setup() scsi: csiostor: Convert timers to use timer_setup() scsi: cxgbi: Convert timers to use timer_setup() scsi: ibmvscsi: Convert timers to use timer_setup() scsi: ipr: Convert timers to use timer_setup() scsi: lpfc: Convert timers to use timer_setup() scsi: megaraid: Convert timers to use timer_setup() scsi: pmcraid: Convert timers to use timer_setup() scsi: sas: Convert timers to use timer_setup() scsi: qla4xxx: Convert timers to use timer_setup() target/iscsi: Simplify timer manipulation code target/iscsi: Convert timers to use timer_setup() RAS/CEC: Convert timers to use timer_setup() usb: usbtest: Convert timers to use timer_setup() drm: gma500: Convert timers to use timer_setup() rcu: Convert timers to use timer_setup() fs/ncpfs: Convert timers to use timer_setup() hwrng/xgene-rng: Convert timers to use timer_setup() sparc/led: Convert timers to use timer_setup() mips: ip22/32: Convert timers to use timer_setup() arm: pxa: Convert timers to use timer_setup() powerpc/watchdog: Convert timers to use timer_setup() watchdog: lpc18xx_wdt: Convert timers to use timer_setup() ACPI / APEI: Convert timers to use timer_setup() drm/etnaviv: Convert timers to use timer_setup() media: pvrusb2: Convert timers to use timer_setup() watchdog: cpwd: Convert timers to use timer_setup() auxdisplay: Convert timers to use timer_setup() ia64: Convert timers to use timer_setup() ARM: footbridge: Convert timers to use timer_setup() x86, calgary: Convert timers to use timer_setup() xtensa: Convert timers to use timer_setup() drivers/pcmcia: Convert timers to use timer_setup() drivers/macintosh: Convert timers to use timer_setup() drivers/memstick: Convert timers to use timer_setup() drivers/sgi-xp: Convert timers to use timer_setup() # in-flight (s390) s390: qdio: Convert timers to use timer_setup() s390/sclp: Convert timers to use timer_setup() s390/cio: Convert timers to use timer_setup() s390/scsi: Convert timers to use timer_setup() s390/ap_bus: Convert timers to use timer_setup() # in-flight (greg) staging: greybus: Convert timers to use timer_setup() staging: rtl8723bs: Convert timers to use timer_setup() staging: ks7010: Convert timers to use timer_setup() staging: vc04_services: Convert timers to use timer_setup() staging: rtlwifi: Remove unused variable # in-flight (other trees) media: pci: Convert timers to use timer_setup() netfilter: ipvs: Convert timers to use timer_setup() drivers/wireless: iwlwifi/mvm: Convert timers to use timer_setup() drm/vc4: Convert timers to use timer_setup() mISDN: hfcpci: Convert timers to use timer_setup() # waiting for commit to tree (greg) serial: 8250: Convert timers to use timer_setup() serial: sccnxp: Convert timers to use timer_setup() serial: bfin_uart: Convert timers to use timer_setup() serial: m32r_sio: Drop redundant .data assignment tty/serial: altera_uart: Convert timers to use timer_setup() tty/serial: atmel: Convert timers to use timer_setup() tty: cyclades: Convert timers to use timer_setup() tty: vcc: Convert timers to use timer_setup() # waiting for commit to tree (andy) intel_ips: Convert timers to use timer_setup() # collected for tip/timers/core (part 4) ARM: footbridge: Fix typo in timer conversion crypto: Convert timers to use timer_setup() # pending av7110 auto-repeat fixes (will go via input) input: Convert timers to use timer_setup() # pending test resolution (will go via tip/timers/core) scsi: qla2xxx: Convert timers to use timer_setup() # sent, awaiting feedback (will go via tip/timers/core if no feedback) block/aoe: discover_timer: Convert timers to use timer_setup() ide: Convert timers to use timer_setup() drbd: Convert timers to use timer_setup() mailbox: Convert timers to use timer_setup() # late rc1 (through tip/timers/core, depends on other trees) video: fbdev: Convert timers to use timer_setup() block/laptop_mode: Convert timers to use timer_setup() usb: usbatm: Convert timers to use timer_setup() drm/i915/selftests: Convert timers to use timer_setup() lightnvm: Convert timers to use timer_setup() drivers/firmware: psci: Convert timers to use timer_setup() timer: Prepare to change all DEFINE_TIMER() callbacks treewide: Switch DEFINE_TIMER callbacks to struct timer_list * net/atm/mpc: Avoid open-coded assignment of timer callback function s390: cmm: Convert timers to use timer_setup() drivers/net: cris: Convert timers to use timer_setup() # late rc1 (through tip/timers/core or scripted by linus, tree-wide changes) treewide: init_timer() -> setup_timer() treewide: setup_timer() -> timer_setup() treewide: setup_timer() -> timer_setup() (2 field) # late rc1 (through tip/timers/core, API removal and clean up) timer: Remove init_timer() interface timer: Remove setup_*timer() interface Coccinelle: Remove setup_timer.cocci timer: Pass timer_list pointer to callbacks unconditionally timer: Switch callback prototype to take struct timer_list * argument timer: Remove unused data arguments from macros timer: Pass function down to initialization routines timer: Remove redundant __setup_timer*() macros treewide: Remove TIMER_FUNC_TYPE cast Thanks to everyone who has suffered through this with me. Only a little bit more to go! :) -Kees [1] https://git.kernel.org/linus/686fef928bba6be13cabe639f154af7d72b63120 -- Kees Cook Pixel Security -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html