From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752623AbdJDQAZ (ORCPT ); Wed, 4 Oct 2017 12:00:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51624 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752298AbdJDP66 (ORCPT ); Wed, 4 Oct 2017 11:58:58 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com AF8DA267F8 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=jpoimboe@redhat.com From: Josh Poimboeuf To: x86@kernel.org Cc: linux-kernel@vger.kernel.org, Juergen Gross , Andy Lutomirski , Linus Torvalds , Sasha Levin , live-patching@vger.kernel.org, Jiri Slaby , Ingo Molnar , "H. Peter Anvin" , Peter Zijlstra , Mike Galbraith , Chris Wright , Alok Kataria , Rusty Russell , virtualization@lists.linux-foundation.org, Boris Ostrovsky , xen-devel@lists.xenproject.org, Thomas Gleixner , Borislav Petkov Subject: [PATCH 07/13] x86/paravirt: Simplify ____PVOP_CALL() Date: Wed, 4 Oct 2017 10:58:28 -0500 Message-Id: In-Reply-To: References: X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Wed, 04 Oct 2017 15:58:57 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Remove the inline asm duplication in ____PVOP_CALL(). Also add 'IS_ENABLED(CONFIG_X86_32)' to the return variable logic, making the code clearer and rendering the comment unnecessary. Signed-off-by: Josh Poimboeuf --- arch/x86/include/asm/paravirt_types.h | 36 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h index ab7aabe6b668..01f9e10983c1 100644 --- a/arch/x86/include/asm/paravirt_types.h +++ b/arch/x86/include/asm/paravirt_types.h @@ -529,29 +529,19 @@ int paravirt_disable_iospace(void); rettype __ret; \ PVOP_CALL_ARGS; \ PVOP_TEST_NULL(op); \ - /* This is 32-bit specific, but is okay in 64-bit */ \ - /* since this condition will never hold */ \ - if (sizeof(rettype) > sizeof(unsigned long)) { \ - asm volatile(pre \ - paravirt_alt(PARAVIRT_CALL) \ - post \ - : call_clbr, ASM_CALL_CONSTRAINT \ - : paravirt_type(op), \ - paravirt_clobber(clbr), \ - ##__VA_ARGS__ \ - : "memory", "cc" extra_clbr); \ - __ret = (rettype)((((u64)__edx) << 32) | __eax); \ - } else { \ - asm volatile(pre \ - paravirt_alt(PARAVIRT_CALL) \ - post \ - : call_clbr, ASM_CALL_CONSTRAINT \ - : paravirt_type(op), \ - paravirt_clobber(clbr), \ - ##__VA_ARGS__ \ - : "memory", "cc" extra_clbr); \ - __ret = (rettype)(__eax & PVOP_RETMASK(rettype)); \ - } \ + asm volatile(pre \ + paravirt_alt(PARAVIRT_CALL) \ + post \ + : call_clbr, ASM_CALL_CONSTRAINT \ + : paravirt_type(op), \ + paravirt_clobber(clbr), \ + ##__VA_ARGS__ \ + : "memory", "cc" extra_clbr); \ + if (IS_ENABLED(CONFIG_X86_32) && \ + sizeof(rettype) > sizeof(unsigned long)) \ + __ret = (rettype)((((u64)__edx) << 32) | __eax);\ + else \ + __ret = (rettype)(__eax & PVOP_RETMASK(rettype));\ __ret; \ }) -- 2.13.6 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Josh Poimboeuf Subject: [PATCH 07/13] x86/paravirt: Simplify ____PVOP_CALL() Date: Wed, 4 Oct 2017 10:58:28 -0500 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dzm4d-0000Cb-Qo for xen-devel@lists.xenproject.org; Wed, 04 Oct 2017 15:59:03 +0000 In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: x86@kernel.org Cc: Juergen Gross , Rusty Russell , xen-devel@lists.xenproject.org, Peter Zijlstra , Jiri Slaby , Boris Ostrovsky , Mike Galbraith , linux-kernel@vger.kernel.org, Sasha Levin , Chris Wright , Thomas Gleixner , Andy Lutomirski , "H. Peter Anvin" , Borislav Petkov , live-patching@vger.kernel.org, Alok Kataria , virtualization@lists.linux-foundation.org, Linus Torvalds , Ingo Molnar List-Id: xen-devel@lists.xenproject.org UmVtb3ZlIHRoZSBpbmxpbmUgYXNtIGR1cGxpY2F0aW9uIGluIF9fX19QVk9QX0NBTEwoKS4KCkFs c28gYWRkICdJU19FTkFCTEVEKENPTkZJR19YODZfMzIpJyB0byB0aGUgcmV0dXJuIHZhcmlhYmxl IGxvZ2ljLAptYWtpbmcgdGhlIGNvZGUgY2xlYXJlciBhbmQgcmVuZGVyaW5nIHRoZSBjb21tZW50 IHVubmVjZXNzYXJ5LgoKU2lnbmVkLW9mZi1ieTogSm9zaCBQb2ltYm9ldWYgPGpwb2ltYm9lQHJl ZGhhdC5jb20+Ci0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCB8IDM2 ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMg aW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5j bHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0 X3R5cGVzLmgKaW5kZXggYWI3YWFiZTZiNjY4Li4wMWY5ZTEwOTgzYzEgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgKKysrIGIvYXJjaC94ODYvaW5jbHVk ZS9hc20vcGFyYXZpcnRfdHlwZXMuaApAQCAtNTI5LDI5ICs1MjksMTkgQEAgaW50IHBhcmF2aXJ0 X2Rpc2FibGVfaW9zcGFjZSh2b2lkKTsKIAkJcmV0dHlwZSBfX3JldDsJCQkJCQlcCiAJCVBWT1Bf Q0FMTF9BUkdTOwkJCQkJCVwKIAkJUFZPUF9URVNUX05VTEwob3ApOwkJCQkJXAotCQkvKiBUaGlz IGlzIDMyLWJpdCBzcGVjaWZpYywgYnV0IGlzIG9rYXkgaW4gNjQtYml0ICovCVwKLQkJLyogc2lu Y2UgdGhpcyBjb25kaXRpb24gd2lsbCBuZXZlciBob2xkICovCQlcCi0JCWlmIChzaXplb2YocmV0 dHlwZSkgPiBzaXplb2YodW5zaWduZWQgbG9uZykpIHsJCVwKLQkJCWFzbSB2b2xhdGlsZShwcmUJ CQkJXAotCQkJCSAgICAgcGFyYXZpcnRfYWx0KFBBUkFWSVJUX0NBTEwpCVwKLQkJCQkgICAgIHBv c3QJCQkJXAotCQkJCSAgICAgOiBjYWxsX2NsYnIsIEFTTV9DQUxMX0NPTlNUUkFJTlQJXAotCQkJ CSAgICAgOiBwYXJhdmlydF90eXBlKG9wKSwJCVwKLQkJCQkgICAgICAgcGFyYXZpcnRfY2xvYmJl cihjbGJyKSwJCVwKLQkJCQkgICAgICAgIyNfX1ZBX0FSR1NfXwkJCVwKLQkJCQkgICAgIDogIm1l bW9yeSIsICJjYyIgZXh0cmFfY2xicik7CVwKLQkJCV9fcmV0ID0gKHJldHR5cGUpKCgoKHU2NClf X2VkeCkgPDwgMzIpIHwgX19lYXgpOyBcCi0JCX0gZWxzZSB7CQkJCQkJXAotCQkJYXNtIHZvbGF0 aWxlKHByZQkJCQlcCi0JCQkJICAgICBwYXJhdmlydF9hbHQoUEFSQVZJUlRfQ0FMTCkJXAotCQkJ CSAgICAgcG9zdAkJCQlcCi0JCQkJICAgICA6IGNhbGxfY2xiciwgQVNNX0NBTExfQ09OU1RSQUlO VAlcCi0JCQkJICAgICA6IHBhcmF2aXJ0X3R5cGUob3ApLAkJXAotCQkJCSAgICAgICBwYXJhdmly dF9jbG9iYmVyKGNsYnIpLAkJXAotCQkJCSAgICAgICAjI19fVkFfQVJHU19fCQkJXAotCQkJCSAg ICAgOiAibWVtb3J5IiwgImNjIiBleHRyYV9jbGJyKTsJXAotCQkJX19yZXQgPSAocmV0dHlwZSko X19lYXggJiBQVk9QX1JFVE1BU0socmV0dHlwZSkpOwlcCi0JCX0JCQkJCQkJXAorCQlhc20gdm9s YXRpbGUocHJlCQkJCQlcCisJCQkgICAgIHBhcmF2aXJ0X2FsdChQQVJBVklSVF9DQUxMKQkJXAor CQkJICAgICBwb3N0CQkJCQlcCisJCQkgICAgIDogY2FsbF9jbGJyLCBBU01fQ0FMTF9DT05TVFJB SU5UCQlcCisJCQkgICAgIDogcGFyYXZpcnRfdHlwZShvcCksCQkJXAorCQkJICAgICAgIHBhcmF2 aXJ0X2Nsb2JiZXIoY2xiciksCQkJXAorCQkJICAgICAgICMjX19WQV9BUkdTX18JCQkJXAorCQkJ ICAgICA6ICJtZW1vcnkiLCAiY2MiIGV4dHJhX2NsYnIpOwkJXAorCQlpZiAoSVNfRU5BQkxFRChD T05GSUdfWDg2XzMyKSAmJgkJCVwKKwkJICAgIHNpemVvZihyZXR0eXBlKSA+IHNpemVvZih1bnNp Z25lZCBsb25nKSkJCVwKKwkJCV9fcmV0ID0gKHJldHR5cGUpKCgoKHU2NClfX2VkeCkgPDwgMzIp IHwgX19lYXgpO1wKKwkJZWxzZQkJCQkJCQlcCisJCQlfX3JldCA9IChyZXR0eXBlKShfX2VheCAm IFBWT1BfUkVUTUFTSyhyZXR0eXBlKSk7XAogCQlfX3JldDsJCQkJCQkJXAogCX0pCiAKLS0gCjIu MTMuNgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=