Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1018756imu; Fri, 9 Nov 2018 09:37:08 -0800 (PST) X-Google-Smtp-Source: AJdET5fbvNe5SGB6zMejIou4JHvZN1DrNsw80v4hF1J4OpSseFo6LqarINVs/UV0CWTB40hhNBdG X-Received: by 2002:a62:5d49:: with SMTP id r70-v6mr10040812pfb.123.1541785028608; Fri, 09 Nov 2018 09:37:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541785028; cv=none; d=google.com; s=arc-20160816; b=G9zpNM5ZzGtSbqa0Kgp/qlOdzWF7yL/ns/+axqQt3bkcE7kj5SM//zwoGES7GaacvW yBiVCYYofPNhWZqVmIdqBa5K7SYVn//s3Gcl3tggC/K9Yzb8iEm7vGi0eclibk1n1sww u+X0+PN5rZkqpoc846inMwAnSe97ZVRszNSyCkkILf4QqkPubixKKztj+QJftlPfy1f1 v79dGHhd6OENVoFWuQfrSkK5MqGNO1DWC5XXKE9hfDrjgwKQ1LmgOCdHN1vjzIR+ZvY7 Mx/q/iPkjeu3b5fyQu79JbT9rQMF/j2tMsOxLy7Hfu0jI1TXy0arL+ztKo+aiasOYeQU KgdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:cc:to:subject:from:message-id; bh=BYVscoE/yFeE35ulzw7HPVyQb0VEAkpP1ytz98BhvpQ=; b=TZoO6qc1KhZ3RhUAwAEgq5M90nwjMMzfcBfeVta5pqqi7lyrAQyv5nP36o/h5wIiwm yHZPvSHjS0TwW7Uh1K5E8g/sjwxWilByIiyoxZXEG4AWybnuYOPLjtKT2pJHf+cKgj/c 5ZI1wJBHIUbttdKuQcDf7b9IHVvrDlnxmniv531XEE/Cg1yyKOc1J3WJ/aO6GhrePohb 3oStuuwOLAeW4Vepu12s6+3HapeBN+OPasE7tu3jo7Dn2VRcVQo6b3hTxH5q+fKNk4vZ lo7SfK3ZAObwILybPVKw7MvhkEl3YxlZJM/UVovXtm0ByOX+gzvnDWOux6pXoRuov+sH 54hA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f2-v6si8098292plr.333.2018.11.09.09.36.42; Fri, 09 Nov 2018 09:37:08 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728695AbeKJDOv (ORCPT + 99 others); Fri, 9 Nov 2018 22:14:51 -0500 Received: from pegase1.c-s.fr ([93.17.236.30]:25501 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727995AbeKJDOv (ORCPT ); Fri, 9 Nov 2018 22:14:51 -0500 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 42s6gV4M62z9v0XM; Fri, 9 Nov 2018 18:33:10 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id sBixdU-Dj8ym; Fri, 9 Nov 2018 18:33:10 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 42s6gV3sqJz9v0XL; Fri, 9 Nov 2018 18:33:10 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 665AE8B899; Fri, 9 Nov 2018 18:33:16 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id Wjddr9GR-lDW; Fri, 9 Nov 2018 18:33:16 +0100 (CET) Received: from po14163vm.idsi0.si.c-s.fr (po15451.idsi0.si.c-s.fr [172.25.231.2]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 2393E8B887; Fri, 9 Nov 2018 18:33:16 +0100 (CET) Received: by po14163vm.idsi0.si.c-s.fr (Postfix, from userid 0) id 0725B69A2A; Fri, 9 Nov 2018 17:33:15 +0000 (UTC) Message-Id: From: Christophe Leroy Subject: [PATCH 1/9] powerpc: simplify patch_instruction_site() and patch_branch_site() To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Date: Fri, 9 Nov 2018 17:33:15 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Using patch_site_addr() helper, patch_instruction_site() and patch_branch_site() can be simplified and inlined. Signed-off-by: Christophe Leroy --- arch/powerpc/include/asm/code-patching.h | 12 ++++++++++-- arch/powerpc/lib/code-patching.c | 16 ---------------- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/arch/powerpc/include/asm/code-patching.h b/arch/powerpc/include/asm/code-patching.h index 3d5acd2b113a..0eeed21e4898 100644 --- a/arch/powerpc/include/asm/code-patching.h +++ b/arch/powerpc/include/asm/code-patching.h @@ -33,14 +33,22 @@ unsigned int create_cond_branch(const unsigned int *addr, int patch_branch(unsigned int *addr, unsigned long target, int flags); int patch_instruction(unsigned int *addr, unsigned int instr); int raw_patch_instruction(unsigned int *addr, unsigned int instr); -int patch_instruction_site(s32 *addr, unsigned int instr); -int patch_branch_site(s32 *site, unsigned long target, int flags); static inline unsigned long patch_site_addr(s32 *site) { return (unsigned long)site + *site; } +static inline int patch_instruction_site(s32 *site, unsigned int instr) +{ + return patch_instruction((unsigned int *)patch_site_addr(site), instr); +} + +static inline int patch_branch_site(s32 *site, unsigned long target, int flags) +{ + return patch_branch((unsigned int *)patch_site_addr(site), target, flags); +} + int instr_is_relative_branch(unsigned int instr); int instr_is_relative_link_branch(unsigned int instr); int instr_is_branch_to_addr(const unsigned int *instr, unsigned long addr); diff --git a/arch/powerpc/lib/code-patching.c b/arch/powerpc/lib/code-patching.c index 89502cbccb1b..506413a2c25e 100644 --- a/arch/powerpc/lib/code-patching.c +++ b/arch/powerpc/lib/code-patching.c @@ -204,22 +204,6 @@ int patch_branch(unsigned int *addr, unsigned long target, int flags) return patch_instruction(addr, create_branch(addr, target, flags)); } -int patch_branch_site(s32 *site, unsigned long target, int flags) -{ - unsigned int *addr; - - addr = (unsigned int *)((unsigned long)site + *site); - return patch_instruction(addr, create_branch(addr, target, flags)); -} - -int patch_instruction_site(s32 *site, unsigned int instr) -{ - unsigned int *addr; - - addr = (unsigned int *)((unsigned long)site + *site); - return patch_instruction(addr, instr); -} - bool is_offset_in_branch_range(long offset) { /* -- 2.13.3