From patchwork Fri May 5 19:47:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 98723 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp293428qge; Fri, 5 May 2017 12:50:06 -0700 (PDT) X-Received: by 10.98.10.147 with SMTP id 19mr18843421pfk.193.1494013805921; Fri, 05 May 2017 12:50:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1494013805; cv=none; d=google.com; s=arc-20160816; b=QgNRaTNIE/l5D50Yl2fw/mCoLbDzTjnm+tngbUdNqX4o2Pz3jCnaNDTXXNYJU6JtW1 gnfCrwoYlAul4bbHkzV19lH4G72ex0bTqr9WJTvz/7wy/AtZZhy8yAjmMUFqbzuEw4Kt DJ2wbdFjGNwIGmtzJSz/aacs2gdOJgowZJlhfrz8YMqNUJ0gB224KgExlaeDQbQPoFP/ rEzvYHyi6RN6vQXfk6q5c1fuL44aaD6KUv/NRi/1Bzho70XlGjg10sEcBhPaGOyJtXGz VpnGX8UCLT6zwauTUELIwMCC/VKqcoAHY3wB/ynalqRvALYsfaqijWzmUR20QgJl+jye U34w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=eGtrhXnRJL1184Kb2EkFmo55CIM0TwP2imhWfX/C+24=; b=HNi4Kok5rgv0BSEzOge0oZilL+O2M1EtzaCm8pE3/JEnsRh2mH5DODTfVgdLTFzDfJ yqucWB1hEYFzNPBGZk5kOa+ghW4n8NidDrkz0G22PIT5FWg0ywAQOI8opFfg3z3n/pER A+SZX9edXH1+l4162u6uNeWgRW8Z3GH+0zvRFMaSLlm+ASQpnueYdLn8pC/morBWr+Ol 3k0DRL7nStrSyPPqT6QlkzdBWIiR1qkL/7JdBb+cDfo1eCpKcGThF3vXOMi4VhqmVRqX T6kaAtZ9/37o7tIL4b+Nt0RkkgumYRP8Q4d5CCti+9YCfvvUHZPekKI3kQQnv2sJkaOf 9/8Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-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 c5si2571475pga.119.2017.05.05.12.50.05; Fri, 05 May 2017 12:50:05 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-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 stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755901AbdEETt6 (ORCPT + 6 others); Fri, 5 May 2017 15:49:58 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:64545 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755830AbdEETsz (ORCPT ); Fri, 5 May 2017 15:48:55 -0400 Received: from wuerfel.lan ([78.42.17.5]) by mrelayeu.kundenserver.de (mreue002 [212.227.15.129]) with ESMTPA (Nemesis) id 0LzCmv-1eAoGg3kor-014Roa; Fri, 05 May 2017 21:48:36 +0200 From: Arnd Bergmann To: Ben Hutchings Cc: stable@vger.kernel.org, Andre Przywara , Will Deacon , Arnd Bergmann Subject: [PATCH 3.16-stable 79/87] arm64: add missing data types in smp_load_acquire/smp_store_release Date: Fri, 5 May 2017 21:47:37 +0200 Message-Id: <20170505194745.3627137-80-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170505194745.3627137-1-arnd@arndb.de> References: <20170505194745.3627137-1-arnd@arndb.de> X-Provags-ID: V03:K0:ORpT2n0zgX4KTw/9hZqvrMzBWiCXpP8HffQAEB0hcIqIb7gFdN8 aEdj2yjJPHT1yDI0Akak8b3dlhjKv5c1sQIoRPYQ3/AnLM2OP6IYfN4Rg17BNS/iCbdduMN Hsgrp5grRX7KvMhjZsPmc1luDvdu6aY4nuP206AsHM+PN/sBvSe0wCd3E07m9ShkEEQKGWd LYvEFC3LiJFCBWHRGuk2A== X-UI-Out-Filterresults: notjunk:1; V01:K0:UBfgnfqmCK0=:uIkjDKCs2HQ6dSW8sguBPq tBkpOIpu3B6CLSqNcn0TLbKI3Mpw6TJmFCDLYpA8XL8pFZk/+NrFYBZTYQi0g1QxxgwxrGjqx zWLfW3rvMrObC1/obynbOX2Hs4TKr1wsRPJCuC1P7KStx6BpZk9FCUCQJbDjz1Nxq12rmmoju npOOGjARdgFB0c9MXTTulnlbtehNWeQCWTcVtk8uQATiRPeTSOvoxx5ybKijT/7g+9H5Ph5Rf i07x8wjLqiOFzj/QILNeA9qMW8xL8NfVw1ndqqBAX5e1q2Bk3PH/2BjlPRstrA6Eh6oeWzNDu VkwfdJD61y584NN10XvVMM5bJcg1tGRwy4I2r1sZajJ2xzbk8OT/9uIfgKHDoof96WB2Mu28V e7gc6FshQ7htLEG+QiPWsnzyqCqrkxvIF96RZwQ9NQLICeNKsv/J/E1Rpn5qBm242dJD5UKKS 8AvaMyrnU2fZK9LexWGkHBETGNuwmqiy4RCE2AjSaoyEOdTXwp+dhWHvozRj48yIZyLJoHi89 SAtrOSaqt5yhyvv8zXjuFpllTgu8hC8m8+i9LowOkVYdCCMscYC01GrryNkk8YjjIXL6tqns0 t2jZSWa+IyIXk557y68XuUYSBkf2mny7fApjqhjVU418hRt77zpM3I9dIkU1y/+IpETtJyA12 HYpt8HoncAJosdpR18xaD0cyN4MaKgt7gSXEMmb1t8hNLLTbH/zG+KPIbdlQvOlQ0VLM= Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Andre Przywara Commit 2427963027aea8d649b69a6956979cc875edfcf3 upstream. Commit 8053871d0f7f ("smp: Fix smp_call_function_single_async() locking") introduced a call to smp_load_acquire() with a u16 argument, but we only cared about u32 and u64 types in that function so far. This resulted in a compiler warning fortunately, pointing at an uninitialized use. Due to the implementation structure the compiler misses that bug in the smp_store_release(), though. Add the u16 and u8 variants using ldarh/stlrh and ldarb/stlrb, respectively. Together with the compiletime_assert_atomic_type() check this should cover all cases now. Acked-by: Will Deacon Signed-off-by: Andre Przywara Signed-off-by: Will Deacon Signed-off-by: Arnd Bergmann --- arch/arm64/include/asm/barrier.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) -- 2.9.0 diff --git a/arch/arm64/include/asm/barrier.h b/arch/arm64/include/asm/barrier.h index 6389d60574d9..45548e19c673 100644 --- a/arch/arm64/include/asm/barrier.h +++ b/arch/arm64/include/asm/barrier.h @@ -62,6 +62,14 @@ do { \ do { \ compiletime_assert_atomic_type(*p); \ switch (sizeof(*p)) { \ + case 1: \ + asm volatile ("stlrb %w1, %0" \ + : "=Q" (*p) : "r" (v) : "memory"); \ + break; \ + case 2: \ + asm volatile ("stlrh %w1, %0" \ + : "=Q" (*p) : "r" (v) : "memory"); \ + break; \ case 4: \ asm volatile ("stlr %w1, %0" \ : "=Q" (*p) : "r" (v) : "memory"); \ @@ -78,6 +86,14 @@ do { \ typeof(*p) ___p1; \ compiletime_assert_atomic_type(*p); \ switch (sizeof(*p)) { \ + case 1: \ + asm volatile ("ldarb %w0, %1" \ + : "=r" (___p1) : "Q" (*p) : "memory"); \ + break; \ + case 2: \ + asm volatile ("ldarh %w0, %1" \ + : "=r" (___p1) : "Q" (*p) : "memory"); \ + break; \ case 4: \ asm volatile ("ldar %w0, %1" \ : "=r" (___p1) : "Q" (*p) : "memory"); \