Re: [PATCH v2] hv_netvsc: Fix netvsc_start_xmit's return type
From: David Miller <davem@davemloft.net>
Date: 2020-05-01 22:25:15
Also in:
linux-hyperv, lkml
From: David Miller <davem@davemloft.net>
Date: 2020-05-01 22:25:15
Also in:
linux-hyperv, lkml
From: Nathan Chancellor <redacted> Date: Tue, 28 Apr 2020 10:54:56 -0700
netvsc_start_xmit is used as a callback function for the ndo_start_xmit function pointer. ndo_start_xmit's return type is netdev_tx_t but netvsc_start_xmit's return type is int. This causes a failure with Control Flow Integrity (CFI), which requires function pointer prototypes and callback function definitions to match exactly. When CFI is in enforcing, the kernel panics. When booting a CFI kernel with WSL 2, the VM is immediately terminated because of this. The splat when CONFIG_CFI_PERMISSIVE is used:
...
Avoid this by using the right return type for netvsc_start_xmit.
Fixes: fceaf24a943d8 ("Staging: hv: add the Hyper-V virtual network driver")
Link: https://github.com/ClangBuiltLinux/linux/issues/1009
Signed-off-by: Nathan Chancellor <redacted>Applied.