The PCMCIA stub calls host_reset() with a NULL argument, which
is always wrong. So build a dummy scsi command to restore
functionality.

Fixes: 4a56c1c166b6: "scsi: qlogicfas: move bus_reset to host_reset"
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>
Signed-off-by: Hannes Reinecke <h...@suse.com>
---
 drivers/scsi/pcmcia/qlogic_stub.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/pcmcia/qlogic_stub.c 
b/drivers/scsi/pcmcia/qlogic_stub.c
index 0556054764dc..6a3b71e3f351 100644
--- a/drivers/scsi/pcmcia/qlogic_stub.c
+++ b/drivers/scsi/pcmcia/qlogic_stub.c
@@ -254,6 +254,9 @@ static void qlogic_release(struct pcmcia_device *link)
 static int qlogic_resume(struct pcmcia_device *link)
 {
        scsi_info_t *info = link->priv;
+       /* Dummy command for host_reset function */
+       struct scsi_cmnd scmd;
+       struct scsi_device sdev;
 
        pcmcia_enable_device(link);
        if ((info->manf_id == MANFID_MACNICA) ||
@@ -263,8 +266,10 @@ static int qlogic_resume(struct pcmcia_device *link)
                outb(0x24, link->resource[0]->start + 0x9);
                outb(0x04, link->resource[0]->start + 0xd);
        }
-       /* Ugggglllyyyy!!! */
-       qlogicfas408_host_reset(NULL);
+       sdev.host = info->host;
+       scmd->device = &sdev;
+
+       qlogicfas408_host_reset(scmd);
 
        return 0;
 }
-- 
2.12.3

Reply via email to