From patchwork Thu Feb 28 10:31:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vincent Chen X-Patchwork-Id: 10832761 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 737AF1399 for ; Thu, 28 Feb 2019 10:32:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5E6E62E497 for ; Thu, 28 Feb 2019 10:32:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4F1FE2E498; Thu, 28 Feb 2019 10:32:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B864F2E472 for ; Thu, 28 Feb 2019 10:32:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=HKTjN9PMRfDi86ph3AeLhHDxmVbHA3qhar12e2lsDDM=; b=OzMFA/eyvpQuw9 3DrwJ4fBHAYCYzfp//+lGwP62b+DYxvrRldFgyr47ZApUAm0sg5Y6O8ZMy3SKahWmgAPs3gtNSKVS fguThJZWDNxKw118DG+h0GrSk14MUaHP2mYVFe4xyk2Xg56jXjeP7ESN6GzkYSrbVhBJoVKkDlHzO JT4y+OvwhyB18FkRwWThq4AM7QBWHNmIfUC6rygCoHp18eGNzF4BCct2VW/h0R0VCROSUdJblcIZc n/rfH95nZrmtExa7ICO2+cllHAiKHAVkaJ0BXKjzcDOyJkUQaguM0ZkmtiF4QKejLE3Wqe2scYUUf 1ltS91ngFaxyyY2RQvrQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gzIz6-0000jU-MF; Thu, 28 Feb 2019 10:32:12 +0000 Received: from 59-120-53-16.hinet-ip.hinet.net ([59.120.53.16] helo=ATCSQR.andestech.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gzIz3-0000hv-Ia for linux-riscv@lists.infradead.org; Thu, 28 Feb 2019 10:32:11 +0000 Received: from mail.andestech.com (atcpcs16.andestech.com [10.0.1.222]) by ATCSQR.andestech.com with ESMTP id x1SAUwQJ086776; Thu, 28 Feb 2019 18:30:58 +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; Thu, 28 Feb 2019 18:31:36 +0800 From: Vincent Chen To: , , , , , , Subject: [PATCH 0/3] riscv: Fix debug instruction check and support trap-based WARN() Date: Thu, 28 Feb 2019 18:31:28 +0800 Message-ID: <1551349891-22683-1-git-send-email-vincentc@andestech.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [10.0.15.65] X-DNSRBL: X-MAIL: ATCSQR.andestech.com x1SAUwQJ086776 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190228_023209_879994_34860535 X-CRM114-Status: UNSURE ( 4.19 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: vincentc@andestech.com, deanbo422@gmail.com Sender: "linux-riscv" Errors-To: linux-riscv-bounces+patchwork-linux-riscv=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The handler for the debug exception will call is_valid_bugaddr(bugaddr) to check if the instruction in bugaddr is a real debug instruction. However, the expected instruction, ebreak, is possibly translated to c.ebreak by assmebler when C extension is supported. This patchset will add c.ebreak into the check mechanism. In addition, BUG() is currently unable to work in the kernel module due to an inappropriated condition in is_valid_bugaddr(). This issue will be fixed in this patchset. Finally, this patchset enables WARN() related functions to trap the code to help developers debug it. Vincent Chen (3): riscv: Add the support for c.ebreak check in is_valid_bugaddr() riscv: Support BUG() in kernel module riscv: Make WARN() related functions able to trigger a trap exception