From patchwork Mon Jul 8 20:30:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 168687 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp7609067ilk; Mon, 8 Jul 2019 13:31:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqzHKyc8ZVi1V4ZksCAIxj7Hpl7ZtahIo8HwO1iUkd7ZBMzK+TN4WtHWwkO8BBwE0thfBf5n X-Received: by 2002:a17:902:294a:: with SMTP id g68mr27878671plb.169.1562617871579; Mon, 08 Jul 2019 13:31:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562617871; cv=none; d=google.com; s=arc-20160816; b=txhaoAeXIL42jiEXgQF3o4fNBJKmSc5W2jIdmtvGI5Mj7Z1hq/DT+yxZl7nLch80Ul +genl1LO8HI75dNVhnGY/Tk8xeDDvDd/C70HeHCLoyzGaFPyx1p3SPezDTmBcVnDYKGm ieolgthwwM0zX6z9MQLQa3wF1sVwfLuvd8HUOdCPPjpyhBX4wqy2HNazdE0aPKvXt+Wm Kzbbg3aLA+0TLEFa89OYjq6x5ZvbqUHj5iBJZtZLOKpCZt9c+Z1Exygh5/V4E5tp/sW6 7AY8STwya4opxDjmjwGkaicuWh6hdkHVKyFM95jLdoLxXbDkA+9CCqzUY5kjzzga7ZAn uX4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=T/bmftQhnoFbjsoi9Wam4kBso7Eg1Xwk6xJKv/p4/mQ=; b=eu6nfY/qJ9qaRBEDGWAetTjmaZ+hZaqBej0LacJp7CARe133VPsj9gHLlACVzYJruX 1WJ53Vb0t3Eu6lddhmbvKdgy1oAqu0PguzQWqNvrSQBjLFPNmplz/0RXO+MVq4Ft0vm9 IEW8KJDl7o3smPiV84ZqOt5WlyVF1IYMsbaqCkm+PdU6KkB4BGyqVV5/d/P8tnBcnHXC +mOaVmmLX+qO/OwxzXJGZIRNmZqfDqSN02BUhKDzjM7tSHNNcSN6lsPmHqTC4OE7txr4 ph9DdvXeNs7X4Bmr2OcTBGnV8lzrTHQuPfHTPlZMAeyrqELIScfYS1K25PesW5i5UJIu X9nA== 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 f4si17479114pgg.334.2019.07.08.13.31.11; Mon, 08 Jul 2019 13:31:11 -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 S2405015AbfGHUbJ (ORCPT + 30 others); Mon, 8 Jul 2019 16:31:09 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:44861 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729370AbfGHUbI (ORCPT ); Mon, 8 Jul 2019 16:31:08 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1MOAJt-1i8aQU1YWP-00OYvi; Mon, 08 Jul 2019 22:30:59 +0200 From: Arnd Bergmann To: Russell King Cc: Arnd Bergmann , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com Subject: [PATCH] ARM: mtd-xip: work around clang/llvm bug Date: Mon, 8 Jul 2019 22:30:31 +0200 Message-Id: <20190708203049.3484750-1-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:V7NNcdZbV6mw7tfdYJiUJWjfhAMjQ4ZOz+c5SMkPzy2jzCIxgH/ pt3z+EXXXxY3LSweF/O5LBo2UxCpnX3kg0YItAVqxX3M9B2A5HrqQ81VPjg6+j1qPFmB85f ImodRn9ATMXuOL36cdfA72rGbINvDJVBi1P9wvZ162xPRURHIwauaITV/6GYiZlrruAZgD3 yPClGNspWQsjkOU9QoV/g== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:v+XvPb26ioU=:TjLKe2p2Vyy1aD8C0Nufwj FrZeID3M43k7HjEvkInllCLnR/9x6gufxWP8ADpgN0auCuIIjPIP2tu0X3ASOv/QXifZ6fjb4 fKlZu6xDaoZtt8x67I8YacbTs4bBwepXTeep7F354PTBA34UGC8lZ+V1nE8sRbnncu3ob8/LP JR0tuXEqyWPyKcDtlpOHMZAMaZDwcg/kfr6xkzsUVYV75zOGIx8sq6NyqGQF3c1arsqTwrNcN hJhsQ7lnpgflhynJ5Bc549TYzbbcpmDJv2EPESCR8ZfGYOQGAR64bD1MNNDqeNGf32tFXzLi0 +CkgAvnFKTjFeL8w8Gps4Rw4jiiWmhItlP2H/zFPsYwEBMV/uyZolwmW2WffgtqMKYreIRpoD wxA5LNyE+X+NdLbrzC7F/w5oKECDdDNa+wEsQMZS8O/NKs4gGpJ9Wl0QpYQ1z5zga8wlaFtHd ypJVr3q8cXSs7REZxwEZeSbfMZ6LXVm9uUQQcImXbb2yyrvpOdcgw8YpBgSshFJe0dW3AwA+L xIRheBgbluwdF4sFdEOy+IqW/QuHkind6qLv3FGlEGcHh/n5ErPd5rSn67lwA9/dQ3sew4ELj 0IJABvVcc/M72PPepyFP1dkhf9bcvHnoPaE8lUm7HhlCHX+5g2CTjshcvagx/93ZVV/VZ+DFN YdDjg4aD2IE+NkZFigDlAijfbNlhkhrMyh45aKVjofJ8rIJiGPbgcDt1eVJiz39O5rlLq6RGW BhGY84gtjs1+dnjKiPjpNUMaPmILlrDBvvo1Gg== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org llvm gets confused by inline asm with .rep directives, which can lead to miscalculating the number of instructions inside it, and in turn lead to an overflow for relative address calculation: /tmp/cfi_cmdset_0002-539a47.s: Assembler messages: /tmp/cfi_cmdset_0002-539a47.s:11288: Error: bad immediate value for offset (4100) /tmp/cfi_cmdset_0002-539a47.s:11289: Error: bad immediate value for offset (4100) This might be fixed in future clang versions, but is not hard to work around by just replacing the .rep with a series of eight unrolled nop instructions. Link: https://bugs.llvm.org/show_bug.cgi?id=42539 https://godbolt.org/z/DSM2Jy Signed-off-by: Arnd Bergmann --- arch/arm/include/asm/mtd-xip.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- 2.20.0 Acked-by: Nick Desaulniers Reviewed-by: Linus Walleij diff --git a/arch/arm/include/asm/mtd-xip.h b/arch/arm/include/asm/mtd-xip.h index dfcef0152e3d..5ad0325604e4 100644 --- a/arch/arm/include/asm/mtd-xip.h +++ b/arch/arm/include/asm/mtd-xip.h @@ -15,6 +15,8 @@ #include /* fill instruction prefetch */ -#define xip_iprefetch() do { asm volatile (".rep 8; nop; .endr"); } while (0) +#define xip_iprefetch() do { \ + asm volatile ("nop; nop; nop; nop; nop; nop; nop; nop;"); \ +} while (0) \ #endif /* __ARM_MTD_XIP_H__ */