Hi Sasha, The patch in the link is a Fixes patch of the quoted patch, and should also go in: https://lore.kernel.org/all/20230104221935.113400-1-luben.tuikov@xxxxxxx/ Regards, Luben On 2022-12-31 15:04, Sasha Levin wrote: > From: Luben Tuikov <luben.tuikov@xxxxxxx> > > [ Upstream commit 7554886daa31eacc8e7fac9e15bbce67d10b8f1f ] > > Fix amdgpu_bo_validate_size() to check whether the TTM domain manager for the > requested memory exists, else we get a kernel oops when dereferencing "man". > > v2: Make the patch standalone, i.e. not dependent on local patches. > v3: Preserve old behaviour and just check that the manager pointer is not > NULL. > v4: Complain if GTT domain requested and it is uninitialized--most likely a > bug. > > Cc: Alex Deucher <Alexander.Deucher@xxxxxxx> > Cc: Christian König <christian.koenig@xxxxxxx> > Cc: AMD Graphics <amd-gfx@xxxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Luben Tuikov <luben.tuikov@xxxxxxx> > Reviewed-by: Christian König <christian.koenig@xxxxxxx> > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 19 ++++++++----------- > 1 file changed, 8 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > index 2e8f6cd7a729..33e266433e9b 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > @@ -446,27 +446,24 @@ static bool amdgpu_bo_validate_size(struct amdgpu_device *adev, > > /* > * If GTT is part of requested domains the check must succeed to > - * allow fall back to GTT > + * allow fall back to GTT. > */ > if (domain & AMDGPU_GEM_DOMAIN_GTT) { > man = ttm_manager_type(&adev->mman.bdev, TTM_PL_TT); > > - if (size < man->size) > + if (man && size < man->size) > return true; > - else > - goto fail; > - } > - > - if (domain & AMDGPU_GEM_DOMAIN_VRAM) { > + else if (!man) > + WARN_ON_ONCE("GTT domain requested but GTT mem manager uninitialized"); > + goto fail; > + } else if (domain & AMDGPU_GEM_DOMAIN_VRAM) { > man = ttm_manager_type(&adev->mman.bdev, TTM_PL_VRAM); > > - if (size < man->size) > + if (man && size < man->size) > return true; > - else > - goto fail; > + goto fail; > } > > - > /* TODO add more domains checks, such as AMDGPU_GEM_DOMAIN_CPU */ > return true; >