[GIT PULL] final timer conversion update for v4.15-rc1

From: Kees Cook
Date: Tue Nov 21 2017 - 19:19:28 EST


Hi Thomas,

Please pull and forward this final set of changes needed to finish the
timer conversions, intended for v4.15-rc1. All the dependent trees have
landed, so this is it. The bulk of the changes are the treewide bits in
the middle. Their commit logs are rather long since Linus had
recommended to me that I include the script in the log, and didn't seem
to mind when I mentioned they might be very long. :)

Thanks!

-Kees

The following changes since commit 0c86a6bd85ff0629cd2c5141027fc1c8bb6cde9c:

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-11-21 05:56:12 -1000)

are available in the git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git tags/for-linus-timers-conversion-final-v4.15-rc1

for you to fetch changes up to c10d4a0af0eb5d549193de2593791d1dd29895db:

treewide: Remove TIMER_FUNC_TYPE cast (2017-11-21 15:57:16 -0800)

----------------------------------------------------------------
- final batch of "non trivial" timer conversions (multi-tree dependencies,
things Coccinelle couldn't handle, etc).
- treewide conversions via Coccinelle, in 4 steps:
- DEFINE_TIMER() functions converted to struct timer_list * argument
- init_timer() -> setup_timer()
- setup_timer() -> timer_setup()
- setup_timer() -> timer_setup() (with a single embedded structure)
- deprecated timer API removals (init_timer(), setup_*timer())
- finalization of new API (remove global casts)

----------------------------------------------------------------
Kees Cook (22):
drivers/firmware: psci: Convert timers to use timer_setup()
usb: usbatm: Convert timers to use timer_setup()
drm/i915/selftests: Convert timers to use timer_setup()
net/atm/mpc: Avoid open-coded assignment of timer callback function
block/laptop_mode: Convert timers to use timer_setup()
drm/vc4: Convert timers to use timer_setup()
drivers/net: cris: Convert timers to use timer_setup()
lightnvm: Convert timers to use timer_setup()
s390: cmm: Convert timers to use timer_setup()
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
treewide: init_timer() -> setup_timer()
treewide: setup_timer() -> timer_setup()
treewide: setup_timer() -> timer_setup() (2 field)
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

Documentation/core-api/local_ops.rst | 10 +-
arch/alpha/kernel/srmcons.c | 7 +-
arch/arm/mach-iop32x/n2100.c | 5 +-
arch/arm/mach-ixp4xx/dsmg600-setup.c | 4 +-
arch/arm/mach-ixp4xx/nas100d-setup.c | 4 +-
arch/arm/mach-orion5x/db88f5281-setup.c | 4 +-
arch/blackfin/kernel/nmi.c | 5 +-
arch/m68k/amiga/amisound.c | 4 +-
arch/m68k/mac/macboing.c | 4 +-
arch/mips/lasat/picvue_proc.c | 4 +-
arch/mips/mti-malta/malta-display.c | 4 +-
arch/parisc/kernel/pdc_cons.c | 4 +-
arch/powerpc/kernel/tau_6xx.c | 4 +-
arch/powerpc/kvm/booke.c | 7 +-
arch/powerpc/oprofile/op_model_cell.c | 8 +-
arch/powerpc/platforms/cell/spufs/sched.c | 8 +-
arch/powerpc/platforms/powermac/low_i2c.c | 6 +-
arch/s390/kernel/time.c | 4 +-
arch/s390/mm/cmm.c | 8 +-
arch/sh/drivers/heartbeat.c | 6 +-
arch/sh/drivers/pci/common.c | 16 +-
arch/sh/drivers/push-switch.c | 9 +-
block/blk-core.c | 10 +-
block/blk-stat.c | 6 +-
block/blk-throttle.c | 9 +-
drivers/atm/ambassador.c | 9 +-
drivers/atm/firestream.c | 8 +-
drivers/atm/horizon.c | 8 +-
drivers/atm/idt77105.c | 8 +-
drivers/atm/idt77252.c | 6 +-
drivers/atm/iphase.c | 4 +-
drivers/atm/lanai.c | 8 +-
drivers/atm/nicstar.c | 8 +-
drivers/base/power/wakeup.c | 2 +-
drivers/block/DAC960.c | 9 +-
drivers/block/DAC960.h | 2 +-
drivers/block/aoe/aoecmd.c | 2 +-
drivers/block/ataflop.c | 16 +-
drivers/block/rsxx/cregs.c | 7 +-
drivers/block/rsxx/dma.c | 7 +-
drivers/block/skd_main.c | 6 +-
drivers/block/sunvdc.c | 9 +-
drivers/block/swim3.c | 2 +-
drivers/block/umem.c | 5 +-
drivers/block/xsysace.c | 6 +-
drivers/char/dtlk.c | 4 +-
drivers/char/hangcheck-timer.c | 4 +-
drivers/char/ipmi/bt-bmc.c | 7 +-
drivers/char/ipmi/ipmi_msghandler.c | 4 +-
drivers/char/ipmi/ipmi_si_intf.c | 6 +-
drivers/char/ipmi/ipmi_ssif.c | 7 +-
drivers/char/nwbutton.c | 4 +-
drivers/char/nwbutton.h | 2 +-
drivers/char/rtc.c | 4 +-
drivers/char/tpm/tpm-dev-common.c | 7 +-
drivers/firmware/psci_checker.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 8 +-
drivers/gpu/drm/drm_vblank.c | 11 +-
drivers/gpu/drm/exynos/exynos_drm_vidi.c | 6 +-
drivers/gpu/drm/i2c/tda998x_drv.c | 7 +-
drivers/gpu/drm/i915/selftests/lib_sw_fence.c | 6 +-
drivers/gpu/drm/msm/adreno/a5xx_preempt.c | 7 +-
drivers/gpu/drm/msm/msm_gpu.c | 7 +-
drivers/gpu/drm/omapdrm/dss/dsi.c | 6 +-
drivers/gpu/drm/rockchip/rockchip_drm_psr.c | 6 +-
drivers/gpu/drm/vc4/vc4_bo.c | 9 +-
drivers/gpu/drm/vc4/vc4_gem.c | 10 +-
drivers/gpu/drm/vgem/vgem_fence.c | 6 +-
drivers/gpu/drm/via/via_dmablit.c | 7 +-
drivers/hid/hid-appleir.c | 7 +-
drivers/hid/hid-prodikeys.c | 7 +-
drivers/hid/hid-wiimote-core.c | 6 +-
drivers/iio/common/ssp_sensors/ssp_dev.c | 6 +-
drivers/infiniband/hw/mlx5/mr.c | 6 +-
drivers/infiniband/hw/mthca/mthca_catas.c | 8 +-
drivers/infiniband/hw/nes/nes_verbs.c | 2 +-
drivers/input/gameport/gameport.c | 7 +-
drivers/input/input.c | 2 +-
drivers/input/joystick/db9.c | 6 +-
drivers/input/joystick/gamecon.c | 6 +-
drivers/input/joystick/turbografx.c | 6 +-
drivers/input/touchscreen/s3c2410_ts.c | 2 +-
drivers/iommu/iova.c | 8 +-
drivers/isdn/capi/capidrv.c | 6 +-
drivers/isdn/divert/isdn_divert.c | 9 +-
drivers/isdn/hardware/eicon/divasi.c | 9 +-
drivers/isdn/hardware/mISDN/hfcmulti.c | 8 +-
drivers/isdn/hardware/mISDN/hfcpci.c | 10 +-
drivers/isdn/hardware/mISDN/mISDNisar.c | 10 +-
drivers/isdn/i4l/isdn_common.c | 5 +-
drivers/isdn/i4l/isdn_net.c | 9 +-
drivers/isdn/i4l/isdn_ppp.c | 9 +-
drivers/isdn/i4l/isdn_tty.c | 7 +-
drivers/lightnvm/pblk-core.c | 4 +-
drivers/lightnvm/pblk-gc.c | 6 +-
drivers/lightnvm/pblk-init.c | 2 +-
drivers/lightnvm/pblk-rl.c | 6 +-
drivers/lightnvm/pblk.h | 2 +-
drivers/lightnvm/rrpc.c | 6 +-
drivers/media/common/saa7146/saa7146_vbi.c | 2 +-
drivers/media/platform/fsl-viu.c | 7 +-
drivers/media/platform/s5p-mfc/s5p_mfc.c | 8 +-
.../media/platform/sti/c8sectpfe/c8sectpfe-core.c | 7 +-
drivers/media/platform/vim2m.c | 6 +-
drivers/media/usb/au0828/au0828-dvb.c | 8 +-
drivers/media/usb/au0828/au0828-video.c | 14 +-
drivers/memstick/core/ms_block.c | 7 +-
drivers/mfd/rtsx_usb.c | 6 +-
drivers/mmc/core/host.c | 6 +-
drivers/mtd/sm_ftl.c | 6 +-
drivers/net/caif/caif_hsi.c | 21 +-
drivers/net/cris/eth_v10.c | 36 ++-
drivers/net/dsa/mv88e6xxx/phy.c | 7 +-
drivers/net/eql.c | 6 +-
drivers/net/ethernet/adi/bfin_mac.c | 9 +-
drivers/net/ethernet/agere/et131x.c | 7 +-
drivers/net/ethernet/amazon/ena/ena_netdev.c | 7 +-
drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 14 +-
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 8 +-
drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 8 +-
drivers/net/ethernet/atheros/atlx/atl1.c | 8 +-
drivers/net/ethernet/atheros/atlx/atl2.c | 15 +-
drivers/net/ethernet/broadcom/b44.c | 6 +-
drivers/net/ethernet/broadcom/bnx2.c | 6 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 6 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 +-
drivers/net/ethernet/broadcom/tg3.c | 6 +-
drivers/net/ethernet/cisco/enic/enic_clsf.c | 4 +-
drivers/net/ethernet/cisco/enic/enic_clsf.h | 5 +-
drivers/net/ethernet/cisco/enic/enic_main.c | 7 +-
drivers/net/ethernet/marvell/mv643xx_eth.c | 13 +-
drivers/net/ethernet/marvell/pxa168_eth.c | 7 +-
drivers/net/ethernet/marvell/skge.c | 6 +-
drivers/net/ethernet/marvell/sky2.c | 6 +-
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 7 +-
.../net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 8 +-
drivers/net/ethernet/pasemi/pasemi_mac.c | 7 +-
drivers/net/ethernet/qlogic/qla3xxx.c | 6 +-
drivers/net/ethernet/rocker/rocker_ofdpa.c | 7 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 15 +-
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c | 7 +-
drivers/net/ethernet/ti/cpsw_ale.c | 6 +-
drivers/net/ethernet/ti/netcp_ethss.c | 7 +-
drivers/net/ethernet/ti/tlan.c | 6 +-
drivers/net/ethernet/toshiba/spider_net.c | 16 +-
drivers/net/hamradio/scc.c | 8 +-
drivers/net/slip/slip.c | 16 +-
drivers/net/tun.c | 8 +-
drivers/net/wan/hdlc_ppp.c | 6 +-
drivers/net/wireless/atmel/at76c50x-usb.c | 4 +-
.../wireless/broadcom/brcm80211/brcmfmac/btcoex.c | 6 +-
.../broadcom/brcm80211/brcmfmac/cfg80211.c | 7 +-
.../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 7 +-
drivers/net/wireless/intel/iwlwifi/dvm/main.c | 14 +-
drivers/net/wireless/intel/iwlwifi/dvm/tt.c | 18 +-
drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 7 +-
drivers/net/wireless/intersil/hostap/hostap_ap.c | 8 +-
drivers/net/wireless/intersil/hostap/hostap_hw.c | 17 +-
.../net/wireless/intersil/orinoco/orinoco_usb.c | 6 +-
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c | 2 +-
drivers/net/wireless/quantenna/qtnfmac/core.c | 2 +-
drivers/net/wireless/ray_cs.c | 12 +-
drivers/net/wireless/ti/wlcore/main.c | 7 +-
drivers/net/xen-netfront.c | 7 +-
drivers/nfc/nfcmrvl/fw_dnld.c | 7 +-
drivers/nfc/pn533/pn533.c | 8 +-
drivers/nfc/st-nci/ndlc.c | 17 +-
drivers/nfc/st-nci/se.c | 19 +-
drivers/nfc/st21nfca/se.c | 19 +-
drivers/ntb/test/ntb_pingpong.c | 8 +-
drivers/platform/x86/sony-laptop.c | 4 +-
drivers/pps/clients/pps-ktimer.c | 4 +-
drivers/rtc/rtc-dev.c | 6 +-
drivers/s390/block/dasd.c | 20 +-
drivers/s390/char/sclp.c | 2 +-
drivers/s390/net/fsm.c | 11 +-
drivers/s390/scsi/zfcp_fsf.c | 4 +-
drivers/scsi/aic94xx/aic94xx_hwi.c | 2 +-
drivers/scsi/aic94xx/aic94xx_tmf.c | 2 +-
drivers/scsi/arcmsr/arcmsr_hba.c | 14 +-
drivers/scsi/arm/fas216.c | 8 +-
drivers/scsi/be2iscsi/be_main.c | 4 +-
drivers/scsi/bfa/bfad.c | 8 +-
drivers/scsi/bfa/bfad_drv.h | 2 +-
drivers/scsi/bnx2fc/bnx2fc_tgt.c | 16 +-
drivers/scsi/cxgbi/cxgb3i/cxgb3i.c | 4 +-
drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 4 +-
drivers/scsi/esas2r/esas2r_main.c | 10 +-
drivers/scsi/fcoe/fcoe_ctlr.c | 8 +-
drivers/scsi/fnic/fnic_main.c | 14 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 4 +-
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 6 +-
drivers/scsi/ipr.c | 8 +-
drivers/scsi/libfc/fc_fcp.c | 6 +-
drivers/scsi/libsas/sas_expander.c | 2 +-
drivers/scsi/libsas/sas_scsi_host.c | 2 +-
drivers/scsi/mvsas/mv_sas.c | 4 +-
drivers/scsi/ncr53c8xx.c | 8 +-
drivers/scsi/pm8001/pm8001_sas.c | 4 +-
drivers/scsi/pmcraid.c | 10 +-
drivers/scsi/sym53c8xx_2/sym_glue.c | 8 +-
drivers/staging/greybus/operation.c | 7 +-
drivers/staging/irda/include/net/irda/timer.h | 2 +-
drivers/staging/lustre/lnet/lnet/net_fault.c | 6 +-
drivers/staging/lustre/lustre/ptlrpc/service.c | 9 +-
drivers/staging/media/imx/imx-ic-prpencvf.c | 7 +-
drivers/staging/media/imx/imx-media-csi.c | 7 +-
drivers/staging/most/hdm-usb/hdm_usb.c | 7 +-
.../staging/rtl8192u/ieee80211/ieee80211_softmac.c | 16 +-
drivers/staging/rtl8712/recv_linux.c | 9 +-
drivers/staging/rtl8712/rtl8712_led.c | 9 +-
drivers/staging/speakup/main.c | 4 +-
drivers/staging/speakup/synth.c | 2 +-
drivers/staging/unisys/visorbus/visorbus_main.c | 6 +-
drivers/staging/unisys/visornic/visornic_main.c | 8 +-
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 +-
drivers/target/target_core_user.c | 7 +-
drivers/tty/cyclades.c | 4 +-
drivers/tty/ipwireless/hardware.c | 11 +-
drivers/tty/isicom.c | 4 +-
drivers/tty/moxa.c | 4 +-
drivers/tty/n_gsm.c | 12 +-
drivers/tty/n_r3964.c | 8 +-
drivers/tty/rocket.c | 4 +-
drivers/tty/serial/8250/8250_core.c | 4 +-
drivers/tty/serial/crisv10.c | 4 +-
drivers/tty/serial/fsl_lpuart.c | 7 +-
drivers/tty/serial/ifx6x60.c | 7 +-
drivers/tty/serial/imx.c | 6 +-
drivers/tty/serial/kgdb_nmi.c | 6 +-
drivers/tty/serial/max3100.c | 7 +-
drivers/tty/serial/mux.c | 4 +-
drivers/tty/serial/pnx8xxx_uart.c | 7 +-
drivers/tty/serial/sa1100.c | 7 +-
drivers/tty/serial/sh-sci.c | 16 +-
drivers/tty/serial/sn_console.c | 6 +-
drivers/tty/synclink.c | 8 +-
drivers/tty/synclink_gt.c | 16 +-
drivers/tty/synclinkmp.c | 17 +-
drivers/tty/vt/keyboard.c | 2 +-
drivers/tty/vt/vt.c | 4 +-
drivers/usb/atm/cxacru.c | 23 +-
drivers/usb/atm/speedtch.c | 16 +-
drivers/usb/atm/usbatm.c | 10 +-
drivers/usb/core/hcd.c | 8 +-
drivers/usb/dwc2/hcd.c | 7 +-
drivers/usb/dwc2/hcd_queue.c | 7 +-
drivers/usb/gadget/udc/at91_udc.c | 7 +-
drivers/usb/gadget/udc/dummy_hcd.c | 8 +-
drivers/usb/gadget/udc/m66592-udc.c | 6 +-
drivers/usb/gadget/udc/omap_udc.c | 8 +-
drivers/usb/gadget/udc/pxa25x_udc.c | 6 +-
drivers/usb/gadget/udc/r8a66597-udc.c | 6 +-
drivers/usb/host/ohci-hcd.c | 9 +-
drivers/usb/host/oxu210hp-hcd.c | 6 +-
drivers/usb/host/r8a66597-hcd.c | 7 +-
drivers/usb/host/sl811-hcd.c | 6 +-
drivers/usb/host/uhci-hcd.c | 3 +-
drivers/usb/host/uhci-q.c | 4 +-
drivers/usb/host/xhci.c | 8 +-
drivers/usb/serial/mos7840.c | 15 +-
drivers/usb/storage/realtek_cr.c | 7 +-
drivers/uwb/drp.c | 6 +-
drivers/uwb/neh.c | 8 +-
drivers/uwb/rsv.c | 15 +-
drivers/uwb/uwb-internal.h | 2 +-
drivers/watchdog/alim7101_wdt.c | 4 +-
drivers/watchdog/at91sam9_wdt.c | 6 +-
drivers/watchdog/bcm47xx_wdt.c | 9 +-
drivers/watchdog/bcm63xx_wdt.c | 4 +-
drivers/watchdog/cpu5wdt.c | 4 +-
drivers/watchdog/machzwd.c | 4 +-
drivers/watchdog/mixcomwd.c | 4 +-
drivers/watchdog/mpc8xxx_wdt.c | 7 +-
drivers/watchdog/mtx-1_wdt.c | 4 +-
drivers/watchdog/nuc900_wdt.c | 4 +-
drivers/watchdog/pcwd.c | 4 +-
drivers/watchdog/pika_wdt.c | 4 +-
drivers/watchdog/rdc321x_wdt.c | 4 +-
drivers/watchdog/sbc60xxwdt.c | 4 +-
drivers/watchdog/sc520_wdt.c | 4 +-
drivers/watchdog/shwdt.c | 6 +-
drivers/watchdog/via_wdt.c | 4 +-
drivers/watchdog/w83877f_wdt.c | 4 +-
drivers/xen/grant-table.c | 4 +-
fs/ocfs2/cluster/tcp.c | 9 +-
fs/pstore/platform.c | 4 +-
include/linux/kthread.h | 10 +-
include/linux/timer.h | 120 +++------
include/linux/workqueue.h | 17 +-
include/linux/writeback.h | 2 +-
kernel/irq/spurious.c | 4 +-
kernel/kthread.c | 2 +-
kernel/padata.c | 6 +-
kernel/time/clocksource.c | 5 +-
kernel/time/timer.c | 40 +--
kernel/workqueue.c | 2 +-
lib/random32.c | 4 +-
mm/page-writeback.c | 7 +-
net/802/garp.c | 6 +-
net/802/mrp.c | 13 +-
net/appletalk/aarp.c | 4 +-
net/appletalk/ddp.c | 7 +-
net/atm/lec.c | 6 +-
net/atm/mpc.c | 3 +-
net/batman-adv/tp_meter.c | 14 +-
net/bluetooth/hidp/core.c | 7 +-
net/bluetooth/rfcomm/core.c | 12 +-
net/bluetooth/sco.c | 6 +-
net/can/proc.c | 4 +-
net/core/drop_monitor.c | 7 +-
net/core/gen_estimator.c | 6 +-
net/core/neighbour.c | 14 +-
net/decnet/dn_route.c | 8 +-
net/decnet/dn_timer.c | 8 +-
net/ipv4/igmp.c | 20 +-
net/ipv4/ipmr.c | 9 +-
net/ipv6/addrconf.c | 9 +-
net/ipv6/ip6_fib.c | 10 +-
net/ipv6/ip6_flowlabel.c | 4 +-
net/ipv6/ip6mr.c | 9 +-
net/ipv6/mcast.c | 33 ++-
net/lapb/lapb_timer.c | 4 +-
net/ncsi/ncsi-manage.c | 15 +-
net/netfilter/nf_conntrack_expect.c | 7 +-
net/netfilter/nfnetlink_log.c | 8 +-
net/netfilter/xt_IDLETIMER.c | 7 +-
net/netfilter/xt_LED.c | 8 +-
net/netrom/af_netrom.c | 2 +-
net/netrom/nr_loopback.c | 4 +-
net/netrom/nr_timer.c | 2 +-
net/nfc/nci/core.c | 14 +-
net/rose/rose_link.c | 4 +-
net/rose/rose_timer.c | 12 +-
net/rxrpc/call_object.c | 7 +-
net/sunrpc/svc_xprt.c | 2 +-
net/wireless/lib80211.c | 11 +-
net/x25/af_x25.c | 2 +-
net/x25/x25_link.c | 8 +-
net/x25/x25_timer.c | 2 +-
net/xfrm/xfrm_state.c | 9 +-
scripts/coccinelle/api/setup_timer.cocci | 277 ---------------------
security/keys/gc.c | 4 +-
sound/usb/line6/driver.c | 2 +-
344 files changed, 1212 insertions(+), 1705 deletions(-)
delete mode 100644 scripts/coccinelle/api/setup_timer.cocci

--
Kees Cook
Pixel Security