On Fri, 26 Jan 2024 at 14:24, Kees Cook <[email protected]> wrote:
>
> I think xe has some other weird problems too. This may be related (under
> allocating):
>
> ../drivers/gpu/drm/xe/xe_vm.c: In function 'xe_vma_create':
> ../drivers/gpu/drm/xe/xe_vm.c:806:21: warning: allocation of insufficient
> size '224' for type 'struct xe_vma' with size '368' [-Walloc-size]
> 806 | vma = kzalloc(sizeof(*vma) - sizeof(struct
> xe_userptr),
> | ^
That code is indeed odd, but there's a comment in the xe_vma definition
/**
* @userptr: user pointer state, only allocated for VMAs that are
* user pointers
*/
struct xe_userptr userptr;
although I agree that it should probably simply be made a final
variably-sized array instead (and then you make that array size be
0/1).
Linus