Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp4163416pxv; Mon, 19 Jul 2021 18:58:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzXuLafwpq7ShDAKxTA6KJjSLvhkk0oxhr/Bjg4feAXarGaAqAmGfX5IfM1Wz04QxNBl3fJ X-Received: by 2002:a05:6402:278e:: with SMTP id b14mr17473052ede.277.1626746280032; Mon, 19 Jul 2021 18:58:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626746280; cv=none; d=google.com; s=arc-20160816; b=f4b0tVHnDRMpRI4Rx7rkItVLTZbuuIYc+qKlUFruSxW9doAKgnF9nk+EzbdIV31WMT iMD1APrF+U2Fp2seoVSq6S864R3EH3+XAHQxvVRbDQbXJz6qE9CetfYB64/3un+1pFvo LqWpbaxNwzL/1iF/v+pyxFC7IlZmAscIRggzTkzzHEvSzLqXBVfYi8x9PjmdQXhV1WEb wBJulzl0xCamBCHtzshXaE9LyLAYPnzGWAUh4QPO4cWLkr9AJ5XlJfZMeF9U/NKlWn6O kQLV1TTq5FjFh6OQXFYnmIcW1+jekyO2Y1TfpewtyQNtMcPRLa25X+pTs35+HB30hyIt aAvQ== 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=D52rIGK0f1M8d9kdtpw1+8tvpn3fFYkHAzcpEm780UM=; b=pgtwIQa4/puTtbB2hhbOsXaU1px94BiU19rINWLXGqMI3/cB4SUE6u00hramhBPOcN BTAhUwETiJuSf/vhQZsuv5VymbxjDl8SMtLJsvIRSLvr9geuPUJN0zYjTYxIasoTXRCq 7S2KfDHPql3ZJCLgptgxeIvgKBwpJ0LMBE2ovOeC8oDLJ1I17j1E54bTz0v80hRXYEAP NmWkyUrV3lu8k35Bsbb/6jhRuv1yMQXwdIxPbHITEC8+b5FClpPNaJh4c3Ob3+nna7Kt Y4qWAK2Bu3oOgWddPhNz5DasmvGKz3jdz7n6tw6WhIBESZXtp0Yh5o73fjP7kuRTGMLE haCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="XPz/5+Nf"; 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 n26si22836900edb.197.2021.07.19.18.57.37; Mon, 19 Jul 2021 18:58:00 -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="XPz/5+Nf"; 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 S1346930AbhGSPPV (ORCPT + 99 others); Mon, 19 Jul 2021 11:15:21 -0400 Received: from mail.kernel.org ([198.145.29.99]:41942 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343728AbhGSOsc (ORCPT ); Mon, 19 Jul 2021 10:48:32 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 0D18C61166; Mon, 19 Jul 2021 15:24:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626708272; bh=g+ryF+LNOK8Kx2sxL5CPmweMKyLc0v/TMw/OQ3NSDko=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XPz/5+Nfi3L4ft4B/SFmZCtme8XxG5ab1pVmtORR551NMRnysWRm5MfwE2ZzlO+YC Q2D//KEeguGjpSA3N/N8e1JBNckPAgJwFSjygYIKZ30uF5wUQpvxmpep9xbSqpj4D9 dn9IqB1sQXV1M73ZqAorGButKvLE65j+NgbsQFL0= 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 4.14 246/315] scsi: iscsi: Fix shost->max_id use Date: Mon, 19 Jul 2021 16:52:15 +0200 Message-Id: <20210719144951.508729360@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210719144942.861561397@linuxfoundation.org> References: <20210719144942.861561397@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 b4542e7e2ad5..d7ed1ec02f5e 100644 --- a/drivers/scsi/be2iscsi/be_main.c +++ b/drivers/scsi/be2iscsi/be_main.c @@ -412,7 +412,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; @@ -5303,7 +5303,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 b832bd0ce202..737fc2130e7d 100644 --- a/drivers/scsi/bnx2i/bnx2i_iscsi.c +++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c @@ -793,7 +793,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 0d45658f163a..5bc343af58a1 100644 --- a/drivers/scsi/cxgbi/libcxgbi.c +++ b/drivers/scsi/cxgbi/libcxgbi.c @@ -339,7 +339,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; @@ -359,7 +359,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 = 16; diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c index b0a404d4e676..06958a192a5b 100644 --- a/drivers/scsi/qedi/qedi_main.c +++ b/drivers/scsi/qedi/qedi_main.c @@ -628,7 +628,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