From patchwork Mon Mar 3 09:40:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandrakanth Patil X-Patchwork-Id: 13998445 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 2EA501F1300 for ; Mon, 3 Mar 2025 09:44:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740995086; cv=none; b=nyrlRkxlu/u+onaeWO9TZEJr0gV0CZc4ZWpY7y60IfjVdmrg3yebwtwmLSBuGIiRfnviR5BP7jTN9UKFG89qe5nQ1nAl0D3t8Cvu39whrPaB9jDxZNGZzxV6rBnoAYgvQhBz9AG0G0D6RpbGsyypIzjW02vyYZ4kdDdbNoiwLrI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740995086; c=relaxed/simple; bh=HMxKvIVKMDs1Mj6lqvfjloEmMnlqM6yrqCvqXhpgj6Y=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=IlU1zLbJkZIBxdsmrOi3Cg0l/gLcwSnGxtycY4wo4gW61LGxj+aZCO/2HSzhWvBcRPC08Y+3bHTUL3llYtcAEzY5xsMJCw9X/0aPxWt39e215ajzsIqW96RsHYePF7Dqjnkl0ZNeUPjmwc2lTsvnk4HSwo4zxkQv5Z7nX3/DO4s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=hTYIOaul; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="hTYIOaul" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2239c066347so19375505ad.2 for ; Mon, 03 Mar 2025 01:44:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1740995084; x=1741599884; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=S81KDVB6veIZK+7vdcbMEObwbr2ytGt/Wvn0xr/h2VU=; b=hTYIOaulE2uBPlELgAruFKjX3RNSPxej/FSg6vr7kr3+C+2skMTxZZ7teg7wHl9brk OZDPJslLV3CxhzPenFY97aqs06/Cnn0GinOt5Tv//ljJExPliAjlBVU56gdn2mW8iLBe JhOG4p4i8tYJ03qSvRgzCVCjP8ZXdJRD6rfww= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740995084; x=1741599884; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=S81KDVB6veIZK+7vdcbMEObwbr2ytGt/Wvn0xr/h2VU=; b=As5+gorxatTacTw2xwql7nes0KaNwbj3tGFjXQLTU0cgHl9xnicVuuc/qRsj9GHZD/ /kt/ZK9i1enULjvdlBFj2lJHg0V6E7nSYnLA5KvMvY3R1YzpiikKYdM+7uq9mbCTbiBm fS27U8PkJSXrROomTkVSS0evOrmahF7RfXEfqBpj+Q5EirlBhh/MwvGG9vF722L+X7oT AedZ97IJqadS50LMQsrooM4EkLB/c7msb/nt5vdmznAGUZxKWh/prnMFK/cgYuP+SxTI sFbMVCybFxz0KClTCkp5vVmZq0jrWawaBVd6hu7dSde9vs8zMDcRYwK0s1Cw+y6Ql0ci 92Ww== X-Gm-Message-State: AOJu0YwymryEX4S+FLAiSHbFWcTDxZ9tnMHmDygFUs+g8+XAQLC0qPl6 +r8hjwRPwgrvsS8R+muzmTGXbYmppaBfCmH59rO5CBBFYPlXM5hUoR9a5ceBcfyU66juM0yvbW9 GOgv+9dOioTGjsOekvopz+6oFqCjx8bRG9E4pPL/vpfdPE81Ad7hjRbue7w15OdA0IYvZN7cwg/ EC3RnYYLBAqDp4IkzwOup1ITrfiG87Q1/sUkfn/ytRfu81hw== X-Gm-Gg: ASbGncuCiqrnxvLPv7soswhUKbgTcwflqL4dtptICItfGcRM2pThhjmfbO7ruOzgxXP QxRQi39habAoGod+UP6l2Lsv5eRAZpa3rD3PPPv9H65YD+C00UW+L3p8SU+acWxOrZIYmW0f4v3 7k+ROQw44iXulUEfEXhTRorF2lHHMz1SjcU0APQ3ZLP2QY4oKGUCBSzezFr2Xq+YrhNEg4O4yFG Ied0v8L2XRtVBBEoNGcltzfq3BD+Pb90AFCsKnFXj01C358O2NZ9r2Du3STW0d1UDER2E2KiAa3 WnSH0nFm/aj/TrumkRGFz3+XU5Qpu2nHLLyB5Z0m8Rtd2iKzpYYVJtGNOezmCOxmWR2d3vwcC31 +btbtiZ9iR26L4dREsAhC X-Google-Smtp-Source: AGHT+IFv6zC2Em/BkvianPFDI9SVs8q1lGNmNfvu9IRE/aFQaWNNSt4ka2Ko80sn3rVpZeJECDV40g== X-Received: by 2002:a05:6a20:918e:b0:1ee:d9bc:4b7 with SMTP id adf61e73a8af0-1f2f4d125b9mr20390808637.21.1740995083833; Mon, 03 Mar 2025 01:44:43 -0800 (PST) Received: from localhost.localdomain ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-af0fc1dab93sm5323282a12.60.2025.03.03.01.44.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 01:44:43 -0800 (PST) From: Chandrakanth Patil X-Google-Original-From: Chandrakanth Patil To: linux-scsi@vger.kernel.org, martin.petersen@oracle.com Cc: sathya.prakash@broadcom.com, sumit.saxena@broadcom.com, ranjan.kumar@broadcom.com, prayas.patel@broadcom.com, rajsekhar.chundru@broadcom.com, Chandrakanth Patil Subject: [PATCH 1/2] mpi3mr: Task Abort EH Support Date: Mon, 3 Mar 2025 15:10:03 +0530 Message-Id: <20250303094004.93770-1-chandrakanth.patil@broadcom.com> X-Mailer: git-send-email 2.31.1 Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Task Abort support is added to handle SCSI command timeouts, ensuring recovery and cleanup of timed-out commands. This completes the error handling framework for mpi3mr driver, which already includes device reset, target reset, bus reset, and host reset. Signed-off-by: Chandrakanth Patil Signed-off-by: Sathya Prakash Reviewed-by: Himanshu Madhani --- drivers/scsi/mpi3mr/mpi3mr_os.c | 99 +++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/drivers/scsi/mpi3mr/mpi3mr_os.c b/drivers/scsi/mpi3mr/mpi3mr_os.c index e3547ea42613..6a8f3d3a5668 100644 --- a/drivers/scsi/mpi3mr/mpi3mr_os.c +++ b/drivers/scsi/mpi3mr/mpi3mr_os.c @@ -3839,6 +3839,18 @@ int mpi3mr_issue_tm(struct mpi3mr_ioc *mrioc, u8 tm_type, tgtdev = mpi3mr_get_tgtdev_by_handle(mrioc, handle); if (scmd) { + if (tm_type == MPI3_SCSITASKMGMT_TASKTYPE_ABORT_TASK) { + cmd_priv = scsi_cmd_priv(scmd); + if (!cmd_priv) + goto out_unlock; + + struct op_req_qinfo *op_req_q; + + op_req_q = &mrioc->req_qinfo[cmd_priv->req_q_idx]; + tm_req.task_host_tag = cpu_to_le16(cmd_priv->host_tag); + tm_req.task_request_queue_id = + cpu_to_le16(op_req_q->qid); + } sdev = scmd->device; sdev_priv_data = sdev->hostdata; scsi_tgt_priv_data = ((sdev_priv_data) ? @@ -4387,6 +4399,92 @@ static int mpi3mr_eh_dev_reset(struct scsi_cmnd *scmd) return retval; } +/** + * mpi3mr_eh_abort- Abort error handling callback + * @scmd: SCSI command reference + * + * Issue Abort Task Management if the command is in LLD scope + * and verify if it is aborted successfully and return status + * accordingly. + * + * Return: SUCCESS of successful abort the scmd else FAILED + */ +static int mpi3mr_eh_abort(struct scsi_cmnd *scmd) +{ + struct mpi3mr_ioc *mrioc = shost_priv(scmd->device->host); + struct mpi3mr_stgt_priv_data *stgt_priv_data; + struct mpi3mr_sdev_priv_data *sdev_priv_data; + struct scmd_priv *cmd_priv; + u16 dev_handle, timeout = MPI3MR_ABORTTM_TIMEOUT; + u8 resp_code = 0; + int retval = FAILED, ret = 0; + struct request *rq = scsi_cmd_to_rq(scmd); + unsigned long scmd_age_ms = jiffies_to_msecs(jiffies - scmd->jiffies_at_alloc); + unsigned long scmd_age_sec = scmd_age_ms / HZ; + + sdev_printk(KERN_INFO, scmd->device, + "%s: attempting abort task for scmd(%p)\n", mrioc->name, scmd); + + sdev_printk(KERN_INFO, scmd->device, + "%s: scmd(0x%p) is outstanding for %lus %lums, timeout %us, retries %d, allowed %d\n", + mrioc->name, scmd, scmd_age_sec, scmd_age_ms % HZ, rq->timeout / HZ, + scmd->retries, scmd->allowed); + + scsi_print_command(scmd); + + sdev_priv_data = scmd->device->hostdata; + if (!sdev_priv_data || !sdev_priv_data->tgt_priv_data) { + sdev_printk(KERN_INFO, scmd->device, + "%s: device is not available, abort task is not issued\n", + mrioc->name); + retval = SUCCESS; + goto out; + } + + stgt_priv_data = sdev_priv_data->tgt_priv_data; + dev_handle = stgt_priv_data->dev_handle; + + cmd_priv = scsi_cmd_priv(scmd); + if (!cmd_priv->in_lld_scope || + cmd_priv->host_tag == MPI3MR_HOSTTAG_INVALID) { + sdev_printk(KERN_INFO, scmd->device, + "%s: scmd is not in LLD scope, abort task is not issued\n", + mrioc->name); + retval = SUCCESS; + goto out; + } + + if (stgt_priv_data->dev_removed) { + sdev_printk(KERN_INFO, scmd->device, + "%s: device(handle = 0x%04x) is removed, abort task is not issued\n", + mrioc->name, dev_handle); + retval = FAILED; + goto out; + } + + ret = mpi3mr_issue_tm(mrioc, MPI3_SCSITASKMGMT_TASKTYPE_ABORT_TASK, + dev_handle, sdev_priv_data->lun_id, MPI3MR_HOSTTAG_BLK_TMS, + timeout, &mrioc->host_tm_cmds, &resp_code, scmd); + + if (ret) + goto out; + + if (cmd_priv->in_lld_scope) { + sdev_printk(KERN_INFO, scmd->device, + "%s: scmd was not terminated, abort task is failed\n", + mrioc->name); + goto out; + } + + retval = SUCCESS; +out: + sdev_printk(KERN_INFO, scmd->device, + "%s: abort task is %s for scmd(%p)\n", mrioc->name, + ((retval == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); + + return retval; +} + /** * mpi3mr_scan_start - Scan start callback handler * @shost: SCSI host reference @@ -5069,6 +5167,7 @@ static const struct scsi_host_template mpi3mr_driver_template = { .scan_finished = mpi3mr_scan_finished, .scan_start = mpi3mr_scan_start, .change_queue_depth = mpi3mr_change_queue_depth, + .eh_abort_handler = mpi3mr_eh_abort, .eh_device_reset_handler = mpi3mr_eh_dev_reset, .eh_target_reset_handler = mpi3mr_eh_target_reset, .eh_bus_reset_handler = mpi3mr_eh_bus_reset, From patchwork Mon Mar 3 09:40:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandrakanth Patil X-Patchwork-Id: 13998446 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (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 6669E1E5716 for ; Mon, 3 Mar 2025 09:45:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740995134; cv=none; b=Z9ILTRA/CzacYk/HLdyvQe2IO1fWay9Lqd5sPb2jDCSkuLVu+KoF1psaOvaRkWNp8v82U/Qtbouu9F3dmw68wLWKAEKofTz8HQzLl0LZj5U7Y42uJe5juS6fNLU9hmooH+u+Gy+LH+HUvLT4W6xCHlLN5AAPydG+nD4CYp/m6P4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740995134; c=relaxed/simple; bh=GHiLwixb+NtCP+np0bJvdlV0qEiPd+T8tL2Lpw4XBWc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=udR3mgueXAEi4alqdF0uUTIqGq0abm8ZeIGZuNbSI60mW2n4x1lx98NkGjq4HOsbsFzwrkHYQodgeO06SpmVyb5aZuFmeR2o6WdIKXDUbFMzBscdQj9V3lFvPG2smdR/JJVkQI6Y3rqk1x8LXZ3UT6h7/vuXxS+qVzaBvAsaALc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=O5gUNLU3; arc=none smtp.client-ip=209.85.216.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="O5gUNLU3" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-2fea47bcb51so8364034a91.2 for ; Mon, 03 Mar 2025 01:45:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1740995132; x=1741599932; 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=C7H5aQrVxQGc/oa2qtWZcwzvXbBceDWEZ7haAhLo1SE=; b=O5gUNLU3amnYWP9pvv9BGDumg8qZ5XP/7OAMFHwbl1pCBtWtyutemJWJQxj5nGJd57 5OBKkYXLWo7EamNAhADpKKjM71dJATKGvfraeLQ/toA6hoEU4cpwB3IE8EBwxEfujNHi glgKUxMljUAwdNJwC6gwYGLZ/JOldiWUaiIcU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740995132; x=1741599932; 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=C7H5aQrVxQGc/oa2qtWZcwzvXbBceDWEZ7haAhLo1SE=; b=BM01DR4CGHcJEjLo4S4zzUH4eCb+3DopEi7qZP4UWCkXQi4Uzz0uJl4P3m7sKmf9nC mhS2IBRSpN/sKfjrJFrF/fqQWCW/8WbTufGRl0pOT1oCRjHOb1UjCgcimOjZ/MvQP7aQ bo7gZ+/JZMKyVN/fG+Hy66dGMsiK0pW1EVEIOIulGNugj0NyOg9h22TERfyfEDW/XGhZ I/ad8k9szLNPE5rt4KW+kEjB5p6+tDhOqQiEWeOO700rp8S+d1arIoYiEGazh2ltZQlB BrfX6pLPQvaIlfbPkveSTyahbYy82ssI6aabrVasLY6247/Y93BnM/PadtfA/sUYQQJw b55A== X-Gm-Message-State: AOJu0Yyoo5rttZsvn4f0bcw7eOp/lqC2I6oC4UyX1KCAfUb/LcxlQ9gm TNi2D4PPfJV/Ioc9isbjw0QobvmaVSzmbz3Q8rVQzdNMIlq5qWqFtA5ZefeYzZEZaCJhK3rMu/R 26i68LqtMWbmpkl/jSDX2+RsQOMAYFfYxnyjC5H2b1+tsySPNWnfkIiDfX5GNz/zoxcCkXhtpOd eg/E2r1THBZIAikpOuk5VRZFvPgKaxV7l68/+6yXdRaFkfdQ== X-Gm-Gg: ASbGncsVHu6sGh9lJzY9tfrudQaaVOuCwPlBXT/IQDHl9zv6t+Ga45hXOxmBmwZvm2y WqO/KtlRrR6icf7GB2y35W8UKVR/8Q91277dkLB6Y4pUXAa9lXfh+4MAZ6iU1pOweJZ9FfabxEn Jo+hgg/+l5+HSNIZiOlqFR8gPL6JXDoGx6monN1dfQQatYpzhsJyuJysO9IN4xdI/aKF9NQR92O A7+JELWF1C49Q49w2xMMq3f1ZpXVwkRxQs9UN1rxU8kim7FEc8lIcoSip6qiTk2WPdx3NlCvrDv +0u04z7FibIiiXu/Xa23Qm0boKY4+O3c6qah/e4IK/o6KMs60wiQBq22WP8A59APgx92+YqRhFn 9E50/w+/eFltli7lenOIs X-Google-Smtp-Source: AGHT+IGtmKmwIfCgoe9kGlhjVMP3AYWAfropoxTZnLfKQKlNGmzmHsajfFSloWICxPK70JLLvcX0Mg== X-Received: by 2002:a05:6a20:6a11:b0:1ee:dd60:194d with SMTP id adf61e73a8af0-1f2f4c9c8ddmr15769645637.5.1740995131668; Mon, 03 Mar 2025 01:45:31 -0800 (PST) Received: from localhost.localdomain ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-af0fc1dab93sm5323282a12.60.2025.03.03.01.45.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 01:45:31 -0800 (PST) From: Chandrakanth Patil X-Google-Original-From: Chandrakanth Patil To: linux-scsi@vger.kernel.org, martin.petersen@oracle.com Cc: sathya.prakash@broadcom.com, sumit.saxena@broadcom.com, ranjan.kumar@broadcom.com, prayas.patel@broadcom.com, rajsekhar.chundru@broadcom.com, Chandrakanth Patil Subject: [PATCH 2/2] mpi3mr: Update driver version to 8.13.0.6.50 Date: Mon, 3 Mar 2025 15:10:04 +0530 Message-Id: <20250303094004.93770-2-chandrakanth.patil@broadcom.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20250303094004.93770-1-chandrakanth.patil@broadcom.com> References: <20250303094004.93770-1-chandrakanth.patil@broadcom.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Signed-off-by: Chandrakanth Patil Signed-off-by: Sathya Prakash --- drivers/scsi/mpi3mr/mpi3mr.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h index 9bbc7cb98ca3..6c1365603b26 100644 --- a/drivers/scsi/mpi3mr/mpi3mr.h +++ b/drivers/scsi/mpi3mr/mpi3mr.h @@ -56,8 +56,8 @@ extern struct list_head mrioc_list; extern int prot_mask; extern atomic64_t event_counter; -#define MPI3MR_DRIVER_VERSION "8.13.0.5.50" -#define MPI3MR_DRIVER_RELDATE "20-February-2025" +#define MPI3MR_DRIVER_VERSION "8.13.0.6.50" +#define MPI3MR_DRIVER_RELDATE "03-March-2025" #define MPI3MR_DRIVER_NAME "mpi3mr" #define MPI3MR_DRIVER_LICENSE "GPL"