From: Damien Le Moal <damien.lemoal@wdc.com> To: Palmer Dabbelt <palmer@dabbelt.com>, linux-riscv@lists.infradead.org, Rob Herring <robh+dt@kernel.org>, devicetree@vger.kernel.org, Stephen Boyd <sboyd@kernel.org>, linux-clk@vger.kernel.org, Linus Walleij <linus.walleij@linaro.org>, linux-gpio@vger.kernel.org, Philipp Zabel <p.zabel@pengutronix.de> Cc: Sean Anderson <seanga2@gmail.com> Subject: [PATCH v8 03/22] riscv: Enable interrupts during syscalls with M-Mode Date: Thu, 10 Dec 2020 23:02:54 +0900 [thread overview] Message-ID: <20201210140313.258739-4-damien.lemoal@wdc.com> (raw) In-Reply-To: <20201210140313.258739-1-damien.lemoal@wdc.com> When running is M-Mode (no MMU config), MPIE does not get set. This results in all syscalls being executed with interrupts disabled as handle_exception never sets SR_IE as it always sees SR_PIE being cleared. Fix this by always force enabling interrupts in handle_syscall when CONFIG_RISCV_M_MODE is enabled. Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> --- arch/riscv/kernel/entry.S | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S index 524d918f3601..080eb8d78589 100644 --- a/arch/riscv/kernel/entry.S +++ b/arch/riscv/kernel/entry.S @@ -155,6 +155,15 @@ skip_context_tracking: tail do_trap_unknown handle_syscall: +#ifdef CONFIG_RISCV_M_MODE + /* + * When running is M-Mode (no MMU config), MPIE does not get set. + * As a result, we need to force enable interrupts here because + * handle_exception did not do set SR_IE as it always sees SR_PIE + * being cleared. + */ + csrs CSR_STATUS, SR_IE +#endif #if defined(CONFIG_TRACE_IRQFLAGS) || defined(CONFIG_CONTEXT_TRACKING) /* Recover a0 - a7 for system calls */ REG_L a0, PT_A0(sp) -- 2.29.2
WARNING: multiple messages have this Message-ID (diff)
From: Damien Le Moal <damien.lemoal@wdc.com> To: Palmer Dabbelt <palmer@dabbelt.com>, linux-riscv@lists.infradead.org, Rob Herring <robh+dt@kernel.org>, devicetree@vger.kernel.org, Stephen Boyd <sboyd@kernel.org>, linux-clk@vger.kernel.org, Linus Walleij <linus.walleij@linaro.org>, linux-gpio@vger.kernel.org, Philipp Zabel <p.zabel@pengutronix.de> Cc: Sean Anderson <seanga2@gmail.com> Subject: [PATCH v8 03/22] riscv: Enable interrupts during syscalls with M-Mode Date: Thu, 10 Dec 2020 23:02:54 +0900 [thread overview] Message-ID: <20201210140313.258739-4-damien.lemoal@wdc.com> (raw) In-Reply-To: <20201210140313.258739-1-damien.lemoal@wdc.com> When running is M-Mode (no MMU config), MPIE does not get set. This results in all syscalls being executed with interrupts disabled as handle_exception never sets SR_IE as it always sees SR_PIE being cleared. Fix this by always force enabling interrupts in handle_syscall when CONFIG_RISCV_M_MODE is enabled. Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> --- arch/riscv/kernel/entry.S | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S index 524d918f3601..080eb8d78589 100644 --- a/arch/riscv/kernel/entry.S +++ b/arch/riscv/kernel/entry.S @@ -155,6 +155,15 @@ skip_context_tracking: tail do_trap_unknown handle_syscall: +#ifdef CONFIG_RISCV_M_MODE + /* + * When running is M-Mode (no MMU config), MPIE does not get set. + * As a result, we need to force enable interrupts here because + * handle_exception did not do set SR_IE as it always sees SR_PIE + * being cleared. + */ + csrs CSR_STATUS, SR_IE +#endif #if defined(CONFIG_TRACE_IRQFLAGS) || defined(CONFIG_CONTEXT_TRACKING) /* Recover a0 - a7 for system calls */ REG_L a0, PT_A0(sp) -- 2.29.2 _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2020-12-10 14:05 UTC|newest] Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-12-10 14:02 [PATCH v8 00/22] RISC-V Kendryte K210 support improvements Damien Le Moal 2020-12-10 14:02 ` Damien Le Moal 2020-12-10 14:02 ` [PATCH v8 01/22] riscv: Fix kernel time_init() Damien Le Moal 2020-12-10 14:02 ` Damien Le Moal 2020-12-11 2:09 ` Palmer Dabbelt 2020-12-11 2:09 ` Palmer Dabbelt 2020-12-10 14:02 ` [PATCH v8 02/22] riscv: Fix sifive serial driver Damien Le Moal 2020-12-10 14:02 ` Damien Le Moal 2020-12-11 2:09 ` Palmer Dabbelt 2020-12-11 2:09 ` Palmer Dabbelt 2020-12-11 4:34 ` Damien Le Moal 2020-12-11 4:34 ` Damien Le Moal 2020-12-10 14:02 ` Damien Le Moal [this message] 2020-12-10 14:02 ` [PATCH v8 03/22] riscv: Enable interrupts during syscalls with M-Mode Damien Le Moal 2020-12-11 2:09 ` Palmer Dabbelt 2020-12-11 2:09 ` Palmer Dabbelt 2020-12-10 14:02 ` [PATCH v8 04/22] riscv: Fix builtin DTB handling Damien Le Moal 2020-12-10 14:02 ` Damien Le Moal 2020-12-10 14:02 ` [PATCH v8 05/22] riscv: Use vendor name for K210 SoC support Damien Le Moal 2020-12-10 14:02 ` Damien Le Moal 2020-12-10 14:02 ` [PATCH v8 06/22] riscv: cleanup Canaan Kendryte K210 sysctl driver Damien Le Moal 2020-12-10 14:02 ` Damien Le Moal 2020-12-10 14:02 ` [PATCH v8 07/22] dt-bindings: Add Canaan vendor prefix Damien Le Moal 2020-12-10 14:02 ` Damien Le Moal 2020-12-11 3:47 ` Rob Herring 2020-12-11 3:47 ` Rob Herring 2020-12-10 14:02 ` [PATCH v8 08/22] dt-binding: clock: Document canaan,k210-clk bindings Damien Le Moal 2020-12-10 14:02 ` [PATCH v8 08/22] dt-binding: clock: Document canaan, k210-clk bindings Damien Le Moal 2020-12-11 3:48 ` [PATCH v8 08/22] dt-binding: clock: Document canaan,k210-clk bindings Rob Herring 2020-12-11 3:48 ` Rob Herring 2020-12-10 14:03 ` [PATCH v8 09/22] dt-bindings: reset: Document canaan,k210-rst bindings Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 09/22] dt-bindings: reset: Document canaan, k210-rst bindings Damien Le Moal 2020-12-11 3:48 ` [PATCH v8 09/22] dt-bindings: reset: Document canaan,k210-rst bindings Rob Herring 2020-12-11 3:48 ` Rob Herring 2020-12-10 14:03 ` [PATCH v8 10/22] dt-bindings: pinctrl: Document canaan,k210-fpioa bindings Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 10/22] dt-bindings: pinctrl: Document canaan, k210-fpioa bindings Damien Le Moal 2020-12-11 3:51 ` [PATCH v8 10/22] dt-bindings: pinctrl: Document canaan,k210-fpioa bindings Rob Herring 2020-12-11 3:51 ` Rob Herring 2020-12-10 14:03 ` [PATCH v8 11/22] dt-binding: mfd: Document canaan,k210-sysctl bindings Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 11/22] dt-binding: mfd: Document canaan, k210-sysctl bindings Damien Le Moal 2020-12-11 3:54 ` [PATCH v8 11/22] dt-binding: mfd: Document canaan,k210-sysctl bindings Rob Herring 2020-12-11 3:54 ` Rob Herring 2020-12-10 14:03 ` [PATCH v8 12/22] riscv: Add Canaan Kendryte K210 clock driver Damien Le Moal 2020-12-10 14:03 ` Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 13/22] riscv: Add Canaan Kendryte K210 reset controller Damien Le Moal 2020-12-10 14:03 ` Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 14/22] riscv: Add Canaan Kendryte K210 FPIOA driver Damien Le Moal 2020-12-10 14:03 ` Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 15/22] riscv: Update Canaan Kendryte K210 device tree Damien Le Moal 2020-12-10 14:03 ` Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 16/22] riscv: Add SiPeed MAIX BiT board " Damien Le Moal 2020-12-10 14:03 ` Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 17/22] riscv: Add SiPeed MAIX DOCK " Damien Le Moal 2020-12-10 14:03 ` Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 18/22] riscv: Add SiPeed MAIX GO " Damien Le Moal 2020-12-10 14:03 ` Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 19/22] riscv: Add SiPeed MAIXDUINO " Damien Le Moal 2020-12-10 14:03 ` Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 20/22] riscv: Add Kendryte KD233 " Damien Le Moal 2020-12-10 14:03 ` Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 21/22] riscv: Update Canaan Kendryte K210 defconfig Damien Le Moal 2020-12-10 14:03 ` Damien Le Moal 2020-12-10 14:03 ` [PATCH v8 22/22] riscv: Add Canaan Kendryte K210 SD card defconfig Damien Le Moal 2020-12-10 14:03 ` Damien Le Moal 2020-12-13 6:04 ` [PATCH v8 00/22] RISC-V Kendryte K210 support improvements Stephen Boyd 2020-12-13 6:04 ` Stephen Boyd 2020-12-13 8:06 ` Damien Le Moal 2020-12-13 8:06 ` Damien Le Moal 2020-12-16 1:42 ` Palmer Dabbelt 2020-12-16 1:42 ` Palmer Dabbelt 2020-12-16 2:12 ` Damien Le Moal 2020-12-16 2:12 ` Damien Le Moal
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20201210140313.258739-4-damien.lemoal@wdc.com \ --to=damien.lemoal@wdc.com \ --cc=devicetree@vger.kernel.org \ --cc=linus.walleij@linaro.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-riscv@lists.infradead.org \ --cc=p.zabel@pengutronix.de \ --cc=palmer@dabbelt.com \ --cc=robh+dt@kernel.org \ --cc=sboyd@kernel.org \ --cc=seanga2@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.