summaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorTyrel Datwyler <tyreld@linux.ibm.com>2023-09-22 00:54:27 +0200
committerMartin K. Petersen <martin.petersen@oracle.com>2023-09-22 04:14:20 +0200
commitb27bce7291e688738c7ed47f300c877c11cef2dc (patch)
treef519b89ca68e5002331ded650a42c4bb381e3141 /drivers/scsi
parentscsi: ibmvfc: Implement channel queue depth and event buffer accounting (diff)
downloadlinux-b27bce7291e688738c7ed47f300c877c11cef2dc.tar.xz
linux-b27bce7291e688738c7ed47f300c877c11cef2dc.zip
scsi: ibmvfc: Limit max hw queues by num_online_cpus()
An LPAR could potentially be configured with a small logical cpu count that is less then the default hardware queue max. Ensure that we don't allocate more hw queues than available cpus. Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com> Link: https://lore.kernel.org/r/20230921225435.3537728-4-tyreld@linux.ibm.com Reviewed-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/ibmvscsi/ibmvfc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c
index 6d66a416c44e..2bfeeb9ace01 100644
--- a/drivers/scsi/ibmvscsi/ibmvfc.c
+++ b/drivers/scsi/ibmvscsi/ibmvfc.c
@@ -6261,7 +6261,8 @@ static int ibmvfc_probe(struct vio_dev *vdev, const struct vio_device_id *id)
struct Scsi_Host *shost;
struct device *dev = &vdev->dev;
int rc = -ENOMEM;
- unsigned int max_scsi_queues = IBMVFC_MAX_SCSI_QUEUES;
+ unsigned int online_cpus = num_online_cpus();
+ unsigned int max_scsi_queues = min((unsigned int)IBMVFC_MAX_SCSI_QUEUES, online_cpus);
ENTER;
shost = scsi_host_alloc(&driver_template, sizeof(*vhost));