drm/ttm: fix the type mismatch error on sparc64
authorHuang Rui <ray.huang@amd.com>
Tue, 7 Sep 2021 10:03:02 +0000 (18:03 +0800)
committerChristian König <christian.koenig@amd.com>
Wed, 15 Sep 2021 08:18:27 +0000 (10:18 +0200)
__fls() on sparc64 return "int", but here it is expected as "unsigned
long" (x86). It will cause the build errors because the warning becomes
fatal while it is using sparc configuration. As suggested by Linus, it
can use min_t instead of min to force the type as "unsigned int".

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210907100302.3684453-1-ray.huang@amd.com
drivers/gpu/drm/ttm/ttm_pool.c

index af1b4136962611019a3e9d64cd365cd24b5a8524..c961a788b519f062c34c03c23e2b0773a50f5111 100644 (file)
@@ -382,7 +382,8 @@ int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt,
        else
                gfp_flags |= GFP_HIGHUSER;
 
-       for (order = min(MAX_ORDER - 1UL, __fls(num_pages)); num_pages;
+       for (order = min_t(unsigned int, MAX_ORDER - 1, __fls(num_pages));
+            num_pages;
             order = min_t(unsigned int, order, __fls(num_pages))) {
                bool apply_caching = false;
                struct ttm_pool_type *pt;