On Wed, Nov 27, 2019 at 12:55:26AM +0700, Phong Tran wrote: > correct usage prototype of callback in tasklet_init(). > Report by https://github.com/KSPP/linux/issues/20 > > Tested-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx> > Signed-off-by: Phong Tran <tranmanphong@xxxxxxxxx> Thanks for sending these! Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> -Kees > --- > drivers/net/wireless/broadcom/b43legacy/main.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/broadcom/b43legacy/main.c b/drivers/net/wireless/broadcom/b43legacy/main.c > index 4325e91736eb..8b6b657c4b85 100644 > --- a/drivers/net/wireless/broadcom/b43legacy/main.c > +++ b/drivers/net/wireless/broadcom/b43legacy/main.c > @@ -1275,8 +1275,9 @@ static void handle_irq_ucode_debug(struct b43legacy_wldev *dev) > } > > /* Interrupt handler bottom-half */ > -static void b43legacy_interrupt_tasklet(struct b43legacy_wldev *dev) > +static void b43legacy_interrupt_tasklet(unsigned long data) > { > + struct b43legacy_wldev *dev = (struct b43legacy_wldev *)data; > u32 reason; > u32 dma_reason[ARRAY_SIZE(dev->dma_reason)]; > u32 merged_dma_reason = 0; > @@ -3741,7 +3742,7 @@ static int b43legacy_one_core_attach(struct ssb_device *dev, > b43legacy_set_status(wldev, B43legacy_STAT_UNINIT); > wldev->bad_frames_preempt = modparam_bad_frames_preempt; > tasklet_init(&wldev->isr_tasklet, > - (void (*)(unsigned long))b43legacy_interrupt_tasklet, > + b43legacy_interrupt_tasklet, > (unsigned long)wldev); > if (modparam_pio) > wldev->__using_pio = true; > -- > 2.20.1 > -- Kees Cook