Re: [PATCH v3] scsi: aacraid: cleanup warning cast-function-type

From: Kees Cook
Date: Mon Mar 09 2020 - 12:17:16 EST


On Mon, Mar 09, 2020 at 10:53:19PM +0700, Phong Tran wrote:
> Make the aacraid driver -Wcast-function-type clean
> Report by: https://github.com/KSPP/linux/issues/20
>
> drivers/scsi/aacraid/aachba.c:813:23:
> warning: cast between incompatible function types from
> 'int (*)(struct scsi_cmnd *)' to 'void (*)(struct scsi_cmnd *)'
> [-Wcast-function-type]
>
> Reviewed-by: Bart van Assche <bvanassche@xxxxxxx>
> Signed-off-by: Phong Tran <tranmanphong@xxxxxxxxx>

Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>

-Kees

> ---
> drivers/scsi/aacraid/aachba.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
> index 33dbc051bff9..ebfb42af67f5 100644
> --- a/drivers/scsi/aacraid/aachba.c
> +++ b/drivers/scsi/aacraid/aachba.c
> @@ -798,6 +798,11 @@ static int aac_probe_container_callback1(struct scsi_cmnd * scsicmd)
> return 0;
> }
>
> +static void aac_probe_container_scsi_done(struct scsi_cmnd *scsi_cmnd)
> +{
> + aac_probe_container_callback1(scsi_cmnd);
> +}
> +
> int aac_probe_container(struct aac_dev *dev, int cid)
> {
> struct scsi_cmnd *scsicmd = kmalloc(sizeof(*scsicmd), GFP_KERNEL);
> @@ -810,7 +815,7 @@ int aac_probe_container(struct aac_dev *dev, int cid)
> return -ENOMEM;
> }
> scsicmd->list.next = NULL;
> - scsicmd->scsi_done = (void (*)(struct scsi_cmnd*))aac_probe_container_callback1;
> + scsicmd->scsi_done = aac_probe_container_scsi_done;
>
> scsicmd->device = scsidev;
> scsidev->sdev_state = 0;
> --
> 2.20.1
>

--
Kees Cook