* [Patch v2 1/4] b43legacy: Fix -Wcast-function-type
2019-11-26 17:55 ` [Patch v2 0/4] wireless: " Phong Tran
@ 2019-11-26 17:55 ` Phong Tran
2019-11-27 5:05 ` Kees Cook
2019-12-18 18:55 ` Kalle Valo
2019-11-26 17:55 ` [Patch v2 2/4] ipw2x00: " Phong Tran
` (2 subsequent siblings)
3 siblings, 2 replies; 19+ messages in thread
From: Phong Tran @ 2019-11-26 17:55 UTC (permalink / raw)
To: Larry.Finger, jakub.kicinski, kvalo
Cc: tranmanphong, Wright.Feng, arend.vanspriel, davem,
emmanuel.grumbach, franky.lin, johannes.berg, keescook,
linux-kernel, linux-wireless, luciano.coelho, netdev, p.figiel,
pieter-paul.giesberts, pkshih, rafal, sara.sharon,
shahar.s.matityahu, yhchuang, yuehaibing
correct usage prototype of callback in tasklet_init().
Report by https://github.com/KSPP/linux/issues/20
Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Phong Tran <tranmanphong@gmail.com>
---
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
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Patch v2 1/4] b43legacy: Fix -Wcast-function-type
2019-11-26 17:55 ` [Patch v2 1/4] b43legacy: " Phong Tran
@ 2019-11-27 5:05 ` Kees Cook
2019-12-18 18:55 ` Kalle Valo
1 sibling, 0 replies; 19+ messages in thread
From: Kees Cook @ 2019-11-27 5:05 UTC (permalink / raw)
To: Phong Tran
Cc: Larry.Finger, jakub.kicinski, kvalo, Wright.Feng,
arend.vanspriel, davem, emmanuel.grumbach, franky.lin,
johannes.berg, linux-kernel, linux-wireless, luciano.coelho,
netdev, p.figiel, pieter-paul.giesberts, pkshih, rafal,
sara.sharon, shahar.s.matityahu, yhchuang, yuehaibing
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@lwfinger.net>
> Signed-off-by: Phong Tran <tranmanphong@gmail.com>
Thanks for sending these!
Reviewed-by: Kees Cook <keescook@chromium.org>
-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
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Patch v2 1/4] b43legacy: Fix -Wcast-function-type
2019-11-26 17:55 ` [Patch v2 1/4] b43legacy: " Phong Tran
2019-11-27 5:05 ` Kees Cook
@ 2019-12-18 18:55 ` Kalle Valo
1 sibling, 0 replies; 19+ messages in thread
From: Kalle Valo @ 2019-12-18 18:55 UTC (permalink / raw)
To: Phong Tran
Cc: Larry.Finger, jakub.kicinski, tranmanphong, Wright.Feng,
arend.vanspriel, davem, emmanuel.grumbach, franky.lin,
johannes.berg, keescook, linux-kernel, linux-wireless,
luciano.coelho, netdev, p.figiel, pieter-paul.giesberts, pkshih,
rafal, sara.sharon, shahar.s.matityahu, yhchuang, yuehaibing
Phong Tran <tranmanphong@gmail.com> wrote:
> correct usage prototype of callback in tasklet_init().
> Report by https://github.com/KSPP/linux/issues/20
>
> Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
> Signed-off-by: Phong Tran <tranmanphong@gmail.com>
> Reviewed-by: Kees Cook <keescook@chromium.org>
4 patches applied to wireless-drivers-next.git, thanks.
475eec112e42 b43legacy: Fix -Wcast-function-type
ebd77feb27e9 ipw2x00: Fix -Wcast-function-type
da5e57e8a6a3 iwlegacy: Fix -Wcast-function-type
cb775c88da5d rtlwifi: rtl_pci: Fix -Wcast-function-type
--
https://patchwork.kernel.org/patch/11262921/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Patch v2 2/4] ipw2x00: Fix -Wcast-function-type
2019-11-26 17:55 ` [Patch v2 0/4] wireless: " Phong Tran
2019-11-26 17:55 ` [Patch v2 1/4] b43legacy: " Phong Tran
@ 2019-11-26 17:55 ` Phong Tran
2019-11-27 5:05 ` Kees Cook
2019-11-26 17:55 ` [Patch v2 3/4] iwlegacy: " Phong Tran
2019-11-26 17:55 ` [Patch v2 4/4] rtlwifi: rtl_pci: " Phong Tran
3 siblings, 1 reply; 19+ messages in thread
From: Phong Tran @ 2019-11-26 17:55 UTC (permalink / raw)
To: Larry.Finger, jakub.kicinski, kvalo
Cc: tranmanphong, Wright.Feng, arend.vanspriel, davem,
emmanuel.grumbach, franky.lin, johannes.berg, keescook,
linux-kernel, linux-wireless, luciano.coelho, netdev, p.figiel,
pieter-paul.giesberts, pkshih, rafal, sara.sharon,
shahar.s.matityahu, yhchuang, yuehaibing
correct usage prototype of callback in tasklet_init().
Report by https://github.com/KSPP/linux/issues/20
Signed-off-by: Phong Tran <tranmanphong@gmail.com>
---
drivers/net/wireless/intel/ipw2x00/ipw2100.c | 7 ++++---
drivers/net/wireless/intel/ipw2x00/ipw2200.c | 5 +++--
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2100.c b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
index 8dfbaff2d1fe..a162146a43a7 100644
--- a/drivers/net/wireless/intel/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
@@ -3206,8 +3206,9 @@ static void ipw2100_tx_send_data(struct ipw2100_priv *priv)
}
}
-static void ipw2100_irq_tasklet(struct ipw2100_priv *priv)
+static void ipw2100_irq_tasklet(unsigned long data)
{
+ struct ipw2100_priv *priv = (struct ipw2100_priv *)data;
struct net_device *dev = priv->net_dev;
unsigned long flags;
u32 inta, tmp;
@@ -6007,7 +6008,7 @@ static void ipw2100_rf_kill(struct work_struct *work)
spin_unlock_irqrestore(&priv->low_lock, flags);
}
-static void ipw2100_irq_tasklet(struct ipw2100_priv *priv);
+static void ipw2100_irq_tasklet(unsigned long data);
static const struct net_device_ops ipw2100_netdev_ops = {
.ndo_open = ipw2100_open,
@@ -6137,7 +6138,7 @@ static struct net_device *ipw2100_alloc_device(struct pci_dev *pci_dev,
INIT_DELAYED_WORK(&priv->rf_kill, ipw2100_rf_kill);
INIT_DELAYED_WORK(&priv->scan_event, ipw2100_scan_event);
- tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long))
+ tasklet_init(&priv->irq_tasklet,
ipw2100_irq_tasklet, (unsigned long)priv);
/* NOTE: We do not start the deferred work for status checks yet */
diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2200.c b/drivers/net/wireless/intel/ipw2x00/ipw2200.c
index ed0f06532d5e..ac5f797fb1ad 100644
--- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c
@@ -1945,8 +1945,9 @@ static void notify_wx_assoc_event(struct ipw_priv *priv)
wireless_send_event(priv->net_dev, SIOCGIWAP, &wrqu, NULL);
}
-static void ipw_irq_tasklet(struct ipw_priv *priv)
+static void ipw_irq_tasklet(unsigned long data)
{
+ struct ipw_priv *priv = (struct ipw_priv *)data;
u32 inta, inta_mask, handled = 0;
unsigned long flags;
int rc = 0;
@@ -10680,7 +10681,7 @@ static int ipw_setup_deferred_work(struct ipw_priv *priv)
INIT_WORK(&priv->qos_activate, ipw_bg_qos_activate);
#endif /* CONFIG_IPW2200_QOS */
- tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long))
+ tasklet_init(&priv->irq_tasklet,
ipw_irq_tasklet, (unsigned long)priv);
return ret;
--
2.20.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Patch v2 2/4] ipw2x00: Fix -Wcast-function-type
2019-11-26 17:55 ` [Patch v2 2/4] ipw2x00: " Phong Tran
@ 2019-11-27 5:05 ` Kees Cook
0 siblings, 0 replies; 19+ messages in thread
From: Kees Cook @ 2019-11-27 5:05 UTC (permalink / raw)
To: Phong Tran
Cc: Larry.Finger, jakub.kicinski, kvalo, Wright.Feng,
arend.vanspriel, davem, emmanuel.grumbach, franky.lin,
johannes.berg, linux-kernel, linux-wireless, luciano.coelho,
netdev, p.figiel, pieter-paul.giesberts, pkshih, rafal,
sara.sharon, shahar.s.matityahu, yhchuang, yuehaibing
On Wed, Nov 27, 2019 at 12:55:27AM +0700, Phong Tran wrote:
> correct usage prototype of callback in tasklet_init().
> Report by https://github.com/KSPP/linux/issues/20
>
> Signed-off-by: Phong Tran <tranmanphong@gmail.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
-Kees
> ---
> drivers/net/wireless/intel/ipw2x00/ipw2100.c | 7 ++++---
> drivers/net/wireless/intel/ipw2x00/ipw2200.c | 5 +++--
> 2 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2100.c b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
> index 8dfbaff2d1fe..a162146a43a7 100644
> --- a/drivers/net/wireless/intel/ipw2x00/ipw2100.c
> +++ b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
> @@ -3206,8 +3206,9 @@ static void ipw2100_tx_send_data(struct ipw2100_priv *priv)
> }
> }
>
> -static void ipw2100_irq_tasklet(struct ipw2100_priv *priv)
> +static void ipw2100_irq_tasklet(unsigned long data)
> {
> + struct ipw2100_priv *priv = (struct ipw2100_priv *)data;
> struct net_device *dev = priv->net_dev;
> unsigned long flags;
> u32 inta, tmp;
> @@ -6007,7 +6008,7 @@ static void ipw2100_rf_kill(struct work_struct *work)
> spin_unlock_irqrestore(&priv->low_lock, flags);
> }
>
> -static void ipw2100_irq_tasklet(struct ipw2100_priv *priv);
> +static void ipw2100_irq_tasklet(unsigned long data);
>
> static const struct net_device_ops ipw2100_netdev_ops = {
> .ndo_open = ipw2100_open,
> @@ -6137,7 +6138,7 @@ static struct net_device *ipw2100_alloc_device(struct pci_dev *pci_dev,
> INIT_DELAYED_WORK(&priv->rf_kill, ipw2100_rf_kill);
> INIT_DELAYED_WORK(&priv->scan_event, ipw2100_scan_event);
>
> - tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long))
> + tasklet_init(&priv->irq_tasklet,
> ipw2100_irq_tasklet, (unsigned long)priv);
>
> /* NOTE: We do not start the deferred work for status checks yet */
> diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2200.c b/drivers/net/wireless/intel/ipw2x00/ipw2200.c
> index ed0f06532d5e..ac5f797fb1ad 100644
> --- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c
> +++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c
> @@ -1945,8 +1945,9 @@ static void notify_wx_assoc_event(struct ipw_priv *priv)
> wireless_send_event(priv->net_dev, SIOCGIWAP, &wrqu, NULL);
> }
>
> -static void ipw_irq_tasklet(struct ipw_priv *priv)
> +static void ipw_irq_tasklet(unsigned long data)
> {
> + struct ipw_priv *priv = (struct ipw_priv *)data;
> u32 inta, inta_mask, handled = 0;
> unsigned long flags;
> int rc = 0;
> @@ -10680,7 +10681,7 @@ static int ipw_setup_deferred_work(struct ipw_priv *priv)
> INIT_WORK(&priv->qos_activate, ipw_bg_qos_activate);
> #endif /* CONFIG_IPW2200_QOS */
>
> - tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long))
> + tasklet_init(&priv->irq_tasklet,
> ipw_irq_tasklet, (unsigned long)priv);
>
> return ret;
> --
> 2.20.1
>
--
Kees Cook
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Patch v2 3/4] iwlegacy: Fix -Wcast-function-type
2019-11-26 17:55 ` [Patch v2 0/4] wireless: " Phong Tran
2019-11-26 17:55 ` [Patch v2 1/4] b43legacy: " Phong Tran
2019-11-26 17:55 ` [Patch v2 2/4] ipw2x00: " Phong Tran
@ 2019-11-26 17:55 ` Phong Tran
2019-11-27 5:05 ` Kees Cook
2019-11-26 17:55 ` [Patch v2 4/4] rtlwifi: rtl_pci: " Phong Tran
3 siblings, 1 reply; 19+ messages in thread
From: Phong Tran @ 2019-11-26 17:55 UTC (permalink / raw)
To: Larry.Finger, jakub.kicinski, kvalo
Cc: tranmanphong, Wright.Feng, arend.vanspriel, davem,
emmanuel.grumbach, franky.lin, johannes.berg, keescook,
linux-kernel, linux-wireless, luciano.coelho, netdev, p.figiel,
pieter-paul.giesberts, pkshih, rafal, sara.sharon,
shahar.s.matityahu, yhchuang, yuehaibing
correct usage prototype of callback in tasklet_init().
Report by https://github.com/KSPP/linux/issues/20
Signed-off-by: Phong Tran <tranmanphong@gmail.com>
---
drivers/net/wireless/intel/iwlegacy/3945-mac.c | 5 +++--
drivers/net/wireless/intel/iwlegacy/4965-mac.c | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/intel/iwlegacy/3945-mac.c b/drivers/net/wireless/intel/iwlegacy/3945-mac.c
index 4fbcc7fba3cc..e2e9c3e8fff5 100644
--- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c
+++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c
@@ -1376,8 +1376,9 @@ il3945_dump_nic_error_log(struct il_priv *il)
}
static void
-il3945_irq_tasklet(struct il_priv *il)
+il3945_irq_tasklet(unsigned long data)
{
+ struct il_priv *il = (struct il_priv *)data;
u32 inta, handled = 0;
u32 inta_fh;
unsigned long flags;
@@ -3403,7 +3404,7 @@ il3945_setup_deferred_work(struct il_priv *il)
timer_setup(&il->watchdog, il_bg_watchdog, 0);
tasklet_init(&il->irq_tasklet,
- (void (*)(unsigned long))il3945_irq_tasklet,
+ il3945_irq_tasklet,
(unsigned long)il);
}
diff --git a/drivers/net/wireless/intel/iwlegacy/4965-mac.c b/drivers/net/wireless/intel/iwlegacy/4965-mac.c
index ffb705b18fb1..5fe17039a337 100644
--- a/drivers/net/wireless/intel/iwlegacy/4965-mac.c
+++ b/drivers/net/wireless/intel/iwlegacy/4965-mac.c
@@ -4344,8 +4344,9 @@ il4965_synchronize_irq(struct il_priv *il)
}
static void
-il4965_irq_tasklet(struct il_priv *il)
+il4965_irq_tasklet(unsigned long data)
{
+ struct il_priv *il = (struct il_priv *)data;
u32 inta, handled = 0;
u32 inta_fh;
unsigned long flags;
@@ -6238,7 +6239,7 @@ il4965_setup_deferred_work(struct il_priv *il)
timer_setup(&il->watchdog, il_bg_watchdog, 0);
tasklet_init(&il->irq_tasklet,
- (void (*)(unsigned long))il4965_irq_tasklet,
+ il4965_irq_tasklet,
(unsigned long)il);
}
--
2.20.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Patch v2 3/4] iwlegacy: Fix -Wcast-function-type
2019-11-26 17:55 ` [Patch v2 3/4] iwlegacy: " Phong Tran
@ 2019-11-27 5:05 ` Kees Cook
0 siblings, 0 replies; 19+ messages in thread
From: Kees Cook @ 2019-11-27 5:05 UTC (permalink / raw)
To: Phong Tran
Cc: Larry.Finger, jakub.kicinski, kvalo, Wright.Feng,
arend.vanspriel, davem, emmanuel.grumbach, franky.lin,
johannes.berg, linux-kernel, linux-wireless, luciano.coelho,
netdev, p.figiel, pieter-paul.giesberts, pkshih, rafal,
sara.sharon, shahar.s.matityahu, yhchuang, yuehaibing
On Wed, Nov 27, 2019 at 12:55:28AM +0700, Phong Tran wrote:
> correct usage prototype of callback in tasklet_init().
> Report by https://github.com/KSPP/linux/issues/20
>
> Signed-off-by: Phong Tran <tranmanphong@gmail.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
-Kees
> ---
> drivers/net/wireless/intel/iwlegacy/3945-mac.c | 5 +++--
> drivers/net/wireless/intel/iwlegacy/4965-mac.c | 5 +++--
> 2 files changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/wireless/intel/iwlegacy/3945-mac.c b/drivers/net/wireless/intel/iwlegacy/3945-mac.c
> index 4fbcc7fba3cc..e2e9c3e8fff5 100644
> --- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c
> +++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c
> @@ -1376,8 +1376,9 @@ il3945_dump_nic_error_log(struct il_priv *il)
> }
>
> static void
> -il3945_irq_tasklet(struct il_priv *il)
> +il3945_irq_tasklet(unsigned long data)
> {
> + struct il_priv *il = (struct il_priv *)data;
> u32 inta, handled = 0;
> u32 inta_fh;
> unsigned long flags;
> @@ -3403,7 +3404,7 @@ il3945_setup_deferred_work(struct il_priv *il)
> timer_setup(&il->watchdog, il_bg_watchdog, 0);
>
> tasklet_init(&il->irq_tasklet,
> - (void (*)(unsigned long))il3945_irq_tasklet,
> + il3945_irq_tasklet,
> (unsigned long)il);
> }
>
> diff --git a/drivers/net/wireless/intel/iwlegacy/4965-mac.c b/drivers/net/wireless/intel/iwlegacy/4965-mac.c
> index ffb705b18fb1..5fe17039a337 100644
> --- a/drivers/net/wireless/intel/iwlegacy/4965-mac.c
> +++ b/drivers/net/wireless/intel/iwlegacy/4965-mac.c
> @@ -4344,8 +4344,9 @@ il4965_synchronize_irq(struct il_priv *il)
> }
>
> static void
> -il4965_irq_tasklet(struct il_priv *il)
> +il4965_irq_tasklet(unsigned long data)
> {
> + struct il_priv *il = (struct il_priv *)data;
> u32 inta, handled = 0;
> u32 inta_fh;
> unsigned long flags;
> @@ -6238,7 +6239,7 @@ il4965_setup_deferred_work(struct il_priv *il)
> timer_setup(&il->watchdog, il_bg_watchdog, 0);
>
> tasklet_init(&il->irq_tasklet,
> - (void (*)(unsigned long))il4965_irq_tasklet,
> + il4965_irq_tasklet,
> (unsigned long)il);
> }
>
> --
> 2.20.1
>
--
Kees Cook
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Patch v2 4/4] rtlwifi: rtl_pci: Fix -Wcast-function-type
2019-11-26 17:55 ` [Patch v2 0/4] wireless: " Phong Tran
` (2 preceding siblings ...)
2019-11-26 17:55 ` [Patch v2 3/4] iwlegacy: " Phong Tran
@ 2019-11-26 17:55 ` Phong Tran
2019-11-27 5:05 ` Kees Cook
3 siblings, 1 reply; 19+ messages in thread
From: Phong Tran @ 2019-11-26 17:55 UTC (permalink / raw)
To: Larry.Finger, jakub.kicinski, kvalo
Cc: tranmanphong, Wright.Feng, arend.vanspriel, davem,
emmanuel.grumbach, franky.lin, johannes.berg, keescook,
linux-kernel, linux-wireless, luciano.coelho, netdev, p.figiel,
pieter-paul.giesberts, pkshih, rafal, sara.sharon,
shahar.s.matityahu, yhchuang, yuehaibing
correct usage prototype of callback in tasklet_init().
Report by https://github.com/KSPP/linux/issues/20
Signed-off-by: Phong Tran <tranmanphong@gmail.com>
---
drivers/net/wireless/realtek/rtlwifi/pci.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c
index f88d26535978..25335bd2873b 100644
--- a/drivers/net/wireless/realtek/rtlwifi/pci.c
+++ b/drivers/net/wireless/realtek/rtlwifi/pci.c
@@ -1061,13 +1061,15 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
return ret;
}
-static void _rtl_pci_irq_tasklet(struct ieee80211_hw *hw)
+static void _rtl_pci_irq_tasklet(unsigned long data)
{
+ struct ieee80211_hw *hw = (struct ieee80211_hw *)data;
_rtl_pci_tx_chk_waitq(hw);
}
-static void _rtl_pci_prepare_bcn_tasklet(struct ieee80211_hw *hw)
+static void _rtl_pci_prepare_bcn_tasklet(unsigned long data)
{
+ struct ieee80211_hw *hw = (struct ieee80211_hw *)data;
struct rtl_priv *rtlpriv = rtl_priv(hw);
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
@@ -1193,10 +1195,10 @@ static void _rtl_pci_init_struct(struct ieee80211_hw *hw,
/*task */
tasklet_init(&rtlpriv->works.irq_tasklet,
- (void (*)(unsigned long))_rtl_pci_irq_tasklet,
+ _rtl_pci_irq_tasklet,
(unsigned long)hw);
tasklet_init(&rtlpriv->works.irq_prepare_bcn_tasklet,
- (void (*)(unsigned long))_rtl_pci_prepare_bcn_tasklet,
+ _rtl_pci_prepare_bcn_tasklet,
(unsigned long)hw);
INIT_WORK(&rtlpriv->works.lps_change_work,
rtl_lps_change_work_callback);
--
2.20.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Patch v2 4/4] rtlwifi: rtl_pci: Fix -Wcast-function-type
2019-11-26 17:55 ` [Patch v2 4/4] rtlwifi: rtl_pci: " Phong Tran
@ 2019-11-27 5:05 ` Kees Cook
0 siblings, 0 replies; 19+ messages in thread
From: Kees Cook @ 2019-11-27 5:05 UTC (permalink / raw)
To: Phong Tran
Cc: Larry.Finger, jakub.kicinski, kvalo, Wright.Feng,
arend.vanspriel, davem, emmanuel.grumbach, franky.lin,
johannes.berg, linux-kernel, linux-wireless, luciano.coelho,
netdev, p.figiel, pieter-paul.giesberts, pkshih, rafal,
sara.sharon, shahar.s.matityahu, yhchuang, yuehaibing
On Wed, Nov 27, 2019 at 12:55:29AM +0700, Phong Tran wrote:
> correct usage prototype of callback in tasklet_init().
> Report by https://github.com/KSPP/linux/issues/20
>
> Signed-off-by: Phong Tran <tranmanphong@gmail.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
-Kees
> ---
> drivers/net/wireless/realtek/rtlwifi/pci.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c
> index f88d26535978..25335bd2873b 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/pci.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/pci.c
> @@ -1061,13 +1061,15 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
> return ret;
> }
>
> -static void _rtl_pci_irq_tasklet(struct ieee80211_hw *hw)
> +static void _rtl_pci_irq_tasklet(unsigned long data)
> {
> + struct ieee80211_hw *hw = (struct ieee80211_hw *)data;
> _rtl_pci_tx_chk_waitq(hw);
> }
>
> -static void _rtl_pci_prepare_bcn_tasklet(struct ieee80211_hw *hw)
> +static void _rtl_pci_prepare_bcn_tasklet(unsigned long data)
> {
> + struct ieee80211_hw *hw = (struct ieee80211_hw *)data;
> struct rtl_priv *rtlpriv = rtl_priv(hw);
> struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
> struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
> @@ -1193,10 +1195,10 @@ static void _rtl_pci_init_struct(struct ieee80211_hw *hw,
>
> /*task */
> tasklet_init(&rtlpriv->works.irq_tasklet,
> - (void (*)(unsigned long))_rtl_pci_irq_tasklet,
> + _rtl_pci_irq_tasklet,
> (unsigned long)hw);
> tasklet_init(&rtlpriv->works.irq_prepare_bcn_tasklet,
> - (void (*)(unsigned long))_rtl_pci_prepare_bcn_tasklet,
> + _rtl_pci_prepare_bcn_tasklet,
> (unsigned long)hw);
> INIT_WORK(&rtlpriv->works.lps_change_work,
> rtl_lps_change_work_callback);
> --
> 2.20.1
>
--
Kees Cook
^ permalink raw reply [flat|nested] 19+ messages in thread