From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Wang, Ken" Subject: =?gb2312?B?tPC4tDogW1BBVENIXSBkcm0vYW1kZ3B1OiBmaXggbWVtb3J5IGxlYWsgaW4g?= =?gb2312?B?d2FpdF9hbGxfZmVuY2U=?= Date: Fri, 7 Apr 2017 06:45:32 +0000 Message-ID: References: <1491536178-5978-1-git-send-email-David1.Zhou@amd.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0721431568==" Return-path: In-Reply-To: <1491536178-5978-1-git-send-email-David1.Zhou-5C7GfCeVMHo@public.gmane.org> Content-Language: zh-CN List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Zhou, David(ChunMing)" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" --===============0721431568== Content-Language: zh-CN Content-Type: multipart/alternative; boundary="_000_CY4PR12MB1831AAF8F9B7D5B9CBC15F288C0C0CY4PR12MB1831namp_" --_000_CY4PR12MB1831AAF8F9B7D5B9CBC15F288C0C0CY4PR12MB1831namp_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IEtlbiBXYW5nIDxRaW5ncWluZy5XYW5nQGFtZC5jb20+DQoNCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fDQq3orz+yMs6IGFtZC1nZnggPGFtZC1nZngtYm91bmNl c0BsaXN0cy5mcmVlZGVza3RvcC5vcmc+ILT6se0gQ2h1bm1pbmcgWmhvdSA8RGF2aWQxLlpob3VA YW1kLmNvbT4NCreiy83KsbzkOiAyMDE3xOo01MI3yNUgMTE6MzY6MTgNCsrVvP7IyzogYW1kLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IFdhbmcsIEtlbg0Ks63LzTogWmhvdSwgRGF2aWQoQ2h1 bk1pbmcpDQrW98ziOiBbUEFUQ0hdIGRybS9hbWRncHU6IGZpeCBtZW1vcnkgbGVhayBpbiB3YWl0 X2FsbF9mZW5jZQ0KDQpDaGFuZ2UtSWQ6IEliM2UyNzFlMDBlNDlmMTAxNTJjMWIzZWFjZTk4MWE2 YmY3ODgyMGRlDQpTaWduZWQtb2ZmLWJ5OiBDaHVubWluZyBaaG91IDxEYXZpZDEuWmhvdUBhbWQu Y29tPg0KLS0tDQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgfCAyNSAr KysrKysrKysrKysrKysrKysrLS0tLS0tDQogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5j DQppbmRleCBkZTFjNGMzLi5kODQyNDUyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2NzLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9jcy5jDQpAQCAtMTIxNiwyMiArMTIxNiwyOCBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc193 YWl0X2FsbF9mZW5jZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1X2ZlbmNlICpmZW5jZXMp DQogew0KICAgICAgICAgdWludDMyX3QgZmVuY2VfY291bnQgPSB3YWl0LT5pbi5mZW5jZV9jb3Vu dDsNCisgICAgICAgc3RydWN0IGZlbmNlICoqYXJyYXk7DQogICAgICAgICB1bnNpZ25lZCBpbnQg aTsNCiAgICAgICAgIGxvbmcgciA9IDE7DQoNCisgICAgICAgYXJyYXkgPSBrY2FsbG9jKGZlbmNl X2NvdW50LCBzaXplb2Yoc3RydWN0IGZlbmNlICopLCBHRlBfS0VSTkVMKTsNCisNCisgICAgICAg aWYgKGFycmF5ID09IE5VTEwpDQorICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQogICAg ICAgICBmb3IgKGkgPSAwOyBpIDwgZmVuY2VfY291bnQ7IGkrKykgew0KICAgICAgICAgICAgICAg ICBzdHJ1Y3QgZmVuY2UgKmZlbmNlOw0KICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHRp bWVvdXQgPSBhbWRncHVfZ2VtX3RpbWVvdXQod2FpdC0+aW4udGltZW91dF9ucyk7DQoNCiAgICAg ICAgICAgICAgICAgZmVuY2UgPSBhbWRncHVfY3NfZ2V0X2ZlbmNlKGFkZXYsIGZpbHAsICZmZW5j ZXNbaV0pOw0KLSAgICAgICAgICAgICAgIGlmIChJU19FUlIoZmVuY2UpKQ0KLSAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoZmVuY2UpOw0KLSAgICAgICAgICAgICAgIGVsc2Ug aWYgKCFmZW5jZSkNCisgICAgICAgICAgICAgICBpZiAoSVNfRVJSKGZlbmNlKSkgew0KKyAgICAg ICAgICAgICAgICAgICAgICAgciA9IFBUUl9FUlIoZmVuY2UpOw0KKyAgICAgICAgICAgICAgICAg ICAgICAgZ290byBlcnI7DQorICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZmVuY2UpDQogICAg ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQotDQorICAgICAgICAgICAgICAgYXJyYXlb aV0gPSBmZW5jZTsNCiAgICAgICAgICAgICAgICAgciA9IGtjbF9mZW5jZV93YWl0X3RpbWVvdXQo ZmVuY2UsIHRydWUsIHRpbWVvdXQpOw0KICAgICAgICAgICAgICAgICBpZiAociA8IDApDQotICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcjsNCisgICAgICAgICAgICAgICAgICAgICAgIGdv dG8gZXJyOw0KDQogICAgICAgICAgICAgICAgIGlmIChyID09IDApDQogICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7DQpAQCAtMTI0MCw3ICsxMjQ2LDE0IEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X2NzX3dhaXRfYWxsX2ZlbmNlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCiAgICAgICAg IG1lbXNldCh3YWl0LCAwLCBzaXplb2YoKndhaXQpKTsNCiAgICAgICAgIHdhaXQtPm91dC5zdGF0 dXMgPSAociA+IDApOw0KDQotICAgICAgIHJldHVybiAwOw0KKyAgICAgICByID0gMDsNCisNCitl cnI6DQorICAgICAgIGZvciAoaSA9IDA7IGkgPCBmZW5jZV9jb3VudDsgaSsrKQ0KKyAgICAgICAg ICAgICAgIGZlbmNlX3B1dChhcnJheVtpXSk7DQorICAgICAgIGtmcmVlKGFycmF5KTsNCisNCisg ICAgICAgcmV0dXJuIHI7DQogfQ0KDQogLyoqDQotLQ0KMS45LjENCg0KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmFtZC1nZnggbWFpbGluZyBsaXN0DQph bWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4DQo= --_000_CY4PR12MB1831AAF8F9B7D5B9CBC15F288C0C0CY4PR12MB1831namp_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable

Reviewed-by: Ken Wang <Qingqing.Wang-5C7GfCeVMHo@public.gmane.org>


=B7=A2=BC=FE=C8=CB: amd-g= fx <amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org> =B4=FA=B1=ED Chunming Zhou= <David1.Zhou-5C7GfCeVMHo@public.gmane.org>
=B7=A2=CB=CD=CA=B1=BC=E4: 2017=C4=EA4=D4=C27=C8=D5 11:36:18
=CA=D5=BC=FE=C8=CB: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org; Wang, Ken
=B3=AD=CB=CD: Zhou, David(ChunMing)
=D6=F7=CC=E2: [PATCH] drm/amdgpu: fix memory leak in wait_all_fence<= /font>
 
Change-Id: Ib3e271e00e49f10152c1b3eace981a6bf78820= de
Signed-off-by: Chunming Zhou <David1.Zhou-5C7GfCeVMHo@public.gmane.org>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 25 +++++= ++++++++++++++-----= -
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/a= mdgpu/amdgpu_cs.c
index de1c4c3..d842452 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -1216,22 +1216,28 @@ static int amdgpu_cs_wait_all_fences(struct amd= gpu_device *adev,
            &nb= sp;            =              st= ruct drm_amdgpu_fence *fences)
 {
         uint32_t fence_count =3D w= ait->in.fence_count;
+       struct fence **array;
         unsigned int i;
         long r =3D 1;
 
+       array =3D kcalloc(fence_count, si= zeof(struct fence *), GFP_KERNEL);
+
+       if (array =3D=3D NULL)
+           &nbs= p;   return -ENOMEM;
         for (i =3D 0; i < fence= _count; i++) {
            &nb= sp;    struct fence *fence;
            &nb= sp;    unsigned long timeout =3D amdgpu_gem_timeout(wait->= ;in.timeout_ns);
 
            &nb= sp;    fence =3D amdgpu_cs_get_fence(adev, filp, &fences= [i]);
-            &n= bsp;  if (IS_ERR(fence))
-            &n= bsp;          return PTR_ERR(f= ence);
-            &n= bsp;  else if (!fence)
+           &nbs= p;   if (IS_ERR(fence)) {
+           &nbs= p;           r =3D PTR_ER= R(fence);
+           &nbs= p;           goto err; +           &nbs= p;   } else if (!fence)
            &nb= sp;            conti= nue;
-
+           &nbs= p;   array[i] =3D fence;
            &nb= sp;    r =3D kcl_fence_wait_timeout(fence, true, timeout);             &nb= sp;    if (r < 0)
-            &n= bsp;          return r;
+           &nbs= p;           goto err;  
            &nb= sp;    if (r =3D=3D 0)
            &nb= sp;            break= ;
@@ -1240,7 +1246,14 @@ static int amdgpu_cs_wait_all_fences(struct amdg= pu_device *adev,
         memset(wait, 0, sizeof(*wa= it));
         wait->out.status =3D (r= > 0);
 
-       return 0;
+       r =3D 0;
+
+err:
+       for (i =3D 0; i < fence_count;= i++)
+           &nbs= p;   fence_put(array[i]);
+       kfree(array);
+
+       return r;
 }
 
 /**
--
1.9.1

_______________________________________________
amd-gfx mailing list
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
https://= lists.freedesktop.org/mailman/listinfo/amd-gfx
--_000_CY4PR12MB1831AAF8F9B7D5B9CBC15F288C0C0CY4PR12MB1831namp_-- --===============0721431568== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBt YWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg== --===============0721431568==--