Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp45057pxb; Mon, 13 Sep 2021 12:29:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxGv0MzQesTp9wee9NeTRyoX+usztBGlss22KOJZVCnK/yQJa2wXKGaVdL+T2NaLiotqAsG X-Received: by 2002:aa7:df09:: with SMTP id c9mr15143887edy.243.1631561374747; Mon, 13 Sep 2021 12:29:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631561374; cv=none; d=google.com; s=arc-20160816; b=E+xBRs+UUcFC+gxP7daQQscWqSZ0dJICUtWvmo40BqqZxV9I+7q9iFJWD8VJiNdzd6 Vtw5ZbUHBID20N74d8baWb3/ruPfTlKdfPwWqqBrrBm8tm+54ppGNGOuFqheNMIhRvxY m1dkbXTLpZ0nqcoRkBV4LxrYcUwwszXKhc3TGMFw+jwuaYK+NkyOJzf4h26P+/K1XlZ9 X09k6NBez4RHIi2CWQ6J4ukAG0iea0IHnx99bjK/d6EnugOA7pmbHYd+Y34HsgE4O+Ge SNUZ4JjYb0+ECSO66N6+UPv1Q8g3CoRJgMDq6aFCyI87c28Kdae8JAJOm/n0akzRSe3F Dq6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=pO56f+05xZt118DbBDbjwDBtwxoRBHdE7W0Q+igM0Ro=; b=KkK4FqST9v4MT6IRVRpcoVK4uBUqaBNSr0WHw7colRWSm3wgQQskZ+OqpsQ/eRdSa9 O91tx/nMDFHdi/eNIP1M/TtGCzUaqQst6+jYxOBzgYS/XbG3yrbQVvCxOXpC8k3YV8Mh GY81kjcUJnVmk5pTc+zFu8lW0BwnOYNNj875Vo0IAPyNzIr/4TR0IsuxTEEH5oGZc686 XqatKrFGRk1UEq4umA0mvC7ft7U1fAD1Arl1EiQsaSSjfilaEABE/069rnF69tiL1WZc 8RNy2dKc9FSbbjx8Jy0WjSnmh7QXigjOmDiusvn/trigxk1+gnbJzdATlEi2ra4Tvu7q AKdQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=qlw71hc2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id lz19si10788506ejb.512.2021.09.13.12.29.10; Mon, 13 Sep 2021 12:29:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=qlw71hc2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242718AbhIMNeU (ORCPT + 99 others); Mon, 13 Sep 2021 09:34:20 -0400 Received: from mail.kernel.org ([198.145.29.99]:34848 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240145AbhIMNT4 (ORCPT ); Mon, 13 Sep 2021 09:19:56 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1220C610F9; Mon, 13 Sep 2021 13:17:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631539070; bh=Hsm9mGM0x9JEMYCfLLTPajKcPJITFrpKcTBZMtoxeFE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qlw71hc2P6XcMmSPzlEWOmKNaZX644h/z7V836N4o+Meo0jorsCp1vLcHDHa2KriJ hVFxQ09ScohZaF/mhaGbHIo3k4mo06U+JyHQO6XZYmOdLgt7Y84c+JFEDTbR6YCbGF d1pjzTqYYpmcR8nK+9hhz1kTSQ6r6NyNkYigh13o= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Giovanni Cabiddu , Marco Chiappero , Fiona Trahe , Herbert Xu , Sasha Levin Subject: [PATCH 5.4 023/144] crypto: qat - handle both source of interrupt in VF ISR Date: Mon, 13 Sep 2021 15:13:24 +0200 Message-Id: <20210913131048.728316324@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210913131047.974309396@linuxfoundation.org> References: <20210913131047.974309396@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Giovanni Cabiddu [ Upstream commit 0a73c762e1eee33a5e5dc0e3488f1b7cd17249b3 ] 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 Reviewed-by: Fiona Trahe Signed-off-by: Herbert Xu Signed-off-by: Sasha Levin --- 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 df9a1f35b832..ef90902c8200 100644 --- a/drivers/crypto/qat/qat_common/adf_vf_isr.c +++ b/drivers/crypto/qat/qat_common/adf_vf_isr.c @@ -203,6 +203,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 */ @@ -215,7 +216,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 */ @@ -227,10 +228,10 @@ static irqreturn_t adf_isr(int irq, void *privdata) 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.30.2