Skip to contentSkip to conversation

staging: r8188eu: Fix cast between incompatible function type

PATCH Superseded Fabio M. De Francesco 2 participants 2 messages Aug 1, 2021 – Aug 4, 2021 Staging

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 staging: r8188eu: Fix cast between incompatible function type

Fix sparse warnings of casts between incompatible function types from ‘void (*)(void *)’ to ‘void (*)(long unsigned int)’ [-Wcast-function-type].

---
 drivers/staging/r8188eu/hal/rtl8188eu_recv.c | 2 +-
 drivers/staging/r8188eu/hal/rtl8188eu_xmit.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/staging/r8188eu/hal/rtl8188eu_recv.c +1 -1
index 2e3f624d0f22..ef722b4a9ddb 100644
@@ -38,7 +38,7 @@ int	rtl8188eu_init_recv_priv(struct adapter *padapter)
 	struct recv_buf *precvbuf;
 
 	tasklet_init(&precvpriv->recv_tasklet,
-		     (void(*)(unsigned long))rtl8188eu_recv_tasklet,
+		     (void *)rtl8188eu_recv_tasklet,
 		     (unsigned long)padapter);
 
 	/* init recv_buf */
drivers/staging/r8188eu/hal/rtl8188eu_xmit.c +1 -1
index e44a01af7f5c..510df3f3e6bd 100644
@@ -14,7 +14,7 @@ s32	rtl8188eu_init_xmit_priv(struct adapter *adapt)
 	struct xmit_priv	*pxmitpriv = &adapt->xmitpriv;
 
 	tasklet_init(&pxmitpriv->xmit_tasklet,
-		     (void(*)(unsigned long))rtl8188eu_xmit_tasklet,
+		     (void *)rtl8188eu_xmit_tasklet,
 		     (unsigned long)adapt);
 	return _SUCCESS;
 }
Signature · 1 line
2.32.0
#1 lore raw
Quoted 15 lines · Fabio M. De Francesco

Fix sparse warnings of casts between incompatible function types from ‘void (*)(void *)’ to ‘void (*)(long unsigned int)’ [-Wcast-function-type].

---
 drivers/staging/r8188eu/hal/rtl8188eu_recv.c | 2 +-
 drivers/staging/r8188eu/hal/rtl8188eu_xmit.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/staging/r8188eu/hal/rtl8188eu_recv.c +0 -0
index 2e3f624d0f22..ef722b4a9ddb 100644

drivers/staging/r8188eu/hal/rtl8188eu_recv.c int rtl8188eu_init_recv_priv(struct adapter *padapter) · line 41

Quoted 5 lines
drivers/staging/r8188eu/hal/rtl8188eu_recv.c +1 -1
@@ -38,7 +38,7 @@ int	rtl8188eu_init_recv_priv(struct adapter *padapter)
 	struct recv_buf *precvbuf;
 
 	tasklet_init(&precvpriv->recv_tasklet,
-		     (void(*)(unsigned long))rtl8188eu_recv_tasklet,
+		     (void *)rtl8188eu_recv_tasklet,

The correct fix is to change rtl8188eu_recv_tasklet to take an unsigned long instead of a pointer. Then you can remove the casting entirely.

The rule here is that you should try avoid casting things to a void pointer.

regards,
dan carpenter