On Fri, Sep 09, 2022 at 04:05:02PM +0800, Guozihua (Scott) wrote: > On 2022/9/9 3:22, Philipp Hortmann wrote: > > On 9/8/22 03:13, GUO Zihua wrote: > > > 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@xxxxxxxxxx> > > > --- > > > > > > v4: > > > Added Fixes tag. > > > > > > v3: > > > Provide detail on CFI. > > > > > > v2: > > > Fix truncated subject. > > > > > > --- > > > drivers/staging/r8188eu/include/xmit_osdep.h | 2 +- > > > drivers/staging/r8188eu/os_dep/xmit_linux.c | 4 ++-- > > > 2 files changed, 3 insertions(+), 3 deletions(-) > > > > > > diff --git a/drivers/staging/r8188eu/include/xmit_osdep.h > > > b/drivers/staging/r8188eu/include/xmit_osdep.h > > > index 00658681fef9..947242486144 100644 > > > --- a/drivers/staging/r8188eu/include/xmit_osdep.h > > > +++ b/drivers/staging/r8188eu/include/xmit_osdep.h > > > @@ -28,7 +28,7 @@ struct sta_xmit_priv; > > > struct xmit_frame; > > > struct xmit_buf; > > > -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); > > > void rtw_os_xmit_schedule(struct adapter *padapter); > > > diff --git a/drivers/staging/r8188eu/os_dep/xmit_linux.c > > > b/drivers/staging/r8188eu/os_dep/xmit_linux.c > > > index 91a1e4e3219a..0b04010d6d82 100644 > > > --- a/drivers/staging/r8188eu/os_dep/xmit_linux.c > > > +++ b/drivers/staging/r8188eu/os_dep/xmit_linux.c > > > @@ -198,7 +198,7 @@ static int rtw_mlcst2unicst(struct adapter > > > *padapter, struct sk_buff *skb) > > > return true; > > > } > > > -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) > > > { > > > struct adapter *padapter = (struct adapter > > > *)rtw_netdev_priv(pnetdev); > > > struct xmit_priv *pxmitpriv = &padapter->xmitpriv; > > > @@ -233,5 +233,5 @@ int rtw_xmit_entry(struct sk_buff *pkt, struct > > > net_device *pnetdev) > > > exit: > > > - return 0; > > > + return NETDEV_TX_OK; > > > } > > > > Hi, > > > > I cannot apply your patch: > > > > Applying: staging: r8188eu: Fix return type for implementation of > > ndo_start_xmit > > error: drivers/staging/r8188eu/include/xmit_osdep.h: does not exist in > > index > > error: drivers/staging/r8188eu/os_dep/xmit_linux.c: does not exist in index > > Patch failed at 0001 staging: r8188eu: Fix return type for > > implementation of ndo_start_xmit > > > > > > Fetch URL: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git > > > > branch staging-testing > > > > Do you know why? > > > > Bye Philipp > > . > > Hi Philipp, > > It seems that folder drivers/staging/r8188eu no longer presents on the > branch you mentioned. However, they are still there on master branch. As my bot says, always work against either linux-next, or the development branch of the subsystem you are wanting to submit a patch to. Otherwise your patch will be rejected as it can not be applied for obvious reasons. thanks, greg k-h