Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp1387351ybx; Thu, 31 Oct 2019 09:51:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqzRZJT+6estrNGaX7Dwm/GQp8wOtTgigES1zHaohiHU3zTAp2rGaL/qq+5HyvPje9g2R5dD X-Received: by 2002:a50:8f03:: with SMTP id 3mr7435763edy.195.1572540693222; Thu, 31 Oct 2019 09:51:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572540693; cv=none; d=google.com; s=arc-20160816; b=olkp43C8LkNaJnBzUXeo3PNeFAiId5D6U4mvIS4UtMYWQwJ2+zeHr263eFO2b3jHIo IiPElKeF8FTDHtQtgU8EztK8U3fV5ru79kg5FQVc0E5c+AT9uKs0asa4WzzDzQBl0VxO nx5oDDp+OxmKSGH3ud3gncL/NIZPwi/Cw5KAPli/sEykdTyEWzmaShmy7N2nTN+W8EWV 684WwGghmaHPgQlzU++5hRvXofjkJUXtWAxBGfbDZBdpBMPifZIun8fQ+Hp5X4C/Zlab iBK9bKj72v92LtZfkjmf3UVW0rKSs96brOuhG9cXkWVEjahvqhkVGYQMq8y8z4TMRuN8 rnpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:dkim-signature; bh=Ut7YUpLvWAiZLonPATqZ5OL9tOEZJcNF7+tDsNdHEWU=; b=Yx9sO1BqKXoUrXuqF/6tmo4BYaDbaLX/8X7n1xjPiTESzGIg8Rp+PZbaEkOs0kXD4R PUx1PUOyP3wvZvJtfoV0hOm/TqsFolzkinawndf32MIv/k2qHS2eNjHDrUnlpFRhDtnG q9ftVQZJNfn9+UyLD6rxdA7XXEJMdTmhoJViaPBGgnHaL39kU1EN20nZlQ9hxHai+se4 8+V5lOyj4upkQAVy60TRpyG90gbdXg86D5KsuQ5rdf0YXu0dz0Qmr/evX5CjsjfXQUdK S91qWJaIPhqPdsCi4nnsQqbrIBelkW82u4kuhVNNJRRM9dqjUPPo6M7Ibh3Oj33qi2Hs uP5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Ghjlrkb1; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c11si3885660ejs.383.2019.10.31.09.51.10; Thu, 31 Oct 2019 09:51:33 -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=@google.com header.s=20161025 header.b=Ghjlrkb1; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729057AbfJaQrp (ORCPT + 99 others); Thu, 31 Oct 2019 12:47:45 -0400 Received: from mail-pg1-f201.google.com ([209.85.215.201]:51022 "EHLO mail-pg1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728673AbfJaQrG (ORCPT ); Thu, 31 Oct 2019 12:47:06 -0400 Received: by mail-pg1-f201.google.com with SMTP id r24so4769356pgj.17 for ; Thu, 31 Oct 2019 09:47:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=Ut7YUpLvWAiZLonPATqZ5OL9tOEZJcNF7+tDsNdHEWU=; b=Ghjlrkb1pnfNur1PCuCrGu3KmSL84JUhV/VRyXQlGUkgpAsmk5kMXvp57Mk7EYOtSq L/8VDDHfXZ3KUDC1xcym7naR9TXkHtFoyXvddQwvFISLnm28nEJXtrhVKjiDWc99o+wm bIXKaCoHuKC2xbc2hbdVG9x55NXltyby/oVTLxiYMqg5L3AXj+Jse9QRq7ocqCtz8Woo EwpS6ecvA2GO0JpKJUVbqL7jZeQw+99QXy+fwi9BAQMGs5rPs+dkXDB42GUWcoOq+vfR K9Q0cwMWNIBZXS43c69SS1vt9YQQD9Wr2zCStwQNshudap8C/A8PTXXPpqKAD3KVELa9 kr2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=Ut7YUpLvWAiZLonPATqZ5OL9tOEZJcNF7+tDsNdHEWU=; b=r/Y7VVGfJiKakQ7bly/yUgv4ylbRccf0k+nUdg8vUoHc6QrW71P42/zsoJkHoxUgaZ h/l2chKKN96pEw9GdqfdnguznNuf54nepG1QASJlMUdy9KAt+Tbvf3qXpIp0ykE6CSYA wkLgQKWiBpckvd7JRJ8XDlV0m5DybaqlaEHeoAl4Jltg2VHi4+aPBin1x/hzmdq/NpgG IvJfuRmfJAYX7kQQrC4RBJLfewUlScFBTzihKBOlgQsMYpiZRJktwYrTRW73KEwczgNz ty53ZY/cQhThM67vocOv4pcyFwkj+st1uc+ofJtkJm+FUGAoLJdzitSOn4YmrX8/2k3F T68Q== X-Gm-Message-State: APjAAAUKP6XUmJQtqGA5BzCWMoXCGfa5t1rFLJl0QO3XiuoqzXwdtVMz d9S6qi/6a4rc6565JGEOBEvpHP+1RuZUpyKxf9A= X-Received: by 2002:a63:151:: with SMTP id 78mr7160557pgb.95.1572540425150; Thu, 31 Oct 2019 09:47:05 -0700 (PDT) Date: Thu, 31 Oct 2019 09:46:28 -0700 In-Reply-To: <20191031164637.48901-1-samitolvanen@google.com> Message-Id: <20191031164637.48901-9-samitolvanen@google.com> Mime-Version: 1.0 References: <20191018161033.261971-1-samitolvanen@google.com> <20191031164637.48901-1-samitolvanen@google.com> X-Mailer: git-send-email 2.24.0.rc0.303.g954a862665-goog Subject: [PATCH v3 08/17] kprobes: fix compilation without CONFIG_KRETPROBES From: samitolvanen@google.com To: Will Deacon , Catalin Marinas , Steven Rostedt , Masami Hiramatsu , Ard Biesheuvel Cc: Dave Martin , Kees Cook , Laura Abbott , Mark Rutland , Nick Desaulniers , Jann Horn , Miguel Ojeda , Masahiro Yamada , clang-built-linux@googlegroups.com, kernel-hardening@lists.openwall.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Sami Tolvanen Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org kprobe_on_func_entry and arch_kprobe_on_func_entry need to be available even if CONFIG_KRETPROBES is not selected. Signed-off-by: Sami Tolvanen Acked-by: Masami Hiramatsu --- kernel/kprobes.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 53534aa258a6..b5e20a4669b8 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -1829,6 +1829,25 @@ unsigned long __weak arch_deref_entry_point(void *entry) return (unsigned long)entry; } +bool __weak arch_kprobe_on_func_entry(unsigned long offset) +{ + return !offset; +} + +bool kprobe_on_func_entry(kprobe_opcode_t *addr, const char *sym, unsigned long offset) +{ + kprobe_opcode_t *kp_addr = _kprobe_addr(addr, sym, offset); + + if (IS_ERR(kp_addr)) + return false; + + if (!kallsyms_lookup_size_offset((unsigned long)kp_addr, NULL, &offset) || + !arch_kprobe_on_func_entry(offset)) + return false; + + return true; +} + #ifdef CONFIG_KRETPROBES /* * This kprobe pre_handler is registered with every kretprobe. When probe @@ -1885,25 +1904,6 @@ static int pre_handler_kretprobe(struct kprobe *p, struct pt_regs *regs) } NOKPROBE_SYMBOL(pre_handler_kretprobe); -bool __weak arch_kprobe_on_func_entry(unsigned long offset) -{ - return !offset; -} - -bool kprobe_on_func_entry(kprobe_opcode_t *addr, const char *sym, unsigned long offset) -{ - kprobe_opcode_t *kp_addr = _kprobe_addr(addr, sym, offset); - - if (IS_ERR(kp_addr)) - return false; - - if (!kallsyms_lookup_size_offset((unsigned long)kp_addr, NULL, &offset) || - !arch_kprobe_on_func_entry(offset)) - return false; - - return true; -} - int register_kretprobe(struct kretprobe *rp) { int ret = 0; -- 2.24.0.rc0.303.g954a862665-goog