From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754144AbdHXXJG (ORCPT ); Thu, 24 Aug 2017 19:09:06 -0400 Received: from mout.kundenserver.de ([217.72.192.74]:50996 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753998AbdHXXJF (ORCPT ); Thu, 24 Aug 2017 19:09:05 -0400 From: Arnd Bergmann To: =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= Cc: Arnd Bergmann , Andrew Morton , Stephen Rothwell , Subhash Gutti , Evgeny Baskakov , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH] mm: HMM always needs MMU_NOTIFIER Date: Fri, 25 Aug 2017 01:08:23 +0200 Message-Id: <20170824230850.1810408-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:iPjr7S/UxN9MELpKhNotgHyLLUg2MmxeByejwifz1j5oS7OP9Cb YWWsqKxiBBkW0xVw0BmIQ3R5sxJIpYTa3tbhCp1ZTQUz+H1sw1N3y1mFiOiamBVTzfSSRw6 MbX0zAmg2/aWxjsiUS4OPVSDK/IF/iQaPQBC5RWNguG8d7CRfAsXe09f5PV92TXvuzLPimP FmSr/Z0RCQqBcavuy/KKQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:u4i8ZCz5eJU=:Iab7Ngjs2qKEIwoQVW2iLE /D6MNgwBKPIM4V9Asf6NXHxyLBzm6PrPosgoMfAeIM+Cr6TV2PJFFwyeJmWqHR/D5UwUGxa/0 x7JAoyDBFfy+WLJ5CmV+qRtTU6TGHqcn7hMjiRbEjP94/avzQl1EKtjT1q7MSme/Xc/ltd2RF 1r+PrhPArPJz65t2Q682vLl7Gu2xrblLHaoW+ELRW1lOnqWm0W62fFO1PrUvaii/22KMZM2Ev VYIfW5m4cWawwBSuVJH4eh+7nLleZsQFatmewR3Nm60B8JN6SlRFe58VhP4avQYjcb8Z3paR1 XKHDFgAQOjjqrQ6v53qyec2nP+mwOsV+wP56pheusUWQ/HJ+cuqDlYTtfngfZ+XSDDN7AvC89 6lZVKo2/oxeU1HBvBIusKbwoxB9qJSLjLWW4wPfE2oc7awQ3p8TRDV4KXxXvTevZEVHR0Nbst 8C62cVErV/kdt/E8+CgmeOpc1L49HHV9yREpVw8H7SesPO63ptvDC91Ix+Jc7Q0rUozo1+Cpw HnvwisjMW9KrlH5lUGP8EN2rgfCBBlYhfddc0I1SgDb7kE+EiHgXKE0maat40ziAi0dszaOW/ 3PNivYHRw/FZQxfmw/d+DIWuv1ATQG4qxbkOm1R8VHkY0NfJHoIM1nzUcVNo7c2C2gnUv7iWH L8p1LYJNaPH9iGwkqUEF/mKuxN1fszXJxe6zBLB/hasNINH7w+8nSJLv6RV5K6iHuN9Lown6r IRdjTw/zaTFRMLSUXfIe0xc4/5gtraNl06tjFA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When building a kernel with HMM enabled but without MMU_NOTIFIER, we run into a build error: mm/hmm.c:66:22: error: field 'mmu_notifier' has incomplete type struct mmu_notifier mmu_notifier; If I read this right, the dependency is correct, but the #ifdef annotations in the mm/hmm.c are not. This changes them in a way to make it all build cleanly. Fixes: e4e0061ea15c ("mm/device-public-memory: device memory cache coherent with CPU") Signed-off-by: Arnd Bergmann --- I did not try very hard to understand what the code is supposed to do, please check if this makes sense beyond fixing the build before applying. --- mm/hmm.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/mm/hmm.c b/mm/hmm.c index 4a179a16ab10..b9e9f14e7454 100644 --- a/mm/hmm.c +++ b/mm/hmm.c @@ -41,11 +41,16 @@ */ DEFINE_STATIC_KEY_FALSE(device_private_key); EXPORT_SYMBOL(device_private_key); -static const struct mmu_notifier_ops hmm_mmu_notifier_ops; #endif /* CONFIG_DEVICE_PRIVATE || CONFIG_DEVICE_PUBLIC */ +void hmm_mm_destroy(struct mm_struct *mm) +{ + kfree(mm->hmm); +} + +#if IS_ENABLED(CONFIG_HMM_MIRROR) +static const struct mmu_notifier_ops hmm_mmu_notifier_ops; -#ifdef CONFIG_HMM /* * struct hmm - HMM per mm struct * @@ -124,13 +129,6 @@ static struct hmm *hmm_register(struct mm_struct *mm) return mm->hmm; } -void hmm_mm_destroy(struct mm_struct *mm) -{ - kfree(mm->hmm); -} -#endif /* CONFIG_HMM */ - -#if IS_ENABLED(CONFIG_HMM_MIRROR) static void hmm_invalidate_range(struct hmm *hmm, enum hmm_update_type action, unsigned long start, -- 2.9.0