Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp3025182rwb; Mon, 15 Aug 2022 16:23:11 -0700 (PDT) X-Google-Smtp-Source: AA6agR7I/nVNFy0QbtvvFt1eJ9rZM9WIEo98t0FL1N2viToYSBjd3JQivEbT0izLWIMgOhf3HDmn X-Received: by 2002:a17:907:d9e:b0:731:1a5:8c68 with SMTP id go30-20020a1709070d9e00b0073101a58c68mr11773475ejc.365.1660605790892; Mon, 15 Aug 2022 16:23:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660605790; cv=none; d=google.com; s=arc-20160816; b=iE1Cxp+k6d4CpRfDKt909TVNF6iV8G0H1IRyCD4iVkEFYttLM8ve0JGI4c5Hci4r8P TQ1v8Sl0hc5iGgaIaVwLpiuoeqLSY5/WRyxb2A8VzllxazNkvIdlQ3wIIHiw7ixN4fz0 vV59YaqYdmOhT8KUjsxrYW7oZpSiRhpCok7ZB3/3/YmfkuJnRZFngjDue7qQ6/8+vWfd DHpPrKnnVMXLD7/LNCc18pnC1BrH9RjFQBdJQFIX1uS/ITUEe2ylp8PB2DHYdVUpRaQZ yOroW38MN7QUKjZlHpFXiuwR2lYkyvru/3U3W7o0LY0KUzy9KNJpq33QdiUC2Fr+cpQI zo3Q== 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=I4P97atC+reIWFbcba4C5CTYmQm7je55dWpy0+YGKt4=; b=ynYslH3FEN8la5yLvRTy7b1PdD6cUIRiS8lcXyZK7prz2xgngNfgDBN2m+loI0oDpW kLyBdh8xXwF59rg4LzN0q0UeYzblHMjNbsx73OPAnus4b/rsvlnJTZwiXBYvXSTVuagz Xxfs4qzoJAUvGs2Y5ZM3pkTmeuF7UxBoaIAqkV7/mV1F3jIkG5PglsVAuQ7YvMqWvt3y BgVdrcUVx09oVl38x6sS1KiT3LVIXLPymzYtvcZwI/CUvJ9TpWZvBdoOZjQq1UJHHonA KZLIYxZloc6y5gtWZwJgzKyeHOt8lhsf1/3RhcaRc64dq6yU5OSgcHezdYT26jM7tS4E O7rg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=BEYP+jbi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cs10-20020a170906dc8a00b006fea2a02361si8613244ejc.371.2022.08.15.16.22.45; Mon, 15 Aug 2022 16:23:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=BEYP+jbi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S1347894AbiHOWER (ORCPT + 99 others); Mon, 15 Aug 2022 18:04:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56430 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349809AbiHOWBn (ORCPT ); Mon, 15 Aug 2022 18:01:43 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AAAD6112317; Mon, 15 Aug 2022 12:36:01 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 0626CB80EA9; Mon, 15 Aug 2022 19:36:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 625EAC433C1; Mon, 15 Aug 2022 19:35:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1660592158; bh=h2a++vB7rUxdHLPrp5od/YYDptU4FG5vuzzKULCmoS4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BEYP+jbiLEn8BaGHUN+QRpIG7XnFR1RmBgZZGZfONrxoFReH1ZKhiyKpKgOeZKBSC ORFvFgK2QOuuEnIaj5sdtGux2TOMiv04gaFw1bjE4VOCpq5lZnEu7j1RVc7PY0j1ON MwLdfsuMLIXkzXLTbwsFdPh99+5fLRjrT2AjsKBs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yipeng Zou , Guo Ren , Palmer Dabbelt Subject: [PATCH 5.19 0067/1157] riscv:uprobe fix SR_SPIE set/clear handling Date: Mon, 15 Aug 2022 19:50:23 +0200 Message-Id: <20220815180442.184999544@linuxfoundation.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220815180439.416659447@linuxfoundation.org> References: <20220815180439.416659447@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yipeng Zou commit 3dbe5829408bc1586f75b4667ef60e5aab0209c7 upstream. In riscv the process of uprobe going to clear spie before exec the origin insn,and set spie after that.But When access the page which origin insn has been placed a page fault may happen and irq was disabled in arch_uprobe_pre_xol function,It cause a WARN as follows. There is no need to clear/set spie in arch_uprobe_pre/post/abort_xol. We can just remove it. [ 31.684157] BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1488 [ 31.684677] in_atomic(): 0, irqs_disabled(): 1, non_block: 0, pid: 76, name: work [ 31.684929] preempt_count: 0, expected: 0 [ 31.685969] CPU: 2 PID: 76 Comm: work Tainted: G [ 31.686542] Hardware name: riscv-virtio,qemu (DT) [ 31.686797] Call Trace: [ 31.687053] [] dump_backtrace+0x30/0x38 [ 31.687699] [] show_stack+0x40/0x4c [ 31.688141] [] dump_stack_lvl+0x44/0x5c [ 31.688396] [] dump_stack+0x18/0x20 [ 31.688653] [] __might_resched+0x114/0x122 [ 31.688948] [] __might_sleep+0x50/0x7a [ 31.689435] [] down_read+0x30/0x130 [ 31.689728] [] do_page_fault+0x166/x446 [ 31.689997] [] ret_from_exception+0x0/0xc Fixes: 74784081aac8 ("riscv: Add uprobes supported") Signed-off-by: Yipeng Zou Reviewed-by: Guo Ren Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20220721065820.245755-1-zouyipeng@huawei.com Signed-off-by: Palmer Dabbelt Signed-off-by: Greg Kroah-Hartman --- arch/riscv/kernel/probes/uprobes.c | 6 ------ 1 file changed, 6 deletions(-) --- a/arch/riscv/kernel/probes/uprobes.c +++ b/arch/riscv/kernel/probes/uprobes.c @@ -59,8 +59,6 @@ int arch_uprobe_pre_xol(struct arch_upro instruction_pointer_set(regs, utask->xol_vaddr); - regs->status &= ~SR_SPIE; - return 0; } @@ -72,8 +70,6 @@ int arch_uprobe_post_xol(struct arch_upr instruction_pointer_set(regs, utask->vaddr + auprobe->insn_size); - regs->status |= SR_SPIE; - return 0; } @@ -111,8 +107,6 @@ void arch_uprobe_abort_xol(struct arch_u * address. */ instruction_pointer_set(regs, utask->vaddr); - - regs->status &= ~SR_SPIE; } bool arch_uretprobe_is_alive(struct return_instance *ret, enum rp_check ctx,