On Mon, Sep 12, 2022 at 12:50:19PM -0700, Nathan Huckleberry wrote: > The ndo_start_xmit field in net_device_ops is expected to be of type > netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb, struct net_device *dev). > > The mismatched return type breaks forward edge kCFI since the underlying > function definition does not match the function hook definition. > > The return type of emac_dev_xmit should be changed from int to > netdev_tx_t. > > Reported-by: Dan Carpenter <error27@xxxxxxxxx> > Link: https://github.com/ClangBuiltLinux/linux/issues/1703 > Cc: llvm@xxxxxxxxxxxxxxx > Signed-off-by: Nathan Huckleberry <nhuck@xxxxxxxxxx> Reviewed-by: Nathan Chancellor <nathan@xxxxxxxxxx> > --- > drivers/net/ethernet/ti/davinci_emac.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/ti/davinci_emac.c b/drivers/net/ethernet/ti/davinci_emac.c > index 2a3e4e842fa5..e203a5984f03 100644 > --- a/drivers/net/ethernet/ti/davinci_emac.c > +++ b/drivers/net/ethernet/ti/davinci_emac.c > @@ -949,7 +949,7 @@ static void emac_tx_handler(void *token, int len, int status) > * > * Returns success(NETDEV_TX_OK) or error code (typically out of desc's) > */ > -static int emac_dev_xmit(struct sk_buff *skb, struct net_device *ndev) > +static netdev_tx_t emac_dev_xmit(struct sk_buff *skb, struct net_device *ndev) > { > struct device *emac_dev = &ndev->dev; > int ret_code; > -- > 2.37.2.789.g6183377224-goog >