In order to make the entire kernel usable under Clang's Control Flow Integrity protections, function prototype casts need to be avoided because this will trip CFI checks at runtime (i.e. a mismatch between the caller's expected function prototype and the destination function's prototype). Many of these cases can be found with -Wcast-function-type, which found that bnx2x had a bunch of needless (or at least confusing) function casts. This series removes them all. -Kees Kees Cook (5): bnx2x: Drop redundant callback function casts bnx2x: Remove read_status_t function casts bnx2x: Remove config_init_t function casts bnx2x: Remove format_fw_ver_t function casts bnx2x: Remove hw_reset_t function casts .../net/ethernet/broadcom/bnx2x/bnx2x_link.c | 351 +++++++++--------- .../net/ethernet/broadcom/bnx2x/bnx2x_link.h | 6 +- 2 files changed, 171 insertions(+), 186 deletions(-) -- 2.17.1