mirror of
https://github.com/torvalds/linux.git
synced 2026-10-01 07:54:02 +02:00
scsi: ibmvfc: initialize NVMe channel configuration during driver probe
Initialize the host's NVMe channel-group state during probe. Set up the NVMe channel list head, desired queue count, maximum queue count, protocol identifier, and enablement state alongside the existing SCSI channel-group initialization in ibmvfc_probe(). This prepares the driver with a NVMe/FC channel group that can will be used by later patches for NVMe queue allocation, discovery buffers, target management, and IO submission. Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com> Link: https://patch.msgid.link/20260723000149.969416-9-tyreld@linux.ibm.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
848c70852e
commit
018fc39652
|
|
@ -6347,7 +6347,8 @@ static int ibmvfc_probe(struct vio_dev *vdev, const struct vio_device_id *id)
|
|||
struct device *dev = &vdev->dev;
|
||||
int rc = -ENOMEM;
|
||||
unsigned int online_cpus = num_online_cpus();
|
||||
unsigned int max_scsi_queues = min((unsigned int)IBMVFC_MAX_SCSI_QUEUES, online_cpus);
|
||||
unsigned int max_scsi_queues = min_t(unsigned int, IBMVFC_MAX_SCSI_QUEUES, online_cpus);
|
||||
unsigned int max_nvme_queues = min_t(unsigned int, IBMVFC_MAX_NVME_QUEUES, online_cpus);
|
||||
|
||||
ENTER;
|
||||
shost = scsi_host_alloc(&driver_template, sizeof(*vhost));
|
||||
|
|
@ -6367,6 +6368,7 @@ static int ibmvfc_probe(struct vio_dev *vdev, const struct vio_device_id *id)
|
|||
|
||||
vhost = shost_priv(shost);
|
||||
INIT_LIST_HEAD(&vhost->scsi_scrqs.targets);
|
||||
INIT_LIST_HEAD(&vhost->nvme_scrqs.targets);
|
||||
INIT_LIST_HEAD(&vhost->purge);
|
||||
sprintf(vhost->name, IBMVFC_NAME);
|
||||
vhost->host = shost;
|
||||
|
|
@ -6381,6 +6383,10 @@ static int ibmvfc_probe(struct vio_dev *vdev, const struct vio_device_id *id)
|
|||
vhost->scsi_scrqs.protocol = IBMVFC_PROTO_SCSI;
|
||||
vhost->using_channels = 0;
|
||||
vhost->do_enquiry = 1;
|
||||
vhost->nvme_enabled = mq_enabled ? nvme_enabled : 0;
|
||||
vhost->nvme_scrqs.desired_queues = min(max_nvme_queues, nr_nvme_channels);
|
||||
vhost->nvme_scrqs.max_queues = max_nvme_queues;
|
||||
vhost->nvme_scrqs.protocol = IBMVFC_PROTO_NVME;
|
||||
vhost->scan_timeout = 0;
|
||||
|
||||
strcpy(vhost->partition_name, "UNKNOWN");
|
||||
|
|
|
|||
|
|
@ -970,6 +970,7 @@ struct ibmvfc_host {
|
|||
struct ibmvfc_queue crq;
|
||||
struct ibmvfc_queue async_crq;
|
||||
struct ibmvfc_channels scsi_scrqs;
|
||||
struct ibmvfc_channels nvme_scrqs;
|
||||
struct ibmvfc_npiv_login login_info;
|
||||
union ibmvfc_npiv_login_data *login_buf;
|
||||
dma_addr_t login_buf_dma;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user