Arnd Bergmann 3b8415daaa scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn
[ Upstream commit b69600231f751304db914c63b937f7098ed2895c ]

Some callback functions used here take a boolean argument, others take a
status argument. This breaks KCFI type checking, so clang now warns about
the function pointer cast:

drivers/scsi/bfa/bfad_bsg.c:2138:29: error: cast from 'void (*)(void *, enum bfa_status)' to 'bfa_cb_cbfn_t' (aka 'void (*)(void *, enum bfa_boolean)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]

Assuming the code is actually correct here and the callers always match the
argument types of the callee, rework this to replace the explicit cast with
a union of the two pointer types. This does not change the behavior of the
code, so if something is actually broken here, a larger rework may be
necessary.

Fixes: 37ea0558b87a ("[SCSI] bfa: Added support to collect and reset fcport stats")
Fixes: 3ec4f2c8bff2 ("[SCSI] bfa: Added support to configure QOS and collect stats.")
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20240222124433.2046570-1-arnd@kernel.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-03-26 18:22:23 -04:00
..
2021-07-20 16:10:43 +02:00
2021-07-20 16:10:43 +02:00
2019-03-02 11:39:54 -08:00
2019-07-11 15:17:41 -07:00
2019-01-08 21:58:35 -05:00
2019-01-08 21:58:35 -05:00
2019-07-11 15:14:01 -07:00
2019-06-18 19:46:18 -04:00
2019-07-11 15:17:41 -07:00
2021-05-14 09:44:25 +02:00
2019-07-11 15:14:01 -07:00
2022-02-16 12:52:49 +01:00
2019-08-16 11:33:56 -07:00
2019-08-16 11:33:56 -07:00
2019-07-11 15:14:01 -07:00
2019-11-05 23:17:53 -05:00
2019-08-04 21:41:29 -06:00
2021-05-14 09:44:25 +02:00
2022-01-27 09:19:48 +01:00
2022-01-27 09:19:48 +01:00
2023-06-09 10:29:00 +02:00
2021-05-14 09:44:25 +02:00
2019-07-11 15:14:01 -07:00