Message ID | 20220209145254.2291158-1-trix@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/amdkfd: fix freeing an unset pointer | expand |
On 2022-02-09 09:52, trix@redhat.com wrote: > From: Tom Rix <trix@redhat.com> > > clang static analysis reports this problem > kfd_chardev.c:2092:2: warning: 1st function call argument > is an uninitialized value > kvfree(bo_privs); > ^~~~~~~~~~~~~~~~ > > When bo_buckets alloc fails, it jumps to an error handler > that frees the yet to be allocated bo_privs. Because > bo_buckets is the first error, return directly. > > Fixes: 5ccbb057c0a1 ("drm/amdkfd: CRIU Implement KFD checkpoint ioctl") Thank you, Tom. I'm applying your patch to amd-staging-drm-next. Regards, Felix > > Signed-off-by: Tom Rix <trix@redhat.com> > --- > drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > index 64e3b4e3a7126..636391c61cafb 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > @@ -1982,10 +1982,8 @@ static int criu_checkpoint_bos(struct kfd_process *p, > void *mem; > > bo_buckets = kvzalloc(num_bos * sizeof(*bo_buckets), GFP_KERNEL); > - if (!bo_buckets) { > - ret = -ENOMEM; > - goto exit; > - } > + if (!bo_buckets) > + return -ENOMEM; > > bo_privs = kvzalloc(num_bos * sizeof(*bo_privs), GFP_KERNEL); > if (!bo_privs) {
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c index 64e3b4e3a7126..636391c61cafb 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c @@ -1982,10 +1982,8 @@ static int criu_checkpoint_bos(struct kfd_process *p, void *mem; bo_buckets = kvzalloc(num_bos * sizeof(*bo_buckets), GFP_KERNEL); - if (!bo_buckets) { - ret = -ENOMEM; - goto exit; - } + if (!bo_buckets) + return -ENOMEM; bo_privs = kvzalloc(num_bos * sizeof(*bo_privs), GFP_KERNEL); if (!bo_privs) {