Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp1628318imm; Wed, 16 May 2018 00:16:22 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpGkqxk7YSUVE6YKYeoA7Fw5WXntFgSAoW3rNuhRubS2dQXnoA/JIYNLgeUTjZN2+Oaje8E X-Received: by 2002:a17:902:31a4:: with SMTP id x33-v6mr18050952plb.355.1526454982196; Wed, 16 May 2018 00:16:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526454982; cv=none; d=google.com; s=arc-20160816; b=gYhzMpqBebuqd+hX00UnJ/SKfeZkdUt9yvuSzy7FyKhQcygmyJ0HKllDo8Wk29JViJ NEzmu8oN9c6UCioJt4ln2GKhsbvh0n6kg4avzSs5Dy/7d3ufbgE2uo18JeokCZGH1J+a z3woPQU+IRHfZ7VBPy0kmZhhgebl96bN31cJNirAt8TNgYnEI5NuQM+EJHVm6SyKwYCr Cpn51xGXI21A2YDHwVoQCk9VIP8QG3kVaKeMSmYIzj4bu8V2JBQNyM482Cap5UeqSxMU rtMRnC04+04USfOKMn1GFHWTG372cFb2jSyTlqCu0yAe+PHnX7VgyamdIWA1DGgVOa5u U4EA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-disposition :content-transfer-encoding:mime-version:in-reply-to:references :subject:cc:to:from:date:message-id:arc-authentication-results; bh=A6ZO+fz764drn1AC6CNJqwGjYrSK8dEQCpRD4La20qQ=; b=njIw/zwRLkCHDvcOPjQJLU7SOuF6tJozcuJsi61M1qotPGo054R/PRTN7ZE31wlk18 y/cieQe3e6FGJyahQ64VomdIXbbOpSqPqOowGEiKhFT34SFK/YFidJtikq14NHtH414g HdSuSBDbqw0SUW2N3MkcirOUy5ubW2Buxb+dUxyCArDFB4kcSWIblrSofetdFMn0RSKg KAUyJA0Ie9eoBgUjc32zO1Jvl3gBbHCuLSJcdLXc8KXdgTOxO/jTBvYUOFPL7QayTSSP lO0gOc6ND3UYP06cLuK/rYhofXSmbk6DcU3dOktGXpOfi/+3lOeK5zjnxCOkcp8rShlc rHcw== 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 z1-v6si1883178plb.558.2018.05.16.00.16.07; Wed, 16 May 2018 00:16:22 -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; 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 S1752239AbeEPHOt convert rfc822-to-8bit (ORCPT + 99 others); Wed, 16 May 2018 03:14:49 -0400 Received: from prv1-mh.provo.novell.com ([137.65.248.33]:44974 "EHLO prv1-mh.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751395AbeEPHOs (ORCPT ); Wed, 16 May 2018 03:14:48 -0400 Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Wed, 16 May 2018 01:14:47 -0600 Message-Id: <5AFBDA6302000078001C31AC@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.0.0 Date: Wed, 16 May 2018 01:14:43 -0600 From: "Jan Beulich" To: "Nadav Amit" Cc: , , "the arch/x86 maintainers" , , "Josh Poimboeuf" , , , Subject: Re: [RFC 5/8] x86: refcount: prevent gcc distortions References: <20180515141124.84254-1-namit@vmware.com> <20180515141124.84254-15-namit@vmware.com> In-Reply-To: <20180515141124.84254-15-namit@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8BIT Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >>> On 15.05.18 at 16:11, wrote: > --- a/arch/x86/include/asm/refcount.h > +++ b/arch/x86/include/asm/refcount.h > @@ -14,34 +14,43 @@ > * central refcount exception. The fixup address for the exception points > * back to the regular execution flow in .text. > */ > -#define _REFCOUNT_EXCEPTION \ > - ".pushsection .text..refcount\n" \ > - "111:\tlea %[counter], %%" _ASM_CX "\n" \ > - "112:\t" ASM_UD2 "\n" \ > - ASM_UNREACHABLE \ > - ".popsection\n" \ > - "113:\n" \ > + > +asm ("\n" > + ".macro __REFCOUNT_EXCEPTION counter:vararg\n\t" > + ".pushsection .text..refcount\n" > + "111:\tlea \\counter, %" _ASM_CX "\n" > + "112:\t" ASM_UD2 "\n\t" > + ASM_UNREACHABLE > + ".popsection\n\t" > + "113:\n" > _ASM_EXTABLE_REFCOUNT(112b, 113b) > + ".endm"); A few comments on assembly code formatting - while gas at present is relatively lax in this regard, I wouldn't exclude that there might be a more strict mode in the future, and that such a mode might eventually become the default. Furthermore these formatting aspects affect readability of the assembly produced, should anyone ever find a need to look at it (perhaps because of some breakage) - I certainly do every once in a while. Labels should be placed without any indentation (but of course there may be more than one on a line, in which case subsequent ones may of course be arbitrarily indented). Instructions and directives, otoh, should be placed with at least a single tab or space of indentation (unless preceded by a label, in which case the extra white space still helps readability). I'm also not sure about the purpose of the leading plain newline here. gcc annotates code resulting from inline assembly anyway iirc, so proper visual separation should already be available. If I was the maintainer of this code, I would also object to the mis-alignment your file scope asm()-s have ("asm (" is 5 characters, which doesn't equal a tab's width). Jan