Received: by 10.192.165.148 with SMTP id m20csp317929imm; Thu, 3 May 2018 21:16:00 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqougr64FnIQua2d/GzXGv+/RXdV6QqCNsl8kwhYGqw570Jg+OfASgDAC7cixG7x9WQtZm+ X-Received: by 10.98.192.220 with SMTP id g89mr25398065pfk.223.1525407359967; Thu, 03 May 2018 21:15:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525407359; cv=none; d=google.com; s=arc-20160816; b=x/+wkBr72wXDPJeD+oLIsWrEIsFif4rfkkDPNQsN/npwiUXSR/bn5muEgoVBB+Sbju gjERbNTfsaSKF0rKhnvi2hNJgB29he3aYa4L9sZF/fQStF0KKjwgwNTFZltt0UgN6v94 bXUEy3xkxH30idh65/+gU0gCnl6GbMD/dAW3MsRdY5c9Cec9IZ6OhKwcP6m+R5NOzH4J RnCYIMIODD/lUqhchA8/iUeeehQpImDjS+fahQVrf/+FpjXvZJfzzwoN0t6EJqNZwyg1 sXgfgyWJJAbosXFegjPdxJuu3NT7c952vNyTNF/s+61Ty9E7B5ZzkNAUAeu7xYjZKqAU NzIw== 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:arc-authentication-results; bh=tdv6s6eaRcwaGccSBjbi9dF+NA7dQcwkjAbhP0Dj0es=; b=son7D6k47MgORY03wzWSnD8k09xdbE+VUsg3ZOvOIPvNGJRx47yCoCnBTe2AWol5wr 0Rh/i7GDH0soh3RVROc/89Bs7unclUyvXib9Cfnz3B7QNYbkjvRBUy2GAh6ow+OLzdCL F8XwbnXt7oRa8jh0YJ+xuqS5PQVI6KgQVG96MB473QkJgWQxLW3zTCkE0sduv+RZe+5Z L5dNrdBneIagft1wo9nZIz1nOMzdGK1SJcEqqu8fBsHRT5onN8N7v7KJobb3GDB0qkJi TzYCDPIY0Igv8QOunwlHAKrtpK6SEHoKEEG4sVwoclubGlJ5qmI3O7g0UUxqtd+QYTkG 1+3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=1HEjBZ0e; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x10-v6si6179082plv.1.2018.05.03.21.15.44; Thu, 03 May 2018 21:15:59 -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=1HEjBZ0e; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751326AbeEDEP0 (ORCPT + 99 others); Fri, 4 May 2018 00:15:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:42420 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751002AbeEDEPY (ORCPT ); Fri, 4 May 2018 00:15:24 -0400 Received: from localhost.localdomain (NE2965lan1.rev.em-net.ne.jp [210.141.244.193]) (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 D75C721716; Fri, 4 May 2018 04:15:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1525407324; bh=bI444yK8Gkf7JPZG5qJeqFqQF5wDQqj71NUPvNFQxOQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1HEjBZ0eE9rN+GVnMjlnk0313ninVMFz9LFRkDbSGtPZjcCd1e5TAZARTqO0Tzad/ tdKK8eayUi0wdDa66Z8szIqyZuLPU4WR3xhNKLJb/7QOuuKjKH9JZVZwxa2/wTnkjp ciP/Q9TteMBRPvf+M5VtO/o1qEmtk3zkTXWrQ/Ws= From: Masami Hiramatsu To: Russell King Cc: Wang Nan , Will Deacon , Jon Medhurst , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, mhiramat@kernel.org, David Long , stable@vger.kernel.org Subject: [BUGFIX PATCH v3 1/4] arm: kprobes: Fix to use get_kprobe_ctlblk after irq-disabed Date: Fri, 4 May 2018 13:15:01 +0900 Message-Id: <152540730083.29650.15621737261480060241.stgit@devbox> X-Mailer: git-send-email 2.13.6 In-Reply-To: <152540727123.29650.13679359124038587629.stgit@devbox> References: <152540727123.29650.13679359124038587629.stgit@devbox> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since get_kprobe_ctlblk() uses smp_processor_id() to access per-cpu variable, it hits smp_processor_id sanity check as below. [ 7.006928] BUG: using smp_processor_id() in preemptible [00000000] code: swapper/0/1 [ 7.007859] caller is debug_smp_processor_id+0x20/0x24 [ 7.008438] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.16.0-rc1-00192-g4eb17253e4b5 #1 [ 7.008890] Hardware name: Generic DT based system [ 7.009917] [] (unwind_backtrace) from [] (show_stack+0x20/0x24) [ 7.010473] [] (show_stack) from [] (dump_stack+0x84/0x98) [ 7.010990] [] (dump_stack) from [] (check_preemption_disabled+0x138/0x13c) [ 7.011592] [] (check_preemption_disabled) from [] (debug_smp_processor_id+0x20/0x24) [ 7.012214] [] (debug_smp_processor_id) from [] (optimized_callback+0x2c/0xe4) [ 7.013077] [] (optimized_callback) from [] (0xbf0021b0) To fix this issue, call get_kprobe_ctlblk() right after irq-disabled since that disables preemption. Fixes: 0dc016dbd820 ("ARM: kprobes: enable OPTPROBES for ARM 32") Signed-off-by: Masami Hiramatsu Cc: stable@vger.kernel.org --- arch/arm/probes/kprobes/opt-arm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm/probes/kprobes/opt-arm.c b/arch/arm/probes/kprobes/opt-arm.c index bcdecc25461b..ddc5a82eb10d 100644 --- a/arch/arm/probes/kprobes/opt-arm.c +++ b/arch/arm/probes/kprobes/opt-arm.c @@ -165,13 +165,14 @@ optimized_callback(struct optimized_kprobe *op, struct pt_regs *regs) { unsigned long flags; struct kprobe *p = &op->kp; - struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); + struct kprobe_ctlblk *kcb; /* Save skipped registers */ regs->ARM_pc = (unsigned long)op->kp.addr; regs->ARM_ORIG_r0 = ~0UL; local_irq_save(flags); + kcb = get_kprobe_ctlblk(); if (kprobe_running()) { kprobes_inc_nmissed_count(&op->kp);