From: Nathan Huckleberry <nhuck@xxxxxxxxxx> [ Upstream commit fcb7c210a24209ea8f6f32593580b57f52382ec2 ] 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 ax88796c_start_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> Acked-by: Lukasz Stelmach <l.stelmach@xxxxxxxxxxx> Link: https://lore.kernel.org/r/20220912194031.808425-1-nhuck@xxxxxxxxxx Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> --- drivers/net/ethernet/asix/ax88796c_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/asix/ax88796c_main.c b/drivers/net/ethernet/asix/ax88796c_main.c index 6ba5b024a7be..f1d610efd69e 100644 --- a/drivers/net/ethernet/asix/ax88796c_main.c +++ b/drivers/net/ethernet/asix/ax88796c_main.c @@ -381,7 +381,7 @@ static int ax88796c_hard_xmit(struct ax88796c_device *ax_local) return 1; } -static int +static netdev_tx_t ax88796c_start_xmit(struct sk_buff *skb, struct net_device *ndev) { struct ax88796c_device *ax_local = to_ax88796c_device(ndev); -- 2.35.1