Re: [PATCH v2] scsi: aacraid: fix -Wcast-function-type

From: John Garry
Date: Mon Mar 09 2020 - 05:23:54 EST


On 08/03/2020 02:01, Phong Tran wrote:
correct usage prototype of callback scsi_cmnd.scsi_done()
Report by: https://github.com/KSPP/linux/issues/20


no harm to add:

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]


Signed-off-by: Phong Tran <tranmanphong@xxxxxxxxx>
---
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..20ca3647d211 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)

supernit: double whitespace

+{
+ 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;