From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [RFC] drm/amd/amdgpu: get rid of else branch Date: Fri, 28 Apr 2017 10:30:49 +0200 Message-ID: <6ce3044b-9473-94eb-e54c-e8e856f1c88f@amd.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: 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: Nikola Pajkovsky , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Alex Deucher , David Airlie , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, =?UTF-8?Q?Christian_K=c3=b6nig?= , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org QW0gMjcuMDQuMjAxNyB1bSAxODoxNyBzY2hyaWViIE5pa29sYSBQYWprb3Zza3k6Cj4gVGhpcyBp cyBzdXBlciBzaW1wbGUgZWxpbWluYXRpb24gb2YgZWxzZSBicmFuY2ggYW5kIEkgc2hvdWxkCj4g cHJvYmFibHkgZXZlbiB1c2UgdW5saWtlbHkgaW4KPgo+ICAgCWlmIChyaW5nLT5jb3VudF9kdyA8 IGNvdW50X2R3KSB7Cj4KPiBIb3dldmVyLCBhbWRncHVfcmluZ193cml0ZSgpIGhhcyBzaW1pbGFy IGlmIGNvbmRpdGlvbiwgYnV0IGRvZXMgbm90Cj4gcmV0dXJuIGFmdGVyIERSTV9FUlJPUiBhbmQg aXQgbG9va3Mgc3VzcGljaW91cy4gT24gZXJyb3IsIHdlIHN0aWxsCj4gYWRkaW5nIHYgdG8gcmlu ZyBhbmQga2VlcGluZyBjb3VudF9kdy0tIGJlbG93IHplcm8uCj4KPiAJaWYgKHJpbmctPmNvdW50 X2R3IDw9IDApCj4gCQlEUk1fRVJST1IoImFtZGdwdTogd3JpdGluZyBtb3JlIGR3b3JkcyB0byB0 aGUgcmluZyB0aGFuIGV4cGVjdGVkIVxuIik7Cj4gCXJpbmctPnJpbmdbcmluZy0+d3B0cisrXSA9 IHY7Cj4gCXJpbmctPndwdHIgJj0gcmluZy0+cHRyX21hc2s7Cj4gCXJpbmctPmNvdW50X2R3LS07 Cj4KPiBJIGNhbiBvYnZpb3VzbHkgYmUgdG90YWx5IHdyb25nLiBIbW0/CgpUaGF0J3MganVzdCBj aG9vc2luZyB0aGUgbGVzc2VyIGV2aWwuCgpXaGVuIHdlIHdyaXRlIG1vcmUgRFcgdG8gdGhlIHJp bmcgdGhhbiBleHBlY3RlZCBpdCBpcyBwb3NzaWJsZSAoYnV0IG5vdCAKbGlrZWx5KSB0aGF0IHdl IG92ZXJyaWRlIHN0dWZmIG9uIHRoZSByaW5nIGJ1ZmZlciB3aGljaCBpcyBzdGlsbCAKZXhlY3V0 ZWQgYnkgdGhlIGNvbW1hbmQgcHJvY2Vzc29yIGxlYWRpbmcgdG8gYSBwb3NzaWJsZSBDUCBjcmFz aC4KCkJ1dCB3aGVuIHdlIGNvbXBsZXRlbHkgZHJvcCB0aGUgd3JpdGUgdGhlIGNvbW1hbmRzIGlu IHRoZSByaW5nIGJ1ZmZlciAKd2lsbCBjZXJ0YWlubHkgYmUgaW52YWxpZCBhbmQgc28gdGhlIENQ IHdpbGwgY2VydGFpbmx5IGNyYXNoIHNvb25lciBvciAKbGF0ZXIuCgpQbGVhc2UgYWRkIHRoZSB1 bmxpa2VseSgpIGFzIHdlbGwgYW5kIHRoZW4gc2VuZCBvdXQgdGhlIHBhdGNoIHdpdGggYSAKc2ln bmVkLW9mLWJ5IGxpbmUgYW5kIEkgd2lsbCBiZSBoYXBweSB0byBwdXNoIGl0IGludG8gb3VyIHVw c3RyZWFtIGJyYW5jaC4KClJlZ2FyZHMsCkNocmlzdGlhbi4KCj4KPiAtLS0tLS0tLTg8LS0tLS0t LS04PC0tLS0tLS0tODwtLS0tLS0tLTg8LS0tLS0tLS04PC0tLS0tLS0tODwtLS0tLS0tLTg8LS0t LS0tLS04PC0tLS0tLS0tODwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+IGluZGV4 IGMxYjkxMzU0MTczOS4uYzZmNGY4NzRlYTY4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1LmgKPiBAQCAtMTU5NiwyOCArMTU5NiwyOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYW1k Z3B1X3Jpbmdfd3JpdGVfbXVsdGlwbGUoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB2b2lkICpz cgo+ICAgCj4gICAJaWYgKHJpbmctPmNvdW50X2R3IDwgY291bnRfZHcpIHsKPiAgIAkJRFJNX0VS Uk9SKCJhbWRncHU6IHdyaXRpbmcgbW9yZSBkd29yZHMgdG8gdGhlIHJpbmcgdGhhbiBleHBlY3Rl ZCFcbiIpOwo+IC0JfSBlbHNlIHsKPiAtCQlvY2N1cGllZCA9IHJpbmctPndwdHIgJiByaW5nLT5w dHJfbWFzazsKPiAtCQlkc3QgPSAodm9pZCAqKSZyaW5nLT5yaW5nW29jY3VwaWVkXTsKPiAtCQlj aHVuazEgPSByaW5nLT5wdHJfbWFzayArIDEgLSBvY2N1cGllZDsKPiAtCQljaHVuazEgPSAoY2h1 bmsxID49IGNvdW50X2R3KSA/IGNvdW50X2R3OiBjaHVuazE7Cj4gLQkJY2h1bmsyID0gY291bnRf ZHcgLSBjaHVuazE7Cj4gLQkJY2h1bmsxIDw8PSAyOwo+IC0JCWNodW5rMiA8PD0gMjsKPiAtCj4g LQkJaWYgKGNodW5rMSkKPiAtCQkJbWVtY3B5KGRzdCwgc3JjLCBjaHVuazEpOwo+IC0KPiAtCQlp ZiAoY2h1bmsyKSB7Cj4gLQkJCXNyYyArPSBjaHVuazE7Cj4gLQkJCWRzdCA9ICh2b2lkICopcmlu Zy0+cmluZzsKPiAtCQkJbWVtY3B5KGRzdCwgc3JjLCBjaHVuazIpOwo+IC0JCX0KPiAtCj4gLQkJ cmluZy0+d3B0ciArPSBjb3VudF9kdzsKPiAtCQlyaW5nLT53cHRyICY9IHJpbmctPnB0cl9tYXNr Owo+IC0JCXJpbmctPmNvdW50X2R3IC09IGNvdW50X2R3Owo+ICsJCXJldHVybjsKPiAgIAl9Cj4g Kwo+ICsJb2NjdXBpZWQgPSByaW5nLT53cHRyICYgcmluZy0+cHRyX21hc2s7Cj4gKwlkc3QgPSAo dm9pZCAqKSZyaW5nLT5yaW5nW29jY3VwaWVkXTsKPiArCWNodW5rMSA9IHJpbmctPnB0cl9tYXNr ICsgMSAtIG9jY3VwaWVkOwo+ICsJY2h1bmsxID0gKGNodW5rMSA+PSBjb3VudF9kdykgPyBjb3Vu dF9kdzogY2h1bmsxOwo+ICsJY2h1bmsyID0gY291bnRfZHcgLSBjaHVuazE7Cj4gKwljaHVuazEg PDw9IDI7Cj4gKwljaHVuazIgPDw9IDI7Cj4gKwo+ICsJaWYgKGNodW5rMSkKPiArCQltZW1jcHko ZHN0LCBzcmMsIGNodW5rMSk7Cj4gKwo+ICsJaWYgKGNodW5rMikgewo+ICsJCXNyYyArPSBjaHVu azE7Cj4gKwkJZHN0ID0gKHZvaWQgKilyaW5nLT5yaW5nOwo+ICsJCW1lbWNweShkc3QsIHNyYywg Y2h1bmsyKTsKPiArCX0KPiArCj4gKwlyaW5nLT53cHRyICs9IGNvdW50X2R3Owo+ICsJcmluZy0+ d3B0ciAmPSByaW5nLT5wdHJfbWFzazsKPiArCXJpbmctPmNvdW50X2R3IC09IGNvdW50X2R3Owo+ ICAgfQo+ICAgCj4gICBzdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRncHVfc2RtYV9pbnN0YW5jZSAq CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdm eCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1035282AbdD1IwR (ORCPT ); Fri, 28 Apr 2017 04:52:17 -0400 Received: from mail-dm3nam03on0066.outbound.protection.outlook.com ([104.47.41.66]:29984 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1424796AbdD1IbF (ORCPT ); Fri, 28 Apr 2017 04:31:05 -0400 Authentication-Results: lists.freedesktop.org; dkim=none (message not signed) header.d=none;lists.freedesktop.org; dmarc=none action=none header.from=amd.com; Subject: Re: [RFC] drm/amd/amdgpu: get rid of else branch To: Nikola Pajkovsky , References: CC: Alex Deucher , David Airlie , , =?UTF-8?Q?Christian_K=c3=b6nig?= , From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <6ce3044b-9473-94eb-e54c-e8e856f1c88f@amd.com> Date: Fri, 28 Apr 2017 10:30:49 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [2a02:908:1251:7981:38ad:ec37:c713:177b] X-ClientProxiedBy: HE1PR09CA0090.eurprd09.prod.outlook.com (10.174.50.162) To CY4PR12MB1301.namprd12.prod.outlook.com (10.168.168.138) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6a107a2f-d6d0-4f40-7155-08d48e10e873 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:CY4PR12MB1301; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1301;3:XEPY1jdOwQD+1U6TGukzD5v8TI4byV6WfVRLSaxDCWXpZMpVXp+RHz2S+UuCtmaMNzbI/XtHQzlz4BP0MIGE7uA1etKg08t0va2SswbZjx2MWev61zb5DekH77JSHodumeh/adNb5KgAnz+uRD7jzyo9nJiCOQmXeegncyFNlAiSL/HwBcs8GMuP7dazkAOQ1eg1HqD6eCAMkBiOuvsF3hoOGIw+3CUjx8c7sMbNqG5n2ueIdUSgrrdcimIrWp34GUUtifO32medQcuM1OaMJVoO4V1eLeN0AZVJ2+rHXtEIWX51xnxzRV6/jwt3iBMa/+cSHhMhoWeMBymurkYQqVZavsCmZxcUrC5DAmF4BZw=;25:bWg5XWr/oheDnOnHoCnOXx76rC6rdcyZBJXVu+kDUu0t9Bjrfyn2L/+HtT8IL7YrrrqCzvN6sOB5UktKaAFL8GVKKbO/jo/9HplR3wEtU9yP165I7DeC6PMxI7Z7VFk8VJ0y2IXwKSG9q+3EFw01PZA9IFNn2ggaewI8S42HZn0fHIcFrhWCC1qixcOFYnyKIVJqdjo41XgvFACLIEJDdc8aWeapO/HKUK2OCqP4EvsC8CUV5QHcku8ghEa5AO1QLnf3BGu9MYZ4ItMBWpGULAB8GoEh30kjk5Nsx1pYBrgrJtSin3bs2Na6V6OtL+Y3BSciu7LigBMkCso9BA89QmE2pKUJNWwLUoI7OF0avE6xOOWS7y2Ne5MoPuC5/xg9ewxEGhcp8ypw8HVzxCcJDIcD+88bd+KM5sk0lrKkwKvlUHBI/Q7DSHaORcsD1sNxyK3Z5hE9kzluO0wEx+qeWQ== X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1301;31:wTi/n54JtZGOjpeWD7cdqbzsxGdJKnIC9EAfw/+jIbh3OPV5YFVRNI0Vj5nwD2KJgy4dPEf8+35HyJ2781S5BNJ2OzswBeb5JoblSB0wIjd40YxST+gacPnWFyPvvKob14+I8h92kL0TPgoq5NAoC2X+6ieLwy3Vsnyf7HXEanDxbR0Vk7NO9k7XAcO9c6VktaAIcWQTKBdtdUDDLBx5Fcpyq24mckvHGfLW+pYaHidxdr6KEvQ79svwbClnYxvy;20:dJoPioq7Bntyyv/NgKnXj2ejxngxQkr0qXkycOi4j0XPisFlHPcGlIQYaf4EODyig0HTZEyb/XBYOk600yPOq315F56HvDzY+fLtYo/yqjk2nAyLmsXrHZ/dNUtQb/MKTZ+1clYuhlROpvkwkO7qd34gF+V8ije87ty227wIdm96kjloaBn38LLYmURg802vwUfPS07Tn97bAMvfcKQplLDF1vFjSie0zW1TB0FSSFVHjSsOUXc4OBnN1uFAoILkAMODZ+t1NJrLPRojOzdZtl9S1RBUxv8sg8zZNzgWWOvz+nh7jw9aCLLMyowwdtljgRuKrVRTSmSEPFLJkAq2nynEpgnBTGbMjhOaLka6zTyBhk/QqP/59mUhssl/92xJnrbtXy6WeBhOJySDj3sPIAsS5uDgDvPR0B5NVP3M6HyU5YqujDYMv5WVSw79W0RetG0ermqlTRdA3m+kSzUOIeEuvRTnLT1momUysNXy3ZxS6k/fgBo9fZR96SwDlqkz X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123555025)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(20161123562025)(6072148);SRVR:CY4PR12MB1301;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1301; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1301;4:/gWLevgoD+rc3loYAwmqklSrWN5hYwgIr+c0x2WL/Z1NX3k2cS5TaUJJRsMd5yD2jCT2YGrqyBxk+eIWAcjZMzeWc6w2YFRXtS6OO5cdxflrBLDUD+fYEoRL4ElcwwHip2G5kxTkBd879xFbvHuyyCTu1AE9wrd0KSEciMoXE9iqN9KqWEgJlKjue0623lGGbZhi1KGuIk0ObrtcgeNn3e5koEo+hRejt44NJih5rlBzDZfiTnpSC5Etp1+Z/8dlUmB+0QUUwNahGnSfcb/CWp5u1HR+B8Ye3ae3IoTe2IgXjVQgGyBMwqTr7kDkNCl8SgPZkIoNAY7BwgYor34PZpDrugkKXA06XuIy63LMW2GbtZLv90cUCmFQx00qUK2dOzTnC7Upt2pOk2CPN/xL6lRoGm5u/8+hlJTJQzHPILKyGymnmJotkeaSdGqb1xujGh9L0IcyaixcUpyrzLpmFgrEdeumEOc/LLYS2HPRZxdy6UePMBNOuVDNR7ZCQnaKQ38+MTYuMsvXArnG6euAYMqTBMs8Ce7NLQzVIBAnFlu5iOpusYqy5VPUAmqHWgTdR2mH+4e3UmzZtIU79iDl1EmSwtA5URGG1IGeDea17OKHkTvLxP4PKR6i52SPkFOusOJT5kUz/3apFTszpEsnjQjeshYIA35o3FMgybcdNkMDOsA7Py+WUyhra513uTr6qly2YXaWcWjjFgkhRWDAnhDZ+yz0iSDRhS4ccCVQG/U= X-Forefront-PRVS: 029174C036 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39860400002)(39840400002)(39450400003)(39410400002)(39850400002)(39400400002)(189998001)(31696002)(6116002)(33646002)(47776003)(5660300001)(76176999)(4001350100001)(50986999)(86362001)(2906002)(65956001)(42186005)(54356999)(229853002)(2950100002)(25786009)(6486002)(36756003)(7736002)(305945005)(65826007)(83506001)(6666003)(6246003)(53936002)(50466002)(8676002)(38730400002)(81166006)(54906002)(230700001)(4326008)(23676002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1301;H:[IPv6:2a02:908:1251:7981:38ad:ec37:c713:177b];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMzAxOzIzOlcreCsrVTJyYS85Rm5hS2JPUHZyMmRhRVIy?= =?utf-8?B?cXllVWpqb2Mya0xpN3U2ZFI5YWxVYXJqTWQ0eDE5NHJRZmNveHVLczRQMUxn?= =?utf-8?B?a1NmRHAvNHZZeEszVHBjKzhsdW03anEyWDRwc2FNaHp2K0FkRmxNZ3ZsTTda?= =?utf-8?B?NE5RNXFKWEVYR3VOR09UajlWbkhoRHlRaHd6SXBJTUhzSmVJWUtQRmdUZjhm?= =?utf-8?B?Zk10NzV2TXgycVdNaWdjQWlFei9USVdORHJ2enc1dVcydEpoS0lpdUthajBs?= =?utf-8?B?QTdZTDErWmErcEdCWjFGTGczdDZVSDBjR2N0ajNXa09LdDFCaW9xSjB6QU44?= =?utf-8?B?L0s0TTczT0s3QW02L2VyblRoUm1peWN6bUNxN3JoRlNxYmQzY0FIK2JuQmUz?= =?utf-8?B?bFZGRXd2VHIwd1Qxd1Z1N1lLbUIvWHROTmIrUlQrbHY2ZG0zT2g3blNKTFZB?= =?utf-8?B?Y0RORTI2cWhVcGZSeElRSjJVbHc1aUFhdHdqWHBXbkl1ZmtIWHk4aDJXRTZz?= =?utf-8?B?amxTMTQ1ak5QaklqN3VGelhXb1NZMHdlaVN2K1YxQlc2OHA1SEdCQ2toWUxG?= =?utf-8?B?NEtvNlJyN0NsWWhQWEo1ckJ3VWVuTitpMUZhd1o3blZ0MmpOdCtnVmgwbS9R?= =?utf-8?B?MjM1M0lFcHhJVkk5dFVmQXdHMFlNUnl2eHpaNDBkMnd3aFllbjVDb2V1V2Qy?= =?utf-8?B?WUJHVjRZWDVDZzBCMWJzR3Z2WVp0dEJvZHRQL2JCY212NEtYNVRKRmt5YmFW?= =?utf-8?B?NDZMMkxXNU9OUE0rUWNITVk1dUpESjdZYXhyNFFTVjFGaEs4N2h1Z0M0Sm9v?= =?utf-8?B?T0lXcUoweUhlM1lwMnBQSm9HRURUVDdUV2k0cVM3b1JlQ3UzUnVZU21nRWNS?= =?utf-8?B?N2pWV284QlJHdXhuZU1WdnFQYzFvNFZ5eml6dENkYnhxc3ZQWFl2eWwwaHpO?= =?utf-8?B?UXNUZzhtRHNiSnI4ZkluRzJwblU5ZkFQNzdtQXR6cmROd1dJZFBpOUk2U01C?= =?utf-8?B?anJxdFhFekNYQ2l4azRDMlN0dnNjVXBVS2crNXV1K3lVWnNWT3JRRDFuL1lT?= =?utf-8?B?SXhUK2tvOGJieXRQNXpZaHcrRTRReDBIZU9oaUp3UTRJb0RpOFBPclhIQkJm?= =?utf-8?B?Z0E0eGtzRXRYb2Nva05LQWttQm5zTFpuWVdkZGZQM3JEQlB4aHFYeVEzcmFu?= =?utf-8?B?K1VQNkVMaENwMSt2dnVyOHo2NEg5emVNeElVTjhJdEc0SWd3enQyVXpYNkpm?= =?utf-8?B?c05qY25VOW9LQ0Urd3Y4Y3RkS3FWdDZWS1RGOGZqdHNUVlJXK01iNDNIcEZw?= =?utf-8?B?RjRMZ1ZLNlJURDkwaHRyclcxYnJuc0h2NkswMGV0N0o1ZVlVSjFidnBJTk9z?= =?utf-8?B?cGVLOHBreE8zbmZNSFViVEJtZk9XZEhqVmNxZFBjVDNPeEhNS3BmZWs3b1No?= =?utf-8?Q?Jprdebh7YkkFWxvScolzBZ17cGA?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1301;6:Vzx+tE4EdaYTuiHaZ9YdMxMo4vHP48byeenyafCxBMa/GXrzNduWioahqdiNA2Hs0GBW7I5Fi+hy3cSCWe55J/sZisTBjzlFda9y7kVgQP35Z5Y1uJwObqcxa/fdqNzvDTTjuK9nZl+HrG23wZsXFDq/fPBgfYDYaMEZQqsONRCdZHhnj6IptwdzOoKR3xQEkR9udnOFolZkGcS/0GBAi2b4lkI1PVFcDCvaRiC1Qs8Tpsn9SZ+/T0FW0btXEEJOtNw7rpRVusE+x2bOqJwwFCpVJtrJYCBKQZsWYkoegdwr+B3zindQO/c59Q7N1fLh062Uy50AuLSRb1FnUBooywjRBQpeqcYAFWuhXBHNXbM2BFFXOXqixFBR7SsXbkfC1CUGlFVJL9ObA9iypqqxp/EXNLWS7OxjtKoWLbdolEKFIYwGVy3tjNseEZRPuDy6Zk/1Xczw5mrBJsuOGaqwYBMr9gHqOCowG5CMewsNP9YwrUMfa9nEpOtQO0m8MDnURYfKZEZBPaksCQ7m5ScvIqz/PhneGdJft2zZuXdRj+Y=;5:djL+WZrfggh2E1vo8qtLb5FlvFdojGqOQFUyCGHUcng7uLcOm+8p03nFJItEldvxBfGb7jwtGaUKT+zyEDAHAgIbz1iUOXraTYtO9thS7noPROFKgGsEa2sjEbTT8t0jYP/7JF6eJt9vriO4X/j59A==;24:h0XjPaIaC34TWgUVuoc2cFfKB8kNxZOTiuxbW0GEr6Oq8IGDo7gcX8WUPQPCO/Gj1vcyfJNTP38KLIYfU5B+IMjbUVBpFZPnTb7P5dFrmTg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1301;7:4+zzC19ezlBe2U+NC5cnauZ3sFG5tYrTfOMGSDLbIKP4izsx+7Qo42FkqjJqNgolM++zHlTp+MaDYRdzt8VzDLIbjz1EFAtdbD5I61LhZpYKvauunI3pHVZE8/dED9gq7+PXDv9s/Zbxr6D9GQvBBeDgd6I2XjAnIJJZnNxmbvGorsDn47xPZU2O74UqVWpA6jMuz/s34lsAHDnYMPC7hf8nGb4bw/q2ZhvTGt2wj+IK5zju4/IDz+n50q8HJfk4cwf3Gl9h+OvbUkbWyOgrl8rnrk9DjIP0sPOeQt2qA4FuzoY3Bn4kyx6Z3kMh42q3xaR61ciNbBWTYCbmdpErxQ==;20:STh/wPPJacvLFg30itmSqCIjlkvRCkDsAn/W85YVw3nGwBtJbG4it5wwtmmS9IFjfYowPFUNTX4AtQOD9Z0rWZt0SUlga7BNdyDzL1O8/Iw//7qzMS74geYK6VrXhJJKwFboLnzb/bj/hR+Mzm0m+QuMer7dgLLcQV/rORX9z5JSec8nGO0aXE9x+TPdEw4Ny2wD50thiPAYCe5RAxPsQCgL5OgI4TeQXnzebdrojI4COOibj1sfrQUy2j6IOrF3 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2017 08:31:01.6796 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1301 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 27.04.2017 um 18:17 schrieb Nikola Pajkovsky: > This is super simple elimination of else branch and I should > probably even use unlikely in > > if (ring->count_dw < count_dw) { > > However, amdgpu_ring_write() has similar if condition, but does not > return after DRM_ERROR and it looks suspicious. On error, we still > adding v to ring and keeping count_dw-- below zero. > > if (ring->count_dw <= 0) > DRM_ERROR("amdgpu: writing more dwords to the ring than expected!\n"); > ring->ring[ring->wptr++] = v; > ring->wptr &= ring->ptr_mask; > ring->count_dw--; > > I can obviously be totaly wrong. Hmm? That's just choosing the lesser evil. When we write more DW to the ring than expected it is possible (but not likely) that we override stuff on the ring buffer which is still executed by the command processor leading to a possible CP crash. But when we completely drop the write the commands in the ring buffer will certainly be invalid and so the CP will certainly crash sooner or later. Please add the unlikely() as well and then send out the patch with a signed-of-by line and I will be happy to push it into our upstream branch. Regards, Christian. > > --------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8< > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > index c1b913541739..c6f4f874ea68 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > @@ -1596,28 +1596,29 @@ static inline void amdgpu_ring_write_multiple(struct amdgpu_ring *ring, void *sr > > if (ring->count_dw < count_dw) { > DRM_ERROR("amdgpu: writing more dwords to the ring than expected!\n"); > - } else { > - occupied = ring->wptr & ring->ptr_mask; > - dst = (void *)&ring->ring[occupied]; > - chunk1 = ring->ptr_mask + 1 - occupied; > - chunk1 = (chunk1 >= count_dw) ? count_dw: chunk1; > - chunk2 = count_dw - chunk1; > - chunk1 <<= 2; > - chunk2 <<= 2; > - > - if (chunk1) > - memcpy(dst, src, chunk1); > - > - if (chunk2) { > - src += chunk1; > - dst = (void *)ring->ring; > - memcpy(dst, src, chunk2); > - } > - > - ring->wptr += count_dw; > - ring->wptr &= ring->ptr_mask; > - ring->count_dw -= count_dw; > + return; > } > + > + occupied = ring->wptr & ring->ptr_mask; > + dst = (void *)&ring->ring[occupied]; > + chunk1 = ring->ptr_mask + 1 - occupied; > + chunk1 = (chunk1 >= count_dw) ? count_dw: chunk1; > + chunk2 = count_dw - chunk1; > + chunk1 <<= 2; > + chunk2 <<= 2; > + > + if (chunk1) > + memcpy(dst, src, chunk1); > + > + if (chunk2) { > + src += chunk1; > + dst = (void *)ring->ring; > + memcpy(dst, src, chunk2); > + } > + > + ring->wptr += count_dw; > + ring->wptr &= ring->ptr_mask; > + ring->count_dw -= count_dw; > } > > static inline struct amdgpu_sdma_instance *