From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752810AbdHJOx0 (ORCPT ); Thu, 10 Aug 2017 10:53:26 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:50759 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752728AbdHJOxZ (ORCPT ); Thu, 10 Aug 2017 10:53:25 -0400 From: Arnd Bergmann To: Catalin Marinas , Will Deacon Cc: Arnd Bergmann , Robin Murphy , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] arm64: fix pmem interface definition Date: Thu, 10 Aug 2017 16:52:31 +0200 Message-Id: <20170810145253.2124019-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:15DpRCDQxcGKO/WobJ/shEFZHTJHPEfa2ne1GzzJ/sxiV4elA2l 1neFoF7PlQtiQPasGTeqQ9ejgR0rt+yYz0a9wlOodQiZK363Sxk+IIB2p7gCUU6pmrc+A76 bG9X0S2/aj2gBxn5a29Rctjvp0zNwDq/4RaXCe2Vd+yUUMncDwoungKBPOBKC6rzjJ9Fm+/ +CHTjPkx+4IjMyiI1ZBng== X-UI-Out-Filterresults: notjunk:1;V01:K0:ViC4KQt2HZ4=:w7T7TJaYs4pgGU0MhxO/yw nV+m9SEns+lZL/898X+95d4Ec+K6RmfQcOyo3oTUhmKiXVWYS5wU5BUQMUPfBJCo/0BoRekld 3i80UUnRetUGzvmdDzFPg2hyJqOlQYOm0yz7zJ7m0F9Y7GCO5557LsiriM+gWkcvdmkTEmDJH /ztGKUtpIXpTl8Xq/wtKcAbTHeCalvPdwAdjM0LeAD+aJ7o4ZAqkNVqEGQWgMIPA84RkcUVfW 5UIroc74b+cXbo1hG9E6XadkFhIhWdGCZTu+Ggm9BOH35J5rsSym6rtYn0zRaPbPbZnji+R5V xHu+iyeptl0F/ysF8CkOkV0d3baB/2v7/HPLb5zJjyybHklB792YwkAHUPKJoX7CTqz6Jq91Y 4Mz1L++zEYSRRaenIX6K9mmPRQjBzbDOlbOxpAdDfPYBeXIP4DUU/XhQrxvq8eUIVI6DS3vxu hmuHikyxb7FD0cAy5rJef+lp5xkfybojJnQbfiKEXSQfutEeiR1pQjog0yEHtXBgqSbQ2YNX+ ME3+2WHJ/HkHyZ/dm3y5q0loUSJufg1+e+GvXb4/TlbjNbszUkf5VjxfIqiTKkCIaUOC4B+FH ZhNr1uJDIn60fQxSv0ly8lgEF4iv63jUUlcCqn/dLICI5t2xc+YccoHHp7ECYAhnO4kjkm080 2u9cysCwZ4GAYXc2Q/kn1sQVYXaejE1zGpn8L0uDk6skH2yao2a7YZBY6Bnde4UOiO8xuiw0t nPhSHJ7kpewdwHGfST1vvXGjBYZfy2vR4qTC1g== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Defining the two functions as 'static inline' and exporting them leads to the interesting case where we can use the interface from loadable modules, but not from built-in drivers, as shown in this link failure: vers/nvdimm/claim.o: In function `nsio_rw_bytes': claim.c:(.text+0x1b8): undefined reference to `arch_invalidate_pmem' drivers/nvdimm/pmem.o: In function `pmem_dax_flush': pmem.c:(.text+0x11c): undefined reference to `arch_wb_cache_pmem' drivers/nvdimm/pmem.o: In function `pmem_make_request': pmem.c:(.text+0x5a4): undefined reference to `arch_invalidate_pmem' pmem.c:(.text+0x650): undefined reference to `arch_invalidate_pmem' pmem.c:(.text+0x6d4): undefined reference to `arch_invalidate_pmem' This removes the bogus 'static inline'. Fixes: d50e071fdaa3 ("arm64: Implement pmem API support") Signed-off-by: Arnd Bergmann --- arch/arm64/mm/flush.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/mm/flush.c b/arch/arm64/mm/flush.c index 280f90ff33a2..e36ed5087b5c 100644 --- a/arch/arm64/mm/flush.c +++ b/arch/arm64/mm/flush.c @@ -85,7 +85,7 @@ EXPORT_SYMBOL(flush_dcache_page); EXPORT_SYMBOL(flush_icache_range); #ifdef CONFIG_ARCH_HAS_PMEM_API -static inline void arch_wb_cache_pmem(void *addr, size_t size) +void arch_wb_cache_pmem(void *addr, size_t size) { /* Ensure order against any prior non-cacheable writes */ dmb(osh); @@ -93,7 +93,7 @@ static inline void arch_wb_cache_pmem(void *addr, size_t size) } EXPORT_SYMBOL_GPL(arch_wb_cache_pmem); -static inline void arch_invalidate_pmem(void *addr, size_t size) +void arch_invalidate_pmem(void *addr, size_t size) { __inval_dcache_area(addr, size); } -- 2.9.0