Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp2950954imb; Mon, 4 Mar 2019 19:25:44 -0800 (PST) X-Google-Smtp-Source: APXvYqypjBaLQfjB+rTcKFoq+IhgoIVuQUfQyfsih+9IhsrCnCV+iqKpd3/CKOVs5q6Y5qrbxqky X-Received: by 2002:a17:902:1101:: with SMTP id d1mr23271495pla.19.1551756344391; Mon, 04 Mar 2019 19:25:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551756344; cv=none; d=google.com; s=arc-20160816; b=X2RLECnyuTpY4GAvGl6T1a/6HU2kUJRxrijbplK2+kAo/7KNMP5SW8WNkknq6Ln/a+ vhOoDWHiP6l5PF0TvsG1iGBb7o09XKZyhHlK9NJ8/W2ccNBvXxXmtn8dQBJi6D93eBn0 KaubvPCdHKW5a4NkE9aTansJnlJVaXV+ogT/CV9onz8G7bK+3BnstRvn7/68IEZGOgdF JE05/h3vZ7rUGUjulRyfOAybd9h3WB9+yIqAyK59bdzsj9rzLm52iITT0+/CJYYl/jGJ OgejfYpcotGybjDQQLzaCPIH0cwFq6zFpsUzXKDX2Wun7/i73zW1GlOMBMZAcHyiAasS 7reA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=9hHsunjj7lRtWu9A888Ey+EZszlNrhf3qP0tq89G2c4=; b=uNyLZQmfZAcFy7debNhiDNzkg0J67W//kC4kpN6T8J/+sy792Cwy2SxAGeZ7J+zO0W MIyKvpDA2qDNgQoBoa0jiZlc+BiDcC3s8Q+nUxcvCK6zD0ce0CLJlL2Agf/N2n2+KnRr 8E/UWdlTsGHUtbFzZty3DpjCSnsOsmXI1lBc1eOh/eGyex5ryXfsMnhNqEGiig/8p7nv bW/7IDMenkJKvbwv14aUQX6VTQT7AX/L6g1j1IdqtzjZGu88LxWTY/E5umcM+T/9d5cl 5RgNfAav+LJPw/0U4IKBZ6tjRwOgZnmkY7ZEJHi42fVAEZvCY9lw+BmWjU77g0ESR2va AmBw== ARC-Authentication-Results: i=1; mx.google.com; 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 k13si7081217pgh.501.2019.03.04.19.25.29; Mon, 04 Mar 2019 19:25:44 -0800 (PST) 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; 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 S1726976AbfCEDYG (ORCPT + 99 others); Mon, 4 Mar 2019 22:24:06 -0500 Received: from 59-120-53-16.HINET-IP.hinet.net ([59.120.53.16]:33338 "EHLO ATCSQR.andestech.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726522AbfCEDYF (ORCPT ); Mon, 4 Mar 2019 22:24:05 -0500 Received: from mail.andestech.com (atcpcs16.andestech.com [10.0.1.222]) by ATCSQR.andestech.com with ESMTP id x253MhqC044022; Tue, 5 Mar 2019 11:22:43 +0800 (GMT-8) (envelope-from vincentc@andestech.com) Received: from atcsqa06.andestech.com (10.0.15.65) by ATCPCS16.andestech.com (10.0.1.222) with Microsoft SMTP Server id 14.3.123.3; Tue, 5 Mar 2019 11:23:40 +0800 From: Vincent Chen To: , , , , , CC: , Subject: [PATCH v2 0/3] riscv: Support trap-based WARN() and fix bug in do_trap_break Date: Tue, 5 Mar 2019 11:23:32 +0800 Message-ID: <1551756215-22299-1-git-send-email-vincentc@andestech.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.0.15.65] X-DNSRBL: X-MAIL: ATCSQR.andestech.com x253MhqC044022 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Changes in v2: - Remove unnecessary non-functional diff - Rearrange the order of the patches - Edit the commit description The trap-based WARN() will help developers to analyze the cause of WARN() because if the debugger is connected, the control flow will be transferred to debugging environment. BUG() is currently not working properly. When the C extension is supported, the assembler translates the "ebreak" to "c.ebreak" opcode. Hence the trap is possibly triggered by "c.ebreak" instead of expected the "ebreak". This will cause the check mechanism in is_valid_bugaddr(bugaddr) to think that the trap triggered by "c.ebreak" occurs in an invalidate bug address. This patch set will add "c.ebreak" into the check mechanism. In addition, BUG() is also unable to work in the kernel module due to an inappropriate condition in is_valid_bugaddr(). Vincent Chen (3): riscv: support trap-based WARN() riscv: Add the support for c.ebreak check in is_valid_bugaddr() riscv: Support BUG() in kernel module arch/riscv/include/asm/bug.h | 34 ++++++++++++++++++++++++---------- arch/riscv/kernel/traps.c | 22 ++++++++++++++++++---- 2 files changed, 42 insertions(+), 14 deletions(-)