Re: [PATCH] Revert "drm/amdgpu: add drm buddy support to amdgpu"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 14.07.22 um 15:33 schrieb Alex Deucher:
On Thu, Jul 14, 2022 at 9:09 AM Christian König
<christian.koenig@xxxxxxx> wrote:
Hi Mauro,

well the last time I checked drm-tip was clean.

The revert is necessary because we had some problems with the commit
which we couldn't fix in the 5.19 cycle.
Would it be worth reverting the revert and applying the actual fix[1]?
  It's a huge revert unfortunately while the actual fix is like 10
lines of code.  I'm concerned there will be subtle fallout from the
revert due to how extensive it is.

We have other bug fixes and cleanups around that patch which didn't made it into 5.19 either. I don't want to create an ever greater mess.

Real question is why building drm-tip work for me but not for others?

Christian.


[1] - https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.freedesktop.org%2Fdrm%2Famd%2Fuploads%2F564b2cc2b5ea87357f39e45c3a1a44e2%2F0001-drm-amdgpu-Fix-for-drm-buddy-memory-corruption.patch&amp;data=05%7C01%7Cchristian.koenig%40amd.com%7Cee3322f9e7c54aaabb9f08da659d74a2%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637934024189075602%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=cGS2JZt84FMlA4V57pAA2ilXDC5pvr8ryZcUoHpXKXA%3D&amp;reserved=0

Alex


I will double check drm-tip once more.

Regards,
Christian.

Am 14.07.22 um 14:54 schrieb Mauro Carvalho Chehab:
On Fri, 8 Jul 2022 03:21:24 -0700
Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@xxxxxxx> wrote:

This reverts the following commits:
commit 708d19d9f362 ("drm/amdgpu: move internal vram_mgr function into the C file")
commit 5e3f1e7729ec ("drm/amdgpu: fix start calculation in amdgpu_vram_mgr_new")
commit c9cad937c0c5 ("drm/amdgpu: add drm buddy support to amdgpu")

[WHY]
Few users reported garbaged graphics as soon as x starts,
reverting until this can be resolved.

Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@xxxxxxx>
This revert is currently breaking drm-tip. Please revert it ASAP, as it
is preventing CI bots to properly test new patches on the top of current
drm-tip:

drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: In function ‘amdgpu_vram_mgr_new’:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:459:13: error: ‘cur_size’ undeclared (first use in this function)
    459 |         if (cur_size != size) {
        |             ^~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:459:13: note: each undeclared identifier is reported only once for each function it appears in
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:459:25: error: ‘size’ undeclared (first use in this function); did you mean ‘ksize’?
    459 |         if (cur_size != size) {
        |                         ^~~~
        |                         ksize
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:465:30: error: ‘vres’ undeclared (first use in this function); did you mean ‘res’?
    465 |                 trim_list = &vres->blocks;
        |                              ^~~~
        |                              res
In file included from ./include/linux/bits.h:22,
                   from ./include/linux/ratelimit_types.h:5,
                   from ./include/linux/ratelimit.h:5,
                   from ./include/linux/dev_printk.h:16,
                   from ./include/linux/device.h:15,
                   from ./include/linux/dma-mapping.h:7,
                   from drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:25:
./include/linux/container_of.h:19:54: error: invalid use of undefined type ‘struct drm_buddy_block’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |                                                      ^~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
     78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
        |                                                        ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |         ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro ‘__same_type’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |                       ^~~~~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro ‘container_of’
    520 |         container_of(ptr, type, member)
        |         ^~~~~~~~~~~~
./include/linux/list.h:542:9: note: in expansion of macro ‘list_entry’
    542 |         list_entry((ptr)->prev, type, member)
        |         ^~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:473:33: note: in expansion of macro ‘list_last_entry’
    473 |                         block = list_last_entry(&vres->blocks, typeof(*block), link);
        |                                 ^~~~~~~~~~~~~~~
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
    295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
        |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
     78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
        |                                                        ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |         ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro ‘__same_type’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |                       ^~~~~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro ‘container_of’
    520 |         container_of(ptr, type, member)
        |         ^~~~~~~~~~~~
./include/linux/list.h:542:9: note: in expansion of macro ‘list_entry’
    542 |         list_entry((ptr)->prev, type, member)
        |         ^~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:473:33: note: in expansion of macro ‘list_last_entry’
    473 |                         block = list_last_entry(&vres->blocks, typeof(*block), link);
        |                                 ^~~~~~~~~~~~~~~
In file included from ./include/uapi/linux/posix_types.h:5,
                   from ./include/uapi/linux/types.h:14,
                   from ./include/linux/types.h:6,
                   from ./include/linux/kasan-checks.h:5,
                   from ./include/asm-generic/rwonce.h:26,
                   from ./arch/x86/include/generated/asm/rwonce.h:1,
                   from ./include/linux/compiler.h:248,
                   from ./include/linux/string.h:5,
                   from ./include/linux/dma-mapping.h:6:
./include/linux/stddef.h:16:33: error: invalid use of undefined type ‘struct drm_buddy_block’
     16 | #define offsetof(TYPE, MEMBER)  __builtin_offsetof(TYPE, MEMBER)
        |                                 ^~~~~~~~~~~~~~~~~~
./include/linux/container_of.h:22:28: note: in expansion of macro ‘offsetof’
     22 |         ((type *)(__mptr - offsetof(type, member))); })
        |                            ^~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro ‘container_of’
    520 |         container_of(ptr, type, member)
        |         ^~~~~~~~~~~~
./include/linux/list.h:542:9: note: in expansion of macro ‘list_entry’
    542 |         list_entry((ptr)->prev, type, member)
        |         ^~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:473:33: note: in expansion of macro ‘list_last_entry’
    473 |                         block = list_last_entry(&vres->blocks, typeof(*block), link);
        |                                 ^~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:474:46: error: invalid use of undefined type ‘struct drm_buddy_block’
    474 |                         list_move_tail(&block->link, &temp);
        |                                              ^~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:480:41: error: implicit declaration of function ‘amdgpu_vram_mgr_block_size’; did you mean ‘amdgpu_vram_mgr_vis_size’? [-Werror=implicit-function-declaration]
    480 |                         original_size = amdgpu_vram_mgr_block_size(block) - (size - cur_size);
        |                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
        |                                         amdgpu_vram_mgr_vis_size
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:483:28: error: passing argument 1 of ‘mutex_lock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    483 |                 mutex_lock(&mgr->lock);
        |                            ^~~~~~~~~~
        |                            |
        |                            spinlock_t * {aka struct spinlock *}
In file included from ./include/linux/rhashtable-types.h:14,
                   from ./include/linux/ipc.h:7,
                   from ./include/uapi/linux/sem.h:5,
                   from ./include/linux/sem.h:5,
                   from ./include/linux/sched.h:15,
                   from ./include/linux/ratelimit.h:6:
./include/linux/mutex.h:199:38: note: expected ‘struct mutex *’ but argument is of type ‘spinlock_t *’ {aka ‘struct spinlock *’}
    199 | extern void mutex_lock(struct mutex *lock);
        |                        ~~~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:484:17: error: implicit declaration of function ‘drm_buddy_block_trim’ [-Werror=implicit-function-declaration]
    484 |                 drm_buddy_block_trim(mm,
        |                 ^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:487:30: error: passing argument 1 of ‘mutex_unlock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    487 |                 mutex_unlock(&mgr->lock);
        |                              ^~~~~~~~~~
        |                              |
        |                              spinlock_t * {aka struct spinlock *}
./include/linux/mutex.h:218:40: note: expected ‘struct mutex *’ but argument is of type ‘spinlock_t *’ {aka ‘struct spinlock *’}
    218 | extern void mutex_unlock(struct mutex *lock);
        |                          ~~~~~~~~~~~~~~^~~~
In file included from ./include/linux/rculist.h:10,
                   from ./include/linux/pid.h:5,
                   from ./include/linux/sched.h:14:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:493:29: error: ‘block’ undeclared (first use in this function); did you mean ‘flock’?
    493 |         list_for_each_entry(block, &vres->blocks, link)
        |                             ^~~~~
./include/linux/list.h:674:14: note: in definition of macro ‘list_for_each_entry’
    674 |         for (pos = list_first_entry(head, typeof(*pos), member);        \
        |              ^~~
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
    295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
        |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
     78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
        |                                                        ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |         ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro ‘__same_type’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |                       ^~~~~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro ‘container_of’
    520 |         container_of(ptr, type, member)
        |         ^~~~~~~~~~~~
./include/linux/list.h:531:9: note: in expansion of macro ‘list_entry’
    531 |         list_entry((ptr)->next, type, member)
        |         ^~~~~~~~~~
./include/linux/list.h:674:20: note: in expansion of macro ‘list_first_entry’
    674 |         for (pos = list_first_entry(head, typeof(*pos), member);        \
        |                    ^~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:493:9: note: in expansion of macro ‘list_for_each_entry’
    493 |         list_for_each_entry(block, &vres->blocks, link)
        |         ^~~~~~~~~~~~~~~~~~~
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
    295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
        |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
     78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
        |                                                        ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |         ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro ‘__same_type’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |                       ^~~~~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro ‘container_of’
    520 |         container_of(ptr, type, member)
        |         ^~~~~~~~~~~~
./include/linux/list.h:564:9: note: in expansion of macro ‘list_entry’
    564 |         list_entry((pos)->member.next, typeof(*(pos)), member)
        |         ^~~~~~~~~~
./include/linux/list.h:676:20: note: in expansion of macro ‘list_next_entry’
    676 |              pos = list_next_entry(pos, member))
        |                    ^~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:493:9: note: in expansion of macro ‘list_for_each_entry’
    493 |         list_for_each_entry(block, &vres->blocks, link)
        |         ^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:496:17: error: implicit declaration of function ‘amdgpu_vram_mgr_first_block’; did you mean ‘amdgpu_vram_mgr_virt_start’? [-Werror=implicit-function-declaration]
    496 |         block = amdgpu_vram_mgr_first_block(&vres->blocks);
        |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
        |                 amdgpu_vram_mgr_virt_start
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:502:28: error: implicit declaration of function ‘amdgpu_vram_mgr_block_start’; did you mean ‘amdgpu_vram_mgr_virt_start’? [-Werror=implicit-function-declaration]
    502 |         vres->base.start = amdgpu_vram_mgr_block_start(block) >> PAGE_SHIFT;
        |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
        |                            amdgpu_vram_mgr_virt_start
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:504:13: error: implicit declaration of function ‘amdgpu_is_vram_mgr_blocks_contiguous’ [-Werror=implicit-function-declaration]
    504 |         if (amdgpu_is_vram_mgr_blocks_contiguous(&vres->blocks))
        |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[4]: *** [scripts/Makefile.build:249: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:466: drivers/gpu/drm/amd/amdgpu] Error 2
make[2]: *** [scripts/Makefile.build:466: drivers/gpu/drm] Error 2
make[1]: *** [scripts/Makefile.build:466: drivers/gpu] Error 2
make: *** [Makefile:1843: drivers] Error 2
mchehab@sal /new_devel/v4l/tmp $ nano drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
mchehab@sal /new_devel/v4l/tmp $ make drivers/gpu/drm/amd/amdgpu/
    DESCEND objtool
    CALL    scripts/atomic/check-atomics.sh
    CALL    scripts/checksyscalls.sh
    CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.o
    CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_csa.o
    CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ras.o
    CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.o
    CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.o
    CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.o
    CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.o
    CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.o
    CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_umc.o
In file included from drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:30:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h:29:8: error: redefinition of ‘struct amdgpu_vram_mgr’
     29 | struct amdgpu_vram_mgr {
        |        ^~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/amd/amdgpu/amdgpu.h:73,
                   from drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:28:
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h:41:8: note: originally defined here
     41 | struct amdgpu_vram_mgr {
        |        ^~~~~~~~~~~~~~~
In file included from ./include/linux/bits.h:22,
                   from ./include/linux/ratelimit_types.h:5,
                   from ./include/linux/ratelimit.h:5,
                   from ./include/linux/dev_printk.h:16,
                   from ./include/linux/device.h:15,
                   from ./include/linux/dma-mapping.h:7,
                   from drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:25:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: In function ‘to_amdgpu_device’:
./include/linux/build_bug.h:78:41: error: static assertion failed: "pointer type mismatch in container_of()"
     78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
        |                                         ^~~~~~~~~~~~~~
./include/linux/build_bug.h:77:34: note: in expansion of macro ‘__static_assert’
     77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
        |                                  ^~~~~~~~~~~~~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |         ^~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:49:16: note: in expansion of macro ‘container_of’
     49 |         return container_of(mgr, struct amdgpu_device, mman.vram_mgr);
        |                ^~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: In function ‘amdgpu_vram_mgr_do_reserve’:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:244:29: error: initialization of ‘struct drm_mm *’ from incompatible pointer type ‘struct drm_buddy *’ [-Werror=incompatible-pointer-types]
    244 |         struct drm_mm *mm = &mgr->mm;
        |                             ^
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: At top level:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:273:5: error: conflicting types for ‘amdgpu_vram_mgr_reserve_range’; have ‘int(struct amdgpu_vram_mgr *, uint64_t,  uint64_t)’ {aka ‘int(struct amdgpu_vram_mgr *, long long unsigned int,  long long unsigned int)’}
    273 | int amdgpu_vram_mgr_reserve_range(struct amdgpu_vram_mgr *mgr,
        |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h:129:5: note: previous declaration of ‘amdgpu_vram_mgr_reserve_range’ with type ‘int(struct amdgpu_vram_mgr *, uint64_t,  uint64_t)’ {aka ‘int(struct amdgpu_vram_mgr *, long long unsigned int,  long long unsigned int)’}
    129 | int amdgpu_vram_mgr_reserve_range(struct amdgpu_vram_mgr *mgr,
        |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: In function ‘amdgpu_vram_mgr_reserve_range’:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:286:19: error: passing argument 1 of ‘spin_lock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    286 |         spin_lock(&mgr->lock);
        |                   ^~~~~~~~~~
        |                   |
        |                   struct mutex *
In file included from ./include/linux/wait.h:9,
                   from ./include/linux/pid.h:6,
                   from ./include/linux/sched.h:14,
                   from ./include/linux/ratelimit.h:6:
./include/linux/spinlock.h:347:51: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    347 | static __always_inline void spin_lock(spinlock_t *lock)
        |                                       ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:289:21: error: passing argument 1 of ‘spin_unlock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    289 |         spin_unlock(&mgr->lock);
        |                     ^~~~~~~~~~
        |                     |
        |                     struct mutex *
./include/linux/spinlock.h:387:53: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    387 | static __always_inline void spin_unlock(spinlock_t *lock)
        |                                         ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: At top level:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:305:5: error: conflicting types for ‘amdgpu_vram_mgr_query_page_status’; have ‘int(struct amdgpu_vram_mgr *, uint64_t)’ {aka ‘int(struct amdgpu_vram_mgr *, long long unsigned int)’}
    305 | int amdgpu_vram_mgr_query_page_status(struct amdgpu_vram_mgr *mgr,
        |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h:131:5: note: previous declaration of ‘amdgpu_vram_mgr_query_page_status’ with type ‘int(struct amdgpu_vram_mgr *, uint64_t)’ {aka ‘int(struct amdgpu_vram_mgr *, long long unsigned int)’}
    131 | int amdgpu_vram_mgr_query_page_status(struct amdgpu_vram_mgr *mgr,
        |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: In function ‘amdgpu_vram_mgr_query_page_status’:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:311:19: error: passing argument 1 of ‘spin_lock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    311 |         spin_lock(&mgr->lock);
        |                   ^~~~~~~~~~
        |                   |
        |                   struct mutex *
./include/linux/spinlock.h:347:51: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    347 | static __always_inline void spin_lock(spinlock_t *lock)
        |                                       ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:331:21: error: passing argument 1 of ‘spin_unlock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    331 |         spin_unlock(&mgr->lock);
        |                     ^~~~~~~~~~
        |                     |
        |                     struct mutex *
./include/linux/spinlock.h:387:53: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    387 | static __always_inline void spin_unlock(spinlock_t *lock)
        |                                         ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: In function ‘amdgpu_vram_mgr_new’:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:377:29: error: initialization of ‘struct drm_mm *’ from incompatible pointer type ‘struct drm_buddy *’ [-Werror=incompatible-pointer-types]
    377 |         struct drm_mm *mm = &mgr->mm;
        |                             ^
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:429:19: error: passing argument 1 of ‘spin_lock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    429 |         spin_lock(&mgr->lock);
        |                   ^~~~~~~~~~
        |                   |
        |                   struct mutex *
./include/linux/spinlock.h:347:51: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    347 | static __always_inline void spin_lock(spinlock_t *lock)
        |                                       ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:458:21: error: passing argument 1 of ‘spin_unlock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    458 |         spin_unlock(&mgr->lock);
        |                     ^~~~~~~~~~
        |                     |
        |                     struct mutex *
./include/linux/spinlock.h:387:53: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    387 | static __always_inline void spin_unlock(spinlock_t *lock)
        |                                         ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:460:13: error: ‘cur_size’ undeclared (first use in this function)
    460 |         if (cur_size != size) {
        |             ^~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:460:13: note: each undeclared identifier is reported only once for each function it appears in
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:460:25: error: ‘size’ undeclared (first use in this function); did you mean ‘ksize’?
    460 |         if (cur_size != size) {
        |                         ^~~~
        |                         ksize
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:466:30: error: ‘vres’ undeclared (first use in this function); did you mean ‘res’?
    466 |                 trim_list = &vres->blocks;
        |                              ^~~~
        |                              res
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
    295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
        |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
     78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
        |                                                        ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |         ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro ‘__same_type’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |                       ^~~~~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro ‘container_of’
    520 |         container_of(ptr, type, member)
        |         ^~~~~~~~~~~~
./include/linux/list.h:542:9: note: in expansion of macro ‘list_entry’
    542 |         list_entry((ptr)->prev, type, member)
        |         ^~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:474:33: note: in expansion of macro ‘list_last_entry’
    474 |                         block = list_last_entry(&vres->blocks, typeof(*block), link);
        |                                 ^~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:485:38: error: passing argument 1 of ‘drm_buddy_block_trim’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    485 |                 drm_buddy_block_trim(mm,
        |                                      ^~
        |                                      |
        |                                      struct drm_mm *
In file included from drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h:27:
./include/drm/drm_buddy.h:146:44: note: expected ‘struct drm_buddy *’ but argument is of type ‘struct drm_mm *’
    146 | int drm_buddy_block_trim(struct drm_buddy *mm,
        |                          ~~~~~~~~~~~~~~~~~~^~
In file included from ./include/linux/rculist.h:10,
                   from ./include/linux/pid.h:5:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:494:29: error: ‘block’ undeclared (first use in this function); did you mean ‘flock’?
    494 |         list_for_each_entry(block, &vres->blocks, link)
        |                             ^~~~~
./include/linux/list.h:674:14: note: in definition of macro ‘list_for_each_entry’
    674 |         for (pos = list_first_entry(head, typeof(*pos), member);        \
        |              ^~~
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
    295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
        |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
     78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
        |                                                        ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |         ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro ‘__same_type’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |                       ^~~~~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro ‘container_of’
    520 |         container_of(ptr, type, member)
        |         ^~~~~~~~~~~~
./include/linux/list.h:531:9: note: in expansion of macro ‘list_entry’
    531 |         list_entry((ptr)->next, type, member)
        |         ^~~~~~~~~~
./include/linux/list.h:674:20: note: in expansion of macro ‘list_first_entry’
    674 |         for (pos = list_first_entry(head, typeof(*pos), member);        \
        |                    ^~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:494:9: note: in expansion of macro ‘list_for_each_entry’
    494 |         list_for_each_entry(block, &vres->blocks, link)
        |         ^~~~~~~~~~~~~~~~~~~
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
    295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
        |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
     78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
        |                                                        ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro ‘static_assert’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |         ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro ‘__same_type’
     19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
        |                       ^~~~~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro ‘container_of’
    520 |         container_of(ptr, type, member)
        |         ^~~~~~~~~~~~
./include/linux/list.h:564:9: note: in expansion of macro ‘list_entry’
    564 |         list_entry((pos)->member.next, typeof(*(pos)), member)
        |         ^~~~~~~~~~
./include/linux/list.h:676:20: note: in expansion of macro ‘list_next_entry’
    676 |              pos = list_next_entry(pos, member))
        |                    ^~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:494:9: note: in expansion of macro ‘list_for_each_entry’
    494 |         list_for_each_entry(block, &vres->blocks, link)
        |         ^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:520:21: error: passing argument 1 of ‘spin_unlock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    520 |         spin_unlock(&mgr->lock);
        |                     ^~~~~~~~~~
        |                     |
        |                     struct mutex *
./include/linux/spinlock.h:387:53: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    387 | static __always_inline void spin_unlock(spinlock_t *lock)
        |                                         ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: In function ‘amdgpu_vram_mgr_del’:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:545:19: error: passing argument 1 of ‘spin_lock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    545 |         spin_lock(&mgr->lock);
        |                   ^~~~~~~~~~
        |                   |
        |                   struct mutex *
./include/linux/spinlock.h:347:51: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    347 | static __always_inline void spin_lock(spinlock_t *lock)
        |                                       ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:554:21: error: passing argument 1 of ‘spin_unlock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    554 |         spin_unlock(&mgr->lock);
        |                     ^~~~~~~~~~
        |                     |
        |                     struct mutex *
./include/linux/spinlock.h:387:53: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    387 | static __always_inline void spin_unlock(spinlock_t *lock)
        |                                         ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: At top level:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:680:10: error: conflicting types for ‘amdgpu_vram_mgr_vis_usage’; have ‘uint64_t(struct amdgpu_vram_mgr *)’ {aka ‘long long unsigned int(struct amdgpu_vram_mgr *)’}
    680 | uint64_t amdgpu_vram_mgr_vis_usage(struct amdgpu_vram_mgr *mgr)
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h:128:10: note: previous declaration of ‘amdgpu_vram_mgr_vis_usage’ with type ‘uint64_t(struct amdgpu_vram_mgr *)’ {aka ‘long long unsigned int(struct amdgpu_vram_mgr *)’}
    128 | uint64_t amdgpu_vram_mgr_vis_usage(struct amdgpu_vram_mgr *mgr);
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: In function ‘amdgpu_vram_mgr_debug’:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:701:19: error: passing argument 1 of ‘spin_lock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    701 |         spin_lock(&mgr->lock);
        |                   ^~~~~~~~~~
        |                   |
        |                   struct mutex *
./include/linux/spinlock.h:347:51: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    347 | static __always_inline void spin_lock(spinlock_t *lock)
        |                                       ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:702:22: error: passing argument 1 of ‘drm_mm_print’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    702 |         drm_mm_print(&mgr->mm, printer);
        |                      ^~~~~~~~
        |                      |
        |                      struct drm_buddy *
In file included from ./include/drm/ttm/ttm_range_manager.h:8,
                   from drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:26:
./include/drm/drm_mm.h:551:40: note: expected ‘const struct drm_mm *’ but argument is of type ‘struct drm_buddy *’
    551 | void drm_mm_print(const struct drm_mm *mm, struct drm_printer *p);
        |                   ~~~~~~~~~~~~~~~~~~~~~^~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:703:21: error: passing argument 1 of ‘spin_unlock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    703 |         spin_unlock(&mgr->lock);
        |                     ^~~~~~~~~~
        |                     |
        |                     struct mutex *
./include/linux/spinlock.h:387:53: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    387 | static __always_inline void spin_unlock(spinlock_t *lock)
        |                                         ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: In function ‘amdgpu_vram_mgr_init’:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:721:39: error: initialization of ‘struct amdgpu_vram_mgr *’ from incompatible pointer type ‘struct amdgpu_vram_mgr *’ [-Werror=incompatible-pointer-types]
    721 |         struct amdgpu_vram_mgr *mgr = &adev->mman.vram_mgr;
        |                                       ^
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:729:21: error: passing argument 1 of ‘drm_mm_init’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    729 |         drm_mm_init(&mgr->mm, 0, man->size >> PAGE_SHIFT);
        |                     ^~~~~~~~
        |                     |
        |                     struct drm_buddy *
./include/drm/drm_mm.h:467:33: note: expected ‘struct drm_mm *’ but argument is of type ‘struct drm_buddy *’
    467 | void drm_mm_init(struct drm_mm *mm, u64 start, u64 size);
        |                  ~~~~~~~~~~~~~~~^~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:730:24: error: passing argument 1 of ‘spinlock_check’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    730 |         spin_lock_init(&mgr->lock);
        |                        ^~~~~~~~~~
        |                        |
        |                        struct mutex *
./include/linux/spinlock.h:341:24: note: in definition of macro ‘spin_lock_init’
    341 |         spinlock_check(_lock);                  \
        |                        ^~~~~
./include/linux/spinlock.h:322:67: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    322 | static __always_inline raw_spinlock_t *spinlock_check(spinlock_t *lock)
        |                                                       ~~~~~~~~~~~~^~~~
In file included from ./include/linux/spinlock.h:87:
./include/linux/spinlock_types.h:41:9: error: incompatible types when assigning to type ‘struct mutex’ from type ‘spinlock_t’ {aka ‘struct spinlock’}
     41 |         (spinlock_t) __SPIN_LOCK_INITIALIZER(lockname)
        |         ^
./include/linux/spinlock.h:342:20: note: in expansion of macro ‘__SPIN_LOCK_UNLOCKED’
    342 |         *(_lock) = __SPIN_LOCK_UNLOCKED(_lock); \
        |                    ^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:730:9: note: in expansion of macro ‘spin_lock_init’
    730 |         spin_lock_init(&mgr->lock);
        |         ^~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c: In function ‘amdgpu_vram_mgr_fini’:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:749:39: error: initialization of ‘struct amdgpu_vram_mgr *’ from incompatible pointer type ‘struct amdgpu_vram_mgr *’ [-Werror=incompatible-pointer-types]
    749 |         struct amdgpu_vram_mgr *mgr = &adev->mman.vram_mgr;
        |                                       ^
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:760:19: error: passing argument 1 of ‘spin_lock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    760 |         spin_lock(&mgr->lock);
        |                   ^~~~~~~~~~
        |                   |
        |                   struct mutex *
./include/linux/spinlock.h:347:51: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    347 | static __always_inline void spin_lock(spinlock_t *lock)
        |                                       ~~~~~~~~~~~~^~~~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:768:25: error: passing argument 1 of ‘drm_mm_takedown’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    768 |         drm_mm_takedown(&mgr->mm);
        |                         ^~~~~~~~
        |                         |
        |                         struct drm_buddy *
./include/drm/drm_mm.h:468:37: note: expected ‘struct drm_mm *’ but argument is of type ‘struct drm_buddy *’
    468 | void drm_mm_takedown(struct drm_mm *mm);
        |                      ~~~~~~~~~~~~~~~^~
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:769:21: error: passing argument 1 of ‘spin_unlock’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    769 |         spin_unlock(&mgr->lock);
        |                     ^~~~~~~~~~
        |                     |
        |                     struct mutex *
./include/linux/spinlock.h:387:53: note: expected ‘spinlock_t *’ {aka ‘struct spinlock *’} but argument is of type ‘struct mutex *’
    387 | static __always_inline void spin_unlock(spinlock_t *lock)
        |                                         ~~~~~~~~~~~~^~~~
cc1: all warnings being treated as errors
make[4]: *** [scripts/Makefile.build:249: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.o] Error 1
make[4]: *** Waiting for unfinished jobs....
    CC [M]  drivers/gpu/drm/amd/amdgpu/smu_v11_0_i2c.o
make[3]: *** [scripts/Makefile.build:466: drivers/gpu/drm/amd/amdgpu] Error 2
make[2]: *** [scripts/Makefile.build:466: drivers/gpu/drm] Error 2
make[1]: *** [scripts/Makefile.build:466: drivers/gpu] Error 2
make: *** [Makefile:1843: drivers] Error 2

Regards,
Mauro




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux