From patchwork Tue Apr 30 09:11:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongzhi Liu X-Patchwork-Id: 793647 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B38088801; Tue, 30 Apr 2024 09:11:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468318; cv=none; b=HaaMhybK0JepO9Hq0c/BXh94dKFE4DZNRsz7FsGAmr3XgALTkSqg7wCDJOEhTJeRj+zIfWrH734SLpDsGluhF+abHa4w2tcCjjRYZc98Xtwdi19/aP+JGP8vUotOjrkiyNe2VrEKVhQ1Hq1SgPgBBui2yUub45fius7oCJ4VtUU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468318; c=relaxed/simple; bh=STiwPfQ3FgfC68RgCrPFSAvD0HXwevrsh2MHG2P+BxQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=auCcAx+MUYWnRUxhf9/ijDtVPxKByLxgiOhC0AcbfyqJf2pNSlgdxi4es3scTYEvMrVNQWoeb3JFH8NDt2aI3Ac/bmQjGYP0ZHmb6GIysk7AEJvDeNKZ78q+vrOJim1YIkY7MkhNpWMCozHanpq3T0O7nKRx/ZA9rUkeXVxukdQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=E8XKojoH; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="E8XKojoH" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-1ec4dd8525cso2231925ad.3; Tue, 30 Apr 2024 02:11:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714468316; x=1715073116; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gQBoYvZPsCYcuSR3qK1bJQWQDiuW4fONQZ/4zoSfa0A=; b=E8XKojoH6+RoFi5Unum/E7wXNxLCFnxUGOUKtqwXL6hWHEghwshwNHzPnorzEP01ue q/Piv16eSTJpHoY5AmmHxHEGNhM3TPF5Av4ftwNRE+L5xo5Bbfif1bTjNnRdWCBBtJgO ykWR1JBWzjgzVI0dcYEhsn6zWHPEkOi9qwRyLY52hvMhpuj4cdyr8QKsP3KqbbZJPeVe ZlFvEO3SFSbk3kqlOxzVhnDqYN3nZAbKX0PE/MZ/tT7IYU3lxZ0wmN+3IaObX/OqKavL fHnzHvP4bTKhTYFtje/mMteSrvP4oCycnvFGWFMDJdLZkOkCL2nkJBjshhdkv9QGRHk0 Jq2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714468316; x=1715073116; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gQBoYvZPsCYcuSR3qK1bJQWQDiuW4fONQZ/4zoSfa0A=; b=QQSQv3u/WfeA9EC5KrmQ6RioDpwHIfBAq2Nc/MzD7IPKXGvlYP9kWWHusDPG8BwEr4 3UthGvzteAMOmIiAZ2ZXvpi4Oc6xPdJUo0fP1tydXzH2nkFvKIkqwmKzIlgioHFxXF2N lVl0Dl48Jj279Lbt/dOIp6CnMXkOcQ4dAUccreUMUKMW2igjdU/QbyDDqM9zDWdJEcZR cG16NA+9hUMFzTTowy65S9zj84ITi3SusCr02txZ3UQYwH+uK8VOLqfOR3k0AcUAaBWK y1ClUUjm6hFJS1IX5hI2vs06u9W28nN03LiFk4lCMG757e8eUid3h8RXl0jpliZ2Vayy jf7Q== X-Forwarded-Encrypted: i=1; AJvYcCWpzfCmB9Uj5Eiibn5qkII5RpEgKHqGqQ4KgbNciwemD221cgRb4RvsvoifvTkcfdTIRzGSfB2XCOlKXYQ6U4G5tSSpZJSUX2X/jt++lKPhQtNAwiGUcxLjEI0fAjphfhdC0SP33qjn1Q== X-Gm-Message-State: AOJu0Yw2eoFw9b6hekYHq0oa2gvLHlUuGUE/7/UgIpb5+dWb3FuygPfY 5Lvpfu6mryTLA0RFHUYgPfvq2cu/v6F3AxkKbzfzSfcJlh0a+ARA X-Google-Smtp-Source: AGHT+IGdQj3RvvilGjPqOJ+D1q8N7cU48eNqNv6tzSAfI1/lYpJcwu9FZdy2EjkD8mzyUnt6enes0A== X-Received: by 2002:a17:902:d543:b0:1ea:c7a4:7e8 with SMTP id z3-20020a170902d54300b001eac7a407e8mr11288084plf.17.1714468315953; Tue, 30 Apr 2024 02:11:55 -0700 (PDT) Received: from VM-147-239-centos.localdomain ([43.132.141.4]) by smtp.gmail.com with ESMTPSA id kh5-20020a170903064500b001e47bf10536sm21845806plb.69.2024.04.30.02.11.53 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Apr 2024 02:11:55 -0700 (PDT) From: Yongzhi Liu To: skashyap@marvell.com, Markus.Elfring@web.de, njavali@marvell.com, martin.petersen@oracle.com, James.Bottomley@HansenPartnership.com Cc: himanshu.madhani@oracle.com, GR-QLogic-Storage-Upstream@marvell.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, jitxie@tencent.com, huntazhang@tencent.com, Yongzhi Liu Subject: [PATCH V3 1/2] scsi: qla2xxx: Fix double free of fcport in qla24xx_els_dcmd_iocb Date: Tue, 30 Apr 2024 17:11:43 +0800 Message-Id: <20240430091144.10744-1-hyperlyzcs@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <9c711441-6e79-422f-9405-ee271929e77c@web.de> References: <9c711441-6e79-422f-9405-ee271929e77c@web.de> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 When dma_alloc_coherent() or qla2x00_start_sp() return an error, the callback function qla2x00_els_dcmd_sp_free in qla2x00_sp_release will call qla2x00_free_fcport() to kfree fcport. We shouldn't call qla2x00_free_fcport() again in the error handling path. Fix this by cleaning the duplicate qla2x00_free_fcport() calls up. Fixes: 82f522ae0d97 ("scsi: qla2xxx: Fix double free of fcport") Signed-off-by: Yongzhi Liu --- V2 -> V3: Improve patch summary and provide a patch serises with two separate update steps V1 -> V2: Optimisation of exception handling drivers/scsi/qla2xxx/qla_iocb.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c index 0b41e8a06602..faec66bd1951 100644 --- a/drivers/scsi/qla2xxx/qla_iocb.c +++ b/drivers/scsi/qla2xxx/qla_iocb.c @@ -2751,7 +2751,6 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode, if (!elsio->u.els_logo.els_logo_pyld) { /* ref: INIT */ kref_put(&sp->cmd_kref, qla2x00_sp_release); - qla2x00_free_fcport(fcport); return QLA_FUNCTION_FAILED; } @@ -2776,7 +2775,6 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode, if (rval != QLA_SUCCESS) { /* ref: INIT */ kref_put(&sp->cmd_kref, qla2x00_sp_release); - qla2x00_free_fcport(fcport); return QLA_FUNCTION_FAILED; } From patchwork Tue Apr 30 09:11:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongzhi Liu X-Patchwork-Id: 794046 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6B96912837E; Tue, 30 Apr 2024 09:12:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468321; cv=none; b=IAlSu1z9IivQWlvi0nwFlCIGNaLvdIi7hs2I5jxUAd0GvVf7BY3cc8stpUIEku93KhHfUX92zyYYKjjvDDzQHBRSgNpevWCzxXHxbx/Ax2lq0/O88T+abVjp9lDm9yRzeKfJvgoX9KY3OkCehVeSj1a10k5mAj5OLiNMOwAXm0s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468321; c=relaxed/simple; bh=v4A0+zB+bgfLv7B2Shkzwh+aLCop35/3aLd00MNBlW8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=GFRiBGoFqF3/dyQlS6t36PG8G2Dn3aN7rewQsxxCYGXhQdwRtwskXNVPwX/ni+3mV0NlZCCYTsq7Zw5apgFaTUGhQ/yfe0Uyxj20s1k7cZ344uGeTg/q0Y6j5MQU6ozAs0DEZ22C9rJbI5SPnbhbCaJ8G2vCuVll9ebunP7nuKM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ADwR8ruy; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ADwR8ruy" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-1ec5387aed9so1787685ad.3; Tue, 30 Apr 2024 02:12:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714468320; x=1715073120; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0z6Ou6PFGBqj/BLnd55H4THR7b5BFV54qKTEzG/ZWXM=; b=ADwR8ruysKRAct921l4zl8TSu8WVS9RQPpMbfMCPiU7NDPMpx4Bbj7OhRgeJI8qyy5 RFji0JTmH7eLfoIwy1zgyY4XsQD0TYIzQIwDh+T4HMfISlBBuxZCQpFMqXuOwpJGPbuv 2Wqfm1uxJQEN0b0vG0ToAtGXCrlTpfqhO1htIJvXGUVAtkS7LnSGw5Iyh4mj18m3HJhC 185mvJqfwLUijrIapiR66jozS+EnClHJG3OXXpMCmvsR+38rRZ2lntKXl6dZcYeEwm/w HNuk0ztxS165KURiVXpnhAjrlOnf3LfAYeSscLTFpl4d068Pq0MP1+igDf7czUiWAEcK BdbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714468320; x=1715073120; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0z6Ou6PFGBqj/BLnd55H4THR7b5BFV54qKTEzG/ZWXM=; b=wGBk7nc0FX981xF95QcW66LCNkFwMsDYAvXU/IN8sZ0+kBCvixoDqlV4rSp3G2oFQ7 ygo6SAvCoCJ6KObAq3OVu0d1163GBmlbAO0M4wbyxItATNb7B0MSIW7vunbLwPzTz7wC MI8VkFawj1tkj/B2pD3fyHL1joj3i4dw404W+BRAqd0VEHafmFKPOjDDJ1qAp+Q3x1ly cyrWlSKoOKmSAzsLLVEjhtFey4WdJSA1YlhSiNP+X6XZ1gPOeJO6cTRj9VwFMr7xqEVt JIflSCVNMtiRswg+NRKKlfNNAuw+iA2KhQFnyx7XIp8qOQ73mHY3W3O5XFvow9E4+jll JcJQ== X-Forwarded-Encrypted: i=1; AJvYcCWJEFt88INOvsKEapsd1+Uug0HcNoRmdZ1h9ZITmijUMpTAPAkczZobm9ASSPYssOpqyLOrN++S9iJmVQ58G5i84soHZGlJXF7FWu7vK4Rp7YrlTWcJ0t+gB75vxc0WFVNa3z2Al6P25A== X-Gm-Message-State: AOJu0YxCBct3ePM2Ore2IUrq5o6iSBrpYtRDx0c9Dv4ENEJrNPNKwf+B +2UR6q/2/PGkbu+JnKndT+FQJcG5tKvuYsR9GFrNSp9WYRtU37kg X-Google-Smtp-Source: AGHT+IGWffpy9LYMK7EyQUIMaIoclMALmLM4JYJSZshdxPdlw9eSpSoOHwyr7kDPFOZSWNn975Q5pg== X-Received: by 2002:a17:902:d2c8:b0:1eb:1462:1abe with SMTP id n8-20020a170902d2c800b001eb14621abemr14410845plc.69.1714468319983; Tue, 30 Apr 2024 02:11:59 -0700 (PDT) Received: from VM-147-239-centos.localdomain ([43.132.141.4]) by smtp.gmail.com with ESMTPSA id kh5-20020a170903064500b001e47bf10536sm21845806plb.69.2024.04.30.02.11.57 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Apr 2024 02:11:59 -0700 (PDT) From: Yongzhi Liu To: skashyap@marvell.com, Markus.Elfring@web.de, njavali@marvell.com, martin.petersen@oracle.com, James.Bottomley@HansenPartnership.com Cc: himanshu.madhani@oracle.com, GR-QLogic-Storage-Upstream@marvell.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, jitxie@tencent.com, huntazhang@tencent.com, Yongzhi Liu Subject: [PATCH V3 2/2] scsi: qla2xxx: Optimisation of exception handling in qla24xx_els_dcmd_iocb Date: Tue, 30 Apr 2024 17:11:44 +0800 Message-Id: <20240430091144.10744-2-hyperlyzcs@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20240430091144.10744-1-hyperlyzcs@gmail.com> References: <9c711441-6e79-422f-9405-ee271929e77c@web.de> <20240430091144.10744-1-hyperlyzcs@gmail.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To avoid duplicate error handling code a bit more, use more common goto chain in qla24xx_els_dcmd_iocb. Signed-off-by: Yongzhi Liu --- V2 -> V3: Improve patch summary and provide a patch serises with two separate update steps V1 -> V2: Optimisation of exception handling drivers/scsi/qla2xxx/qla_iocb.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c index faec66bd1951..a3a3904cbb47 100644 --- a/drivers/scsi/qla2xxx/qla_iocb.c +++ b/drivers/scsi/qla2xxx/qla_iocb.c @@ -2749,9 +2749,8 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode, GFP_KERNEL); if (!elsio->u.els_logo.els_logo_pyld) { - /* ref: INIT */ - kref_put(&sp->cmd_kref, qla2x00_sp_release); - return QLA_FUNCTION_FAILED; + rval = QLA_FUNCTION_FAILED; + goto put_ref; } memset(&logo_pyld, 0, sizeof(struct els_logo_payload)); @@ -2773,9 +2772,8 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode, rval = qla2x00_start_sp(sp); if (rval != QLA_SUCCESS) { - /* ref: INIT */ - kref_put(&sp->cmd_kref, qla2x00_sp_release); - return QLA_FUNCTION_FAILED; + rval = QLA_FUNCTION_FAILED; + goto put_ref; } ql_dbg(ql_dbg_io, vha, 0x3074, @@ -2784,7 +2782,7 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode, fcport->d_id.b.area, fcport->d_id.b.al_pa); wait_for_completion(&elsio->u.els_logo.comp); - +put_ref: /* ref: INIT */ kref_put(&sp->cmd_kref, qla2x00_sp_release); return rval;