From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (146.0.238.70:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 24 Feb 2019 15:12:50 -0000 Received: from mga07.intel.com ([134.134.136.100]) by Galois.linutronix.de with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1gxvNo-0001Qz-Un for speck@linutronix.de; Sun, 24 Feb 2019 16:08:02 +0100 From: Andi Kleen Subject: [MODERATED] [PATCH v6 42/43] MDSv6 Date: Sun, 24 Feb 2019 07:07:48 -0800 Message-Id: <9c68ac6c4dddd4954637054bcc46850ef56b2035.1551019522.git.ak@linux.intel.com> In-Reply-To: References: In-Reply-To: References: To: speck@linutronix.de Cc: Andi Kleen List-ID: From: Andi Kleen Subject: mds sweep: Mark timer handlers that touch user data This is the result of a large scale tree audit, looking for timer handlers that may touch user data. The audit was on the conservative side, it was either handlers that clearly user data, or were too complicated to audit and not performance critical. There are more timer handlers that touch user data, but these are covered by centralized hooks. The change was done with the following cocci script, except for DEFINE_TIMER, which was done by sed. // SPDX-License-Identifier: GPL-2.0 @@ expression timer, func, flags; @@ - timer_setup(timer, func, flags) + timer_setup(timer, func, flags | TIMER_USER_DATA) @@ expression timer, func, flags; @@ - timer_setup_on_stack(timer, func, flags) + timer_setup_on_stack(timer, func, flags | TIMER_USER_DATA) @@ expression timer, flags1, flags2; @@ - hrtimer_init(timer, flags1, flags2) + hrtimer_init(timer, flags1, flags2 | HRTIMER_MODE_USER_DATA) Signed-off-by: Andi Kleen --- arch/x86/events/intel/uncore.c | 3 ++- drivers/auxdisplay/img-ascii-lcd.c | 2 +- drivers/block/xsysace.c | 2 +- drivers/firewire/core-transaction.c | 5 +++-- drivers/gpu/drm/i915/i915_pmu.c | 3 ++- drivers/ide/ide-probe.c | 2 +- drivers/iio/trigger/iio-trig-hrtimer.c | 3 ++- drivers/input/ff-memless.c | 2 +- drivers/input/input.c | 2 +- drivers/isdn/capi/capidrv.c | 2 +- drivers/isdn/i4l/isdn_common.c | 2 +- drivers/media/cec/cec-pin.c | 3 ++- drivers/media/pci/bt8xx/bttv-driver.c | 2 +- drivers/media/pci/bt8xx/bttv-input.c | 5 +++-- .../pci/netup_unidvb/netup_unidvb_core.c | 3 ++- drivers/media/pci/saa7134/saa7134-input.c | 3 ++- drivers/media/pci/saa7134/saa7134-ts.c | 3 ++- drivers/media/pci/saa7134/saa7134-vbi.c | 3 ++- drivers/media/pci/saa7134/saa7134-video.c | 3 ++- drivers/media/pci/ttpci/av7110_ir.c | 3 ++- drivers/media/radio/radio-cadet.c | 2 +- drivers/media/radio/wl128x/fmdrv_common.c | 3 ++- drivers/media/rc/img-ir/img-ir-raw.c | 2 +- drivers/media/rc/ir-rx51.c | 3 ++- drivers/media/usb/au0828/au0828-video.c | 6 +++-- drivers/net/appletalk/cops.c | 2 +- drivers/net/caif/caif_hsi.c | 9 +++++--- drivers/net/hamradio/6pack.c | 4 ++-- drivers/net/hamradio/scc.c | 4 ++-- drivers/net/hamradio/yam.c | 4 ++-- drivers/net/hippi/rrunner.c | 2 +- drivers/net/ieee802154/at86rf230.c | 3 ++- drivers/net/slip/slip.c | 4 ++-- drivers/net/wan/sdla.c | 2 +- drivers/net/wireless/ath/ath9k/init.c | 5 +++-- .../net/wireless/intersil/hostap/hostap_ap.c | 2 +- .../wireless/marvell/mwifiex/11n_rxreorder.c | 3 ++- drivers/net/wireless/marvell/mwifiex/usb.c | 2 +- drivers/pcmcia/yenta_socket.c | 3 ++- drivers/platform/x86/sony-laptop.c | 2 +- drivers/staging/comedi/drivers/comedi_test.c | 6 +++-- drivers/staging/comedi/drivers/jr3_pci.c | 2 +- drivers/staging/rtl8188eu/core/rtw_recv.c | 2 +- drivers/staging/rtl8188eu/os_dep/mlme_linux.c | 17 +++++++++----- drivers/staging/rtl8188eu/os_dep/recv_linux.c | 2 +- .../rtl8192u/ieee80211/ieee80211_module.c | 2 +- .../rtl8192u/ieee80211/ieee80211_softmac.c | 6 +++-- drivers/staging/rtl8723bs/os_dep/mlme_linux.c | 22 ++++++++++++------- drivers/staging/rtl8723bs/os_dep/recv_linux.c | 2 +- drivers/staging/speakup/main.c | 2 +- drivers/tty/isicom.c | 2 +- drivers/tty/moxa.c | 2 +- drivers/tty/n_gsm.c | 5 +++-- drivers/tty/n_r3964.c | 2 +- drivers/tty/rocket.c | 2 +- drivers/tty/serial/8250/8250_core.c | 3 ++- drivers/tty/serial/8250/8250_port.c | 4 ++-- drivers/tty/serial/max3100.c | 2 +- drivers/tty/serial/mux.c | 2 +- drivers/tty/serial/pnx8xxx_uart.c | 3 ++- drivers/tty/serial/sccnxp.c | 2 +- drivers/tty/serial/sh-sci.c | 9 +++++--- drivers/tty/vcc.c | 4 ++-- drivers/tty/vt/keyboard.c | 2 +- drivers/usb/chipidea/otg_fsm.c | 3 ++- drivers/usb/dwc2/hcd_queue.c | 6 +++-- drivers/usb/gadget/function/f_ncm.c | 3 ++- drivers/usb/gadget/udc/dummy_hcd.c | 4 ++-- drivers/usb/gadget/udc/m66592-udc.c | 2 +- drivers/usb/gadget/udc/r8a66597-udc.c | 2 +- drivers/usb/usbip/vudc_transfer.c | 2 +- drivers/uwb/neh.c | 2 +- drivers/uwb/rsv.c | 5 +++-- drivers/visorbus/visorbus_main.c | 2 +- kernel/time/alarmtimer.c | 2 +- lib/random32.c | 2 +- net/wireless/lib80211.c | 2 +- security/keys/gc.c | 2 +- sound/core/hrtimer.c | 3 ++- sound/drivers/mpu401/mpu401_uart.c | 3 ++- sound/drivers/mtpav.c | 3 ++- sound/drivers/pcsp/pcsp.c | 3 ++- sound/drivers/serial-u16550.c | 3 ++- sound/isa/sb/emu8000_pcm.c | 2 +- sound/isa/sb/sb8_midi.c | 3 ++- sound/isa/wavefront/wavefront_midi.c | 4 ++-- sound/pci/echoaudio/midi.c | 2 +- sound/pci/rme9652/hdsp.c | 2 +- sound/pci/rme9652/hdspm.c | 3 ++- sound/usb/midi.c | 3 ++- 90 files changed, 180 insertions(+), 123 deletions(-) diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c index 27a461414b30..2fe6f453b440 100644 --- a/arch/x86/events/intel/uncore.c +++ b/arch/x86/events/intel/uncore.c @@ -289,7 +289,8 @@ void uncore_pmu_cancel_hrtimer(struct intel_uncore_box *box) static void uncore_pmu_init_hrtimer(struct intel_uncore_box *box) { - hrtimer_init(&box->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer_init(&box->hrtimer, CLOCK_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); box->hrtimer.function = uncore_pmu_hrtimer; } diff --git a/drivers/auxdisplay/img-ascii-lcd.c b/drivers/auxdisplay/img-ascii-lcd.c index 834509506ef6..cfa0d8dcfbda 100644 --- a/drivers/auxdisplay/img-ascii-lcd.c +++ b/drivers/auxdisplay/img-ascii-lcd.c @@ -395,7 +395,7 @@ static int img_ascii_lcd_probe(struct platform_device *pdev) ctx->scroll_rate = HZ / 2; /* initialise a timer for scrolling the message */ - timer_setup(&ctx->timer, img_ascii_lcd_scroll, 0); + timer_setup(&ctx->timer, img_ascii_lcd_scroll, TIMER_USER_DATA); platform_set_drvdata(pdev, ctx); diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c index 87ccef4bd69e..a6b3aa5bbb82 100644 --- a/drivers/block/xsysace.c +++ b/drivers/block/xsysace.c @@ -1005,7 +1005,7 @@ static int ace_setup(struct ace_device *ace) * Initialize the state machine tasklet and stall timer */ tasklet_init(&ace->fsm_tasklet, ace_fsm_tasklet, (unsigned long)ace); - timer_setup(&ace->stall_timer, ace_stall_timer, 0); + timer_setup(&ace->stall_timer, ace_stall_timer, TIMER_USER_DATA); /* * Initialize the request queue diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c index 50bf1fe1775f..44b19256a6aa 100644 --- a/drivers/firewire/core-transaction.c +++ b/drivers/firewire/core-transaction.c @@ -374,7 +374,7 @@ void fw_send_request(struct fw_card *card, struct fw_transaction *t, int tcode, t->card = card; t->is_split_transaction = false; timer_setup(&t->split_timeout_timer, - split_transaction_timeout_callback, 0); + split_transaction_timeout_callback, TIMER_USER_DATA); t->callback = callback; t->callback_data = callback_data; @@ -431,7 +431,8 @@ int fw_run_transaction(struct fw_card *card, int tcode, int destination_id, struct transaction_callback_data d; struct fw_transaction t; - timer_setup_on_stack(&t.split_timeout_timer, NULL, 0); + timer_setup_on_stack(&t.split_timeout_timer, NULL, + TIMER_USER_DATA); init_completion(&d.done); d.payload = payload; fw_send_request(card, &t, tcode, destination_id, generation, speed, diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c index 017fc602a10e..be1aae302add 100644 --- a/drivers/gpu/drm/i915/i915_pmu.c +++ b/drivers/gpu/drm/i915/i915_pmu.c @@ -1066,7 +1066,8 @@ void i915_pmu_register(struct drm_i915_private *i915) i915->pmu.base.event_idx = i915_pmu_event_event_idx; spin_lock_init(&i915->pmu.lock); - hrtimer_init(&i915->pmu.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer_init(&i915->pmu.timer, CLOCK_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); i915->pmu.timer.function = i915_sample; ret = perf_pmu_register(&i915->pmu.base, "i915", -1); diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index 958bf916d096..a137dfb1220c 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c @@ -1233,7 +1233,7 @@ static void ide_init_port_data(ide_hwif_t *hwif, unsigned int index) spin_lock_init(&hwif->lock); - timer_setup(&hwif->timer, ide_timer_expiry, 0); + timer_setup(&hwif->timer, ide_timer_expiry, TIMER_USER_DATA); init_completion(&hwif->gendev_rel_comp); diff --git a/drivers/iio/trigger/iio-trig-hrtimer.c b/drivers/iio/trigger/iio-trig-hrtimer.c index 7accd0187ba1..d254026f82c4 100644 --- a/drivers/iio/trigger/iio-trig-hrtimer.c +++ b/drivers/iio/trigger/iio-trig-hrtimer.c @@ -136,7 +136,8 @@ static struct iio_sw_trigger *iio_trig_hrtimer_probe(const char *name) trig_info->swt.trigger->ops = &iio_hrtimer_trigger_ops; trig_info->swt.trigger->dev.groups = iio_hrtimer_attr_groups; - hrtimer_init(&trig_info->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer_init(&trig_info->timer, CLOCK_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); trig_info->timer.function = iio_hrtimer_trig_handler; trig_info->sampling_frequency = HRTIMER_DEFAULT_SAMPLING_FREQUENCY; diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c index 2743ed4656e4..0fa743d51d46 100644 --- a/drivers/input/ff-memless.c +++ b/drivers/input/ff-memless.c @@ -526,7 +526,7 @@ int input_ff_create_memless(struct input_dev *dev, void *data, ml->private = data; ml->play_effect = play_effect; ml->gain = 0xffff; - timer_setup(&ml->timer, ml_effect_timer, 0); + timer_setup(&ml->timer, ml_effect_timer, TIMER_USER_DATA); set_bit(FF_GAIN, dev->ffbit); diff --git a/drivers/input/input.c b/drivers/input/input.c index c22e8e167025..ce77a24512fe 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -1795,7 +1795,7 @@ struct input_dev *input_allocate_device(void) device_initialize(&dev->dev); mutex_init(&dev->mutex); spin_lock_init(&dev->event_lock); - timer_setup(&dev->timer, NULL, 0); + timer_setup(&dev->timer, NULL, TIMER_USER_DATA); INIT_LIST_HEAD(&dev->h_list); INIT_LIST_HEAD(&dev->node); diff --git a/drivers/isdn/capi/capidrv.c b/drivers/isdn/capi/capidrv.c index e8949f3dcae1..44c6722b596f 100644 --- a/drivers/isdn/capi/capidrv.c +++ b/drivers/isdn/capi/capidrv.c @@ -2265,7 +2265,7 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp) return -1; } card->owner = THIS_MODULE; - timer_setup(&card->listentimer, listentimerfunc, 0); + timer_setup(&card->listentimer, listentimerfunc, TIMER_USER_DATA); strcpy(card->name, id); card->contrnr = contr; card->nbchan = profp->nbchannel; diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c index 6a5b3f00f9ad..0ec6f1115447 100644 --- a/drivers/isdn/i4l/isdn_common.c +++ b/drivers/isdn/i4l/isdn_common.c @@ -2290,7 +2290,7 @@ static int __init isdn_init(void) printk(KERN_WARNING "isdn: Could not allocate device-struct.\n"); return -EIO; } - timer_setup(&dev->timer, isdn_timer_funct, 0); + timer_setup(&dev->timer, isdn_timer_funct, TIMER_USER_DATA); spin_lock_init(&dev->lock); spin_lock_init(&dev->timerlock); #ifdef MODULE diff --git a/drivers/media/cec/cec-pin.c b/drivers/media/cec/cec-pin.c index 8f987bc0dd88..62efd672b249 100644 --- a/drivers/media/cec/cec-pin.c +++ b/drivers/media/cec/cec-pin.c @@ -1312,7 +1312,8 @@ struct cec_adapter *cec_pin_allocate_adapter(const struct cec_pin_ops *pin_ops, if (pin == NULL) return ERR_PTR(-ENOMEM); pin->ops = pin_ops; - hrtimer_init(&pin->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer_init(&pin->timer, CLOCK_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); pin->timer.function = cec_pin_timer; init_waitqueue_head(&pin->kthread_waitq); pin->tx_custom_low_usecs = CEC_TIM_CUSTOM_DEFAULT; diff --git a/drivers/media/pci/bt8xx/bttv-driver.c b/drivers/media/pci/bt8xx/bttv-driver.c index d09785fd37a8..703d0bdd9607 100644 --- a/drivers/media/pci/bt8xx/bttv-driver.c +++ b/drivers/media/pci/bt8xx/bttv-driver.c @@ -4040,7 +4040,7 @@ static int bttv_probe(struct pci_dev *dev, const struct pci_device_id *pci_id) INIT_LIST_HEAD(&btv->capture); INIT_LIST_HEAD(&btv->vcapture); - timer_setup(&btv->timeout, bttv_irq_timeout, 0); + timer_setup(&btv->timeout, bttv_irq_timeout, TIMER_USER_DATA); btv->i2c_rc = -1; btv->tuner_type = UNSET; diff --git a/drivers/media/pci/bt8xx/bttv-input.c b/drivers/media/pci/bt8xx/bttv-input.c index d34fbaa027c2..6acb2e1fa418 100644 --- a/drivers/media/pci/bt8xx/bttv-input.c +++ b/drivers/media/pci/bt8xx/bttv-input.c @@ -299,12 +299,13 @@ static int bttv_rc5_irq(struct bttv *btv) static void bttv_ir_start(struct bttv_ir *ir) { if (ir->polling) { - timer_setup(&ir->timer, bttv_input_timer, 0); + timer_setup(&ir->timer, bttv_input_timer, TIMER_USER_DATA); ir->timer.expires = jiffies + msecs_to_jiffies(1000); add_timer(&ir->timer); } else if (ir->rc5_gpio) { /* set timer_end for code completion */ - timer_setup(&ir->timer, bttv_rc5_timer_end, 0); + timer_setup(&ir->timer, bttv_rc5_timer_end, + TIMER_USER_DATA); ir->shift_by = 1; ir->rc5_remote_gap = ir_rc5_remote_gap; } diff --git a/drivers/media/pci/netup_unidvb/netup_unidvb_core.c b/drivers/media/pci/netup_unidvb/netup_unidvb_core.c index ead59fabd15f..8b945aa3d1c1 100644 --- a/drivers/media/pci/netup_unidvb/netup_unidvb_core.c +++ b/drivers/media/pci/netup_unidvb/netup_unidvb_core.c @@ -664,7 +664,8 @@ static int netup_unidvb_dma_init(struct netup_unidvb_dev *ndev, int num) spin_lock_init(&dma->lock); INIT_WORK(&dma->work, netup_unidvb_dma_worker); INIT_LIST_HEAD(&dma->free_buffers); - timer_setup(&dma->timeout, netup_unidvb_dma_timeout, 0); + timer_setup(&dma->timeout, netup_unidvb_dma_timeout, + TIMER_USER_DATA); dma->ring_buffer_size = ndev->dma_size / 2; dma->addr_virt = ndev->dma_virt + dma->ring_buffer_size * num; dma->addr_phys = (dma_addr_t)((u64)ndev->dma_phys + diff --git a/drivers/media/pci/saa7134/saa7134-input.c b/drivers/media/pci/saa7134/saa7134-input.c index 35884d5b8337..43422aa92a1a 100644 --- a/drivers/media/pci/saa7134/saa7134-input.c +++ b/drivers/media/pci/saa7134/saa7134-input.c @@ -492,7 +492,8 @@ int saa7134_ir_open(struct rc_dev *rc) ir->running = true; if (ir->polling) { - timer_setup(&ir->timer, saa7134_input_timer, 0); + timer_setup(&ir->timer, saa7134_input_timer, + TIMER_USER_DATA); ir->timer.expires = jiffies + HZ; add_timer(&ir->timer); } diff --git a/drivers/media/pci/saa7134/saa7134-ts.c b/drivers/media/pci/saa7134/saa7134-ts.c index 2be703617e29..bb94e1a92669 100644 --- a/drivers/media/pci/saa7134/saa7134-ts.c +++ b/drivers/media/pci/saa7134/saa7134-ts.c @@ -223,7 +223,8 @@ int saa7134_ts_init1(struct saa7134_dev *dev) dev->ts.nr_packets = ts_nr_packets; INIT_LIST_HEAD(&dev->ts_q.queue); - timer_setup(&dev->ts_q.timeout, saa7134_buffer_timeout, 0); + timer_setup(&dev->ts_q.timeout, saa7134_buffer_timeout, + TIMER_USER_DATA); dev->ts_q.dev = dev; dev->ts_q.need_two = 1; dev->ts_started = 0; diff --git a/drivers/media/pci/saa7134/saa7134-vbi.c b/drivers/media/pci/saa7134/saa7134-vbi.c index 57bea543c39b..f860bcc1797e 100644 --- a/drivers/media/pci/saa7134/saa7134-vbi.c +++ b/drivers/media/pci/saa7134/saa7134-vbi.c @@ -181,7 +181,8 @@ const struct vb2_ops saa7134_vbi_qops = { int saa7134_vbi_init1(struct saa7134_dev *dev) { INIT_LIST_HEAD(&dev->vbi_q.queue); - timer_setup(&dev->vbi_q.timeout, saa7134_buffer_timeout, 0); + timer_setup(&dev->vbi_q.timeout, saa7134_buffer_timeout, + TIMER_USER_DATA); dev->vbi_q.dev = dev; if (vbibufs < 2) diff --git a/drivers/media/pci/saa7134/saa7134-video.c b/drivers/media/pci/saa7134/saa7134-video.c index 5bc4b8fc8ebf..26076173343b 100644 --- a/drivers/media/pci/saa7134/saa7134-video.c +++ b/drivers/media/pci/saa7134/saa7134-video.c @@ -2147,7 +2147,8 @@ int saa7134_video_init1(struct saa7134_dev *dev) dev->automute = 0; INIT_LIST_HEAD(&dev->video_q.queue); - timer_setup(&dev->video_q.timeout, saa7134_buffer_timeout, 0); + timer_setup(&dev->video_q.timeout, saa7134_buffer_timeout, + TIMER_USER_DATA); dev->video_q.dev = dev; dev->fmt = format_by_fourcc(V4L2_PIX_FMT_BGR24); dev->width = 720; diff --git a/drivers/media/pci/ttpci/av7110_ir.c b/drivers/media/pci/ttpci/av7110_ir.c index ee414803e6b5..11fb9c8f9892 100644 --- a/drivers/media/pci/ttpci/av7110_ir.c +++ b/drivers/media/pci/ttpci/av7110_ir.c @@ -313,7 +313,8 @@ int av7110_ir_init(struct av7110 *av7110) av_list[av_cnt++] = av7110; av7110_check_ir_config(av7110, true); - timer_setup(&av7110->ir.keyup_timer, av7110_emit_keyup, 0); + timer_setup(&av7110->ir.keyup_timer, av7110_emit_keyup, + TIMER_USER_DATA); input_dev = input_allocate_device(); if (!input_dev) diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c index d12e07e32546..3ad09e86971c 100644 --- a/drivers/media/radio/radio-cadet.c +++ b/drivers/media/radio/radio-cadet.c @@ -317,7 +317,7 @@ static void cadet_start_rds(struct cadet *dev) { dev->rdsstat = 1; outb(0x80, dev->io); /* Select RDS fifo */ - timer_setup(&dev->readtimer, cadet_handler, 0); + timer_setup(&dev->readtimer, cadet_handler, TIMER_USER_DATA); dev->readtimer.expires = jiffies + msecs_to_jiffies(50); add_timer(&dev->readtimer); } diff --git a/drivers/media/radio/wl128x/fmdrv_common.c b/drivers/media/radio/wl128x/fmdrv_common.c index 800d69c3f80b..f2b0598d62e5 100644 --- a/drivers/media/radio/wl128x/fmdrv_common.c +++ b/drivers/media/radio/wl128x/fmdrv_common.c @@ -1550,7 +1550,8 @@ int fmc_prepare(struct fmdev *fmdev) atomic_set(&fmdev->tx_cnt, 1); fmdev->resp_comp = NULL; - timer_setup(&fmdev->irq_info.timer, int_timeout_handler, 0); + timer_setup(&fmdev->irq_info.timer, int_timeout_handler, + TIMER_USER_DATA); /*TODO: add FM_STIC_EVENT later */ fmdev->irq_info.mask = FM_MAL_EVENT; diff --git a/drivers/media/rc/img-ir/img-ir-raw.c b/drivers/media/rc/img-ir/img-ir-raw.c index 6e545680d3b6..26c72c418942 100644 --- a/drivers/media/rc/img-ir/img-ir-raw.c +++ b/drivers/media/rc/img-ir/img-ir-raw.c @@ -107,7 +107,7 @@ int img_ir_probe_raw(struct img_ir_priv *priv) int error; /* Set up the echo timer */ - timer_setup(&raw->timer, img_ir_echo_timer, 0); + timer_setup(&raw->timer, img_ir_echo_timer, TIMER_USER_DATA); /* Allocate raw decoder */ raw->rdev = rdev = rc_allocate_device(RC_DRIVER_IR_RAW); diff --git a/drivers/media/rc/ir-rx51.c b/drivers/media/rc/ir-rx51.c index 8a93f7468622..b32ba38951bd 100644 --- a/drivers/media/rc/ir-rx51.c +++ b/drivers/media/rc/ir-rx51.c @@ -253,7 +253,8 @@ static int ir_rx51_probe(struct platform_device *dev) ir_rx51.freq = DIV_ROUND_CLOSEST(pwm_get_period(pwm), NSEC_PER_SEC); pwm_put(pwm); - hrtimer_init(&ir_rx51.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer_init(&ir_rx51.timer, CLOCK_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); ir_rx51.timer.function = ir_rx51_timer_cb; ir_rx51.dev = &dev->dev; diff --git a/drivers/media/usb/au0828/au0828-video.c b/drivers/media/usb/au0828/au0828-video.c index 7876c897cc1d..6b802ab82488 100644 --- a/drivers/media/usb/au0828/au0828-video.c +++ b/drivers/media/usb/au0828/au0828-video.c @@ -1969,8 +1969,10 @@ int au0828_analog_register(struct au0828_dev *dev, INIT_LIST_HEAD(&dev->vidq.active); INIT_LIST_HEAD(&dev->vbiq.active); - timer_setup(&dev->vid_timeout, au0828_vid_buffer_timeout, 0); - timer_setup(&dev->vbi_timeout, au0828_vbi_buffer_timeout, 0); + timer_setup(&dev->vid_timeout, au0828_vid_buffer_timeout, + TIMER_USER_DATA); + timer_setup(&dev->vbi_timeout, au0828_vbi_buffer_timeout, + TIMER_USER_DATA); dev->width = NTSC_STD_W; dev->height = NTSC_STD_H; diff --git a/drivers/net/appletalk/cops.c b/drivers/net/appletalk/cops.c index f90bb723985f..31c4c2e504b3 100644 --- a/drivers/net/appletalk/cops.c +++ b/drivers/net/appletalk/cops.c @@ -426,7 +426,7 @@ static int cops_open(struct net_device *dev) if(lp->board==TANGENT) /* Poll 20 times per second */ { cops_timer_dev = dev; - timer_setup(&cops_timer, cops_poll, 0); + timer_setup(&cops_timer, cops_poll, TIMER_USER_DATA); cops_timer.expires = jiffies + HZ/20; add_timer(&cops_timer); } diff --git a/drivers/net/caif/caif_hsi.c b/drivers/net/caif/caif_hsi.c index 433a14b9f731..8d3422e2444e 100644 --- a/drivers/net/caif/caif_hsi.c +++ b/drivers/net/caif/caif_hsi.c @@ -1210,11 +1210,14 @@ static int cfhsi_open(struct net_device *ndev) init_waitqueue_head(&cfhsi->flush_fifo_wait); /* Setup the inactivity timer. */ - timer_setup(&cfhsi->inactivity_timer, cfhsi_inactivity_tout, 0); + timer_setup(&cfhsi->inactivity_timer, cfhsi_inactivity_tout, + TIMER_USER_DATA); /* Setup the slowpath RX timer. */ - timer_setup(&cfhsi->rx_slowpath_timer, cfhsi_rx_slowpath, 0); + timer_setup(&cfhsi->rx_slowpath_timer, cfhsi_rx_slowpath, + TIMER_USER_DATA); /* Setup the aggregation timer. */ - timer_setup(&cfhsi->aggregation_timer, cfhsi_aggregation_tout, 0); + timer_setup(&cfhsi->aggregation_timer, cfhsi_aggregation_tout, + TIMER_USER_DATA); /* Activate HSI interface. */ res = cfhsi->ops->cfhsi_up(cfhsi->ops); diff --git a/drivers/net/hamradio/6pack.c b/drivers/net/hamradio/6pack.c index a19868cba48c..13d1566bf9bc 100644 --- a/drivers/net/hamradio/6pack.c +++ b/drivers/net/hamradio/6pack.c @@ -613,9 +613,9 @@ static int sixpack_open(struct tty_struct *tty) netif_start_queue(dev); - timer_setup(&sp->tx_t, sp_xmit_on_air, 0); + timer_setup(&sp->tx_t, sp_xmit_on_air, TIMER_USER_DATA); - timer_setup(&sp->resync_t, resync_tnc, 0); + timer_setup(&sp->resync_t, resync_tnc, TIMER_USER_DATA); spin_unlock_bh(&sp->lock); diff --git a/drivers/net/hamradio/scc.c b/drivers/net/hamradio/scc.c index 1e7ee07887e1..16f851941e51 100644 --- a/drivers/net/hamradio/scc.c +++ b/drivers/net/hamradio/scc.c @@ -1523,8 +1523,8 @@ static int scc_net_alloc(const char *name, struct scc_channel *scc) dev->ml_priv = scc; scc->dev = dev; spin_lock_init(&scc->lock); - timer_setup(&scc->tx_t, NULL, 0); - timer_setup(&scc->tx_wdog, NULL, 0); + timer_setup(&scc->tx_t, NULL, TIMER_USER_DATA); + timer_setup(&scc->tx_wdog, NULL, TIMER_USER_DATA); err = register_netdevice(dev); if (err) { diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c index 433695ae5e5c..ee316c06eb3c 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c @@ -157,7 +157,7 @@ static struct net_device *yam_devs[NR_PORTS]; static struct yam_mcs *yam_data; -static DEFINE_TIMER(yam_timer, NULL); +static DEFINE_TIMER_USERDATA(yam_timer, NULL); /* --------------------------------------------------------------------- */ @@ -1154,7 +1154,7 @@ static int __init yam_init_driver(void) } - timer_setup(&yam_timer, yam_dotimer, 0); + timer_setup(&yam_timer, yam_dotimer, TIMER_USER_DATA); yam_timer.expires = jiffies + HZ / 100; add_timer(&yam_timer); diff --git a/drivers/net/hippi/rrunner.c b/drivers/net/hippi/rrunner.c index 029206e4da3b..d38830828bad 100644 --- a/drivers/net/hippi/rrunner.c +++ b/drivers/net/hippi/rrunner.c @@ -1229,7 +1229,7 @@ static int rr_open(struct net_device *dev) /* Set the timer to switch to check for link beat and perhaps switch to an alternate media type. */ - timer_setup(&rrpriv->timer, rr_timer, 0); + timer_setup(&rrpriv->timer, rr_timer, TIMER_USER_DATA); rrpriv->timer.expires = RUN_AT(5*HZ); /* 5 sec. watchdog */ add_timer(&rrpriv->timer); diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c index 50af3e288503..bb82970486b3 100644 --- a/drivers/net/ieee802154/at86rf230.c +++ b/drivers/net/ieee802154/at86rf230.c @@ -812,7 +812,8 @@ at86rf230_setup_spi_messages(struct at86rf230_local *lp, state->trx.tx_buf = state->buf; state->trx.rx_buf = state->buf; spi_message_add_tail(&state->trx, &state->msg); - hrtimer_init(&state->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer_init(&state->timer, CLOCK_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); state->timer.function = at86rf230_async_state_timer; } diff --git a/drivers/net/slip/slip.c b/drivers/net/slip/slip.c index 9757f1fc104f..9a7bb0f5ffff 100644 --- a/drivers/net/slip/slip.c +++ b/drivers/net/slip/slip.c @@ -762,8 +762,8 @@ static struct slip *sl_alloc(void) sl->mode = SL_MODE_DEFAULT; #ifdef CONFIG_SLIP_SMART /* initialize timer_list struct */ - timer_setup(&sl->keepalive_timer, sl_keepalive, 0); - timer_setup(&sl->outfill_timer, sl_outfill, 0); + timer_setup(&sl->keepalive_timer, sl_keepalive, TIMER_USER_DATA); + timer_setup(&sl->outfill_timer, sl_outfill, TIMER_USER_DATA); #endif slip_devs[i] = dev; return sl; diff --git a/drivers/net/wan/sdla.c b/drivers/net/wan/sdla.c index 0a0cff9228e8..6bb1c9b5b87d 100644 --- a/drivers/net/wan/sdla.c +++ b/drivers/net/wan/sdla.c @@ -1615,7 +1615,7 @@ static void setup_sdla(struct net_device *dev) flp->dlci_conf = sdla_dlci_conf; flp->dev = dev; - timer_setup(&flp->timer, sdla_poll, 0); + timer_setup(&flp->timer, sdla_poll, TIMER_USER_DATA); flp->timer.expires = 1; } diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c index c070a9e51ebf..ef93894a1cf1 100644 --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c @@ -425,7 +425,8 @@ static void ath9k_init_misc(struct ath_softc *sc) struct ath_common *common = ath9k_hw_common(sc->sc_ah); int i = 0; - timer_setup(&common->ani.timer, ath_ani_calibrate, 0); + timer_setup(&common->ani.timer, ath_ani_calibrate, + TIMER_USER_DATA); common->last_rssi = ATH_RSSI_DUMMY_MARKER; eth_broadcast_addr(common->bssidmask); @@ -734,7 +735,7 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc, tasklet_init(&sc->bcon_tasklet, ath9k_beacon_tasklet, (unsigned long)sc); - timer_setup(&sc->sleep_timer, ath_ps_full_sleep, 0); + timer_setup(&sc->sleep_timer, ath_ps_full_sleep, TIMER_USER_DATA); INIT_WORK(&sc->hw_reset_work, ath_reset_work); INIT_WORK(&sc->paprd_work, ath_paprd_calibrate); INIT_DELAYED_WORK(&sc->hw_pll_work, ath_hw_pll_work); diff --git a/drivers/net/wireless/intersil/hostap/hostap_ap.c b/drivers/net/wireless/intersil/hostap/hostap_ap.c index 0094b1d2b577..8494fb259e8d 100644 --- a/drivers/net/wireless/intersil/hostap/hostap_ap.c +++ b/drivers/net/wireless/intersil/hostap/hostap_ap.c @@ -1131,7 +1131,7 @@ static struct sta_info * ap_add_sta(struct ap_data *ap, u8 *addr) } #ifndef PRISM2_NO_KERNEL_IEEE80211_MGMT - timer_setup(&sta->timer, ap_handle_timer, 0); + timer_setup(&sta->timer, ap_handle_timer, TIMER_USER_DATA); sta->timer.expires = jiffies + ap->max_inactivity; if (!ap->local->hostapd) add_timer(&sta->timer); diff --git a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c index 5380fba652cc..dcb5e62e0102 100644 --- a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c +++ b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c @@ -413,7 +413,8 @@ mwifiex_11n_create_rx_reorder_tbl(struct mwifiex_private *priv, u8 *ta, new_node->timer_context.priv = priv; new_node->timer_context.timer_is_set = false; - timer_setup(&new_node->timer_context.timer, mwifiex_flush_data, 0); + timer_setup(&new_node->timer_context.timer, mwifiex_flush_data, + TIMER_USER_DATA); for (i = 0; i < win_size; ++i) new_node->rx_reorder_ptr[i] = NULL; diff --git a/drivers/net/wireless/marvell/mwifiex/usb.c b/drivers/net/wireless/marvell/mwifiex/usb.c index d445acc4786b..ce963105142b 100644 --- a/drivers/net/wireless/marvell/mwifiex/usb.c +++ b/drivers/net/wireless/marvell/mwifiex/usb.c @@ -1261,7 +1261,7 @@ static int mwifiex_usb_tx_init(struct mwifiex_adapter *adapter) port->tx_aggr.timer_cnxt.is_hold_timer_set = false; port->tx_aggr.timer_cnxt.hold_tmo_msecs = 0; timer_setup(&port->tx_aggr.timer_cnxt.hold_timer, - mwifiex_usb_tx_aggr_tmo, 0); + mwifiex_usb_tx_aggr_tmo, TIMER_USER_DATA); } return 0; diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c index c978a6961578..4f8d72d7a691 100644 --- a/drivers/pcmcia/yenta_socket.c +++ b/drivers/pcmcia/yenta_socket.c @@ -1234,7 +1234,8 @@ static int yenta_probe(struct pci_dev *dev, const struct pci_device_id *id) if (!socket->cb_irq || request_irq(socket->cb_irq, yenta_interrupt, IRQF_SHARED | IRQF_USER_DATA, "yenta", socket)) { /* No IRQ or request_irq failed. Poll */ socket->cb_irq = 0; /* But zero is a valid IRQ number. */ - timer_setup(&socket->poll_timer, yenta_interrupt_wrapper, 0); + timer_setup(&socket->poll_timer, yenta_interrupt_wrapper, + TIMER_USER_DATA); mod_timer(&socket->poll_timer, jiffies + HZ); dev_info(&dev->dev, "no PCI IRQ, CardBus support disabled for this socket.\n"); diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c index c83a8da216ce..52770388c84f 100644 --- a/drivers/platform/x86/sony-laptop.c +++ b/drivers/platform/x86/sony-laptop.c @@ -471,7 +471,7 @@ static int sony_laptop_setup_input(struct acpi_device *acpi_device) } timer_setup(&sony_laptop_input.release_key_timer, - do_sony_laptop_release_key, 0); + do_sony_laptop_release_key, TIMER_USER_DATA); /* input keys */ key_dev = input_allocate_device(); diff --git a/drivers/staging/comedi/drivers/comedi_test.c b/drivers/staging/comedi/drivers/comedi_test.c index ef4c7c8a2b71..02b9ea93c1e7 100644 --- a/drivers/staging/comedi/drivers/comedi_test.c +++ b/drivers/staging/comedi/drivers/comedi_test.c @@ -723,8 +723,10 @@ static int waveform_common_attach(struct comedi_device *dev, devpriv->ao_loopbacks[i] = s->maxdata / 2; devpriv->dev = dev; - timer_setup(&devpriv->ai_timer, waveform_ai_timer, 0); - timer_setup(&devpriv->ao_timer, waveform_ao_timer, 0); + timer_setup(&devpriv->ai_timer, waveform_ai_timer, + TIMER_USER_DATA); + timer_setup(&devpriv->ao_timer, waveform_ao_timer, + TIMER_USER_DATA); dev_info(dev->class_dev, "%s: %u microvolt, %u microsecond waveform attached\n", diff --git a/drivers/staging/comedi/drivers/jr3_pci.c b/drivers/staging/comedi/drivers/jr3_pci.c index c3c88e6d298f..87e8b685b586 100644 --- a/drivers/staging/comedi/drivers/jr3_pci.c +++ b/drivers/staging/comedi/drivers/jr3_pci.c @@ -762,7 +762,7 @@ static int jr3_pci_auto_attach(struct comedi_device *dev, } devpriv->dev = dev; - timer_setup(&devpriv->timer, jr3_pci_poll_dev, 0); + timer_setup(&devpriv->timer, jr3_pci_poll_dev, TIMER_USER_DATA); devpriv->timer.expires = jiffies + msecs_to_jiffies(1000); add_timer(&devpriv->timer); diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c b/drivers/staging/rtl8188eu/core/rtw_recv.c index 1d83affc08ce..d0bda444397a 100644 --- a/drivers/staging/rtl8188eu/core/rtw_recv.c +++ b/drivers/staging/rtl8188eu/core/rtw_recv.c @@ -77,7 +77,7 @@ int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter) res = rtw_hal_init_recv_priv(padapter); timer_setup(&precvpriv->signal_stat_timer, rtw_signal_stat_timer_hdl, - 0); + TIMER_USER_DATA); precvpriv->signal_stat_sampling_interval = 1000; /* ms */ diff --git a/drivers/staging/rtl8188eu/os_dep/mlme_linux.c b/drivers/staging/rtl8188eu/os_dep/mlme_linux.c index d5ceb3beabbc..bed626e73545 100644 --- a/drivers/staging/rtl8188eu/os_dep/mlme_linux.c +++ b/drivers/staging/rtl8188eu/os_dep/mlme_linux.c @@ -15,10 +15,12 @@ void rtw_init_mlme_timer(struct adapter *padapter) { struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - timer_setup(&pmlmepriv->assoc_timer, _rtw_join_timeout_handler, 0); - timer_setup(&pmlmepriv->scan_to_timer, rtw_scan_timeout_handler, 0); + timer_setup(&pmlmepriv->assoc_timer, _rtw_join_timeout_handler, + TIMER_USER_DATA); + timer_setup(&pmlmepriv->scan_to_timer, rtw_scan_timeout_handler, + TIMER_USER_DATA); timer_setup(&pmlmepriv->dynamic_chk_timer, - rtw_dynamic_check_timer_handlder, 0); + rtw_dynamic_check_timer_handlder, TIMER_USER_DATA); } void rtw_os_indicate_connect(struct adapter *adapter) @@ -114,15 +116,18 @@ void rtw_report_sec_ie(struct adapter *adapter, u8 authmode, u8 *sec_ie) void init_addba_retry_timer(struct adapter *padapter, struct sta_info *psta) { - timer_setup(&psta->addba_retry_timer, addba_timer_hdl, 0); + timer_setup(&psta->addba_retry_timer, addba_timer_hdl, + TIMER_USER_DATA); } void init_mlme_ext_timer(struct adapter *padapter) { struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; - timer_setup(&pmlmeext->survey_timer, survey_timer_hdl, 0); - timer_setup(&pmlmeext->link_timer, link_timer_hdl, 0); + timer_setup(&pmlmeext->survey_timer, survey_timer_hdl, + TIMER_USER_DATA); + timer_setup(&pmlmeext->link_timer, link_timer_hdl, + TIMER_USER_DATA); } #ifdef CONFIG_88EU_AP_MODE diff --git a/drivers/staging/rtl8188eu/os_dep/recv_linux.c b/drivers/staging/rtl8188eu/os_dep/recv_linux.c index 9c9339863a4a..e24c94c24441 100644 --- a/drivers/staging/rtl8188eu/os_dep/recv_linux.c +++ b/drivers/staging/rtl8188eu/os_dep/recv_linux.c @@ -141,5 +141,5 @@ int rtw_recv_indicatepkt(struct adapter *padapter, void rtw_init_recv_timer(struct recv_reorder_ctrl *preorder_ctrl) { timer_setup(&preorder_ctrl->reordering_ctrl_timer, - rtw_reordering_ctrl_timeout_handler, 0); + rtw_reordering_ctrl_timeout_handler, TIMER_USER_DATA); } diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c index d7975aa335b2..da4143c26ab4 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_module.c @@ -132,7 +132,7 @@ struct net_device *alloc_ieee80211(int sizeof_priv) INIT_LIST_HEAD(&ieee->crypt_deinit_list); timer_setup(&ieee->crypt_deinit_timer, ieee80211_crypt_deinit_handler, - 0); + TIMER_USER_DATA); spin_lock_init(&ieee->lock); spin_lock_init(&ieee->wpax_suitlist_lock); diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c index 8635faf84316..59c8aee82736 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c @@ -2578,9 +2578,11 @@ void ieee80211_softmac_init(struct ieee80211_device *ieee) ieee->enable_rx_imm_BA = true; ieee->tx_pending.txb = NULL; - timer_setup(&ieee->associate_timer, ieee80211_associate_abort_cb, 0); + timer_setup(&ieee->associate_timer, ieee80211_associate_abort_cb, + TIMER_USER_DATA); - timer_setup(&ieee->beacon_timer, ieee80211_send_beacon_cb, 0); + timer_setup(&ieee->beacon_timer, ieee80211_send_beacon_cb, + TIMER_USER_DATA); INIT_DELAYED_WORK(&ieee->start_ibss_wq, ieee80211_start_ibss_wq); INIT_WORK(&ieee->associate_complete_wq, ieee80211_associate_complete_wq); diff --git a/drivers/staging/rtl8723bs/os_dep/mlme_linux.c b/drivers/staging/rtl8723bs/os_dep/mlme_linux.c index da4bd5292b0a..05899bf7916b 100644 --- a/drivers/staging/rtl8723bs/os_dep/mlme_linux.c +++ b/drivers/staging/rtl8723bs/os_dep/mlme_linux.c @@ -33,12 +33,14 @@ void rtw_init_mlme_timer(struct adapter *padapter) { struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - timer_setup(&pmlmepriv->assoc_timer, _rtw_join_timeout_handler, 0); - timer_setup(&pmlmepriv->scan_to_timer, rtw_scan_timeout_handler, 0); + timer_setup(&pmlmepriv->assoc_timer, _rtw_join_timeout_handler, + TIMER_USER_DATA); + timer_setup(&pmlmepriv->scan_to_timer, rtw_scan_timeout_handler, + TIMER_USER_DATA); timer_setup(&pmlmepriv->dynamic_chk_timer, - _dynamic_check_timer_handler, 0); + _dynamic_check_timer_handler, TIMER_USER_DATA); timer_setup(&pmlmepriv->set_scan_deny_timer, - _rtw_set_scan_deny_timer_hdl, 0); + _rtw_set_scan_deny_timer_hdl, TIMER_USER_DATA); } void rtw_os_indicate_connect(struct adapter *adapter) @@ -185,14 +187,18 @@ void rtw_report_sec_ie(struct adapter *adapter, u8 authmode, u8 *sec_ie) void init_addba_retry_timer(struct adapter *padapter, struct sta_info *psta) { - timer_setup(&psta->addba_retry_timer, addba_timer_hdl, 0); + timer_setup(&psta->addba_retry_timer, addba_timer_hdl, + TIMER_USER_DATA); } void init_mlme_ext_timer(struct adapter *padapter) { struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; - timer_setup(&pmlmeext->survey_timer, survey_timer_hdl, 0); - timer_setup(&pmlmeext->link_timer, link_timer_hdl, 0); - timer_setup(&pmlmeext->sa_query_timer, sa_query_timer_hdl, 0); + timer_setup(&pmlmeext->survey_timer, survey_timer_hdl, + TIMER_USER_DATA); + timer_setup(&pmlmeext->link_timer, link_timer_hdl, + TIMER_USER_DATA); + timer_setup(&pmlmeext->sa_query_timer, sa_query_timer_hdl, + TIMER_USER_DATA); } diff --git a/drivers/staging/rtl8723bs/os_dep/recv_linux.c b/drivers/staging/rtl8723bs/os_dep/recv_linux.c index 67ec336264e5..49aaf90622b0 100644 --- a/drivers/staging/rtl8723bs/os_dep/recv_linux.c +++ b/drivers/staging/rtl8723bs/os_dep/recv_linux.c @@ -350,6 +350,6 @@ int rtw_recv_indicatepkt(struct adapter *padapter, union recv_frame *precv_frame void rtw_init_recv_timer(struct recv_reorder_ctrl *preorder_ctrl) { timer_setup(&preorder_ctrl->reordering_ctrl_timer, - rtw_reordering_ctrl_timeout_handler, 0); + rtw_reordering_ctrl_timeout_handler, TIMER_USER_DATA); } diff --git a/drivers/staging/speakup/main.c b/drivers/staging/speakup/main.c index 869f40ebf1a7..954bc394d17c 100644 --- a/drivers/staging/speakup/main.c +++ b/drivers/staging/speakup/main.c @@ -1160,7 +1160,7 @@ static const int NUM_CTL_LABELS = (MSG_CTL_END - MSG_CTL_START + 1); static void read_all_doc(struct vc_data *vc); static void cursor_done(struct timer_list *unused); -static DEFINE_TIMER(cursor_timer, cursor_done); +static DEFINE_TIMER_USERDATA(cursor_timer, cursor_done); static void do_handle_shift(struct vc_data *vc, u_char value, char up_flag) { diff --git a/drivers/tty/isicom.c b/drivers/tty/isicom.c index 803226775c8e..7cd335c00faa 100644 --- a/drivers/tty/isicom.c +++ b/drivers/tty/isicom.c @@ -173,7 +173,7 @@ static struct tty_driver *isicom_normal; static void isicom_tx(struct timer_list *unused); static void isicom_start(struct tty_struct *tty); -static DEFINE_TIMER(tx, isicom_tx); +static DEFINE_TIMER_USERDATA(tx, isicom_tx); /* baud index mappings from linux defns to isi */ diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c index 3a1a5e0ee93f..27263e0e5e1e 100644 --- a/drivers/tty/moxa.c +++ b/drivers/tty/moxa.c @@ -416,7 +416,7 @@ static const struct tty_port_operations moxa_port_ops = { }; static struct tty_driver *moxaDriver; -static DEFINE_TIMER(moxaTimer, moxa_poll); +static DEFINE_TIMER_USERDATA(moxaTimer, moxa_poll); /* * HW init diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index 6f7da9a9d76f..96c369226698 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c @@ -1655,7 +1655,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr) } skb_queue_head_init(&dlci->skb_list); - timer_setup(&dlci->t1, gsm_dlci_t1, 0); + timer_setup(&dlci->t1, gsm_dlci_t1, TIMER_USER_DATA); tty_port_init(&dlci->port); dlci->port.ops = &gsm_port_ops; dlci->gsm = gsm; @@ -2109,7 +2109,8 @@ static int gsm_activate_mux(struct gsm_mux *gsm) struct gsm_dlci *dlci; int i = 0; - timer_setup(&gsm->t2_timer, gsm_control_retransmit, 0); + timer_setup(&gsm->t2_timer, gsm_control_retransmit, + TIMER_USER_DATA); init_waitqueue_head(&gsm->event); spin_lock_init(&gsm->control_lock); spin_lock_init(&gsm->tx_lock); diff --git a/drivers/tty/n_r3964.c b/drivers/tty/n_r3964.c index f75696f0ee2d..b4245410649b 100644 --- a/drivers/tty/n_r3964.c +++ b/drivers/tty/n_r3964.c @@ -1000,7 +1000,7 @@ static int r3964_open(struct tty_struct *tty) tty->disc_data = pInfo; tty->receive_room = 65536; - timer_setup(&pInfo->tmr, on_timeout, 0); + timer_setup(&pInfo->tmr, on_timeout, TIMER_USER_DATA); return 0; } diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c index b121d8f8f3d7..b016580693bb 100644 --- a/drivers/tty/rocket.c +++ b/drivers/tty/rocket.c @@ -98,7 +98,7 @@ static struct r_port *rp_table[MAX_RP_PORTS]; /* The main repository of static unsigned int xmit_flags[NUM_BOARDS]; /* Bit significant, indicates port had data to transmit. */ /* eg. Bit 0 indicates port 0 has xmit data, ... */ static atomic_t rp_num_ports_open; /* Number of serial ports open */ -static DEFINE_TIMER(rocket_timer, rp_do_poll); +static DEFINE_TIMER_USERDATA(rocket_timer, rp_do_poll); static unsigned long board1; /* ISA addresses, retrieved from rocketport.conf */ static unsigned long board2; diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c index 2b161a64a0c8..6e7f07bde100 100644 --- a/drivers/tty/serial/8250/8250_core.c +++ b/drivers/tty/serial/8250/8250_core.c @@ -516,7 +516,8 @@ static void __init serial8250_isa_init_ports(void) base_ops = port->ops; port->ops = &univ8250_port_ops; - timer_setup(&up->timer, serial8250_timeout, 0); + timer_setup(&up->timer, serial8250_timeout, + TIMER_USER_DATA); up->ops = &univ8250_driver_ops; diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index d2f3310abe54..b3cab67ec021 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -628,9 +628,9 @@ int serial8250_em485_init(struct uart_8250_port *p) return -ENOMEM; hrtimer_init(&p->em485->stop_tx_timer, CLOCK_MONOTONIC, - HRTIMER_MODE_REL); + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); hrtimer_init(&p->em485->start_tx_timer, CLOCK_MONOTONIC, - HRTIMER_MODE_REL); + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); p->em485->stop_tx_timer.function = &serial8250_em485_handle_stop_tx; p->em485->start_tx_timer.function = &serial8250_em485_handle_start_tx; p->em485->port = p; diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c index 437c22dbc7e9..cf4d70234f87 100644 --- a/drivers/tty/serial/max3100.c +++ b/drivers/tty/serial/max3100.c @@ -779,7 +779,7 @@ static int max3100_probe(struct spi_device *spi) max3100s[i]->poll_time = 1; max3100s[i]->max3100_hw_suspend = pdata->max3100_hw_suspend; max3100s[i]->minor = i; - timer_setup(&max3100s[i]->timer, max3100_timeout, 0); + timer_setup(&max3100s[i]->timer, max3100_timeout, TIMER_USER_DATA); dev_dbg(&spi->dev, "%s: adding port %d\n", __func__, i); max3100s[i]->port.irq = max3100s[i]->irq; diff --git a/drivers/tty/serial/mux.c b/drivers/tty/serial/mux.c index 00ce31e8d19a..433b98fbe911 100644 --- a/drivers/tty/serial/mux.c +++ b/drivers/tty/serial/mux.c @@ -572,7 +572,7 @@ static int __init mux_init(void) if(port_cnt > 0) { /* Start the Mux timer */ - timer_setup(&mux_timer, mux_poll, 0); + timer_setup(&mux_timer, mux_poll, TIMER_USER_DATA); mod_timer(&mux_timer, jiffies + MUX_POLL_DELAY); #ifdef CONFIG_SERIAL_MUX_CONSOLE diff --git a/drivers/tty/serial/pnx8xxx_uart.c b/drivers/tty/serial/pnx8xxx_uart.c index 223a9499104e..e1d971e763ee 100644 --- a/drivers/tty/serial/pnx8xxx_uart.c +++ b/drivers/tty/serial/pnx8xxx_uart.c @@ -662,7 +662,8 @@ static void __init pnx8xxx_init_ports(void) first = 0; for (i = 0; i < NR_PORTS; i++) { - timer_setup(&pnx8xxx_ports[i].timer, pnx8xxx_timeout, 0); + timer_setup(&pnx8xxx_ports[i].timer, pnx8xxx_timeout, + TIMER_USER_DATA); pnx8xxx_ports[i].port.ops = &pnx8xxx_pops; } } diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c index 68a24a14f6b7..eeb8f0dc8da7 100644 --- a/drivers/tty/serial/sccnxp.c +++ b/drivers/tty/serial/sccnxp.c @@ -1022,7 +1022,7 @@ static int sccnxp_probe(struct platform_device *pdev) dev_err(&pdev->dev, "Unable to reguest IRQ %i\n", s->irq); } else { - timer_setup(&s->timer, sccnxp_timer, 0); + timer_setup(&s->timer, sccnxp_timer, TIMER_USER_DATA); mod_timer(&s->timer, jiffies + usecs_to_jiffies(s->pdata.poll_time_us)); return 0; diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index 64bbeb7d7e0c..23eedfebff08 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -1173,7 +1173,8 @@ static ssize_t rx_fifo_timeout_store(struct device *dev, sci->rx_fifo_timeout = r; scif_set_rtrg(port, 1); if (r > 0) - timer_setup(&sci->rx_fifo_timer, rx_fifo_timer_fn, 0); + timer_setup(&sci->rx_fifo_timer, rx_fifo_timer_fn, + TIMER_USER_DATA); } return count; @@ -1614,7 +1615,8 @@ static void sci_request_dma(struct uart_port *port) dma += s->buf_len_rx; } - hrtimer_init(&s->rx_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer_init(&s->rx_timer, CLOCK_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA); s->rx_timer.function = rx_timer_fn; s->chan_rx_saved = s->chan_rx = chan; @@ -2326,7 +2328,8 @@ static void sci_reset(struct uart_port *port) if (s->rx_trigger > 1) { if (s->rx_fifo_timeout) { scif_set_rtrg(port, 1); - timer_setup(&s->rx_fifo_timer, rx_fifo_timer_fn, 0); + timer_setup(&s->rx_fifo_timer, rx_fifo_timer_fn, + TIMER_USER_DATA); } else { if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) diff --git a/drivers/tty/vcc.c b/drivers/tty/vcc.c index 58b454c34560..c325d92aa95c 100644 --- a/drivers/tty/vcc.c +++ b/drivers/tty/vcc.c @@ -637,8 +637,8 @@ static int vcc_probe(struct vio_dev *vdev, const struct vio_device_id *id) if (rv) goto free_domain; - timer_setup(&port->rx_timer, vcc_rx_timer, 0); - timer_setup(&port->tx_timer, vcc_tx_timer, 0); + timer_setup(&port->rx_timer, vcc_rx_timer, TIMER_USER_DATA); + timer_setup(&port->tx_timer, vcc_tx_timer, TIMER_USER_DATA); dev_set_drvdata(&vdev->dev, port); diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c index 88312c6c92cc..551fcf59be9f 100644 --- a/drivers/tty/vt/keyboard.c +++ b/drivers/tty/vt/keyboard.c @@ -251,7 +251,7 @@ static void kd_nosound(struct timer_list *unused) input_handler_for_each_handle(&kbd_handler, &zero, kd_sound_helper); } -static DEFINE_TIMER(kd_mksound_timer, kd_nosound); +static DEFINE_TIMER_USERDATA(kd_mksound_timer, kd_nosound); void kd_mksound(unsigned int hz, unsigned int ticks) { diff --git a/drivers/usb/chipidea/otg_fsm.c b/drivers/usb/chipidea/otg_fsm.c index 6ed4b00dba96..974141fc8d74 100644 --- a/drivers/usb/chipidea/otg_fsm.c +++ b/drivers/usb/chipidea/otg_fsm.c @@ -422,7 +422,8 @@ static enum hrtimer_restart ci_otg_hrtimer_func(struct hrtimer *t) /* Initialize timers */ static int ci_otg_init_timers(struct ci_hdrc *ci) { - hrtimer_init(&ci->otg_fsm_hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); + hrtimer_init(&ci->otg_fsm_hrtimer, CLOCK_MONOTONIC, + HRTIMER_MODE_ABS | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); ci->otg_fsm_hrtimer.function = ci_otg_hrtimer_func; return 0; diff --git a/drivers/usb/dwc2/hcd_queue.c b/drivers/usb/dwc2/hcd_queue.c index ea3aa640c15c..6d1e635efff0 100644 --- a/drivers/usb/dwc2/hcd_queue.c +++ b/drivers/usb/dwc2/hcd_queue.c @@ -1523,8 +1523,10 @@ static void dwc2_qh_init(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh, /* Initialize QH */ qh->hsotg = hsotg; - timer_setup(&qh->unreserve_timer, dwc2_unreserve_timer_fn, 0); - hrtimer_init(&qh->wait_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + timer_setup(&qh->unreserve_timer, dwc2_unreserve_timer_fn, + TIMER_USER_DATA | TIMER_USER_DATA); + hrtimer_init(&qh->wait_timer, CLOCK_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); qh->wait_timer.function = &dwc2_wait_timer_fn; qh->ep_type = ep_type; qh->ep_is_in = ep_is_in; diff --git a/drivers/usb/gadget/function/f_ncm.c b/drivers/usb/gadget/function/f_ncm.c index 5780fba620ab..3ad2463e15b4 100644 --- a/drivers/usb/gadget/function/f_ncm.c +++ b/drivers/usb/gadget/function/f_ncm.c @@ -1499,7 +1499,8 @@ static int ncm_bind(struct usb_configuration *c, struct usb_function *f) ncm->port.open = ncm_open; ncm->port.close = ncm_close; - hrtimer_init(&ncm->task_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_SOFT); + hrtimer_init(&ncm->task_timer, CLOCK_MONOTONIC, + HRTIMER_MODE_REL_SOFT | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); ncm->task_timer.function = ncm_tx_timeout; DBG(cdev, "CDC Network: %s speed IN/%s OUT/%s NOTIFY/%s\n", diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c index baf72f95f0f1..ebc4495a826a 100644 --- a/drivers/usb/gadget/udc/dummy_hcd.c +++ b/drivers/usb/gadget/udc/dummy_hcd.c @@ -2431,7 +2431,7 @@ static DEVICE_ATTR_RO(urbs); static int dummy_start_ss(struct dummy_hcd *dum_hcd) { - timer_setup(&dum_hcd->timer, dummy_timer, 0); + timer_setup(&dum_hcd->timer, dummy_timer, TIMER_USER_DATA); dum_hcd->rh_state = DUMMY_RH_RUNNING; dum_hcd->stream_en_ep = 0; INIT_LIST_HEAD(&dum_hcd->urbp_list); @@ -2460,7 +2460,7 @@ static int dummy_start(struct usb_hcd *hcd) return dummy_start_ss(dum_hcd); spin_lock_init(&dum_hcd->dum->lock); - timer_setup(&dum_hcd->timer, dummy_timer, 0); + timer_setup(&dum_hcd->timer, dummy_timer, TIMER_USER_DATA); dum_hcd->rh_state = DUMMY_RH_RUNNING; INIT_LIST_HEAD(&dum_hcd->urbp_list); diff --git a/drivers/usb/gadget/udc/m66592-udc.c b/drivers/usb/gadget/udc/m66592-udc.c index 7f8f97ec63f3..d191995e4001 100644 --- a/drivers/usb/gadget/udc/m66592-udc.c +++ b/drivers/usb/gadget/udc/m66592-udc.c @@ -1589,7 +1589,7 @@ static int m66592_probe(struct platform_device *pdev) m66592->gadget.max_speed = USB_SPEED_HIGH; m66592->gadget.name = udc_name; - timer_setup(&m66592->timer, m66592_timer, 0); + timer_setup(&m66592->timer, m66592_timer, TIMER_USER_DATA); m66592->reg = reg; ret = request_irq(ires->start, m66592_irq, diff --git a/drivers/usb/gadget/udc/r8a66597-udc.c b/drivers/usb/gadget/udc/r8a66597-udc.c index 1370c43c1f79..8d6d4f27c9f5 100644 --- a/drivers/usb/gadget/udc/r8a66597-udc.c +++ b/drivers/usb/gadget/udc/r8a66597-udc.c @@ -1874,7 +1874,7 @@ static int r8a66597_probe(struct platform_device *pdev) r8a66597->gadget.max_speed = USB_SPEED_HIGH; r8a66597->gadget.name = udc_name; - timer_setup(&r8a66597->timer, r8a66597_timer, 0); + timer_setup(&r8a66597->timer, r8a66597_timer, TIMER_USER_DATA); r8a66597->reg = reg; if (r8a66597->pdata->on_chip) { diff --git a/drivers/usb/usbip/vudc_transfer.c b/drivers/usb/usbip/vudc_transfer.c index c9db846ee4f6..617fb13abae1 100644 --- a/drivers/usb/usbip/vudc_transfer.c +++ b/drivers/usb/usbip/vudc_transfer.c @@ -447,7 +447,7 @@ void v_init_timer(struct vudc *udc) { struct transfer_timer *t = &udc->tr_timer; - timer_setup(&t->timer, v_timer, 0); + timer_setup(&t->timer, v_timer, TIMER_USER_DATA); t->state = VUDC_TR_STOPPED; } diff --git a/drivers/uwb/neh.c b/drivers/uwb/neh.c index fbdca728bd9f..3ba6255795c7 100644 --- a/drivers/uwb/neh.c +++ b/drivers/uwb/neh.c @@ -223,7 +223,7 @@ struct uwb_rc_neh *uwb_rc_neh_add(struct uwb_rc *rc, struct uwb_rccb *cmd, kref_init(&neh->kref); INIT_LIST_HEAD(&neh->list_node); - timer_setup(&neh->timer, uwb_rc_neh_timer, 0); + timer_setup(&neh->timer, uwb_rc_neh_timer, TIMER_USER_DATA); neh->rc = rc; neh->evt_type = expected_type; diff --git a/drivers/uwb/rsv.c b/drivers/uwb/rsv.c index fe25a8cc6fa1..1a6648a4dfc8 100644 --- a/drivers/uwb/rsv.c +++ b/drivers/uwb/rsv.c @@ -470,7 +470,7 @@ static struct uwb_rsv *uwb_rsv_alloc(struct uwb_rc *rc) INIT_LIST_HEAD(&rsv->rc_node); INIT_LIST_HEAD(&rsv->pal_node); kref_init(&rsv->kref); - timer_setup(&rsv->timer, uwb_rsv_timer, 0); + timer_setup(&rsv->timer, uwb_rsv_timer, TIMER_USER_DATA); rsv->rc = rc; INIT_WORK(&rsv->handle_timeout_work, uwb_rsv_handle_timeout_work); @@ -987,7 +987,8 @@ void uwb_rsv_init(struct uwb_rc *rc) rc->bow.can_reserve_extra_mases = true; rc->bow.total_expired = 0; rc->bow.window = UWB_DRP_BACKOFF_WIN_MIN >> 1; - timer_setup(&rc->bow.timer, uwb_rsv_backoff_win_timer, 0); + timer_setup(&rc->bow.timer, uwb_rsv_backoff_win_timer, + TIMER_USER_DATA); bitmap_complement(rc->uwb_dev.streams, rc->uwb_dev.streams, UWB_NUM_STREAMS); } diff --git a/drivers/visorbus/visorbus_main.c b/drivers/visorbus/visorbus_main.c index 0b2434cc4ecd..eb7ed196b429 100644 --- a/drivers/visorbus/visorbus_main.c +++ b/drivers/visorbus/visorbus_main.c @@ -658,7 +658,7 @@ int create_visor_device(struct visor_device *dev) dev->device.release = visorbus_release_device; /* keep a reference just for us (now 2) */ get_device(&dev->device); - timer_setup(&dev->timer, dev_periodic_work, 0); + timer_setup(&dev->timer, dev_periodic_work, TIMER_USER_DATA); /* * bus_id must be a unique name with respect to this bus TYPE (NOT bus * instance). That's why we need to include the bus number within the diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index 2c97e8c2d29f..c7576710ee85 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c @@ -344,7 +344,7 @@ void alarm_init(struct alarm *alarm, enum alarmtimer_type type, enum alarmtimer_restart (*function)(struct alarm *, ktime_t)) { hrtimer_init(&alarm->timer, alarm_bases[type].base_clockid, - HRTIMER_MODE_ABS); + HRTIMER_MODE_ABS | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); __alarm_init(alarm, type, function); } EXPORT_SYMBOL_GPL(alarm_init); diff --git a/lib/random32.c b/lib/random32.c index 4aaa76404d56..9cea9e8df380 100644 --- a/lib/random32.c +++ b/lib/random32.c @@ -215,7 +215,7 @@ core_initcall(prandom_init); static void __prandom_timer(struct timer_list *unused); -static DEFINE_TIMER(seed_timer, __prandom_timer); +static DEFINE_TIMER_USERDATA(seed_timer, __prandom_timer); static void __prandom_timer(struct timer_list *unused) { diff --git a/net/wireless/lib80211.c b/net/wireless/lib80211.c index 801d4781a73b..0e9867cb473e 100644 --- a/net/wireless/lib80211.c +++ b/net/wireless/lib80211.c @@ -56,7 +56,7 @@ int lib80211_crypt_info_init(struct lib80211_crypt_info *info, char *name, INIT_LIST_HEAD(&info->crypt_deinit_list); timer_setup(&info->crypt_deinit_timer, lib80211_crypt_deinit_handler, - 0); + TIMER_USER_DATA); return 0; } diff --git a/security/keys/gc.c b/security/keys/gc.c index 634e96b380e8..66f35942b031 100644 --- a/security/keys/gc.c +++ b/security/keys/gc.c @@ -29,7 +29,7 @@ DECLARE_WORK(key_gc_work, key_garbage_collector); * Reaper for links from keyrings to dead keys. */ static void key_gc_timer_func(struct timer_list *); -static DEFINE_TIMER(key_gc_timer, key_gc_timer_func); +static DEFINE_TIMER_USERDATA(key_gc_timer, key_gc_timer_func); static time64_t key_gc_next_run = TIME64_MAX; static struct key_type *key_gc_dead_keytype; diff --git a/sound/core/hrtimer.c b/sound/core/hrtimer.c index 18cb6f476bf4..a973931bf0f2 100644 --- a/sound/core/hrtimer.c +++ b/sound/core/hrtimer.c @@ -82,7 +82,8 @@ static int snd_hrtimer_open(struct snd_timer *t) stime = kzalloc(sizeof(*stime), GFP_KERNEL); if (!stime) return -ENOMEM; - hrtimer_init(&stime->hrt, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer_init(&stime->hrt, CLOCK_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); stime->timer = t; stime->hrt.function = snd_hrtimer_callback; t->private_data = stime; diff --git a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c index 528bcc670149..5c024fa2c650 100644 --- a/sound/drivers/mpu401/mpu401_uart.c +++ b/sound/drivers/mpu401/mpu401_uart.c @@ -193,7 +193,8 @@ static void snd_mpu401_uart_add_timer (struct snd_mpu401 *mpu, int input) spin_lock_irqsave (&mpu->timer_lock, flags); if (mpu->timer_invoked == 0) { - timer_setup(&mpu->timer, snd_mpu401_uart_timer, 0); + timer_setup(&mpu->timer, snd_mpu401_uart_timer, + TIMER_USER_DATA); mod_timer(&mpu->timer, 1 + jiffies); } mpu->timer_invoked |= input ? MPU401_MODE_INPUT_TIMER : diff --git a/sound/drivers/mtpav.c b/sound/drivers/mtpav.c index 32b04d8b10e3..8e8d9d203d7b 100644 --- a/sound/drivers/mtpav.c +++ b/sound/drivers/mtpav.c @@ -707,7 +707,8 @@ static int snd_mtpav_probe(struct platform_device *dev) mtp_card->share_irq = 0; mtp_card->inmidistate = 0; mtp_card->outmidihwport = 0xffffffff; - timer_setup(&mtp_card->timer, snd_mtpav_output_timer, 0); + timer_setup(&mtp_card->timer, snd_mtpav_output_timer, + TIMER_USER_DATA); card->private_free = snd_mtpav_free; diff --git a/sound/drivers/pcsp/pcsp.c b/sound/drivers/pcsp/pcsp.c index 0dd3f46eb03e..80d971cbc4d7 100644 --- a/sound/drivers/pcsp/pcsp.c +++ b/sound/drivers/pcsp/pcsp.c @@ -100,7 +100,8 @@ static int snd_card_pcsp_probe(int devnum, struct device *dev) if (devnum != 0) return -EINVAL; - hrtimer_init(&pcsp_chip.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer_init(&pcsp_chip.timer, CLOCK_MONOTONIC, + HRTIMER_MODE_REL | HRTIMER_MODE_USER_DATA | HRTIMER_MODE_USER_DATA); pcsp_chip.timer.function = pcsp_do_timer; err = snd_card_new(dev, index, id, THIS_MODULE, 0, &card); diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c index 6f7315903ce9..283c937c44f7 100644 --- a/sound/drivers/serial-u16550.c +++ b/sound/drivers/serial-u16550.c @@ -827,7 +827,8 @@ static int snd_uart16550_create(struct snd_card *card, uart->prev_in = 0; uart->rstatus = 0; memset(uart->prev_status, 0x80, sizeof(unsigned char) * SNDRV_SERIAL_MAX_OUTS); - timer_setup(&uart->buffer_timer, snd_uart16550_buffer_timer, 0); + timer_setup(&uart->buffer_timer, snd_uart16550_buffer_timer, + TIMER_USER_DATA); uart->timer_running = 0; /* Register device */ diff --git a/sound/isa/sb/emu8000_pcm.c b/sound/isa/sb/emu8000_pcm.c index f46f6ec3ea0c..9882e7b38156 100644 --- a/sound/isa/sb/emu8000_pcm.c +++ b/sound/isa/sb/emu8000_pcm.c @@ -241,7 +241,7 @@ static int emu8k_pcm_open(struct snd_pcm_substream *subs) runtime->private_data = rec; spin_lock_init(&rec->timer_lock); - timer_setup(&rec->timer, emu8k_pcm_timer_func, 0); + timer_setup(&rec->timer, emu8k_pcm_timer_func, TIMER_USER_DATA); runtime->hw = emu8k_pcm_hw; runtime->hw.buffer_bytes_max = emu->mem_size - LOOP_BLANK_SIZE * 3; diff --git a/sound/isa/sb/sb8_midi.c b/sound/isa/sb/sb8_midi.c index 4affdcb78f72..b1aaecdde82d 100644 --- a/sound/isa/sb/sb8_midi.c +++ b/sound/isa/sb/sb8_midi.c @@ -273,7 +273,8 @@ int snd_sb8dsp_midi(struct snd_sb *chip, int device) if (chip->hardware >= SB_HW_20) rmidi->info_flags |= SNDRV_RAWMIDI_INFO_DUPLEX; rmidi->private_data = chip; - timer_setup(&chip->midi_timer, snd_sb8dsp_midi_output_timer, 0); + timer_setup(&chip->midi_timer, snd_sb8dsp_midi_output_timer, + TIMER_USER_DATA); chip->rmidi = rmidi; return 0; } diff --git a/sound/isa/wavefront/wavefront_midi.c b/sound/isa/wavefront/wavefront_midi.c index 556b14738970..6c6a53bce685 100644 --- a/sound/isa/wavefront/wavefront_midi.c +++ b/sound/isa/wavefront/wavefront_midi.c @@ -384,8 +384,8 @@ static void snd_wavefront_midi_output_trigger(struct snd_rawmidi_substream *subs if ((midi->mode[mpu] & MPU401_MODE_OUTPUT_TRIGGER) == 0) { if (!midi->istimer) { timer_setup(&midi->timer, - snd_wavefront_midi_output_timer, - 0); + snd_wavefront_midi_output_timer, + TIMER_USER_DATA); mod_timer(&midi->timer, 1 + jiffies); } midi->istimer++; diff --git a/sound/pci/echoaudio/midi.c b/sound/pci/echoaudio/midi.c index 6045a115cffe..a4d0b1ee6f15 100644 --- a/sound/pci/echoaudio/midi.c +++ b/sound/pci/echoaudio/midi.c @@ -258,7 +258,7 @@ static void snd_echo_midi_output_trigger(struct snd_rawmidi_substream *substream if (up) { if (!chip->tinuse) { timer_setup(&chip->timer, snd_echo_midi_output_write, - 0); + TIMER_USER_DATA); chip->tinuse = 1; } } else { diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c index 479db0dcb86f..9917f8a3c582 100644 --- a/sound/pci/rme9652/hdsp.c +++ b/sound/pci/rme9652/hdsp.c @@ -1441,7 +1441,7 @@ static void snd_hdsp_midi_output_trigger(struct snd_rawmidi_substream *substream if (up) { if (!hmidi->istimer) { timer_setup(&hmidi->timer, snd_hdsp_midi_output_timer, - 0); + TIMER_USER_DATA); mod_timer(&hmidi->timer, 1 + jiffies); hmidi->istimer++; } diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index 5cb6248677f7..ab86733e2d12 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c @@ -1978,7 +1978,8 @@ snd_hdspm_midi_output_trigger(struct snd_rawmidi_substream *substream, int up) if (up) { if (!hmidi->istimer) { timer_setup(&hmidi->timer, - snd_hdspm_midi_output_timer, 0); + snd_hdspm_midi_output_timer, + TIMER_USER_DATA); mod_timer(&hmidi->timer, 1 + jiffies); hmidi->istimer++; } diff --git a/sound/usb/midi.c b/sound/usb/midi.c index b737f0ec77d0..a929f1cf1265 100644 --- a/sound/usb/midi.c +++ b/sound/usb/midi.c @@ -2369,7 +2369,8 @@ int __snd_usbmidi_create(struct snd_card *card, usb_id = USB_ID(le16_to_cpu(umidi->dev->descriptor.idVendor), le16_to_cpu(umidi->dev->descriptor.idProduct)); umidi->usb_id = usb_id; - timer_setup(&umidi->error_timer, snd_usbmidi_error_timer, 0); + timer_setup(&umidi->error_timer, snd_usbmidi_error_timer, + TIMER_USER_DATA); /* detect the endpoint(s) to use */ memset(endpoints, 0, sizeof(endpoints)); -- 2.17.2