From patchwork Thu Dec 1 07:18:11 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 701392 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3tTpY76lvdz9vFN for ; Thu, 1 Dec 2016 18:18:35 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="fQFXRX3W"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757883AbcLAHSf (ORCPT ); Thu, 1 Dec 2016 02:18:35 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:34982 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757877AbcLAHSe (ORCPT ); Thu, 1 Dec 2016 02:18:34 -0500 Received: by mail-pg0-f65.google.com with SMTP id p66so3771563pga.2 for ; Wed, 30 Nov 2016 23:18:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=e0udxQ60GyGw3uSiNjoS5qZu1PlGhX2vyqlcd9Nm97M=; b=fQFXRX3WKhoL7vC3lrhpvShiDfh+yeJ7/+1VSuiwThGguq5UqdB4/nb16IV0c+MLKO uZGKXwdCvdg5QF5gZTeKQLvEJCv7JiISSzyG9i24C76UdObKeWhn2x9GRpk49//Mzi8t HtwXsx5yTOeDT7eoIzQOlLgkCJAoq6yKhXbRvZvBIWeSWSquefAWqQCXAnhzDP+l8k8b zUBmO6botio64KB241391zoDTGSrWdQ5DL2h6nT4dMPHyUDj+CZHNLYNPaAp9Vv4hPjH UQCzE7dYKhftQJ4ALUba3L6KNvBhVxSvZ4h7H+qdjeJymGiA5iWtv4viB3l55atOX/vX YTAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=e0udxQ60GyGw3uSiNjoS5qZu1PlGhX2vyqlcd9Nm97M=; b=YR7Cf8A1XVGrnJud8wuKeEOADQO75wa+oDKx/JE59JClpQKRG4joZaaSXiglE5Irxa OFOU1NcL7WRU0a0cGak9s64I8e3yaFwcPjEhvHheJ2GwPYkO1/yrK2qmAAFTRHbUHHKS AUpiErkBXUgTyr50lC5Aa/gYVt6/wRVD0gdOsDAZMG9xGbcC6CTLgXfsIVjniL+Z0E9q 8m07GTlYcZ2P+f0RaDpXypmJKboJhvEavOk2TdVEWas7WAus83y40JBZ+IkiYWr9il2l xmwQaCgWO8eflq/X8xqPjsB/xL+QVD/AlLefnLKVZHdhlzoy4nd6nc0wVdr0qhNQzTjV PGXA== X-Gm-Message-State: AKaTC00woDnjuMeug7Jmzzs5m7npEwgDO3SuM3W2jBl14cjTzqbrZihmEC2cnrPGEDV2mQ== X-Received: by 10.84.213.130 with SMTP id g2mr81261553pli.43.1480576714111; Wed, 30 Nov 2016 23:18:34 -0800 (PST) Received: from roar.au.ibm.com (27-33-21-189.tpgi.com.au. [27.33.21.189]) by smtp.gmail.com with ESMTPSA id q20sm90025196pgn.39.2016.11.30.23.18.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Nov 2016 23:18:33 -0800 (PST) From: Nicholas Piggin To: Paul Mackerras Cc: Nicholas Piggin , Alexander Graf , kvm-ppc@vger.kernel.org, Michael Ellerman , linuxppc-dev@lists.ozlabs.org Subject: [PATCH 2/3] KVM: PPC: Book3S: Move 64-bit KVM interrupt handler out from alt section Date: Thu, 1 Dec 2016 18:18:11 +1100 Message-Id: <20161201071812.23258-3-npiggin@gmail.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20161201071812.23258-1-npiggin@gmail.com> References: <20161201071812.23258-1-npiggin@gmail.com> Sender: kvm-ppc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org A subsequent patch to make KVM handlers relocation-safe makes them unusable from within alt section "else" cases (due to the way fixed addresses are taken from within fixed section head code). Stop open-coding the KVM handlers, and add them both as normal. A more optimal fix may be to allow some level of alternate feature patching in the exception macros themselves, but for now this will do. The TRAMP_KVM handlers must be moved to the "virt" fixed section area (name is arbitrary) in order to be closer to .text and avoid the dreaded "relocation truncated to fit" error. Signed-off-by: Nicholas Piggin --- arch/powerpc/kernel/exceptions-64s.S | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index 1ba82ea..5faff1c 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S @@ -717,13 +717,9 @@ hardware_interrupt_hv: BEGIN_FTR_SECTION _MASKABLE_EXCEPTION_PSERIES(0x500, hardware_interrupt_common, EXC_HV, SOFTEN_TEST_HV) -do_kvm_H0x500: - KVM_HANDLER(PACA_EXGEN, EXC_HV, 0x502) FTR_SECTION_ELSE _MASKABLE_EXCEPTION_PSERIES(0x500, hardware_interrupt_common, EXC_STD, SOFTEN_TEST_PR) -do_kvm_0x500: - KVM_HANDLER(PACA_EXGEN, EXC_STD, 0x500) ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206) EXC_REAL_END(hardware_interrupt, 0x500, 0x600) @@ -737,6 +733,8 @@ hardware_interrupt_relon_hv: ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE) EXC_VIRT_END(hardware_interrupt, 0x4500, 0x4600) +TRAMP_KVM(PACA_EXGEN, 0x500) +TRAMP_KVM_HV(PACA_EXGEN, 0x500) EXC_COMMON_ASYNC(hardware_interrupt_common, 0x500, do_IRQ)