From patchwork Tue Sep 4 21:19:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 10587977 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DC02A920 for ; Tue, 4 Sep 2018 21:19:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C938328F76 for ; Tue, 4 Sep 2018 21:19:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BAEC32A127; Tue, 4 Sep 2018 21:19:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0581F28F76 for ; Tue, 4 Sep 2018 21:19:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727425AbeIEBqZ (ORCPT ); Tue, 4 Sep 2018 21:46:25 -0400 Received: from mail-co1nam03on0053.outbound.protection.outlook.com ([104.47.40.53]:4576 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727174AbeIEBqZ (ORCPT ); Tue, 4 Sep 2018 21:46:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iwK0dUdVG0/niFbTph9pCSvXYZdOVqh5sAUUNWyAdFA=; b=RpxLIY1sxrRk7TN+kc6RmGCy78QIIWFRqhGtUx0KZ8s1XiOLa+xwN5K03KZ3OGm+R+HIzl40s4h8koYFcBA8rEzVLUhwn2+l3sZI9L25QNEnWWFjhKwsE8exgUhbDs39JiTz0ycJJWP2rUEiAAKBD3Wa6OMAiSkGAyhJ8dCOvvM= Received: from DM5PR07CA0075.namprd07.prod.outlook.com (2603:10b6:4:ad::40) by DM6PR07MB4666.namprd07.prod.outlook.com (2603:10b6:5:a0::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1101.15; Tue, 4 Sep 2018 21:19:27 +0000 Received: from CO1NAM05FT049.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e50::208) by DM5PR07CA0075.outlook.office365.com (2603:10b6:4:ad::40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1101.14 via Frontend Transport; Tue, 4 Sep 2018 21:19:27 +0000 Authentication-Results: spf=pass (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=cavium.com; Received-SPF: Pass (protection.outlook.com: domain of cavium.com designates 50.232.66.26 as permitted sender) receiver=protection.outlook.com; client-ip=50.232.66.26; helo=CAEXCH02.caveonetworks.com; Received: from CAEXCH02.caveonetworks.com (50.232.66.26) by CO1NAM05FT049.mail.protection.outlook.com (10.152.96.164) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.20.1143.1 via Frontend Transport; Tue, 4 Sep 2018 21:19:26 +0000 Received: from dut1171.mv.qlogic.com (172.29.51.171) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.347.0; Tue, 4 Sep 2018 14:19:20 -0700 Received: from dut1171.mv.qlogic.com (localhost [127.0.0.1]) by dut1171.mv.qlogic.com (8.14.7/8.14.7) with ESMTP id w84LJLWB031970; Tue, 4 Sep 2018 14:19:21 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id w84LJLd8031969; Tue, 4 Sep 2018 14:19:21 -0700 From: Himanshu Madhani To: , CC: , Subject: [PATCH 02/13] qla2xxx: Fix deadlock between ATIO and HW lock Date: Tue, 4 Sep 2018 14:19:10 -0700 Message-ID: <20180904211921.31927-3-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20180904211921.31927-1-himanshu.madhani@cavium.com> References: <20180904211921.31927-1-himanshu.madhani@cavium.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(136003)(376002)(346002)(39860400002)(396003)(2980300002)(438002)(199004)(189003)(6666003)(336012)(5660300001)(16586007)(42186006)(316002)(11346002)(446003)(54906003)(80596001)(47776003)(50466002)(106002)(44832011)(8676002)(476003)(2616005)(126002)(110136005)(50226002)(486006)(48376002)(69596002)(8936002)(14444005)(36756003)(4326008)(106466001)(1076002)(305945005)(2906002)(86362001)(356003)(186003)(76176011)(81156014)(51416003)(72206003)(26005)(81166006)(87636003)(478600001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR07MB4666;H:CAEXCH02.caveonetworks.com;FPR:;SPF:Pass;LANG:en;PTR:50-232-66-26-static.hfc.comcastbusiness.net;A:1;MX:1; X-Microsoft-Exchange-Diagnostics: 1;CO1NAM05FT049;1:3a65hpIPjJI7L6Zf6+j9qmd/qKwGuJokXXjdA13ZVkS9pOokbbBH3GRtPXjMlDn8hTqk7KKIuD3pFFKQkvTnnXYZyijnMIY42stC6eG7riABlLDnEuDoUL3L999wxFw/ X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bad17feb-a705-4079-f4b8-08d612ac1832 X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060);SRVR:DM6PR07MB4666; X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4666;3:crETeORnVwZiUk/yFiMEVes5P4z1W/Fa7OMG6nYKJvrqMBzOXnSd1/9nal0bfYmFQl5WgAv6MA4eChc4jywa3fHDpkFPrEh2yeWcgMbxh/0oRsKp4/9LV8cdtQyINBQP+B1AE+dQQeAHQj+CvakwAfglhvLBpoBoov1oXivKJHpPVn1G2TWpGtunoi73Gr2oEZUgCjwUHU499W56U9xfOP10hazE/9c8bgLNnMHVmG+XmoSRYmYXJIRiG6MAHg59uzGvBCbDOza19K0/6XG86ph/83ojxuIyHsvHhMpiwPCJKAZbqX1zq78hdeqit3ykcD9Y73d99pwkASU4ugp+mrLlpGvzy1LKcgtsHOFkUsc=;25:sDQzrFAWnlFqUqXWh4le7rJxLfNiaBhCUUybj9+XbPRkE8jKDIiEZylDQGqt2l1aI9giMH6z7w+wPe2afXHzs5ZNFPhmUfuIdKUKp5j0qpnf3Y+o7WcxY2knwAYIGcuf7CXQbq3lPioYKimNx41dNVQeWuwPxPRPkPHDQ4/EDosOLdZdiHhbssA5VVhfdJtO6vGHBHPoFUHEr7w43a6WEFI203gEFadDRCK4NI/pSJ+A68oJw8YzplIF77pejITINIpM8aPs9KYgN4GF4rgmGcxPBBrNzRtYW7EFnuCTWtBl2noKIJ4aWy1X35LDU9fvw8DMNjPPftTkvrnn/Zkzfw== X-MS-TrafficTypeDiagnostic: DM6PR07MB4666: X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4666;31:CPNxohiosuQjeKiX5XxwtrzojNFOFbTbLRK5K5yBIfCkEikf2jGhuabzRnijmmu7aLMGYxmtoYmsqttYHE7CplEZlVIB3GEsUB/r1zKzdqYcRTg6tEJY+SB1LUKp69pvV9yXDVvGhk+Yo5OptE8wbCKiR2mR7U60LcSCaE8ua0J/RpJ64//pNV5dPeMHLy1dqqCHt/2AOhZRejS1k2+wj/eCg3ZsrdVYmAGjnTKbmDs=;20:/GV4EgsmqF88YbFN2sPWQnd1SrLxv9b48pkicqHWp+sqVAc1Ge1I621hfFClf4fhLsZ63Am7lazceUWB0Bh0yx/iaJxpqXGSlRgWltc8ucnnbNIOIW5KkSkV7K8cz+8QstbKRaTccuFw7mFr/O4Ob1s7PN8jUJoELnTlMqKFIhE4cT5uDrN2Th+dd9JsX3D8DRaOgn3PzaReqTCsy+a3UDXVuLXfmkulSBvz6jUOJWgkwcK4x5nea0nKTHs0PvTGi87b5keSPsHMeQaKtHiPZN7Nl8H6qCLJzThKhoL+IKMsr7O3zmsNqZ9THOlZf7kW84Y8BUuT7pCMzbuPdpXRsgFxmMSGfv/V7ZA4G7tsQqNMmBVDm2cBBblqlK86XWXW5d09gRRVur1A3Y9//kpD8s7hVxIzMiFYMsClljbxBEKcrxYcJhXbhU1yLtc5tgwmjAufLvM7a4fmOvVsjjsa22iYzXwE2ZS/UJVy/5z9+pkq5IbQJEes1d3NUY9IkKy1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(209352067349851); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231311)(944501410)(52105095)(93006095)(93004095)(10201501046)(149027)(150027)(6041310)(20161123562045)(20161123564045)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699016);SRVR:DM6PR07MB4666;BCL:0;PCL:0;RULEID:;SRVR:DM6PR07MB4666; X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4666;4:SHm6F02tfE6iqj53JSS5KCWMi8gn+j1nxfhzmjRTw5gyvgmyV2Xl94O5IGaggemTI6pZ4SggsvZCfqQDWYA7N1ZxlN6KGf2e2t1Vo691bq2ZHPY4iLvfd0qFyAAER0xwVmcIBBPxmlaRC/dDr+t8S9OB5ZZRm1jv3Qdi5RCPmK0KGyAPDK/SX+DSzjYxXpLbe35/F82UpQGqMV5qhFQR/COT9m5G6PJJjBC4VmHT0hQDt2gsid5oyFRiroBkfK0Jc132pw70Rwdslx20O3g6sGHK2QXfvG/17j+s9N2kqbNr4HdqP5ouY3mMXbvlBwPN X-Forefront-PRVS: 0785459C39 X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4666;23:CTSstoTGI5kOPhHUy61PYJThNYGAr5Ts60DsDtwOSjuS5OccCA4jn41aMY6F4nalw/HYnTWck3F9uHtE4UTO/p2kfa3zVt2RCLjzafkKJataKPD+6lAUmrTs6DmBA/zz0/Yi7DsmeoAA+yIaL11eGD2iayXAlJhvR7gtaf2ZX18iK3Bc9BK7F5+tvEW87qh6hrsKBJdg9BMQBJEIO8j/HeAdkr36Vb5rl0mGvCjFbcka7GfPO1z9tSvYl6sMMQtTToFP8VR2DNTtM8MjXHqPNtEhrOJaMkc5J4IRueToxZ0Qaphsb6KtK6om+B91GHAC5ZL9NZzwOZ9k66KYuSuV3WGJBiWPsDWiJ1EkCTROGgujSNpaF0zfoyO7PbLxYR+x5r62XJgx/LjmhPyMy6WwqM5tSR2ziO5TO1dJRoWih4SKGll6yPS+vkHtJmbXUpHfeNg39jWyoHD76YjRMXbkdYfw+8/rjr51k9jv7zAOxPn1U19EfcH28eDhgSjurVAOhVyYwYWLP42SMhJUeAVH6Z8Boyc4knzbOPj5gzmlRvLwmcfGXuG0rK8G0TBcf1z7ffDXwcmp98SMRX5u0TCnbdHhHqy0AOIAHeg+sUlrQVtGLpvMmTvQxBkXyeTRVUxOizLuIlklQB2KCoXv3ZMiWay2t1h4jblZeDMp7OMGLE30p5MjyNFJqN/JY3xkncJCSwiUeuNVaMQKSHDKg2O1fl/I+SEyHNwUqEp8wbe/YS0hhhnjUIAOnJCh9PwmqyMNc2V84OoYihWhC4XQCz1ktsk4VsmzwV/ykxha+dn1CFcUbLY5Y9DPUa0XsLB8jl8C9cHGyfphY+eLM565vpIrijH2yoYFy+Pam09g8itcbTAeYHjAtaqTe8BcrW+V4yXKv/3SYHBq+Y6f7cmr1YGDgLrnkFdTMKNJgR419uwosY+I7oRX2bYXQ4byFXzhKzNYkgPxruf+dZfQQBOGg2rN9suJ3iYm0y+HNjCZzVJubYcfCbVgXWI4vVOeakaU3nUvuhLb5ogtienuSnPizdKaO06/6knPw1Q3AulbENfSQ/kQ4e5M+U2stfyB3ySW1H2BR/QDZXekojWUwCkh/5LZ01SsnHHKYm4keVf9BAs9FPLJlQ5s3lH5KYLuPt/N60EP X-Microsoft-Antispam-Message-Info: dqpwVFriIyj1+F7gw/hKTAfkrn6+DCk8GWrUPth/3WrXvzv3i5XMxKSBYTjbaa/jDFGr6WEI2ENkLnvQFOnisUi7tn7lwjdY9MfpfMMX27rEMbboQD92GmkWHfTxG02HH6z4+HmVRlKKEQtCD9IwvbfHGcwOagt9zgV4goSVfVF7d/gYLhox/udzNadvSnKkeydX/pbY+E68HmV/AUsUwQOil47Co+YX8PU3AONLX8LHVBU76xef2yrtXqBtHLBHm3V2Vwp8iSp2msY/bvUgGq9Qzfa8I5Leor61cCesPzVcHoRVPWZYiy2Yt6rxej4YNnPL9NM3QDOc1gLEMDbQV4UDGuonoz4zPqTy594zr1M= X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4666;6:axdKswmf4jJS/F903tn9V4DxiYXAahtWGb+/GaE6o6vxbuMpOuhKYuBlmICsHNOuQFtiEUP/ZIvLvqMIwWXsBnSRloCNbN5BsEOlKzmkMf2fqxc57Xet61h0UiaGkFgPD/rSyxSTCUcH2cA7keb6fg02zb+4APyq6zCJJ9KK8I10PXsaAHt/QsRUQrDwOqipRDjY2+OvfBUxP7lIZJpwiZI+AWUjOlsIUMFEy/eAoEI27YbCizp+rMVdgoJw+SFKcPhQceS4GFcyTT3Csbhmdi9R6nHbhNAjhvb3/DdcxUEH+74u7mxDU27BwfUoz+WkdarU+I3NxuauuSQWOeZh7al/gxAFoxT/lkZ8/sokosZqvd2+ek1WTzzpwTYpTioRpjcShzdj1zxeNoZ1jNhSH3w08IxpXkOAGB9OTc1C3P13l8bzDjuz/jqmUkpuPBynT5LbUzmKHCvBv1x7EjpEOA==;5:l3er43BL4c0IREhPBCzh1l026WcFufrAmGNzIfpWaMMaZgIgOMFNWjURcnqrsCITrUhE4EAp+iFO0bYIoE5AHcqsemsD7qa9H79SeBcgJpCgN4lTBZl9FXMac9dXT3v1ahIDYf2Xy6hvQR7E/C3XEXrqnLrZ4DXuAlh8w5dl3yg=;7:qEgWIzxU65ME5xXu69nxTJWszg+Mz5rPlZfH3gjfSidgtBaoV2wKRRq5/NrSKTgPzG0Zob0uyl175tjdPXTP3RcdbBnaJHIEj8BpRKJyRaMGHrg6z2P+R+vRdAvdJfp6GCKqR+Rb1zTM/jWMFJyRs2IMB8ndrkoC7hFiK8/h9RIPvJNfdjTiwoXk+yT0GYDKdLcJaKSzdsHbDk3D8BgEjtyIUCjDecUq5piSb3yJZT1v/lvL3wzCNR0/ooSwQy0i SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2018 21:19:26.6671 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bad17feb-a705-4079-f4b8-08d612ac1832 X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=711e4ccf-2e9b-4bcf-a551-4094005b6194;Ip=[50.232.66.26];Helo=[CAEXCH02.caveonetworks.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR07MB4666 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Quinn Tran Move ATIO queue processing out of hardware_lock to prevent deadlock. Fixes: 3bb67df5b5f8 ("qla2xxx: Check for online flag instead of active reset when transmitting responses") Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_init.c | 17 ++++----------- drivers/scsi/qla2xxx/qla_isr.c | 48 +++++++++++++++++++---------------------- 2 files changed, 26 insertions(+), 39 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index f8f55184f542..c3c7ab6fe6e1 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -4859,19 +4859,10 @@ qla2x00_configure_loop(scsi_qla_host_t *vha) */ if (qla_tgt_mode_enabled(vha) || qla_dual_mode_enabled(vha)) { - if (IS_QLA27XX(ha) || IS_QLA83XX(ha)) { - spin_lock_irqsave(&ha->tgt.atio_lock, - flags); - qlt_24xx_process_atio_queue(vha, 0); - spin_unlock_irqrestore( - &ha->tgt.atio_lock, flags); - } else { - spin_lock_irqsave(&ha->hardware_lock, - flags); - qlt_24xx_process_atio_queue(vha, 1); - spin_unlock_irqrestore( - &ha->hardware_lock, flags); - } + spin_lock_irqsave(&ha->tgt.atio_lock, flags); + qlt_24xx_process_atio_queue(vha, 0); + spin_unlock_irqrestore(&ha->tgt.atio_lock, + flags); } } } diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 36cbb29c84f6..bc97e3a1bef7 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c @@ -3121,6 +3121,7 @@ qla24xx_intr_handler(int irq, void *dev_id) uint16_t mb[8]; struct rsp_que *rsp; unsigned long flags; + bool process_atio = false; rsp = (struct rsp_que *) dev_id; if (!rsp) { @@ -3181,22 +3182,13 @@ qla24xx_intr_handler(int irq, void *dev_id) qla24xx_process_response_queue(vha, rsp); break; case INTR_ATIO_QUE_UPDATE_27XX: - case INTR_ATIO_QUE_UPDATE:{ - unsigned long flags2; - spin_lock_irqsave(&ha->tgt.atio_lock, flags2); - qlt_24xx_process_atio_queue(vha, 1); - spin_unlock_irqrestore(&ha->tgt.atio_lock, flags2); + case INTR_ATIO_QUE_UPDATE: + process_atio = true; break; - } - case INTR_ATIO_RSP_QUE_UPDATE: { - unsigned long flags2; - spin_lock_irqsave(&ha->tgt.atio_lock, flags2); - qlt_24xx_process_atio_queue(vha, 1); - spin_unlock_irqrestore(&ha->tgt.atio_lock, flags2); - + case INTR_ATIO_RSP_QUE_UPDATE: + process_atio = true; qla24xx_process_response_queue(vha, rsp); break; - } default: ql_dbg(ql_dbg_async, vha, 0x504f, "Unrecognized interrupt type (%d).\n", stat * 0xff); @@ -3210,6 +3202,12 @@ qla24xx_intr_handler(int irq, void *dev_id) qla2x00_handle_mbx_completion(ha, status); spin_unlock_irqrestore(&ha->hardware_lock, flags); + if (process_atio) { + spin_lock_irqsave(&ha->tgt.atio_lock, flags); + qlt_24xx_process_atio_queue(vha, 0); + spin_unlock_irqrestore(&ha->tgt.atio_lock, flags); + } + return IRQ_HANDLED; } @@ -3256,6 +3254,7 @@ qla24xx_msix_default(int irq, void *dev_id) uint32_t hccr; uint16_t mb[8]; unsigned long flags; + bool process_atio = false; rsp = (struct rsp_que *) dev_id; if (!rsp) { @@ -3312,22 +3311,13 @@ qla24xx_msix_default(int irq, void *dev_id) qla24xx_process_response_queue(vha, rsp); break; case INTR_ATIO_QUE_UPDATE_27XX: - case INTR_ATIO_QUE_UPDATE:{ - unsigned long flags2; - spin_lock_irqsave(&ha->tgt.atio_lock, flags2); - qlt_24xx_process_atio_queue(vha, 1); - spin_unlock_irqrestore(&ha->tgt.atio_lock, flags2); + case INTR_ATIO_QUE_UPDATE: + process_atio = true; break; - } - case INTR_ATIO_RSP_QUE_UPDATE: { - unsigned long flags2; - spin_lock_irqsave(&ha->tgt.atio_lock, flags2); - qlt_24xx_process_atio_queue(vha, 1); - spin_unlock_irqrestore(&ha->tgt.atio_lock, flags2); - + case INTR_ATIO_RSP_QUE_UPDATE: + process_atio = true; qla24xx_process_response_queue(vha, rsp); break; - } default: ql_dbg(ql_dbg_async, vha, 0x5051, "Unrecognized interrupt type (%d).\n", stat & 0xff); @@ -3338,6 +3328,12 @@ qla24xx_msix_default(int irq, void *dev_id) qla2x00_handle_mbx_completion(ha, status); spin_unlock_irqrestore(&ha->hardware_lock, flags); + if (process_atio) { + spin_lock_irqsave(&ha->tgt.atio_lock, flags); + qlt_24xx_process_atio_queue(vha, 0); + spin_unlock_irqrestore(&ha->tgt.atio_lock, flags); + } + return IRQ_HANDLED; }