Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp661033ybh; Tue, 10 Mar 2020 06:04:37 -0700 (PDT) X-Google-Smtp-Source: ADFU+vsg9aPgD/Fc0O6hJcOPCt6oXCE3l7m2/e+AkqUIXmCipKj/zGakd5kvmC9Ghpt6c9Tp+Lph X-Received: by 2002:aca:2b14:: with SMTP id i20mr1040548oik.79.1583845477451; Tue, 10 Mar 2020 06:04:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1583845477; cv=none; d=google.com; s=arc-20160816; b=csAxVtfQoz9svSN41odEdKwH96DWJFFNeaorBmjVynO9K1aEIIezDAuLgxzZykSOJ5 1Fs52FS8HkSZiR6kd9LELbt0vCG3a0b/SXlXzKxEx4jI2G1sYYVAmAqjXZbjfQGZco9t a5PMKxAk8byMPLJdCrzew9ToifICgZxlODfixJ2iQ+xl3FdytV2obWeOa1z6tFs5mJrB ucNP2qmBBx1TWrTnMlbJBHA6kQ+Iul80ArxOMbqESI3DxTC6F4HpfMq12b0Py6GBhapJ Y+XVkZgJ4jqD0vG5/ZoTspG9cbPQUCtP5IX89rdn47ghmnwXx7vCk2OhZrVlQhGI2j+j IoRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=gKZPI6U78gzowkPAguyiJsqhKZrlFtjA+iL2Pk6OihQ=; b=NPQeBrZWqzYPhB/8XUN7VrHJr5ncXFm6ma4gzkkK/O2vdB+SuWB6FFp/n0zsq9CNip dI1F39s1cz4nRsoqNngmNEDQa65BBiKzVCLIqe40CofKkuupPQHoa3pDSjrrJRUtxVca Ds3C1r2rNpEXClRZXIcdvVWqIJ6zc0VZYK/HwUHCES78RSY9shKetWRTM3IR8qALm6nH Rp/9gw2kHU82n+Lt3bVPVTT/Ne0YRDwaDWLqhB6xWgIb5FxpxDHz+/BoTGsqi4uZ1vnu cl6WV/ku90VNL+UDbUa5iI3RFHhuRLrQTCIcKL+zZEQ3KME1l3Q7t480WpVArqHVQtoz d6XA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Y0R6gSfH; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m7si5738441oie.138.2020.03.10.06.03.33; Tue, 10 Mar 2020 06:04:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Y0R6gSfH; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730354AbgCJNCE (ORCPT + 99 others); Tue, 10 Mar 2020 09:02:04 -0400 Received: from mail.kernel.org ([198.145.29.99]:43890 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728387AbgCJNCD (ORCPT ); Tue, 10 Mar 2020 09:02:03 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id F23BD208E4; Tue, 10 Mar 2020 13:02:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583845322; bh=naQVtRPDRLNxY6J0+1oRvdmUjT0QrCmqOH2sSU55jpY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y0R6gSfHn6L79yF3QUzzeapbWdSLnkwi46DlL2Pcb6JT+QtVARljdHn+r1CcP/waK OHHSTsygvw+Ia+FRCFwbueyQ+pMS/vK7l4OVmTQkuf2WbYAp9CGo8RIF74x2VKf2d4 mvjW6ynwMjI7B+p3AEItdZV/v+bm2ZNE3Wuihvco= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Rob Herring , Tomeu Vizoso , Steven Price , Alyssa Rosenzweig Subject: [PATCH 5.5 141/189] drm/panfrost: Dont try to map on error faults Date: Tue, 10 Mar 2020 13:39:38 +0100 Message-Id: <20200310123654.082624603@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200310123639.608886314@linuxfoundation.org> References: <20200310123639.608886314@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Tomeu Vizoso commit eb9d8ddbc107d02e489681f9dcbf93949e1a99a4 upstream. If the exception type isn't a translation fault, don't try to map and instead go straight to a terminal fault. Otherwise, we can get flooded by kernel warnings and further faults. Fixes: 187d2929206e ("drm/panfrost: Add support for GPU heap allocations") Signed-off-by: Rob Herring Signed-off-by: Tomeu Vizoso Reviewed-by: Steven Price Reviewed-by: Tomeu Vizoso Acked-by: Alyssa Rosenzweig Link: https://patchwork.freedesktop.org/patch/msgid/20200212202236.13095-1-robh@kernel.org Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/panfrost/panfrost_mmu.c | 44 +++++++++++++------------------- 1 file changed, 19 insertions(+), 25 deletions(-) --- a/drivers/gpu/drm/panfrost/panfrost_mmu.c +++ b/drivers/gpu/drm/panfrost/panfrost_mmu.c @@ -601,33 +601,27 @@ static irqreturn_t panfrost_mmu_irq_hand source_id = (fault_status >> 16); /* Page fault only */ - if ((status & mask) == BIT(i)) { - WARN_ON(exception_type < 0xC1 || exception_type > 0xC4); - + ret = -1; + if ((status & mask) == BIT(i) && (exception_type & 0xF8) == 0xC0) ret = panfrost_mmu_map_fault_addr(pfdev, i, addr); - if (!ret) { - mmu_write(pfdev, MMU_INT_CLEAR, BIT(i)); - status &= ~mask; - continue; - } - } - /* terminal fault, print info about the fault */ - dev_err(pfdev->dev, - "Unhandled Page fault in AS%d at VA 0x%016llX\n" - "Reason: %s\n" - "raw fault status: 0x%X\n" - "decoded fault status: %s\n" - "exception type 0x%X: %s\n" - "access type 0x%X: %s\n" - "source id 0x%X\n", - i, addr, - "TODO", - fault_status, - (fault_status & (1 << 10) ? "DECODER FAULT" : "SLAVE FAULT"), - exception_type, panfrost_exception_name(pfdev, exception_type), - access_type, access_type_name(pfdev, fault_status), - source_id); + if (ret) + /* terminal fault, print info about the fault */ + dev_err(pfdev->dev, + "Unhandled Page fault in AS%d at VA 0x%016llX\n" + "Reason: %s\n" + "raw fault status: 0x%X\n" + "decoded fault status: %s\n" + "exception type 0x%X: %s\n" + "access type 0x%X: %s\n" + "source id 0x%X\n", + i, addr, + "TODO", + fault_status, + (fault_status & (1 << 10) ? "DECODER FAULT" : "SLAVE FAULT"), + exception_type, panfrost_exception_name(pfdev, exception_type), + access_type, access_type_name(pfdev, fault_status), + source_id); mmu_write(pfdev, MMU_INT_CLEAR, mask);