Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp814630pxj; Thu, 27 May 2021 12:15:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyPQIILnRe/KRnUQWdeDtjdN5Xqdk4gZzpwcflkgB6FaHMMUNpjChoWTl9euc5xCjVfK7Zt X-Received: by 2002:a5e:a619:: with SMTP id q25mr3825538ioi.95.1622142959635; Thu, 27 May 2021 12:15:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622142959; cv=none; d=google.com; s=arc-20160816; b=lW/4Ry+V4jSG5NCoefGG5cqnsy2H9AAW9zoewTSXcHXyarVr369u/a6BdFTw4v3gph baCPNTOa8Xqqe8PSTX94sYz0IuxBL6vro2gZhRL2BmxIouppm814suoF66zrL3RIJBs5 bNKG8fTJZsxkqGk6r0nkCYawKdGz6Cb7uyvivQxyzX4EKvd4PdXwHmXL4XSmuvXzCJSS qCq7hBgQM7QPrMiYpqqIIWacMv4qz7Syx7LxoAx/lUKjqRyvWDdOrk0+Sjg4vxY8lGcU KwQ0pyejtPwPJ0pn9ezljND3obMfcvxPrKb/tCJf/CQardWm1RVGaIEN0cNmSgNJJqmj PEzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:organization :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:ironport-sdr:ironport-sdr; bh=la18TxfsJPHX46bQbgSzj1Zqu5AgSDKghZYFfGRRnlM=; b=DJ51ifBXD1ZtNytjGsjkFf2Wk11/0cywqbaE8P3FRolGNDOMB301GI8u2/0hK9oBVn te6z+tI0i0sZcbEcelv8xa7bM+MrM2j+l84rTpE66sscO++3fGEcslaEpoJztpAO6EG+ +aN0Ooh/5L/F2clDwpewYSOzZ3lwiLbmURGU6CbocGGW0kZvTwbEDhD2Jx1TVGnpao50 PI7d7FCVaS276SYPWgOCXHZAC7SUZdwNbRW8wvgWVmU4pOP5KHuK7JjjNQ9eivnDseJ+ q9V65b4XkNOIHj3nRzozmX6Na0vd59BsHNFxi3pTbmWtw8mI0nR75qFtYPF37ALL3LFJ PxaQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t19si2854049iog.66.2021.05.27.12.15.43; Thu, 27 May 2021 12:15:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234700AbhE0TPD (ORCPT + 99 others); Thu, 27 May 2021 15:15:03 -0400 Received: from mga06.intel.com ([134.134.136.31]:7489 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234635AbhE0TPD (ORCPT ); Thu, 27 May 2021 15:15:03 -0400 IronPort-SDR: JRq42eTz/uHWfmlOJkSBrl1GOEg4I3WVC/xCaoiPjAtBgYOY7Yp+dWKxK/9lzCFwnNS3LYyDr4 WhShg4m2Qe3Q== X-IronPort-AV: E=McAfee;i="6200,9189,9997"; a="264012443" X-IronPort-AV: E=Sophos;i="5.83,228,1616482800"; d="scan'208";a="264012443" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2021 12:13:29 -0700 IronPort-SDR: zcKSbupV7B2jYexqM4bZBjR2wl5RTHQaLxqbXLTs1yPfTf83OhnTBF0Tf+3l5W5Qv323WTvxSg EUhXylzE8RBQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,228,1616482800"; d="scan'208";a="480717768" Received: from silpixa00393544.ir.intel.com ([10.237.213.118]) by fmsmga002.fm.intel.com with ESMTP; 27 May 2021 12:13:28 -0700 From: Marco Chiappero To: herbert@gondor.apana.org.au Cc: linux-crypto@vger.kernel.org, qat-linux@intel.com, Giovanni Cabiddu , Marco Chiappero Subject: [PATCH 05/10] crypto: qat - handle both source of interrupt in VF ISR Date: Thu, 27 May 2021 20:12:46 +0100 Message-Id: <20210527191251.6317-6-marco.chiappero@intel.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210527191251.6317-1-marco.chiappero@intel.com> References: <20210527191251.6317-1-marco.chiappero@intel.com> MIME-Version: 1.0 Organization: Intel Research and Development Ireland Ltd - Co. Reg. #308263 - Collinstown Industrial Park, Leixlip, County Kildare - Ireland Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org From: Giovanni Cabiddu The top half of the VF drivers handled only a source at the time. If an interrupt for PF2VF and bundle occurred at the same time, the ISR scheduled only the bottom half for PF2VF. This patch fixes the VF top half so that if both sources of interrupt trigger at the same time, both bottom halves are scheduled. This patch is based on earlier work done by Conor McLoughlin. Signed-off-by: Giovanni Cabiddu Reviewed-by: Marco Chiappero --- drivers/crypto/qat/qat_common/adf_vf_isr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/qat/qat_common/adf_vf_isr.c b/drivers/crypto/qat/qat_common/adf_vf_isr.c index 888388acb6bd..3e4f64d248f9 100644 --- a/drivers/crypto/qat/qat_common/adf_vf_isr.c +++ b/drivers/crypto/qat/qat_common/adf_vf_isr.c @@ -160,6 +160,7 @@ static irqreturn_t adf_isr(int irq, void *privdata) struct adf_bar *pmisc = &GET_BARS(accel_dev)[hw_data->get_misc_bar_id(hw_data)]; void __iomem *pmisc_bar_addr = pmisc->virt_addr; + bool handled = false; u32 v_int; /* Read VF INT source CSR to determine the source of VF interrupt */ @@ -172,7 +173,7 @@ static irqreturn_t adf_isr(int irq, void *privdata) /* Schedule tasklet to handle interrupt BH */ tasklet_hi_schedule(&accel_dev->vf.pf2vf_bh_tasklet); - return IRQ_HANDLED; + handled = true; } /* Check bundle interrupt */ @@ -184,10 +185,10 @@ static irqreturn_t adf_isr(int irq, void *privdata) csr_ops->write_csr_int_flag_and_col(bank->csr_addr, bank->bank_number, 0); tasklet_hi_schedule(&bank->resp_handler); - return IRQ_HANDLED; + handled = true; } - return IRQ_NONE; + return handled ? IRQ_HANDLED : IRQ_NONE; } static int adf_request_msi_irq(struct adf_accel_dev *accel_dev) -- 2.26.2