Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3884217pxv; Mon, 19 Jul 2021 11:04:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyUi0nueHaNIPLTvl1+0hDmQ/JdV5EDHZYIteDYCl65XeWy83w2Iw9giZJsVANVV83toia9 X-Received: by 2002:a50:9faf:: with SMTP id c44mr36252941edf.197.1626717876894; Mon, 19 Jul 2021 11:04:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626717876; cv=none; d=google.com; s=arc-20160816; b=lpDGGqTQ92VeOOMtv+euq0QpfmQ1rYjezyGLrw6XXbLeipFsL3VBtUjPvPkmWknn6k W2nogXYOyzxc7Sd7LOyeEHELJNKcRJTjXoTdLDdlIb8FKfdldXQ8WkjMyxeveDEcACA1 qdPJYt9vP4fr3gHWtREt+SsIp5UPXMDRbOGONIeJdZcWXG0A4zFGX/Zl0pMJy5aWAARQ 4MLofjUjNaF8HWLf2oIGv7ZhVDE2gA2XBlnqCANCA2erJ2TKPwEcS25rHe8wpTOgMX45 aU+tr0LiDGEdJRO70QnDJFhYTUEwfsWYKlSwkdvjwNY4BcInS0uJ7wHHTrdOYGoi5a2G D5Uw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=NaaZ4muRw/EVBftOYl23V9MOOWlAynrTjJbaaHS4Cak=; b=uJnc5L5/NrdVBryyGyN12tRchExFZXqhYQqmv3xkxKjDTC1tPfh79rrgtGSKlmWWdk v52mc4F0ig0948h9a4xakkIMmddm4RQafUpQR3ttFJtwTw13h+iBxUczHfekmrW/resf z0tchbLfB096V8jHw+qa4oUrore2t/sz8bdReYDA/KV93Df0aVFijxx2UW0qD1f+t5Pp uQ8RnUy5D6Hdxcg2gKUEKvM/HnZ5gyxeR9YjUnB/wuw/HDIZu+AJqBIaNcD7Z/Wx874l 5/rBKSIt3ujM83DCZRYIAcIqiesHhrOCKrxfA4rCOV2yDmxcRdnEgmOMUPBAYnrLVAtT zI3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="iXX/hz1m"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id kf22si22577409ejc.5.2021.07.19.11.04.13; Mon, 19 Jul 2021 11:04:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="iXX/hz1m"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378151AbhGSRR3 (ORCPT + 99 others); Mon, 19 Jul 2021 13:17:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:34324 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346801AbhGSPk3 (ORCPT ); Mon, 19 Jul 2021 11:40:29 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id BB4A2606A5; Mon, 19 Jul 2021 16:20:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626711629; bh=JzNeu0lRuUQwB0SMFb5Z3uVDuV5W4TxSmVu3j2ozeaE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iXX/hz1mV+os5blj8MIrXm25TM/LnyGVrSj0XMW1oB5YCqLiyK4l/glLSIX6jam+K X0C8z/1X5XPy9WOTc0h1JvXGXkCLIicf0avnfFOaOO710NREBsbS39p3XcDjjogVIX rdnt3mj6BV1i5IlDCK5NbDSrxn7UXzBFJNPUIs2E= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lee Duncan , Mike Christie , "Martin K. Petersen" , Sasha Levin Subject: [PATCH 5.12 072/292] scsi: iscsi: Fix shost->max_id use Date: Mon, 19 Jul 2021 16:52:14 +0200 Message-Id: <20210719144944.893689316@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210719144942.514164272@linuxfoundation.org> References: <20210719144942.514164272@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mike Christie [ Upstream commit bdd4aad7ff92ae39c2e93c415bb6761cb8b584da ] The iscsi offload drivers are setting the shost->max_id to the max number of sessions they support. The problem is that max_id is not the max number of targets but the highest identifier the targets can have. To use it to limit the number of targets we need to set it to max sessions - 1, or we can end up with a session we might not have preallocated resources for. Link: https://lore.kernel.org/r/20210525181821.7617-15-michael.christie@oracle.com Reviewed-by: Lee Duncan Signed-off-by: Mike Christie Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/scsi/be2iscsi/be_main.c | 4 ++-- drivers/scsi/bnx2i/bnx2i_iscsi.c | 2 +- drivers/scsi/cxgbi/libcxgbi.c | 4 ++-- drivers/scsi/qedi/qedi_main.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c index e9658a67d9da..09d2f8351539 100644 --- a/drivers/scsi/be2iscsi/be_main.c +++ b/drivers/scsi/be2iscsi/be_main.c @@ -416,7 +416,7 @@ static struct beiscsi_hba *beiscsi_hba_alloc(struct pci_dev *pcidev) "beiscsi_hba_alloc - iscsi_host_alloc failed\n"); return NULL; } - shost->max_id = BE2_MAX_SESSIONS; + shost->max_id = BE2_MAX_SESSIONS - 1; shost->max_channel = 0; shost->max_cmd_len = BEISCSI_MAX_CMD_LEN; shost->max_lun = BEISCSI_NUM_MAX_LUN; @@ -5318,7 +5318,7 @@ static int beiscsi_enable_port(struct beiscsi_hba *phba) /* Re-enable UER. If different TPE occurs then it is recoverable. */ beiscsi_set_uer_feature(phba); - phba->shost->max_id = phba->params.cxns_per_ctrl; + phba->shost->max_id = phba->params.cxns_per_ctrl - 1; phba->shost->can_queue = phba->params.ios_per_ctrl; ret = beiscsi_init_port(phba); if (ret < 0) { diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c index 2ad85c6b99fd..8cf2f9a7cfdc 100644 --- a/drivers/scsi/bnx2i/bnx2i_iscsi.c +++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c @@ -791,7 +791,7 @@ struct bnx2i_hba *bnx2i_alloc_hba(struct cnic_dev *cnic) return NULL; shost->dma_boundary = cnic->pcidev->dma_mask; shost->transportt = bnx2i_scsi_xport_template; - shost->max_id = ISCSI_MAX_CONNS_PER_HBA; + shost->max_id = ISCSI_MAX_CONNS_PER_HBA - 1; shost->max_channel = 0; shost->max_lun = 512; shost->max_cmd_len = 16; diff --git a/drivers/scsi/cxgbi/libcxgbi.c b/drivers/scsi/cxgbi/libcxgbi.c index f6bcae829c29..506b561670af 100644 --- a/drivers/scsi/cxgbi/libcxgbi.c +++ b/drivers/scsi/cxgbi/libcxgbi.c @@ -337,7 +337,7 @@ void cxgbi_hbas_remove(struct cxgbi_device *cdev) EXPORT_SYMBOL_GPL(cxgbi_hbas_remove); int cxgbi_hbas_add(struct cxgbi_device *cdev, u64 max_lun, - unsigned int max_id, struct scsi_host_template *sht, + unsigned int max_conns, struct scsi_host_template *sht, struct scsi_transport_template *stt) { struct cxgbi_hba *chba; @@ -357,7 +357,7 @@ int cxgbi_hbas_add(struct cxgbi_device *cdev, u64 max_lun, shost->transportt = stt; shost->max_lun = max_lun; - shost->max_id = max_id; + shost->max_id = max_conns - 1; shost->max_channel = 0; shost->max_cmd_len = SCSI_MAX_VARLEN_CDB_SIZE; diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c index 69c5b5ee2169..b33eff9ea80b 100644 --- a/drivers/scsi/qedi/qedi_main.c +++ b/drivers/scsi/qedi/qedi_main.c @@ -642,7 +642,7 @@ static struct qedi_ctx *qedi_host_alloc(struct pci_dev *pdev) goto exit_setup_shost; } - shost->max_id = QEDI_MAX_ISCSI_CONNS_PER_HBA; + shost->max_id = QEDI_MAX_ISCSI_CONNS_PER_HBA - 1; shost->max_channel = 0; shost->max_lun = ~0; shost->max_cmd_len = 16; -- 2.30.2