Index: share/man/man9/task_add.9 =================================================================== RCS file: /cvs/src/share/man/man9/task_add.9,v retrieving revision 1.12 diff -u -p -r1.12 task_add.9 --- share/man/man9/task_add.9 11 Jun 2014 08:47:53 -0000 1.12 +++ share/man/man9/task_add.9 30 Dec 2014 12:16:53 -0000 @@ -32,14 +32,14 @@ .Ft void .Fn "taskq_destroy" "struct taskq *tq" .Ft void -.Fn "task_set" "struct task *t" "void (*fn)(void *, void *)" "void *arg1" "void *arg2" +.Fn "task_set" "struct task *t" "void (*fn)(void *)" "void *arg" .Ft int .Fn "task_add" "struct taskq *tq" "struct task *t" .Ft int .Fn "task_del" "struct taskq *tq" "struct task *t" .Vt extern struct taskq *const systq; .Vt extern struct taskq *const systqmp; -.Fn "TASK_INITIALIZER" "void (*fn)(void *, void *)" "void *arg1" "void *arg2" +.Fn "TASK_INITIALIZER" "void (*fn)(void *)" "void *arg" .Sh DESCRIPTION The taskq @@ -90,10 +90,8 @@ and .Fa t will be prepared to call the function .Fa fn -with the arguments specified by -.Fa arg1 -and -.Fa arg2 . +with the argument specified by +.Fa arg . Once initialised, the .Fa t structure can be used repeatedly in calls to @@ -143,10 +141,8 @@ The task will be prepared to call the fu .Fa fn argument with the .Fa void * -arguments given in -.Fa arg1 -and -.Fa arg2 . +argument given in +.Fa arg . .Sh CONTEXT .Fn taskq_create and Index: sys/arch/sparc64/dev/vdsp.c =================================================================== RCS file: /cvs/src/sys/arch/sparc64/dev/vdsp.c,v retrieving revision 1.34 diff -u -p -r1.34 vdsp.c --- sys/arch/sparc64/dev/vdsp.c 17 Dec 2014 19:39:01 -0000 1.34 +++ sys/arch/sparc64/dev/vdsp.c 30 Dec 2014 12:16:53 -0000 @@ -247,7 +247,10 @@ struct vdsp_softc { struct task sc_read_task; caddr_t sc_vd; - struct task *sc_vd_task; + struct task sc_vd_task; + struct vd_desc **sc_vd_ring; + u_int sc_vd_prod; + u_int sc_vd_cons; uint32_t sc_vdisk_block_size; uint64_t sc_vdisk_size; @@ -291,14 +294,15 @@ void vdsp_ldc_start(struct ldc_conn *); void vdsp_sendmsg(struct vdsp_softc *, void *, size_t, int dowait); -void vdsp_open(void *, void *); -void vdsp_close(void *, void *); -void vdsp_alloc(void *, void *); +void vdsp_open(void *); +void vdsp_close(void *); +void vdsp_alloc(void *); void vdsp_readlabel(struct vdsp_softc *); int vdsp_writelabel(struct vdsp_softc *); int vdsp_is_iso(struct vdsp_softc *); -void vdsp_read(void *, void *); +void vdsp_read(void *); void vdsp_read_desc(struct vdsp_softc *, struct vdsk_desc_msg *); +void vdsp_vd_task(void *); void vdsp_read_dring(void *, void *); void vdsp_write_dring(void *, void *); void vdsp_flush_dring(void *, void *); @@ -377,10 +381,10 @@ vdsp_attach(struct device *parent, struc goto free_txqueue; } - task_set(&sc->sc_open_task, vdsp_open, sc, NULL); - task_set(&sc->sc_alloc_task, vdsp_alloc, sc, NULL); - task_set(&sc->sc_close_task, vdsp_close, sc, NULL); - task_set(&sc->sc_read_task, vdsp_read, sc, NULL); + task_set(&sc->sc_open_task, vdsp_open, sc); + task_set(&sc->sc_alloc_task, vdsp_alloc, sc); + task_set(&sc->sc_close_task, vdsp_close, sc); + task_set(&sc->sc_read_task, vdsp_read, sc); printf("\n"); @@ -716,7 +720,6 @@ vdsp_rx_vio_dring_data(struct vdsp_softc { struct vio_dring_msg *dm = (struct vio_dring_msg *)tag; struct vd_desc *vd; - struct task *task; vaddr_t va; paddr_t pa; uint64_t size, off; @@ -752,29 +755,61 @@ vdsp_rx_vio_dring_data(struct vdsp_softc size -= nbytes; off += nbytes; } - task = &sc->sc_vd_task[dm->start_idx]; - DPRINTF(("%s: start_idx %d, end_idx %d, operation %x\n", - sc->sc_dv.dv_xname, dm->start_idx, dm->end_idx, + sc->sc_vd_ring[sc->sc_vd_prod % sc->sc_num_descriptors] = vd; + membar_producer(); + sc->sc_vd_prod++; + task_add(systq, &sc->sc_vd_task); + + break; + + case VIO_SUBTYPE_ACK: + DPRINTF(("DATA/ACK/DRING_DATA\n")); + break; + + case VIO_SUBTYPE_NACK: + DPRINTF(("DATA/NACK/DRING_DATA\n")); + break; + + default: + DPRINTF(("DATA/0x%02x/DRING_DATA\n", tag->stype)); + break; + } +} + +void +vdsp_vd_task(void *xsc) +{ + struct vdsp_softc *sc = xsc; + struct vd_desc *vd; + + for (;;) { + membar_consumer(); + if (sc->sc_vd_cons == sc->sc_vd_prod) + break; + + vd = sc->sc_vd_ring[sc->sc_vd_cons++ % sc->sc_num_descriptors]; + + DPRINTF(("%s: operation %x\n", sc->sc_dv.dv_xname, vd->operation)); switch (vd->operation) { case VD_OP_BREAD: - task_set(task, vdsp_read_dring, sc, vd); + vdsp_read_dring(sc, vd); break; case VD_OP_BWRITE: - task_set(task, vdsp_write_dring, sc, vd); + vdsp_write_dring(sc, vd); break; case VD_OP_FLUSH: - task_set(task, vdsp_flush_dring, sc, vd); + vdsp_flush_dring(sc, vd); break; case VD_OP_GET_VTOC: - task_set(task, vdsp_get_vtoc, sc, vd); + vdsp_get_vtoc(sc, vd); break; case VD_OP_SET_VTOC: - task_set(task, vdsp_set_vtoc, sc, vd); + vdsp_set_vtoc(sc, vd); break; case VD_OP_GET_DISKGEOM: - task_set(task, vdsp_get_diskgeom, sc, vd); + vdsp_get_diskgeom(sc, vd); break; case VD_OP_GET_WCE: case VD_OP_SET_WCE: @@ -785,28 +820,14 @@ vdsp_rx_vio_dring_data(struct vdsp_softc * to be able to handle failure just fine, so * we silently ignore it. */ - task_set(task, vdsp_unimp, sc, vd); + vdsp_unimp(sc, vd); break; default: printf("%s: unsupported operation 0x%02x\n", sc->sc_dv.dv_xname, vd->operation); - task_set(task, vdsp_unimp, sc, vd); + vdsp_unimp(sc, vd); break; } - task_add(systq, task); - break; - - case VIO_SUBTYPE_ACK: - DPRINTF(("DATA/ACK/DRING_DATA\n")); - break; - - case VIO_SUBTYPE_NACK: - DPRINTF(("DATA/NACK/DRING_DATA\n")); - break; - - default: - DPRINTF(("DATA/0x%02x/DRING_DATA\n", tag->stype)); - break; } } @@ -885,7 +906,7 @@ vdsp_sendmsg(struct vdsp_softc *sc, void } void -vdsp_open(void *arg1, void *arg2) +vdsp_open(void *arg1) { struct vdsp_softc *sc = arg1; struct proc *p = curproc; @@ -953,7 +974,7 @@ vdsp_open(void *arg1, void *arg2) } void -vdsp_close(void *arg1, void *arg2) +vdsp_close(void *arg1) { struct vdsp_softc *sc = arg1; struct proc *p = curproc; @@ -964,9 +985,10 @@ vdsp_close(void *arg1, void *arg2) free(sc->sc_vd, M_DEVBUF, 0); sc->sc_vd = NULL; } - if (sc->sc_vd_task) { - free(sc->sc_vd_task, M_DEVBUF, 0); - sc->sc_vd_task = NULL; + if (sc->sc_vd_ring != NULL) { + free(sc->sc_vd_ring, M_DEVBUF, + sc->sc_num_descriptors * sizeof(*sc->sc_vd_ring)); + sc->sc_vd_ring = NULL; } if (sc->sc_label) { free(sc->sc_label, M_DEVBUF, 0); @@ -1074,17 +1096,18 @@ vdsp_is_iso(struct vdsp_softc *sc) } void -vdsp_alloc(void *arg1, void *arg2) +vdsp_alloc(void *arg1) { struct vdsp_softc *sc = arg1; struct vio_dring_reg dr; KASSERT(sc->sc_num_descriptors <= VDSK_MAX_DESCRIPTORS); KASSERT(sc->sc_descriptor_size <= VDSK_MAX_DESCRIPTOR_SIZE); - sc->sc_vd = mallocarray(sc->sc_num_descriptors, sc->sc_descriptor_size, - M_DEVBUF, M_WAITOK); - sc->sc_vd_task = mallocarray(sc->sc_num_descriptors, - sizeof(struct task), M_DEVBUF, M_WAITOK); + sc->sc_vd = mallocarray(sc->sc_num_descriptors, + sc->sc_descriptor_size, M_DEVBUF, M_WAITOK); + sc->sc_vd_ring = mallocarray(sc->sc_num_descriptors, + sizeof(*sc->sc_vd_ring), M_DEVBUF, M_WAITOK); + task_set(&sc->sc_vd_task, vdsp_vd_task, sc); bzero(&dr, sizeof(dr)); dr.tag.type = VIO_TYPE_CTRL; @@ -1096,7 +1119,7 @@ vdsp_alloc(void *arg1, void *arg2) } void -vdsp_read(void *arg1, void *arg2) +vdsp_read(void *arg1) { struct vdsp_softc *sc = arg1; Index: sys/crypto/crypto.c =================================================================== RCS file: /cvs/src/sys/crypto/crypto.c,v retrieving revision 1.72 diff -u -p -r1.72 crypto.c --- sys/crypto/crypto.c 23 Oct 2014 00:15:09 -0000 1.72 +++ sys/crypto/crypto.c 30 Dec 2014 12:16:53 -0000 @@ -370,7 +370,7 @@ int crypto_dispatch(struct cryptop *crp) { if (crypto_taskq && !(crp->crp_flags & CRYPTO_F_NOQUEUE)) { - task_set(&crp->crp_task, (void (*))crypto_invoke, crp, NULL); + task_set(&crp->crp_task, (void (*))crypto_invoke, crp); task_add(crypto_taskq, &crp->crp_task); } else { crypto_invoke(crp); @@ -516,8 +516,7 @@ crypto_done(struct cryptop *crp) /* not from the crypto queue, wakeup the userland process */ crp->crp_callback(crp); } else { - task_set(&crp->crp_task, (void (*))crp->crp_callback, - crp, NULL); + task_set(&crp->crp_task, (void (*))crp->crp_callback, crp); task_add(crypto_taskq, &crp->crp_task); } } Index: sys/dev/audio.c =================================================================== RCS file: /cvs/src/sys/dev/audio.c,v retrieving revision 1.125 diff -u -p -r1.125 audio.c --- sys/dev/audio.c 19 Dec 2014 22:44:58 -0000 1.125 +++ sys/dev/audio.c 30 Dec 2014 12:16:53 -0000 @@ -331,7 +331,7 @@ struct filterops audioread_filtops = #if NWSKBD > 0 /* Mixer manipulation using keyboard */ int wskbd_set_mixervolume(long, long); -void wskbd_set_mixervolume_callback(void *, void *); +void wskbd_set_mixervolume_callback(void *); #endif /* @@ -465,11 +465,6 @@ audioattach(struct device *parent, struc } DPRINTF(("audio_attach: inputs ports=0x%x, output ports=0x%x\n", sc->sc_inports.allports, sc->sc_outports.allports)); - -#if NWSKBD > 0 - task_set(&sc->sc_mixer_task, wskbd_set_mixervolume_callback, NULL, - NULL); -#endif /* NWSKBD > 0 */ } int @@ -3432,27 +3427,39 @@ filt_audiowrite(struct knote *kn, long h } #if NWSKBD > 0 +struct wskbd_vol_change { + struct task t; + long dir; + long out; +}; + int wskbd_set_mixervolume(long dir, long out) { struct audio_softc *sc; + struct wskbd_vol_change *ch; if (audio_cd.cd_ndevs == 0 || (sc = audio_cd.cd_devs[0]) == NULL) { DPRINTF(("wskbd_set_mixervolume: audio_cd\n")); return (ENXIO); } - task_del(systq, &sc->sc_mixer_task); - task_set(&sc->sc_mixer_task, wskbd_set_mixervolume_callback, - (void *)dir, (void *)out); - task_add(systq, &sc->sc_mixer_task); + ch = malloc(sizeof(*ch), M_TEMP, M_NOWAIT); + if (ch == NULL) + return (ENOMEM); + + task_set(&ch->t, wskbd_set_mixervolume_callback, ch); + ch->dir = dir; + ch->out = out; + task_add(systq, &ch->t); return (0); } void -wskbd_set_mixervolume_callback(void *arg1, void *arg2) +wskbd_set_mixervolume_callback(void *xch) { + struct wskbd_vol_change *ch = xch; struct audio_softc *sc; struct au_mixer_ports *ports; mixer_devinfo_t mi; @@ -3461,19 +3468,19 @@ wskbd_set_mixervolume_callback(void *arg u_int gain; int error; - if (audio_cd.cd_ndevs == 0 || (sc = audio_cd.cd_devs[0]) == NULL) { - DPRINTF(("%s: audio_cd\n", __func__)); - return; - } + dir = ch->dir; + out = ch->out; + free(ch, M_TEMP, sizeof(*ch)); - dir = (long)arg1; - out = (long)arg2; + sc = (struct audio_softc *)device_lookup(&audio_cd, 0); + if (sc == NULL) + return; ports = out ? &sc->sc_outports : &sc->sc_inports; if (ports->master == -1) { DPRINTF(("%s: master == -1\n", __func__)); - return; + goto done; } if (dir == 0) { @@ -3482,7 +3489,7 @@ wskbd_set_mixervolume_callback(void *arg error = au_get_mute(sc, ports, &mute); if (error != 0) { DPRINTF(("%s: au_get_mute: %d\n", __func__, error)); - return; + goto done; } mute = !mute; @@ -3490,7 +3497,7 @@ wskbd_set_mixervolume_callback(void *arg error = au_set_mute(sc, ports, mute); if (error != 0) { DPRINTF(("%s: au_set_mute: %d\n", __func__, error)); - return; + goto done; } } else { /* Raise or lower volume */ @@ -3499,7 +3506,7 @@ wskbd_set_mixervolume_callback(void *arg error = sc->hw_if->query_devinfo(sc->hw_hdl, &mi); if (error != 0) { DPRINTF(("%s: query_devinfo: %d\n", __func__, error)); - return; + goto done; } au_get_gain(sc, ports, &gain, &balance); @@ -3512,8 +3519,11 @@ wskbd_set_mixervolume_callback(void *arg error = au_set_gain(sc, ports, gain, balance); if (error != 0) { DPRINTF(("%s: au_set_gain: %d\n", __func__, error)); - return; + goto done; } } + +done: + device_unref(&sc->dev); } #endif /* NWSKBD > 0 */ Index: sys/dev/rnd.c =================================================================== RCS file: /cvs/src/sys/dev/rnd.c,v retrieving revision 1.168 diff -u -p -r1.168 rnd.c --- sys/dev/rnd.c 23 Dec 2014 20:32:05 -0000 1.168 +++ sys/dev/rnd.c 30 Dec 2014 12:16:53 -0000 @@ -531,12 +531,12 @@ extract_entropy(u_int8_t *buf) /* random keystream by ChaCha */ +void arc4_reinit(void *v); /* timeout to start reinit */ +void arc4_init(void *); /* actually do the reinit */ + struct mutex rndlock = MUTEX_INITIALIZER(IPL_HIGH); struct timeout arc4_timeout; -struct task arc4_task; - -void arc4_reinit(void *v); /* timeout to start reinit */ -void arc4_init(void *, void *); /* actually do the reinit */ +struct task arc4_task = TASK_INITIALIZER(arc4_init, NULL); static int rs_initialized; static chacha_ctx rs; /* chacha context for random keystream */ @@ -754,7 +754,7 @@ arc4random_uniform(u_int32_t upper_bound /* ARGSUSED */ void -arc4_init(void *v, void *w) +arc4_init(void *null) { _rs_stir(1); } @@ -803,8 +803,7 @@ random_start(void) rs_initialized = 1; dequeue_randomness(NULL); - arc4_init(NULL, NULL); - task_set(&arc4_task, arc4_init, NULL, NULL); + arc4_init(NULL); timeout_set(&arc4_timeout, arc4_reinit, NULL); arc4_reinit(NULL); timeout_set(&rnd_timeout, dequeue_randomness, NULL); @@ -897,7 +896,7 @@ randomwrite(dev_t dev, struct uio *uio, } if (newdata) - arc4_init(NULL, NULL); + arc4_init(NULL); explicit_bzero(buf, POOLBYTES); free(buf, M_TEMP, POOLBYTES); Index: sys/dev/softraid.c =================================================================== RCS file: /cvs/src/sys/dev/softraid.c,v retrieving revision 1.347 diff -u -p -r1.347 softraid.c --- sys/dev/softraid.c 19 Dec 2014 17:15:16 -0000 1.347 +++ sys/dev/softraid.c 30 Dec 2014 12:16:53 -0000 @@ -142,7 +142,7 @@ void sr_roam_chunks(struct sr_discipli int sr_chunk_in_use(struct sr_softc *, dev_t); int sr_rw(struct sr_softc *, dev_t, char *, size_t, daddr_t, long); -void sr_wu_done_callback(void *, void *); +void sr_wu_done_callback(void *); /* don't include these on RAMDISK */ #ifndef SMALL_KERNEL @@ -612,14 +612,14 @@ sr_meta_opt_handler(struct sr_discipline } void -sr_meta_save_callback(void *arg1, void *arg2) +sr_meta_save_callback(void *xsd) { - struct sr_discipline *sd = arg1; + struct sr_discipline *sd = xsd; int s; s = splbio(); - if (sr_meta_save(arg1, SR_META_DIRTY)) + if (sr_meta_save(sd, SR_META_DIRTY)) printf("%s: save metadata failed\n", DEVNAME(sd->sd_sc)); sd->sd_must_flush = 0; @@ -2113,8 +2113,8 @@ sr_wu_alloc(struct sr_discipline *sd, in wu = malloc(wu_size, M_DEVBUF, M_WAITOK | M_ZERO); TAILQ_INSERT_TAIL(&sd->sd_wu, wu, swu_next); TAILQ_INIT(&wu->swu_ccb); - task_set(&wu->swu_task, sr_wu_done_callback, sd, wu); wu->swu_dis = sd; + task_set(&wu->swu_task, sr_wu_done_callback, wu); sr_wu_put(sd, wu); } @@ -2244,10 +2244,10 @@ sr_wu_done(struct sr_workunit *wu) } void -sr_wu_done_callback(void *arg1, void *arg2) +sr_wu_done_callback(void *xwu) { - struct sr_discipline *sd = (struct sr_discipline *)arg1; - struct sr_workunit *wu = (struct sr_workunit *)arg2; + struct sr_workunit *wu = xwu; + struct sr_discipline *sd = wu->swu_dis; struct scsi_xfer *xs = wu->swu_xs; struct sr_workunit *wup; int s; @@ -2975,9 +2975,10 @@ done: } void -sr_hotspare_rebuild_callback(void *arg1, void *arg2) +sr_hotspare_rebuild_callback(void *xsd) { - sr_hotspare_rebuild((struct sr_discipline *)arg1); + struct sr_discipline *sd = xsd; + sr_hotspare_rebuild(sd); } void @@ -3920,9 +3921,9 @@ sr_discipline_init(struct sr_discipline sd->sd_set_vol_state = sr_set_vol_state; sd->sd_start_discipline = NULL; - task_set(&sd->sd_meta_save_task, sr_meta_save_callback, sd, NULL); + task_set(&sd->sd_meta_save_task, sr_meta_save_callback, sd); task_set(&sd->sd_hotspare_rebuild_task, sr_hotspare_rebuild_callback, - sd, NULL); + sd); switch (level) { case 0: Index: sys/dev/softraidvar.h =================================================================== RCS file: /cvs/src/sys/dev/softraidvar.h,v retrieving revision 1.158 diff -u -p -r1.158 softraidvar.h --- sys/dev/softraidvar.h 7 Oct 2014 20:23:32 -0000 1.158 +++ sys/dev/softraidvar.h 30 Dec 2014 12:16:53 -0000 @@ -636,7 +636,7 @@ void sr_hotplug_register(struct sr_dis void sr_hotplug_unregister(struct sr_discipline *, void *); /* Hotspare and rebuild. */ -void sr_hotspare_rebuild_callback(void *, void *); +void sr_hotspare_rebuild_callback(void *); /* work units & ccbs */ int sr_ccb_alloc(struct sr_discipline *); @@ -667,7 +667,7 @@ int sr_meta_native_read(struct sr_disc struct sr_metadata *, void *); int sr_meta_validate(struct sr_discipline *, dev_t, struct sr_metadata *, void *); -void sr_meta_save_callback(void *, void *); +void sr_meta_save_callback(void *); int sr_meta_save(struct sr_discipline *, u_int32_t); void sr_meta_getdevname(struct sr_softc *, dev_t, char *, int); Index: sys/dev/vscsi.c =================================================================== RCS file: /cvs/src/sys/dev/vscsi.c,v retrieving revision 1.34 diff -u -p -r1.34 vscsi.c --- sys/dev/vscsi.c 17 Oct 2014 02:05:06 -0000 1.34 +++ sys/dev/vscsi.c 30 Dec 2014 12:16:53 -0000 @@ -108,7 +108,7 @@ int vscsi_data(struct vscsi_softc *, st int vscsi_t2i(struct vscsi_softc *, struct vscsi_ioc_t2i *); int vscsi_devevent(struct vscsi_softc *, u_long, struct vscsi_ioc_devevent *); -void vscsi_devevent_task(void *, void *); +void vscsi_devevent_task(void *); void vscsi_done(struct vscsi_softc *, struct vscsi_ccb *); void * vscsi_ccb_get(void *); @@ -472,6 +472,7 @@ vscsi_t2i(struct vscsi_softc *sc, struct } struct vscsi_devevent_task { + struct vscsi_softc *sc; struct task t; struct vscsi_ioc_devevent de; u_long cmd; @@ -487,7 +488,8 @@ vscsi_devevent(struct vscsi_softc *sc, u if (dt == NULL) return (ENOMEM); - task_set(&dt->t, vscsi_devevent_task, sc, dt); + task_set(&dt->t, vscsi_devevent_task, dt); + dt->sc = sc; dt->de = *de; dt->cmd = cmd; @@ -498,10 +500,10 @@ vscsi_devevent(struct vscsi_softc *sc, u } void -vscsi_devevent_task(void *xsc, void *xdt) +vscsi_devevent_task(void *xdt) { - struct vscsi_softc *sc = xsc; struct vscsi_devevent_task *dt = xdt; + struct vscsi_softc *sc = dt->sc; int state; mtx_enter(&sc->sc_state_mtx); Index: sys/dev/ata/atascsi.c =================================================================== RCS file: /cvs/src/sys/dev/ata/atascsi.c,v retrieving revision 1.121 diff -u -p -r1.121 atascsi.c --- sys/dev/ata/atascsi.c 9 Dec 2014 07:05:06 -0000 1.121 +++ sys/dev/ata/atascsi.c 30 Dec 2014 12:16:53 -0000 @@ -121,7 +121,7 @@ void atascsi_disk_vpd_thin(struct scsi_ void atascsi_disk_write_same_16(struct scsi_xfer *); void atascsi_disk_write_same_16_done(struct ata_xfer *); void atascsi_disk_unmap(struct scsi_xfer *); -void atascsi_disk_unmap_task(void *, void *); +void atascsi_disk_unmap_task(void *); void atascsi_disk_unmap_done(struct ata_xfer *); void atascsi_disk_capacity(struct scsi_xfer *); void atascsi_disk_capacity16(struct scsi_xfer *); @@ -1090,16 +1090,16 @@ atascsi_disk_unmap(struct scsi_xfer *xs) /* let's go */ if (ISSET(xs->flags, SCSI_NOSLEEP)) { - task_set(&xa->task, atascsi_disk_unmap_task, xs, NULL); + task_set(&xa->task, atascsi_disk_unmap_task, xs); task_add(systq, &xa->task); } else { /* we can already sleep for memory */ - atascsi_disk_unmap_task(xs, NULL); + atascsi_disk_unmap_task(xs); } } void -atascsi_disk_unmap_task(void *xxs, void *a) +atascsi_disk_unmap_task(void *xxs) { struct scsi_xfer *xs = xxs; struct scsi_link *link = xs->sc_link; Index: sys/dev/cardbus/cardslot.c =================================================================== RCS file: /cvs/src/sys/dev/cardbus/cardslot.c,v retrieving revision 1.17 diff -u -p -r1.17 cardslot.c --- sys/dev/cardbus/cardslot.c 19 Dec 2014 05:48:36 -0000 1.17 +++ sys/dev/cardbus/cardslot.c 30 Dec 2014 12:16:53 -0000 @@ -61,7 +61,7 @@ STATIC void cardslotattach(struct device *, struct device *, void *); STATIC int cardslotmatch(struct device *, void *, void *); -STATIC void cardslot_event(void *arg1, void *arg2); +STATIC void cardslot_event(void *arg); STATIC void cardslot_process_event(struct cardslot_softc *); STATIC int cardslot_cb_print(void *aux, const char *pcic); @@ -111,7 +111,7 @@ cardslotattach(struct device *parent, st sc->sc_cb_softc = NULL; sc->sc_16_softc = NULL; SIMPLEQ_INIT(&sc->sc_events); - task_set(&sc->sc_event_task, cardslot_event, sc, NULL); + task_set(&sc->sc_event_task, cardslot_event, sc); printf(" slot %d flags %x\n", sc->sc_slot, sc->sc_dev.dv_cfdata->cf_flags); @@ -225,7 +225,7 @@ cardslot_event_throw(struct cardslot_sof * */ STATIC void -cardslot_event(void *arg1, void *arg2) +cardslot_event(void *arg1) { struct cardslot_softc *sc = arg1; Index: sys/dev/ic/mpi.c =================================================================== RCS file: /cvs/src/sys/dev/ic/mpi.c,v retrieving revision 1.198 diff -u -p -r1.198 mpi.c --- sys/dev/ic/mpi.c 17 Sep 2014 10:11:33 -0000 1.198 +++ sys/dev/ic/mpi.c 30 Dec 2014 12:16:53 -0000 @@ -146,7 +146,7 @@ void mpi_eventack_done(struct mpi_ccb int mpi_evt_sas(struct mpi_softc *, struct mpi_rcb *); void mpi_evt_sas_detach(void *, void *); void mpi_evt_sas_detach_done(struct mpi_ccb *); -void mpi_fc_rescan(void *, void *); +void mpi_fc_rescan(void *); int mpi_req_cfg_header(struct mpi_softc *, u_int8_t, u_int8_t, u_int32_t, int, void *); @@ -222,7 +222,7 @@ mpi_attach(struct mpi_softc *sc) printf("\n"); rw_init(&sc->sc_lock, "mpi_lock"); - task_set(&sc->sc_evt_rescan, mpi_fc_rescan, sc, NULL); + task_set(&sc->sc_evt_rescan, mpi_fc_rescan, sc); /* disable interrupts */ mpi_write(sc, MPI_INTR_MASK, @@ -2473,7 +2473,7 @@ mpi_evt_sas_detach_done(struct mpi_ccb * } void -mpi_fc_rescan(void *xsc, void *null) +mpi_fc_rescan(void *xsc) { struct mpi_softc *sc = xsc; struct mpi_cfg_hdr hdr; Index: sys/dev/ic/qla.c =================================================================== RCS file: /cvs/src/sys/dev/ic/qla.c,v retrieving revision 1.46 diff -u -p -r1.46 qla.c --- sys/dev/ic/qla.c 19 Dec 2014 07:23:57 -0000 1.46 +++ sys/dev/ic/qla.c 30 Dec 2014 12:16:53 -0000 @@ -89,7 +89,7 @@ void qla_clear_isr(struct qla_softc *, void qla_update_start(struct qla_softc *, int); void qla_update_done(struct qla_softc *, int); -void qla_do_update(void *, void*); +void qla_do_update(void *); void qla_put_marker(struct qla_softc *, void *); void qla_put_cmd(struct qla_softc *, void *, struct scsi_xfer *, @@ -649,7 +649,7 @@ qla_attach(struct qla_softc *sc) } sc->sc_update_taskq = taskq_create(DEVNAME(sc), 1, IPL_BIO); - task_set(&sc->sc_update_task, qla_do_update, sc, NULL); + task_set(&sc->sc_update_task, qla_do_update, sc); /* wait a bit for link to come up so we can scan and attach devices */ for (i = 0; i < QLA_WAIT_FOR_LOOP * 10000; i++) { @@ -667,7 +667,7 @@ qla_attach(struct qla_softc *sc) } if (sc->sc_loop_up) { - qla_do_update(sc, NULL); + qla_do_update(sc); } else { DPRINTF(QLA_D_PORT, "%s: loop still down, giving up\n", DEVNAME(sc)); @@ -1741,7 +1741,7 @@ qla_clear_port_lists(struct qla_softc *s } void -qla_do_update(void *xsc, void *x) +qla_do_update(void *xsc) { struct qla_softc *sc = xsc; int firstport, lastport; Index: sys/dev/ic/qlw.c =================================================================== RCS file: /cvs/src/sys/dev/ic/qlw.c,v retrieving revision 1.26 diff -u -p -r1.26 qlw.c --- sys/dev/ic/qlw.c 19 Dec 2014 07:23:57 -0000 1.26 +++ sys/dev/ic/qlw.c 30 Dec 2014 12:16:53 -0000 @@ -76,7 +76,7 @@ int qlw_config_bus(struct qlw_softc *, int qlw_config_target(struct qlw_softc *, int, int); void qlw_update_bus(struct qlw_softc *, int); void qlw_update_target(struct qlw_softc *, int, int); -void qlw_update_task(void *, void *); +void qlw_update_task(void *); void qlw_handle_intr(struct qlw_softc *, u_int16_t, u_int16_t); void qlw_set_ints(struct qlw_softc *, int); @@ -173,7 +173,7 @@ qlw_attach(struct qlw_softc *sc) int reset_delay; int bus; - task_set(&sc->sc_update_task, qlw_update_task, sc, NULL); + task_set(&sc->sc_update_task, qlw_update_task, sc); switch (sc->sc_isp_gen) { case QLW_GEN_ISP1000: @@ -538,9 +538,9 @@ qlw_update_target(struct qlw_softc *sc, } void -qlw_update_task(void *arg1, void *arg2) +qlw_update_task(void *xsc) { - struct qlw_softc *sc = arg1; + struct qlw_softc *sc = xsc; int bus; for (bus = 0; bus < sc->sc_numbusses; bus++) Index: sys/dev/isa/lm78_isa.c =================================================================== RCS file: /cvs/src/sys/dev/isa/lm78_isa.c,v retrieving revision 1.8 diff -u -p -r1.8 lm78_isa.c --- sys/dev/isa/lm78_isa.c 19 Dec 2014 13:53:08 -0000 1.8 +++ sys/dev/isa/lm78_isa.c 30 Dec 2014 12:16:53 -0000 @@ -53,7 +53,7 @@ int lm_wbsio_match(struct device *, voi void lm_isa_attach(struct device *, struct device *, void *); u_int8_t lm_isa_readreg(struct lm_softc *, int); void lm_isa_writereg(struct lm_softc *, int, int); -void lm_isa_remove_alias(void *, void *); +void lm_isa_remove_alias(void *); struct cfattach lm_isa_ca = { sizeof(struct lm_isa_softc), @@ -234,8 +234,7 @@ lm_isa_attach(struct device *parent, str if (lmsc && lmsc->sbusaddr == sbusaddr && lmsc->chipid == sc->sc_lmsc.chipid) { task_set(&sc->sc_remove_alias_task, - lm_isa_remove_alias, lmsc, - sc->sc_lmsc.sc_dev.dv_xname); + lm_isa_remove_alias, lmsc); task_add(systq, &sc->sc_remove_alias_task); break; } @@ -244,14 +243,12 @@ lm_isa_attach(struct device *parent, str /* Remove sensors of the i2c alias, since we prefer to use the isa access */ void -lm_isa_remove_alias(void *v, void *arg) +lm_isa_remove_alias(void *v) { struct lm_softc *sc = v; - char *iic = arg; int i; - printf("%s: disabling sensors due to alias with %s\n", - sc->sc_dev.dv_xname, iic); + printf("%s: disabling sensors due to alias\n", sc->sc_dev.dv_xname); sensordev_deinstall(&sc->sensordev); for (i = 0; i < sc->numsensors; i++) sensor_detach(&sc->sensordev, &sc->sensors[i]); Index: sys/dev/pci/arc.c =================================================================== RCS file: /cvs/src/sys/dev/pci/arc.c,v retrieving revision 1.104 diff -u -p -r1.104 arc.c --- sys/dev/pci/arc.c 9 Sep 2014 20:27:48 -0000 1.104 +++ sys/dev/pci/arc.c 30 Dec 2014 12:16:54 -0000 @@ -669,8 +669,12 @@ int arc_bio_getvol(struct arc_softc *, struct arc_fw_volinfo *); #ifndef SMALL_KERNEL +struct arc_task { + struct task t; + struct arc_softc *sc; +}; /* sensors */ -void arc_create_sensors(void *, void *); +void arc_create_sensors(void *); void arc_refresh_sensors(void *); #endif /* SMALL_KERNEL */ #endif @@ -826,11 +830,12 @@ arc_attach(struct device *parent, struct * to do the work. */ { - struct task *t; - t = malloc(sizeof(*t), M_TEMP, M_WAITOK); + struct arc_task *at; + at = malloc(sizeof(*at), M_TEMP, M_WAITOK); - task_set(t, arc_create_sensors, sc, t); - task_add(systq, t); + at->sc = sc; + task_set(&at->t, arc_create_sensors, at); + task_add(systq, &at->t); } #endif #endif @@ -2601,15 +2606,15 @@ arc_wait(struct arc_softc *sc) #ifndef SMALL_KERNEL void -arc_create_sensors(void *xsc, void *xt) +arc_create_sensors(void *xat) { - struct arc_softc *sc = xsc; - struct task *t = xt; + struct arc_task *at = xat; + struct arc_softc *sc = at->sc; struct bioc_inq bi; struct bioc_vol bv; int i; - free(t, M_TEMP, sizeof(*t)); + free(at, M_TEMP, sizeof(*at)); DPRINTF("%s: arc_create_sensors\n", DEVNAME(sc)); /* Index: sys/dev/pci/if_bnx.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_bnx.c,v retrieving revision 1.108 diff -u -p -r1.108 if_bnx.c --- sys/dev/pci/if_bnx.c 22 Dec 2014 02:28:51 -0000 1.108 +++ sys/dev/pci/if_bnx.c 30 Dec 2014 12:16:54 -0000 @@ -390,7 +390,7 @@ void bnx_tick(void *); struct rwlock bnx_tx_pool_lk = RWLOCK_INITIALIZER("bnxplinit"); struct pool *bnx_tx_pool = NULL; -void bnx_alloc_pkts(void *, void *); +void bnx_alloc_pkts(void *); /****************************************************************************/ /* OpenBSD device dispatch table. */ @@ -2595,7 +2595,7 @@ bnx_dma_alloc(struct bnx_softc *sc) TAILQ_INIT(&sc->tx_used_pkts); sc->tx_pkt_count = 0; mtx_init(&sc->tx_pkt_mtx, IPL_NET); - task_set(&sc->tx_alloc_task, bnx_alloc_pkts, sc, NULL); + task_set(&sc->tx_alloc_task, bnx_alloc_pkts, sc); /* * Allocate DMA memory for the Rx buffer descriptor chain, @@ -3727,7 +3727,7 @@ bnx_get_buf(struct bnx_softc *sc, u_int1 } void -bnx_alloc_pkts(void *xsc, void *arg) +bnx_alloc_pkts(void *xsc) { struct bnx_softc *sc = xsc; struct ifnet *ifp = &sc->arpcom.ac_if; @@ -3825,7 +3825,7 @@ bnx_init_tx_chain(struct bnx_softc *sc) DBPRINT(sc, BNX_VERBOSE_RESET, "Entering %s()\n", __FUNCTION__); /* Force an allocation of some dmamaps for tx up front */ - bnx_alloc_pkts(sc, NULL); + bnx_alloc_pkts(sc); /* Set the initial TX producer/consumer indices. */ sc->tx_prod = 0; Index: sys/dev/pci/if_iwi.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_iwi.c,v retrieving revision 1.121 diff -u -p -r1.121 if_iwi.c --- sys/dev/pci/if_iwi.c 22 Dec 2014 02:28:52 -0000 1.121 +++ sys/dev/pci/if_iwi.c 30 Dec 2014 12:16:54 -0000 @@ -72,7 +72,7 @@ int iwi_match(struct device *, void *, void iwi_attach(struct device *, struct device *, void *); int iwi_activate(struct device *, int); void iwi_wakeup(struct iwi_softc *); -void iwi_init_task(void *, void *); +void iwi_init_task(void *); int iwi_alloc_cmd_ring(struct iwi_softc *, struct iwi_cmd_ring *); void iwi_reset_cmd_ring(struct iwi_softc *, struct iwi_cmd_ring *); void iwi_free_cmd_ring(struct iwi_softc *, struct iwi_cmd_ring *); @@ -322,7 +322,7 @@ iwi_attach(struct device *parent, struct sc->sc_txtap.wt_ihdr.it_present = htole32(IWI_TX_RADIOTAP_PRESENT); #endif - task_set(&sc->init_task, iwi_init_task, sc, NULL); + task_set(&sc->init_task, iwi_init_task, sc); return; fail: while (--ac >= 0) @@ -359,11 +359,11 @@ iwi_wakeup(struct iwi_softc *sc) data &= ~0x0000ff00; pci_conf_write(sc->sc_pct, sc->sc_pcitag, 0x40, data); - iwi_init_task(sc, NULL); + iwi_init_task(sc); } void -iwi_init_task(void *arg1, void *arg2) +iwi_init_task(void *arg1) { struct iwi_softc *sc = arg1; struct ifnet *ifp = &sc->sc_ic.ic_if; Index: sys/dev/pci/if_iwn.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_iwn.c,v retrieving revision 1.137 diff -u -p -r1.137 if_iwn.c --- sys/dev/pci/if_iwn.c 22 Dec 2014 02:28:52 -0000 1.137 +++ sys/dev/pci/if_iwn.c 30 Dec 2014 12:16:54 -0000 @@ -112,7 +112,7 @@ void iwn_radiotap_attach(struct iwn_sof int iwn_detach(struct device *, int); int iwn_activate(struct device *, int); void iwn_wakeup(struct iwn_softc *); -void iwn_init_task(void *, void *); +void iwn_init_task(void *); int iwn_nic_lock(struct iwn_softc *); int iwn_eeprom_lock(struct iwn_softc *); int iwn_init_otprom(struct iwn_softc *); @@ -533,7 +533,7 @@ iwn_attach(struct device *parent, struct iwn_radiotap_attach(sc); #endif timeout_set(&sc->calib_to, iwn_calib_timeout, sc); - task_set(&sc->init_task, iwn_init_task, sc, NULL); + task_set(&sc->init_task, iwn_init_task, sc); return; /* Free allocated memory if something failed during attachment. */ @@ -766,11 +766,11 @@ iwn_wakeup(struct iwn_softc *sc) reg = pci_conf_read(sc->sc_pct, sc->sc_pcitag, 0x40); if (reg & 0xff00) pci_conf_write(sc->sc_pct, sc->sc_pcitag, 0x40, reg & ~0xff00); - iwn_init_task(sc, NULL); + iwn_init_task(sc); } void -iwn_init_task(void *arg1, void *arg2) +iwn_init_task(void *arg1) { struct iwn_softc *sc = arg1; struct ifnet *ifp = &sc->sc_ic.ic_if; Index: sys/dev/pci/if_wpi.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_wpi.c,v retrieving revision 1.122 diff -u -p -r1.122 if_wpi.c --- sys/dev/pci/if_wpi.c 22 Dec 2014 02:28:52 -0000 1.122 +++ sys/dev/pci/if_wpi.c 30 Dec 2014 12:16:54 -0000 @@ -74,7 +74,7 @@ void wpi_radiotap_attach(struct wpi_sof int wpi_detach(struct device *, int); int wpi_activate(struct device *, int); void wpi_wakeup(struct wpi_softc *); -void wpi_init_task(void *, void *); +void wpi_init_task(void *); int wpi_nic_lock(struct wpi_softc *); int wpi_read_prom_data(struct wpi_softc *, uint32_t, void *, int); int wpi_dma_contig_alloc(bus_dma_tag_t, struct wpi_dma_info *, @@ -324,7 +324,7 @@ wpi_attach(struct device *parent, struct wpi_radiotap_attach(sc); #endif timeout_set(&sc->calib_to, wpi_calib_timeout, sc); - task_set(&sc->init_task, wpi_init_task, sc, NULL); + task_set(&sc->init_task, wpi_init_task, sc); return; /* Free allocated memory if something failed during attachment. */ @@ -412,11 +412,11 @@ wpi_wakeup(struct wpi_softc *sc) reg &= ~0xff00; pci_conf_write(sc->sc_pct, sc->sc_pcitag, 0x40, reg); - wpi_init_task(sc, NULL); + wpi_init_task(sc); } void -wpi_init_task(void *arg1, void *args2) +wpi_init_task(void *arg1) { struct wpi_softc *sc = arg1; struct ifnet *ifp = &sc->sc_ic.ic_if; Index: sys/dev/pci/mpii.c =================================================================== RCS file: /cvs/src/sys/dev/pci/mpii.c,v retrieving revision 1.97 diff -u -p -r1.97 mpii.c --- sys/dev/pci/mpii.c 16 Sep 2014 05:12:04 -0000 1.97 +++ sys/dev/pci/mpii.c 30 Dec 2014 12:16:54 -0000 @@ -340,7 +340,7 @@ void mpii_eventack(void *, void *); void mpii_eventack_done(struct mpii_ccb *); void mpii_event_process(struct mpii_softc *, struct mpii_rcb *); void mpii_event_done(struct mpii_softc *, struct mpii_rcb *); -void mpii_event_sas(void *, void *); +void mpii_event_sas(void *); void mpii_event_raid(struct mpii_softc *, struct mpii_msg_event_reply *); @@ -1550,7 +1550,7 @@ mpii_eventnotify(struct mpii_softc *sc) SIMPLEQ_INIT(&sc->sc_evt_sas_queue); mtx_init(&sc->sc_evt_sas_mtx, IPL_BIO); - task_set(&sc->sc_evt_sas_task, mpii_event_sas, sc, NULL); + task_set(&sc->sc_evt_sas_task, mpii_event_sas, sc); SIMPLEQ_INIT(&sc->sc_evt_ack_queue); mtx_init(&sc->sc_evt_ack_mtx, IPL_BIO); @@ -1695,7 +1695,7 @@ mpii_event_raid(struct mpii_softc *sc, s } void -mpii_event_sas(void *xsc, void *x) +mpii_event_sas(void *xsc) { struct mpii_softc *sc = xsc; struct mpii_rcb *rcb, *next; Index: sys/dev/pci/ppb.c =================================================================== RCS file: /cvs/src/sys/dev/pci/ppb.c,v retrieving revision 1.60 diff -u -p -r1.60 ppb.c --- sys/dev/pci/ppb.c 24 Nov 2014 13:48:49 -0000 1.60 +++ sys/dev/pci/ppb.c 30 Dec 2014 12:16:54 -0000 @@ -107,13 +107,13 @@ struct cfdriver ppb_cd = { void ppb_alloc_resources(struct ppb_softc *, struct pci_attach_args *); int ppb_intr(void *); -void ppb_hotplug_insert(void *, void *); +void ppb_hotplug_insert(void *); void ppb_hotplug_insert_finish(void *); int ppb_hotplug_fixup(struct pci_attach_args *); int ppb_hotplug_fixup_type0(pci_chipset_tag_t, pcitag_t, pcitag_t); int ppb_hotplug_fixup_type1(pci_chipset_tag_t, pcitag_t, pcitag_t); -void ppb_hotplug_rescan(void *, void *); -void ppb_hotplug_remove(void *, void *); +void ppb_hotplug_rescan(void *); +void ppb_hotplug_remove(void *); int ppbprint(void *, const char *pnp); int @@ -177,9 +177,9 @@ ppbattach(struct device *parent, struct /* Check for PCI Express capabilities and setup hotplug support. */ if (pci_get_capability(pc, pa->pa_tag, PCI_CAP_PCIEXPRESS, &sc->sc_cap_off, ®) && (reg & PCI_PCIE_XCAP_SI)) { - task_set(&sc->sc_insert_task, ppb_hotplug_insert, sc, NULL); - task_set(&sc->sc_rescan_task, ppb_hotplug_rescan, sc, NULL); - task_set(&sc->sc_remove_task, ppb_hotplug_remove, sc, NULL); + task_set(&sc->sc_insert_task, ppb_hotplug_insert, sc); + task_set(&sc->sc_rescan_task, ppb_hotplug_rescan, sc); + task_set(&sc->sc_remove_task, ppb_hotplug_remove, sc); timeout_set(&sc->sc_to, ppb_hotplug_insert_finish, sc); #ifdef __i386__ @@ -676,9 +676,9 @@ extern int pci_enumerate_bus(struct pci_ #endif void -ppb_hotplug_insert(void *arg1, void *arg2) +ppb_hotplug_insert(void *xsc) { - struct ppb_softc *sc = arg1; + struct ppb_softc *sc = xsc; struct pci_softc *psc = (struct pci_softc *)sc->sc_psc; if (!LIST_EMPTY(&psc->sc_devs)) @@ -790,9 +790,9 @@ ppb_hotplug_fixup_type1(pci_chipset_tag_ } void -ppb_hotplug_rescan(void *arg1, void *arg2) +ppb_hotplug_rescan(void *xsc) { - struct ppb_softc *sc = arg1; + struct ppb_softc *sc = xsc; struct pci_softc *psc = (struct pci_softc *)sc->sc_psc; if (psc) { @@ -805,9 +805,9 @@ ppb_hotplug_rescan(void *arg1, void *arg } void -ppb_hotplug_remove(void *arg1, void *arg2) +ppb_hotplug_remove(void *xsc) { - struct ppb_softc *sc = arg1; + struct ppb_softc *sc = xsc; struct pci_softc *psc = (struct pci_softc *)sc->sc_psc; if (psc) { Index: sys/dev/pci/qle.c =================================================================== RCS file: /cvs/src/sys/dev/pci/qle.c,v retrieving revision 1.32 diff -u -p -r1.32 qle.c --- sys/dev/pci/qle.c 13 Sep 2014 16:06:37 -0000 1.32 +++ sys/dev/pci/qle.c 30 Dec 2014 12:16:54 -0000 @@ -306,7 +306,7 @@ void qle_fabric_plogo(struct qle_softc void qle_update_start(struct qle_softc *, int); void qle_update_done(struct qle_softc *, int); -void qle_do_update(void *, void *); +void qle_do_update(void *); int qle_async(struct qle_softc *, u_int16_t); int qle_load_fwchunk(struct qle_softc *, @@ -626,7 +626,7 @@ qle_attach(struct device *parent, struct } sc->sc_update_taskq = taskq_create(DEVNAME(sc), 1, IPL_BIO); - task_set(&sc->sc_update_task, qle_do_update, sc, NULL); + task_set(&sc->sc_update_task, qle_do_update, sc); /* wait a bit for link to come up so we can scan and attach devices */ for (i = 0; i < QLE_WAIT_FOR_LOOP * 10000; i++) { @@ -644,7 +644,7 @@ qle_attach(struct device *parent, struct } if (sc->sc_loop_up) { - qle_do_update(sc, NULL); + qle_do_update(sc); } else { DPRINTF(QLE_D_PORT, "%s: loop still down, giving up\n", DEVNAME(sc)); @@ -2081,7 +2081,7 @@ qle_fabric_plogo(struct qle_softc *sc, s } void -qle_do_update(void *xsc, void *x) +qle_do_update(void *xsc) { struct qle_softc *sc = xsc; int firstport, lastport; Index: sys/dev/pci/viomb.c =================================================================== RCS file: /cvs/src/sys/dev/pci/viomb.c,v retrieving revision 1.10 diff -u -p -r1.10 viomb.c --- sys/dev/pci/viomb.c 11 Jul 2014 08:48:38 -0000 1.10 +++ sys/dev/pci/viomb.c 30 Dec 2014 12:16:54 -0000 @@ -106,7 +106,7 @@ struct viomb_softc { int viomb_match(struct device *, void *, void *); void viomb_attach(struct device *, struct device *, void *); -void viomb_worker(void *, void *); +void viomb_worker(void *); void viomb_inflate(struct viomb_softc *); void viomb_deflate(struct viomb_softc *); int viomb_config_change(struct virtio_softc *); @@ -205,7 +205,7 @@ viomb_attach(struct device *parent, stru sc->sc_taskq = taskq_create("viomb", 1, IPL_BIO); if (sc->sc_taskq == NULL) goto err_dmamap; - task_set(&sc->sc_task, viomb_worker, sc, NULL); + task_set(&sc->sc_task, viomb_worker, sc); strlcpy(sc->sc_sensdev.xname, DEVNAME(sc), sizeof(sc->sc_sensdev.xname)); @@ -251,7 +251,7 @@ viomb_config_change(struct virtio_softc } void -viomb_worker(void *arg1, void *arg2) +viomb_worker(void *arg1) { struct viomb_softc *sc = (struct viomb_softc *)arg1; int s; Index: sys/dev/pci/vmwpvs.c =================================================================== RCS file: /cvs/src/sys/dev/pci/vmwpvs.c,v retrieving revision 1.10 diff -u -p -r1.10 vmwpvs.c --- sys/dev/pci/vmwpvs.c 13 Jul 2014 23:10:23 -0000 1.10 +++ sys/dev/pci/vmwpvs.c 30 Dec 2014 12:16:54 -0000 @@ -380,7 +380,7 @@ void vmwpvs_cmd(struct vmwpvs_softc *, int vmwpvs_get_config(struct vmwpvs_softc *); void vmwpvs_setup_rings(struct vmwpvs_softc *); void vmwpvs_setup_msg_ring(struct vmwpvs_softc *); -void vmwpvs_msg_task(void *, void *); +void vmwpvs_msg_task(void *); struct vmwpvs_ccb * vmwpvs_scsi_cmd_poll(struct vmwpvs_softc *); @@ -423,7 +423,7 @@ vmwpvs_attach(struct device *parent, str sc->sc_bus_width = 16; mtx_init(&sc->sc_ring_mtx, IPL_BIO); mtx_init(&sc->sc_ccb_mtx, IPL_BIO); - task_set(&sc->sc_msg_task, vmwpvs_msg_task, sc, NULL); + task_set(&sc->sc_msg_task, vmwpvs_msg_task, sc); SIMPLEQ_INIT(&sc->sc_ccb_list); for (r = PCI_MAPREG_START; r < PCI_MAPREG_END; r += sizeof(memtype)) { @@ -767,7 +767,7 @@ vmwpvs_intr(void *xsc) } void -vmwpvs_msg_task(void *xsc, void *xnull) +vmwpvs_msg_task(void *xsc) { struct vmwpvs_softc *sc = xsc; volatile struct vmwpvw_ring_state *s = Index: sys/dev/pci/drm/drm_crtc_helper.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/drm_crtc_helper.c,v retrieving revision 1.7 diff -u -p -r1.7 drm_crtc_helper.c --- sys/dev/pci/drm/drm_crtc_helper.c 9 Mar 2014 11:07:18 -0000 1.7 +++ sys/dev/pci/drm/drm_crtc_helper.c 30 Dec 2014 12:16:54 -0000 @@ -967,7 +967,7 @@ void drm_kms_helper_hotplug_event(struct EXPORT_SYMBOL(drm_kms_helper_hotplug_event); #define DRM_OUTPUT_POLL_SECONDS 10 -static void drm_output_poll_execute(void *arg1, void *arg2) +static void drm_output_poll_execute(void *arg1) { struct drm_device *dev = (struct drm_device *)arg1; struct drm_connector *connector; @@ -1057,8 +1057,7 @@ EXPORT_SYMBOL(drm_kms_helper_poll_enable void drm_kms_helper_poll_init(struct drm_device *dev) { - task_set(&dev->mode_config.poll_task, drm_output_poll_execute, dev, - NULL); + task_set(&dev->mode_config.poll_task, drm_output_poll_execute, dev); timeout_set(&dev->mode_config.output_poll_to, drm_output_poll_tick, dev); dev->mode_config.poll_enabled = true; Index: sys/dev/pci/drm/i915/i915_drv.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_drv.c,v retrieving revision 1.69 diff -u -p -r1.69 i915_drv.c --- sys/dev/pci/drm/i915/i915_drv.c 20 Dec 2014 16:34:27 -0000 1.69 +++ sys/dev/pci/drm/i915/i915_drv.c 30 Dec 2014 12:16:54 -0000 @@ -599,7 +599,7 @@ int inteldrm_alloc_screen(void *, const void inteldrm_free_screen(void *, void *); int inteldrm_show_screen(void *, void *, int, void (*)(void *, int, int), void *); -void inteldrm_doswitch(void *, void *); +void inteldrm_doswitch(void *); int inteldrm_load_font(void *, void *, struct wsdisplay_font *); int inteldrm_list_font(void *, struct wsdisplay_font *); int inteldrm_getchar(void *, int, int, struct wsdisplay_charcell *); @@ -719,13 +719,13 @@ inteldrm_show_screen(void *v, void *cook return (EAGAIN); } - inteldrm_doswitch(v, cookie); + inteldrm_doswitch(v); return (0); } void -inteldrm_doswitch(void *v, void *dummy) +inteldrm_doswitch(void *v) { struct inteldrm_softc *dev_priv = v; struct rasops_info *ri = &dev_priv->ro; @@ -895,7 +895,7 @@ inteldrm_attach(struct device *parent, s mtx_init(&dev_priv->error_completion_lock, IPL_NONE); rw_init(&dev_priv->rps.hw_lock, "rpshw"); - task_set(&dev_priv->switchtask, inteldrm_doswitch, dev_priv, NULL); + task_set(&dev_priv->switchtask, inteldrm_doswitch, dev_priv); /* we need to use this api for now due to sharing with intagp */ bar = vga_pci_bar_info(vga_sc, (IS_I9XX(dev) ? 0 : 1)); Index: sys/dev/pci/drm/i915/i915_drv.h =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_drv.h,v retrieving revision 1.54 diff -u -p -r1.54 i915_drv.h --- sys/dev/pci/drm/i915/i915_drv.h 20 Dec 2014 16:34:27 -0000 1.54 +++ sys/dev/pci/drm/i915/i915_drv.h 30 Dec 2014 12:16:54 -0000 @@ -1180,7 +1180,7 @@ void i915_gem_retire_requests_ring(struc int i915_gem_check_wedge(struct inteldrm_softc *, bool interruptible); -void i915_gem_retire_work_handler(void *, void*); +void i915_gem_retire_work_handler(void *); int i915_gem_idle(struct drm_device *); void i915_gem_object_move_to_active(struct drm_i915_gem_object *, struct intel_ring_buffer *); Index: sys/dev/pci/drm/i915/i915_gem.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_gem.c,v retrieving revision 1.78 diff -u -p -r1.78 i915_gem.c --- sys/dev/pci/drm/i915/i915_gem.c 17 Dec 2014 06:58:10 -0000 1.78 +++ sys/dev/pci/drm/i915/i915_gem.c 30 Dec 2014 12:16:54 -0000 @@ -2464,7 +2464,7 @@ i915_gem_retire_requests(struct drm_devi } void -i915_gem_retire_work_handler(void *arg1, void *unused) +i915_gem_retire_work_handler(void *arg1) { drm_i915_private_t *dev_priv = arg1; struct drm_device *dev; @@ -4352,7 +4352,7 @@ i915_gem_load(struct drm_device *dev) for (i = 0; i < I915_MAX_NUM_FENCES; i++) INIT_LIST_HEAD(&dev_priv->fence_regs[i].lru_list); task_set(&dev_priv->mm.retire_task, i915_gem_retire_work_handler, - dev_priv, NULL); + dev_priv); timeout_set(&dev_priv->mm.retire_timer, inteldrm_timeout, dev_priv); #if 0 init_completion(&dev_priv->error_completion); Index: sys/dev/pci/drm/i915/i915_irq.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_irq.c,v retrieving revision 1.13 diff -u -p -r1.13 i915_irq.c --- sys/dev/pci/drm/i915/i915_irq.c 12 Jul 2014 18:48:52 -0000 1.13 +++ sys/dev/pci/drm/i915/i915_irq.c 30 Dec 2014 12:16:54 -0000 @@ -278,7 +278,7 @@ static int i915_get_vblank_timestamp(str /* * Handle hotplug events outside the interrupt handler proper. */ -static void i915_hotplug_work_func(void *arg1, void *arg2) +static void i915_hotplug_work_func(void *arg1) { drm_i915_private_t *dev_priv = (drm_i915_private_t *)arg1; struct drm_device *dev = (struct drm_device *)dev_priv->drmdev; @@ -358,7 +358,7 @@ static void notify_ring(struct drm_devic } } -static void gen6_pm_rps_work(void *arg1, void *arg2) +static void gen6_pm_rps_work(void *arg1) { drm_i915_private_t *dev_priv = arg1; struct drm_device *dev = (struct drm_device *)dev_priv->drmdev; @@ -402,7 +402,7 @@ static void gen6_pm_rps_work(void *arg1, * this event, userspace should try to remap the bad rows since statistically * it is likely the same row is more likely to go bad again. */ -static void ivybridge_parity_work(void *arg1, void *arg2) +static void ivybridge_parity_work(void *arg1) { drm_i915_private_t *dev_priv = arg1; struct drm_device *dev = (struct drm_device *)dev_priv->drmdev; @@ -832,7 +832,7 @@ done: * Fire an error uevent so userspace can see that a hang or error * was detected. */ -static void i915_error_work_func(void *arg1, void *arg2) +static void i915_error_work_func(void *arg1) { drm_i915_private_t *dev_priv = arg1; struct drm_device *dev = (struct drm_device *)dev_priv->drmdev; @@ -2693,14 +2693,11 @@ void intel_irq_init(struct drm_device *d { struct drm_i915_private *dev_priv = dev->dev_private; - task_set(&dev_priv->hotplug_task, i915_hotplug_work_func, - dev_priv, NULL); - task_set(&dev_priv->error_task, i915_error_work_func, - dev_priv, NULL); - task_set(&dev_priv->rps.task, gen6_pm_rps_work, - dev_priv, NULL); + task_set(&dev_priv->hotplug_task, i915_hotplug_work_func, dev_priv); + task_set(&dev_priv->error_task, i915_error_work_func, dev_priv); + task_set(&dev_priv->rps.task, gen6_pm_rps_work, dev_priv); task_set(&dev_priv->l3_parity.error_task, ivybridge_parity_work, - dev_priv, NULL); + dev_priv); dev->driver->get_vblank_counter = i915_get_vblank_counter; dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */ Index: sys/dev/pci/drm/i915/intel_display.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/i915/intel_display.c,v retrieving revision 1.37 diff -u -p -r1.37 intel_display.c --- sys/dev/pci/drm/i915/intel_display.c 8 Oct 2014 05:25:41 -0000 1.37 +++ sys/dev/pci/drm/i915/intel_display.c 30 Dec 2014 12:16:54 -0000 @@ -7184,7 +7184,7 @@ static void intel_crtc_destroy(struct dr kfree(intel_crtc); } -static void intel_unpin_work_fn(void *arg1, void *arg2) +static void intel_unpin_work_fn(void *arg1) { struct intel_unpin_work *work = arg1; struct drm_device *dev = work->crtc->dev; @@ -7576,7 +7576,7 @@ static int intel_crtc_page_flip(struct d work->event = event; work->crtc = crtc; work->old_fb_obj = to_intel_framebuffer(old_fb)->obj; - task_set(&work->task, intel_unpin_work_fn, work, NULL); + task_set(&work->task, intel_unpin_work_fn, work); ret = drm_vblank_get(dev, intel_crtc->pipe); if (ret) Index: sys/dev/pci/drm/i915/intel_dp.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/i915/intel_dp.c,v retrieving revision 1.20 diff -u -p -r1.20 intel_dp.c --- sys/dev/pci/drm/i915/intel_dp.c 19 Jun 2014 06:51:05 -0000 1.20 +++ sys/dev/pci/drm/i915/intel_dp.c 30 Dec 2014 12:16:54 -0000 @@ -1109,7 +1109,7 @@ static void ironlake_panel_vdd_off_sync( } } -static void ironlake_panel_vdd_work(void *arg1, void *arg2) +static void ironlake_panel_vdd_work(void *arg1) { struct intel_dp *intel_dp = arg1; struct drm_device *dev = intel_dp_to_dev(intel_dp); @@ -2819,8 +2819,7 @@ intel_dp_init_connector(struct intel_dig connector->interlace_allowed = true; connector->doublescan_allowed = 0; - task_set(&intel_dp->panel_vdd_task, ironlake_panel_vdd_work, intel_dp, - NULL); + task_set(&intel_dp->panel_vdd_task, ironlake_panel_vdd_work, intel_dp); timeout_set(&intel_dp->panel_vdd_to, ironlake_panel_vdd_tick, intel_dp); intel_connector_attach_encoder(intel_connector, intel_encoder); Index: sys/dev/pci/drm/i915/intel_pm.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/i915/intel_pm.c,v retrieving revision 1.21 diff -u -p -r1.21 intel_pm.c --- sys/dev/pci/drm/i915/intel_pm.c 24 Mar 2014 17:06:49 -0000 1.21 +++ sys/dev/pci/drm/i915/intel_pm.c 30 Dec 2014 12:16:54 -0000 @@ -275,7 +275,7 @@ bool intel_fbc_enabled(struct drm_device return dev_priv->display.fbc_enabled(dev); } -static void intel_fbc_work_fn(void *arg1, void *arg2) +static void intel_fbc_work_fn(void *arg1) { struct intel_fbc_work *work = arg1; struct drm_device *dev = work->crtc->dev; @@ -354,7 +354,7 @@ void intel_enable_fbc(struct drm_crtc *c work->crtc = crtc; work->fb = crtc->fb; work->interval = interval; - task_set(&work->task, intel_fbc_work_fn, work, NULL); + task_set(&work->task, intel_fbc_work_fn, work); timeout_set(&work->to, intel_fbc_work_tick, work); dev_priv->fbc_work = work; @@ -3486,7 +3486,7 @@ void intel_disable_gt_powersave(struct d } } -static void intel_gen6_powersave_work(void *arg1, void *arg2) +static void intel_gen6_powersave_work(void *arg1) { drm_i915_private_t *dev_priv = arg1; struct drm_device *dev = (struct drm_device *)dev_priv->drmdev; @@ -4519,7 +4519,7 @@ void intel_pm_init(struct drm_device *de struct drm_i915_private *dev_priv = dev->dev_private; task_set(&dev_priv->rps.delayed_resume_task, intel_gen6_powersave_work, - dev_priv, NULL); + dev_priv); timeout_set(&dev_priv->rps.delayed_resume_to, intel_gen6_powersave_tick, dev_priv); } Index: sys/dev/pci/drm/radeon/r600_audio.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/radeon/r600_audio.c,v retrieving revision 1.1 diff -u -p -r1.1 r600_audio.c --- sys/dev/pci/drm/radeon/r600_audio.c 12 Aug 2013 04:11:53 -0000 1.1 +++ sys/dev/pci/drm/radeon/r600_audio.c 30 Dec 2014 12:16:54 -0000 @@ -123,7 +123,7 @@ struct r600_audio r600_audio_status(stru * update all hdmi interfaces with current audio parameters */ void -r600_audio_update_hdmi(void *arg1, void *arg2) +r600_audio_update_hdmi(void *arg1) { struct radeon_device *rdev = arg1; struct drm_device *dev = rdev->ddev; Index: sys/dev/pci/drm/radeon/radeon.h =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/radeon/radeon.h,v retrieving revision 1.9 diff -u -p -r1.9 radeon.h --- sys/dev/pci/drm/radeon/radeon.h 20 Dec 2014 16:34:27 -0000 1.9 +++ sys/dev/pci/drm/radeon/radeon.h 30 Dec 2014 12:16:54 -0000 @@ -1957,10 +1957,10 @@ int radeon_vm_bo_set_addr(struct radeon_ int radeon_vm_bo_rmv(struct radeon_device *rdev, struct radeon_bo_va *bo_va); -void radeon_hotplug_work_func(void *arg1, void *arg2); +void radeon_hotplug_work_func(void *arg1); /* audio */ -void r600_audio_update_hdmi(void *arg1, void *arg2); +void r600_audio_update_hdmi(void *arg1); /* * R600 vram scratch functions Index: sys/dev/pci/drm/radeon/radeon_display.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/radeon/radeon_display.c,v retrieving revision 1.7 diff -u -p -r1.7 radeon_display.c --- sys/dev/pci/drm/radeon/radeon_display.c 3 May 2014 05:26:47 -0000 1.7 +++ sys/dev/pci/drm/radeon/radeon_display.c 30 Dec 2014 12:16:54 -0000 @@ -33,7 +33,7 @@ #include #include -void radeon_unpin_work_func(void *, void *); +void radeon_unpin_work_func(void *); static void avivo_crtc_load_lut(struct drm_crtc *crtc) { @@ -249,7 +249,7 @@ static void radeon_crtc_destroy(struct d * Handle unpin events outside the interrupt handler proper. */ void -radeon_unpin_work_func(void *arg1, void *arg2) +radeon_unpin_work_func(void *arg1) { struct radeon_unpin_work *work = arg1; int r; @@ -387,7 +387,7 @@ static int radeon_crtc_page_flip(struct work->fence = radeon_fence_ref(rbo->tbo.sync_obj); mtx_leave(&rbo->tbo.bdev->fence_lock); - task_set(&work->task, radeon_unpin_work_func, work, NULL); + task_set(&work->task, radeon_unpin_work_func, work); /* We borrow the event spin lock for protecting unpin_work */ mtx_enter(&dev->event_lock); Index: sys/dev/pci/drm/radeon/radeon_fb.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/radeon/radeon_fb.c,v retrieving revision 1.5 diff -u -p -r1.5 radeon_fb.c --- sys/dev/pci/drm/radeon/radeon_fb.c 9 Feb 2014 11:03:31 -0000 1.5 +++ sys/dev/pci/drm/radeon/radeon_fb.c 30 Dec 2014 12:16:54 -0000 @@ -63,7 +63,7 @@ static struct fb_ops radeonfb_ops = { int radeonfb_create_pinned_object(struct radeon_fbdev *, struct drm_mode_fb_cmd2 *, struct drm_gem_object **); -void radeondrm_burner_cb(void *, void *); +void radeondrm_burner_cb(void *); int radeon_align_pitch(struct radeon_device *rdev, int width, int bpp, bool tiled) { @@ -426,7 +426,7 @@ int radeon_fbdev_init(struct radeon_devi return ret; } - task_set(&rdev->burner_task, radeondrm_burner_cb, rdev, NULL); + task_set(&rdev->burner_task, radeondrm_burner_cb, rdev); drm_fb_helper_single_add_all_connectors(&rfbdev->helper); #ifdef __sparc64__ @@ -516,7 +516,7 @@ radeondrm_burner(void *v, u_int on, u_in } void -radeondrm_burner_cb(void *arg1, void *arg2) +radeondrm_burner_cb(void *arg1) { struct radeon_device *rdev = arg1; struct drm_fb_helper *helper = &rdev->mode_info.rfbdev->helper; Index: sys/dev/pci/drm/radeon/radeon_irq_kms.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/radeon/radeon_irq_kms.c,v retrieving revision 1.4 diff -u -p -r1.4 radeon_irq_kms.c --- sys/dev/pci/drm/radeon/radeon_irq_kms.c 7 Apr 2014 06:43:11 -0000 1.4 +++ sys/dev/pci/drm/radeon/radeon_irq_kms.c 30 Dec 2014 12:16:54 -0000 @@ -76,7 +76,7 @@ radeon_driver_irq_handler_kms(void *arg) * a drm hotplug event to alert userspace. */ void -radeon_hotplug_work_func(void *arg1, void *arg2) +radeon_hotplug_work_func(void *arg1) { struct radeon_device *rdev = arg1; struct drm_device *dev = rdev->ddev; @@ -250,8 +250,8 @@ int radeon_irq_kms_init(struct radeon_de { int r = 0; - task_set(&rdev->hotplug_task, radeon_hotplug_work_func, rdev, NULL); - task_set(&rdev->audio_task, r600_audio_update_hdmi, rdev, NULL); + task_set(&rdev->hotplug_task, radeon_hotplug_work_func, rdev); + task_set(&rdev->audio_task, r600_audio_update_hdmi, rdev); mtx_init(&rdev->irq.lock, IPL_TTY); r = drm_vblank_init(rdev->ddev, rdev->num_crtc); Index: sys/dev/pci/drm/radeon/radeon_kms.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/radeon/radeon_kms.c,v retrieving revision 1.31 diff -u -p -r1.31 radeon_kms.c --- sys/dev/pci/drm/radeon/radeon_kms.c 20 Dec 2014 16:34:27 -0000 1.31 +++ sys/dev/pci/drm/radeon/radeon_kms.c 30 Dec 2014 12:16:54 -0000 @@ -302,7 +302,7 @@ int radeondrm_alloc_screen(void *, const void radeondrm_free_screen(void *, void *); int radeondrm_show_screen(void *, void *, int, void (*)(void *, int, int), void *); -void radeondrm_doswitch(void *, void *); +void radeondrm_doswitch(void *); #ifdef __sparc64__ void radeondrm_setcolor(void *, u_int, u_int8_t, u_int8_t, u_int8_t); #endif @@ -385,13 +385,13 @@ radeondrm_show_screen(void *v, void *coo return (EAGAIN); } - radeondrm_doswitch(v, cookie); + radeondrm_doswitch(v); return (0); } void -radeondrm_doswitch(void *v, void *dummy) +radeondrm_doswitch(void *v) { struct rasops_info *ri = v; struct radeon_device *rdev = ri->ri_hw; @@ -698,7 +698,7 @@ radeondrm_attachhook(void *xsc) struct wsemuldisplaydev_attach_args aa; struct rasops_info *ri = &rdev->ro; - task_set(&rdev->switchtask, radeondrm_doswitch, ri, NULL); + task_set(&rdev->switchtask, radeondrm_doswitch, ri); if (ri->ri_bits == NULL) return; Index: sys/dev/pci/drm/radeon/radeon_pm.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/radeon/radeon_pm.c,v retrieving revision 1.7 diff -u -p -r1.7 radeon_pm.c --- sys/dev/pci/drm/radeon/radeon_pm.c 15 Feb 2014 12:43:38 -0000 1.7 +++ sys/dev/pci/drm/radeon/radeon_pm.c 30 Dec 2014 12:16:54 -0000 @@ -57,7 +57,7 @@ ssize_t radeon_set_pm_profile(struct de ssize_t radeon_set_pm_method(struct device *, struct device_attribute *, const char *, size_t); void radeon_dynpm_idle_tick(void *); -void radeon_dynpm_idle_work_handler(void *, void *); +void radeon_dynpm_idle_work_handler(void *); extern int ticks; @@ -659,7 +659,7 @@ int radeon_pm_init(struct radeon_device return ret; task_set(&rdev->pm.dynpm_idle_task, radeon_dynpm_idle_work_handler, - rdev, NULL); + rdev); timeout_set(&rdev->pm.dynpm_idle_to, radeon_dynpm_idle_tick, rdev); if (rdev->pm.num_power_states > 1) { @@ -829,7 +829,7 @@ radeon_dynpm_idle_tick(void *arg) } void -radeon_dynpm_idle_work_handler(void *arg1, void *arg2) +radeon_dynpm_idle_work_handler(void *arg1) { struct radeon_device *rdev = arg1; int resched; Index: sys/dev/pci/drm/ttm/ttm_bo.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/ttm/ttm_bo.c,v retrieving revision 1.9 diff -u -p -r1.9 ttm_bo.c --- sys/dev/pci/drm/ttm/ttm_bo.c 16 Nov 2014 12:31:00 -0000 1.9 +++ sys/dev/pci/drm/ttm/ttm_bo.c 30 Dec 2014 12:16:54 -0000 @@ -43,7 +43,7 @@ static int ttm_bo_setup_vm(struct ttm_buffer_object *bo); static int ttm_bo_swapout(struct ttm_mem_shrink *shrink); static void ttm_bo_global_kobj_release(struct ttm_bo_global *glob); -void ttm_bo_delayed_workqueue(void *, void *); +void ttm_bo_delayed_workqueue(void *); int ttm_bo_move_buffer(struct ttm_buffer_object *, struct ttm_placement *, bool, bool); @@ -713,7 +713,7 @@ static void ttm_bo_delayed_tick(void *ar } void -ttm_bo_delayed_workqueue(void *arg1, void *arg2) +ttm_bo_delayed_workqueue(void *arg1) { struct ttm_bo_device *bdev = arg1; @@ -1592,7 +1592,7 @@ int ttm_bo_device_init(struct ttm_bo_dev if (unlikely(ret != 0)) goto out_no_addr_mm; - task_set(&bdev->task, ttm_bo_delayed_workqueue, bdev, NULL); + task_set(&bdev->task, ttm_bo_delayed_workqueue, bdev); timeout_set(&bdev->to, ttm_bo_delayed_tick, bdev); INIT_LIST_HEAD(&bdev->ddestroy); bdev->dev_mapping = NULL; Index: sys/dev/pci/drm/ttm/ttm_memory.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/ttm/ttm_memory.c,v retrieving revision 1.4 diff -u -p -r1.4 ttm_memory.c --- sys/dev/pci/drm/ttm/ttm_memory.c 9 Feb 2014 10:57:26 -0000 1.4 +++ sys/dev/pci/drm/ttm/ttm_memory.c 30 Dec 2014 12:16:54 -0000 @@ -234,7 +234,7 @@ out: mtx_leave(&glob->lock); } -static void ttm_shrink_work(void *arg1, void *arg2) +static void ttm_shrink_work(void *arg1) { struct ttm_mem_global *glob = arg1; @@ -338,7 +338,7 @@ int ttm_mem_global_init(struct ttm_mem_g mtx_init(&glob->lock, IPL_TTY); glob->swap_queue = taskq_create("ttm_swap", 1, IPL_TTY); glob->task_queued = false; - task_set(&glob->task, ttm_shrink_work, glob, NULL); + task_set(&glob->task, ttm_shrink_work, glob); refcount_init(&glob->kobj_ref, 1); Index: sys/dev/rasops/rasops.c =================================================================== RCS file: /cvs/src/sys/dev/rasops/rasops.c,v retrieving revision 1.37 diff -u -p -r1.37 rasops.c --- sys/dev/rasops/rasops.c 22 Dec 2014 20:08:05 -0000 1.37 +++ sys/dev/rasops/rasops.c 30 Dec 2014 12:16:54 -0000 @@ -164,7 +164,7 @@ struct rotatedfont { }; #endif -void rasops_doswitch(void *, void *); +void rasops_doswitch(void *); int rasops_vcons_cursor(void *, int, int, int); int rasops_vcons_mapchar(void *, int, u_int *); int rasops_vcons_putchar(void *, int, int, u_int, long); @@ -274,7 +274,7 @@ rasops_init(struct rasops_info *ri, int ri->ri_ops.unpack_attr = rasops_vcons_unpack_attr; } - task_set(&ri->ri_switchtask, rasops_doswitch, ri, NULL); + task_set(&ri->ri_switchtask, rasops_doswitch, ri); rasops_init_devcmap(ri); return (0); @@ -1435,12 +1435,12 @@ rasops_show_screen(void *v, void *cookie return (EAGAIN); } - rasops_doswitch(ri, NULL); + rasops_doswitch(ri); return (0); } void -rasops_doswitch(void *v, void *dummy) +rasops_doswitch(void *v) { struct rasops_info *ri = v; struct rasops_screen *scr = ri->ri_switchcookie; Index: sys/kern/kern_sensors.c =================================================================== RCS file: /cvs/src/sys/kern/kern_sensors.c,v retrieving revision 1.33 diff -u -p -r1.33 kern_sensors.c --- sys/kern/kern_sensors.c 14 Nov 2014 23:26:48 -0000 1.33 +++ sys/kern/kern_sensors.c 30 Dec 2014 12:16:54 -0000 @@ -180,7 +180,7 @@ struct sensor_task { }; void sensor_task_tick(void *); -void sensor_task_work(void *, void *); +void sensor_task_work(void *); struct sensor_task * sensor_task_register(void *arg, void (*func)(void *), unsigned int period) @@ -204,7 +204,7 @@ sensor_task_register(void *arg, void (*f st->arg = arg; st->period = period; timeout_set(&st->timeout, sensor_task_tick, st); - task_set(&st->task, sensor_task_work, st, NULL); + task_set(&st->task, sensor_task_work, st); rw_init(&st->lock, "sensor"); sensor_task_tick(st); @@ -235,7 +235,7 @@ sensor_task_tick(void *arg) } void -sensor_task_work(void *xst, void *arg) +sensor_task_work(void *xst) { struct sensor_task *st = xst; unsigned int period = 0; Index: sys/kern/kern_task.c =================================================================== RCS file: /cvs/src/sys/kern/kern_task.c,v retrieving revision 1.12 diff -u -p -r1.12 kern_task.c --- sys/kern/kern_task.c 1 Nov 2014 23:58:28 -0000 1.12 +++ sys/kern/kern_task.c 30 Dec 2014 12:16:54 -0000 @@ -178,12 +178,10 @@ taskq_create_thread(void *arg) } void -task_set(struct task *t, void (*fn)(void *, void *), void *arg1, void *arg2) +task_set(struct task *t, void (*fn)(void *), void *arg) { t->t_func = fn; - t->t_arg1 = arg1; - t->t_arg2 = arg2; - + t->t_arg = arg; t->t_flags = 0; } @@ -262,7 +260,7 @@ taskq_thread(void *xtq) KERNEL_UNLOCK(); while (taskq_next_work(tq, &work)) { - (*work.t_func)(work.t_arg1, work.t_arg2); + (*work.t_func)(work.t_arg); sched_pause(); } Index: sys/kern/subr_disk.c =================================================================== RCS file: /cvs/src/sys/kern/subr_disk.c,v retrieving revision 1.179 diff -u -p -r1.179 subr_disk.c --- sys/kern/subr_disk.c 30 Dec 2014 04:00:33 -0000 1.179 +++ sys/kern/subr_disk.c 30 Dec 2014 12:16:54 -0000 @@ -99,7 +99,7 @@ struct disk_attach_task { struct disk *dk; }; -void disk_attach_callback(void *, void *); +void disk_attach_callback(void *); /* * Compute checksum for disk label. @@ -1105,7 +1105,7 @@ disk_attach(struct device *dv, struct di device_ref(dv); dat->dk = diskp; - task_set(&dat->task, disk_attach_callback, dat, NULL); + task_set(&dat->task, disk_attach_callback, dat); task_add(systq, &dat->task); } } @@ -1115,7 +1115,7 @@ disk_attach(struct device *dv, struct di } void -disk_attach_callback(void *xdat, void *null) +disk_attach_callback(void *xdat) { struct disk_attach_task *dat = xdat; struct disk *dk = dat->dk; Index: sys/net/if.c =================================================================== RCS file: /cvs/src/sys/net/if.c,v retrieving revision 1.309 diff -u -p -r1.309 if.c --- sys/net/if.c 19 Dec 2014 17:14:39 -0000 1.309 +++ sys/net/if.c 30 Dec 2014 12:16:54 -0000 @@ -142,7 +142,7 @@ struct if_clone *if_clone_lookup(const c void if_congestion_clear(void *); int if_group_egress_build(void); -void if_link_state_change_task(void *, void *); +void if_link_state_change_task(void *); #ifdef DDB void ifa_print_all(void); @@ -265,8 +265,7 @@ if_attachsetup(struct ifnet *ifp) timeout_set(ifp->if_slowtimo, if_slowtimo, ifp); if_slowtimo(ifp); - task_set(ifp->if_linkstatetask, if_link_state_change_task, - ifp, NULL); + task_set(ifp->if_linkstatetask, if_link_state_change_task, ifp); /* Announce the interface. */ rt_ifannouncemsg(ifp, IFAN_ARRIVAL); @@ -1123,7 +1122,7 @@ if_link_state_change(struct ifnet *ifp) * Process a link state change. */ void -if_link_state_change_task(void *arg, void *unused) +if_link_state_change_task(void *arg) { struct ifnet *ifp = arg; int s; Index: sys/net/if_spppsubr.c =================================================================== RCS file: /cvs/src/sys/net/if_spppsubr.c,v retrieving revision 1.129 diff -u -p -r1.129 if_spppsubr.c --- sys/net/if_spppsubr.c 19 Dec 2014 17:14:39 -0000 1.129 +++ sys/net/if_spppsubr.c 30 Dec 2014 12:16:54 -0000 @@ -317,7 +317,7 @@ const char *sppp_ipv6cp_opt_name(u_char void sppp_get_ip6_addrs(struct sppp *sp, struct in6_addr *src, struct in6_addr *dst, struct in6_addr *srcmask); void sppp_set_ip6_addr(struct sppp *sp, const struct in6_addr *src, const struct in6_addr *dst); -void sppp_update_ip6_addr(void *arg1, void *arg2); +void sppp_update_ip6_addr(void *sp); void sppp_suggest_ip6_addr(struct sppp *sp, struct in6_addr *suggest); void sppp_pap_input(struct sppp *sp, struct mbuf *m); @@ -358,8 +358,8 @@ void sppp_print_string(const char *p, u_ void sppp_qflush(struct ifqueue *ifq); int sppp_update_gw_walker(struct radix_node *rn, void *arg, u_int); void sppp_update_gw(struct ifnet *ifp); -void sppp_set_ip_addrs(void *, void *); -void sppp_clear_ip_addrs(void *, void *); +void sppp_set_ip_addrs(void *); +void sppp_clear_ip_addrs(void *); void sppp_set_phase(struct sppp *sp); /* our control protocol descriptors */ @@ -2609,8 +2609,8 @@ sppp_ipcp_init(struct sppp *sp) sp->ipcp.flags = 0; sp->state[IDX_IPCP] = STATE_INITIAL; sp->fail_counter[IDX_IPCP] = 0; - task_set(&sp->ipcp.set_addr_task, sppp_set_ip_addrs, sp, NULL); - task_set(&sp->ipcp.clear_addr_task, sppp_clear_ip_addrs, sp, NULL); + task_set(&sp->ipcp.set_addr_task, sppp_set_ip_addrs, sp); + task_set(&sp->ipcp.clear_addr_task, sppp_clear_ip_addrs, sp); } void @@ -3058,8 +3058,7 @@ sppp_ipv6cp_init(struct sppp *sp) sp->ipv6cp.flags = 0; sp->state[IDX_IPV6CP] = STATE_INITIAL; sp->fail_counter[IDX_IPV6CP] = 0; - task_set(&sp->ipv6cp.set_addr_task, sppp_update_ip6_addr, sp, - &sp->ipv6cp.req_ifid); + task_set(&sp->ipv6cp.set_addr_task, sppp_update_ip6_addr, sp); } void @@ -4558,7 +4557,7 @@ sppp_update_gw(struct ifnet *ifp) * If an address is 0, leave it the way it is. */ void -sppp_set_ip_addrs(void *arg1, void *arg2) +sppp_set_ip_addrs(void *arg1) { struct sppp *sp = arg1; u_int32_t myaddr; @@ -4631,7 +4630,7 @@ sppp_set_ip_addrs(void *arg1, void *arg2 * Clear IP addresses. */ void -sppp_clear_ip_addrs(void *arg1, void *arg2) +sppp_clear_ip_addrs(void *arg1) { struct sppp *sp = (struct sppp *)arg1; struct ifnet *ifp = &sp->pp_if; @@ -4728,11 +4727,11 @@ sppp_get_ip6_addrs(struct sppp *sp, stru /* Task to update my IPv6 address from process context. */ void -sppp_update_ip6_addr(void *arg1, void *arg2) +sppp_update_ip6_addr(void *arg) { - struct sppp *sp = arg1; + struct sppp *sp = arg; struct ifnet *ifp = &sp->pp_if; - struct in6_aliasreq *ifra = arg2; + struct in6_aliasreq *ifra = &sp->ipv6cp.req_ifid; struct in6_addr mask = in6mask128; struct in6_ifaddr *ia6; int s, error; Index: sys/net80211/ieee80211_input.c =================================================================== RCS file: /cvs/src/sys/net80211/ieee80211_input.c,v retrieving revision 1.128 diff -u -p -r1.128 ieee80211_input.c --- sys/net80211/ieee80211_input.c 23 Dec 2014 03:24:08 -0000 1.128 +++ sys/net80211/ieee80211_input.c 30 Dec 2014 12:16:54 -0000 @@ -131,7 +131,7 @@ void ieee80211_bar_tid(struct ieee80211c #endif void ieee80211_input_print(struct ieee80211com *, struct ifnet *, struct ieee80211_frame *, struct ieee80211_rxinfo *); -void ieee80211_input_print_task(void *, void *); +void ieee80211_input_print_task(void *); struct ieee80211printmsg { struct task task; @@ -164,7 +164,7 @@ ieee80211_get_hdrlen(const struct ieee80 * frames are received and the interface is put in debug mode. */ void -ieee80211_input_print_task(void *arg1, void *arg2) +ieee80211_input_print_task(void *arg1) { struct ieee80211printmsg *msg = arg1; @@ -214,7 +214,7 @@ ieee80211_input_print(struct ieee80211co ieee80211_phymode_name[ieee80211_chan2mode( ic, ic->ic_bss->ni_chan)]); - task_set(&msg->task, ieee80211_input_print_task, msg, NULL); + task_set(&msg->task, ieee80211_input_print_task, msg); task_add(systq, &msg->task); } Index: sys/netinet6/nd6.c =================================================================== RCS file: /cvs/src/sys/netinet6/nd6.c,v retrieving revision 1.128 diff -u -p -r1.128 nd6.c --- sys/netinet6/nd6.c 22 Dec 2014 11:05:53 -0000 1.128 +++ sys/netinet6/nd6.c 30 Dec 2014 12:16:54 -0000 @@ -100,7 +100,7 @@ void nd6_llinfo_timer(void *); struct timeout nd6_slowtimo_ch; struct timeout nd6_timer_ch; struct task nd6_timer_task; -void nd6_timer_work(void *, void *); +void nd6_timer_work(void *); struct timeout nd6_rs_output_timer; int nd6_rs_output_timeout = ND6_RS_OUTPUT_INTERVAL; @@ -134,7 +134,7 @@ nd6_init(void) /* initialization of the default router list */ TAILQ_INIT(&nd_defrouter); - task_set(&nd6_timer_task, nd6_timer_work, NULL, NULL); + task_set(&nd6_timer_task, nd6_timer_work, NULL); nd6_init_done = 1; @@ -493,7 +493,7 @@ nd6_llinfo_timer(void *arg) * ND6 timer routine to expire default route list and prefix list */ void -nd6_timer_work(void *ignored_arg1, void *ignored_arg2) +nd6_timer_work(void *null) { int s; struct nd_defrouter *dr, *ndr; Index: sys/netinet6/nd6_rtr.c =================================================================== RCS file: /cvs/src/sys/netinet6/nd6_rtr.c,v retrieving revision 1.96 diff -u -p -r1.96 nd6_rtr.c --- sys/netinet6/nd6_rtr.c 22 Dec 2014 11:17:20 -0000 1.96 +++ sys/netinet6/nd6_rtr.c 30 Dec 2014 12:16:54 -0000 @@ -74,7 +74,7 @@ void in6_init_address_ltimes(struct nd_p int rt6_deleteroute(struct radix_node *, void *, u_int); -void nd6_addr_add(void *, void *); +void nd6_addr_add(void *); extern int nd6_recalc_reachtm_interval; @@ -1045,7 +1045,7 @@ nd6_prelist_add(struct nd_prefix *pr, st new->ndpr_prefix.sin6_addr.s6_addr32[i] &= new->ndpr_mask.s6_addr32[i]; - task_set(&new->ndpr_task, nd6_addr_add, new, NULL); + task_set(&new->ndpr_task, nd6_addr_add, new); s = splsoftnet(); /* link ndpr_entry to nd_prefix list */ @@ -1396,7 +1396,7 @@ prelist_update(struct nd_prefix *new, st } void -nd6_addr_add(void *prptr, void *arg2) +nd6_addr_add(void *prptr) { struct nd_prefix *pr = (struct nd_prefix *)prptr; struct in6_ifaddr *ia6; Index: sys/scsi/scsi_base.c =================================================================== RCS file: /cvs/src/sys/scsi/scsi_base.c,v retrieving revision 1.217 diff -u -p -r1.217 scsi_base.c --- sys/scsi/scsi_base.c 20 Sep 2014 16:18:23 -0000 1.217 +++ sys/scsi/scsi_base.c 30 Dec 2014 12:16:54 -0000 @@ -73,8 +73,8 @@ struct scsi_plug { int how; }; -void scsi_plug_probe(void *, void *); -void scsi_plug_detach(void *, void *); +void scsi_plug_probe(void *); +void scsi_plug_detach(void *); struct scsi_xfer * scsi_xs_io(struct scsi_link *, void *, int); @@ -145,7 +145,7 @@ scsi_req_probe(struct scsibus_softc *sc, if (p == NULL) return (ENOMEM); - task_set(&p->task, scsi_plug_probe, p, NULL); + task_set(&p->task, scsi_plug_probe, p); p->sc = sc; p->target = target; p->lun = lun; @@ -164,7 +164,7 @@ scsi_req_detach(struct scsibus_softc *sc if (p == NULL) return (ENOMEM); - task_set(&p->task, scsi_plug_detach, p, NULL); + task_set(&p->task, scsi_plug_detach, p); p->sc = sc; p->target = target; p->lun = lun; @@ -176,7 +176,7 @@ scsi_req_detach(struct scsibus_softc *sc } void -scsi_plug_probe(void *xp, void *null) +scsi_plug_probe(void *xp) { struct scsi_plug *p = xp; struct scsibus_softc *sc = p->sc; @@ -188,7 +188,7 @@ scsi_plug_probe(void *xp, void *null) } void -scsi_plug_detach(void *xp, void *null) +scsi_plug_detach(void *xp) { struct scsi_plug *p = xp; struct scsibus_softc *sc = p->sc; Index: sys/sys/task.h =================================================================== RCS file: /cvs/src/sys/sys/task.h,v retrieving revision 1.6 diff -u -p -r1.6 task.h --- sys/sys/task.h 11 Jun 2014 08:47:53 -0000 1.6 +++ sys/sys/task.h 30 Dec 2014 12:16:54 -0000 @@ -25,9 +25,8 @@ struct taskq; struct task { TAILQ_ENTRY(task) t_entry; - void (*t_func)(void *, void *); - void *t_arg1; - void *t_arg2; + void (*t_func)(void *); + void *t_arg; unsigned int t_flags; }; @@ -38,13 +37,12 @@ extern struct taskq *const systqmp; struct taskq *taskq_create(const char *, unsigned int, int); void taskq_destroy(struct taskq *); -void task_set(struct task *, void (*)(void *, void *), - void *, void *); +void task_set(struct task *, void (*)(void *), void *); int task_add(struct taskq *, struct task *); int task_del(struct taskq *, struct task *); -#define TASK_INITIALIZER(_f, _a1, _a2) \ - { { NULL, NULL }, (_f), (_a1), (_a2), 0 } +#define TASK_INITIALIZER(_f, _a) \ + { { NULL, NULL }, (_f), (_a), 0 } #endif /* _KERNEL */ Index: sys/uvm/uvm_swap.c =================================================================== RCS file: /cvs/src/sys/uvm/uvm_swap.c,v retrieving revision 1.132 diff -u -p -r1.132 uvm_swap.c --- sys/uvm/uvm_swap.c 23 Dec 2014 04:47:30 -0000 1.132 +++ sys/uvm/uvm_swap.c 30 Dec 2014 12:16:54 -0000 @@ -192,6 +192,7 @@ struct vndxfer { struct vndbuf { struct buf vb_buf; + struct vndxfer *vb_vnx; struct task vb_task; }; @@ -230,7 +231,7 @@ int swap_off(struct proc *, struct swapd void sw_reg_strategy(struct swapdev *, struct buf *, int); void sw_reg_iodone(struct buf *); -void sw_reg_iodone_internal(void *, void *); +void sw_reg_iodone_internal(void *); void sw_reg_start(struct swapdev *); int uvm_swap_io(struct vm_page **, int, int, int); @@ -1229,7 +1230,8 @@ sw_reg_strategy(struct swapdev *sdp, str } /* patch it back to the vnx */ - task_set(&nbp->vb_task, sw_reg_iodone_internal, nbp, vnx); + nbp->vb_vnx = vnx; + task_set(&nbp->vb_task, sw_reg_iodone_internal, nbp); s = splbio(); if (vnx->vx_error != 0) { @@ -1313,10 +1315,10 @@ sw_reg_iodone(struct buf *bp) } void -sw_reg_iodone_internal(void *xvbp, void *xvnx) +sw_reg_iodone_internal(void *xvbp) { struct vndbuf *vbp = xvbp; - struct vndxfer *vnx = xvnx; + struct vndxfer *vnx = vbp->vb_vnx; struct buf *pbp = vnx->vx_bp; /* parent buffer */ struct swapdev *sdp = vnx->vx_sdp; int resid, s;