mm/hmm: fix header file if/else/endif maze, again
The last fix was still wrong, as we need the inline dummy functions also for the case that CONFIG_HMM is enabled but CONFIG_HMM_MIRROR is not: kernel/fork.o: In function `__mmdrop': fork.c:(.text+0x14f6): undefined reference to `hmm_mm_destroy' This adds back the second copy of the dummy functions, hopefully this time in the right place. Link: http://lkml.kernel.org/r/20180404110236.804484-1-arnd@arndb.de Fixes: 8900d06a277a ("mm/hmm: fix header file if/else/endif maze") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Jérôme Glisse <jglisse@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
18be460eeb
commit
9d8a463a70
|
@ -376,8 +376,18 @@ bool hmm_vma_range_done(struct hmm_range *range);
|
||||||
* See the function description in mm/hmm.c for further documentation.
|
* See the function description in mm/hmm.c for further documentation.
|
||||||
*/
|
*/
|
||||||
int hmm_vma_fault(struct hmm_range *range, bool block);
|
int hmm_vma_fault(struct hmm_range *range, bool block);
|
||||||
#endif /* IS_ENABLED(CONFIG_HMM_MIRROR) */
|
|
||||||
|
|
||||||
|
/* Below are for HMM internal use only! Not to be used by device driver! */
|
||||||
|
void hmm_mm_destroy(struct mm_struct *mm);
|
||||||
|
|
||||||
|
static inline void hmm_mm_init(struct mm_struct *mm)
|
||||||
|
{
|
||||||
|
mm->hmm = NULL;
|
||||||
|
}
|
||||||
|
#else /* IS_ENABLED(CONFIG_HMM_MIRROR) */
|
||||||
|
static inline void hmm_mm_destroy(struct mm_struct *mm) {}
|
||||||
|
static inline void hmm_mm_init(struct mm_struct *mm) {}
|
||||||
|
#endif /* IS_ENABLED(CONFIG_HMM_MIRROR) */
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_DEVICE_PRIVATE) || IS_ENABLED(CONFIG_DEVICE_PUBLIC)
|
#if IS_ENABLED(CONFIG_DEVICE_PRIVATE) || IS_ENABLED(CONFIG_DEVICE_PUBLIC)
|
||||||
struct hmm_devmem;
|
struct hmm_devmem;
|
||||||
|
@ -550,16 +560,9 @@ struct hmm_device {
|
||||||
struct hmm_device *hmm_device_new(void *drvdata);
|
struct hmm_device *hmm_device_new(void *drvdata);
|
||||||
void hmm_device_put(struct hmm_device *hmm_device);
|
void hmm_device_put(struct hmm_device *hmm_device);
|
||||||
#endif /* CONFIG_DEVICE_PRIVATE || CONFIG_DEVICE_PUBLIC */
|
#endif /* CONFIG_DEVICE_PRIVATE || CONFIG_DEVICE_PUBLIC */
|
||||||
|
|
||||||
/* Below are for HMM internal use only! Not to be used by device driver! */
|
|
||||||
void hmm_mm_destroy(struct mm_struct *mm);
|
|
||||||
|
|
||||||
static inline void hmm_mm_init(struct mm_struct *mm)
|
|
||||||
{
|
|
||||||
mm->hmm = NULL;
|
|
||||||
}
|
|
||||||
#else /* IS_ENABLED(CONFIG_HMM) */
|
#else /* IS_ENABLED(CONFIG_HMM) */
|
||||||
static inline void hmm_mm_destroy(struct mm_struct *mm) {}
|
static inline void hmm_mm_destroy(struct mm_struct *mm) {}
|
||||||
static inline void hmm_mm_init(struct mm_struct *mm) {}
|
static inline void hmm_mm_init(struct mm_struct *mm) {}
|
||||||
#endif /* IS_ENABLED(CONFIG_HMM) */
|
#endif /* IS_ENABLED(CONFIG_HMM) */
|
||||||
|
|
||||||
#endif /* LINUX_HMM_H */
|
#endif /* LINUX_HMM_H */
|
||||||
|
|
Loading…
Reference in New Issue