> diff --git a/drivers/scsi/snic/snic_main.c b/drivers/scsi/snic/snic_main.c > index 14f4ce665e58..65f50057c66e 100644 > --- a/drivers/scsi/snic/snic_main.c > +++ b/drivers/scsi/snic/snic_main.c > @@ -512,6 +512,9 @@ snic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > max_t(u32, SNIC_MIN_IO_REQ, max_ios)); > > snic->max_tag_id = shost->can_queue; > + /* Reserve one reset command */ > + shost->can_queue--; > + snic->tmf_tag_id = shost->can_queue; So this decrements can_queue before calling scsi_add_host.. > + sc = scsi_host_find_tag(shost, snic->tmf_tag_id); > + if (!sc) { ... but this expects to find a scsi_cmnd there. How is that going to work?