staging: rtl8723bs: Fix return type for implementation of ndo_start_xmit
authorGUO Zihua <guozihua@huawei.com>
Fri, 9 Sep 2022 08:20:48 +0000 (16:20 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Sep 2022 08:37:16 +0000 (10:37 +0200)
CFI (Control Flow Integrity) is a safety feature allowing the system to
detect and react should a potential control flow hijacking occurs. In
particular, the Forward-Edge CFI protects indirect function calls by
ensuring the prototype of function that is actually called matches the
definition of the function hook.

Since Linux now supports CFI, it will be a good idea to fix mismatched
return type for implementation of hooks. Otherwise this would get
cought out by CFI and cause a panic.

Use enums from netdev_tx_t as return value instead. Then change return
type to netdev_tx_t.

Fixes: cf68fffb66d6 ("add support for Clang CFI")
Signed-off-by: GUO Zihua <guozihua@huawei.com>
Link: https://lore.kernel.org/r/20220909082048.14486-3-guozihua@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723bs/include/xmit_osdep.h
drivers/staging/rtl8723bs/os_dep/xmit_linux.c

index 3c1391aef0933c4602ffe6098fc928c0a035b9d0..8704dced593a199f02474364abf025b75e8a8b74 100644 (file)
@@ -26,7 +26,7 @@ struct xmit_frame;
 struct xmit_buf;
 
 extern void _rtw_xmit_entry(struct sk_buff *pkt, struct net_device *pnetdev);
-extern int rtw_xmit_entry(struct sk_buff *pkt, struct net_device *pnetdev);
+extern netdev_tx_t rtw_xmit_entry(struct sk_buff *pkt, struct net_device *pnetdev);
 
 void rtw_os_xmit_schedule(struct adapter *padapter);
 
index 2b268aab4f88d8a055c3f9724aa566f4fdcb25ed..1eeabfffd6d2449c15129709897b46253fee05d8 100644 (file)
@@ -217,10 +217,10 @@ drop_packet:
        dev_kfree_skb_any(pkt);
 }
 
-int rtw_xmit_entry(struct sk_buff *pkt, struct net_device *pnetdev)
+netdev_tx_t rtw_xmit_entry(struct sk_buff *pkt, struct net_device *pnetdev)
 {
        if (pkt)
                _rtw_xmit_entry(pkt, pnetdev);
 
-       return 0;
+       return NETDEV_TX_OK;
 }