From patchwork Wed May 16 11:44:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Kalderon X-Patchwork-Id: 914563 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cavium.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="TZK9DwT0"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40mCKw49BGz9s2R for ; Wed, 16 May 2018 21:45:24 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752622AbeEPLpW (ORCPT ); Wed, 16 May 2018 07:45:22 -0400 Received: from mail-co1nam03on0082.outbound.protection.outlook.com ([104.47.40.82]:34844 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752610AbeEPLpU (ORCPT ); Wed, 16 May 2018 07:45:20 -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=j2xVr8LfijOav5tsqs0KAlCxr9R/4JCmalF00e0P24Q=; b=TZK9DwT0phFU2Ddyvjj/JYAAMgBLf9n1pACLIpJ7WpUqUfK2aZAaw29U6aVrFqju4eCkJPQ1ZbtfKPKEO7RhwbEy6GqjIL3VkxRnUgPCnQpctfjS9x2sI+cPWjtzVM+kU5sYi70KEeF33IPhJ1SBiah4/3x5+QmS5OyfOyTBMp0= Received: from DM5PR07CA0080.namprd07.prod.outlook.com (2603:10b6:4:ad::45) by BY1PR0701MB1222.namprd07.prod.outlook.com (2a01:111:e400:4808::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.776.11; Wed, 16 May 2018 11:45:17 +0000 Received: from BN1AFFO11FD026.protection.gbl (2a01:111:f400:7c10::153) by DM5PR07CA0080.outlook.office365.com (2603:10b6:4:ad::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.776.11 via Frontend Transport; Wed, 16 May 2018 11:45:17 +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 BN1AFFO11FD026.mail.protection.outlook.com (10.58.52.86) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.20.735.16 via Frontend Transport; Wed, 16 May 2018 11:45:16 +0000 Received: from lb-tlvb-michal.il.qlogic.com.com (10.185.6.89) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.347.0; Wed, 16 May 2018 04:45:15 -0700 From: Michal Kalderon To: , CC: , , Michal Kalderon , Ariel Elior Subject: [PATCH net 1/3] qed: LL2 flush isles when connection is closed Date: Wed, 16 May 2018 14:44:38 +0300 Message-ID: <20180516114440.5048-2-Michal.Kalderon@cavium.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180516114440.5048-1-Michal.Kalderon@cavium.com> References: <20180516114440.5048-1-Michal.Kalderon@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)(39380400002)(396003)(376002)(39860400002)(346002)(2980300002)(438002)(189003)(199004)(77096007)(186003)(81166006)(356003)(81156014)(26005)(8676002)(50226002)(8936002)(106466001)(305945005)(2906002)(104016004)(5660300001)(47776003)(36756003)(50466002)(59450400001)(54906003)(51416003)(48376002)(316002)(76176011)(16586007)(106002)(110136005)(72206003)(478600001)(126002)(476003)(2616005)(69596002)(11346002)(446003)(336012)(107886003)(6666003)(86362001)(1076002)(4326008)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1222; H:CAEXCH02.caveonetworks.com; FPR:; SPF:Pass; LANG:en; PTR:50-232-66-26-static.hfc.comcastbusiness.net; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD026; 1:FtUSX4BGHxtdNUOeZyAKjBQuHGyvsUGCREOtRCzfxio9J5KhnulHzkmp5T8WT+nZaKC3gxeK8zyxEF8K83/fs0FM102kI46MqH0C1+2VIDUlFUzPYTkjQdUbwFOtDxNA X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4608076)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060); SRVR:BY1PR0701MB1222; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1222; 3:w5CpCad1ur2mT9hBKyAZDeCnmc2WcgnaQ2Zx+N+2Lrm67etCwRB0i2HDzM+io7KZxL44De8yYpKH5y5DEZYGnuuyoHipYFAqXuBIbfIHQwr1uim3uZb6CcqplWtDWc5pi/1VvXNz/+D10FKTtv0LOQvwI26A28380U0o1u/0GVB/LO+OkU2J0CbEL01sXl/YBsIuOwVN6cvGU3G6zez/arjVh18YA4AY0SVT5kkAM86i3gB1vMnKgCnSb5Nx4jaWXuLjNkTxWQ0Rmsvv0ILiHMPBA3yVjrHnQeQcE47Lgm/g+bZ8UrFc8sg/jWIFmYpEkOoekpdm3Opcmu+EOBis4+O1B2uifDA/z8RD/LgezVs=; 25:jSEYG+8nOj87bq6xp2rGhgwIP00lpJomqglLCAFH8gz85+Eu3pjniut7Ox+A7VOUlNCc8icC/YwId27edjKouNm8dZTZb49FnWBGh1FSdWdj7ntBbhrDAJXahW46tA84vMiuMTuuAXF0DZgbasWawqlI4hRNBn/Az5QJlOsUNGEqHxMzjIDitgB6oUehnIMxj/B3iGdvU33100rjtuVyK9dkE2lrCa/X8hJymZQnJnOhByUoQUQ0z8td0SK9d+qWjPyXJ9Mb6jnWVxxRyN7e4NrEkqaeN35KJS4r1iilDUwKz++iaw5WPh6SzgFF2T+/OXwMvfzaq9gWjU94iJWHv3JlupGmMHo0+S0XUiGdyDo= X-MS-TrafficTypeDiagnostic: BY1PR0701MB1222: X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1222; 31:m0TIiwAv021cT7RpJ+AqT8ejNPEEZNRsmV9OQPdoui3CEVc30MDr3noVb0lp2aC4cleEjGPC5noVevHNyMrKpU2GIjTXKAt25/MwtJ7zsGWYlCaBwPmsA5ZdEZhoVUy8w22HORnkix8EiM8ud98RChp9S+NtOnIlXfwa5Zt9luayP7yUEf/HVFn3VjCkyM7sld/69WU8tC+adOLpfLOVLK7tuzFp8F+bbq+wcA6AmWw=; 20:mAyQl7h23uPucXrd4sseftULfKdhhda4/Bzfy6dCHkYRaSF3qHPm4Iriqthe5xMgDcEMEtekQvdYDYQOAC7O1T3XqgcHPOAy19Mm89seTGpDicjelA7p/PR4Zgj7o9A5D5bi1c86OaOjJm5lkDs01TNkWtJ+fufu+GAki0cdtLmXV6a/Zgo0BOYAT2uGPgwlq/7NxgAd08xveGucR6uLTUFQMcotllT5mXnpW0652XY3fpEROG8EooRhbXgI8CtyjttQMXeAhOoOPb91+Cid229cW7n15OnCXXbVhnrcvqac0bXaVlhRFXehgDonCy2o3UfM2gafsDz1cSlWmrQNjODFz5POJemFbAB4LJZwogeXTSw5dBQUVIltpiMAG0zFI7vkhiD97hInCLwzOnRjbUeLACREHlbXzQlVQvrAj2tPmFU1rzCe8htwRcihUd/L67O28OVCF6zzN8tAoK1R3JQ+43hOTrFcT66RbqGLrxfljKTee/KONXNYBcZMJZFd X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93004095)(10201501046)(3231254)(944501410)(52105095)(3002001)(149027)(150027)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123564045)(6072148)(201708071742011); SRVR:BY1PR0701MB1222; BCL:0; PCL:0; RULEID:; SRVR:BY1PR0701MB1222; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1222; 4:NEvFqG6RU1sS8nLccvlGRcAJlF0K35Phr5TJh+Fp6g8zMvr7L+ig4rr55GB6zmFtM69gv/5mNAZk4SjwKAP3VAe+uIq5RoG4+UNPrNL1badImaTIpp0I9BIp8B46Z4dLKSw+eYc1IBiQK5ICNcPnd5NVXp74S2NIMwJFUyZBU1X/vwZ1cCRRSWmMYFaOOmE20qwi/coMo3LcS0LaMn+EP6nXlLVBw52raaeCYn6NY06q7aTaO4mnHhBBeLg/dkNnQORjHacm1Uy0InLO8IIYiw== X-Forefront-PRVS: 0674DC6DD3 X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1222; 23:jeP0M922YA+WlvFzzY6TdObBaY/4L5339tyqn7fWK7+x/ie/M6Z0Ws8RWpo+BWc5AfCXlKyWLS3Zw+tb4ZqsoY/0K4FcVP040unQXdR3dBBq7/ek30KScT6VdBpL+U3zBvWDbNxAoLyaHVOZHrfMlXfFyE633A4pRyZIChNYm40nxQMRiFgmQEyksWP03dbeAZalsnHaH3zJIJJTCPR1PzxX7Jhz+U74BSySDcDAzQ2AE1JnVjz4hdu66cZQcd7ErjedMPlaOdumlhApCRXzuOXxRr14jdHzlYTVwUaWoA1HM5Cepo/iOXCVBcD3WZSudhtjuoGHe4J2oiJYbXReH6zWBdx4pjQ8wyrDWTzKlFo8fO3+8k/9vQM5c4oZuTyEDyKOudYTNLKmuN+dLGgbS4sVP7dKKJEJNTRRpGsPwGeUzm6QGUordE3BLOOzvSX79LggN7+YUR3l7w89ArW49dHIJG9cqrynLJLQAEjXhE46xDOVrz73fTFc3+y+Im3AMFjLgAOCAnK5bim6L3AWqte6xqOpmXBbSbcuefY3zxTN+7GOEO0IU/1207wjJrJDt92b3yiQy7M67H6bNogWGT5cJsf1HFusc/E1oXzm7ueoLHY8XPty33fO14Q+wlPkpeNoyjp9f00EAxOJk3LbZXFDXnMjSVLDGQ0rxsIKudtQl4+zE1qFrzU04ne8dQmNgmmeUBA+YPevPIZJyXIcH7qikyEHSuT5NVnOm6cowy2NVC02OLtVcS82b35sPlk37K0T8YUP/TsLFuyp52MO0AqFxiafgJbiDEMbrHrcQbLw9D7Mqflv5Q3YTF4TudfCcOLUxlYKWcCs9xkYIrR+wWMoAt/imId7DDtfwevQi/x1IrV3PYYD+JyXNd1wfdf6NW7gR76vghnkun1NHZW3GdDr6JaUN1MqFoqVHURNr7ExGDxQU4oZQjrBetuEnmoTmB2QhldORyIfYJ5k1eXYCYYWuG/wtWksVv1wagU7M4EL1mA/F9Q0Q+r/eucI6dHRsjSbb+Iys4R+ycq9g87LHgxE+ONVIQ+AAKX5kkzx39WvLUjS5fktYg1UlhaO8XGfnh38QvxC444wajcBWntn+e0oWhf7XzR2suB11L8WOws= X-Microsoft-Antispam-Message-Info: w93dPQHcH7276tPKVw3GQe2zxCHO1GnBhs7//CfsETpGfcFgt+GZlD/1jSkcx1QFGhTkJiDRBbPsQ1WUBlfr1AGJIQ/7RuLA44L6EEHe6YyNPi4twsLKBn66z8xx7Kamz+C+CrFKqoU/ngDcvR6ceNSThmdjAJPDe2PBMhoX6vdXX/skyVA+sJBuzOVxqKdk X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1222; 6:sxpYURPajadt5XDr7J1KpP1IHUZWZKpYmFK4UQzoY27yQWwEdNhzbxphAoJgVO3BksJEezGrkp3y1iyzdDYlFUivHZCMgisYxFsnzw9t1vewtRiHTnuzMCLvEQ8HiK0jbjeOwIcRHBkC9+hczS9x2abc61eo7oFmYpYtXAFge9Q7maBOCwQpFvhi/r2pQHJ/PnrLc9M1OcKBAYcRA4XM1eeGZWJmpV1YokyyJaRqkS8jQ5Yu3JRHaVQojLtm0VTiD9QZ9vjtRuKe3A+WAXbic1j5mD+fyvWUuvCh2oOdhypvEBJqi4+7HDBeZ1LQOQq0GDmGHIs2ZpFVLlBjDPS46AahhwotAUFsHoNEE2vxZDQUYYkOJ3ZYmfYDQuLTYvLiPRd812Q3hjtbAZguT/BX9SSGI9RpTbllbCJt7FqrFYoUlxbYPrHRuPedwf400Vv6Y0MgA4d202/GUesiDLHIig==; 5:tWOlQV7qmkIH+8ej28x8RDyRMrGhiaLnRrojVgPnyUrgtUZ76WxrLLsM2WWtAaWnsLlPRytnNPpMq/1X5Ti7MWpAchFuM74hAwTrhZzGCdlNI01HKE3rzv76u6xgYzkvkHoXslBAViY1i+xSqiNai+Z7hxdBJx7XGsQlR+wQsh0=; 24:ckuXAHUwm4SGWl8fglShskydZn64OmAn/Rul3siATaPIro9OEX0T3OTpvP8KVffMnH70XFDxbQ2qUEnKrZy7TGUMoDgTDocXYQXp7Z6nhRM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1222; 7:6yA10L69IDOyMcxy8Sn3DPksN5vcwwyWXGBDJrIOXiBLVjhmf8orShsvSuR2zFBG4tkGsrgpZObznqilJ7yN66oFLqncg22CO2+iUWgmi8/XelNe2jD14snOdGyOOk/xI/9yu3/UePhosg5UwDHEEvw/Wzb77JEnYeSZi6UJHUK9+yHEGyWZDcMhxgNzMqqa3DJPj7dDczYfEOoiUA74ph+2SXD1vUZREaPyRSa8KlIEgcSVjTn1RAxvBU7IinKU X-MS-Office365-Filtering-Correlation-Id: 9ce0f01f-d677-4792-c016-08d5bb227eca X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2018 11:45:16.9704 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9ce0f01f-d677-4792-c016-08d5bb227eca 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: BY1PR0701MB1222 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Driver should free all pending isles once it gets a FLUSH cqe from FW. Part of iSCSI out of order flow. Fixes: 1d6cff4fca4366 ("qed: Add iSCSI out of order packet handling") Signed-off-by: Ariel Elior Signed-off-by: Michal Kalderon --- drivers/net/ethernet/qlogic/qed/qed_ll2.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/net/ethernet/qlogic/qed/qed_ll2.c b/drivers/net/ethernet/qlogic/qed/qed_ll2.c index 3850281..b5918bd 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_ll2.c +++ b/drivers/net/ethernet/qlogic/qed/qed_ll2.c @@ -591,6 +591,27 @@ static void qed_ll2_rxq_flush(struct qed_hwfn *p_hwfn, u8 connection_handle) } } +static bool +qed_ll2_lb_rxq_handler_slowpath(struct qed_hwfn *p_hwfn, + struct core_rx_slow_path_cqe *p_cqe) +{ + struct ooo_opaque *iscsi_ooo; + u32 cid; + + if (p_cqe->ramrod_cmd_id != CORE_RAMROD_RX_QUEUE_FLUSH) + return false; + + iscsi_ooo = (struct ooo_opaque *)&p_cqe->opaque_data; + if (iscsi_ooo->ooo_opcode != TCP_EVENT_DELETE_ISLES) + return false; + + /* Need to make a flush */ + cid = le32_to_cpu(iscsi_ooo->cid); + qed_ooo_release_connection_isles(p_hwfn, p_hwfn->p_ooo_info, cid); + + return true; +} + static int qed_ll2_lb_rxq_handler(struct qed_hwfn *p_hwfn, struct qed_ll2_info *p_ll2_conn) { @@ -617,6 +638,11 @@ static int qed_ll2_lb_rxq_handler(struct qed_hwfn *p_hwfn, cq_old_idx = qed_chain_get_cons_idx(&p_rx->rcq_chain); cqe_type = cqe->rx_cqe_sp.type; + if (cqe_type == CORE_RX_CQE_TYPE_SLOW_PATH) + if (qed_ll2_lb_rxq_handler_slowpath(p_hwfn, + &cqe->rx_cqe_sp)) + continue; + if (cqe_type != CORE_RX_CQE_TYPE_REGULAR) { DP_NOTICE(p_hwfn, "Got a non-regular LB LL2 completion [type 0x%02x]\n", From patchwork Wed May 16 11:44:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Kalderon X-Patchwork-Id: 914564 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cavium.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="V1Ivd8ON"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40mCL81Q3dz9s2R for ; Wed, 16 May 2018 21:45:36 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752485AbeEPLpd (ORCPT ); Wed, 16 May 2018 07:45:33 -0400 Received: from mail-cys01nam02on0077.outbound.protection.outlook.com ([104.47.37.77]:27281 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752433AbeEPLpc (ORCPT ); Wed, 16 May 2018 07:45:32 -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=EADAEVBn6r1qHsscb8/gyCjsBQP0cXsDtJpY2BZyRwk=; b=V1Ivd8ONKTa68YXUa/FbGxMALNPCprBIfw9yN/dmHSHFbtHjKob2lvpF4FWZY19eqmKoIzMxFZP+0Duv1G09wzyTQQqiSP4YcL0mMa7Vh9kGKrGmSYFOrAvxnQg6hXsdeI9toUC7+QrGBU4H50Vpsv5u4TQiwcjNPf4O9vLkN2g= Received: from BYAPR07CA0003.namprd07.prod.outlook.com (2603:10b6:a02:bc::16) by MWHPR07MB3118.namprd07.prod.outlook.com (2603:10b6:300:de::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.755.16; Wed, 16 May 2018 11:45:30 +0000 Received: from BN1AFFO11FD018.protection.gbl (2a01:111:f400:7c10::114) by BYAPR07CA0003.outlook.office365.com (2603:10b6:a02:bc::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.776.11 via Frontend Transport; Wed, 16 May 2018 11:45:29 +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 BN1AFFO11FD018.mail.protection.outlook.com (10.58.52.78) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.20.735.16 via Frontend Transport; Wed, 16 May 2018 11:45:29 +0000 Received: from lb-tlvb-michal.il.qlogic.com.com (10.185.6.89) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.347.0; Wed, 16 May 2018 04:45:26 -0700 From: Michal Kalderon To: , CC: , , Michal Kalderon , Ariel Elior Subject: [PATCH net 2/3] qed: Fix possibility of list corruption during rmmod flows Date: Wed, 16 May 2018 14:44:39 +0300 Message-ID: <20180516114440.5048-3-Michal.Kalderon@cavium.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180516114440.5048-1-Michal.Kalderon@cavium.com> References: <20180516114440.5048-1-Michal.Kalderon@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)(396003)(376002)(39860400002)(39380400002)(346002)(2980300002)(438002)(189003)(199004)(356003)(50466002)(47776003)(48376002)(26005)(77096007)(478600001)(72206003)(305945005)(186003)(59450400001)(106466001)(76176011)(51416003)(86362001)(126002)(2906002)(11346002)(575784001)(106002)(104016004)(110136005)(1076002)(81166006)(486006)(8676002)(6666003)(69596002)(476003)(446003)(2616005)(5660300001)(4326008)(8936002)(16586007)(50226002)(54906003)(336012)(81156014)(107886003)(36756003)(316002); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3118; H:CAEXCH02.caveonetworks.com; FPR:; SPF:Pass; LANG:en; PTR:50-232-66-26-static.hfc.comcastbusiness.net; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD018; 1:iW8UXttHiwAigxv35zX/SNTjLD8XlAkm9myXdAp9Y0vVvtpnxjiD9J7w8xu3ZH65j6SkYoSy6vWHNgVIv0z7xg4XhEQOoYVA6/VILs0XT021Yhfqanunh9GdNU4X9zOa X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4608076)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060); SRVR:MWHPR07MB3118; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3118; 3:R+aI1O8xqPdDmAzqBFmtcgvKhCI7AwtfqnPqc4lRh0OgTMSpnXfki4C4ltE3gvpD76kNgw2uu6fEDY3db0zTbltu4UzqiNolWhIzhW6jMS+VuSCVcm1oX0xaCsFUtbo3aj1uqg6PhDWpj+rt0Y/AMqsfNYt3MLSymhdodre20Z2emo3tDQdng11+xxwolqo7W/rWwp6jLxS2ThIKSuQ7IazQj5wTOoB2Cv7issvZYlkjP1GNQpEH6LOOV3N7cY6J/w6kShYBLx4QnAntFyc/usNeG1MBU5bQCu7kKCSlN+pt4hQV6XiOj35Qz/cZm5+wpkNHIrdyVVojJ15QazbR9yjI49yJF5luH7U7ciSaIJ0=; 25:Qwd29R94dxf6fDitgUqtKXr0JLLgKmxeXE02+eE7dB5qm7+h/Jb1LwoJ/zHmbGcqxH945tj0qoY8Lle+5VN8DUmHa/ahDopP2tujU7U1yBqkwfqBIPpAc+4L22PJiGUCNw7hj4aNh6xy44K6g1Ja/4PCr/ToszYwquSmJofjFLw3mTKcfz3EaQHHzQAE0aSTKuq9iimsRNDvlYhnEHeWxIOXFQjm3pIwzYFlrtX+YOqjQAX43KZfoAaiYPpM0YVDvvQTlgscCEgS+lmyyc12qjkSL58oXWj64Q9iaJXQE1bYJsJRxrvVFF+C/VCZgr2YetNtVG6EwhWJC7m8UC+fag== X-MS-TrafficTypeDiagnostic: MWHPR07MB3118: X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3118; 31:CXj/VW3QPqfRhec7gqjCYQwzQmYLd0IpypgyVmUxCzCHhgNDjWwLdNVb+XNYNtqtBqZEzdg6qDym6ErcwWxW6OZw4H0mtxD/Uh0ufzW/HC+3sf9LDeu6iPg/HE7T6HfMW09KjJNRqMzACLhgo7ti2bOE3Qb7yt8wIlJj2DGIg8KZsZQTHtGvMukLrR5rAIpuWM87lESveQekv6bHUUZbZkZEXma5tfwDvtzJnfU4ciM=; 20:97EbaEwfXjf2N5SmBJbeegNxNFtsqrxVM70kp8snEJ+a0BIJz08PKD5Aar2TJklkxPTe8Nwi2rgm1oe9OM8h54aY6kOT+3MSPqwjRuGmMLR5DLI7wu74toHZfSdzjebGgwGMrtr4s+vXl7VmY4DxoPrIBahbpAzFxCsEUz8vjuL5x222ZYP3CCsSvE5f6m2xdg2PMg+eWZkikD8zsrJvJ6aSOvuJ1X1HN2GJ8IBr/f0hJnBvkgsnMre3HXxHVZlGDjOpM110ItOvCa7qZAmjTU4UAF/b/5s28GWCrt2gWyketjlz8Kwph4V1DsMUMsI/rwWE0/jhaI4FSJMm9s5eB1nP8AXfDuKeaDullzWzLrM7E2GhXwIk8VYihhXIv5489EF3Z3LHAdizZbZvndzO0pCJNRlx5A8cQQVQKbyi5YKCKDDFFQrqL9h0W3eG+kLyvc+2lvZUDqwDo/bd7/JqatwhLLmuTAGSUVg9ArcfgIu5TPBpc+8Uv/R+32hqt+Sm X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(93006095)(93004095)(10201501046)(3002001)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:MWHPR07MB3118; BCL:0; PCL:0; RULEID:; SRVR:MWHPR07MB3118; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3118; 4:JhYwwPQrIOzDhA1wUlcGaSIphNRAK/AryOWPjGB2ULrSuflhI5C1NWMBQetIk7HF8q0wgfUNagBnj9BOaXGsEvtThmkYH7uNpovPtpZyaWBuGvXxhG5Iq2jDe10i3aWf7E9yuDXluamxBs6ogvK8YEjVENXxBqX5NMOz7UOzW37v19NDnL9nZV7PVbGb3NC2gyFXTRaB8a0X1pR2c4FqGqx4KE7xG4zOCitgJbdTozTIUAI+jJM3rrdqMHiQNpCVvB0JXiDs+KoO5ceC6gwDxg== X-Forefront-PRVS: 0674DC6DD3 X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3118; 23:7m5rKzNgfIN2QROHplXGpk33+NczQgoVAz9rikoPqjBXxH2AbrilRhtT3oBSynzeX4j8Hl4/zlAh3mxgA4bE/4+UgNoKIYwRZnueDaGe9vB7hDnaUN9YxPxI4vb3ylruxy5D5J0S4eDl+06APVewtyJ8yQHEQ6sNvC03mlDq3a7QcIqcr1IFGwurzRyou9eto7pVyTNxZKBm5B2q2YZd8rPu8r/vO8n4h8cu67j92fh+S4ZIjbxNGFnDCSJ3MzDU1rCTIAu1WpC883cgMYFkz9zS5d7CdKF0CMq0yLEt/ldGpC4EUX3wlvanhpEjcp5NE2SZxq6OOwaLp33EG7UxesQaQyxIk2/e/+NmpnNaBHFy6v/Ft7EUs7IbIxBFaqwbNE7CfmtiHuIafW1/j+YAoinPaLyCyL/ahDauX9FHjlkALCUSnQI2d4qQZItcHcNU6WAC6bxK1t+zMVrpZ7XXCJdX/KRSbsnWEk6oeN5xux62e4GvbdhWq/8dLz6wWIkvwjr8cc7qWlIBDtHFzhJ7uQx8djmKWNHKoSUZuI5R1p9sZ2BQz9lMAbTo8u/bp2sOaPsSJ0Pd9afB0e2Uk1RngDmxF2sXdNu99uMyA7Gk1fWtW46Nkqf/rfcGiyKThwAqQDlmy+STm3eQd58RkZtgG0MbqlMiPpHwO9b9gVKmJbvESNPlzIp76+sNo7VHkc/35uUu6Iwxi/KLSlCg2zqHf5sjFLslG++Dl3CBAV9hrRWD4eubB3vcrNCce2Wokib9ww0GjXCb+uYbpXB1lMBQ5szWoYu4UDxzooRP+5EnEht01DO6QTevbMn0FgtpFrUo5A/jtj/nwcwd8OZlgyqZwS98dHfjJhFfgXVnpQMwm7KLRLPivyAkIGuqDOgGmMqjwGyKjH/CgxGuXlDSgUztzXuVttuEqcDenquOcS+OpfWhAVG+v0SvmNPNtfDnwAjhFjnBWGzJdw+4VtnPpG1N2TsdUldG5yhzViiDgyGY8FvkDRV9UaEEEDiQQn0bImW7PHMCcoZEsRPxtLPuo6ROw+34eFhUPnkVNBmqe/+Nr1tAdskAFcXrAY8t19c/it+DulpYl6JX1gRCkzcONVkmCIC4YzBxf2c5BDoxqRK2OdSS/zqys62Fua0vyk6EjeDrB3qPFMePHzs74kgSLJg4Aw== X-Microsoft-Antispam-Message-Info: SjVjv7SpMm56wRaeunXjcw3uHQf2b0Icw6ofuRFXdsy3UWC8l2wtZluQ763IpWRQcJSDqMydTV4K1tsJmhiEN1yQeonIsoBxdV7Ma7nfGzu7PWdnPFf7xX405OBC6mBzT2UioWj8ImaM6oSFa25zwrw1dFTj/oNC8ly8Qq6JVH35YySDqnlX92xsFXYYZ99j X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3118; 6:hIIC2qW967LYB6bnmHqDrzVQe6fMvrFnkzQTqHUmu9PYALGYxD5dmIB/mUbXJSm6YwFZsn+Qs7HM69mLhyRvzlg4gvV/pazmdgWil12QdA+a6+S0reqWVenaP1RtAxZv31i9ub6eua0uu5JcmsUVhnylJ/+/u4zfws/kBLuZ76bPV5HV/WYk6HjAZANsXnSWq73M9msljJOST4pJAr6HDzuGGzSYyDkcPMpuS+8UFyHsCXAY2ikxk+LzF68razzdkU2FlDmpiTD7KuxliKRFSR7YbNTFKnU67lAL1ObfyfXWV2UEu4JJZ2Fv9bYsHAvp30hfOrTymNStD6yeozoK3FLknHyiPJItMnQLFzejmcQKAbezSCPXwOa/ehpQqZyAbiMDJjCSikFMehT5vv4+La6zmmQ3HYby2qkLzxQDuD6hGt75S/qBTWLqv+XGYW5KXt8nt2jUsNkI3pzcKnl+6A==; 5:0AhBD4wSDqr7ZnTCrGDMHxHKHrvshRF8mItWsYHt8jgYxTPXj8p0Cjnez+aU+RwxWtJqCbXM8ex5a3XjUlyunvvO/Ctu89buhA6KAg4lZBcqP5RCGWTsQ4ZtJHStUogJY71Trd9Rgze/7oV14VptLbW7GSEhsxpEAWvhdl9oP/Y=; 24:C2NDdj1f+hzp9mzaY/toSw/Hu2o7L8AjqaGWo16Jdi8miP54BnDAOYUJM2y90kuOf7bixXoYpwTeNI5v0QT87N5iPNi7t9cPo+zLGWk6n5s= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3118; 7:4bEop5rjWVCN6McNbhOnJzdmyDUJHpzgSzWneL5eMIBaYnsFF8bv6YFGlbXoXZb4eKKOz8P9yefpNV11/XraOWBwHajyMamiG+9iGomWC/xjGGPmzFB4XnPlkDqBdSfWsrJ6NLi3/LAoAvGAkGSYIodF4QEKrWQ+qO0ygGtKwrLeUpmTYbyw3pupedGcE/MsptGSgkKRfsKPWZTZgjgNDQIEORaZVchzKVQRn7IsG+W9eT2BAiFSges4mARPgfBk X-MS-Office365-Filtering-Correlation-Id: 9f45fb52-5a82-4777-72e0-08d5bb228610 X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2018 11:45:29.1868 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9f45fb52-5a82-4777-72e0-08d5bb228610 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: MWHPR07MB3118 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The ll2 flows of flushing the txq/rxq need to be synchronized with the regular fp processing. Caused list corruption during load/unload stress tests. Fixes: 0a7fb11c23c0f ("qed: Add Light L2 support") Signed-off-by: Ariel Elior Signed-off-by: Michal Kalderon --- drivers/net/ethernet/qlogic/qed/qed_ll2.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/qlogic/qed/qed_ll2.c b/drivers/net/ethernet/qlogic/qed/qed_ll2.c index b5918bd..851561f 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_ll2.c +++ b/drivers/net/ethernet/qlogic/qed/qed_ll2.c @@ -292,6 +292,7 @@ static void qed_ll2_txq_flush(struct qed_hwfn *p_hwfn, u8 connection_handle) struct qed_ll2_tx_packet *p_pkt = NULL; struct qed_ll2_info *p_ll2_conn; struct qed_ll2_tx_queue *p_tx; + unsigned long flags = 0; dma_addr_t tx_frag; p_ll2_conn = qed_ll2_handle_sanity_inactive(p_hwfn, connection_handle); @@ -300,6 +301,7 @@ static void qed_ll2_txq_flush(struct qed_hwfn *p_hwfn, u8 connection_handle) p_tx = &p_ll2_conn->tx_queue; + spin_lock_irqsave(&p_tx->lock, flags); while (!list_empty(&p_tx->active_descq)) { p_pkt = list_first_entry(&p_tx->active_descq, struct qed_ll2_tx_packet, list_entry); @@ -309,6 +311,7 @@ static void qed_ll2_txq_flush(struct qed_hwfn *p_hwfn, u8 connection_handle) list_del(&p_pkt->list_entry); b_last_packet = list_empty(&p_tx->active_descq); list_add_tail(&p_pkt->list_entry, &p_tx->free_descq); + spin_unlock_irqrestore(&p_tx->lock, flags); if (p_ll2_conn->input.conn_type == QED_LL2_TYPE_OOO) { struct qed_ooo_buffer *p_buffer; @@ -328,7 +331,9 @@ static void qed_ll2_txq_flush(struct qed_hwfn *p_hwfn, u8 connection_handle) b_last_frag, b_last_packet); } + spin_lock_irqsave(&p_tx->lock, flags); } + spin_unlock_irqrestore(&p_tx->lock, flags); } static int qed_ll2_txq_completion(struct qed_hwfn *p_hwfn, void *p_cookie) @@ -556,6 +561,7 @@ static void qed_ll2_rxq_flush(struct qed_hwfn *p_hwfn, u8 connection_handle) struct qed_ll2_info *p_ll2_conn = NULL; struct qed_ll2_rx_packet *p_pkt = NULL; struct qed_ll2_rx_queue *p_rx; + unsigned long flags = 0; p_ll2_conn = qed_ll2_handle_sanity_inactive(p_hwfn, connection_handle); if (!p_ll2_conn) @@ -563,13 +569,14 @@ static void qed_ll2_rxq_flush(struct qed_hwfn *p_hwfn, u8 connection_handle) p_rx = &p_ll2_conn->rx_queue; + spin_lock_irqsave(&p_rx->lock, flags); while (!list_empty(&p_rx->active_descq)) { p_pkt = list_first_entry(&p_rx->active_descq, struct qed_ll2_rx_packet, list_entry); if (!p_pkt) break; - list_move_tail(&p_pkt->list_entry, &p_rx->free_descq); + spin_unlock_irqrestore(&p_rx->lock, flags); if (p_ll2_conn->input.conn_type == QED_LL2_TYPE_OOO) { struct qed_ooo_buffer *p_buffer; @@ -588,7 +595,9 @@ static void qed_ll2_rxq_flush(struct qed_hwfn *p_hwfn, u8 connection_handle) cookie, rx_buf_addr, b_last); } + spin_lock_irqsave(&p_rx->lock, flags); } + spin_unlock_irqrestore(&p_rx->lock, flags); } static bool From patchwork Wed May 16 11:44:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Kalderon X-Patchwork-Id: 914565 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cavium.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="ErYaPeqY"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40mCLN5JkYz9s2R for ; Wed, 16 May 2018 21:45:48 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752640AbeEPLpq (ORCPT ); Wed, 16 May 2018 07:45:46 -0400 Received: from mail-bl2nam02on0081.outbound.protection.outlook.com ([104.47.38.81]:21024 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752627AbeEPLpo (ORCPT ); Wed, 16 May 2018 07:45:44 -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=IpBlbgbsFWklCkAv6VSqKJsPuc69MNSQp5N2r+blQ78=; b=ErYaPeqYoAWdQBSHWC5zH7/CPrxFdR/d25whm8ohfutkKZRlpiE9lgObN5LEXbr34c6F9nEY9OsMwmPToM5z8MbMTQz1l1Ag4zXkCrz2HPqTlQtSe6n9NE+GBTkLvuPB6ps4EFKe+GGUdj7HcGVSLq8dMm9B1/n72aui/HU1rsE= Received: from CY1PR07CA0021.namprd07.prod.outlook.com (2a01:111:e400:c60a::31) by CY4PR07MB3111.namprd07.prod.outlook.com (2603:10b6:903:ce::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.755.16; Wed, 16 May 2018 11:45:42 +0000 Received: from BN1AFFO11FD010.protection.gbl (2a01:111:f400:7c10::155) by CY1PR07CA0021.outlook.office365.com (2a01:111:e400:c60a::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.776.11 via Frontend Transport; Wed, 16 May 2018 11:45:42 +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 BN1AFFO11FD010.mail.protection.outlook.com (10.58.52.70) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.20.735.16 via Frontend Transport; Wed, 16 May 2018 11:45:42 +0000 Received: from lb-tlvb-michal.il.qlogic.com.com (10.185.6.89) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.347.0; Wed, 16 May 2018 04:45:37 -0700 From: Michal Kalderon To: , CC: , , Michal Kalderon , Ariel Elior Subject: [PATCH net 3/3] qed: Fix LL2 race during connection terminate Date: Wed, 16 May 2018 14:44:40 +0300 Message-ID: <20180516114440.5048-4-Michal.Kalderon@cavium.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180516114440.5048-1-Michal.Kalderon@cavium.com> References: <20180516114440.5048-1-Michal.Kalderon@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)(376002)(396003)(39380400002)(346002)(39860400002)(2980300002)(438002)(199004)(189003)(47776003)(4326008)(86362001)(107886003)(6666003)(48376002)(36756003)(69596002)(106466001)(50466002)(356003)(316002)(305945005)(16586007)(110136005)(106002)(54906003)(1076002)(50226002)(81156014)(8676002)(81166006)(2906002)(5660300001)(59450400001)(76176011)(26005)(186003)(77096007)(8936002)(476003)(2616005)(104016004)(336012)(126002)(446003)(11346002)(51416003)(478600001)(486006)(72206003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3111; 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; BN1AFFO11FD010; 1:iPOlf3yE6JJtoW1hoGrIufxfoFKzAzfqArGa1R5cadhMnn7h3AGq9cRHSgaZYobZmWA5Z7rE4YVcqCpyLdgRWLAQ35d7P40t7S+X2Lo8aRhT/Gmafv6Iuz7zzLv4Y6jU X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4608076)(2017052603328)(7153060); SRVR:CY4PR07MB3111; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3111; 3:k7hOZIgKZldVOteQ1ZoDPxuDCpivCpSFvjXOOV2+tf9XNUXGDVG7QCGbObnpdTseiWY+zKrny3CSPptTWuy7WICSsfHn+YxtlAbg6FSSQzkYft2EODdjVSCFp/LYFPKAwP+dlZYUvjINU0bh+MSHIMcu7/f6qDRi6C3jNMQ6FuTKxZVlmbaMFC6oAyvPmKk2Uz8XPcrvM/Bmnbxt55d+xcK08Yjylzy71kqtDOe2JiKaxrFw68SZ2ReEZODW7P4aPzc9jzSjC69xzfjZpwGPpw0F7aRJba6H3kRhDPBRUcI0tuMskPhUVChZPcWtPAPJRpS7d8NT80OUX33DdhC+0doho0qlrcNpMUV/7Wj/eWI=; 25:FvRbsyQrbhctbKriPW2c3d0H1jbL0hvKs9N3HUa8yFnOOMD932AWB5NRxVk1Sbp8pLKAW85lvKp/fcrXaL0tenNkFCGJgkVYYlJbbfUVWuHioP4T0sHZ4A989tHcA5dtEDaxrKNW98GXCogL93g6MR2puriW/98t47eR/egThdKtVSl0qJ1fEx3sc5OiwfAimF7m0UmMZbjReFWT5YJDqz58t9S3ZShnp6mIy0umWVmKS9+A5rcWDbSSHKyz04U0iXSiD2HhaSZt34uIqMsFoaB8T8St1+EGXUy9hmt5UZkEgvlaylrPlAID1xF350CxgpwmgR4B1tr39vsK6xF2mg== X-MS-TrafficTypeDiagnostic: CY4PR07MB3111: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3111; 31:DG5tupr6bmuDGkO5iV+whepwuzfwhltd0HeGsxGlW/hbydEEydGfWFdUo/2EDsk1CUb9U0d9OGowvdhyXYjl5/fIXxNoVJzwNFyYKkm0wHdrvpohYp5EXlgawGsSidelLKG5KFtED1yP5HUUJpqaJaQ57jtH79JS4cijMGcepqSQP5+qbZ+WR/+Bx3r3sHJR18z4BCKMFwouyw4FjIjE5ZVip7KsOmPcB1lSKmjsYT0=; 20:RwvMUveYfXBKaJifvZtnLrz4LkxFnS6r8U0cy7bNCs2QHSMN9sYsqlAU0i46r9tyRzr0wwZl/n30JKPp8Gn3P4l5vQ/NzZQ/0wkI4k7NVOOHfoEV+ueQPA2URlxsifNN/ADd6RWKmM6WYxQxFp4iFYuvE7gPQ3Y9RAUu/9rMXc/GE/qvriJqhZgOYtTL/U5IhJuPqJPWoYsT/+AfKHyCd4xZTTFUWnk5NoXpX+xjCHomkqno4uWVTJgEJbaSKF0MVR5fGhPZOWqDyqGRv0eRFYMioKI/TugfNuEbUbmsSfFhw6sEZOlF5Qzm/WQAHkAiyeWmbRC3jZjrRmTQStcnqDyDXZ2T7rqXcscVblOK/Zo8fFTWUGR4kZ6b1cFoNvetgUsx4X/74fTZ7EyhNoaYlR5FlxpDNYV7gEvpt5cQKpOq3Eq/uWQfV5P2DFyx+/VjPGZzVRO9DKBMWpousPVhAoQ6mfvAzKG+CKEX7JYjCWErEEiyqldK1l1HRLyJxv4u X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3231254)(944501410)(52105095)(3002001)(93006095)(93004095)(149027)(150027)(6041310)(20161123560045)(20161123558120)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY4PR07MB3111; BCL:0; PCL:0; RULEID:; SRVR:CY4PR07MB3111; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3111; 4:dU9vqQ0m8FCL42HTJ4StyNdUAs8vkf/KUKbXG9X/2RS+3TjvOqM2IlIhMlA+ZK/C29kTa2jIJJLfGyFsBxmDSXUfzQ9AW9yMJckoX8KWeCLy78MKkaPh0b0g95VjqGW0KAknDjiBLO+5XYrlEUHFhfyO5wPEA8SoV+D7oS9TARfYEsVrFX6xpt1P722NrGCoC6fqV8L2qnCn9ge0MvEbzOFvF0Jh/LnBG1iyEOMSYtvF7azXdLwFF1J1C670D8dkxsOh0KtOY3bVi00YW636mg== X-Forefront-PRVS: 0674DC6DD3 X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3111; 23:RmiihOWDUcrg8wcbAo7oTNKqj2ngXp7A/GsXlQiS/qk3WGoJXlwOH9sqz6mrFdlAsVmfEMqBkLZ91cKTy6xY0ncOB4zbxwiZyREY36uz2kqZ9fewrXtaWS2e3Eoq3pfzxwWBhkhIlPIDplPEgO5ocssYYhbeEhV7YTSHPxb77POoHFm7mC6MNe9HdL0intIYDL4woQMKJxYnknpDFdZiqx4csHFPYS5bn2CFyRN7nkSU6X23BXfxmQfsDy4qf4wyAJrxxE1DGg6Tv/Y+rqhBJ9BPMKDkeUwkUEl6kBkrLEqEGsWVdivkxH6ZFsQDlBq4boqlKR4I0WvTjHmx0psrcviDsjK+h6mh3ZNpzO69k51JTLhG8xTi48pIpoOiQIX0r9RTsxmp5wZuybCXBMNxvF7c059qo50sJ0y2juE5dKNk1QpyEiuuVDU/Pn6rzwyd1O2DvbjC8CTsxaT3i7sEIgyg5EROr8u4vbOowvsp1fplseyaflYrXqdE/2XmEuMjUffjTSA5BIuoyrdlgk1bD7pJSX7/6Bg9Dg5ZR+XDQDu22dxHFxi2C5J6t686nKy6Jxg9a6Mp0yKQ2PvcxTalcZPV3fcEtVc7Ucj0jTgCE3rOhchcsf38y7uYhiDrY7u6maFPuPkFbBjwEbKawyahMCUbIqk6ND35QhndMbY4ikG8p6r4zLkwfYpLfssjgZ7s9xB6uUwC/IKiAirq07Qz1pJzotWCjiFfFEWCiaCJ/XxOXkSYaX1iUE5IUA9jU1F1Xe7zNkqb/f0UfIWYlmf+Hp5omt59JeZ7za/dV8orWyGkYOpSMF4lceA1jA5Bso6lT3er5oIRWKufXSNKnoQOIQqfimD/DE+kdY8mK283TME6XMpPWnsEkXb7sSjZTKVgO6jErX9xqN5+69cE4UCx5DWM8INPzernbDK/Fh6xM6M3jHnB0aI5B+8WR4ql1DiIVFUQJMM06X66NKK3UNyL+VfUbUACxNmDxKRsfCQLwl0UIB5xxVULbxZ+23XSAcNGblAypS+5vlR6fHklrbBSg0IIbHKXXHVySelssFHwKEDs6nPb+R6NHVHHoMlJsY8d/za5zVqXR9WRXfdGsiVjZgutX5Rfl8wFyC4+kk6d+E8= X-Microsoft-Antispam-Message-Info: 9Hbz9FQCUiARU4CV/U+tuWqJD97C1cpZ7rkkXbTaWmmIKgQk7wnzEMYo+Vv8il4Zc6c660sGEWNOp5pcI10Hg/DUiwD1NxcoDh7knlo0idh5TtVQybvRXPr3m6xg/o5Lgv9PpZ8m7f02GGWX4LE4KNw7/Ud/xrREBZWD5+bMakIuiKogI3yFTs7uiyexPKEm X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3111; 6:s0Ph/Tifg++SLtUVPidviwg3Rkj/N9jdMaLCGK6SW6edyRzncY1Uui+ZV2+XxitvpIJysU3Z+24kYFsfAbgBXy+ZHSPHUlwA6bOhnhJ2R5BpyDXcmzxwRm2xRkKIDOZ99aKhvwSM9jfFm28FH9kYUtFVudTiSb8SjW0jzRg9neK0m6QhOX8mbRni/KHSwMslN4/vl3eGB8xSnulnjY/t3L+T5FkP34zZSq1ACxKOE1+sXExmzPep6PDEIdL940hYK28eDCB44GI2sy35weH+pkOUJdixjSE/dQDTyTMi+WWWIbKqJs7LJCBnu2qDyEp5eZcQ57t3pAitINzHWP1kkCFAKjQ00IrISQBCFV4AUZgoLg4HqG0/N4mDKV4V6yjHQ9G0YvynQuS8yiVBtteswiKIVQiguC9AhjPTy0BCfQBcto9/g2kPgVTbTSslkZccsMqt9RugFeaRG4yE01ZjhQ==; 5:hV0uHd/QHCMrAhuFi3fTCZW254H3+pCEo7YZ7jeM/Bt165HXwRYcSKPmb9J05LC6/hTAm9GEs99gd55lHg25Oy9OwRoBj+BjU9PtU/YSvhhkNakX9DhxxQobMfeFiYal6kBXV7GU8GYqOvNhk3yFtr89TAuCLqMxlUPyF2VMqkQ=; 24:Wth5rDk3B3fjSfgF95QtBg3YLZSebvGlRETswvIGPYxtP44DzFrsbEOro99h6rgL3tfbGtwlr/8IJXObT5vLUERArb4rLBNvDx81Jc575uU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3111; 7:1bMZlvj+G5ID8pD4vhlcSFoverv/zQmZWszbvcQJInCkQuS1apA49NJHdvdg8HhYc0G6JhKxp3WoMzdpeu6SEAwkeRQPxo+KmCGffDMMn/M6rNdohT9P/uJPQ1dThBlkjwLcJz1DwXzvaNr//HKi2SNKQkdTWsmutV1CCmL3hiO44QK9R0TxpbNRX0/NoSyD3QxsgKfeI6S11aARfVQCqYZAW6FrSSWAyYwhJIsQpFcxO01dbAMYlWGEiGXP/+lA X-MS-Office365-Filtering-Correlation-Id: f344584f-f280-46a8-63f4-08d5bb228dc7 X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2018 11:45:42.1454 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f344584f-f280-46a8-63f4-08d5bb228dc7 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: CY4PR07MB3111 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Stress on qedi/qedr load unload lead to list_del corruption. This is due to ll2 connection terminate freeing resources without verifying that no more ll2 processing will occur. This patch unregisters the ll2 status block before terminating the connection to assure this race does not occur. Fixes: 1d6cff4fca4366 ("qed: Add iSCSI out of order packet handling") Signed-off-by: Ariel Elior Signed-off-by: Michal Kalderon --- drivers/net/ethernet/qlogic/qed/qed_ll2.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qed/qed_ll2.c b/drivers/net/ethernet/qlogic/qed/qed_ll2.c index 851561f..468c59d 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_ll2.c +++ b/drivers/net/ethernet/qlogic/qed/qed_ll2.c @@ -829,6 +829,9 @@ static int qed_ll2_lb_rxq_completion(struct qed_hwfn *p_hwfn, void *p_cookie) struct qed_ll2_info *p_ll2_conn = (struct qed_ll2_info *)p_cookie; int rc; + if (!QED_LL2_RX_REGISTERED(p_ll2_conn)) + return 0; + rc = qed_ll2_lb_rxq_handler(p_hwfn, p_ll2_conn); if (rc) return rc; @@ -849,6 +852,9 @@ static int qed_ll2_lb_txq_completion(struct qed_hwfn *p_hwfn, void *p_cookie) u16 new_idx = 0, num_bds = 0; int rc; + if (!QED_LL2_TX_REGISTERED(p_ll2_conn)) + return 0; + new_idx = le16_to_cpu(*p_tx->p_fw_cons); num_bds = ((s16)new_idx - (s16)p_tx->bds_idx); @@ -1902,17 +1908,25 @@ int qed_ll2_terminate_connection(void *cxt, u8 connection_handle) /* Stop Tx & Rx of connection, if needed */ if (QED_LL2_TX_REGISTERED(p_ll2_conn)) { + p_ll2_conn->tx_queue.b_cb_registred = false; + smp_wmb(); /* Make sure this is seen by ll2_lb_rxq_completion */ rc = qed_sp_ll2_tx_queue_stop(p_hwfn, p_ll2_conn); if (rc) goto out; + qed_ll2_txq_flush(p_hwfn, connection_handle); + qed_int_unregister_cb(p_hwfn, p_ll2_conn->tx_queue.tx_sb_index); } if (QED_LL2_RX_REGISTERED(p_ll2_conn)) { + p_ll2_conn->rx_queue.b_cb_registred = false; + smp_wmb(); /* Make sure this is seen by ll2_lb_rxq_completion */ rc = qed_sp_ll2_rx_queue_stop(p_hwfn, p_ll2_conn); if (rc) goto out; + qed_ll2_rxq_flush(p_hwfn, connection_handle); + qed_int_unregister_cb(p_hwfn, p_ll2_conn->rx_queue.rx_sb_index); } if (p_ll2_conn->input.conn_type == QED_LL2_TYPE_OOO) @@ -1960,16 +1974,6 @@ void qed_ll2_release_connection(void *cxt, u8 connection_handle) if (!p_ll2_conn) return; - if (QED_LL2_RX_REGISTERED(p_ll2_conn)) { - p_ll2_conn->rx_queue.b_cb_registred = false; - qed_int_unregister_cb(p_hwfn, p_ll2_conn->rx_queue.rx_sb_index); - } - - if (QED_LL2_TX_REGISTERED(p_ll2_conn)) { - p_ll2_conn->tx_queue.b_cb_registred = false; - qed_int_unregister_cb(p_hwfn, p_ll2_conn->tx_queue.tx_sb_index); - } - kfree(p_ll2_conn->tx_queue.descq_mem); qed_chain_free(p_hwfn->cdev, &p_ll2_conn->tx_queue.txq_chain);