I've got an oops for the following stack:
  ...
  lpfc_send_taskmgmt+0x28a [lpfc]
  lpfc_bus_reset_handler+0x16a [lpfc]
  scsi_try_bus_reset+0x3a
  scsi_ioctl_reset+0x143
  scsi_ioctl+0x18e [sg]

The issue is that lpfc eventually calls blk_mq_unique_tag() as everything is scsi-mq enabled. blk_mq_unique_tag() oops as rq->mq_hctx is NULL. It is NULL as scsi_ioctl_reset built up a dummy request struct without a queue:

        blk_rq_init(NULL, rq);

        scmd = (struct scsi_cmnd *)(rq + 1);
        scsi_init_command(dev, scmd);
        scmd->request = rq;
        scmd->cmnd = scsi_req(rq)->cmd;

What's the best way to approach fixing this ?

-- james

Reply via email to