From patchwork Fri Apr 16 02:04:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206473 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4CFD3C433ED for ; Fri, 16 Apr 2021 02:05:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 201D561158 for ; Fri, 16 Apr 2021 02:05:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237979AbhDPCFX (ORCPT ); Thu, 15 Apr 2021 22:05:23 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:46176 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235043AbhDPCFW (ORCPT ); Thu, 15 Apr 2021 22:05:22 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G20MCv179756; Fri, 16 Apr 2021 02:04:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=5gI1TOSgO20BBttbU798A2iOzPPtcoT3OI5k1EmJPBY=; b=YmGM3mcM2e/UAkkUepzMZz1ORcVgny8674kJP5XRRVxtxTdMorOFLbPU3NAaiQAsePxP a6UOKcq/PxbwyS+5vlpeMS+sgIzejXemt0trjKjbE8M9u2ha0hDGW5fZ75Q3B0BbupLq gBw+q0TcNMsG5bsNFl4LkNMXNsZLN3fogKAnMZFRL1RV5SjcQUvZnzokOKFC81IDmD1o 8nRTEHxk9AXlp+LMnOVcGMd5lNfZzp426/xYgSafQIRPCFa/FhTuVZFOA8O8/VWlDMNd kJLyhJLi7BOrHhnKbOtmGQ4diKgw9YDiOq4McMIrV+gKbqLJOp9dz4rkoy25O4PRVEtn Ng== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2130.oracle.com with ESMTP id 37u1hbqsbr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:53 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xvXe009178; Fri, 16 Apr 2021 02:04:52 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2107.outbound.protection.outlook.com [104.47.55.107]) by aserp3020.oracle.com with ESMTP id 37unx3snvb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U2j4LdpYArzmd6AfuV/7chaEWSOs29oeO5ChhI0y2pjseHfIN+cNnAjCCJE/FyNwcxNQoU7nyC1nvsWSHwp4NuLR6+PLW/5EavaWNspYh5+aT7BPNYdhRfPOiUsh8rGeHL0Iuol4MJkp0FOsVBhbsDA4fW32XQgAHi4VUdRqO1LD7iukfchfjcU1YFvbENgxDZcO6+YfX6z4Ezbf9Q3ExWPIJ0SyAlEHiLTbXb/Zpw3DXTcFfWEZGWhL481njNGEyaL31j74cKa9Z1feTbv/CTfqMHb2/7N28BTEOlwZ/eawISGnTS0xUjYO+iE+wRorRqhQIfdEo9+SpF4kml6LFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5gI1TOSgO20BBttbU798A2iOzPPtcoT3OI5k1EmJPBY=; b=DzxFV304jKPUhpy3tmPI7HpvM5edZed9wIZi6n1L+FNDIoardVZbDQBE1ehf+I/Ec2i5veAUcF81qilrQicc61dlUEsDqwxAjt4ZGu7q3xiUL/WiPXMi6PzlwX436jfoVdJXRBJMf/aGTg0Sbv9rYn0sVY1nFdKAd20vUxmZAJUiLKsWMXaXnkg7f/yZp1GYYn93frFKoam9t9jqmX5/O5cxf7qybd5lwdCwVHxoQEphOvARWakopfj7HB7NNQBMFIDK7kvU27db22CVKq22TyU3CdCy2hNULBVo+KzYQgMb1/cVPmkcvQ/K5edyJXadVfIVV7a7rzdrdRnW7G9/5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5gI1TOSgO20BBttbU798A2iOzPPtcoT3OI5k1EmJPBY=; b=Vy/JM7v4C4p5kJzTqhxmFM6WDJo7fNKrUfXcOMj3cpYRhOTzwSgVKXl6pRdBSpNeAuS1Yhxyk96fqfmqmcBgj+CKZW0ISIXQW11EKviHIlGjo16tR6WmpOF8r0dF1W2/bFSyvUpR5//IHlmbBhB8zM+i1kuKklFLm86vCvttLcs= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB3318.namprd10.prod.outlook.com (2603:10b6:a03:15d::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.22; Fri, 16 Apr 2021 02:04:50 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:04:50 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 01/17] scsi: iscsi: add task completion helper Date: Thu, 15 Apr 2021 21:04:24 -0500 Message-Id: <20210416020440.259271-2-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:04:49 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e4ed9dbe-701e-463f-f977-08d9007c0497 X-MS-TrafficTypeDiagnostic: BYAPR10MB3318: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1468; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OWeC1JtDUlNNfse5GrQSEVS1taYRUmwNteHZUe6gjBp9F0ZG++5UlEeqKa7YMhbeMRu1cKMKa3/lfb5FofaSoSGQLLDNPmdxr50VXcAF3BSY3VHJOismNH6+0ui6MoAGoVP2kESzyhmrSVEG1+Y7TTKpWypuzLOqnmHany+R5SpDz/U7rbn5EhX5451jQySYPPEGVUl7c4TgKs2DPdSf7jblBS00f+rjOwLxm7kP9FZQ1RZ+mlyx3XxuOF2T05Crjh12EM9Wgo7s7MsvCZ7cS1joDMqwCZ+EUXfII2YrNYDoKrpHuLlufbmtJrUaWiyZDadUSCkkW28tTCuuHQlj6LMD/z1vcsv+L0spxdJbQVOAxLhPU8B3ReuYNnsDnh5o4a8hJEKVCIhnUHJQR6pu15ZvJ9PjEQPpT0SjtniJ8MAiZUiqQ4ieLTDovwPke9Mi6NRFnKAd6botHy+43Rok2GsM28B9gjmAtGkaX8ZHM1kjR7fbJ+h7fJUy/btvTy9/a1ZOQiyHBS8VgpYZBVBZh3IaeJRcPRdzq2kFvIP8kWjxtAdwVhOKD/po7D/HcCCdzNuuhxa0nUJcb6eXv0+izi+ZKEYlE89Gq1ujj86eClDeuKQpw4ciBu9lPylFfrgTxeVguCELxg+5XbGkj0P5tPuG9gJsv2M3c3/R6uGBexzfeSVNzvgRgG3aoqlwFH17 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(136003)(366004)(396003)(38350700002)(38100700002)(52116002)(8936002)(6666004)(2906002)(107886003)(26005)(186003)(1076003)(4744005)(36756003)(6486002)(6512007)(6506007)(8676002)(86362001)(69590400012)(83380400001)(508600001)(5660300002)(956004)(316002)(66476007)(66946007)(2616005)(4326008)(66556008)(16526019);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 4ayISVFQHLsdW+bbzqlzDIIzNxAbJywWdHsLaZIqeiHMYmhzjfWJTTPUKEmepyhb4xH/bFSUGZhKwIxUzihbCu0OvpsO01i1hkUcryg3+iOdSE7Ytt/QjCYq+ovIkef4v4mgzfeCbWQXDtvPs9d6JQ+JWZv7qURv8/JC4aBEJ76Gqt8YdlAOIVSyjQXedYCEqJ39OIRJuzVpVOILDK3DOFVrOVfMwHY/uXoUmIlugINtHB8cQdUFqDFqx4MletIfEwc5MNqP3K5D91Qo/g3I/RTLXIengRx4AE9zRZ13l/YdtV/HejGU+wkmNoSO89aDgJQ6NCBUE+qRVktFgxtWixmE502Xkr0DTlQEIdEZXGL5FhmGDsWRcQjkY7mXljHob7ounS2me/jvv95s1n5nWLIuv79hq8ie9n9qCGLjc/jGsYjWDgBjhb5ytN/3pCGb0xNu8T85WZsNUcCIsZ/Phm5NVD7OX450qzi1PEVV0DkLO0j7XnND60VnoUoNpOAs2073tBem7ldBz9hLRkXr9nIReyflJ+hFDmsyxfv6dGkbvFKOBsJudCgSBIo9ytK8G1DRlVP5rTGXdM23H3m7+0fr68icVCO1U8JvORf9NHKCblzLTWZ1A7ibLk384s4B5+7joANhPlfmA+kvs9TpywWqkeAje2PJKQsgeSjMQS0oER8gtSDQCsv4vyawps3ESlEiyunMbOoX7WbfToCO4e7b98g9+A8Q78wjUkUNI5p7JlLibn3aCKI872N72p+/WQf3hL9qQt7VpcuvSQhCEKiGl7dvYdL3nLsMC0EnK86N129IqLZIuZzl6MGZ6w5xCGpE2P/j+SH/6iWvfYGAEwfZOaUBmAB4OpWzkAVk1VpIZ3uzD78hqDO5FBQoU6QjeeoDP+Is+lwR1ukfeG8lNtwQSiwje29WgQVtEDW8F8XHEUlaJ4WA84O3UvFZrC3k+eDzjIbukJqQR/4ToOnc6QmLMrh4CpRbFQbcBAXPuDDPbi3eOUHTiZLACudtb0QC2+wdjagx5MSQ7FI/TBMt5KodQ7y1AsWcAX5DekwkXZT0G/XMQFrIbzdbCSB5b3kkby7RKVJKZGKIfrrUMy+P4lCyOkGvJI5gTHVa/Ys+VY8L3IByHmXHrQKF02f/XkzsBcZf43q6s/F628T6s9vThojTPVasOdTohy9i9+FlmmpoJYAU2qFlaTlKeEK4rPW3HvFHrTDPQY3OVmLhhmfRqC+Ql1kvULHGljR1Uyo4ajgc/iQVgCJwm4C+owT1JhHKRDKkn6jPumCW9RFtxJMe4QnVLZ4OroqRSVzPjQj2qPwyfmc5pWF3TvN4KeNxMd1J X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e4ed9dbe-701e-463f-f977-08d9007c0497 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:04:50.5657 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zgUYwGqA6ILb484Sg70BpD4OS59EEdI8phqTVq+DfWd8th0Bf4VTUu+4iL/xZceznXFqF0YZ/SYxG5H2gHfStCZf4kXSOzNOji8hgKobYlk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3318 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-GUID: f7x14UWP81zPuwRi__H4saospDLlSBlW X-Proofpoint-ORIG-GUID: f7x14UWP81zPuwRi__H4saospDLlSBlW X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 priorityscore=1501 clxscore=1015 adultscore=0 mlxlogscore=999 impostorscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 phishscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org This adds a helper to detect if a cmd has completed but not yet freed. Signed-off-by: Mike Christie Reviewed-by: Lee Duncan --- include/scsi/libiscsi.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index 02f966e9358f..8c6d358a8abc 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h @@ -145,6 +145,13 @@ static inline void* iscsi_next_hdr(struct iscsi_task *task) return (void*)task->hdr + task->hdr_len; } +static inline bool iscsi_task_is_completed(struct iscsi_task *task) +{ + return task->state == ISCSI_TASK_COMPLETED || + task->state == ISCSI_TASK_ABRT_TMF || + task->state == ISCSI_TASK_ABRT_SESS_RECOV; +} + /* Connection's states */ enum { ISCSI_CONN_INITIAL_STAGE, From patchwork Fri Apr 16 02:04:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206477 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 081ABC43462 for ; Fri, 16 Apr 2021 02:05:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D699D61158 for ; Fri, 16 Apr 2021 02:05:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237992AbhDPCFZ (ORCPT ); Thu, 15 Apr 2021 22:05:25 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:36132 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237984AbhDPCFY (ORCPT ); Thu, 15 Apr 2021 22:05:24 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xwdc172162; Fri, 16 Apr 2021 02:04:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=Q8A2WbSbpHpNPX18bxDHQyE7Ssqo3u/ZDKWnzfbqhKc=; b=RtUoYz/VPQGg8kKpJ/576VqiXvVTOCGkKmwqEPEqIBoEoXAxGbKdqsapr+4ZM0DUtWSY RoJbT5fZM6M99YM92sr+Fc6CPyJs3ZzV2ubObABHBbH3JZgwhTYNE8DT8FlwXLdKlMaL yy1VKRZIDcR5BoOGrawuVTF835hEsrN3PFHeaXHc9c/lDP1oc3njnhBWQXqjEPEvdYdq OsqvK8RRTlZQuxzC4O2CLgjW7nKwne48PN3n+TLzjrECyc23ay4batm6rw32bJfccx3K hpsuBVlBXqzXg5NVRFfEPO58oO2TSRkx1wzc4o0N31aDE7fTTsRZ/PqVQwXMyYLMvC+f KA== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2120.oracle.com with ESMTP id 37u4nnqmff-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:54 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G20eZF001033; Fri, 16 Apr 2021 02:04:53 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2173.outbound.protection.outlook.com [104.47.56.173]) by aserp3030.oracle.com with ESMTP id 37unktfb62-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=di9yFx4lSnl8goG3pqNxmUzXjVPdkPxuGd7W7xv5yd9wP3VvC131gPwwBOkH3BW0W0ppZRdc4DfQXqI/179RnvkxgZs9fXD+6ixDnZGRI9E2NH3EQQAjh+doK8Dm17ECp7kfA5fYzK3jQH1c+n3OStlIGlC8XT/l6tfAQCdGsCEVOU+kTtL/dxkf+9xw6ifH5aeP7sO2P07a3Q6zxz67NwiRvRgk+b75Pl9nbxs2LmKM0H9mTk22UoUhpsZekn/n3VxmzZdy224eJM0yMt04T4Faa8z+7V8fg4lLi5eOjH9F5So/bPS+qpEAEwUutfofUcjIF2X1L+7np2Sg+ec1tA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Q8A2WbSbpHpNPX18bxDHQyE7Ssqo3u/ZDKWnzfbqhKc=; b=Avc9Mv+EZsjUo+lqUBkMYvWQWof+Z7BzIYd2QXgTm5KO8jWa5N7yYUycUIegl8r7nr+oQJ41NiSQcOI3vCB98RY5LiwB6HKei35keJo8EPFKi9w7BLkFMAzGXbXsAzgZ1w+4CkAQGj2aHv/8031wg9i9CRv3XyGCtOvY9KzI9BuG7CXDDKea26KQoTGfgmeRPiYZsFhK8yJHjf60RxkleHck14Jraz4c4DRMeWYLCIWqyVlhSKVqGd1uMcsCOuAbv/DtBRqszq+BZI4U5a8pYrZVHD9JoGxPw8g40G2YUusP0x5A0RDy5EzotvrZrdI2uYyhW/8GSp3MQMg9ltRvbQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Q8A2WbSbpHpNPX18bxDHQyE7Ssqo3u/ZDKWnzfbqhKc=; b=qwy1+BTz+xdh9jRbROT3t8hT5M77KyVLdcTGXxhbymxBz2jhUFhvl3rIF9HqTPTZ28bsVEgztAM1AUZ+n3mRZ7rOAMuPCzfW7OR+Zq9pFCSHdHcuELbx8VOVYaEDCh4TcdGLjmHTt/k+PAES6S18Dawc8b0JcNNxvGBFQ9t20bQ= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB2421.namprd10.prod.outlook.com (2603:10b6:a02:b3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Fri, 16 Apr 2021 02:04:51 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:04:51 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 02/17] scsi: iscsi: sync libiscsi and driver reset cleanup Date: Thu, 15 Apr 2021 21:04:25 -0500 Message-Id: <20210416020440.259271-3-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:04:50 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0118303c-1a44-4942-b577-08d9007c0541 X-MS-TrafficTypeDiagnostic: BYAPR10MB2421: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8QD+tfNgWuWSW/RPlKKhOnQr6JFe74ei20qB39EkIGU1a1oA0tT9H52xj+/l4egmlGIOmbpktuDyLEhRgW/U1bUqrPzfe8u1ec+wWsEWtJi27PGURsTjIPywbT1ASw518+AjXtk3DKa2Er5mmzt2JUwM0+fH+FfPLXpDlVfv0zNtWitx+FYRyV0pal+d1CaJP1xNPamTvU+LNi6QQjpoZQ/FVHTnmIJvCXxsZgkbERVeIfQ5fQ600OWHkYE5+BVf/Q4UVDFc5kktK0wmFKvNsYaC74dZbAby3sa2YDGZ3TXR8W0sMdo/7KciocxuLHqJOpjQRw1MVsIhLMV4GE1IBCc4AT1lBelYZgeKBZc89mhldBrIhfVG//l9yZPOEWmAffvqnb3BKv1YwET7ys1zM6cmHeaELgbI2EgSQuiOnaelxUHCVa27hAEnEAKr+kNF7uQ09ZUBA2G71rPHwdofQ+ubDmzSanCWJU5zprtPQvFl32s14WBeKeTKUmcWOzpU6IzaHKaUQiTcL04jWMgIZxul6UiEmpMsoxaB5OWX5JRxWJBd/g5SLMtg0eLMg660yv17JXYI6dXCRzCXAj7hfFrEYbYP7Cuy0ulIhfmfk/7vpqums0CUHp9UpQIO4goN85d6UeZQzuTt1rpgmU/aPnkD0glTSWEabu+46gfYIEtJLTlhVp5tAsglALxHv0uL X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(366004)(136003)(396003)(186003)(69590400012)(16526019)(5660300002)(1076003)(6666004)(36756003)(26005)(107886003)(83380400001)(4326008)(52116002)(2906002)(6486002)(2616005)(6512007)(956004)(8936002)(8676002)(316002)(478600001)(66556008)(38350700002)(66476007)(6506007)(38100700002)(86362001)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 3NDzssDymi/fBw9YaTuFDPmJ/jhaq0boxaZF2My9ad7uRQysfYAnvP8LFfFVFvNcT8hoy4WUoofInXbn2AE/zZxZRhaiFVEC+xZukjjhbM9VZHPhW83IcioHip4C8554bveFtI6+daQNEY54jHh8dwXmGKvzNKLlTR8mOoTgbeA0Ubj4ZPB0scnYiyNv7R+c4yllMaDSafyGV5LZMMnjfWQAJKdlPqa5Q1h81slY2reEksplU7EPvv+meGmPCzrb4zCgcdh5iPZnIQY9CgN3GR8seiRoRpgIpOxOC8a6JEyKs9E+FVcp/vjtxhcsFbpCAHbbXoir46+dPCd6k++y9NvMi2JBie446haegDTU0pc5F4r7YUa+L5x8vpb6bI+JkWGp1E3AcFTG4B8AU0+oSebvfriadXF4m4oiSaMwERguKUleIpIVzDdE3oWpMIrP2NgG4oT6pCMRM9jjADgKAVBlqGqTuBVXzllSOc49aWQzt3CJu1ylI3cxX0/tDL8pD7alMYtyD9q2YJZVe4XFF9TWYCnDpaB35m5R5ZAlrc80jOGN4w0/e0lwGZI+qsxKWM8wO0DQZZtMNpooxurlkz8tz18BPV19FWfqCsEQOII9u6nvggT30UsCKP/POLVln2iT6owKBvGTpL9Zgq0cD7lLcBUrsUQWc0Pwx/6tLBVj8Yr1mLte75wtc1gul9/sG+cMLKkAzj6c7CWas17GMWfH0CGLLiOjpf+kIJySiLK6E32NoaAhJRh16JpnkmQq2f5ikJyAfoQXDf9FgCLtkcqrlGUcPfPHms0Uz73SgmOgofZ3D5cXUF3Sfr00hK8mK3DVEoiJuZi9H1UzW3Cvdc2iHTScNyBpiqHrb4HZgnZy9mp/2sE5bEOGj1t0S2etYYknKkBmJT3XGiBMDA98AFE2r4KGbIlCLWrMsEqTxYKFs/67DsJ3/O1xzhFk7vRxIBuM8VGqdhZgxaHpYSvSkjbxE6ihe5J6bWjHOiikLxnM6LwGCiruJvkKBES3HqZN/fm+LfDvfZlVnw4mNRzI0fDEBdWUSEOPv7R5jsPUc1OYEmyOSITl8lGImEF3RZtcRWGAwN1xeE2TjyYB8ptIRGoPZFm7KZw4jYzEt0a0giqp+QUMaOJDs0LHWmWBTHNCZ+flRepXacS7Ng+2iNbyWkGzsrUG2NUg3IjYE8khJfta8twwovjdYy1NNm3whOaWnBeH65ruGm3+y51U8wVMQz0O8zu1n7VVvghzo6fpwOVoF55hqC7RsQ56cO7Cn1Mk33QArl0YWVCXkyhETGRcYp4Azqlq9yw7lq4thVlhhdvIK+69Kl3yjVJKW7RFf6CO X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0118303c-1a44-4942-b577-08d9007c0541 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:04:51.5362 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JQDxrpv3LeXOzy3mQZIbqP2mOBdJWcMzJFFen+OSBTgUdluOcn2gQ1wBIgdNHjw11d+U3rJd/ss2L09bOAPShul4MT6+yqGdNocbDLxOnEo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2421 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 adultscore=0 phishscore=0 malwarescore=0 mlxscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-ORIG-GUID: WRg1M0RtJC1xxooOpBe2qNyfPDst1Kvb X-Proofpoint-GUID: WRg1M0RtJC1xxooOpBe2qNyfPDst1Kvb X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 mlxlogscore=999 priorityscore=1501 clxscore=1015 lowpriorityscore=0 spamscore=0 impostorscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org If we are handling a sg io reset there is a small window where cmds can sneak into iscsi_queuecommand even though libiscsi has sent a TMF to the driver. This does seems to not be a problem for normal drivers because they know exactly what was sent to the FW. For libiscsi this is a problem because it knows what it has sent to the driver but not what the driver sent to the FW. When we go to cleanup the running tasks, libiscsi might cleanup the sneaky cmd but the driver/FQ may not have seen the sneaky cmd and it's left running in FW. This has libiscsi just stop queueing cmds when it sends the TMF down to the driver. Both then know they see the same set of cmds. Signed-off-by: Mike Christie --- drivers/scsi/libiscsi.c | 104 +++++++++++++++++++++++++++------------- 1 file changed, 72 insertions(+), 32 deletions(-) diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index 4834219497ee..aa5ceaffc697 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c @@ -1669,29 +1669,11 @@ enum { FAILURE_SESSION_NOT_READY, }; -int iscsi_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc) +static bool iscsi_eh_running(struct iscsi_conn *conn, struct scsi_cmnd *sc, + int *reason) { - struct iscsi_cls_session *cls_session; - struct iscsi_host *ihost; - int reason = 0; - struct iscsi_session *session; - struct iscsi_conn *conn; - struct iscsi_task *task = NULL; - - sc->result = 0; - sc->SCp.ptr = NULL; - - ihost = shost_priv(host); - - cls_session = starget_to_session(scsi_target(sc->device)); - session = cls_session->dd_data; - spin_lock_bh(&session->frwd_lock); - - reason = iscsi_session_chkready(cls_session); - if (reason) { - sc->result = reason; - goto fault; - } + struct iscsi_session *session = conn->session; + struct iscsi_tm *tmf; if (session->state != ISCSI_STATE_LOGGED_IN) { /* @@ -1707,31 +1689,92 @@ int iscsi_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc) * state is bad, allowing completion to happen */ if (unlikely(system_state != SYSTEM_RUNNING)) { - reason = FAILURE_SESSION_FAILED; + *reason = FAILURE_SESSION_FAILED; sc->result = DID_NO_CONNECT << 16; break; } fallthrough; case ISCSI_STATE_IN_RECOVERY: - reason = FAILURE_SESSION_IN_RECOVERY; + *reason = FAILURE_SESSION_IN_RECOVERY; sc->result = DID_IMM_RETRY << 16; break; case ISCSI_STATE_LOGGING_OUT: - reason = FAILURE_SESSION_LOGGING_OUT; + *reason = FAILURE_SESSION_LOGGING_OUT; sc->result = DID_IMM_RETRY << 16; break; case ISCSI_STATE_RECOVERY_FAILED: - reason = FAILURE_SESSION_RECOVERY_TIMEOUT; + *reason = FAILURE_SESSION_RECOVERY_TIMEOUT; sc->result = DID_TRANSPORT_FAILFAST << 16; break; case ISCSI_STATE_TERMINATE: - reason = FAILURE_SESSION_TERMINATE; + *reason = FAILURE_SESSION_TERMINATE; sc->result = DID_NO_CONNECT << 16; break; default: - reason = FAILURE_SESSION_FREED; + *reason = FAILURE_SESSION_FREED; sc->result = DID_NO_CONNECT << 16; } + goto eh_running; + } + + if (test_bit(ISCSI_SUSPEND_BIT, &conn->suspend_tx)) { + *reason = FAILURE_SESSION_IN_RECOVERY; + sc->result = DID_REQUEUE << 16; + goto eh_running; + } + + /* + * For sg resets make sure libiscsi, the drivers and their fw see the + * same cmds. Once we get a TMF that can affect multiple cmds stop + * queueing. + */ + if (conn->tmf_state != TMF_INITIAL) { + tmf = &conn->tmhdr; + + switch (ISCSI_TM_FUNC_VALUE(tmf)) { + case ISCSI_TM_FUNC_LOGICAL_UNIT_RESET: + if (sc->device->lun != scsilun_to_int(&tmf->lun)) + break; + + ISCSI_DBG_EH(conn->session, + "Requeue cmd sent during LU RESET processing.\n"); + sc->result = DID_REQUEUE << 16; + goto eh_running; + case ISCSI_TM_FUNC_TARGET_WARM_RESET: + ISCSI_DBG_EH(conn->session, + "Requeue cmd sent during TARGET RESET processing.\n"); + sc->result = DID_REQUEUE << 16; + goto eh_running; + } + } + + return false; + +eh_running: + return true; +} + +int iscsi_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc) +{ + struct iscsi_cls_session *cls_session; + struct iscsi_host *ihost; + int reason = 0; + struct iscsi_session *session; + struct iscsi_conn *conn; + struct iscsi_task *task = NULL; + + sc->result = 0; + sc->SCp.ptr = NULL; + + ihost = shost_priv(host); + + cls_session = starget_to_session(scsi_target(sc->device)); + session = cls_session->dd_data; + spin_lock_bh(&session->frwd_lock); + + reason = iscsi_session_chkready(cls_session); + if (reason) { + sc->result = reason; goto fault; } @@ -1742,11 +1785,8 @@ int iscsi_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc) goto fault; } - if (test_bit(ISCSI_SUSPEND_BIT, &conn->suspend_tx)) { - reason = FAILURE_SESSION_IN_RECOVERY; - sc->result = DID_REQUEUE << 16; + if (iscsi_eh_running(conn, sc, &reason)) goto fault; - } if (iscsi_check_cmdsn_window_closed(conn)) { reason = FAILURE_WINDOW_CLOSED; From patchwork Fri Apr 16 02:04:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206481 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C986C433ED for ; Fri, 16 Apr 2021 02:05:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7D0BB61182 for ; Fri, 16 Apr 2021 02:05:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237996AbhDPCF1 (ORCPT ); Thu, 15 Apr 2021 22:05:27 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:36140 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237661AbhDPCFZ (ORCPT ); Thu, 15 Apr 2021 22:05:25 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G204g3172519; Fri, 16 Apr 2021 02:04:55 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=cEyImvyJHUDcTp32d8itBoFJ3+WXNTwKne8zp3GHllU=; b=Pxd9dBK9kgIvuP1RFHhMJK+kwt7KIzC0Vp2nOTNJcRs6xlKcUMd/3c5R3J3BxBlZAv7+ 2AR1WFsN6bE1sfgBRbSDP+VBTOHlYu23Mw5wzaGLnNiDVHXc4/6LqP5Tz43jCZ6BMTBp a3RMK2VaJrxH4zugZduxfpO/KTt1KaJ2lzSGA2UKpFCZMBUF3q+aMidb0c3QZQpnmf3Z o8mvk5vU0SZQKi/+w8rncuIVFLHotf+1U9qt8wXS9k2PiZS/J/ZH2crxliN7h/ohaSzz bx+ALxBOU0Yl9AQNedYOu0KU1N65A/V/o3DTYUozdWQYFmpCddIq/C9174pVy0AJNxW0 XA== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2120.oracle.com with ESMTP id 37u4nnqmfh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:54 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G20eZG001033; Fri, 16 Apr 2021 02:04:54 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2173.outbound.protection.outlook.com [104.47.56.173]) by aserp3030.oracle.com with ESMTP id 37unktfb62-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OnXiUb8zBYu3pINeLrhZ4fVfyu3E2fpq4TU3CY9HHA2P+rybd5COMJRddyznMNWmkzPmfMcy9fo+CWMKn3JvlaVK5b6Oc39x9Uu/Y9ibVrGDNw+J947lkuq2sQTnGRJeFJYXYiMZ+Jp7hRPSyXKaoJ5Jki+JcvXL89ZXORA9C87g/aG0W4fT/i1T7vd2IfC0RsXwu3jCdKwZEZTuSQmy6MpxshytK+xMLdgFfYaO+8wCBsurwURuSqwCQ9aD4F6Ze+mfUJB36KHSkvEiDxqwz27XW7nYmLG4aoHhNdUt0YPG2cmjVWkvRHFXqlChJ/RnekbW5O8+8kBlK4yFEoUroQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cEyImvyJHUDcTp32d8itBoFJ3+WXNTwKne8zp3GHllU=; b=Y4gN4FfPB+HP8eBgwWCsTevo1B1yoZ8yy/D8PxgwduilR0WI+HcPmIkYxeGz/o1jSMw1tXGdLEVnDnUqpeECYoycPIS3BTjgfTFQUS2IpUTh89Luf9fVdUfspPEI2e+bU6RGaChLv69BAi9goKzdlZkh/ID6fpcv391CFCb/H3eUMU40JuUnitHn5DUyTEaA24spMwNSMmfNR95F1TA6PYTQJsm4/Swf/ktdXQ+cF0SIbRXek19/uW43VpHo83iD9gnRap/Q10Cn6LOcHLqVR/VSGkd/El4guuq/bi/ObMPHaZ9e6a7qv8Y4FxaHrQaUuMos2A86MrQY+UTKurf80w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cEyImvyJHUDcTp32d8itBoFJ3+WXNTwKne8zp3GHllU=; b=m97R+KCmnctCK3bqA9/j+ZdY82fXMpDAINBREqGQrx622mcU59tvONUIMHVqHte5IDPsLwTRxRXE4N9QamzIaNCfCH5mz8+/H113mXwmlktBts0N+FjYcwnswxTYsl/V+ax/G+xojn0aZqxyVtrsMnodTxjIWPobOoVv3NNNIqY= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB2421.namprd10.prod.outlook.com (2603:10b6:a02:b3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Fri, 16 Apr 2021 02:04:52 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:04:52 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 03/17] scsi: iscsi: stop queueing during ep_disconnect Date: Thu, 15 Apr 2021 21:04:26 -0500 Message-Id: <20210416020440.259271-4-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:04:51 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 694313ff-2e41-456f-17cb-08d9007c05d6 X-MS-TrafficTypeDiagnostic: BYAPR10MB2421: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tUALTP1xQFQXSg40o8jqFtjkbweaHGRUgBKpc0WI+/ozUhdf2EKF47ejPQgBmrwJnpRS98px0k/dlJibqoha2/eYs4x/nrcOw5BlAKkVWmGb4nTiEx1SlxsJumU/HXS5/7e96jbjkLoMidrlIwK7Tp3akWVOlT/yZe7bvIaHc0AgRG5g1kwqrUmMkfoDd2hkT/S+tICwvriFLmYO0d3EGtueLjNvgW81fYIR62NKZAYutudLCSEIW2wpGt7RZLg18UhWE/avYzvxFNV8ev7S2++eY7NUhubLm0N4PvoHAe8gVWrWxLTQl1Px3dTWpkZZx+ay4YvXY0pb9hWXIbaiK54TVUh1Q49Q1HtRJIqXHbAOC0SEHcF4AIf6B4TX55SECGzPC4JSIU/ydBbxNEwOhDknnpK+CL/r8Kl0O6260UFq+pvmvhgWagID43cmMgqIfUbw2gH5OjNmc5XMaZDk71e/v5oXXlzSoFBpiuz2Ys1M+2U1F+7vSXEPS1wKdD7w4pYI7SJ7hR8YGsQ8MOW5T/fNGxFW2iqczqNNT7Chn8jN14mPNsh63A1W2Az5s4JG1IP4X4B3EHY3MojLyYMdwADeHdUdCSoopn+GSYkn0UdJfeN+uK5bW5lDxcsG0YDXJa3iuxXbezaNkOA3/hR362aJAPw4qGSaXPZyV6ZIFLW5jfkCMUckeYYgYHf6vFR2 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(366004)(136003)(396003)(186003)(69590400012)(16526019)(5660300002)(1076003)(6666004)(36756003)(26005)(107886003)(83380400001)(4326008)(52116002)(2906002)(6486002)(2616005)(6512007)(956004)(8936002)(8676002)(316002)(478600001)(66556008)(38350700002)(66476007)(6506007)(38100700002)(86362001)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 0Jo63ZB6c5ZpVM2+DdYThaYnaj6gu0hJdMz7t+yARrt93yDIDUaCDgkXvvMDgX+grKzrQijgTpts+Bp3I2IU1IO43ZXd+0EPzhtNt2qPIqI7mGnyI2Ck1oya8aoIonErZ8h4luHjzPgO2FsEeMKor0ywZW51tuxnz6/Qe791QDaKYEy4w9SBPDkjy0Nf3aBy2gBzcK9YIcfac7pAwdCKyxSCCcGnAIlrQOfyjCKdHLZS3jCI7GJqjSXNTMv/bqvFTeEjVHtuSh2wKNyWz3SWUoMm7xLwyn4ZdyZWKGfORbaZD7ui8aSTkAEkGaxRUvlxTQIDN8nwzDAwT1FNKr9ZDJIkNmRUmG7SlgJBii6Y80p5/iBdu+O0gLWb30S5S6wQsdgnfh9AqbYb5Za48/A0Pefrahp64PahfU2juoXObd3RjROKtNFKuJ0/5FOaecdH/M62A8oBri0LnTduWmnDm0YjiJJnN/28iKNCx8YPNiVtjzg2zkzVUoVRrjuvxrYm8a/nfpoMAj/HA0XXZjv9fAtQUPC6eEaE+7MOpQPLjhB7nT77aeYXsZZv0hj0bhKMo0AaHVeQ2S8FXiC11v5xdSpPsQj0vbxB3MRzgUMiM87UUvSMZfcql+LO202fg1SrmEcFrFDYnGnImmsf8L+/8M5PdbPh5SAjN2cSmtL9UlPUpsO10KUBhACgyyUZZXvW4cPm7gvgK3Lz7ITYN9DK1zok5d+CXSPnGfBKWgNxP+6J7E5h/ZdxWl8uRIrgPp0RHgmPL2tEND6jcB9fERhhU3YgvLa6eS7k6LXvQGYoEMFXATbnQBI8Pjm6xzDvvdRzSilc5oxulnI454NgLEUIy0hATrNKbhoEmxMSi0ZKHBXFMjDhZE4KYvtoy16oW6Ok4SQqA4gEEvVSFTJovPyJPzYJqfchNJaDVxXqISkNN5sWdFUt+sxsIviYCrq8bLuoArZR8fHShpyl5gEx72SoDq+e8uCxhJa2fXks/gOdbzDneHbilWkvVqqEyW88BrRjRdw6FzD2KpqJkzDDK8gjnTLf3oJEiTXk7cQTJWBx4ATG4wgSY/rWL4WBc8i9hZyCGi5BSIAP0JMdIzHOl/N02mxcFTGqkXw8mP5Uhm1ftROBb5CtnFtLpXIfxR2i0ZrFLf4jzxcsyko1ya2siZjgR9jSyQbn/K+tBhLaEgSXTBmP6X7YYAMt6FcLWCscHBch6DciCrHTNrFCwnlQhQopd3+BFFHgfz4Xwz3T4PLcItW9J7Vf8G4aS+F4iCJTaj+88xA2A01jCeBva3h7rb1xyBW7HvZXpofinMHIf7rz62bwqTtl7cJXvHUlzeow2xFi X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 694313ff-2e41-456f-17cb-08d9007c05d6 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:04:52.5826 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: e4KX6KSC8NwkE2ybfac16pzrxtF2dgtaQ5TtLGRJbuY/cG75xCgdNygDRoj2U3hQ+MMSncDgOb6QQmS2HviOkkG2ftv25qh+dlpkO/SaKWY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2421 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 adultscore=0 phishscore=0 malwarescore=0 mlxscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-ORIG-GUID: E3Rvyc0UtoCt6DlxddcmDUVAH9V2MnNa X-Proofpoint-GUID: E3Rvyc0UtoCt6DlxddcmDUVAH9V2MnNa X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 mlxlogscore=999 priorityscore=1501 clxscore=1015 lowpriorityscore=0 spamscore=0 impostorscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org During ep_disconnect we have been doing iscsi_suspend_tx/queue to block new IO but every driver except cxgbi and iscsi_tcp can still get IO from __iscsi_conn_send_pdu if we haven't called iscsi_conn_failure before ep_disconnect. This could happen if we were terminating the session, and the logout timedout before it was even sent to libiscsi. This patch fixes the issue by adding a helper which reverses the bind_conn call that allows new IO to be queued. Drivers implementing ep_disconnect can use this to make sure new IO is not queued to them when handling the disconnect. Signed-off-by: Mike Christie Reviewed-by: Lee Duncan --- drivers/infiniband/ulp/iser/iscsi_iser.c | 1 + drivers/scsi/be2iscsi/be_main.c | 1 + drivers/scsi/bnx2i/bnx2i_iscsi.c | 1 + drivers/scsi/cxgbi/cxgb3i/cxgb3i.c | 1 + drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 1 + drivers/scsi/libiscsi.c | 61 +++++++++++++++++++++--- drivers/scsi/qedi/qedi_iscsi.c | 1 + drivers/scsi/qla4xxx/ql4_os.c | 1 + drivers/scsi/scsi_transport_iscsi.c | 3 ++ include/scsi/libiscsi.h | 1 + include/scsi/scsi_transport_iscsi.h | 1 + 11 files changed, 67 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c index 8fcaa1136f2c..6baebcb6d14d 100644 --- a/drivers/infiniband/ulp/iser/iscsi_iser.c +++ b/drivers/infiniband/ulp/iser/iscsi_iser.c @@ -1002,6 +1002,7 @@ static struct iscsi_transport iscsi_iser_transport = { /* connection management */ .create_conn = iscsi_iser_conn_create, .bind_conn = iscsi_iser_conn_bind, + .unbind_conn = iscsi_conn_unbind, .destroy_conn = iscsi_conn_teardown, .attr_is_visible = iser_attr_is_visible, .set_param = iscsi_iser_set_param, diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c index 90fcddb76f46..e9658a67d9da 100644 --- a/drivers/scsi/be2iscsi/be_main.c +++ b/drivers/scsi/be2iscsi/be_main.c @@ -5809,6 +5809,7 @@ struct iscsi_transport beiscsi_iscsi_transport = { .destroy_session = beiscsi_session_destroy, .create_conn = beiscsi_conn_create, .bind_conn = beiscsi_conn_bind, + .unbind_conn = iscsi_conn_unbind, .destroy_conn = iscsi_conn_teardown, .attr_is_visible = beiscsi_attr_is_visible, .set_iface_param = beiscsi_iface_set_param, diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c index 1e6d8f62ea3c..b6c1da46d582 100644 --- a/drivers/scsi/bnx2i/bnx2i_iscsi.c +++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c @@ -2276,6 +2276,7 @@ struct iscsi_transport bnx2i_iscsi_transport = { .destroy_session = bnx2i_session_destroy, .create_conn = bnx2i_conn_create, .bind_conn = bnx2i_conn_bind, + .unbind_conn = iscsi_conn_unbind, .destroy_conn = bnx2i_conn_destroy, .attr_is_visible = bnx2i_attr_is_visible, .set_param = iscsi_set_param, diff --git a/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c b/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c index 37d99357120f..edcd3fab6973 100644 --- a/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c +++ b/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c @@ -117,6 +117,7 @@ static struct iscsi_transport cxgb3i_iscsi_transport = { /* connection management */ .create_conn = cxgbi_create_conn, .bind_conn = cxgbi_bind_conn, + .unbind_conn = iscsi_conn_unbind, .destroy_conn = iscsi_tcp_conn_teardown, .start_conn = iscsi_conn_start, .stop_conn = iscsi_conn_stop, diff --git a/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c b/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c index 2c3491528d42..efb3e2b3398e 100644 --- a/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c +++ b/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c @@ -134,6 +134,7 @@ static struct iscsi_transport cxgb4i_iscsi_transport = { /* connection management */ .create_conn = cxgbi_create_conn, .bind_conn = cxgbi_bind_conn, + .unbind_conn = iscsi_conn_unbind, .destroy_conn = iscsi_tcp_conn_teardown, .start_conn = iscsi_conn_start, .stop_conn = iscsi_conn_stop, diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index aa5ceaffc697..ce3898fdb10f 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c @@ -1387,22 +1387,28 @@ void iscsi_session_failure(struct iscsi_session *session, } EXPORT_SYMBOL_GPL(iscsi_session_failure); -void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err) +static void iscsi_set_conn_failed(struct iscsi_conn *conn) { struct iscsi_session *session = conn->session; - spin_lock_bh(&session->frwd_lock); - if (session->state == ISCSI_STATE_FAILED) { - spin_unlock_bh(&session->frwd_lock); + if (session->state == ISCSI_STATE_FAILED) return; - } if (conn->stop_stage == 0) session->state = ISCSI_STATE_FAILED; - spin_unlock_bh(&session->frwd_lock); set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_tx); set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_rx); +} + +void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err) +{ + struct iscsi_session *session = conn->session; + + spin_lock_bh(&session->frwd_lock); + iscsi_set_conn_failed(conn); + spin_unlock_bh(&session->frwd_lock); + iscsi_conn_error_event(conn->cls_conn, err); } EXPORT_SYMBOL_GPL(iscsi_conn_failure); @@ -2220,6 +2226,49 @@ static void iscsi_check_transport_timeouts(struct timer_list *t) spin_unlock(&session->frwd_lock); } +/* + * iscsi_conn_unbind - prevent queueing to conn. + * @conn: iscsi conn ep is bound to. + * + * This must be called by drivers implementing the ep_disconnect callout. + * It disables queueing to the connection from libiscsi in preparation for + * an ep_disconnect call. + */ +void iscsi_conn_unbind(struct iscsi_cls_conn *cls_conn) +{ + struct iscsi_session *session; + struct iscsi_conn *conn; + + if (!cls_conn) + return; + + conn = cls_conn->dd_data; + session = conn->session; + /* + * Wait for iscsi_eh calls to exit. We don't wait for the tmf to + * complete or timeout. The caller just wants to know what's running + * is everything that needs to be cleaned up, and no cmds will be + * queued. + */ + mutex_lock(&session->eh_mutex); + + iscsi_suspend_queue(conn); + iscsi_suspend_tx(conn); + + spin_lock_bh(&session->frwd_lock); + /* + * if logout timed out before userspace could even send a PDU the + * state might still be in ISCSI_STATE_LOGGED_IN and allowing new cmds + * and TMFs. + */ + if (session->state == ISCSI_STATE_LOGGED_IN) + iscsi_set_conn_failed(conn); + + spin_unlock_bh(&session->frwd_lock); + mutex_unlock(&session->eh_mutex); +} +EXPORT_SYMBOL_GPL(iscsi_conn_unbind); + static void iscsi_prep_abort_task_pdu(struct iscsi_task *task, struct iscsi_tm *hdr) { diff --git a/drivers/scsi/qedi/qedi_iscsi.c b/drivers/scsi/qedi/qedi_iscsi.c index 08c05403cd72..ef16537c523c 100644 --- a/drivers/scsi/qedi/qedi_iscsi.c +++ b/drivers/scsi/qedi/qedi_iscsi.c @@ -1401,6 +1401,7 @@ struct iscsi_transport qedi_iscsi_transport = { .destroy_session = qedi_session_destroy, .create_conn = qedi_conn_create, .bind_conn = qedi_conn_bind, + .unbind_conn = iscsi_conn_unbind, .start_conn = qedi_conn_start, .stop_conn = iscsi_conn_stop, .destroy_conn = qedi_conn_destroy, diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c index 7bd9a4a04ad5..ff663cb330c2 100644 --- a/drivers/scsi/qla4xxx/ql4_os.c +++ b/drivers/scsi/qla4xxx/ql4_os.c @@ -259,6 +259,7 @@ static struct iscsi_transport qla4xxx_iscsi_transport = { .start_conn = qla4xxx_conn_start, .create_conn = qla4xxx_conn_create, .bind_conn = qla4xxx_conn_bind, + .unbind_conn = iscsi_conn_unbind, .stop_conn = iscsi_conn_stop, .destroy_conn = qla4xxx_conn_destroy, .set_param = iscsi_set_param, diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index 441f0152193f..833114c8e197 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c @@ -2981,6 +2981,8 @@ static int iscsi_if_ep_disconnect(struct iscsi_transport *transport, conn->ep = NULL; mutex_unlock(&conn->ep_mutex); conn->state = ISCSI_CONN_FAILED; + + transport->unbind_conn(conn); } transport->ep_disconnect(ep); @@ -4656,6 +4658,7 @@ iscsi_register_transport(struct iscsi_transport *tt) int err; BUG_ON(!tt); + WARN_ON(tt->ep_disconnect && !tt->unbind_conn); priv = iscsi_if_transport_lookup(tt); if (priv) diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index 8c6d358a8abc..ec6d508e7a4a 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h @@ -431,6 +431,7 @@ extern int iscsi_conn_start(struct iscsi_cls_conn *); extern void iscsi_conn_stop(struct iscsi_cls_conn *, int); extern int iscsi_conn_bind(struct iscsi_cls_session *, struct iscsi_cls_conn *, int); +extern void iscsi_conn_unbind(struct iscsi_cls_conn *cls_conn); extern void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err); extern void iscsi_session_failure(struct iscsi_session *session, enum iscsi_err err); diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h index fc5a39839b4b..afc61a23628d 100644 --- a/include/scsi/scsi_transport_iscsi.h +++ b/include/scsi/scsi_transport_iscsi.h @@ -82,6 +82,7 @@ struct iscsi_transport { void (*destroy_session) (struct iscsi_cls_session *session); struct iscsi_cls_conn *(*create_conn) (struct iscsi_cls_session *sess, uint32_t cid); + void (*unbind_conn) (struct iscsi_cls_conn *conn); int (*bind_conn) (struct iscsi_cls_session *session, struct iscsi_cls_conn *cls_conn, uint64_t transport_eph, int is_leading); From patchwork Fri Apr 16 02:04:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206479 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 442B4C43461 for ; Fri, 16 Apr 2021 02:05:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1E95D6115B for ; Fri, 16 Apr 2021 02:05:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237987AbhDPCFZ (ORCPT ); Thu, 15 Apr 2021 22:05:25 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:46198 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237980AbhDPCFY (ORCPT ); Thu, 15 Apr 2021 22:05:24 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G206Z6179689; Fri, 16 Apr 2021 02:04:55 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=A8BakktgdJusWiYfRJki9vRpDbBs+P/MJ2IULwrnIyg=; b=FXAo1G7/uRBSeN8349AZ3sERo2mwOyfRgv4TzDKm3jJPTPnWMKJq5W5yChBsbcJi1YXO eEFQ6ZjR4IwH8/aUoC4m1jVXGTF8S8xR1uphq9j0ooVdoRQYdRIczSc0TeP7eUbAkRSk 6aIhVb1qQ1lRcUbYO0QkawYHZ32SW4Bzo/9fO/NU9/kfL7NmN/ODYkeJbJyx3nvEqkAa obdPu6mLdXIXuRCalpk3jsGn+bjAdyDZOCVEi08CeAXSMZPiCBReQgPmLBWpzo/9iPlQ +eekrauFwKt4A7+5EJvxjKc1oE23kjIX67zYPsEBrmbt6lWlXZ3bQC1N+63Kju8Pmc6h Jg== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2130.oracle.com with ESMTP id 37u1hbqsbt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:54 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G20eZH001033; Fri, 16 Apr 2021 02:04:54 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2173.outbound.protection.outlook.com [104.47.56.173]) by aserp3030.oracle.com with ESMTP id 37unktfb62-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WJk8EHW7mycrHsJFdmqp+i7TKXuCCUP2MzDT2UJL7cBvZU+PuVArdMbpVu3wsPzz8JBumVp9AcjJ3+YZoSP99/75Xqla3R0TKDxb+Thn/qw7FsBtcY/WqVoF1xAJlMA54fmBWox9azC2bWirtTPvcA6ExTuJh4V+C3tSf71T/MTm54nx9i3DVA6FQqTddEF33Tjz11K/UGU2XanuHRyBBlNt0VIdh35GcOQKIo680BJMNKks/zyJLbS/wvHSzM3J+S0xHAQVsjKIErlDJg2gKEl31k/ddAG1/uApJh3qaIJPs8PqNvikbfFv1PsPDMTTvj89ZxFiRhBNNeWLdikP+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A8BakktgdJusWiYfRJki9vRpDbBs+P/MJ2IULwrnIyg=; b=jO30PTpyfx5KXRWuCygeKTTfVCel9GZsFFgIhpXsOXtBC048NNeoAD+PPs0C9ZWbqdwvbqIuHjR/xuO5mYTMpawduZcjG1JFkOnn/iqRsopTEyAW68pklEhQ7LGMQU8ID3tvZLQksm+6Vv9kxo491M+vR+az/xQPf/VvoAxmMNUOVnm8Ai4mdxPY+Pg+nJ2fzxju8y1UsLYc+xVO6miWshO3pOz+yxbDWpIYCB9vkZneg/30Qtiulwi/+Sm++5Lx/Z+mZ/eroMljc03v3Z0Yg8i+xt+jueA0l0TLaTRQSLx8b6ZeGf5ZXpWlesc5cPSoDCkN4zhUxyhRuzeb+DODNA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A8BakktgdJusWiYfRJki9vRpDbBs+P/MJ2IULwrnIyg=; b=toCxGqOVyPBFKkWvZUl6xr1QqV+eg0PoRoQzfSUDGM8nZL2Zls4BvHnAQRpmexRGwzXOjGPMmc8NrauAKVvdTKdfS+xYwaJq3z2lDj9NJMiNHUc5WLh+15QA6+4d/ML8XMM/LG2Txh0SnO3xyQUuroOYFeae6Q6l4NtbtEO3gJs= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB2421.namprd10.prod.outlook.com (2603:10b6:a02:b3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Fri, 16 Apr 2021 02:04:53 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:04:53 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 04/17] scsi: iscsi: drop suspend calls from ep_disconnect Date: Thu, 15 Apr 2021 21:04:27 -0500 Message-Id: <20210416020440.259271-5-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:04:52 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 22ac513f-22f4-43ea-b1e8-08d9007c0674 X-MS-TrafficTypeDiagnostic: BYAPR10MB2421: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:663; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: c+MJ8rpxXZa8a1KCdro26KqYiAI6lRNOpb5cbgcaUUd5mJ+qS9s5KgKV521Zr7R/waQj5yWl8hfVSJFvxR+yex3kSvBkE77ALlX3ZkgGmg+sraBr6E+HAGnQ41CH3PHYuwBgTfScEdwEB3iRPV3w5Un5Jm6uD1NmTVEyUpAL0W9BXEoy0H862nukOfnNDYiBnPlNscXuvaE4anVJwJerZANhsa0xDxRp6ZiZjs9N/OqClQ8n9wink9MdRliizhk+dZgnsUXQ/aO/jdLLNJl+CpDHE3OdmzNx1Rrb6KT4dV25neQZ/1zwNvA2zXiZMiG1B5EzbTWBybtA3E/6tYzrB0o4RWmlVnhfhj2zibJ5Vnl8nyePL1t2RGUGjmZdPUAlQ7OB8HCQFoFqs+02I/t59m+Vet8PqysrafAXeKch2ysqHEMYzE4kDtOhFjrHftyepzGutUdD2fCVTayMjO9pZo/QA2Cv48i1zcB926SsBWsZKt/3XgRqE+L3HdD2w2yFh7yaSFOVm1+nNF06S8sHmELdUWGJQpJJtwpOeuarNrDej1W3i4LwuJIq4W3AC2y89N60BPoitT9eUt+XFc8aSdhtXV1a0ieE3LOVml2sE+fMW6N4tXMrDn6KJF6TPoXWwNLFHNOtf5JCae4ufBY/s9cAY1GLxZwQT8jLRkC1fN+QVcWOeS/PrLrlWjf2Ws7W X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(366004)(136003)(396003)(186003)(69590400012)(16526019)(5660300002)(1076003)(6666004)(36756003)(26005)(107886003)(83380400001)(4326008)(52116002)(2906002)(6486002)(2616005)(6512007)(956004)(8936002)(8676002)(316002)(478600001)(15650500001)(66556008)(38350700002)(66476007)(6506007)(38100700002)(86362001)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: yL0QdoPlROAXDYGCcdzqxIW2G/LL5+FMkqa72M406fsyeXifmTD2ZHzLTl9HDNzErZZhNJ/sCfba1+0UsLlvhq+rwQv5fuPId7Phr3IqcNekPYCkQPZMwyOpvEDNWpjczqZtJtNAy4vmISQSnGduk1Q3nZsbSGss3Z32ZaDx8y09vbvkXFRtRbMuRjyw2RzNIT9Sw5mNnBBiDEk7L+K9e3HhRTtVwQJKmTR/x6Dw/qSZyNBzkLczl/1LOSCKlm3MqgiGzTRO8iLUKnhJyRVUEQzpzIaZWX80PvJ0sNJzGg7eUzmQtlf6ZtscEI0JjprkWqvO9ZpT8Ya9psvk2zM5PrLQnnTIgF72n5ZMfYKtEri90HAJVjDAb/BbXFTkZkRoCzl4H5nCmYMAramKbrMKhA05zeTyL9rUZoXE7kb6RX/tiZOs1DfPdk3vy64xvmQ8ST2GzsFxJWvM+e7AkYa0xOSHrSJkX3zivT4A/d10txvh0iCFqTuTDDkVukFzQ40hn44/50JR0OurQnsOsU5Z2neDaTPZ6CYIRLNrwSOr0mv8D6ndEOhz8upCfegE8rWOLZAQ3odmRP3gf9ZSuTjyaCkY0MFNswU+8O5aFZ4fx3bx+zbGLcfYD3a060UJV8OK52TNYsQJNli9TYwD3Wy6z1xV7AnuVfP56YFN0qwdUuxNUL41KSEf4eW8u7usaE4Tv9nteWFDwcyiKDrP3rs3hoKUmiax1TcB9QjX8K789cS0zI5YaQ9oKTerA4ZQUqqJ337wbufMqCZjr7b0ZWwxoVnxaQLfiT1ZJe6OAXhqJ3vmtwYRpJlsZkEL421F0L2adp79YDE5FJhoarAO4HM0wAts2VrAke9Qa4CWxggKH6AZyRvE1Vf8jFB8BUK+GCQmeBlmuDv6EHU1FvCodiJDeF4MuGFNqw8C8t298rkmVpzm1yjwMgIsNRCK79EtPlh0wnL6OmnNQFs0Wrn0F5iIfZnnI9oxRFbFbkMnT8j1m8Oa+GysqtuMe3o11HFeKAx9FvZ4PQDJCUfHdzIWlgp9w8RfLBF/H+VxABB7JmdduZjvID6NYopQq/ULSD6FaOfnGiQJPfzx4q2jmlYcd/0i6osvvvfkvT5Jm3KNo634yaLb7rSySAkuvwygLtv/gqsSuz9zqua+NUzRoq783sOsdhuGyTmzWH+vbE4b66yq7W74jWS6ZgZHe6Xv/0PjazgqcwXoTXecJVToZAnlURExM6by/j4OC3Wi/iBnCn2JUnLNx0YLxMTJpNtWrBnqDUfRqbSiwDKfEe9B5zK9YcRD1GK3ON+GNuxRWEWY8I+wBi56lrnPc9zpTEeKzsfMYRSC X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 22ac513f-22f4-43ea-b1e8-08d9007c0674 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:04:53.5800 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CpOMnDw7eLuwjJOyfqGEfmnBVFC4Ek87L29f4QuP6idObEOjqQlSwpkx69kcLI8/fBOEA7DHtDlhkaKvzK/IlqNsUl7I5cqjwply2r3J6zg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2421 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 adultscore=0 phishscore=0 malwarescore=0 mlxscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-GUID: scYfaFAbJ5gdcYiKUB0gOykQwZCM562I X-Proofpoint-ORIG-GUID: scYfaFAbJ5gdcYiKUB0gOykQwZCM562I X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 priorityscore=1501 clxscore=1015 adultscore=0 mlxlogscore=999 impostorscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 phishscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org libiscsi will now suspend the send/tx queue for the drivers so we can drop it from the drivers ep_disconnect. Signed-off-by: Mike Christie Reviewed-by: Lee Duncan --- drivers/scsi/be2iscsi/be_iscsi.c | 6 ------ drivers/scsi/bnx2i/bnx2i_iscsi.c | 6 +----- drivers/scsi/cxgbi/libcxgbi.c | 1 - drivers/scsi/qedi/qedi_iscsi.c | 8 ++++---- 4 files changed, 5 insertions(+), 16 deletions(-) diff --git a/drivers/scsi/be2iscsi/be_iscsi.c b/drivers/scsi/be2iscsi/be_iscsi.c index a13c203ef7a9..a03d0ebc2312 100644 --- a/drivers/scsi/be2iscsi/be_iscsi.c +++ b/drivers/scsi/be2iscsi/be_iscsi.c @@ -1293,7 +1293,6 @@ static int beiscsi_conn_close(struct beiscsi_endpoint *beiscsi_ep) void beiscsi_ep_disconnect(struct iscsi_endpoint *ep) { struct beiscsi_endpoint *beiscsi_ep; - struct beiscsi_conn *beiscsi_conn; struct beiscsi_hba *phba; uint16_t cri_index; @@ -1312,11 +1311,6 @@ void beiscsi_ep_disconnect(struct iscsi_endpoint *ep) return; } - if (beiscsi_ep->conn) { - beiscsi_conn = beiscsi_ep->conn; - iscsi_suspend_queue(beiscsi_conn->conn); - } - if (!beiscsi_hba_is_online(phba)) { beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, "BS_%d : HBA in error 0x%lx\n", phba->state); diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c index b6c1da46d582..9a4f4776a78a 100644 --- a/drivers/scsi/bnx2i/bnx2i_iscsi.c +++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c @@ -2113,7 +2113,6 @@ static void bnx2i_ep_disconnect(struct iscsi_endpoint *ep) { struct bnx2i_endpoint *bnx2i_ep; struct bnx2i_conn *bnx2i_conn = NULL; - struct iscsi_conn *conn = NULL; struct bnx2i_hba *hba; bnx2i_ep = ep->dd_data; @@ -2126,11 +2125,8 @@ static void bnx2i_ep_disconnect(struct iscsi_endpoint *ep) !time_after(jiffies, bnx2i_ep->timestamp + (12 * HZ))) msleep(250); - if (bnx2i_ep->conn) { + if (bnx2i_ep->conn) bnx2i_conn = bnx2i_ep->conn; - conn = bnx2i_conn->cls_conn->dd_data; - iscsi_suspend_queue(conn); - } hba = bnx2i_ep->hba; mutex_lock(&hba->net_dev_lock); diff --git a/drivers/scsi/cxgbi/libcxgbi.c b/drivers/scsi/cxgbi/libcxgbi.c index f078b3c4e083..215dd0eb3f48 100644 --- a/drivers/scsi/cxgbi/libcxgbi.c +++ b/drivers/scsi/cxgbi/libcxgbi.c @@ -2968,7 +2968,6 @@ void cxgbi_ep_disconnect(struct iscsi_endpoint *ep) ep, cep, cconn, csk, csk->state, csk->flags); if (cconn && cconn->iconn) { - iscsi_suspend_tx(cconn->iconn); write_lock_bh(&csk->callback_lock); cep->csk->user_data = NULL; cconn->cep = NULL; diff --git a/drivers/scsi/qedi/qedi_iscsi.c b/drivers/scsi/qedi/qedi_iscsi.c index ef16537c523c..30dc345b011c 100644 --- a/drivers/scsi/qedi/qedi_iscsi.c +++ b/drivers/scsi/qedi/qedi_iscsi.c @@ -988,7 +988,6 @@ static void qedi_ep_disconnect(struct iscsi_endpoint *ep) { struct qedi_endpoint *qedi_ep; struct qedi_conn *qedi_conn = NULL; - struct iscsi_conn *conn = NULL; struct qedi_ctx *qedi; int ret = 0; int wait_delay; @@ -1007,8 +1006,6 @@ static void qedi_ep_disconnect(struct iscsi_endpoint *ep) if (qedi_ep->conn) { qedi_conn = qedi_ep->conn; - conn = qedi_conn->cls_conn->dd_data; - iscsi_suspend_queue(conn); abrt_conn = qedi_conn->abrt_conn; while (count--) { @@ -1621,8 +1618,11 @@ void qedi_clear_session_ctx(struct iscsi_cls_session *cls_sess) struct iscsi_conn *conn = session->leadconn; struct qedi_conn *qedi_conn = conn->dd_data; - if (iscsi_is_session_online(cls_sess)) + if (iscsi_is_session_online(cls_sess)) { + if (conn) + iscsi_suspend_queue(conn); qedi_ep_disconnect(qedi_conn->iscsi_ep); + } qedi_conn_destroy(qedi_conn->cls_conn); From patchwork Fri Apr 16 02:04:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206483 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C581DC433B4 for ; Fri, 16 Apr 2021 02:05:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8BD5C6115B for ; Fri, 16 Apr 2021 02:05:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238039AbhDPCFc (ORCPT ); Thu, 15 Apr 2021 22:05:32 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:48278 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237997AbhDPCF2 (ORCPT ); Thu, 15 Apr 2021 22:05:28 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G24mWR098868; Fri, 16 Apr 2021 02:04:57 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=ET3Y+rkHr5jOITkQlSZIiaYf3eoI25gY8sotZz6U/R8=; b=ytvGPurvJnAgzJ1RpqHUaQKVzbi4qesRQ2h5bCtyRvQTzXGsdFTzLlOOfxWJkoem0zkw tb5AswYn8k3IV/uoeVlBZVPbVrqLowxtzMqKbJkEQrmr5NLI2Bz7r1wRS+Rx7dDFJh7Y ABBiYKF1MVbjRElMsv823jOa7kwmb0Qfa+g92X0Qwje7M4AVEPfdbLiBmZ5J6qSFParV gf09rzWtcy/VXpHC1xIyQyNIZmGPrHTmwAwqeaClsZMqYaC8nQkt3YHK+gXfWjMQ2Rbb nnnOqChjc8JkM1O05lGvRyDRrg6KArJXypjkn0UlDWJKLxCSEhxnjfrt96ugzz/B4Z4y eA== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2130.oracle.com with ESMTP id 37u3erqpdw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:57 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xoqx008605; Fri, 16 Apr 2021 02:04:56 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2168.outbound.protection.outlook.com [104.47.56.168]) by aserp3020.oracle.com with ESMTP id 37unx3snxg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EmQHndt/FMH98OD4Kk6hGEcns6ntYVLrmy5f+DSpgc949bg0pAKLgRz/XWwWx3WIwsOd6wFMThbHOab173Nlr87QAA7piTuG+xeilSsbLF3p0tNnT10v9kJ0fZeV39+scHpXF3K77XsjpGkAmGb5VRaRN/0bdWOP9Q0f6EjvicUvTY3cWncVQh1diTOK0i2y/QdQN4O2YHcrFhwvivwjzThggunhZ1W1eLu6+KcCLmi5jO7jZKr515BtsZMZDcZ9EImUb9TmcIhxf7LXBLdFpR6FxgnaC58u0j8RvlRos94IXomAK2igBxHIHgowwNFsMfqiCCoNEgAfgYmM223glQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ET3Y+rkHr5jOITkQlSZIiaYf3eoI25gY8sotZz6U/R8=; b=EDoJj0IWRoOpiAYjU5XdyeyQ10zHzyioUDYQ40hcnOhEdqDiJI0W/Xa4d0R7DCrB5Fg2LiErH5YSnp1ldQjhLqzf767dT0e9lrUCCLlw8HFHCsHjbeVBZwl2mKxyWD91HVzePH7gVDqT37UW7Z3JNR7VmbXp6BsvoRtHL2njl7mY/rGW97kMlskzC7M6vltWX8aD54Fam9TVOM9L049VIViq1/XK4l67dJXwrc9VZIiGtK8RmV1PX/+2lHM3RQiQMMomFOekVHfODLJd2ZWrf38XLVrvbZ0lbG+iT/GyeM1+t8LwP58Z7V6zHJHS4JyPHiucxveAJFEICfnd5hJjPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ET3Y+rkHr5jOITkQlSZIiaYf3eoI25gY8sotZz6U/R8=; b=I7dr1/ID1e7CbXEoi9XW79RX9mqvDe2uNC370ZdsjIjW4yX7WiBABuxvZEh0tqNill9+tW3uIqRGi9KLX9oYB6tmm0d8mY31NvO0bdlv3YBBtK9nlMDZBYD+KoJa2FtRQfL5rgG5isrPnrRBlJzy2B5JJT51e6FeZRCVgXsUhN4= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB2421.namprd10.prod.outlook.com (2603:10b6:a02:b3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Fri, 16 Apr 2021 02:04:54 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:04:54 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 05/17] scsi: iscsi: wait on cmds before freeing conn Date: Thu, 15 Apr 2021 21:04:28 -0500 Message-Id: <20210416020440.259271-6-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:04:53 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1a06224c-f2b0-4020-3dea-08d9007c0722 X-MS-TrafficTypeDiagnostic: BYAPR10MB2421: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: D82x2tI+qItfrsR1J/lo6zOz6evGEipY0gTUrwLzoWddMbFPv9K+CQmT0r5+pcpZlgeJPafN1ntLjhr0PMrrsetWWqIq3DwA1II1wd+IC75qMqAbfPzQem6f3iOKkr7hD2AX06paTj23iQk6oTC3MUwBa8h0SrUIgpvg7VSrqXz70m6yEeFieE3QmMDG/JUauuLyaK/CnNzninx4H1ki2PDscAzjU/DTP4vPNtjvjAkLkUf1p+oIhZGK7LHZjVkBBwEvyQWCXYs3akxG5Du+B5utc9ABDX+RFJPa6k4pISTL/djTD8lROqZ+lJ9K80IbvEvuEpwDtBY/1LBKzn350cpvcIkDKMOf4hr0TzAUFTmSysTxkpxiAQR7cwjBpX660JlwI74r1qwoOGsdnOGPfkzhh5NqLocO+zwCUvf+wdqvpOXYcsdWGgOfecZ+xRB9xf5E7X8mdfQr+IhDuTSqsrfOM8m8BCwFhe3gjnw7Byn+vXyBbRqleAFlco2ogJ0p2lAMH95FXCy7RwkJdZgEUNTOKdxsYHtn3m+4aXtLhmsrRQ1qfsvPNpaciTdVyje/U8h8GpTn+Ql3Nkbh4pDtLVn3d4DfdMrHWR2LGmz3mJDC+JnfwjIdvkC5TYsDgJdlCPjdL73+HAcxGYwk9zErXOsam68EO/xHI7ECif+xfg8Z+24GZHiuFdZbMiKJ5hXZ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(366004)(136003)(396003)(186003)(69590400012)(16526019)(5660300002)(1076003)(6666004)(36756003)(26005)(107886003)(83380400001)(4326008)(52116002)(2906002)(6486002)(2616005)(6512007)(956004)(8936002)(8676002)(316002)(478600001)(66556008)(38350700002)(66476007)(6506007)(38100700002)(86362001)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: V8Qm78pYh2DlQ9F4whpirQ+Pj7C2prttIBDhba5P2QgmP9EdfTF1j7HMldwuCeyunBXAwYfk/ekKGGVOWqKtL4/QduJD25g4JIyXnLgKZgewRsVBmptkqjEyR9opXJcF1rso4WrFOO7M0gcnUd0WS3Az/Lg8h2P+5KF7Z062188hLmiimxCeBD4PufCs22vwxpz1ju7uouPDiPEHAQQtXGwyh3LcZhlgExpNRZ1syqZa6rDkNnBZBBiN4AHjy5g7yGqJxKpgSMyHNqCYd1qY/corPLLnRuLxMa5FgNN0Iu87MqtBHYgbVaePeBaGgoLnTVO/msY9ebkKbGdd/ZKfKbi4R/xM3WMadTzlB7SNpPiyWX6GVGIGjVRrxTpFX2vGcfXwHD46C4mD709bpJCeIAHdCo37t/B9IRMFClzPyXLx3644W144XFf4aEnBGcrdGe/83MVciRiU8FTNIKpSBb0EzbSYQJR7QECDT+VAilCvCBcrs1CVQhKIuriH3KFWKM3zCihLdkQy1ru7p/4dT6jqQDZ2dG1MyMXMO+T8e1H9not+JcOhvWWBooDkfeeUYEhC7mi2u9Jjxtp2u+4iqJhH6owzCaP1rTTitQYjocCJGRqFPp8VFeR7S2aq94rg1FS+3I7aH76pp588bxubdZ0kh6El6Hl5w4RWUErASg7G/NuiAKqNcNggKmanpcI26DbR3KhJ+NNl7Yf0L3H0BATW+kBRgM2vlpEcygKR44Qs5O3LOiDz7OtJYnFqGAZB+sxDKzKH3ML4gRnqnjWlBOeOa6T0qcwMb5nI/9y3u5CMamVevtz42e7cb9ZXw0+Yte6Lv6UhvAc2UBPEpnfNMLwmayZGQ6EraHZn8w0Pj0NRwXBOI1KOyxTonvoCY9+ix3NAcIb6pXiy91mqvlFwUmmzsTIhCZCHMpWUJPIaBoh0XpM1/v7TBd7UXMH6QZJcgkZWUhKzB0z9YjmPx+M/k7GcIw65HsOMIsCZ8HHRAmcV2oOKkoj/yKjKsNu/9lkp+rrWCHZE4QWYHm4pAP6iJwTd/7oLzleaG0JgNJEAwH9TeXMgzjpe9+jUpqLDLOVN8CrBnTvB8AOhUFiItliBGkFVlkcelJcvytEMisG0gxNPXiFCwXBPzqUn6Tv9bw2d17KaxzUUwPFH94np4nr+l2WtF4lyCxQMAtUYy5SbtMbBQUIGYOP6RWOqYR9QgyKqwrr1G6eKr03/+4cY0Sccn8Do+2mkLvm7kSWEmi98KRAOXoCM5/u8P0Nj0JwkCo5RO8hM9HfWuTC4UdheTtGxNvqMoGBYD5YxDE8jMhAaWxrHiVLJ0nW4/NaFhWZMcBuf X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a06224c-f2b0-4020-3dea-08d9007c0722 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:04:54.7014 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Lj5Z9jyXVOC9XCwGwDtOXGymVDZ31riqDO1gfeHi2bktmXL+JhYqTAMVbJhyQYBI2mTW27pcFESMDdJqo7Y2wQAHiHEdX52QGnTRKhZ0y/0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2421 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-ORIG-GUID: C2wuM-WNUaaBgLTE-mG38smFkZWg28Gp X-Proofpoint-GUID: C2wuM-WNUaaBgLTE-mG38smFkZWg28Gp X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 clxscore=1015 adultscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 spamscore=0 impostorscore=0 suspectscore=0 mlxscore=0 phishscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160015 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org If we haven't done an unbind target call, we can race during conn destruction where iscsi_conn_teardown wakes up the eh/abort thread and its still accessing a task while iscsi_conn_teardown is freeing the conn. This patch has us wait for all threads to drop their refs to outstanding tasks during conn destruction. There is also an issue where we could be accessing the conn directly via fields like conn->ehwait in the eh callbacks. The next patch will fix those. Signed-off-by: Mike Christie --- drivers/scsi/libiscsi.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index ce3898fdb10f..ce6d04035c64 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c @@ -3120,6 +3120,24 @@ iscsi_conn_setup(struct iscsi_cls_session *cls_session, int dd_size, } EXPORT_SYMBOL_GPL(iscsi_conn_setup); +static bool iscsi_session_has_tasks(struct iscsi_session *session) +{ + struct iscsi_task *task; + int i; + + spin_lock_bh(&session->back_lock); + for (i = 0; i < session->cmds_max; i++) { + task = session->cmds[i]; + + if (task->sc) { + spin_unlock_bh(&session->back_lock); + return true; + } + } + spin_unlock_bh(&session->back_lock); + return false; +} + /** * iscsi_conn_teardown - teardown iscsi connection * @cls_conn: iscsi class connection @@ -3144,7 +3162,17 @@ void iscsi_conn_teardown(struct iscsi_cls_conn *cls_conn) session->state = ISCSI_STATE_TERMINATE; wake_up(&conn->ehwait); } + spin_unlock_bh(&session->frwd_lock); + mutex_unlock(&session->eh_mutex); + /* + * If the caller didn't do a target unbind we could be exiting a + * scsi-ml entry point that had a task ref. Wait on them here. + */ + while (iscsi_session_has_tasks(session)) + msleep(50); + + mutex_lock(&session->eh_mutex); /* flush queued up work because we free the connection below */ iscsi_suspend_tx(conn); From patchwork Fri Apr 16 02:04:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206487 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B090BC433ED for ; Fri, 16 Apr 2021 02:05:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8897661182 for ; Fri, 16 Apr 2021 02:05:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238013AbhDPCFk (ORCPT ); Thu, 15 Apr 2021 22:05:40 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:36164 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237998AbhDPCF2 (ORCPT ); Thu, 15 Apr 2021 22:05:28 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xbch160408; Fri, 16 Apr 2021 02:04:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=gKtUmlvzr+kwSZwxmjsWRFmuONSWaX9lL0U/isq0Z6I=; b=lsp/hqI+lQ0v5f86UN75DUy2M7phQoyW3ic722C39rluIPkKqbG2VRCtgW44TY4ss0v7 bKd/Y6UZdgSs2cpAT6CymLEuSiU+09BRTVt3yejinloN4WrTsRDiHseQ1LtAfRudSFHX 8ZGsPWFyg0YzAJaCrHGMVZElJPTagVnns2DfhfMX6hCF0vCVrofjYSqPUxx5/ICoXscQ SNKBFvgkW20xAmsp7MMOfZt+SCOd2VLFM3eZ4dug+ybrgYvay23IDfBGII0UlJFpB57h gLtuXU6EpAmnz1MuQ0dJ4BSQAZ9TswsS3VII7mp8KZsTI4s+xTKWQjE7w2bBvvTTZx7T gg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2120.oracle.com with ESMTP id 37u4nnqmfp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:58 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xor0008605; Fri, 16 Apr 2021 02:04:57 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2168.outbound.protection.outlook.com [104.47.56.168]) by aserp3020.oracle.com with ESMTP id 37unx3snxg-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=erxBNE84JoDT4xVJlf//dZ9olokSRPz34EtDn9nlElzxIKSqoxHQOAEaOIq/TuycdiVjn6er2LxclfV0BusAnPOU1RBCi2BaTysC3RVP2fmBHngVYbmhjwrZS7U6XNCnsi9eOtgpnNx+YaGKqaep3XZTsd8DMyj0R6c8pIEqKRIvpzHsUXIp8AAW/4rPlLoS+z9/01zwTZMlQkIfIgWqJ2Xe3PjdEnGm5huVebJr3vbqusRMZROHh/W1qcef91Ww9n2r0+OJ6wDtzoTpFAW6LfKMOnvw6RjvzMmZHADnIU9S603d4v4pmfNryau8Tm9QkYnZ3yBXeBsCuXSoWyNYiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gKtUmlvzr+kwSZwxmjsWRFmuONSWaX9lL0U/isq0Z6I=; b=Bg4pcv9oP6zu1ZG0E/Em7HDZjscQ6SS334bWk/0zb6OyWa/uzdmR5dLP0ilcAubThfrnFjtnQlDHuR7ILDVru5kuf4GsgLNByldEhNR41PLudQL6sZ7Qd9GMc6s1F2NEWOVlmwjMmueT/UG3+tJp4pHQOKGUnpCZse9lWrJCPNaRPY25nV0yRsyx7bzzHi9SJ9d8rsahUrxEY9ixAlcVqz+xuQRlJw85prs76/1kEfLLVPK2xHFT7tGn3obEzalGqN/WxyyJPdF/h+ArIYPvP2Q+7PaApYhV5HDoZ5XuZ5msJZSaUjORpuWF0kzWWTkM6e/JGFvW/UZklXnQ6AZh2A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gKtUmlvzr+kwSZwxmjsWRFmuONSWaX9lL0U/isq0Z6I=; b=RfRSBjTjOGNZ9YHDY+ZwHnttkZV1QKO20EzhdJL5vNLjC7zXa3HvuMjIrwpVNV+v7+mPoPjzYcGZAA/nVssracLRPzNZvJYOarWF74tgKuIHMKKqiPWqQGThELlG8CfS3i9AMqSXk7PvC7HKStsv7HIMuaDSXcIzHWlG5qernpQ= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB2421.namprd10.prod.outlook.com (2603:10b6:a02:b3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Fri, 16 Apr 2021 02:04:55 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:04:55 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 06/17] scsi: iscsi: fix use conn use after free Date: Thu, 15 Apr 2021 21:04:29 -0500 Message-Id: <20210416020440.259271-7-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:04:54 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9303412d-307e-45d0-0c74-08d9007c07bb X-MS-TrafficTypeDiagnostic: BYAPR10MB2421: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:608; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3lk7RPs9W+jPWfSioPaP4aZsrL5wRBUXrtUl0flwKEQhiqTObHelUY2WP8iKcBzx9OoCJSKiczRaDVuCHvN1yEyHEWtuILkO1V9n5xiXsQBTOm9nS1rR7ceOrpKnZmvh1d8gAeKgpqhmLKeunKD0i1ku0zzvtVghsltzkvY7BaP44/H+RbX7B9An4MIcrwoKaAxtflN1QHbPlSdxJZX7poMccMk6hpMoXVqImXbRzJaLlOXqGvZH3ibTXYAqMGOfbx08k0RvpySzu0c+b84eHCGtKwtvRICBU3TqS16WrSnZPWIw1P7U9EHxkp4v1nFk++gXjIIKanc3Jg5srmwecsJxHdedb5fBXh645JKveAgpVGwqhzzY1h8KvHWlof/6e8yfc7DadhatVW1GLOcepAHs0HUu0eOtEbMYvHlyrzPiKS/5vqU+z+91SUqnAaewWMThA8iWlkn7bItiBbqyRkVX0SHbrREJ6q3ADQYUkHmKSenxULbY0KQz65cLEfVmmT5zcWNyKyctEeHh4kusjhCBtsWKDawuG4rroATtCWSnSulzAI/l/6pz0+xgGcQebRunDZXrd4/o9vSkCmILkPJkIhK83dErxAHBijBnQcT+jKz7rv0daAh7uOnXtYD4934W8oKbiz9bVtpefKpQV5ZPFJyl2WPeGZPK9romuadyZh7fpAnFdYOEfKEd+c/F X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(366004)(136003)(396003)(186003)(69590400012)(16526019)(30864003)(5660300002)(1076003)(6666004)(36756003)(26005)(107886003)(83380400001)(4326008)(52116002)(2906002)(6486002)(2616005)(6512007)(956004)(8936002)(8676002)(316002)(478600001)(66556008)(38350700002)(66476007)(6506007)(38100700002)(86362001)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: sVMlHhfmZNhI3gDhmP3aT/9m8xqkrkhltx8XkfHBXtWAeukWi5GFQuZsX902J3H/Udvjc1UWATU/33CQLrYOXGo+F0Ow93lCh7x9ORMCQhLDqQ31CcYA8+dQ9r6/eHKvBFAwpGioSKmcDrHDD5SgOTixQB9LrGtQCqlN9oqJyaXEBXFa8sOLN9/xHSj86Cz97a6CI508cFd7ZPqBj8lFq7qDgb26vHp+QupsmoQ38nh3hfdU9B1i3vbvWpFCuR3anP9h+il2VNLrB8dzrGLiT5iw3/2S4GEw9E2+PPgGYEWVZrjXrveSHX4C9+OTha0CK3oVhkfxWpFJkrjrHZcg3Xcod/cpa8BBAp1mkb62i6QslGQ2oJgAKnR+62wxM5mqFhpqHAfX3rTM5CXzgJUXsFXXaC6LdIA1oQCSQHB/7dag/d5C7QbQxaoVygdpjqAzIsnjuEZEhXroojTUi9jLr6HBLp9sTKokZCa6JrCYp59YeaUSeFbc6QMJDV6LgYt5LeXoKtlpxyqvCowRtq4FdA3JgtTeaNG0DzQFIwddcrWMGCuZt7u0chCjpbgq1FtIQXBlglVDllFrbCr/WmdiV/lnK18yQBhPyFldAlJy8d8nCCD8WvtqFgthWq9RcG6Bv3/BdjfmqBTVwNhWPsnuIgVrnckFOdf+7Fl3PCrBlKw+Dt1qG6ihdKU2z8Jehtg/M2kdqTPNpZTHf9Zq9SqXbHGw+JlabllcFnDkVZQujaSuvNCxKuEjUU00ixUdjvYY5f3adG27iNQZinz0y0AuqXrByutKdp43OtJ2B340oXbCWV3GgxYuPDUo6gFErmoWJl78ewXZFGx748zDNSFs27kHRWJKftUph2LuiuwWOeUzxGgR9sITvvGdKoj0c2rWdPzUnB5DQ1WF7vPID/vHQAgUIBzQqK5tFoSgX5/ftySnhwY0n/FxZ+bhlB/iSQEaACMlLz8dEFTI3NmN2Lv6Hs8R6PqIFv59vxBKGE1ffcXqjZw6doECqcLOp2SBkJSkHrwWORip8EldTMY6L8icIgqn2/u6Td+5ojjwiSk1UfwHx6v+SNco7Vgr5hhtmOqAo3ea6zF7bDQuEDeuuXb3LatSkuVMA9cLdj78incF2gpct6a1yTowEAo2NzvU+8kwSOfrCqQzCHWnh7RqcaP2ZyfW4nDpiYYWohxdixmA3zX0Kvmosfey3t9DovCBEQyTexDd+p96YsDKcXEA/lj0Cir4CFbxPo1XhUUHBz+jhvArNjnM9WREsS6CWiHI0LQBvFaOr7f5VU52AU1Xzwnt9nDbuozIs5UeOMHZhULcZ/eEE8oQ5oStw6H1FnF2MW7Y X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9303412d-307e-45d0-0c74-08d9007c07bb X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:04:55.7368 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: D9W6+6Q3Hamn+lgp+fbY4KGkccae6f+4wPY4uxi/EhrrBVVoOl1VPzCXx9OxrO/m7t5QhjJs2NiSkF1e9owZabX50jU0zFt3qwwHAuRLySI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2421 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-ORIG-GUID: ZlmmgFFTL6edTEenoAc9NxlIYTO-_egr X-Proofpoint-GUID: ZlmmgFFTL6edTEenoAc9NxlIYTO-_egr X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 mlxlogscore=999 priorityscore=1501 clxscore=1015 lowpriorityscore=0 spamscore=0 impostorscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org If we haven't done a unbind target call we can race where iscsi_conn_teardown wakes up the eh/abort thread and then frees the conn while those threads are still accessing the conn ehwait. We can only do one TMF per session so this just moves the TMF fields from the conn to the session. We can then rely on the iscsi_session_teardown->iscsi_remove_session->__iscsi_unbind_session call to remove the target and it's devices, and know after that point there is no device or scsi-ml callout trying to access the session. Signed-off-by: Mike Christie Reviewed-by: Lee Duncan --- drivers/scsi/libiscsi.c | 123 +++++++++++++++++++--------------------- include/scsi/libiscsi.h | 11 ++-- 2 files changed, 64 insertions(+), 70 deletions(-) diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index ce6d04035c64..56b41d8fff02 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c @@ -230,11 +230,11 @@ static int iscsi_prep_ecdb_ahs(struct iscsi_task *task) */ static int iscsi_check_tmf_restrictions(struct iscsi_task *task, int opcode) { - struct iscsi_conn *conn = task->conn; - struct iscsi_tm *tmf = &conn->tmhdr; + struct iscsi_session *session = task->conn->session; + struct iscsi_tm *tmf = &session->tmhdr; u64 hdr_lun; - if (conn->tmf_state == TMF_INITIAL) + if (session->tmf_state == TMF_INITIAL) return 0; if ((tmf->opcode & ISCSI_OPCODE_MASK) != ISCSI_OP_SCSI_TMFUNC) @@ -254,24 +254,19 @@ static int iscsi_check_tmf_restrictions(struct iscsi_task *task, int opcode) * Fail all SCSI cmd PDUs */ if (opcode != ISCSI_OP_SCSI_DATA_OUT) { - iscsi_conn_printk(KERN_INFO, conn, - "task [op %x itt " - "0x%x/0x%x] " - "rejected.\n", - opcode, task->itt, - task->hdr_itt); + iscsi_session_printk(KERN_INFO, session, + "task [op %x itt 0x%x/0x%x] rejected.\n", + opcode, task->itt, task->hdr_itt); return -EACCES; } /* * And also all data-out PDUs in response to R2T * if fast_abort is set. */ - if (conn->session->fast_abort) { - iscsi_conn_printk(KERN_INFO, conn, - "task [op %x itt " - "0x%x/0x%x] fast abort.\n", - opcode, task->itt, - task->hdr_itt); + if (session->fast_abort) { + iscsi_session_printk(KERN_INFO, session, + "task [op %x itt 0x%x/0x%x] fast abort.\n", + opcode, task->itt, task->hdr_itt); return -EACCES; } break; @@ -284,7 +279,7 @@ static int iscsi_check_tmf_restrictions(struct iscsi_task *task, int opcode) */ if (opcode == ISCSI_OP_SCSI_DATA_OUT && task->hdr_itt == tmf->rtt) { - ISCSI_DBG_SESSION(conn->session, + ISCSI_DBG_SESSION(session, "Preventing task %x/%x from sending " "data-out due to abort task in " "progress\n", task->itt, @@ -936,20 +931,21 @@ iscsi_data_in_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr, static void iscsi_tmf_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr) { struct iscsi_tm_rsp *tmf = (struct iscsi_tm_rsp *)hdr; + struct iscsi_session *session = conn->session; conn->exp_statsn = be32_to_cpu(hdr->statsn) + 1; conn->tmfrsp_pdus_cnt++; - if (conn->tmf_state != TMF_QUEUED) + if (session->tmf_state != TMF_QUEUED) return; if (tmf->response == ISCSI_TMF_RSP_COMPLETE) - conn->tmf_state = TMF_SUCCESS; + session->tmf_state = TMF_SUCCESS; else if (tmf->response == ISCSI_TMF_RSP_NO_TASK) - conn->tmf_state = TMF_NOT_FOUND; + session->tmf_state = TMF_NOT_FOUND; else - conn->tmf_state = TMF_FAILED; - wake_up(&conn->ehwait); + session->tmf_state = TMF_FAILED; + wake_up(&session->ehwait); } static int iscsi_send_nopout(struct iscsi_conn *conn, struct iscsi_nopin *rhdr) @@ -1734,20 +1730,20 @@ static bool iscsi_eh_running(struct iscsi_conn *conn, struct scsi_cmnd *sc, * same cmds. Once we get a TMF that can affect multiple cmds stop * queueing. */ - if (conn->tmf_state != TMF_INITIAL) { - tmf = &conn->tmhdr; + if (session->tmf_state != TMF_INITIAL) { + tmf = &session->tmhdr; switch (ISCSI_TM_FUNC_VALUE(tmf)) { case ISCSI_TM_FUNC_LOGICAL_UNIT_RESET: if (sc->device->lun != scsilun_to_int(&tmf->lun)) break; - ISCSI_DBG_EH(conn->session, + ISCSI_DBG_EH(session, "Requeue cmd sent during LU RESET processing.\n"); sc->result = DID_REQUEUE << 16; goto eh_running; case ISCSI_TM_FUNC_TARGET_WARM_RESET: - ISCSI_DBG_EH(conn->session, + ISCSI_DBG_EH(session, "Requeue cmd sent during TARGET RESET processing.\n"); sc->result = DID_REQUEUE << 16; goto eh_running; @@ -1866,15 +1862,14 @@ EXPORT_SYMBOL_GPL(iscsi_target_alloc); static void iscsi_tmf_timedout(struct timer_list *t) { - struct iscsi_conn *conn = from_timer(conn, t, tmf_timer); - struct iscsi_session *session = conn->session; + struct iscsi_session *session = from_timer(session, t, tmf_timer); spin_lock(&session->frwd_lock); - if (conn->tmf_state == TMF_QUEUED) { - conn->tmf_state = TMF_TIMEDOUT; + if (session->tmf_state == TMF_QUEUED) { + session->tmf_state = TMF_TIMEDOUT; ISCSI_DBG_EH(session, "tmf timedout\n"); /* unblock eh_abort() */ - wake_up(&conn->ehwait); + wake_up(&session->ehwait); } spin_unlock(&session->frwd_lock); } @@ -1897,8 +1892,8 @@ static int iscsi_exec_task_mgmt_fn(struct iscsi_conn *conn, return -EPERM; } conn->tmfcmd_pdus_cnt++; - conn->tmf_timer.expires = timeout * HZ + jiffies; - add_timer(&conn->tmf_timer); + session->tmf_timer.expires = timeout * HZ + jiffies; + add_timer(&session->tmf_timer); ISCSI_DBG_EH(session, "tmf set timeout\n"); spin_unlock_bh(&session->frwd_lock); @@ -1912,12 +1907,12 @@ static int iscsi_exec_task_mgmt_fn(struct iscsi_conn *conn, * 3) session is terminated or restarted or userspace has * given up on recovery */ - wait_event_interruptible(conn->ehwait, age != session->age || + wait_event_interruptible(session->ehwait, age != session->age || session->state != ISCSI_STATE_LOGGED_IN || - conn->tmf_state != TMF_QUEUED); + session->tmf_state != TMF_QUEUED); if (signal_pending(current)) flush_signals(current); - del_timer_sync(&conn->tmf_timer); + del_timer_sync(&session->tmf_timer); mutex_lock(&session->eh_mutex); spin_lock_bh(&session->frwd_lock); @@ -2347,17 +2342,17 @@ int iscsi_eh_abort(struct scsi_cmnd *sc) } /* only have one tmf outstanding at a time */ - if (conn->tmf_state != TMF_INITIAL) + if (session->tmf_state != TMF_INITIAL) goto failed; - conn->tmf_state = TMF_QUEUED; + session->tmf_state = TMF_QUEUED; - hdr = &conn->tmhdr; + hdr = &session->tmhdr; iscsi_prep_abort_task_pdu(task, hdr); if (iscsi_exec_task_mgmt_fn(conn, hdr, age, session->abort_timeout)) goto failed; - switch (conn->tmf_state) { + switch (session->tmf_state) { case TMF_SUCCESS: spin_unlock_bh(&session->frwd_lock); /* @@ -2372,7 +2367,7 @@ int iscsi_eh_abort(struct scsi_cmnd *sc) */ spin_lock_bh(&session->frwd_lock); fail_scsi_task(task, DID_ABORT); - conn->tmf_state = TMF_INITIAL; + session->tmf_state = TMF_INITIAL; memset(hdr, 0, sizeof(*hdr)); spin_unlock_bh(&session->frwd_lock); iscsi_start_tx(conn); @@ -2383,7 +2378,7 @@ int iscsi_eh_abort(struct scsi_cmnd *sc) goto failed_unlocked; case TMF_NOT_FOUND: if (!sc->SCp.ptr) { - conn->tmf_state = TMF_INITIAL; + session->tmf_state = TMF_INITIAL; memset(hdr, 0, sizeof(*hdr)); /* task completed before tmf abort response */ ISCSI_DBG_EH(session, "sc completed while abort in " @@ -2392,7 +2387,7 @@ int iscsi_eh_abort(struct scsi_cmnd *sc) } fallthrough; default: - conn->tmf_state = TMF_INITIAL; + session->tmf_state = TMF_INITIAL; goto failed; } @@ -2451,11 +2446,11 @@ int iscsi_eh_device_reset(struct scsi_cmnd *sc) conn = session->leadconn; /* only have one tmf outstanding at a time */ - if (conn->tmf_state != TMF_INITIAL) + if (session->tmf_state != TMF_INITIAL) goto unlock; - conn->tmf_state = TMF_QUEUED; + session->tmf_state = TMF_QUEUED; - hdr = &conn->tmhdr; + hdr = &session->tmhdr; iscsi_prep_lun_reset_pdu(sc, hdr); if (iscsi_exec_task_mgmt_fn(conn, hdr, session->age, @@ -2464,7 +2459,7 @@ int iscsi_eh_device_reset(struct scsi_cmnd *sc) goto unlock; } - switch (conn->tmf_state) { + switch (session->tmf_state) { case TMF_SUCCESS: break; case TMF_TIMEDOUT: @@ -2472,7 +2467,7 @@ int iscsi_eh_device_reset(struct scsi_cmnd *sc) iscsi_conn_failure(conn, ISCSI_ERR_SCSI_EH_SESSION_RST); goto done; default: - conn->tmf_state = TMF_INITIAL; + session->tmf_state = TMF_INITIAL; goto unlock; } @@ -2484,7 +2479,7 @@ int iscsi_eh_device_reset(struct scsi_cmnd *sc) spin_lock_bh(&session->frwd_lock); memset(hdr, 0, sizeof(*hdr)); fail_scsi_tasks(conn, sc->device->lun, DID_ERROR); - conn->tmf_state = TMF_INITIAL; + session->tmf_state = TMF_INITIAL; spin_unlock_bh(&session->frwd_lock); iscsi_start_tx(conn); @@ -2507,8 +2502,7 @@ void iscsi_session_recovery_timedout(struct iscsi_cls_session *cls_session) spin_lock_bh(&session->frwd_lock); if (session->state != ISCSI_STATE_LOGGED_IN) { session->state = ISCSI_STATE_RECOVERY_FAILED; - if (session->leadconn) - wake_up(&session->leadconn->ehwait); + wake_up(&session->ehwait); } spin_unlock_bh(&session->frwd_lock); } @@ -2553,7 +2547,7 @@ int iscsi_eh_session_reset(struct scsi_cmnd *sc) iscsi_conn_failure(conn, ISCSI_ERR_SCSI_EH_SESSION_RST); ISCSI_DBG_EH(session, "wait for relogin\n"); - wait_event_interruptible(conn->ehwait, + wait_event_interruptible(session->ehwait, session->state == ISCSI_STATE_TERMINATE || session->state == ISCSI_STATE_LOGGED_IN || session->state == ISCSI_STATE_RECOVERY_FAILED); @@ -2614,11 +2608,11 @@ static int iscsi_eh_target_reset(struct scsi_cmnd *sc) conn = session->leadconn; /* only have one tmf outstanding at a time */ - if (conn->tmf_state != TMF_INITIAL) + if (session->tmf_state != TMF_INITIAL) goto unlock; - conn->tmf_state = TMF_QUEUED; + session->tmf_state = TMF_QUEUED; - hdr = &conn->tmhdr; + hdr = &session->tmhdr; iscsi_prep_tgt_reset_pdu(sc, hdr); if (iscsi_exec_task_mgmt_fn(conn, hdr, session->age, @@ -2627,7 +2621,7 @@ static int iscsi_eh_target_reset(struct scsi_cmnd *sc) goto unlock; } - switch (conn->tmf_state) { + switch (session->tmf_state) { case TMF_SUCCESS: break; case TMF_TIMEDOUT: @@ -2635,7 +2629,7 @@ static int iscsi_eh_target_reset(struct scsi_cmnd *sc) iscsi_conn_failure(conn, ISCSI_ERR_SCSI_EH_SESSION_RST); goto done; default: - conn->tmf_state = TMF_INITIAL; + session->tmf_state = TMF_INITIAL; goto unlock; } @@ -2647,7 +2641,7 @@ static int iscsi_eh_target_reset(struct scsi_cmnd *sc) spin_lock_bh(&session->frwd_lock); memset(hdr, 0, sizeof(*hdr)); fail_scsi_tasks(conn, -1, DID_ERROR); - conn->tmf_state = TMF_INITIAL; + session->tmf_state = TMF_INITIAL; spin_unlock_bh(&session->frwd_lock); iscsi_start_tx(conn); @@ -2977,7 +2971,10 @@ iscsi_session_setup(struct iscsi_transport *iscsit, struct Scsi_Host *shost, session->tt = iscsit; session->dd_data = cls_session->dd_data + sizeof(*session); + session->tmf_state = TMF_INITIAL; + timer_setup(&session->tmf_timer, iscsi_tmf_timedout, 0); mutex_init(&session->eh_mutex); + spin_lock_init(&session->frwd_lock); spin_lock_init(&session->back_lock); @@ -3081,7 +3078,6 @@ iscsi_conn_setup(struct iscsi_cls_session *cls_session, int dd_size, conn->c_stage = ISCSI_CONN_INITIAL_STAGE; conn->id = conn_idx; conn->exp_statsn = 0; - conn->tmf_state = TMF_INITIAL; timer_setup(&conn->transport_timer, iscsi_check_transport_timeouts, 0); @@ -3106,8 +3102,7 @@ iscsi_conn_setup(struct iscsi_cls_session *cls_session, int dd_size, goto login_task_data_alloc_fail; conn->login_task->data = conn->data = data; - timer_setup(&conn->tmf_timer, iscsi_tmf_timedout, 0); - init_waitqueue_head(&conn->ehwait); + init_waitqueue_head(&session->ehwait); return cls_conn; @@ -3160,7 +3155,7 @@ void iscsi_conn_teardown(struct iscsi_cls_conn *cls_conn) * leading connection? then give up on recovery. */ session->state = ISCSI_STATE_TERMINATE; - wake_up(&conn->ehwait); + wake_up(&session->ehwait); } spin_unlock_bh(&session->frwd_lock); @@ -3245,7 +3240,7 @@ int iscsi_conn_start(struct iscsi_cls_conn *cls_conn) * commands after successful recovery */ conn->stop_stage = 0; - conn->tmf_state = TMF_INITIAL; + session->tmf_state = TMF_INITIAL; session->age++; if (session->age == 16) session->age = 0; @@ -3259,7 +3254,7 @@ int iscsi_conn_start(struct iscsi_cls_conn *cls_conn) spin_unlock_bh(&session->frwd_lock); iscsi_unblock_session(session->cls_session); - wake_up(&conn->ehwait); + wake_up(&session->ehwait); return 0; } EXPORT_SYMBOL_GPL(iscsi_conn_start); @@ -3353,7 +3348,7 @@ void iscsi_conn_stop(struct iscsi_cls_conn *cls_conn, int flag) spin_lock_bh(&session->frwd_lock); fail_scsi_tasks(conn, -1, DID_TRANSPORT_DISRUPTED); fail_mgmt_tasks(session, conn); - memset(&conn->tmhdr, 0, sizeof(conn->tmhdr)); + memset(&session->tmhdr, 0, sizeof(session->tmhdr)); spin_unlock_bh(&session->frwd_lock); mutex_unlock(&session->eh_mutex); } diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index ec6d508e7a4a..545dfefffe9b 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h @@ -202,12 +202,6 @@ struct iscsi_conn { unsigned long suspend_tx; /* suspend Tx */ unsigned long suspend_rx; /* suspend Rx */ - /* abort */ - wait_queue_head_t ehwait; /* used in eh_abort() */ - struct iscsi_tm tmhdr; - struct timer_list tmf_timer; - int tmf_state; /* see TMF_INITIAL, etc.*/ - /* negotiated params */ unsigned max_recv_dlength; /* initiator_max_recv_dsl*/ unsigned max_xmit_dlength; /* target_max_recv_dsl */ @@ -277,6 +271,11 @@ struct iscsi_session { * and recv lock. */ struct mutex eh_mutex; + /* abort */ + wait_queue_head_t ehwait; /* used in eh_abort() */ + struct iscsi_tm tmhdr; + struct timer_list tmf_timer; + int tmf_state; /* see TMF_INITIAL, etc.*/ /* iSCSI session-wide sequencing */ uint32_t cmdsn; From patchwork Fri Apr 16 02:04:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206485 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF12CC433ED for ; Fri, 16 Apr 2021 02:05:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8CDF961158 for ; Fri, 16 Apr 2021 02:05:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238040AbhDPCFd (ORCPT ); Thu, 15 Apr 2021 22:05:33 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:48288 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238006AbhDPCF2 (ORCPT ); Thu, 15 Apr 2021 22:05:28 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G23vdP098673; Fri, 16 Apr 2021 02:04:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=yrI/KxAcaR5Ai3Q3MPK+sUocnXq3/ia/hnQ5tLHlq7o=; b=jSskJA/qsiahoPL9yAtfd9xuUay68HItM04e/9LoMUUi+SSiATwDFeQU4lNbO0f9c1dQ gNSj+4T81YZ0aoiR68Sqmd2j/KDqrPawg0+1jmuCbTTkW9HMkYhlVXoHykycGVAvtP28 R3W5IJx+NNR+WRNEB8TnVgP09fDbzMWreavBxN9siEDU7de3fXZPa+yG2JxjRp8nsPN/ /ZTjDEkpFvZ4I2oI7m0NcUaTyRDjft+j6zYwwbGOr1019o5ObK9VnNuRNt2KsWPb8um+ URykvDM3GdCHoaeMSBWPn1CLhjc4nuSQilqg7n7XRtRlsaRz4QvOMf7ZL0Wgrv5JCkvp +g== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2130.oracle.com with ESMTP id 37u3erqpe1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:58 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xor1008605; Fri, 16 Apr 2021 02:04:57 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2168.outbound.protection.outlook.com [104.47.56.168]) by aserp3020.oracle.com with ESMTP id 37unx3snxg-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jRFVWk9fn6yiBa8A0Junmn7EWW/5ZmJ5iuuFi2+WSkJd8pkVHFZpH5kf8NMOgNuZsPsXftOKpI/hTZEdPQ6IVbKCpXH3ysxBt2K+zQSoqK7NeE6kYGl90M2TZdjLb3DyqmSuGhuRG9vr32xYJIjFrkhGVYEJ5CYK2epo7ovdDFTsiOHD57aAFAhJD/BiYLE+kqGQl4f8iOg7MbVL27cbqSvforPPmddxOqJUm1mZRj6UKTqHsirZZQlvjnhlEPgLqowJNDemDuVvGOGM87F7k/pYU73oSnbzL6qT0Dau3tjMV7ERq3LWcTMZxa4PuEuE+bWfZa2U8oarQgAloTu6yA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yrI/KxAcaR5Ai3Q3MPK+sUocnXq3/ia/hnQ5tLHlq7o=; b=N542KIHviHp32arRn3Q2EarLAI5ZfGXfINnC9OoDNZEGMeLvn82PzT/a5vdvllJUgAt8G2gJ72FKjCZxifHV0FSJsKOhD06pxryy0yhEExotWqfyKZ+6+w9a/mWxroiPL/BBYLrKrM8f47iFgn+rGYvkQSlpMUzu5xU6u8dhC9+Xvwu5NPDhrkYo1K7aecOctPm4Zym8r/yNfUqGwKWJWOjIYfb1sc3Iy0mWChX8wpV0vmV1G4+/1ISMQcJPEczueza69zyJ6ndIAhdsAlxv8RlZ1+lnqcMQMeGz5Kxv/HetxurzFakBsvY5lpdFm/+WhAOQ8a2HQtPK92U5MjcCHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yrI/KxAcaR5Ai3Q3MPK+sUocnXq3/ia/hnQ5tLHlq7o=; b=TEmi+A6kZaWC2+7VKJ0AfZOEG58UxkmnEthhra+V189/fnlHxMwmDql8grKOIY2Aar1TtBS8qtf9ynIMTGHYSgkDmRBPcwgwmT3ex/rU/4v2XgieWFBrkyEACZBzPdfq/KP69Qt61nD1DsLa+Cs6hYqmJ4u89qCAw3PYrYDWhio= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB2421.namprd10.prod.outlook.com (2603:10b6:a02:b3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Fri, 16 Apr 2021 02:04:57 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:04:56 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 07/17] scsi: iscsi: move pool freeing Date: Thu, 15 Apr 2021 21:04:30 -0500 Message-Id: <20210416020440.259271-8-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:04:56 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1e9c2c9e-046a-48f1-3d9b-08d9007c0865 X-MS-TrafficTypeDiagnostic: BYAPR10MB2421: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SWZ8JT228GzeWfUJM6Cw1zFuNArD/FDMSsiBYR0xj6qIn68U/VH/Vxt8xYEtX1uY2iFjn+5ONVhSXhXut+ce/3o0ZiZQTckijV3dvDuV9HeMWQMPBJSFKqL3dPs2ZYualxE+AmfdsG9GvOwMWj6eqU2dKurjJHo9Zw1rGeVoyHM5KsoMaU6fMT5ZgY1ytuJnG7iW6Y/kACbloRCDS/UVnxrd9iC0hnUdm4DPxBHM9LccZt6Dwzx9qVa+TLyuWvDxAZAbOfhdxYFQ+1NFoNq5fvRkb0PB7GgEfmr8tX5LhyvIPYSzpoon8a32ukg6Us9ua1BusgZCgEV9PiZbClWITgujDbVqQPktdhdrZt7pShf0ldJNzorg3zHZkNCsDPvdlmHaV8w4TeEWgeexJW70VZ+g9fbtubE9+xSDaa9aveJXcBX8hfmckoabnBuPkE0haoBHkhHEHFibqPFlbXhbDQWp5zlWy1jWLK8L2AaG66CNfXTtJldt/a6bntPnF4najRVu/UyAjXK7EqcSSf9lSo05pu8+4tYKP99mrp4+pCEx6uGFKfSIId0b4xYa034UFTR7cH9sGUQTMapcbHdo/QNuugGSebyFfsVfP1HMlPKYlz+lr5VfoYxAFAEwPNC+/48AH8/4FwKm4Kqh+062UnjeuFY6DgxnDy51wZnpI7KhCkWWJUAJ6k1zW2+HTFKD X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(366004)(136003)(396003)(186003)(69590400012)(16526019)(5660300002)(1076003)(6666004)(4744005)(36756003)(26005)(107886003)(83380400001)(4326008)(52116002)(2906002)(6486002)(2616005)(6512007)(956004)(8936002)(8676002)(316002)(478600001)(66556008)(38350700002)(66476007)(6506007)(38100700002)(86362001)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: tfb+p9OaicVkdCpHT6/vizXikUMVgd0j4uoV23+UvS3EP5kfvkVGHf3HiMGxCTwGQ68IayxL5v6BcMoql3qaDQJZbuK1YwDDtimdsrc9/O0HVU8NC0eAqjT7Zkx5UEMNm03Jpmq5PjZ6KN2O46ckfjQQWpesTAFqncHKyhDqM6ovinsKPzltn5g+lpanv6GLsHD33hiQ/QhJL/LJNdzDm0+rZwJEHmDi02NeNzI2tVKUcoJ5g4kQzb8PebmSRhqoisG2Sg2U8W2QAyijt9muoK7GsncVNwJKg5Qjmd+j6bvT+QEWU+PXirkqj3X1XenEN8Lxch5tCvwD2PBRTiZO6DQQvvdoWxG4T2kNAjeQey970cF2rFz3r8bAC18MYs3yAbw4e4ECPc1S+PIw1D6CtOjeesVWQVKE3clcIggSqvnTjJNxQ9sL7nI7cA2qzYR8u6qF84sPMxKgo6vebz49S+cDMk3KVivs3ncyDDJtyujyQodDWjJUNsL1zaBZgm2ZBBChUtbC6X1z18yZRPQuWh+kub4itBvU8B+47CI1o8CtqwS/i3ORw1phLl880Q5x1L3q78AsEwwTuaptE7dxApPyKXZldbN2UfgISCWtAIVQ2+GZXzGIrw3Oz05gMqkO6a+N5MJs6tFvdiXmqKeoyOjsHYZ/ROHq9Kxl5ULELmnIfWPuNq+D2CvNOyXloWa3yWEJt2szWaFxannXgYUIi2tbZmAG3YqI37xUdgAq1Hi6Zdv9A4v1RDdMcetiApXZlfoZaJEJy1l1xDVQIcHFx6F8Lzg7q62+qde3lpMrYWqREJg7CzCSf2zQ5CqxzLy/hL/kFo/B6j9h0cyamfO9VGPLw3TAmxspQB8UiEDNMZaiZ3zVbjwJfDUU0NrQutA2n4917BflBLiqbB0R8/6Rxd5hmg6WnWXmR70uTqYPiA1htorqOGjHNOsyX3mbZBMwT0YyEmnWHJ5J5eATyCkkvfDrf0KoBafuO8Azi9OI7hB6vMwSLhuWtK4H/0CL2lZHtC4cPDP6+a4K13QrQtWmzRJIFaxUhSLP+/4zQ0qFmYnYJCFlA6AjrcUge6oLzYH2psaaAO8NH0p3uVxo7WhjdQg16gyRGoLAzaic4IanWH09e2iMRIzs0+ydnwjpVKkqvTI7IUDVwwdDoHdhHPsIyN1KPvEFAUn3aEnWBnpwtjw4uGgKt99zDUT4ifq3ERUaqQibxXUu6Eu87tGHkO6Wwa3qRC5NfN4GGy2CkbUeK0e8mABrzLX9rKxj6PW1+pJ112SGUrcJKGOmduE2pea/WkCmdQOVNJUOYrcWru5OQQcp2o2jFNWx/CFeq/TBFvcO X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e9c2c9e-046a-48f1-3d9b-08d9007c0865 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:04:56.9071 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: c3s4lRByiJurGuyPXvjtZnh8aC/Fifvc0xZuyq4PrsP+lUjbeq0Af6086oWMLssxm8dskAtw/sm1aEn5o0qrOnxlWNrvxDmybpQ7jrj0nqI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2421 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-ORIG-GUID: iOKqMKWPMLWJOCVFyaeTcc3WsWF7b9mJ X-Proofpoint-GUID: iOKqMKWPMLWJOCVFyaeTcc3WsWF7b9mJ X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 clxscore=1015 adultscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 spamscore=0 impostorscore=0 suspectscore=0 mlxscore=0 phishscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160015 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org This doesn't fix any bugs, but it makes more sense to free the pool after we have removed the session. At that time we know nothing is touching any of the session fields, because all devices have been removed and scans are stopped. Signed-off-by: Mike Christie Reviewed-by: Lee Duncan --- drivers/scsi/libiscsi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index 56b41d8fff02..b2970054558a 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c @@ -3025,10 +3025,9 @@ void iscsi_session_teardown(struct iscsi_cls_session *cls_session) struct module *owner = cls_session->transport->owner; struct Scsi_Host *shost = session->host; - iscsi_pool_free(&session->cmdpool); - iscsi_remove_session(cls_session); + iscsi_pool_free(&session->cmdpool); kfree(session->password); kfree(session->password_in); kfree(session->username); From patchwork Fri Apr 16 02:04:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206493 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2AB95C43461 for ; Fri, 16 Apr 2021 02:05:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 04CC561158 for ; Fri, 16 Apr 2021 02:05:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238061AbhDPCFp (ORCPT ); Thu, 15 Apr 2021 22:05:45 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:36186 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238033AbhDPCFb (ORCPT ); Thu, 15 Apr 2021 22:05:31 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xgt1166461; Fri, 16 Apr 2021 02:05:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=I1Oe2AWVorcjAuB+4EZUsQ+4mDqnLURyB8JF+FnjzEU=; b=Wp0TJvpyLakoWug51lflJ6e/f4Z3hMMtn6gojsOPvwoqLhV3RO15qo068+fuUutRsYyd Z9ZnQsNOHgJgnX7DBo0TSo2AtvQVfhLTsyEYm0M0Ly/TGkIA/+a9X0aHHDsOKqugen02 DM+Q2wZxJR24sAFuadw3dYQLak3/l3tbUrO7NZg66OEP8YtHTZGZUk4kkznW2hgSxaqV ZVPj0LtmbWXHZk6qTX1u6r3YWUOIv1e0B/N4K3ffOl6Rxgygc81pEpQ7YcLMhiokoXgw idlYHAJzkgcvPJ4pxArGLk1fRIBxeyIbD862OsWmMmVYXVqKGNphL4b6ceKgC0boMwYY +w== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2120.oracle.com with ESMTP id 37u4nnqmfr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:00 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xoQu008624; Fri, 16 Apr 2021 02:05:00 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by aserp3020.oracle.com with ESMTP id 37unx3snyv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:04:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nIPL3fUj5UY5YV+PSko3d89bK96BhUXY8Kb3bNujCmDeOjv6UZ5WcpHa7m1qIFhBPfdROCCJA6lRWdd0yCnCurxX9/btdBDUss5IW7QiW92qrJQ6J6h1s3t3QGiNKjlWchdQW2LPRj1oKP0d/fKQ6lg1eobMl4oIanGC5sq1dGNJjxheDRx4jCuhaBeRuC0JrMArbGFoN0/MvuOcfNGrpfpIBB1S+58zyb7tCcuWTMAmpMACQ8qJg589tkiZr9cUcxEgji4tyEL8xILPXjAyW4K+tGopRNpDFCF5b3HEExHn9tcfUlnRLHJg/gZbb+wAmgT8YZj/BHnOq6088lsiog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I1Oe2AWVorcjAuB+4EZUsQ+4mDqnLURyB8JF+FnjzEU=; b=FT1M53PWmcOKBVrcRXRT7JNRHEg3PZGxP2K/C3AJyFCRYIdXUIfdlK9sPhm0t54uz39wGgfLFI6bnirG07WkIw5ZA7icohGZfZ1GtAY4AXMPahisiU9nSto8+Gut5xmxWUKEFQamzWg87doJQDnTORO3ztycj/xGJ2DjOxoLmqWwtKuTWVG8ID4JD7ny0RRddQwNqE+aqbypD1z2582zTkXLDXzxm749R4tb2z7LYYF/bU9vDYCvDUkIc6mW5LFNbrwYq6MZ4SKr3oSSbre8xdBNKdX5KI0inBLZ6HQCuem0YoUL7TMYjWiUXNzpgXysTvAZmWJSLQ28ub7QqYo8EA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I1Oe2AWVorcjAuB+4EZUsQ+4mDqnLURyB8JF+FnjzEU=; b=KizBX0Drs1+Ga9TdTXRsXpE3VxkGF25FDkacPcN0bZiHTLWEpVz6FF7vmM8nXCMxatgKLOv0fdrfXhyyEXT8OOx6F0xl+TabMSGo82+uW1voKJgE/xHbgqM2ektUdSF/BJuHS0J5HwdVoETBDb38xOJt5nTyFwBYoV2qEQOT+jk= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB2421.namprd10.prod.outlook.com (2603:10b6:a02:b3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Fri, 16 Apr 2021 02:04:58 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:04:58 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 08/17] scsi: qedi: fix null ref during abort handling Date: Thu, 15 Apr 2021 21:04:31 -0500 Message-Id: <20210416020440.259271-9-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:04:57 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3619bab1-80d0-4d66-1856-08d9007c090a X-MS-TrafficTypeDiagnostic: BYAPR10MB2421: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1850; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rLp8tW5IUyfM/c8EjQ0zp90hfsU4rP88ZcK0sPWevUBHw5K+WHRk6hDpahqlW8D1l09y6dMUEv6e/4dQe74Z6dCupKywCX4T9myB7MeOnqe+h6gjkkyq8i4QAP7zpTIKB7R9tBlkHeSvcwK6bMb0GSAf41BeUSOVUfWokZDTxzgfCttTAc7FxOg86tKnJBcrVjm2M7MDemi8rAAg0qzac2mJEAQdatW6KW4Ad5fB3sPIPJPC4PbbM0ypM9FXFFFdGgxO9aqx7/QvgY5CoCW7oFyjuQ8fTNxyUkMCTWHzQowxsLkXDnUO+2BwIRFZl/6tCWDFWNp3YthgyMBuDaDgiOs2aPnjf+Nkig8NDD6mKbIGBBThip0tN+v/n9+wdHa3rgY4h3I1oT2b2VsFEr8z0Up8CLOzhnTlWbDbr7mFGrAJFKyaFO0W0Okyrao3cdhiXYfs5URhV6pt1zt3QYZehA/o7vpkQMZONrtib3ZYdh8temspHSB+MyHr+CuWUtBHuiJQSYoxV4cx06SPHXIby9NOb9yQl0lLwecbHYVpvnIaBXBXjpIOnZ/tgCNcIWm4Itq50uF81Y+Q/W0M+DM7nUFz6ej+VTuoUfspIJbbHhojOKCFm5LO8JAaRHjRIU+61ye/XRYtaCQ+etVIJ+VZP/DAJx7SpsGtGvV1dxYKCkiAsL0H3O0lUj6wa+BznQXE X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(366004)(136003)(396003)(186003)(69590400012)(16526019)(5660300002)(1076003)(6666004)(4744005)(36756003)(26005)(107886003)(83380400001)(4326008)(52116002)(2906002)(6486002)(2616005)(6512007)(956004)(8936002)(8676002)(316002)(478600001)(66556008)(38350700002)(66476007)(6506007)(38100700002)(86362001)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: AxTk6WrRW/wCdFhDd/uN2G/d9LMG9ZxNvcI1Vz/PrWffGXfviUhVjHfVc5bLMXOi6vn5dr+Q8PqZ2amvPrqmLf7iAzxqGp57uNlkw5JmRpeUF8czA30nKPcMs4KEAaIXKBgFKrxollRkLWzEe6B4WuM8p0ZHReqsAEx7wxasDSMvSLXOZ/cl/+tdts6+XQdbg6sClLjW1Swel6c9yzY8JaOn9iVynlp9OtWq7+7dtwR5+EfhmR04hsJ1s0XF+Q2DBflAv8/+PYyKZGJuB3XEyNWMPXpKwI27y3WcE3HkZ/JKH/xiMDD0f9lNm5UOHm0fR9IS9MuMB6qdt5/Jw16qANQe46SP+Bw/Cwcdo4ZrvAfILQbitjyugeEg+duhfosQgXzNaHKNXwRQwGgPy0dnwEFIHEeSPrL49w1peV9nL6yAG3A96xhBdC7NwXxbFlYPrHYN1PlsZu6Syj/69aS/ttsh8iB6coyT0ca4p+Qp9OMi7+G+cFGL2Yzsz8NDFupzcPBtBoM0zr5NY+njCJF80xVq1THMqyLGm4qEs6dQ9o+ycSkobC9Bp2ZVB/wVO8w1h3eOChThJX0pDeZsa7fQLxgF/0/A8adW/9rAnDYq47BY1KJu88nXe6R85aKiW/VZbXqVzPCwI7X9HijGbPh/jRD5U+g/NQgUJ4jc8KsDZg8Se+mqVO8eTyB99DmZ2gDhezmdeJLJg2CXUm3CEseT1m8uJZ7v3k7mb46B8Zk8eDJnt5LqCBkDbl0m1zeBIRlEgiMaBExIirCNtZIPNOB8bBFqLO+cR13n0jXdZmQ9axV5PAzkopdNt3E+4XhXhTpdKDpRI/siTcbLcZVJ8vrDmQ1RL7JYD23XDxvsSq2NpG4ebIhdI2CkL9LIulufCG0sKYtX++jFKj6r3jWDK+ni5YdEsh2dSaSlRmMvOm8eQ2+eHPpn4qQ+o+5LjZ+xS4+Fq8rEGdBw4KsLsuP6V55MPowmRbVBvk/m5qeIOjhzIcA8XqtxR9nJEYNI/eqRboYPqcBsUyFJ8J9Dcm7+y7lylIX17YL02gTiF0M1kHsugJSWL4hEvsF94Eva+VzkVdfoMhE4Us0jxTnrScDT1Ec+FwURnTZAcq3uHTRPoOR1dgYoTiZfcnrHLLayRPSWNuUejq8sH4gShdaY+/APyUT/4AU28G12KM/ccqXahQCBtq5OA9nvyzSCOmKGqOop4cMvULt2uyW8c/ParisbnGnwWKCmVFlE2alAeB5/oGfBR/LzW0ltP6OiCL2Wu2Ap5ySyoM7USiJW7yDn+xz7nu1CiHs2QO/cjm2gCRc+3TefsrJPc6O53j9yff9xT1BJBpym X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3619bab1-80d0-4d66-1856-08d9007c090a X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:04:57.9735 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Kj8AnSIvNAMUxM5LUH5Cj4qFo8sh2q8uiXGA+9JXiEltIK7Yf5sQIlmSpe/6iayPOTzho/+1/opMMCmsx5hP4uJfGb8fgPjshm40g9B0mno= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2421 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-ORIG-GUID: BLPYNUpiAbKhbLVxUxA5C-BZtl8qceBs X-Proofpoint-GUID: BLPYNUpiAbKhbLVxUxA5C-BZtl8qceBs X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 phishscore=0 suspectscore=0 mlxlogscore=999 priorityscore=1501 clxscore=1015 lowpriorityscore=0 spamscore=0 impostorscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org If qedi_process_cmd_cleanup_resp finds the cmd it frees the work and sets list_tmf_work to NULL, so qedi_tmf_work should check if list_tmf_work is non-NULL when it wants to force cleanup. Signed-off-by: Mike Christie Reviewed-by: Manish Rangankar --- drivers/scsi/qedi/qedi_fw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/qedi/qedi_fw.c b/drivers/scsi/qedi/qedi_fw.c index 440ddd2309f1..cf57b4e49700 100644 --- a/drivers/scsi/qedi/qedi_fw.c +++ b/drivers/scsi/qedi/qedi_fw.c @@ -1453,7 +1453,7 @@ static void qedi_tmf_work(struct work_struct *work) ldel_exit: spin_lock_bh(&qedi_conn->tmf_work_lock); - if (!qedi_cmd->list_tmf_work) { + if (qedi_cmd->list_tmf_work) { list_del_init(&list_work->list); qedi_cmd->list_tmf_work = NULL; kfree(list_work); From patchwork Fri Apr 16 02:04:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206489 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F3CC7C433B4 for ; Fri, 16 Apr 2021 02:05:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D66DF6117A for ; Fri, 16 Apr 2021 02:05:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238053AbhDPCFo (ORCPT ); Thu, 15 Apr 2021 22:05:44 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:46630 "EHLO aserp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238026AbhDPCFb (ORCPT ); Thu, 15 Apr 2021 22:05:31 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G24euW178941; Fri, 16 Apr 2021 02:05:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=fRYGTHpZJ3XTRR9QPr8fTErL1ynm/Sj5S20NNA14Y6I=; b=rDT0s4sU9MOQPzcimmsHZin6muHhVqeaS03JhPN7k1gLwLBB/DD9qlzSlBVsusrQ8gMP A7AWccsPxDsl3jQYN0KKE1eyMIUbtSfGubz2VXU6NO1+LYoYMEF/w8pZqObFJN9DyARt FY0WB3oHD3bsP2781KkOA+iX0q0joNC6SbaR7FjHn9R0gPH8b1XGJQMYmq0oKuEayB7/ j+K3zMwClDut2Ahum+HHVAZm+xD1jE6FB6GGRIUJFXbuGwmPIKpPOOfReUymeSbBOzAf sh0wt7D2iEvxPqp/KqflRIl6Wl1d8Ms7Gkh18Qj0fO7qqIWXMVSHNE9k+LHzH/gQTUH2 Hw== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2120.oracle.com with ESMTP id 37u3ymqn0j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:00 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xoQv008624; Fri, 16 Apr 2021 02:05:00 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by aserp3020.oracle.com with ESMTP id 37unx3snyv-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K5Z0tJidwn8RIb4WbPMssd8PMa2bmGLwbvB4yjwxoEWqNF2sXl/6AJdlDv1IOy+QrRJCQSL3uUQkzLZyH+6D6KbamqiB/vshdf6vqpzvB2ofjtou8UGhp+/r3FONonuD/HKRQISS5xVk9CwqdW/wszUKFUonNp6wvOawHN7ldSlvPs0jdvR8rwRhcqIjdzRQ7Gp6+VAHAqai0pXOr0oAYriW7PY9UlU9N/R2ckRcapCdbx89fsgrGfWqZhNWNdFLWjCOEL6CBjb5RX1ytyNDJzBC5H2k1y6aYzWUhCwsa7AqYx+a9ddOUZP5EVn4ZUqnlNdnZq37hmva1cGLz3qx+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fRYGTHpZJ3XTRR9QPr8fTErL1ynm/Sj5S20NNA14Y6I=; b=dioYZEWkEu+KscP+s41VLqHC2W3hGP6idLKzPsNih5WH2j//4rsLeOOh4g2S2w5LH+WYJPWDkWwoCWMw/Up9/xPMey7tJoSpxNK2J07Cspc9przN5YEUKbrttGqNxQ65sbPwxJOBgkoxlzac8XkOF3ec+dR8LmSBEBgNjnjVBL0dx60RzJhkbemmiLRVL0D/G3K+iWCySLoUX/ulTRInuR4LYsOLDRtEflkP1Uffz9jjNP6AvH0yJysY0ivJqtHCK5BZ7OG0VoUZl7mGWwi6qAdUc1m/svW2D5NZJ5JXfhRhXknYAZ1mSBCbsAE44K4ot7tOQrDS+z7ApLDa8jF9Ww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fRYGTHpZJ3XTRR9QPr8fTErL1ynm/Sj5S20NNA14Y6I=; b=nF+GhxljwE2IMi0jL9v1xTlYRPdKNxXYcu7S1kXtJTOlg47+T/4nSW1pFOTNAS7PdKgFK8OT/TEGHkjwbN+cQdadKCV5DR1CNMo8SlBjwS5vbQe/tb0mpymmylQVFpALKHJ0gB4W7+XF9ejjF+LKxt7U6YqcKm7pFmi2SyH48JE= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB2421.namprd10.prod.outlook.com (2603:10b6:a02:b3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Fri, 16 Apr 2021 02:04:59 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:04:59 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 09/17] scsi: qedi: fix race during abort timeouts Date: Thu, 15 Apr 2021 21:04:32 -0500 Message-Id: <20210416020440.259271-10-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:04:58 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d8e81fa7-1b8f-4942-86de-08d9007c09aa X-MS-TrafficTypeDiagnostic: BYAPR10MB2421: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XeP0VGZzY/BLnUD997BpLdwzsimjhVIj+g4Lr5/pIl/L7mfI7OCiCy5EPtxQR8zm3JFSQPdkYuNqwXPAxTvFSFNHbT9noCSpZ+acq9I37gxJ6/txVcRUGVzc9Ec7g3cqCubGwom4akao70hXyuiZBHsSAxbU1oNPhP2seUWvYcpqx3hcLZK0kP8SdCgcATXRlVyJDbf7vndz04D/gO0DWqKfAySe29MPnkqRiEY+T6x+rfErPmtCGvMiCFfV3DL+kVBSUfHEYuOoeJZqkeC5XowD4Qovv5ZQZDT3/bfxAliyaAPJvwCBBWyfEuSfb9pj2Uovefyx2+CjjXARqTWcw/a1TYF5ddVq8q3k79nWI4pRMolPudq9bJZOSuikLDq37ZQzHu5ZKMp1ypIUJ69EtkcgOE/13Ndm3Oji14pOj+fT2q54ypif/ZnW9wgLFLMdfC08FHD884upR5JVsMK5xeDPcfrJdIdUN9OAoe+OsKPeXvQZJX7hsa/bXioEygLDBwemsnDahNGc2IVqz86a1WIE8oJnq4+XLTyPN1AdM8cvCO9ZWnw8TL/qs8EyvcBoxn+EBIIdKj1KrVYVPLNHn3+qd+XVLxUehbrUX9JJnUPVOo91JD2LD0LcPAdAo09wfHn+7cRtIpFTCO20T33C+ve8nfQ5Cyi83+m4Oa8tNRS8oVBckvibnNHsImjg4cA9 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(366004)(136003)(396003)(186003)(69590400012)(16526019)(5660300002)(1076003)(6666004)(36756003)(26005)(107886003)(83380400001)(4326008)(52116002)(2906002)(6486002)(2616005)(6512007)(956004)(8936002)(8676002)(316002)(478600001)(66556008)(38350700002)(66476007)(6506007)(38100700002)(86362001)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Rz0tI9xI1MrJLCjeEDD0/C5Gh02c+RMIX03nUD/cZVInQZy5aq3CWWgmTI+UsR8oqNmxC0JVutkIb1usz402IA2FJH1tnP8qpC4+2RORMJXcgj/8XqMNNH/mkYGX5sY2eF4U8bqRdD58jX8v05JXUl2qe+vDwv4TfJDiHESZwdNXvPXeFRqN5E7kiv/XdB0F94Kc3VRfk1415kBzyP2XnhkRIFuYqUnqcvBR+KiJimlZtq7ZwHp2NqzWt+ra+3dgRM4qWZ6YrUEM1Oz938IL8sji32RVdP8BSCTCzqWd6b2d/HxFbZZo0KKl2/sRwb/1W74iZxklbc+hwdpI4CGanAeyJGb/05GKWqZ4N7f21VfVAVgx+xhduHoV1Yn/jxpQl7lDvy4PnXSjFzvND5SHUg0IA4qDuE+25ruUgieqiJ/WWBHozgSPnkCko1yALKP7rfvzpjCWLc6OcCSlqo4QkVXf12TZQMaaEDwPcP2nuNC1TvjuBPWr41zcUeW/mfsxo5KE6QgS4WAkBG9xYM9hNAd6mFrYRkCvqPBWFUzM4JigRPQRMiG2haixdhQPhDh/WFoncbQiMJxKdYc54K9Lc7+lFlDY/C7J22hkUi897BQ/+H4xHdJoOOmpV+/oAXoOtS90rkr5mhVTBaZZFR0MaxaI4ZQH39o+IcwE/VwIgvC6EkDxuipXgl6JchbkxWrWVWbIVUgj/eq4l29NDQzlDiR6wNumgVMlYwh5OdMlvIPjQw6CXsI2YDPLER4exA1nD0mKt4wk3YuU3kRL1oY7uYaKwEtc3eMrm13Oe6+d+M8klHfH6vFjha12b6UXdN2V4xXgbLrnF3X/GzCIREyKpY4qMTlGbw07BrjAdHtIYOJ4NtVqembx/11Ecp0kbrkFDLR7oQFA/NUOXpn1WmxUH1HMiKXkz362jgZqX5AyTb8iVHCUR+/3Y7F7bs9Yn09LcrrHE3pwXcEAnE2MCtT5pYwyKWeD4r9U6uBr9ELf+8Z1yxMUDS94ESJ+fZlGH8Dvg5MkNY/eD+OOS5Bxj8Wcl9CPSEo5eiwGQuzL2ldOkcAG51MVyRwrH971CUa6d4vN3KYB/Yp8RkefP8cNQ5JQVU3AAgCjIOhwPxVrwQOot01HEl5AXMmr/Zh3jpoVZA5PNHkonfY+kpLM1/JPSMEHJH9Uj94w7FZ+Lz5s4ks6B240Db6J8D2Lq69lKiBurNnurpfebDLAmW+fPkGdcswCaagjbpMZb5ffsiaZdIY10DcofTHlPq0mm612JXyEd39s4+ishHiCPokqyjbrC0ZypVZza0MTfOTnLliBw2a8Moa08hGJSzi+bNArRZXODu4c X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8e81fa7-1b8f-4942-86de-08d9007c09aa X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:04:58.9999 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xJ+2OEL7znQIJ/aI4WCbJW8/oGig50qizhj9VsYjU6ttLdh7i5BSQJwqmC4NP3XJaiokdJM1pE6nUSPkG7giA8vSue/xs/gaQKLXIFebVSk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2421 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-GUID: uMfKw61JrbU98X1FuyUz2cDV85c102qn X-Proofpoint-ORIG-GUID: uMfKw61JrbU98X1FuyUz2cDV85c102qn X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 impostorscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 bulkscore=0 phishscore=0 suspectscore=0 malwarescore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160015 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org If the SCSI cmd completes after qedi_tmf_work calls iscsi_itt_to_task then the qedi qedi_cmd->task_id could be freed and used for another cmd. If we then call qedi_iscsi_cleanup_task with that task_id we will be cleaning up the wrong cmd. This patch has us wait to release the task_id until the last put has been done on the iscsi_task. Because libiscsi grabs a ref to the task when sending the abort, we know that for the non abort timeout case that the task_id we are referencing is for the cmd that was supposed to be aborted. The next patch will fix the case where the abort timesout while we are running qedi_tmf_work. Signed-off-by: Mike Christie Reviewed-by: Manish Rangankar Reported-by: kernel test robot --- drivers/scsi/qedi/qedi_fw.c | 13 ------------- drivers/scsi/qedi/qedi_iscsi.c | 20 +++++++++++++++++--- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/drivers/scsi/qedi/qedi_fw.c b/drivers/scsi/qedi/qedi_fw.c index cf57b4e49700..ad4357e4c15d 100644 --- a/drivers/scsi/qedi/qedi_fw.c +++ b/drivers/scsi/qedi/qedi_fw.c @@ -73,7 +73,6 @@ static void qedi_process_logout_resp(struct qedi_ctx *qedi, spin_unlock(&qedi_conn->list_lock); cmd->state = RESPONSE_RECEIVED; - qedi_clear_task_idx(qedi, cmd->task_id); __iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr, NULL, 0); spin_unlock(&session->back_lock); @@ -138,7 +137,6 @@ static void qedi_process_text_resp(struct qedi_ctx *qedi, spin_unlock(&qedi_conn->list_lock); cmd->state = RESPONSE_RECEIVED; - qedi_clear_task_idx(qedi, cmd->task_id); __iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr_ptr, qedi_conn->gen_pdu.resp_buf, @@ -164,13 +162,11 @@ static void qedi_tmf_resp_work(struct work_struct *work) iscsi_block_session(session->cls_session); rval = qedi_cleanup_all_io(qedi, qedi_conn, qedi_cmd->task, true); if (rval) { - qedi_clear_task_idx(qedi, qedi_cmd->task_id); iscsi_unblock_session(session->cls_session); goto exit_tmf_resp; } iscsi_unblock_session(session->cls_session); - qedi_clear_task_idx(qedi, qedi_cmd->task_id); spin_lock(&session->back_lock); __iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr_ptr, NULL, 0); @@ -245,8 +241,6 @@ static void qedi_process_tmf_resp(struct qedi_ctx *qedi, goto unblock_sess; } - qedi_clear_task_idx(qedi, qedi_cmd->task_id); - __iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr_ptr, NULL, 0); kfree(resp_hdr_ptr); @@ -314,7 +308,6 @@ static void qedi_process_login_resp(struct qedi_ctx *qedi, "Freeing tid=0x%x for cid=0x%x\n", cmd->task_id, qedi_conn->iscsi_conn_id); cmd->state = RESPONSE_RECEIVED; - qedi_clear_task_idx(qedi, cmd->task_id); } static void qedi_get_rq_bdq_buf(struct qedi_ctx *qedi, @@ -468,7 +461,6 @@ static int qedi_process_nopin_mesg(struct qedi_ctx *qedi, } spin_unlock(&qedi_conn->list_lock); - qedi_clear_task_idx(qedi, cmd->task_id); } done: @@ -673,7 +665,6 @@ static void qedi_scsi_completion(struct qedi_ctx *qedi, if (qedi_io_tracing) qedi_trace_io(qedi, task, cmd->task_id, QEDI_IO_TRACE_RSP); - qedi_clear_task_idx(qedi, cmd->task_id); __iscsi_complete_pdu(conn, (struct iscsi_hdr *)hdr, conn->data, datalen); error: @@ -730,7 +721,6 @@ static void qedi_process_nopin_local_cmpl(struct qedi_ctx *qedi, cqe->itid, cmd->task_id); cmd->state = RESPONSE_RECEIVED; - qedi_clear_task_idx(qedi, cmd->task_id); spin_lock_bh(&session->back_lock); __iscsi_put_task(task); @@ -821,8 +811,6 @@ static void qedi_process_cmd_cleanup_resp(struct qedi_ctx *qedi, if (qedi_cmd->state == CLEANUP_WAIT_FAILED) qedi_cmd->state = CLEANUP_RECV; - qedi_clear_task_idx(qedi_conn->qedi, rtid); - spin_lock(&qedi_conn->list_lock); if (likely(dbg_cmd->io_cmd_in_list)) { dbg_cmd->io_cmd_in_list = false; @@ -856,7 +844,6 @@ static void qedi_process_cmd_cleanup_resp(struct qedi_ctx *qedi, QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_TID, "Freeing tid=0x%x for cid=0x%x\n", cqe->itid, qedi_conn->iscsi_conn_id); - qedi_clear_task_idx(qedi_conn->qedi, cqe->itid); } else { qedi_get_proto_itt(qedi, cqe->itid, &ptmp_itt); diff --git a/drivers/scsi/qedi/qedi_iscsi.c b/drivers/scsi/qedi/qedi_iscsi.c index 30dc345b011c..416202bc4241 100644 --- a/drivers/scsi/qedi/qedi_iscsi.c +++ b/drivers/scsi/qedi/qedi_iscsi.c @@ -772,7 +772,6 @@ static int qedi_mtask_xmit(struct iscsi_conn *conn, struct iscsi_task *task) } cmd->conn = conn->dd_data; - cmd->scsi_cmd = NULL; return qedi_iscsi_send_generic_request(task); } @@ -783,6 +782,10 @@ static int qedi_task_xmit(struct iscsi_task *task) struct qedi_cmd *cmd = task->dd_data; struct scsi_cmnd *sc = task->sc; + /* Clear now so in cleanup_task we know it didn't make it */ + cmd->scsi_cmd = NULL; + cmd->task_id = U16_MAX; + if (test_bit(QEDI_IN_SHUTDOWN, &qedi_conn->qedi->flags)) return -ENODEV; @@ -1380,13 +1383,24 @@ static umode_t qedi_attr_is_visible(int param_type, int param) static void qedi_cleanup_task(struct iscsi_task *task) { - if (!task->sc || task->state == ISCSI_TASK_PENDING) { + struct qedi_cmd *cmd; + + if (task->state == ISCSI_TASK_PENDING) { QEDI_INFO(NULL, QEDI_LOG_IO, "Returning ref_cnt=%d\n", refcount_read(&task->refcount)); return; } - qedi_iscsi_unmap_sg_list(task->dd_data); + if (task->sc) + qedi_iscsi_unmap_sg_list(task->dd_data); + + cmd = task->dd_data; + if (cmd->task_id != U16_MAX) + qedi_clear_task_idx(iscsi_host_priv(task->conn->session->host), + cmd->task_id); + + cmd->task_id = U16_MAX; + cmd->scsi_cmd = NULL; } struct iscsi_transport qedi_iscsi_transport = { From patchwork Fri Apr 16 02:04:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206491 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6348CC433ED for ; Fri, 16 Apr 2021 02:05:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3253F6115B for ; Fri, 16 Apr 2021 02:05:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238043AbhDPCFo (ORCPT ); Thu, 15 Apr 2021 22:05:44 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:46244 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238034AbhDPCFb (ORCPT ); Thu, 15 Apr 2021 22:05:31 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xoYn179298; Fri, 16 Apr 2021 02:05:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=jKHV5eVxay1vbyt1mAjUPNcYZpTup5LTF/24Q2CMtRY=; b=xfjCi2OFescXWhGq1oxRrfjtNIU7ZBByyd5L5J/5pkJwVFdMfhabblK+eOWmOIR1ll6i 4URKUQQCGq7Fif035mHPniD+7jPrv/vO51JHxiBIcPbK8UuRAN4svoOwHeazuQGuBLDs E825mvh+XI6gF6FxGOYt/VQAyrxKRc/dazDz76jr3nXWlLBoHswZjZ++dESYPWfmW+0p iOHz0nmbGM6DR94FmgFG1tDBZPFhuYwceM1D5nE8pPuNqwEwPRIS5tpYBcdWqtPSu8Vk JwJ+ZzBLAgDQVzfrTjEmiVYkChjSCGfQsA8CoLiissu1vyjjJ3wpA+Oo7MN6BOJKpjsP Lg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2130.oracle.com with ESMTP id 37u1hbqsby-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:01 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xoQx008624; Fri, 16 Apr 2021 02:05:01 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2176.outbound.protection.outlook.com [104.47.56.176]) by aserp3020.oracle.com with ESMTP id 37unx3snyv-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mCZJYrZS3DBEUGTNB0jAMt+IQJPzil04NwImDeo1pbQ24ptgEn8ChzyfOJoVU9OXFvpX1cl5WCWLlFx1T+pQHUUfCwdxaL9d4OA1ZuOMDJtqTwGDUuWY2IqrMJKe1EYgvPsCd75ixBUpsVsN3BLe3Ucj0vQuwZXNU69QR/+b2M+nvYUzxThuF7A6LkGORFHkKGR8yZEDeEM6EVgTqDSS/LSz4HTVQI7Nv0AdyNkkickhL935oopjKEideZQhcgfcKgem4b65+I7o/pBQIHT6SiT6Dcixmm5Z/NbnzHUnY69qpmPva4jvwt504kby2EMyrAPGfDXuCbBwhh6uuu7xpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jKHV5eVxay1vbyt1mAjUPNcYZpTup5LTF/24Q2CMtRY=; b=Kt8rowt6AEqPDHXdD3s8XFnatqRc1OQnmZBb5cJDZpVe8PJFlmLKp8db+qWhDakgHx0Bn1Ff29F0Fv7knuHuELiJE3VPCBT7tb4M0J9Rny2K/pR81OVh6wRH16b1I1yUJYnvvVbJD9/4iQzeBzAykMoMgxf0qeplNertp28lOA6hsCAaB3rKO8ejgnIoUo4EhX3sc1r1UfVstypw7z7BorombanGiVFckXOusmCIMPd8DmPSuCVvbqFPEf3oTE5uIGYbQd9TCSMibY3BbsYv5BUXjtP8LVPgas3mvDSkH0XfxV2CJ+1Yz8XaLr7/Gvt9GNnR6QgmdtTQeshFw+viKQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jKHV5eVxay1vbyt1mAjUPNcYZpTup5LTF/24Q2CMtRY=; b=ZISIhOceug6QOz88ZRfNM9y0f6chfUZIZ/O0qCrMNWxt9EmxNJgK/AnmmjF2rWhisl8i4/oTRjIR+xDKiNZ1kwbNOyQ2JKkCvxxJi3S0dbrsNo0fKoATatGCuTA8zAHMckt8l+x7rgO+h1A+HO0VceXMbv52dznY36ENzGfrnYA= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB2421.namprd10.prod.outlook.com (2603:10b6:a02:b3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Fri, 16 Apr 2021 02:05:00 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:05:00 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 10/17] scsi: qedi: fix use after free during abort cleanup Date: Thu, 15 Apr 2021 21:04:33 -0500 Message-Id: <20210416020440.259271-11-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:04:59 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eee421e0-73a6-4d09-ca86-08d9007c0a43 X-MS-TrafficTypeDiagnostic: BYAPR10MB2421: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: a0X/JgcyJ6N4u5y2Sr9ED0YtC5jVGAVKrTS5Nb2aFUcyJsbNlOKjIPxhuf4nl2VjJmxXICMkWI+w4dRXoXXK2SxOxMIrudRYPMsel7Xz+1kaVIEjGJ4k5F5nBxEYQrBOPP+Kqu3CrC6sxIPZk6sx813K+XGUjToV1T4C5y+V3HNuZN8A2oQ+M/379pfK/DmfNhm8mccM4ihiD7ELPwOVexnVPtFsWMv1tVW1tW8ERjl0r7wp3OX5QYeCWU8lUYFZtLTjDDI50TPOa43trZ6+Xm+VzoGbcVBji5Mgd2Uc3N1Z40KIUSboEvbNby8WTxsmYTnwnQ7JyS5WpbZ25S80MviLtNtFDqSfA5RQNhAfMbqkEIo/YCLosxwGXSkEth8y277Trk+tJ3b+g6bYbXMv51gp/Sq/seoMX5FjqlHrISxRhf3npvc7wJnwWMi6laLK8/Tz23TwkLR7oVbiTXagAsEhxLlZCscltNakEKBOJs0c/vVhpxP0UqNXbSH8fiBrtCJx2LOB33lU3VLMph4ezGdZkhOVhgddeG8PmTWf06T2sQtrkMtQVcG1YEol7QKAcW9kMj6ZGivpTW5agmTE7Ac3Nccxld0xzXM8ft5Mox285nDoThAY4WPIgjx2lU+89bLaPLdtkHy9I3gEFYZE9XHdyEKOoHd3m+UKljnbfPU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(366004)(136003)(396003)(186003)(69590400012)(16526019)(5660300002)(1076003)(6666004)(36756003)(26005)(107886003)(83380400001)(4326008)(52116002)(2906002)(6486002)(2616005)(6512007)(956004)(8936002)(8676002)(316002)(478600001)(66556008)(38350700002)(66476007)(6506007)(38100700002)(86362001)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: +7ORy1bL8EoC6swL0rTTnBcy8AdjQcd9oarqL3XV7aHYubg4M5b3s/01HB9aGfw8UNAFUN47BhBNZLTjNFnP0qC+lRidlagGeLuNFjAVwgTPp1mDrglZXLMPyDkiBEGFSBFdIa5jiNe3ha321qECk5PH5efyU+NqNnB2UlYhI9qXx0l2p7MicaZg+mjw9OEp8e0kKOSge/7+zGQbevd1GReldJ8OUZyC6tsZhGx7UWj9Z5HLKjYP6S7Yx1DuIPC/W6Bt/6p9s0ohiJdTUKuUx00x/de2hH6rBlQTCPvJXB1OW3r1utP732CdjVDpZ51urh1rE4ajeAcXFv5T2JcbOJfBuhTvHTH5xqzx5JFRctK2+6d2Ay2x1qgwqy804Fj6q1KmdjOP9TOQmS8o7ZY1p6ZA441vfIJb+rl9Rk3o8BVI9b6J4727SUPW5FawVQyPsDhzZikurDYvP0jLewm+M9DQy09ZHlb7QBN1+MUUCBXKCGa3clO9Tw6t0BwpdPjvB0RZ86nN45goamvv+F5ERFum/hbccD9yfAX5a6EiVrI1N8+U93qqSoiw3epTLs8KlyVEk6D/sUwZizUqUFL/mqLXefIf0L+2Vhn04JKmSPKn1bQOvSq1tMZFwsT1XzjQ5cKBlgaaF5QNBBQA1dxggs4+9M9MUh6H6B+wKeW+ZDWLFz69RB06PBpSJaUGWAzlPF8c8fubbEDf+ZIWPfMY+iV9ZvIMZMWv0F3V/XAWkUhFyqLHKiMU0MtU664nPNgCSoyuLWlxX8bk/4izOL2MTGsKmt6enaVl003huxW2ezs6kis0bYMkLCLuml2qGd/N9TXDF3mDmBUJdezvKhPeNdAoa53ttkP3LX40QOznSMln4M+SI5I7M4I+k/vkHzItDNEb7wTwbpzwmcHYdWK/oQRNpdfx+9lKNXFaMt5YixeS/8r4vN2d3OXsHS1UTiI2IitDvcouRK4p3yAaWKYpTsLlulCI1iOFOnSOmqou5t3v6RF60OEE18REXZnQo8pZUqmX9NHFPIkMVr0vzcW5pPNviqWRmnvRnNLldAtDizmPwcRJCHIWPiSd66+sNuOLa44uOFlfdEr63I1qkDA795XvYwqh+9xuq8mobLfNpOihMmwBDN1I2es0tx9yUQTr/LMrT/UeALniWqtc+XsvW+UJnOVCp0wv4nIP7Zq790ziFx81eylMNbJH7PwwjicawXXfDoJEQ1amRp8Rt4/RFOweDyhnkostO3R54IBeXq8sI9xEOKmr5OhKIhynyPOaOpYw5kLiKLlYqYBKUe7buZ/MkZjhpVoItuDP+JCGCGJ7vhicDZ/XJ0AhNn1NyucZ X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: eee421e0-73a6-4d09-ca86-08d9007c0a43 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:04:59.9654 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GUOMtdFwvp6Cz8p8/9EU5WymbuequcpA6pjc7ktd9fPW014ydrffWED+rNtH3bTEIx0hBuuKmf+nR2Lur890R/c7XKXtTaVoF1v440PlQ9k= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2421 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-GUID: K9ne0cdVoz4AgjcYQJ_0qJrnpF8D0PvX X-Proofpoint-ORIG-GUID: K9ne0cdVoz4AgjcYQJ_0qJrnpF8D0PvX X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 priorityscore=1501 clxscore=1015 adultscore=0 mlxlogscore=999 impostorscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 phishscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org This fixes two bugs: 1. The scsi cmd task could be completed and the abort could timeout while we are running qedi_tmf_work so we need to get a ref to the task. 2. If qedi_tmf_work's qedi_wait_for_cleanup_request call times out we will also force the clean up of the qedi_work_map but qedi_process_cmd_cleanup_resp could still be accessing the qedi_cmd for the abort TMF. We can then race where qedi_process_cmd_cleanup_resp is still accessing the mtask's qedi_cmd but libiscsi has escalated to session level cleanup and is cleaning up the mtask while we are still accessing it. To fix this issue we extend where we hold the tmf_work_lock and back_lock so the qedi_process_cmd_cleanup_resp access is serialized with the cleanup done in qedi_tmf_work and any completion handling for the iscsi_task. Signed-off-by: Mike Christie Reviewed-by: Manish Rangankar --- drivers/scsi/qedi/qedi_fw.c | 110 ++++++++++++++++++--------------- drivers/scsi/qedi/qedi_iscsi.h | 1 + 2 files changed, 61 insertions(+), 50 deletions(-) diff --git a/drivers/scsi/qedi/qedi_fw.c b/drivers/scsi/qedi/qedi_fw.c index ad4357e4c15d..c5699421ec37 100644 --- a/drivers/scsi/qedi/qedi_fw.c +++ b/drivers/scsi/qedi/qedi_fw.c @@ -729,7 +729,6 @@ static void qedi_process_nopin_local_cmpl(struct qedi_ctx *qedi, static void qedi_process_cmd_cleanup_resp(struct qedi_ctx *qedi, struct iscsi_cqe_solicited *cqe, - struct iscsi_task *task, struct iscsi_conn *conn) { struct qedi_work_map *work, *work_tmp; @@ -742,7 +741,7 @@ static void qedi_process_cmd_cleanup_resp(struct qedi_ctx *qedi, u32 iscsi_cid; struct qedi_conn *qedi_conn; struct qedi_cmd *dbg_cmd; - struct iscsi_task *mtask; + struct iscsi_task *mtask, *task; struct iscsi_tm *tmf_hdr = NULL; iscsi_cid = cqe->conn_id; @@ -768,6 +767,7 @@ static void qedi_process_cmd_cleanup_resp(struct qedi_ctx *qedi, } found = 1; mtask = qedi_cmd->task; + task = work->ctask; tmf_hdr = (struct iscsi_tm *)mtask->hdr; rtid = work->rtid; @@ -776,52 +776,47 @@ static void qedi_process_cmd_cleanup_resp(struct qedi_ctx *qedi, qedi_cmd->list_tmf_work = NULL; } } - spin_unlock_bh(&qedi_conn->tmf_work_lock); - - if (found) { - QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, - "TMF work, cqe->tid=0x%x, tmf flags=0x%x, cid=0x%x\n", - proto_itt, tmf_hdr->flags, qedi_conn->iscsi_conn_id); - - if ((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) == - ISCSI_TM_FUNC_ABORT_TASK) { - spin_lock_bh(&conn->session->back_lock); - protoitt = build_itt(get_itt(tmf_hdr->rtt), - conn->session->age); - task = iscsi_itt_to_task(conn, protoitt); - - spin_unlock_bh(&conn->session->back_lock); + if (!found) { + spin_unlock_bh(&qedi_conn->tmf_work_lock); + goto check_cleanup_reqs; + } - if (!task) { - QEDI_NOTICE(&qedi->dbg_ctx, - "IO task completed, tmf rtt=0x%x, cid=0x%x\n", - get_itt(tmf_hdr->rtt), - qedi_conn->iscsi_conn_id); - return; - } + QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, + "TMF work, cqe->tid=0x%x, tmf flags=0x%x, cid=0x%x\n", + proto_itt, tmf_hdr->flags, qedi_conn->iscsi_conn_id); + + spin_lock_bh(&conn->session->back_lock); + if (iscsi_task_is_completed(task)) { + QEDI_NOTICE(&qedi->dbg_ctx, + "IO task completed, tmf rtt=0x%x, cid=0x%x\n", + get_itt(tmf_hdr->rtt), qedi_conn->iscsi_conn_id); + goto unlock; + } - dbg_cmd = task->dd_data; + dbg_cmd = task->dd_data; - QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, - "Abort tmf rtt=0x%x, i/o itt=0x%x, i/o tid=0x%x, cid=0x%x\n", - get_itt(tmf_hdr->rtt), get_itt(task->itt), - dbg_cmd->task_id, qedi_conn->iscsi_conn_id); + QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, + "Abort tmf rtt=0x%x, i/o itt=0x%x, i/o tid=0x%x, cid=0x%x\n", + get_itt(tmf_hdr->rtt), get_itt(task->itt), dbg_cmd->task_id, + qedi_conn->iscsi_conn_id); - if (qedi_cmd->state == CLEANUP_WAIT_FAILED) - qedi_cmd->state = CLEANUP_RECV; + spin_lock(&qedi_conn->list_lock); + if (likely(dbg_cmd->io_cmd_in_list)) { + dbg_cmd->io_cmd_in_list = false; + list_del_init(&dbg_cmd->io_cmd); + qedi_conn->active_cmd_count--; + } + spin_unlock(&qedi_conn->list_lock); + qedi_cmd->state = CLEANUP_RECV; +unlock: + spin_unlock_bh(&conn->session->back_lock); + spin_unlock_bh(&qedi_conn->tmf_work_lock); + wake_up_interruptible(&qedi_conn->wait_queue); + return; - spin_lock(&qedi_conn->list_lock); - if (likely(dbg_cmd->io_cmd_in_list)) { - dbg_cmd->io_cmd_in_list = false; - list_del_init(&dbg_cmd->io_cmd); - qedi_conn->active_cmd_count--; - } - spin_unlock(&qedi_conn->list_lock); - qedi_cmd->state = CLEANUP_RECV; - wake_up_interruptible(&qedi_conn->wait_queue); - } - } else if (qedi_conn->cmd_cleanup_req > 0) { +check_cleanup_reqs: + if (qedi_conn->cmd_cleanup_req > 0) { spin_lock_bh(&conn->session->back_lock); qedi_get_proto_itt(qedi, cqe->itid, &ptmp_itt); protoitt = build_itt(ptmp_itt, conn->session->age); @@ -844,6 +839,7 @@ static void qedi_process_cmd_cleanup_resp(struct qedi_ctx *qedi, QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_TID, "Freeing tid=0x%x for cid=0x%x\n", cqe->itid, qedi_conn->iscsi_conn_id); + qedi_clear_task_idx(qedi_conn->qedi, cqe->itid); } else { qedi_get_proto_itt(qedi, cqe->itid, &ptmp_itt); @@ -946,8 +942,7 @@ void qedi_fp_process_cqes(struct qedi_work *work) goto exit_fp_process; case ISCSI_CQE_TYPE_TASK_CLEANUP: QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, "CleanUp CqE\n"); - qedi_process_cmd_cleanup_resp(qedi, &cqe->cqe_solicited, task, - conn); + qedi_process_cmd_cleanup_resp(qedi, &cqe->cqe_solicited, conn); goto exit_fp_process; default: QEDI_ERR(&qedi->dbg_ctx, "Error cqe.\n"); @@ -1374,12 +1369,22 @@ static void qedi_tmf_work(struct work_struct *work) tmf_hdr = (struct iscsi_tm *)mtask->hdr; set_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); - ctask = iscsi_itt_to_task(conn, tmf_hdr->rtt); - if (!ctask || !ctask->sc) { + spin_lock_bh(&conn->session->back_lock); + ctask = iscsi_itt_to_ctask(conn, tmf_hdr->rtt); + if (!ctask || iscsi_task_is_completed(ctask)) { + spin_unlock_bh(&conn->session->back_lock); QEDI_ERR(&qedi->dbg_ctx, "Task already completed\n"); - goto abort_ret; + goto clear_cleanup; } + /* + * libiscsi gets a ref before sending the abort, but if libiscsi times + * it out then it could release it and the cmd could complete from + * under us. + */ + __iscsi_get_task(ctask); + spin_unlock_bh(&conn->session->back_lock); + cmd = (struct qedi_cmd *)ctask->dd_data; QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, "Abort tmf rtt=0x%x, cmd itt=0x%x, cmd tid=0x%x, cid=0x%x\n", @@ -1389,19 +1394,20 @@ static void qedi_tmf_work(struct work_struct *work) if (qedi_do_not_recover) { QEDI_ERR(&qedi->dbg_ctx, "DONT SEND CLEANUP/ABORT %d\n", qedi_do_not_recover); - goto abort_ret; + goto put_task; } list_work = kzalloc(sizeof(*list_work), GFP_ATOMIC); if (!list_work) { QEDI_ERR(&qedi->dbg_ctx, "Memory allocation failed\n"); - goto abort_ret; + goto put_task; } qedi_cmd->type = TYPEIO; list_work->qedi_cmd = qedi_cmd; list_work->rtid = cmd->task_id; list_work->state = QEDI_WORK_SCHEDULED; + list_work->ctask = ctask; qedi_cmd->list_tmf_work = list_work; QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, @@ -1434,7 +1440,9 @@ static void qedi_tmf_work(struct work_struct *work) qedi_cmd->task_id = tid; qedi_send_iscsi_tmf(qedi_conn, qedi_cmd->task); -abort_ret: +put_task: + iscsi_put_task(ctask); +clear_cleanup: clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); return; @@ -1455,6 +1463,8 @@ static void qedi_tmf_work(struct work_struct *work) } spin_unlock(&qedi_conn->list_lock); + iscsi_put_task(ctask); + clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); } diff --git a/drivers/scsi/qedi/qedi_iscsi.h b/drivers/scsi/qedi/qedi_iscsi.h index 39dc27c85e3c..68ef519f5480 100644 --- a/drivers/scsi/qedi/qedi_iscsi.h +++ b/drivers/scsi/qedi/qedi_iscsi.h @@ -212,6 +212,7 @@ struct qedi_cmd { struct qedi_work_map { struct list_head list; struct qedi_cmd *qedi_cmd; + struct iscsi_task *ctask; int rtid; int state; From patchwork Fri Apr 16 02:04:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206497 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74557C433B4 for ; Fri, 16 Apr 2021 02:05:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 492E761158 for ; Fri, 16 Apr 2021 02:05:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238065AbhDPCFq (ORCPT ); Thu, 15 Apr 2021 22:05:46 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:48364 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238044AbhDPCFd (ORCPT ); Thu, 15 Apr 2021 22:05:33 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G24CcY098785; Fri, 16 Apr 2021 02:05:04 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=G0JgLjvbBaX+LnKq23JdN8gB3+ipbO4IshMwPd2anko=; b=G4shAoeKpyT22oG4EMPffDMUzG4Mg72vPGa08x4W/qUQEWzreSd9QwNkp9eyL0kM1N1x wIIBWhJIY2N5MC6zP4Lngg30vGJShCwip8mZD0/qfMPsj2CLRXA5b/X8p79a/zSIvMJf kNCPu4+jP6KeaQme/9Q/bbdRThI5fHYaztNGfOlxnxFwy4s/uKKcSaXIFV/4wqGY9FgY RrB+6e1v8suWJ7mU4r7w1VoXrt4P70qbpBu0HS6CJRACLJDg47lxv551DGMmQoIzu8e+ PVbh13yyWEQkPlCgQX9TuNFhSet2Gf5E9+h86POBszTsmTMGTUAGd8JHR0fjmw46aSaS tA== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2130.oracle.com with ESMTP id 37u3erqpea-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:04 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xoR0008624; Fri, 16 Apr 2021 02:05:03 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2101.outbound.protection.outlook.com [104.47.55.101]) by aserp3020.oracle.com with ESMTP id 37unx3sp1m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RgxKrm9lru0C7ZjkaXjLyQtpfYCA7U+9nSQbOP3gXplt6vtMILcS719jWsqoJ1m35uRpxiJ+jdQbyzyy1mBHio1RVVruhxphGQtjD/txYD6hQVOe1n/Sc3UxVlVyKffbOdgPKk6eiWZ56vHGHkkbn9ePHbe5uTrGCPYx0xR6K4WH0/TGEniBTfNb3Dh74DrIy8B84FrP+v3ENoMBNaIkZrxSIQZiCXQoGu2LEwA/BLVc81Y3c32rJZQBOEw/S8HRcJyAVh84uMpIdWyucFjeKiq68X1ASJKCdTnLdddwoq5gcBPEXmIkYNd0i/W2meUYVJ9W+HnQPPk4d+v5Fq7QHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=G0JgLjvbBaX+LnKq23JdN8gB3+ipbO4IshMwPd2anko=; b=QtgayNpVFAQMeyoB/HKZocpeGLmGz9iGOVfPo3T08Pv12SM0iq/dWvI8P93SEYbavJvuzQaWvIJ4Lh7A7jq1T4Z3GhjO5iFllox508pTJc/Z9ZEbNO8yLc0vboEE53XBELXsBvqx/aq5kVTglTI+tPMntk2T25ijXiLD9dT49PoA2TNNqOeDR5NXcYYwjjrf1FBFmiDD776tVKUPFGcKbtzjKz4yvs3NFjeO6ZLGwUYPc9zrllQ6K7GwW8j78L0VhIrPs+HFHLG1IJoqG+j+2UfHM+r15IufCHp+cpAluXz/dCFLfHt9YQONvxhmRxEeFpbEw4GpmqvyJ0sYNya1DA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=G0JgLjvbBaX+LnKq23JdN8gB3+ipbO4IshMwPd2anko=; b=rfTBRtYi/LDugDk+iroqCOZSF0IAI2RuFU+0cRkf0gGSYalPQEw8YCnmAHabiS4aQ9dr4IC+Tt2z/baKsgEQxgaKl7461mAV7CNaVUeX4IwvwG9nOZbvotJkCT9jnoXMf28tkQTiG8bM1G4F1sACUJtmVNDiDWQilfUXdLipCeA= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB3318.namprd10.prod.outlook.com (2603:10b6:a03:15d::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.22; Fri, 16 Apr 2021 02:05:01 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:05:01 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 11/17] scsi: qedi: fix TMF tid allocation Date: Thu, 15 Apr 2021 21:04:34 -0500 Message-Id: <20210416020440.259271-12-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:05:00 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4374ab0a-ce1b-4e8e-9911-08d9007c0adc X-MS-TrafficTypeDiagnostic: BYAPR10MB3318: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4502; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wFum6NeeF+RGR4r0REyjXgluEG3gVEW3onalu1vgHXa5bvP9NU1cPysNCvxyXBK7l/HN5jEImorFko59sIqxmxMkY46rn0nMUpftalD3QLKMBOK2OWAVY2SDhoRrAaO0S+BToFFrG69Ma6EnySiz7RtI8gD5jSTvNgCfRzsBlR0IjPnFqUFO0lQk4rRN+YxAEai62sfqFQgXllgravFWH1w/IerOftyUgIv8mT+wj391kQr9t2kDphQG4DSpgyb2r5OnkyYJqRElkvReQ/Vk93Dws8+8wB2bbd5dRLicBSuHehZeunIH3pj2Qn2sKsRSfKQJUO7IFLqhrVV5nodCvotX2lc9O+eMk879oWicAbT/Uq9OafhlIa+eUbGOH62KrnriV99sB6XqoVRNsvmtC4XiBoG+QdIZUsnzu6j+fdRaV8xPA2MdbUbr0EkAQLv2nD4eAsBtM8K1sBcsB+Ojm3LCLSdPB8CKEDgkpAlZDwMun4JlXlmzeB6ygWlG1a8BVgMsVqiI5UBXThSheRFDm88LvK5HYgmbCBZ7HITWcHilz3Ya3Srgj4nq/lX9gTOW0mrDMKc7rN1KDyXgxDvKVgdK21WHsfiFfXKRv5F9tzjB3oNbYfh/bLUJwn7MduNG9ROcouWpSjoio9j656sfk9xFyeoFNH04dYs8yQ0/Ls0BNcPgJ+3JCOhTtzAMdK1W X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(136003)(366004)(396003)(38350700002)(38100700002)(52116002)(8936002)(6666004)(2906002)(107886003)(26005)(186003)(1076003)(36756003)(6486002)(6512007)(6506007)(8676002)(86362001)(69590400012)(83380400001)(508600001)(5660300002)(956004)(316002)(66476007)(66946007)(2616005)(4326008)(66556008)(16526019);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: yyXug4Jbgh/duqBe19ASA4wY7E67Wx5U2XtgSCD1FKkwp/zv0D+MBB6SN8YKwbv0TgEV6pdkOeCZQTLocj1tnoJ0yI/wtdTspps5S0EKI6pqCad72G6DzCXLziUMRnARUsPZS4TTypLV+3ud8vTqmTMP6/C/+usf+MIwCOObrgV4Z+U7oXGuWVW7+3vtT8Trsz3SyYI5W3RFALBiMgG8CIbI4jtuyTgA+kIUsI3i7wDfYOjWUtdyZH0jkiltD8TGF+nFeXh2/zbYrcgFkCp5rgqlMbIlqNMFMEZzRNmOp6SRAMnS5ghOaBimUAUG8yXcc8OVFsCUvUwlY0bWIZUMIX0WRZf0xCW15IU9iVrkpAFMwk5ksQAvYC/5WKK3e0TLv4CuQilAE2i1EIUGwufImxIGDxM08vZqEr0g5K2rD3uLZ5VX/uB2+JJrbPKz9qARklcyqQqSNFs9MCaPe2axDJE3BK848O8XaDbH3CHKNCUEMuprZnKZViLrkrIBLT+gjQO8EQz7+7yCPr1yRfLoWKoxHtUuWIRrQfl6d8XADEbMPt6SFhoOSyb4mbzZdHXfPak5RrQDkpW2zqRfUtpfyLmAnccBl8EpLv1QUw6YATqCJ3EJxUt7chje3gf+s97oz73ZTNeqGb79zSn6kaRXa9V22fY0jtIqSCdk2A07CeIQwW6VyZculRubVds0yYxL5xBzDg187HDuYn+CCkRCY339mPJNaQuHd61wOqTS/2z4n7cV/UCDr5BFZUvKzwYGgD4Zw78O5acP50Fi4y3i8tzzDwse6xBiOaJa/OUUKXgzjLJoyg8P9IrXWlSl4uQS10Zy+Uuk2EZ8YnYi2GMYxes68mVEJO8FTW/Qw5lDnd5ydv+HBV0+HeHkr3RPfv/YyKv1YN6M6YazH8iTlBfvORpx5cmwwa3xbB9PVzTNKUiPnqp6pf5uqPqLB04+Iv0zpsci3dMPy0Qy8xSPTAfW0YNaXaSxY9maGk6ZJerfllH5eDmfQEsyux9AbLcYx+rlcpO6F1Mpt0yrSDVKx540TK+ooDK5dPKbCVUcYAedHt0FvgTGEUORN8idVoEP+ghgeemadta4V9nTpGKfZk+WE9O6fGxQRvrIciAOTdRNhCm3w5ESbEm3PMBHP+g+TehHHkG+MONqXlsxwHX8I0066U6ah3qx0qPunACyRdUw2QVq6/Z6eq81DCV8yGHjBPBARdvtqFaRrtCJY77JzZOHAD0l4h1RrHOS7R/Fzkb5y/87UHZcA7k+s9WkqV098QUwsqUwDzL8qvw1NMozgnVmVRj7hwGQgKShCU9SHhK7JmevdN6Hf9B70F/esQm/h+iy X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4374ab0a-ce1b-4e8e-9911-08d9007c0adc X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:05:01.1877 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 84lgzPrVNXpUsk73i+Z/PXd0/Bgo8lbATuJOzjN4eoxFxIaX7SB+gZ20o6JGRfiw89b01u++GqjhgNcDp1bJlPG3R1zoXVb8i6HJtO+i98E= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3318 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-ORIG-GUID: bjdJ8tgx7_Fcf87ArHKsj5WAYKLS3pJM X-Proofpoint-GUID: bjdJ8tgx7_Fcf87ArHKsj5WAYKLS3pJM X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 clxscore=1015 adultscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 spamscore=0 impostorscore=0 suspectscore=0 mlxscore=0 phishscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160015 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org qedi_iscsi_abort_work and qedi_tmf_work allocates a tid then calls qedi_send_iscsi_tmf which also allcoates a tid. This removes the tid allocation from the callers. Signed-off-by: Mike Christie Reviewed-by: Manish Rangankar --- drivers/scsi/qedi/qedi_fw.c | 76 ++++++++++------------------------ drivers/scsi/qedi/qedi_gbl.h | 3 +- drivers/scsi/qedi/qedi_iscsi.c | 2 +- 3 files changed, 25 insertions(+), 56 deletions(-) diff --git a/drivers/scsi/qedi/qedi_fw.c b/drivers/scsi/qedi/qedi_fw.c index c5699421ec37..542255c94d96 100644 --- a/drivers/scsi/qedi/qedi_fw.c +++ b/drivers/scsi/qedi/qedi_fw.c @@ -14,8 +14,8 @@ #include "qedi_fw_iscsi.h" #include "qedi_fw_scsi.h" -static int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn, - struct iscsi_task *mtask); +static int send_iscsi_tmf(struct qedi_conn *qedi_conn, + struct iscsi_task *mtask); void qedi_iscsi_unmap_sg_list(struct qedi_cmd *cmd) { @@ -1350,7 +1350,7 @@ static int qedi_wait_for_cleanup_request(struct qedi_ctx *qedi, return 0; } -static void qedi_tmf_work(struct work_struct *work) +static void qedi_abort_work(struct work_struct *work) { struct qedi_cmd *qedi_cmd = container_of(work, struct qedi_cmd, tmf_work); @@ -1363,7 +1363,6 @@ static void qedi_tmf_work(struct work_struct *work) struct iscsi_task *ctask; struct iscsi_tm *tmf_hdr; s16 rval = 0; - s16 tid = 0; mtask = qedi_cmd->task; tmf_hdr = (struct iscsi_tm *)mtask->hdr; @@ -1404,6 +1403,7 @@ static void qedi_tmf_work(struct work_struct *work) } qedi_cmd->type = TYPEIO; + qedi_cmd->state = CLEANUP_WAIT; list_work->qedi_cmd = qedi_cmd; list_work->rtid = cmd->task_id; list_work->state = QEDI_WORK_SCHEDULED; @@ -1430,15 +1430,7 @@ static void qedi_tmf_work(struct work_struct *work) goto ldel_exit; } - tid = qedi_get_task_idx(qedi); - if (tid == -1) { - QEDI_ERR(&qedi->dbg_ctx, "Invalid tid, cid=0x%x\n", - qedi_conn->iscsi_conn_id); - goto ldel_exit; - } - - qedi_cmd->task_id = tid; - qedi_send_iscsi_tmf(qedi_conn, qedi_cmd->task); + send_iscsi_tmf(qedi_conn, qedi_cmd->task); put_task: iscsi_put_task(ctask); @@ -1468,8 +1460,7 @@ static void qedi_tmf_work(struct work_struct *work) clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); } -static int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn, - struct iscsi_task *mtask) +static int send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask) { struct iscsi_tmf_request_hdr tmf_pdu_header; struct iscsi_task_params task_params; @@ -1484,7 +1475,6 @@ static int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn, u32 scsi_lun[2]; s16 tid = 0; u16 sq_idx = 0; - int rval = 0; tmf_hdr = (struct iscsi_tm *)mtask->hdr; qedi_cmd = (struct qedi_cmd *)mtask->dd_data; @@ -1548,10 +1538,7 @@ static int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn, task_params.sqe = &ep->sq[sq_idx]; memset(task_params.sqe, 0, sizeof(struct iscsi_wqe)); - rval = init_initiator_tmf_request_task(&task_params, - &tmf_pdu_header); - if (rval) - return -1; + init_initiator_tmf_request_task(&task_params, &tmf_pdu_header); spin_lock(&qedi_conn->list_lock); list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list); @@ -1563,47 +1550,30 @@ static int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn, return 0; } -int qedi_iscsi_abort_work(struct qedi_conn *qedi_conn, - struct iscsi_task *mtask) +int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask) { + struct iscsi_tm *tmf_hdr = (struct iscsi_tm *)mtask->hdr; + struct qedi_cmd *qedi_cmd = mtask->dd_data; struct qedi_ctx *qedi = qedi_conn->qedi; - struct iscsi_tm *tmf_hdr; - struct qedi_cmd *qedi_cmd = (struct qedi_cmd *)mtask->dd_data; - s16 tid = 0; + int rc = 0; - tmf_hdr = (struct iscsi_tm *)mtask->hdr; - qedi_cmd->task = mtask; - - /* If abort task then schedule the work and return */ - if ((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) == - ISCSI_TM_FUNC_ABORT_TASK) { - qedi_cmd->state = CLEANUP_WAIT; - INIT_WORK(&qedi_cmd->tmf_work, qedi_tmf_work); + switch (tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) { + case ISCSI_TM_FUNC_ABORT_TASK: + INIT_WORK(&qedi_cmd->tmf_work, qedi_abort_work); queue_work(qedi->tmf_thread, &qedi_cmd->tmf_work); - - } else if (((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) == - ISCSI_TM_FUNC_LOGICAL_UNIT_RESET) || - ((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) == - ISCSI_TM_FUNC_TARGET_WARM_RESET) || - ((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) == - ISCSI_TM_FUNC_TARGET_COLD_RESET)) { - tid = qedi_get_task_idx(qedi); - if (tid == -1) { - QEDI_ERR(&qedi->dbg_ctx, "Invalid tid, cid=0x%x\n", - qedi_conn->iscsi_conn_id); - return -1; - } - qedi_cmd->task_id = tid; - - qedi_send_iscsi_tmf(qedi_conn, qedi_cmd->task); - - } else { + break; + case ISCSI_TM_FUNC_LOGICAL_UNIT_RESET: + case ISCSI_TM_FUNC_TARGET_WARM_RESET: + case ISCSI_TM_FUNC_TARGET_COLD_RESET: + rc = send_iscsi_tmf(qedi_conn, mtask); + break; + default: QEDI_ERR(&qedi->dbg_ctx, "Invalid tmf, cid=0x%x\n", qedi_conn->iscsi_conn_id); - return -1; + return -EINVAL; } - return 0; + return rc; } int qedi_send_iscsi_text(struct qedi_conn *qedi_conn, diff --git a/drivers/scsi/qedi/qedi_gbl.h b/drivers/scsi/qedi/qedi_gbl.h index 116645c08c71..fb44a282613e 100644 --- a/drivers/scsi/qedi/qedi_gbl.h +++ b/drivers/scsi/qedi/qedi_gbl.h @@ -31,8 +31,7 @@ int qedi_send_iscsi_login(struct qedi_conn *qedi_conn, struct iscsi_task *task); int qedi_send_iscsi_logout(struct qedi_conn *qedi_conn, struct iscsi_task *task); -int qedi_iscsi_abort_work(struct qedi_conn *qedi_conn, - struct iscsi_task *mtask); +int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask); int qedi_send_iscsi_text(struct qedi_conn *qedi_conn, struct iscsi_task *task); int qedi_send_iscsi_nopout(struct qedi_conn *qedi_conn, diff --git a/drivers/scsi/qedi/qedi_iscsi.c b/drivers/scsi/qedi/qedi_iscsi.c index 416202bc4241..0061866614b4 100644 --- a/drivers/scsi/qedi/qedi_iscsi.c +++ b/drivers/scsi/qedi/qedi_iscsi.c @@ -742,7 +742,7 @@ static int qedi_iscsi_send_generic_request(struct iscsi_task *task) rc = qedi_send_iscsi_logout(qedi_conn, task); break; case ISCSI_OP_SCSI_TMFUNC: - rc = qedi_iscsi_abort_work(qedi_conn, task); + rc = qedi_send_iscsi_tmf(qedi_conn, task); break; case ISCSI_OP_TEXT: rc = qedi_send_iscsi_text(qedi_conn, task); From patchwork Fri Apr 16 02:04:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206495 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EAAA7C43462 for ; Fri, 16 Apr 2021 02:05:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B935161158 for ; Fri, 16 Apr 2021 02:05:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238070AbhDPCFr (ORCPT ); Thu, 15 Apr 2021 22:05:47 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:48372 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237979AbhDPCFe (ORCPT ); Thu, 15 Apr 2021 22:05:34 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G24CcZ098785; Fri, 16 Apr 2021 02:05:04 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=q+ZU0Em1wAO9+sQuST+7PsE/cBrnnPmCbzDa5O0c+FA=; b=jstFed2chgNKHMpm5E45/ivONVLe8iPYY4f4oPgXm+Ovfk8qfre1JyHpByAnKn09AO+a LrJxQ1p7qE2eEI6No1F9jqvxcJl8lmZU5mUO3co7xKE68wON9ivn9C2a1+6tz1VrQU8z X7sffuETpfN1rP4ZEkhvo7hYT5MXYM1fr/cF7jnSZzcUf/MpjhOFtfH2TQT+0LyFYMJP ITVKwbZOhXoyzUigSp3ZUHZiARByNcB6gIDCKjl2DeJ51nxqO3cbFl1TnEehO053sFVg gxX1/HAj+x562l0Q7N1rNc+0Zf0BfzewzX6FxYuJZkzkMAtboQFSjRtkR0oQr3ybDvLL 2w== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2130.oracle.com with ESMTP id 37u3erqpec-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:04 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xoR1008624; Fri, 16 Apr 2021 02:05:03 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2101.outbound.protection.outlook.com [104.47.55.101]) by aserp3020.oracle.com with ESMTP id 37unx3sp1m-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=chB+Q6NuLpKQEksjW8mkflSWkC/ZDVyaIHm526UEOcxdd3dZ0qfc8BNIVs4OFE+KnMIjDJ9usTh9PixNKB8t+xSPaNhW150tmV4yhMN+iXhnhBHOUPv69rWyISYFA8ajx1HgJrDl7cpqPyEwPNhxYq32hIm5Y7UYnLkJyrMg664pn9hfMjdKx5zqvHViz7kkKAoyfQ0zp1/oyih2dGPvaPTGqZN9ka01DdJnCORw9wttTVaY65sc6VVJjraTi4O9rA6X8tLkqaPIb0UxSMVuVSW/RHNbZ9F78IUX4zZJ0nFKHvR/xJOBlGIBm+sB8JMumDNkVq/MSHIBR4nuFXDlaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=q+ZU0Em1wAO9+sQuST+7PsE/cBrnnPmCbzDa5O0c+FA=; b=cRMqzBB/jMXZsFkoFnFY+UGpO8KNSvXUsZzihkt1jQYBfil6qXvpa50e4SK4alpUz+fmnNwLyPESeWzhz3hwoyvt+7o7+8apU9A2zBPMfccPWbMsZJGctG0n1wgCb83gtDzB+zbCR9iC8YVm5VUrZ0rCKW07UtyUXWxVhIk4dk9hcBgqcBXgoQt8JJ8tGJhuypBFXdz5akTQ6aFu4sQH0W9In4H7Qthcoin+9T5JMsuzQTxKIRzlBiAOspDR70CzS5CEUo4db25kRdObBzEs/h8o5Lk3nSHyLp3TUFktBrO4et/ypmOdJxwg9U6WbRmhAmYMyfs97yYfSpIf+BjBAA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=q+ZU0Em1wAO9+sQuST+7PsE/cBrnnPmCbzDa5O0c+FA=; b=YWZEpwXv66oPFfnkdFWeIJyFy439Ho5iGLVZxyI+vyKgfMrgfkxjyEk+HS8kjDKANd3tqxomSNKEM8jEosQHYscRAmAV/lM7nOexHV3WsoeXTV8CHMx9uuh3lDTLiNJpDKxSnS6F673tFvlLnXDCWzviCo76gDY1J07SrWQpwlw= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB3318.namprd10.prod.outlook.com (2603:10b6:a03:15d::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.22; Fri, 16 Apr 2021 02:05:02 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:05:02 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 12/17] scsi: qedi: use GFP_NOIO for tmf allocation Date: Thu, 15 Apr 2021 21:04:35 -0500 Message-Id: <20210416020440.259271-13-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:05:01 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6990fd4a-d954-4132-e337-08d9007c0b95 X-MS-TrafficTypeDiagnostic: BYAPR10MB3318: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:404; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: g2y0SBMIWelMn03+4MSGJDCwh2sktxjMCoOcduR1kytwWivtjQyoRz28pl+uVhRr25LPjG3xDV+ZeYgWJrwb0fvQgW10l9NOLgiwVufvT/IO8EfoJJVEUbs+DB/iV0B7cchavUk2TkMzcAy5osOr/ckzY2xD5ve7gCmWw/Nqb+J6ZN3b3C9N0rQ/fT/kVekCnc+1vPqSqHTtPSbf6qKHHMbhYU+tHRYZq7+XTK4Kg51NiX4MXsElVYVrZpHtFK6IwEwVsG5XmBhlp6U7M6ZyUuYJL5VP9P5RBWI7pKrIMB1MShu1NT5E51a4T9eaZmMewBRVPrPdz5uCRs/UAyIQ2YfZ7YAJpKiRNPwC+3ypHVyWCff6os6GcB6ZZwsYuF1yymUqoI3TkKFiorUV0Xk2hJWTgxZDIPwmgiGpPWUzQqjlbO5SAiYkYXS6TX1+xEI4BDjqKcduT839cp2HADZXqIN7itdIUg54DcfPOecJVd/jSDVbfprs3MnUhmTWRw6GKS1dv8KGw/Uuv2HMu3RHKchdlgJ9HYjuCtVLCJ0M/pVSzDU/5gpQG+FHjmeJSCOMuzcrMLk6g+9zqKNoxBuwtYcYLqI9S9U+F3CV9Lhsj+GHCqNv7eACxL9Rbj/PuxSWYusR80ixBEQ0mOYDU2YgHnEhEdpRn7mDG0VMhtH3L1hOyHDeNyDiq1SxS2wff3QN X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(136003)(366004)(396003)(38350700002)(38100700002)(52116002)(8936002)(6666004)(2906002)(107886003)(26005)(186003)(1076003)(4744005)(36756003)(6486002)(6512007)(6506007)(8676002)(86362001)(69590400012)(83380400001)(508600001)(5660300002)(956004)(316002)(66476007)(66946007)(2616005)(4326008)(66556008)(16526019);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Hmig2sxtO7ncYMB06CP4uqCTHujU3ICSRBrF6AB+qp84/ldSh/tRDCowJA6B9RcQVFzvibkOd6Jdas1e9XiBnbf+sc4JTZtT6vcyNsOnji2weqUu8gE4KG/te6BnNoVRD7e0bJ/L2btdLlOMxobLPvY9PvGZP02dFr2nvV5ZGarveO/1dgYWQQ8bs/kMCfE3wU6mymVVQf2cZjcQjfuXR+1zLrKmn5Fzr8sDx4fML0qO67Bn/6wxGn/EV4EaKpTNWfCgW3v9IFyr/WRYlMISjbA9A3iSa5pcmD9vgsFQy6j1/CtBAvMM9UQ8jnweJZbUVvfdQqvlJsZdm7F3HGjkM7oiuFh0DSjAMxu9jZOXqekIeBxwuCYZeWK8dt1uzSSLwp+GnUjULIp4Iy5m9P5H6RqyXj1gj4XVTVxCxE6lYNrRr72eSE8o7GQp/OOCuIgrGuIdC4TBUbVC9pXuATOqnuuafAicVA4bXXbx8Pw+tLStQmy49T6dlIj3KNAbQ05hk/5Xr4QvzoHxq7KTjfTv9tDVKqHcDWS8j7/PtvWHEqCI2m3dP9SCjsF6I+ah9T2CoTSVdmqMZm3xggvXDbZfv8385XSnKASmWKTZ2GA/csKwyPv6RuWYgPCExSAcYlagxkN2nceNltIn85CjS5ezB+JHk12yF3Oh3oOpkNKr5y0OKlN1OdXq9tLtj5jVjOI4kH8SSuMDjzPYCztFC/4k5HGPSGMaSh28YsuN2MKqh9Vagvxfbh05iRBAQcCId2k1cz2MDT9o0vB0OrCnXh5XDP+svxpmu/UmQGv6T3x3YY4bvHCOTFx0k4TGjheSa90NoLIJvmJ2BebZQgLLefZhkWwHZfckm6T2+SjwBFkTqjo/OB7OphJhHpOBERDQVFWjrXE4EMdKtWnFh2s1nePdZnCm3twm3RWnCHo3fMjPtoNv6TNZGVnpsvPId57Rj6F6jeDFzq2b+sMH3tOiKULjaoheMsS+IDGvvgYfj7ErS5/X/c7JViiWJsVd5F/z4ES97ksDxffz/BXsUYvfuCO0Hdfe3yt21AJPdir7LPQrwg17ef6cXZIja/neiqH5y9F8uuaUSsmNZoDxySD5tDCCDNsP+vdGENRJ2jT8OkfMWblCbGzFT1rWaPlYPcrGoOgHQcVSvVEVTgKKW6kruZfaq4y0liKBSfXPeezfzwVxgbZH6aplNdSWZMU+4HaKQUIJ+vhAAybQNHGXKyP9RsQHkuHej8MBZEmQPu0+Gy7SvVG1pcrsG/JeB4Y7Xc/XQx8RPmWOoHMeIjDHQfDlru+gBhuCYNcwEwYDrzEuQrethVqZWYcGuumChgv4FeOdk82f X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6990fd4a-d954-4132-e337-08d9007c0b95 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:05:02.2441 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1xuH4rAUnewmLF2Wv/V1mSMwVB3lvz1DLqUu2vGDufMTiwHnYN8+GDsSS+79qglxIOoq2GJmpR/WpFvOnPB9/B2ausvBU6y1lHpqn9siL00= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3318 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-ORIG-GUID: Z6zD0mAs_x7MB_KKgDCF0dAVJGyVTNQS X-Proofpoint-GUID: Z6zD0mAs_x7MB_KKgDCF0dAVJGyVTNQS X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 clxscore=1015 adultscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 spamscore=0 impostorscore=0 suspectscore=0 mlxscore=0 phishscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160015 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org We run from a workqueue with no locks held so use GFP_NOIO. Signed-off-by: Mike Christie Reviewed-by: Manish Rangankar --- drivers/scsi/qedi/qedi_fw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/qedi/qedi_fw.c b/drivers/scsi/qedi/qedi_fw.c index 542255c94d96..84402e827d42 100644 --- a/drivers/scsi/qedi/qedi_fw.c +++ b/drivers/scsi/qedi/qedi_fw.c @@ -1396,7 +1396,7 @@ static void qedi_abort_work(struct work_struct *work) goto put_task; } - list_work = kzalloc(sizeof(*list_work), GFP_ATOMIC); + list_work = kzalloc(sizeof(*list_work), GFP_NOIO); if (!list_work) { QEDI_ERR(&qedi->dbg_ctx, "Memory allocation failed\n"); goto put_task; From patchwork Fri Apr 16 02:04:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206503 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 01665C43461 for ; Fri, 16 Apr 2021 02:05:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C21B861158 for ; Fri, 16 Apr 2021 02:05:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238021AbhDPCFt (ORCPT ); Thu, 15 Apr 2021 22:05:49 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:48538 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238052AbhDPCFi (ORCPT ); Thu, 15 Apr 2021 22:05:38 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G257TT099275; Fri, 16 Apr 2021 02:05:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=qCcK33geJ7TMTh6rP31FrGReBAGDdl8gbwQdLfmpQMk=; b=hEP5u6hsIW9itUolOqXBpoALGnk5mlH2uO7o8kTGOh6abUVDb2CgIs2PfU+qZUD9A5jT RflPuL11z11f0+kLFXNh2DgGpuUrw0ymhU/xoQpXqobk2qGfTq/KT0I33LDevfUK/+2t PujlHNIYz+a2LTNjTzK49e6ePHezKIq5GVZbn1jFg5JK0/Y8LxYK2fVhAr5ROvZxatNZ UhO1Q/A8Oj1ESZzVKZE2R32c8r1hbsqxoJOldm4u1738JLZv0o1pgbxq6ABDiID2Mc+W jgdORPS65BjBVSNeky1J/s2tCpKuVGFMoILsSkbw9YaXOhhRp1QUj86HDK3hNQb7LylL 8Q== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2130.oracle.com with ESMTP id 37u3erqped-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:07 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xofN008598; Fri, 16 Apr 2021 02:05:06 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2105.outbound.protection.outlook.com [104.47.55.105]) by aserp3020.oracle.com with ESMTP id 37unx3sp47-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ByaKmYs9Kab34T6m4BVv5/3WTC8yDSqYbntD0r7dyNeTec7xYj764u8EF23in10NKH1z5scRfYJmseCZ9iNDlKZDOx8vo3v5NBOFo6dpjtMVISKq+1wQJrpTs+Aj+yYela5NOLJeMKyaFCX80EmhU0Ah43JpCv8s8jIwC9kg2vQeM7RuOYFvxjP6OiYmMYv2+s8mLy3dFLxzdjiqWpZTZUjyhhCUqVUJA8R9sqBtHhkGNQGX+OI1VmS2pvqVh4VYr8OfUOo9jda3BF4iKobCx8kA/TXM7rIqKcxF9z4RqZvV2P813kCMmonWy8nyXlA1m22gvKgSos7nN713pEU8oQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qCcK33geJ7TMTh6rP31FrGReBAGDdl8gbwQdLfmpQMk=; b=TSKXl0SFgAKEkLP5UoD/Hbu0C5gc4COdm/Si4FL95rT/tE72tEpogxSDCI6GNoAiEQxd4scyQXoj9aZk/3Av2AnYA0ebGFy4IeqLb1kXXsrwlbXewC0sInuJlvvvgtRuUf8i28PTmpOd1P0UUDJnMDOZ97me9QEuEwv0k5hqVkUvSpoRn9XRJuv1YjYm94Wsfle5Xife34KkSPvfElP4S0TvtujchHaZbRIjsHdVNVDNDwg5BiWgBYwdS9JCczi9Ygbl/yzQzWa69ndjghU8StlbXf6hv6PB/3Uxau6dmSPFddQH0l+IgyULI3xKP/vnfxGRkVbinROYE4xbqxCuPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qCcK33geJ7TMTh6rP31FrGReBAGDdl8gbwQdLfmpQMk=; b=npqbUHolaw6XQ8Z9CxojqlpCDo3nnN+RKAKNlZQDO/ybEKaiK3y/OfoN7LPWYfpNiyABtVTVH7muhto4Mhz/JGVtIqMIBm90TttjLKuzQOfPHnmvaHu9MGcqa2glaQ/tWsxY4MPHDLrh8oN68xSAU+HDdP3sNJJI/3ovlsQVKXc= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB3318.namprd10.prod.outlook.com (2603:10b6:a03:15d::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.22; Fri, 16 Apr 2021 02:05:04 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:05:04 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 13/17] scsi: qedi: fix TMF session block/unblock use Date: Thu, 15 Apr 2021 21:04:36 -0500 Message-Id: <20210416020440.259271-14-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:05:02 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 669ef0bf-6928-438f-b3ed-08d9007c0c8d X-MS-TrafficTypeDiagnostic: BYAPR10MB3318: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4941; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kjjT5s8z0956xsHomliAq03TcO94KZCTtc2SbZ2UpNv4/IeutyVmLNmUHjGZF2Fr85Uk95qQGgUBs29F+P2QPk1a8YoUaCcdsLj4HOeifSftzd3dy195gaC1rwK155WpJqPZTwYrH3Iv+npsJ9mcv3AHmdgZO9G/fEGAjmOCAU+9pmFhnD50jek4hItT0vFC9XMaUAs4Fay8OxxtdJ+HAWbMJKhjei7AK40V+HQtytDtD09DhxlHzQKvgMxUEkitKE4CJxrh6OwGCdf0tTe2JgJasW2Ezfs09COH0hZ1hAUQFl7c6ltGfOpNp4ISjEVNkvK6AH3Mm0CnvRyow3B/hjR41kQOvQZbsJuAP8a+w9xlQm142GoFJYgQPmk9sgG4QBEdKI2nycsv8ogvYodOj4f9JPNhqb2b+Ct03Cs+Umt9NmvYBil7vFG11HoUXGvnvyH3AnenEjVipYD+FDAqPHhH7v8KIqoWKjhXdk91B4SQsSy9VtYyzgFHEXENBCvE08gnSp8KFkHytBx2EnO1ST/t3cOYiLWZ9N5B7YBW2EnzeJhFtvh2nM9CqGAETxU5/KIKWvL0Zgi1nqgOtgpVMlV6/tLJtFn9I2tS1Nq9a8ODnF1p2VQH3TLXiA96yWih0yVRGsQO+oXCUucFvYR5wb1A9IZNBp/cb0r6wMoQqtjGV/wyS1HM6SgiiMMWQbmx X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(136003)(366004)(396003)(38350700002)(38100700002)(52116002)(8936002)(6666004)(2906002)(107886003)(26005)(186003)(1076003)(36756003)(6486002)(6512007)(6506007)(8676002)(86362001)(69590400012)(83380400001)(508600001)(5660300002)(956004)(316002)(66476007)(66946007)(2616005)(4326008)(66556008)(16526019);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: pby4of3sE1OQFl8K2n2e1rG2ZRqsYS8p6daYXFV8JoZAZIDs06XzeWY6p/mB0kKv44FAC6+izs45A2E3MDNhhzD2qyym4s6S2p8cCqnXzfLFXW6u89fUb17LxK6Gf0kK2XjM562iHr6msVWrXHwP/XOXh7M1DHPtl+ayhfStKQqaq1au4YIuL2nRTultvjWYk0zx+b2gTIt+X33ogC1gIv8z3eL8+UXkYIx0uD6/fg2L6t846weOGfubm64xz87LplVfhM2lXJdyB4W0mi2oBezKevvBYlxoPue8lmHEHPoMYmaqBhUF0ZNpz/opmQVVgYqKaeTFTVmCxYNd7ILUYK2/VlZiYqhQ5HeBim/BRexyMhhoqzRjdwEYBDvRuWwaPeqHEHPKY+gY67WRfA22woMOjWiuN3J+khuqUvwWPCiRM49g7dQYCeQa5p2iYJP2UzD8CTAlFe3Qri4DU93WD/j+CHShuNOMeMggxsXcAR7CKtB3ta4LThc84grVzjIFRiJ67tlIRqDQf40JcNXq7Tb7HNZb+K74HGnn42WC1By34+dSKBREgZ9aytEu7oqrnYblOHgqsstxUuyWAF2W1qfsQlZGT1Z8b4NPeAIeJKiGAk0PbGEYu9oNVOBB9o9caeGiqQ9NhTkFdWE9QZwddqu3ZlkdM7mXK5kCbRuZ7MDgrDXhNyAiZs4pPUipirRJHghNU9FDKRLU1nBlGT0lLIXXyqVKB9CZx7TJvhQ2VhG0b/SdWD73QO7onsuVem6Fj0CJ0uy07/kQwaEPYCbAO7HWThhz/ZO1AkPyuQsWAhoDBPSSb0fIY+U39Tkn1ODqh8D0bEeBsBXqnuPd3pk1dO1Q07Un0UloVEs2EWoii78TeMMWRNythcg9Jg2YZo9zlnLJyuk1F9NCW9gWC4vt6PKU2lLZTnD/8PflGmhZmIXq6akxlK+qP+p5/o18gJ5joO/G3iYrDznB6QNGxlC1pXT7XwvwES+A7cU1k7aDRvrlET++kkxUOuFzxnyEueEcFdP4JLWIJ2687hFcgrcRF/IbCZQT99t6dFHIO1q0bvxDqZbYGmQ6PTrcaP7KHjpo5pHCQit1fr7i45txzO0ptMSEofjjU4MTDsScJ1aSkP7J1V6fwKjJ+NQA+hJ4YUalN/qrR/K7Dpl6dYaGBnx6oXkaCezhxbgEkQKIb+X3B+AHxte068LCjJnGLz6+XK0ag3/J4H2Uj4ix/jgGO0TbsgXO3pVtQ/lNqS9dObK/x4GdSqBNttlSgcoS6X5I5E6bveuS9FZqUJgKXY2sYWJMNteg5K1sHCcR1p5BUezV8Qh02r6qaC+IoL4PucfIuC1p X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 669ef0bf-6928-438f-b3ed-08d9007c0c8d X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:05:04.0351 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kTeEbF4G5qC1pQXnYkAs2GY3YmuhqpN5KE+2+8+VFGRAuxDQYips0lSCZJbaeD6jIi90uugE9iOHQFGjuymOI1BBA9An0gf9e7NIlKH/ri0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3318 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-ORIG-GUID: ySOXYb6vb_EhuYZPNVKZNjMslhpuyLnc X-Proofpoint-GUID: ySOXYb6vb_EhuYZPNVKZNjMslhpuyLnc X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 clxscore=1015 adultscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 spamscore=0 impostorscore=0 suspectscore=0 mlxscore=0 phishscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160015 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Drivers shouldn't be calling block/unblock session for tmf handling because the functions can change the session state from under libiscsi. We now block the session for the drivers during tmf processing, so we can remove these calls. Signed-off-by: Mike Christie Reviewed-by: Manish Rangankar --- drivers/scsi/qedi/qedi_fw.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/scsi/qedi/qedi_fw.c b/drivers/scsi/qedi/qedi_fw.c index 84402e827d42..f13f8af6d931 100644 --- a/drivers/scsi/qedi/qedi_fw.c +++ b/drivers/scsi/qedi/qedi_fw.c @@ -159,14 +159,9 @@ static void qedi_tmf_resp_work(struct work_struct *work) set_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); resp_hdr_ptr = (struct iscsi_tm_rsp *)qedi_cmd->tmf_resp_buf; - iscsi_block_session(session->cls_session); rval = qedi_cleanup_all_io(qedi, qedi_conn, qedi_cmd->task, true); - if (rval) { - iscsi_unblock_session(session->cls_session); + if (rval) goto exit_tmf_resp; - } - - iscsi_unblock_session(session->cls_session); spin_lock(&session->back_lock); __iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr_ptr, NULL, 0); From patchwork Fri Apr 16 02:04:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206499 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1FA46C433ED for ; Fri, 16 Apr 2021 02:05:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F2C0461158 for ; Fri, 16 Apr 2021 02:05:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238073AbhDPCFr (ORCPT ); Thu, 15 Apr 2021 22:05:47 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:46292 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238006AbhDPCFg (ORCPT ); Thu, 15 Apr 2021 22:05:36 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G20YIc180069; Fri, 16 Apr 2021 02:05:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=PMadTDtjylbwkxeaFp/fRKmLDEdhxpqJT6zmt3/oT4Y=; b=o63yKnpx/jqer6Eo4e1LvbKOrWPlVTPoGkBknwD/8fziPstCYPg91MOyF6/Sv2+CJdmi FlgYci2b5mrHp9nVev/UeUUzY+65W1NI/eZE3glZDcA0oWnylUN3Wm6+/X5QjAqwQwHI hUqNvaZKCthMLN74Stm2xp2Ai0fuxhzjipxBOMoruZK83ZQHIm3qPxdrJXjzI+urJXs+ FS5TuyQOdbC4cQv4M2j4Sfu3gyvy6fti6hp1gGkE7TE0tsXxQP9V684BF8FO5r9ELfII jJ6T7GC5nR0wU1Li6vUW58C8yH1eNkxUm8LZ3X7S9gDT65nWSsHemZIT5MR4xim3Cm0p Pg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2130.oracle.com with ESMTP id 37u1hbqsc6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:07 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xofO008598; Fri, 16 Apr 2021 02:05:06 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2105.outbound.protection.outlook.com [104.47.55.105]) by aserp3020.oracle.com with ESMTP id 37unx3sp47-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HePBZmtT1btSyVNZiQYk+TGwjFlcGXGFHpWpDz3iF0I1RV+At4FnM2onriPdf1iMSGaJAdHaFt/6UD55iIUE9Aj2zIlYqyIkpU89aphndFYLG/xB1YDDDWbox7+pE6E/R+y6M2BmLl29XWPdJy+0+qOek6YitVyrcNxfSsgTNs8VzDY1MEjYd9g8u9ng+/FcmoYVBXPcaNEJjDUlPWiQmK6j2AXkcNDezLcPgHx9epSUHqqMj//07VRGG/nN6IETjflohkzToM5NGGlTyGOJGv7gTT2Qq3c6ugZFpzi6DDfvE9WGt2lk8WwVGbOASrErzLuhvCAvw9F8ocqy5eIaqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PMadTDtjylbwkxeaFp/fRKmLDEdhxpqJT6zmt3/oT4Y=; b=J6kznplB7PKSo02Yvnm0FMhqHxcu46F7gS/KMpiBn67ZIRi1v9/v8pxZ964ZbpAnYOPhNpg9DCArecnrvUjEcGk80Qby44tob7MjSd5L6st2lMMWtCSp98m6lNzEhot/4wGE1di3Ee2paHUsStvHgFL2694CANy4z/9dbDSPq6xEEdlI32FkEIaHpxS3gfOvFQvHPKulx0L53ptsBM8ZzhkGWR5D5r2YL4+VkeZClrKEGxX/pHiKpml2XlaKQaTPPqvE6fqi0N9x7Q3z6xr6u6Ni8Uxs7Vc+meP1IAW32ymTdMgqHdjeAVE/lCAmSyInY5/UUlHiGR96tRKvjpqiGg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PMadTDtjylbwkxeaFp/fRKmLDEdhxpqJT6zmt3/oT4Y=; b=JFmS8tZzvxOKrcBh/FH2fDbymrFnmm8wqHbM153irpG6iLm5gIErZEnETQwIGw5W3NC/ViTF8ZrRQ6kjFoLhgladHocqw3uTOA61m3Z3Qi2HRgcpyOWw5tF2at++QmrWe8HhpIVPTKbJX/oYQjcqw/uJjnrtip2kcbPjhqt6MHU= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB3318.namprd10.prod.outlook.com (2603:10b6:a03:15d::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.22; Fri, 16 Apr 2021 02:05:05 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:05:05 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 14/17] scsi: qedi: fix cleanup session block/unblock use Date: Thu, 15 Apr 2021 21:04:37 -0500 Message-Id: <20210416020440.259271-15-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:05:04 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fd04646b-ac3d-4cd7-6eba-08d9007c0d49 X-MS-TrafficTypeDiagnostic: BYAPR10MB3318: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4941; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: c/zYMv4eohvKAsn4OBwS9wGQJwsMJWayWyhn3trkaWtmsYc0EtJtDbmyNuunTknEwv8XtaabobaAq9XFfozC0rUpjHTNkKR5c4t0D6TRLrL2lvYX7t3NWfTyXJKjJe9/Dmg4bbNpCcNS2j88yLCa7C0WT+D7G9ITLYqIBuB7VsKtLAqoxm1WILBoSl38Q2As+Vz0zibXb5sgXmodNeb5tBDrdhjx7Po6EfCrEpYzbuGNoxYTT2BHSjIwcKNEBRTw+P5r3xECIRmFPGerHAh028EFl300DD9Ele4sH5tK4XqmshRp8HgThJMl12pLcswBn3kpgjlTtcJyt4qFvKGkQZIjb3zAv7n4PpLSWQP50ABAcNTXLVj+lrwNcnU7eXN08v6RPTCCKR8PxLJcU/sFoGtmFrd+NpiCZ+akoMg2eXj7nOo1Jb7n2IpKtp8bfzMA4VwJNe8ImhvX5ueUoYyDFFOEPFcQ5SXnCrd30u7QykjQboTvq2Z/By8x+SbamOMbJ8TjVtrmm9U1ZQnHiiwu+ktQ6WaKAceeq3KMnRbACcik5rDeF8of1FGmi/fnVeUIGQy5EINvh5qOslGL3SH2nYI7xlUKUlgxQgufjKOnELWQZAEdfEBCJhXxJTPzZDF288keWV8QXHnHec0UeqOEXOYNIxp+uOea0M+JI8bcioR9PTmMAw4M1K478L799G6F X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(136003)(366004)(396003)(38350700002)(38100700002)(52116002)(8936002)(6666004)(2906002)(107886003)(26005)(186003)(1076003)(36756003)(6486002)(6512007)(6506007)(8676002)(86362001)(69590400012)(83380400001)(508600001)(5660300002)(956004)(316002)(66476007)(66946007)(2616005)(4326008)(66556008)(16526019);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Dg9WVkk0sUroQP2xuLEpFAan+UbHHodYQbchlzSCbhPDPJJITnHNNJwG7MY1xjn5+awj5fObcYTd2sxx7m4zjKs4ouQPNpcTdh2mPP2Q2TuFwX8WyK2AG68t0am0fUanZeMz2RdIW6FY1kdGfZFhZuCCypgon/hdhNbYmUHcooWIPC9ZJu0axclw5wuM8QB86v2SlcTJfedUtP/Qt6h97IP/57X7guVFh3DOIg5+HNAnorNo43z/Pj0rBJG0HhG7qBcclxY/Lki4pf9EvMiPnP+GuNRaHqpuhwftlpv4vaL1AI1uZrRw9D1eNFNjo9jqD4sBbwSKbNRsSt/cGvc61Wtzy4pXcDIN2fAp6rYozdPLzHWYRNDTC4I+3K34DrWdTS59bQpcdOPEEfRU2NOqD+CqwV94P7Z4LJjxsD0EasDHshnY8gjN553bakwWkQ8JwSykMq5HRs8VTKx3iWYkmlK3sA4XcZ6sUUK0r1fFhll7ENyLyLDaQuIlrb7wIkuO3K9L8d6dPRAWqRrpBBqeU/vqPNwU8GF1UYtnNTxi2DMMiR01mJZIr2b3Z2cupF2EHeTmCLAuieFOLsO3u7HADQfNwG39xVRRhRWfClhtO717UWTWqpzEXMaLb+Efa7WGk2vu5KfN7MLyAZ41W1Y3/SzSfTib5zRSEmzxmkEuRVEwOqW8Vc0sogInKgzhfNBa5gE2S7lnIoY4H/Q1PqLZgMtKKvHzt97UlHql9Y6khyx9J4k7mQ9G/XBPTMplS710HzRBquXk8kk3RwSLq2KspEBGIdHgTJ/ur3ujCBoP1/sSGpgwnZfhUf2wGiw73QztbP28Eqx5d912V5h/cZ7Akyd05bEnRgoJo4m2HaEThTt6wle3v1eIcjza2enC0aes3kJxW5kp8OL9ZJzZ9BI5660+3GO7PnRXbHUMrd+N4Sw644vfN40BeEdZBlDmE2cMM7EEmexvsjt66Ql7o40mEwzPayfSTscAp1pN6uA632sYMSp0f5ju2V+ldZBMIjdWFOb7+att1V5VHbult7+mPS3SLi0AxcnzrXcnf4KDMGe7cZGLG31FRJXJKZhAtnH2EaWepFtSNKvbWJR+egUL0Zp7o06yDYsLIGjx4depmHDEoFcNpCGgL0d649hSAj6HOvd10T8nwgsPeQli0Gd3Et40jigAfsW5OXiy3YVoAbLR1Sn5WMMB1KRrcbJyS53785rZrcqFniXyDJkIykxLf7iJljxq4HOoA7hLfBHrKeQRxdK+KR7u8PSwPaTGMrzpazmM2GvCzosG/dFmg/FwaoFDeY+efeaDi5qwzxzBin3oGhNrYi3uFQwyQnznAp+a X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd04646b-ac3d-4cd7-6eba-08d9007c0d49 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:05:04.9866 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: F4vWIXDB75x6YCjuIDl8ik4DvjaoSCJAjsBZdIwtReR6pgArFlRUFPD/98YEuqYnaM9F557KK1l3NTULS5R/hq1jdSuzUk3zv0VFnwHdykY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3318 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-GUID: dKG47Xe9hQaQqrV0SC4A_uvDwVvp61M7 X-Proofpoint-ORIG-GUID: dKG47Xe9hQaQqrV0SC4A_uvDwVvp61M7 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 priorityscore=1501 clxscore=1015 adultscore=0 mlxlogscore=999 impostorscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 phishscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Drivers shouldn't be calling block/unblock session for cmd cleanup because the functions can change the session state from under libiscsi. This adds a new a driver level bit so it can block all IO the host while it drains the card. Signed-off-by: Mike Christie Reviewed-by: Manish Rangankar --- drivers/scsi/qedi/qedi.h | 1 + drivers/scsi/qedi/qedi_iscsi.c | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/qedi/qedi.h b/drivers/scsi/qedi/qedi.h index c342defc3f52..ce199a7a16b8 100644 --- a/drivers/scsi/qedi/qedi.h +++ b/drivers/scsi/qedi/qedi.h @@ -284,6 +284,7 @@ struct qedi_ctx { #define QEDI_IN_RECOVERY 5 #define QEDI_IN_OFFLINE 6 #define QEDI_IN_SHUTDOWN 7 +#define QEDI_BLOCK_IO 8 u8 mac[ETH_ALEN]; u32 src_ip[4]; diff --git a/drivers/scsi/qedi/qedi_iscsi.c b/drivers/scsi/qedi/qedi_iscsi.c index 0061866614b4..6e4f7c427af1 100644 --- a/drivers/scsi/qedi/qedi_iscsi.c +++ b/drivers/scsi/qedi/qedi_iscsi.c @@ -330,12 +330,22 @@ qedi_conn_create(struct iscsi_cls_session *cls_session, uint32_t cid) void qedi_mark_device_missing(struct iscsi_cls_session *cls_session) { - iscsi_block_session(cls_session); + struct iscsi_session *session = cls_session->dd_data; + struct qedi_conn *qedi_conn = session->leadconn->dd_data; + + spin_lock_bh(&session->frwd_lock); + set_bit(QEDI_BLOCK_IO, &qedi_conn->qedi->flags); + spin_unlock_bh(&session->frwd_lock); } void qedi_mark_device_available(struct iscsi_cls_session *cls_session) { - iscsi_unblock_session(cls_session); + struct iscsi_session *session = cls_session->dd_data; + struct qedi_conn *qedi_conn = session->leadconn->dd_data; + + spin_lock_bh(&session->frwd_lock); + clear_bit(QEDI_BLOCK_IO, &qedi_conn->qedi->flags); + spin_unlock_bh(&session->frwd_lock); } static int qedi_bind_conn_to_iscsi_cid(struct qedi_ctx *qedi, @@ -789,6 +799,9 @@ static int qedi_task_xmit(struct iscsi_task *task) if (test_bit(QEDI_IN_SHUTDOWN, &qedi_conn->qedi->flags)) return -ENODEV; + if (test_bit(QEDI_BLOCK_IO, &qedi_conn->qedi->flags)) + return -EACCES; + cmd->state = 0; cmd->task = NULL; cmd->use_slowpath = false; From patchwork Fri Apr 16 02:04:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206501 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F7B2C43460 for ; Fri, 16 Apr 2021 02:05:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5BB6361158 for ; Fri, 16 Apr 2021 02:05:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238074AbhDPCFs (ORCPT ); Thu, 15 Apr 2021 22:05:48 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:46696 "EHLO aserp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238050AbhDPCFi (ORCPT ); Thu, 15 Apr 2021 22:05:38 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G24vdo179034; Fri, 16 Apr 2021 02:05:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=/AmxtKfrrWCb7CnO3FCn9o2o0AouYFIz0f5+lqQ+M8g=; b=Y7kcy55fzJUT0nzJ45gWMqOsew0pfl2lYF2AxVk3EHrbdfk5SGL24RObCyEW8wl4Yu/w 6It/PolUpXM6OtJ+v2MDGlMywDXcyaO/77zon0v7SPLlE1Ij6eDCYI2tBROmm3FGn6u5 9RhSpWUfhpYMQ10OUSoI8okORxT+n84nteyaxgn7uRqkxti/uJz53fU2aygXXXyLD01Y 4/BEbdnNxOmyKtfTg5NAu1cE1+l/NtMW0gG5Zv2PEUHEuRmQOvlQXO/4Oy+Ky5SNZo/T L3MRBO3Ep/uHFoF6Bi8/Khcsx29SYnq2XuPUHqVSsW2uJOTvQBwSgfFT8iPNhO5gyoqO bQ== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2120.oracle.com with ESMTP id 37u3ymqn0s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:07 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xofP008598; Fri, 16 Apr 2021 02:05:07 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2105.outbound.protection.outlook.com [104.47.55.105]) by aserp3020.oracle.com with ESMTP id 37unx3sp47-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A4QytCye8GKIzvZ4xLhQORsunC81dAvWD71dr3BYyABfV4NqooWvON9jRrf1BOxkOC4IGq9tivygK04yYMa7aeEF5soD3BWrUVVAy4qts+Cjco7ThgxEy67toOb9T0CjDhdS88uRyR/MLQ2HPFJalWGrCI8MhbmOuyFFyRA17VIdbtDYT+QsjAw3xiWO13P8J4tYOtUF5giIkb1xvGeM9wMgkr4RUPDQAwXBeQ9XQh30E/caUdBKaaDiAyCFCAYF1nPL/qVcQ95R8yaGwAJE83ZX7sL1n9YYjaNW+pfch45nQTsv8Wj0n1/ZvENFHLkLvLl7v4zzotpuJ/DcqbEZSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/AmxtKfrrWCb7CnO3FCn9o2o0AouYFIz0f5+lqQ+M8g=; b=leGqLu8FZCMybHUY+oXv26IgKw/pGbAPCqQ/+Z7+eX//RLRY8CkYXaM5mYN0XD3Zvk2SmibIRsIdFarOh8Y1bKlGffmsOVOtHdUy4e0KoQ9Poe6g1um5ZdA/eNCU4ZS1ZTn9MV1UGa+DGLy1waDf96GXmzTOzN8drPNVCtx72AhOi+/d2S6FkAxNk6x01yqrssPkaHQi4u1xW9Zi2iVVIKld+EHzACWy2pywbmsF6D8StNPFk3PmBu2/3plkoBUAeTgd8akf3iy45B41BtdqV4OtcNlUL6OCSskxeAsaBOSIZnih9korI0uftjBwkgIHQobRhTxFPLA4JHOHgLLL+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/AmxtKfrrWCb7CnO3FCn9o2o0AouYFIz0f5+lqQ+M8g=; b=fVpEW43v6e/KbCeeXBmgo9V7+93vaTw6J5xuJlsyWFNCg7Dp3yphx9IPilLLLhLBsqlmC3sM08V8wGhhjHVCa7780wquxhSs8CcA6rZDLk7heU6O3wHucUNsKPD4C96bAd76IQ1P5ARZ9rk+Whny/ULQ9zdDJfIIQ8mibcakdT0= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB3318.namprd10.prod.outlook.com (2603:10b6:a03:15d::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.22; Fri, 16 Apr 2021 02:05:06 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:05:06 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 15/17] scsi: qedi: pass send_iscsi_tmf task to abort Date: Thu, 15 Apr 2021 21:04:38 -0500 Message-Id: <20210416020440.259271-16-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:05:05 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f51a5ff9-5e9e-4b67-577f-08d9007c0ddf X-MS-TrafficTypeDiagnostic: BYAPR10MB3318: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:962; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 61+nHtv/YoZXHRp3+mRUYwEFOp0+pbPrv/+TJaXGYfQQaVSuePQg9A/hY24BeVltP9LliBkGVwJbF6vukoKsoJmgHv040x63AKcBjMu2yzP6Ig1txWigx4b0Nc+6ffz5QRS9NzoIVK0q8/154x7KpppDxF7JG4PU7HN+fHKxYGAg0ErZ7RmDR00u+ncug2jG3/O4vTE6NmJ1I96v7IcygTUozbinRR+YqYOySaKNB0XHISnRNkTy7TYvMc+2jCx+IixXj9LUTXhZ2XcH8aOzhtbed3xsFu2hc5xyeIctpSNWslDoh2yNmGQL+V4ciGJI536caQ27/717dSO4B+OylW8a32/dVbxWiyg5FkILNmBMRSna02f2bDbSAgxOouZ2NPjivU7odVDMSH5VGfhyyy4LVz31vciUlKCOB+qN/ird0YVRNaVzPG7lBqaSWdTNfjuSIrDaCUjj80h/8gS9Vha9s/nWIYzz6pAMoa6WCNGzWo3LeG2vBJNvl2HjpyuHrOCqI9sp7+D/XA2LCOFhWwQ7f1mOEvK0kg9CEzN2TOggfBYQKfSaisc4K7zbvWb+wTb2L/N7q0j35PMTAxK8LSjRmLHWcmAe7QewCPoYDdYBEEViLTKNm5v5w1ap047uq0cFEawGW4VxBFCXF2gS/NW9oywN3/iNNGdUtC+pwtwv26BF1jPjnp99Xi0JYNX2 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(136003)(366004)(396003)(38350700002)(38100700002)(52116002)(8936002)(6666004)(2906002)(107886003)(26005)(186003)(1076003)(36756003)(6486002)(6512007)(6506007)(8676002)(86362001)(69590400012)(83380400001)(508600001)(5660300002)(956004)(316002)(66476007)(66946007)(2616005)(4326008)(66556008)(16526019);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: s/c7E+gSLbQlOINQWSpa+9q/rHNXp81VljP5uN9Ggtb2ooPr9hYMLHZy6VO9XlSzAMfNvH/moqJKQRMOV5aIr9TQBs37coGXO7nLrQVJl+dnzPzH5NSw8mpcDrDYYPJruVhLbWgDdvN3LL+073xmlM4Wpbtx18mg2rAIFlMEnX+/eMJfwh50xD45phqzzd90rmykzBjW9hk1IXbicC8U3bmLLMzfa6XZ0uq+nBkpousHkMQGWvn9bp4yZ8Sny6lH7jSd/d4SPahXJTIfOwBVnAcTQ+2vLCB2sLe0iA03TrWB5EoJ7SwFBYYXUMefwdvOA422Mxan8fza3hHsjNYelYys5W6BJs3P5Tpj3FJer1bN0skz7bUK4ghRQdUeuMi75gxLeHk7n0kgFFAR97FjnQkhb5Gv5VJ2lGQHk6Pnt4Gt9lcilUooQkJj68hP8jXq5Df9zC3idYX4VJo8uxY4s4ia/VXzNxZK5oMOULO8cSP5DBleWHvyV3+6vjfq0zs4uPMeEFSrqPqzVV2cqsXhTHU8oFuBbXA2vk8jhBfByr8UBSzkBf3cRi7UF/YOOUpTTi8dgYTXTkRpJm2lP4+FjomJxdxOW6UonVoxD9YGuJ4J6xqGviQyt1UJuDsDDg8XJDBaLkpGL9f/kP1NNW+MPMvr0e4O90zgBoNPzonJrNLXFZglLRrAgYXGaYSkdeGuMCgjsy04LkkR6fJfjEy7hdZ6uSNVvwT++nUVNjgPeadUNyYCMU7X7q/KEd1yubtz6l8aFQsNdsPUHQp4izAW0vm7tFfr//APKbS5qXt38afejbmPZ0ra/xYz94vSVI3ubiVYj5aXPBQauxI39A6+FuS09bZqDUQr9lW1Jcc7BRtzTWHJox9zpHVIAD7+B/6AHG5Hx+I4EKCtWlIIZw80/F/QCcCzNQROUD2QcDy5AffnBlwr3RzCAVUdBAv4XNRVD5Q1wfdawvqBWSdTF1ETv7woTbs4OyHLJTlSARja/2kDeJyeMc99IzVadQ5FuST95M9CSNLx9RFpJMHiYMMAPGlHw02cmjCHJyMSgDCetQnQMtpi5L3aS9H5nO0NL5vPuRoYi9L6mDtZJCssvxG3maqUczVVf+N0ATO+L6cNPAXoN/bHK57ni1LEfeALGuqdA1RJ+U6JVhFn4QPfmKJpxYxDxe+MwqNNfg92EllsIEU2Qj8a5x5cHlpc7U4fTYg930aztVXWaLanLvfT/JO6BqgViKzY0+Pc1xFh6qL/1KpKRZoUqE8AGcyDQK6byDiC9J2GA6U+R6q2IVGzBaztgDgjmwO8HNqQGo/MYc+5FbE9/RO5XOJ+ahBhXOu/xPJC X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f51a5ff9-5e9e-4b67-577f-08d9007c0ddf X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:05:06.2259 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8etKTk3dPghhFdYgcmRSMp7fqwB1iXluq/EKKpT9AQrjbaerYNRnyQCGQDuC3s7SGSi1noKKgS6fCXEQEJ5dPsqR48cNZW9Demi2CIo3MHk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3318 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-GUID: dFq78nRV--QFEBQWQ7ehf92Yjgbcnx3w X-Proofpoint-ORIG-GUID: dFq78nRV--QFEBQWQ7ehf92Yjgbcnx3w X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 spamscore=0 impostorscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 bulkscore=0 phishscore=0 suspectscore=0 malwarescore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160015 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org qedi_abort_work knows what task to abort so just pass it to send_iscsi_tmf. Signed-off-by: Mike Christie Reviewed-by: Manish Rangankar --- drivers/scsi/qedi/qedi_fw.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/drivers/scsi/qedi/qedi_fw.c b/drivers/scsi/qedi/qedi_fw.c index f13f8af6d931..475cb7823cf1 100644 --- a/drivers/scsi/qedi/qedi_fw.c +++ b/drivers/scsi/qedi/qedi_fw.c @@ -15,7 +15,7 @@ #include "qedi_fw_scsi.h" static int send_iscsi_tmf(struct qedi_conn *qedi_conn, - struct iscsi_task *mtask); + struct iscsi_task *mtask, struct iscsi_task *ctask); void qedi_iscsi_unmap_sg_list(struct qedi_cmd *cmd) { @@ -1425,7 +1425,7 @@ static void qedi_abort_work(struct work_struct *work) goto ldel_exit; } - send_iscsi_tmf(qedi_conn, qedi_cmd->task); + send_iscsi_tmf(qedi_conn, qedi_cmd->task, ctask); put_task: iscsi_put_task(ctask); @@ -1455,14 +1455,13 @@ static void qedi_abort_work(struct work_struct *work) clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); } -static int send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask) +static int send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask, + struct iscsi_task *ctask) { struct iscsi_tmf_request_hdr tmf_pdu_header; struct iscsi_task_params task_params; struct qedi_ctx *qedi = qedi_conn->qedi; struct e4_iscsi_task_context *fw_task_ctx; - struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data; - struct iscsi_task *ctask; struct iscsi_tm *tmf_hdr; struct qedi_cmd *qedi_cmd; struct qedi_cmd *cmd; @@ -1502,12 +1501,6 @@ static int send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask) if ((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) == ISCSI_TM_FUNC_ABORT_TASK) { - ctask = iscsi_itt_to_task(conn, tmf_hdr->rtt); - if (!ctask || !ctask->sc) { - QEDI_ERR(&qedi->dbg_ctx, - "Could not get reference task\n"); - return 0; - } cmd = (struct qedi_cmd *)ctask->dd_data; tmf_pdu_header.rtt = qedi_set_itt(cmd->task_id, @@ -1560,7 +1553,7 @@ int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask) case ISCSI_TM_FUNC_LOGICAL_UNIT_RESET: case ISCSI_TM_FUNC_TARGET_WARM_RESET: case ISCSI_TM_FUNC_TARGET_COLD_RESET: - rc = send_iscsi_tmf(qedi_conn, mtask); + rc = send_iscsi_tmf(qedi_conn, mtask, NULL); break; default: QEDI_ERR(&qedi->dbg_ctx, "Invalid tmf, cid=0x%x\n", From patchwork Fri Apr 16 02:04:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206507 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 99490C43460 for ; Fri, 16 Apr 2021 02:05:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 76A346117A for ; Fri, 16 Apr 2021 02:05:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237982AbhDPCFu (ORCPT ); Thu, 15 Apr 2021 22:05:50 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:48630 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237998AbhDPCFm (ORCPT ); Thu, 15 Apr 2021 22:05:42 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G24rHe099197; Fri, 16 Apr 2021 02:05:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=yMNKw0a1L4GNo5U7GM4S6fPfZGqis3ORMcxPQCxstb4=; b=vMD309CNgfqxBVlvcj0jTW75xxjloqxrEA0F8UuIJ9gFC7Mbnl5EZ6FQ2Mm40cFIpV4K C2kM12M1YTEmz0lg2e6KdwUGSPjFnd42jaKzS8ayAGg3mgqcOe4OU1CwAVwq9hitR71t XUqqRPaVF5bzoIe4SsBif/yx9WhPjHyFVu5Pln6An8TtYhlrRa/eoMT9ipmu6XSQxd1r 5cK8bHY1MK/c/GbO2A2xTcBlzNLJjcIX3puSO7IRRAMub5wc0LWOFsSQQjGADUXo1CKi LcacXKDqCPBrQVwUT2nOu1RTQus8JBmU0sPH/RJlJgCe400V9m5eQE2cB409luTrqnkb 2A== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 37u3erqpej-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:10 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G20eqU001150; Fri, 16 Apr 2021 02:05:09 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2107.outbound.protection.outlook.com [104.47.55.107]) by aserp3030.oracle.com with ESMTP id 37unktfbgm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZlrtIRjVGxV2am6A33PP+EfxoksgXcgEHBsz8YJ3Sssl8WIs3M2anT5+0GmZ7j4B7qMTvG8YffzJno8T+6J1e5bsbfKbb363Jy/9TscrdAVG/lhwem3kpKMqqAEffgBcAEItQLkI571Ge25+rnUKfQkrdopeV+5Jj7A4luWcjJaRgoUPwF9fXWnscZqTBOXiCKt1a9757hn8AgBckzou6owGW8w2QpffxSXxchQO2tds4ZlzpzRzFRDFh/9GcCf4aJxLYTuTYigxZDzFTeTsWhlWc5hKKNvnVORJcCc6bQ9mYJnBzlOE4PKG0EIXo7VKKtT8KMQLioyWz5+2tPRlKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yMNKw0a1L4GNo5U7GM4S6fPfZGqis3ORMcxPQCxstb4=; b=InWIfYp6nDFnJOef7IZI4Uj/Fx5Z5lLavcKXOu4Ga0M0nyOqz/xy3CpMI0Kes1Rjrql1CXOrJmEHGLyNM7o/D6djeMxy9G10cJ8HpJbCHN5Nslt6boxsx49wruntGD3RHlIiZdFnZyvH7oi2At9HCNSRyWFsfb8CoTn7tA0zAd2sfKjhg3Kt9zCrYIwYQZNeDL1XeG3mI6gdEEfLi9STcsiWq96tNXMg9QEsGzW3LQafGaKFeXSzb5o8x4UczPQZ2HqDWV+TmSXDegCyZzS0MaG2LwBLQYC4RHRN4WnBnQcvBJ+6Ro4TXW/V/XQp1rNoooIhbXBqv2SWs86dwGx1Yg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yMNKw0a1L4GNo5U7GM4S6fPfZGqis3ORMcxPQCxstb4=; b=IX3ZtNXLlCXK+ZIqvsZANCtunqBDFwXBG5ZXrQj0oDaD8Ytx9NGbtAp0RJKxW86S7myKsf50hArRe0QE5Oij+zcRYGJjM89L4jIuktLmR4nPHWmcdkbXX9S2OhF1ckpFAHFSTDTEBtu8KMFSN9RlyJV7dcXzs8tJLVy3MYR550s= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB3318.namprd10.prod.outlook.com (2603:10b6:a03:15d::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.22; Fri, 16 Apr 2021 02:05:07 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:05:07 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 16/17] scsi: qedi: complete TMF works before disconnect Date: Thu, 15 Apr 2021 21:04:39 -0500 Message-Id: <20210416020440.259271-17-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:05:06 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cde412a4-94e6-45da-9ab2-08d9007c0ebe X-MS-TrafficTypeDiagnostic: BYAPR10MB3318: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uFUfRrr3LUJmyty6Wy+fKNEvNrbJApGyzxKM5nF0Ontc6kBZwlUpG7Uz4DgWPFSngDs/ncyw3TytzmLlW+luDLqOdTd6rLSKyHqcIUGdjsJZv+iHPoeqjYAA9JUQj2aV5ai1AAyDApVGuKqnvpfL9SM439WRy4emyveZs7wWQLD8pVajMQiAVSr5P6x17cYokQw9s9mYFBTxrLt5v1OLpzOF5GyKF2BEsx0zvuv158aZl/lMoh6JGjxZeC5+ngoPBVrDtYMb0b/NjMZTU/PhG33wy2U6ZzQ56KVfJwkXbIL2+cLs3yGBSWi6H/Pt1O4aLNn76b39qnzeW0Dzvmzsq3x0qmx0dJcQcxhwr27DofEjadIiaVaOX3NWiazQ5GVya6ALPsRKgWnLaQsaNLMsl0/P18V/Ic8K2+tUlKD2T4RJQ92uq4oGxADFIBaNtTN71lAIqoA147fFfk1U6e5pQHrdv+URFVepvEFiMemf9V36fmfm/75IBCTyEUEzElf8q168bus/cXXUrm1HKsU9qJOQt2owuVtTry+/rH1DXZSuPnw4qtxHsZVLWropSucdpkVwicdvthkSsX5wjvv44TKZdzlEYmnBpcMjZtsENMBgRp1EXgNpNDZAEQKV2FcpgEUvQmTQFEuhX6Z7K67H+p7b0GJrE/7a7/JGu3XVrLpH0GtBYUAxGy9znfpoczCW X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(39860400002)(136003)(366004)(396003)(38350700002)(38100700002)(52116002)(8936002)(6666004)(2906002)(107886003)(26005)(186003)(1076003)(36756003)(6486002)(6512007)(6506007)(8676002)(86362001)(69590400012)(83380400001)(508600001)(5660300002)(956004)(316002)(66476007)(66946007)(2616005)(4326008)(66556008)(16526019);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Q2gPPLSQaKbfHcBhfbl8yUVkbMleLDAeMHI95saFu8/EreDoNu4qUghRQjgD5gMfibA5myeMp7gbRpFdIrvTRzi2t+YHik6IiqHxDy5vZ5AzLiCyyz5cqucpe2zGchHD8wqd2TBBPDk9YzYGXnWObHWY1NAuV0lWuPTXCERUCBTfkO6DHtDgUrF7Y7rSoQQyaY8sqrG7tmFmJAYBJ8sV1VC0rrrwecDH9ls1JNInwaiF+zkuPJuax2FYoXtOPIn4AbwcDFuXHUty1Tfdv3/C2xso4wSwEGXAcYk6fj7RriYTctNKmk5D6ZrlbCZVvPv48ZGM1R+apLBm7yGZfhYweNFxSa4VG02SIFG11ZZFrgJB5LMdI7vJUgAbGUlTt8EKzipzUw0sHty8VKK9IACpc8zSTFlXdycENj5qrIbLp+gYpK8d0iBY47LVPKKFgyn0K7JpLL8zkVx1d2Hxkr+mpvVRlxTdnaDxNTn4y5iC3406QqEaA5PdW3TZo/2Q6ODl614sYQjJp3D5AHYJNCP5rMVa52HfLJNLBc7vJfmCaHda20NhsdorZ7lG8I0htx+9sOh51RZ9Vizc7N15FTeuBmN+oEHlyZUhNutWZTMcRcYkLeYVnJl8dVGtDTxt6ltlGSv0+xVENzYTphrUECd+owcbzjUxn3z3XFGPwu+VyA8CX6+dfXTfd/dfC7PO8fPrvrKjrWR8TelrdwbTYqi49HChEVVqnDxN3ytY3G43tZdEQLlC+2cjUVDIElb4yAE3geqQ4XsQ/oN7N99C96gAunRp5+pMeiXqIdViTF6k4AiBZNVAJxLqcA00KWmyDdk61NrFIBGe/yPiiRMvmTpzefLkIukFjjx1cd6UsIZtzFHNt/+8xF3RRCjjeHZn6gvG6GsJAK/1CfDIQeja3MLnWTnwmuKnjfezakzpl0Gi99F59PCngtufHRxN1lI0H+CLsq3Z3OaTPfYe8M0p1pte5RG4Kq92kJaPOu6jq1riiQLyP/TWyR+fp9GHDfHBDGeWWLz2h7Nfau5iDxXqPM4BlQFbZyqlboSO3dExXLErW3O2G0u8o9SPrGq7JRSSbaPQpvUXc5fLV1Czwd1jIqItYb3g4lgZwMM04bQ7K2hOufeqpu4mBb7O+K+VuVk+ZNpNyI+SV9Dop1yYtlKu9qSrtuxxt1A3ckjt3cBfMNARtZivZbv5y4iiwI99E7agtMIDvXLXZWhplLotis0FEvexCvK8AtlmcX0asZzkFllkkb+K2BS7FM4964HN1RTVwlFJnZElO43F58Z/IUfjVcF4LidcS9FVu0cqHhaZZIGImZ8kdobSPG/NoH8PLzwnU5Pw X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: cde412a4-94e6-45da-9ab2-08d9007c0ebe X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:05:07.4881 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ns/9qxa9PO08GNE5zXf3ErtxUxwRexKBD26pKG2019velSU7mEolGlxyaEyuYHffDISmaQblXTDP79lBr7+0yy9tQ0ODS0rVY9QfDfprFks= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3318 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 adultscore=0 phishscore=0 malwarescore=0 mlxscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-ORIG-GUID: 0RLpDr_rNR9W0O4HfMjd_xrd8sgwCOlV X-Proofpoint-GUID: 0RLpDr_rNR9W0O4HfMjd_xrd8sgwCOlV X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 clxscore=1015 adultscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 spamscore=0 impostorscore=0 suspectscore=0 mlxscore=0 phishscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160015 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org We need to make sure that abort and reset completion work has completed before ep_disconnect returns. After ep_disconnect we can't manipulate cmds because libiscsi will call conn_stop and take onwership. We are trying to make sure abort work and reset completion work has completed before we do the cmd clean up in ep_disconnect. The problem is that: 1. the work function sets the QEDI_CONN_FW_CLEANUP bit, so if the work was still pending we would not see the bit set. We need to do this before the work is queued. 2. If we had multiple works queued then we could break from the loop in qedi_ep_disconnect early because when abort work 1 completes it could clear QEDI_CONN_FW_CLEANUP. qedi_ep_disconnect could then see that before work 2 has run. 3. A TMF reset completion work could run after ep_disconnect starts cleaning up cmds via qedi_clearsq. ep_disconnect's call to qedi_clearsq -> qedi_cleanup_all_io would might think it's done cleaning up cmds, but the reset completion work could still be running. We then return from ep_disconnect while still doing cleanup. This replaces the bit with a counter to track the number of queued TMF works, and adds a bool to prevent new works from starting from the completion path once a ep_disconnect starts. Signed-off-by: Mike Christie Reviewed-by: Manish Rangankar --- drivers/scsi/qedi/qedi_fw.c | 46 +++++++++++++++++++++------------- drivers/scsi/qedi/qedi_iscsi.c | 23 +++++++++++------ drivers/scsi/qedi/qedi_iscsi.h | 4 +-- 3 files changed, 47 insertions(+), 26 deletions(-) diff --git a/drivers/scsi/qedi/qedi_fw.c b/drivers/scsi/qedi/qedi_fw.c index 475cb7823cf1..13dd06915d74 100644 --- a/drivers/scsi/qedi/qedi_fw.c +++ b/drivers/scsi/qedi/qedi_fw.c @@ -156,7 +156,6 @@ static void qedi_tmf_resp_work(struct work_struct *work) struct iscsi_tm_rsp *resp_hdr_ptr; int rval = 0; - set_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); resp_hdr_ptr = (struct iscsi_tm_rsp *)qedi_cmd->tmf_resp_buf; rval = qedi_cleanup_all_io(qedi, qedi_conn, qedi_cmd->task, true); @@ -169,7 +168,10 @@ static void qedi_tmf_resp_work(struct work_struct *work) exit_tmf_resp: kfree(resp_hdr_ptr); - clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); + + spin_lock(&qedi_conn->tmf_work_lock); + qedi_conn->fw_cleanup_works--; + spin_unlock(&qedi_conn->tmf_work_lock); } static void qedi_process_tmf_resp(struct qedi_ctx *qedi, @@ -225,16 +227,25 @@ static void qedi_process_tmf_resp(struct qedi_ctx *qedi, } spin_unlock(&qedi_conn->list_lock); - if (((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) == - ISCSI_TM_FUNC_LOGICAL_UNIT_RESET) || - ((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) == - ISCSI_TM_FUNC_TARGET_WARM_RESET) || - ((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) == - ISCSI_TM_FUNC_TARGET_COLD_RESET)) { + spin_lock(&qedi_conn->tmf_work_lock); + switch (tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) { + case ISCSI_TM_FUNC_LOGICAL_UNIT_RESET: + case ISCSI_TM_FUNC_TARGET_WARM_RESET: + case ISCSI_TM_FUNC_TARGET_COLD_RESET: + if (qedi_conn->ep_disconnect_starting) { + /* Session is down so ep_disconnect will clean up */ + spin_unlock(&qedi_conn->tmf_work_lock); + goto unblock_sess; + } + + qedi_conn->fw_cleanup_works++; + spin_unlock(&qedi_conn->tmf_work_lock); + INIT_WORK(&qedi_cmd->tmf_work, qedi_tmf_resp_work); queue_work(qedi->tmf_thread, &qedi_cmd->tmf_work); goto unblock_sess; } + spin_unlock(&qedi_conn->tmf_work_lock); __iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr_ptr, NULL, 0); kfree(resp_hdr_ptr); @@ -1361,7 +1372,6 @@ static void qedi_abort_work(struct work_struct *work) mtask = qedi_cmd->task; tmf_hdr = (struct iscsi_tm *)mtask->hdr; - set_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); spin_lock_bh(&conn->session->back_lock); ctask = iscsi_itt_to_ctask(conn, tmf_hdr->rtt); @@ -1427,11 +1437,7 @@ static void qedi_abort_work(struct work_struct *work) send_iscsi_tmf(qedi_conn, qedi_cmd->task, ctask); -put_task: - iscsi_put_task(ctask); -clear_cleanup: - clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); - return; + goto put_task; ldel_exit: spin_lock_bh(&qedi_conn->tmf_work_lock); @@ -1449,10 +1455,12 @@ static void qedi_abort_work(struct work_struct *work) qedi_conn->active_cmd_count--; } spin_unlock(&qedi_conn->list_lock); - +put_task: iscsi_put_task(ctask); - - clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); +clear_cleanup: + spin_lock(&qedi_conn->tmf_work_lock); + qedi_conn->fw_cleanup_works--; + spin_unlock(&qedi_conn->tmf_work_lock); } static int send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask, @@ -1547,6 +1555,10 @@ int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask) switch (tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) { case ISCSI_TM_FUNC_ABORT_TASK: + spin_lock(&qedi_conn->tmf_work_lock); + qedi_conn->fw_cleanup_works++; + spin_unlock(&qedi_conn->tmf_work_lock); + INIT_WORK(&qedi_cmd->tmf_work, qedi_abort_work); queue_work(qedi->tmf_thread, &qedi_cmd->tmf_work); break; diff --git a/drivers/scsi/qedi/qedi_iscsi.c b/drivers/scsi/qedi/qedi_iscsi.c index 6e4f7c427af1..25ff2bda077b 100644 --- a/drivers/scsi/qedi/qedi_iscsi.c +++ b/drivers/scsi/qedi/qedi_iscsi.c @@ -592,7 +592,11 @@ static int qedi_conn_start(struct iscsi_cls_conn *cls_conn) goto start_err; } - clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags); + spin_lock(&qedi_conn->tmf_work_lock); + qedi_conn->fw_cleanup_works = 0; + qedi_conn->ep_disconnect_starting = false; + spin_unlock(&qedi_conn->tmf_work_lock); + qedi_conn->abrt_conn = 0; rval = iscsi_conn_start(cls_conn); @@ -1008,7 +1012,6 @@ static void qedi_ep_disconnect(struct iscsi_endpoint *ep) int ret = 0; int wait_delay; int abrt_conn = 0; - int count = 10; wait_delay = 60 * HZ + DEF_MAX_RT_TIME; qedi_ep = ep->dd_data; @@ -1024,13 +1027,19 @@ static void qedi_ep_disconnect(struct iscsi_endpoint *ep) qedi_conn = qedi_ep->conn; abrt_conn = qedi_conn->abrt_conn; - while (count--) { - if (!test_bit(QEDI_CONN_FW_CLEANUP, - &qedi_conn->flags)) { - break; - } + QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO, + "cid=0x%x qedi_ep=%p waiting for %d tmfs\n", + qedi_ep->iscsi_cid, qedi_ep, + qedi_conn->fw_cleanup_works); + + spin_lock(&qedi_conn->tmf_work_lock); + qedi_conn->ep_disconnect_starting = true; + while (qedi_conn->fw_cleanup_works > 0) { + spin_unlock(&qedi_conn->tmf_work_lock); msleep(1000); + spin_lock(&qedi_conn->tmf_work_lock); } + spin_unlock(&qedi_conn->tmf_work_lock); if (test_bit(QEDI_IN_RECOVERY, &qedi->flags)) { if (qedi_do_not_recover) { diff --git a/drivers/scsi/qedi/qedi_iscsi.h b/drivers/scsi/qedi/qedi_iscsi.h index 68ef519f5480..758735209e15 100644 --- a/drivers/scsi/qedi/qedi_iscsi.h +++ b/drivers/scsi/qedi/qedi_iscsi.h @@ -169,8 +169,8 @@ struct qedi_conn { struct list_head tmf_work_list; wait_queue_head_t wait_queue; spinlock_t tmf_work_lock; /* tmf work lock */ - unsigned long flags; -#define QEDI_CONN_FW_CLEANUP 1 + bool ep_disconnect_starting; + int fw_cleanup_works; }; struct qedi_cmd { From patchwork Fri Apr 16 02:04:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Christie X-Patchwork-Id: 12206505 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EB82CC433B4 for ; Fri, 16 Apr 2021 02:05:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id BC3EA61158 for ; Fri, 16 Apr 2021 02:05:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238076AbhDPCFt (ORCPT ); Thu, 15 Apr 2021 22:05:49 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:48616 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238017AbhDPCFl (ORCPT ); Thu, 15 Apr 2021 22:05:41 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G25BID099295; Fri, 16 Apr 2021 02:05:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=ZM4/poIFL+++v55SULVeDUQFLXydEoTXfOiDX5KdoxY=; b=WNDrRE/Tk7hCvS0++2e2OfdORr/Cs1c/8PDND6W8eCepWkjRaq+6soNPQDEf9W+VDz6p oIHHLQPGSYI2KAdqHYgGT67sPMQ0vnn2nqbqDF6KbPZOD+F2WsD+LIG3f35GVFyKTEpI OpQVyodwo7nxUmACTywzC5JIFAMPU59GITvupIqAW0l7ycSN2M385+N0ywpL87H9EYVA dN0vZVfYHdWcsUi+Y36PjYfpBdEvvxB3NcIS1KVDX95lQF6HdiOlopYIsimCsWgn1YAF 5HP9TJu6fJsp08BCpW8LgHuOxhvnXVgVD7rtd8Na7eupTZmVjjEKefe77m9D/7fTMA1K mA== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2130.oracle.com with ESMTP id 37u3erqpek-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:11 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13G1xuPS008904; Fri, 16 Apr 2021 02:05:10 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2102.outbound.protection.outlook.com [104.47.58.102]) by aserp3020.oracle.com with ESMTP id 37unx3sp7f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 02:05:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fkto3ZZhQh7kHGzGqwUzPoYtJvpaq4BmOLACVRli2LUnsLn0+SNo+NF28Qa+C3FPVHldvQH0XRqYR/TZhNyvdV7QvH7k1KBJu84g6FaQz2m9TCR/AR2diCJb+06lRSPZ8wMiQt8ivaRKBDGM4bxxnu0kKmaKBMujYfX0VBt93YAia5773mOkq+JC3ekV7eDrfjn0ZDLcehHkGaTLigsZmvFj9wq5vPDoN24onfsBMlQHpIpsf5w6E+1rd5++5JGYGSQxHpJ3GgMeIrJfyoD8BAMjZuO5+rc61rFMEXp0vZsse6aPwH3QgVDHc8bIBLJ+DbIbptKkBtXCVO4uShvccg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZM4/poIFL+++v55SULVeDUQFLXydEoTXfOiDX5KdoxY=; b=RhwKr4sKNX01SnCMDQYa0RyV5pMl1q3uPzykEPUvir05la4iKql4GNgF9LGURCgv8nB8IdL89eTaaKDEMYPvkUaHht7dwhdt5qzNRvigIoWrKYAilfgE28XKhHWzi09JGmKXj3KXsQMfn2/tXZlB9yQKm6HfyUjUp9oLPDlUhwNcIoiH/3actR2EFkBmmpUMlgkxjVrHQQfwM+W2ikxRAjSxHGSaEWnGRbfGwZQw8J0EU5JnuKqeebNx8jCJi9+tXp6ysiEzx/X6MhcYZgV8mfahl+TOnWw1yzIkoyifAPgmleC9sJpXt/9r15BG71fFqvxX+fuywzmc+JmL29DGaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZM4/poIFL+++v55SULVeDUQFLXydEoTXfOiDX5KdoxY=; b=CNaR1DAcU92yLeXpA4QhCUFzVEWz5NwP+WXjs32QWlzu0b3LloNYqRghmxkHT3zwFjQvL7AhaFJXWAmL6r8i5XOxKsLCdpwlOAG6pXNgM7fiCO4xoLqBfpEYsMNplxLrD1bdBsuiKDevlMBqBIoMVekeTZe/Y1pku2Cd3AlF39I= Authentication-Results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=oracle.com; Received: from BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) by BYAPR10MB2423.namprd10.prod.outlook.com (2603:10b6:a02:af::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Fri, 16 Apr 2021 02:05:08 +0000 Received: from BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4]) by BYAPR10MB3573.namprd10.prod.outlook.com ([fe80::50bb:7b66:35ee:4a4%7]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 02:05:08 +0000 From: Mike Christie To: lduncan@suse.com, martin.petersen@oracle.com, mrangankar@marvell.com, svernekar@marvell.com, linux-scsi@vger.kernel.org, jejb@linux.ibm.com Cc: Mike Christie Subject: [PATCH v3 17/17] scsi: qedi: always wake up if cmd_cleanup_req is set Date: Thu, 15 Apr 2021 21:04:40 -0500 Message-Id: <20210416020440.259271-18-michael.christie@oracle.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210416020440.259271-1-michael.christie@oracle.com> References: <20210416020440.259271-1-michael.christie@oracle.com> X-Originating-IP: [73.88.28.6] X-ClientProxiedBy: DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) To BYAPR10MB3573.namprd10.prod.outlook.com (2603:10b6:a03:11e::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (73.88.28.6) by DM6PR02CA0100.namprd02.prod.outlook.com (2603:10b6:5:1f4::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 02:05:07 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0cbe8285-c602-4a69-356b-08d9007c0f54 X-MS-TrafficTypeDiagnostic: BYAPR10MB2423: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uif+9ekSA4TDqgCO0n7gK6nP6k5st43yYEQ/wyyLNr7KoZ7uo4vgzn+QECEwAtIffAJtyPW0MW0G3vUE9j0FAe7DjgJmDPlvKucU/V1e7TsrFLyAqmGaerNuM/awlgjJXNav1BatdNtSAVPAWCGFGk0QWpUVvSTo55b4CKH8Qo14wmviO8uibfutmF0S72Hvxt+aDy1jLivz9iMxHupc/Cn9IvrbZyZW8kwK7z5g7kt29pLSp2zGZYgHSp93Ku05bs6UecfKfji4gw8ZvuhmXINZshEHxfiZ8gb7Xgg6JKqCWVGY7pcCLy7tyMRQEJhqt82E9exyzsUjW+vLTtQPuJaPx+fpfNL938icRNShHW0mIMheYGGAScECPQLEbRwHGrHsdXJrOsi3ZIHXtLzhU5/CoHjtR9a1w/NFPdoSo9i91q01ieLjYACLCPHeddrEw4AXJvWYk7aChc349KvwEUy7FB6jnVDZP0hfVzAN5gKSTb0x4f3MPNKTX7/yhHFl3Jd3BU2p/WHap1+iv66Zhmj2nwgAZPDUv1Id0EGpF4fRb511t9nyvjnCQcOIrk0HssAU0GZaxg5qpKBtSlXc37gYdDWGYPRvxPDJ8irc/7AcnHcuTSL6b8czvF+Ysy1BrXFDzh2u6i7OuNyoMzqbrKYaQpDxFDa69vABdMvEOjLBJf3IlPlONjXpUY0794EP X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3573.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(376002)(136003)(366004)(396003)(39860400002)(5660300002)(478600001)(1076003)(66946007)(316002)(8676002)(8936002)(38100700002)(4326008)(38350700002)(107886003)(66476007)(66556008)(86362001)(6512007)(6486002)(69590400012)(83380400001)(6666004)(16526019)(186003)(26005)(36756003)(2906002)(52116002)(6506007)(2616005)(956004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: rU6RYm6ttm8uSXV9tJUzbr1zrIeBzDySHN3YfIfVv3znWLkPtPMLcJ0P3lcedRAZmiMtAORkSoDAo2tChQN/RAgzyhQENoSDw7jpenv2FZ2hbEoor/sqQ/q7cvdCEWD3DYvWdrS22gvQmQ6ot/OoKndNb64ghMmh8u5qqCOzHcvrI7LDwV6qnK1J6agmngG8GnMGxpdszovbHYiBcGE4Q/TiuJ862xoMcIjJuMTZFLrZTXQIwEASZA7Hb6AKSLhmLw7VE8nTug380wrLqCqW011+nGVsKxJuumJJstKZGb3oWMvITd0xlnUXrN1RdqeHg3qEtiI4Qr1Flys83VVY0CAE18B2n3SmiUFqUokd9CDe47ToD6566I569Dle7qQfiiPwlwDDSV0vyBVO/TnfEZPzESqjVhi36GqoivLt8Z6QVrPKlhNmO2gKfc/1Ljy6hyQNzP9Q0YRDchy30zwKwWsWW3++v798TDtxczdMbSZkh+1s4JliqmnnES+tEOW0sY9/b5Dxy5qgJEhwfNrFJBpHij/QIMj/uyXx+tggNMesHFqJkQTw7InAfPBS6mp2zRjyoHQZbMybG/r87f+MYXhWwa31FADcC9IguZDOk5ys7dDQ0STkx+m86ca3CedEh0+CO3fuOKWnqODJPEMPXVwCNrxxZCaIlBKW94Of8e+HCFRiikFlj0FNUhJPStAPkOjr80jDkiUYPmBtjRhUJP+1eSvlhkT8oEIUeIt84tXjefcsbPnEBkk4kqbwsfMrMwdM4kaSgUHe21K3Pa30wlOfk6bFbC7jwSgxsGO0Sk2nK1D7GcT8RnfCemvMxi/nC2sSntOWVyJkWjm1qwxOA/EHbtrUbyjhY2s03Wnspc+PwzzQ9VDHC5CaKg/iIhkQM4jrAzzA7RDQ4mHPIVH0mOInkgz7Q/iSlTNd7stRtWQpC2CknSXufmGuLqidLuA4m7EIXuwMneEnSlE4KWKTJDIAcRhEfJ8ZlDvqfHh7CzvwmCXSC4TJra02ssbbynWryJPAFYq1/vT8QObLiuf3i7kb2FquHCmWiio+ZNwkIfA/tCO+8WbhinkRoezIEjekg5zruXaoV93jaG8jxxdDaQzXemqLjKO9LT1pkwnQ2VtlgcfF07FL4FHXGs1F2TuUsyPg6iUJ2wi17lK/Pgzec60pDyWtoYoPGKAGwd1mK4nhMZJ7sePxMRDhzIJYoYC/8EFp6GYU8lLenWd4DOe0tBHop1DdUghumCjmP4iEddPcIfQljaqi8oddAmGhAIN9yFW+0TgJZzE45I78+fvovP0F15NcgGXU8wv+v03YCRHUbUQydks58XJR+Edc5jwt X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0cbe8285-c602-4a69-356b-08d9007c0f54 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3573.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 02:05:08.5655 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: aAXbjcjoN1f0g5GBz2ToHS/PaS1nG4n7ReMFrcwchKKAQJxfLtS/W/sYmGclRh5KErQIDqEZHl5MACrKKyTD6T6vFESV2LreavgWJZ2b/q0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2423 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160014 X-Proofpoint-ORIG-GUID: 8wRJbF8lPPV3XIoo7eLmlDWZOX1cg4JB X-Proofpoint-GUID: 8wRJbF8lPPV3XIoo7eLmlDWZOX1cg4JB X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9955 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 clxscore=1015 adultscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 spamscore=0 impostorscore=0 suspectscore=0 mlxscore=0 phishscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160015 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org If we got a response then we should always wake up the conn. For both the cmd_cleanup_req == 0 or cmd_cleanup_req > 0, we shouldn't dig into iscsi_itt_to_task because we don't know what the upper layers are doing. We can also remove the qedi_clear_task_idx call here because once we signal success libiscsi will loop over the affected commands and end up calling the cleanup_task callout which will release it. Signed-off-by: Mike Christie Reviewed-by: Manish Rangankar --- drivers/scsi/qedi/qedi_fw.c | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/drivers/scsi/qedi/qedi_fw.c b/drivers/scsi/qedi/qedi_fw.c index 13dd06915d74..13d1250951a6 100644 --- a/drivers/scsi/qedi/qedi_fw.c +++ b/drivers/scsi/qedi/qedi_fw.c @@ -739,7 +739,6 @@ static void qedi_process_cmd_cleanup_resp(struct qedi_ctx *qedi, { struct qedi_work_map *work, *work_tmp; u32 proto_itt = cqe->itid; - u32 ptmp_itt = 0; itt_t protoitt = 0; int found = 0; struct qedi_cmd *qedi_cmd = NULL; @@ -823,37 +822,15 @@ static void qedi_process_cmd_cleanup_resp(struct qedi_ctx *qedi, check_cleanup_reqs: if (qedi_conn->cmd_cleanup_req > 0) { - spin_lock_bh(&conn->session->back_lock); - qedi_get_proto_itt(qedi, cqe->itid, &ptmp_itt); - protoitt = build_itt(ptmp_itt, conn->session->age); - task = iscsi_itt_to_task(conn, protoitt); - QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, - "cleanup io itid=0x%x, protoitt=0x%x, cmd_cleanup_cmpl=%d, cid=0x%x\n", - cqe->itid, protoitt, qedi_conn->cmd_cleanup_cmpl, - qedi_conn->iscsi_conn_id); - - spin_unlock_bh(&conn->session->back_lock); - if (!task) { - QEDI_NOTICE(&qedi->dbg_ctx, - "task is null, itid=0x%x, cid=0x%x\n", - cqe->itid, qedi_conn->iscsi_conn_id); - return; - } - qedi_conn->cmd_cleanup_cmpl++; - wake_up(&qedi_conn->wait_queue); - QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_TID, "Freeing tid=0x%x for cid=0x%x\n", cqe->itid, qedi_conn->iscsi_conn_id); - qedi_clear_task_idx(qedi_conn->qedi, cqe->itid); - + qedi_conn->cmd_cleanup_cmpl++; + wake_up(&qedi_conn->wait_queue); } else { - qedi_get_proto_itt(qedi, cqe->itid, &ptmp_itt); - protoitt = build_itt(ptmp_itt, conn->session->age); - task = iscsi_itt_to_task(conn, protoitt); QEDI_ERR(&qedi->dbg_ctx, - "Delayed or untracked cleanup response, itt=0x%x, tid=0x%x, cid=0x%x, task=%p\n", - protoitt, cqe->itid, qedi_conn->iscsi_conn_id, task); + "Delayed or untracked cleanup response, itt=0x%x, tid=0x%x, cid=0x%x\n", + protoitt, cqe->itid, qedi_conn->iscsi_conn_id); } }