From: Jérôme Glisse jglisse@redhat.com
The #if/#else/#endif for IS_ENABLED(CONFIG_HMM) were wrong.
Signed-off-by: Jérôme Glisse jglisse@redhat.com Acked-by: Balbir Singh bsingharora@gmail.com Cc: stable@vger.kernel.org Cc: Andrew Morton akpm@linux-foundation.org Cc: Ralph Campbell rcampbell@nvidia.com Cc: John Hubbard jhubbard@nvidia.com Cc: Evgeny Baskakov ebaskakov@nvidia.com --- include/linux/hmm.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/include/linux/hmm.h b/include/linux/hmm.h index 325017ad9311..ef6044d08cc5 100644 --- a/include/linux/hmm.h +++ b/include/linux/hmm.h @@ -498,6 +498,9 @@ struct hmm_device { struct hmm_device *hmm_device_new(void *drvdata); void hmm_device_put(struct hmm_device *hmm_device); #endif /* CONFIG_DEVICE_PRIVATE || CONFIG_DEVICE_PUBLIC */ +#else /* IS_ENABLED(CONFIG_HMM) */ +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) */
/* Below are for HMM internal use only! Not to be used by device driver! */ @@ -513,8 +516,4 @@ 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) */
- -#else /* IS_ENABLED(CONFIG_HMM) */ -static inline void hmm_mm_destroy(struct mm_struct *mm) {} -static inline void hmm_mm_init(struct mm_struct *mm) {} #endif /* LINUX_HMM_H */
On Fri, 16 Mar 2018 15:14:07 -0400 jglisse@redhat.com wrote:
From: Jérôme Glisse jglisse@redhat.com
The #if/#else/#endif for IS_ENABLED(CONFIG_HMM) were wrong.
"were wrong" is not a sufficient explanation of the problem, especially if we're requesting a -stable backport. Please fully describe the effects of a bug when fixing it?
On Fri, Mar 16, 2018 at 02:09:59PM -0700, Andrew Morton wrote:
Build issue (compilation failure) if you have multiple includes of hmm.h through different headers is the most obvious issue. So it will be very obvious with any big driver that include the file in different headers.
I can respin with that. Sorry again for not being more explanatory it is always hard for me to figure what is not obvious to others.
Cheers, Jérôme
On Fri, 16 Mar 2018 17:18:02 -0400 Jerome Glisse jglisse@redhat.com wrote:
That doesn't seem to warrant a -stable backport? The developer of such a driver will simply fix the headers?
I can respin with that. Sorry again for not being more explanatory it is always hard for me to figure what is not obvious to others.
I updated the changelog, no respin needed.
On 03/16/2018 02:35 PM, Andrew Morton wrote:
Right. For this patch, I would strongly request a -stable backport. It's really going to cause problems if anyone tries to use -stable with HMM, without this fix.
thanks,
From: Jérôme Glisse jglisse@redhat.com
The #if/#else/#endif for IS_ENABLED(CONFIG_HMM) were wrong. Because of this after multiple include there was multiple definition of both hmm_mm_init() and hmm_mm_destroy() leading to build failure if HMM was enabled (CONFIG_HMM set).
Changed since v1: - Fix the maze when CONFIG_HMM is disabled not just when it is enabled. This fix bot build failure. - Improved commit message.
Signed-off-by: Jérôme Glisse jglisse@redhat.com Acked-by: Balbir Singh bsingharora@gmail.com Cc: stable@vger.kernel.org Cc: Andrew Morton akpm@linux-foundation.org Cc: Ralph Campbell rcampbell@nvidia.com Cc: John Hubbard jhubbard@nvidia.com Cc: Evgeny Baskakov ebaskakov@nvidia.com --- include/linux/hmm.h | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/include/linux/hmm.h b/include/linux/hmm.h index 325017ad9311..36dd21fe5caf 100644 --- a/include/linux/hmm.h +++ b/include/linux/hmm.h @@ -498,23 +498,16 @@ struct hmm_device { struct hmm_device *hmm_device_new(void *drvdata); void hmm_device_put(struct hmm_device *hmm_device); #endif /* CONFIG_DEVICE_PRIVATE || CONFIG_DEVICE_PUBLIC */ -#endif /* IS_ENABLED(CONFIG_HMM) */
/* Below are for HMM internal use only! Not to be used by device driver! */ -#if IS_ENABLED(CONFIG_HMM_MIRROR) 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) */ - - #else /* IS_ENABLED(CONFIG_HMM) */ 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) */ #endif /* LINUX_HMM_H */
linux-stable-mirror@lists.linaro.org