From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752150AbcEAPmy (ORCPT ); Sun, 1 May 2016 11:42:54 -0400 Received: from mail-bl2on0070.outbound.protection.outlook.com ([65.55.169.70]:42016 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751483AbcEAPmw (ORCPT ); Sun, 1 May 2016 11:42:52 -0400 X-Greylist: delayed 938 seconds by postgrey-1.27 at vger.kernel.org; Sun, 01 May 2016 11:42:52 EDT Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=amd.com; Subject: Re: [PATCH] drm/amdgpu: Replace rcu_assign_pointer() with RCU_INIT_POINTER() To: Muhammad Falak R Wani , David Airlie References: <1462042824-10851-1-git-send-email-falakreyaz@gmail.com> CC: Chunming Zhou , Alex Deucher , , From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <5726203E.7060308@amd.com> Date: Sun, 1 May 2016 17:26:54 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <1462042824-10851-1-git-send-email-falakreyaz@gmail.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [2a02:908:1250:ae81:d80b:f232:9dd5:8339] X-ClientProxiedBy: AM4PR02CA0002.eurprd02.prod.outlook.com (10.165.239.140) To BY2PR12MB0132.namprd12.prod.outlook.com (10.162.82.17) X-MS-Office365-Filtering-Correlation-Id: 0c50af90-9a99-49ab-aa10-08d371d510b5 X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0132;2:c3wtjns8uPBw42LLxxTKKWvrugXIbS4OvLkaquR53MytjRnIIEsTTOJmjDK4TsxP0v7ye2iuUYVGvOQaPVZDdZKDc/oHcsJkAihTVQcclY2u/7yWEAknPKZfFssjnYxjHyNHY6/Uc+2W9PclRrR83btlWWVDO2fKCHS8VzIWsVe6Fi0TrTDZ7xOeORA59Grc;3:TIs/GPGVA2vWVpR7T0bI2svrxGiwk/BXnKuorhbW5MD1ulmjHfbyveCw3ZdO3TV1dZiCttgiilEp+ED1dkV/PLL4WRQRF1BbA1psAlcdxCEXaoBId8xieAT2NMscMQ0B X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR12MB0132; X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0132;25:2XRt3OfXzz0xIbC6RjjbSx0rhP8zrX6nY/zqWHeHwZPYVXipdq02ECWtsJP2zmw7OjdP/nwIkkL6iAVStBGHDASEivhJ4Fo40a2OpwBF5ijcA1NzIXQGnCBiGnfdmLzsm175K46AJwhL9pWMBNknAja6Qi534lk7ras3eBcRBukX10VM85FZ66XpzWpYa0+eYhPWVY7V9XBRV2QwUQtvHQEsoRjUZvvAVi2IXKDpu74cNhV/j+SGuGdT0MVIaE90L0XDe20sGLmZGNU8m3lzTyN3hM4jDRs7/10DZF8MO5ADIQxyv9Bgagg3h1EgfKt79gh4Bs5TeAzXsP5Gb41p+/UdlYTES3CNJ89K1zrhSr42T+0+Sz2OquqJIlzxJf9XUlbZ0+Dn/S/FGszrRM5+OSJc5brezxT8ysQaVubjkEh9oarOWQjUKFK1peWNEKhNAmcY5V4heVFyMbYVK7nK8isDAznFsGWmZegN20MUfYrfqf2896lhboFYAOSc2/5zlPeWUTBnkr1Y/GhiIGmdw7kfpaGtLWmW46LFPw6FbtSd5wvwGhqtpiLFy+gpvy/dNWM3iV0W7G2wSR5Ne7gJm1wQTOVgSjFAFwXMNSb8ZvZFcm760mEj3v6JpSlqJ5l6BOUiLGF99DTY4fjcI2pYZtdr4xuljzQ5od2MIjmlE1JH2aOAwF514fsAM1CZcQyoNpvRPlmIUnqLjiW7JVoHKDAG1Gco/ER6hU6qe6La8vxPIttz6CUy3O1HWJ2JgV6iMP1QswxTPfdwMBFdt2Zu/oF2R7ZrXLGD+Sjk0DKs1XI= X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0132;20:dvFfGco9n31RbsUEsBO+x2eWVV5VKQUSPyOW5iEqdaP2i4JzUNROSeSsB8RlXokqyYhsp9Lixe1m8MpZVY1pk+Ba0QHwMpgYXCMaaOzYT+0rXAEbwMgmtbbuyHRlN/O1bA0XkOpNVROmeIDagsWgQnkrzB8p9Q5b2IRnFUvWQlQnbRpTPL/xm82+gRc0+bjKcJwFIoWbcYhrEkx0ZETikNsbNXhrjBbt9sLYFNpcitS1D1kquhlSSfmhbLoIyEd5QT1GJbtPLP2Wzu2kF/kQtv+sXBuenLbiO8WAlzz8xPiykUucK1DxCiMXOPVDbhmT2ldzLQwiUQTS/BEFWQOx7v3NdVINqeLDeD3RFQXKn9O0SGKjQxchQgBv4/OuqMxJGshtleMQGdv0kaA801z73DJx4jwFwVgOtIe3FxdETR73RKBp6+Nyi5nXzHNzRMlMDX3wj2OJL+J5RjQOlWQNZR1ICP391rR+BTidtvJGQwG5oDiWbcVl98wtrVQ4YAHu;4:v6Lv+I8jbEDep2pXcw1agEGTEbZoFz5v1M6MuHOjMrXd18Coq50cQlbsi81fZX+BfEKruHkQu9r+dzfPA9+n4GS8wZOTiRsyqy5WK0heWg0vWTuFa2xUkoeSUbYumUcBRm2oAZStI7SaYURQrN1MGKA4VA9S/C1AmKuEPODNqcvvxiNRCGYoLdomJ6iJxoKZxMfn/PhDaMRoOr7rphvmVgdR6MMEj7NfpkR6ZYHkNYw9LFb76EesVy5cM1YA2OXY3ZIt7oFdY2/xxs0OCZislQZh7ZeEQzh5q1mkadNQt/+wddgw1wgQwZSMhOWHCBXArTqeHFMhRd1isTeqUhmkjVAZq50F8jC4THPfK3S3/Jo0V+AQdLcFF3gbCMUupFkaKXlbH8DBRqzeEwVqSutIRjfXG1xQAHHA21ERJqoEVL0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(9101521072)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026);SRVR:BY2PR12MB0132;BCL:0;PCL:0;RULEID:;SRVR:BY2PR12MB0132; X-Forefront-PRVS: 0929F1BAED X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(51914003)(19580405001)(50466002)(2870700001)(86362001)(19580395003)(83506001)(81166005)(64126003)(42186005)(92566002)(5008740100001)(189998001)(2906002)(36756003)(50986999)(47776003)(65816999)(65806001)(65956001)(87266999)(76176999)(6116002)(33656002)(586003)(5004730100002)(99136001)(4001350100001)(1096002)(54356999)(23676002)(2950100001)(4326007)(5001770100001)(77096005)(3826002);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR12MB0132;H:[IPv6:2a02:908:1250:ae81:d80b:f232:9dd5:8339];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJQUjEyTUIwMTMyOzIzOjloTkp5d1lTVldORUdkVEhwL1ltVTFXUkZO?= =?utf-8?B?TjNrRWNRV0hieExqS2svMU4rU2E2dVZNWkNxajVLMlJ0QkgrbWV4aDFZVG9s?= =?utf-8?B?TXVYamthRjFWYnZ3d0Q2QnRub3ErRGY2cG9vVWVDQW56L2s4eHFaNlE1NUgz?= =?utf-8?B?MjBDaTNzSEJNdVZ1V094aVFzbEszVUU4UldZa1p6amRiSnFtSlYzZnNlK0dj?= =?utf-8?B?cHZ3SUY0ZHZpM1RvajcyVEhlMDc4Z3QxSld5WExXTktjTDg3U21PM245REtQ?= =?utf-8?B?aHJoajdvY2VjQ096b1FoYmlmTFd3eDUzWTVxdFBnN0pxNnJJcWJSVThvVklw?= =?utf-8?B?KzdGT25sczlCVnpaM3VEVVFxSVVvM3N0bkMrVXBkQ1lDZHEyb2d6UytuOG1r?= =?utf-8?B?R0o1b0pOS3ZjZm9vTDFCZERrNWlwZE9ldVpSVXJpaGpnUW1VT3BZZjlZYVlp?= =?utf-8?B?UStVOWU2YW1hSHhiaG8yRmxnWC90WHBaSmFmSStYekFWYlFRNzBjSzJNNHF4?= =?utf-8?B?aGNhQVovN0lDbHZwdnhQSUhybDdHZkpiUzFmRHVHaWllTDhNTFBQNEI4YzFj?= =?utf-8?B?RE5mYUtxaVRFcWl0QkhqcHRNaWp5Y2xCVDNGck5pWUZmU1B2Rzl2bHgwTXZT?= =?utf-8?B?emN6YU5nbndPRWZOOFdhWSsrcThqYWcvbUtRTmFkc1hZVjltT3Yvdm9aQ0pu?= =?utf-8?B?UkdGQ3dTeW1sS2dRbHhtQVlVNi82TVRrTklDaXhsa2NDZ2M2WExkY3FrSURT?= =?utf-8?B?c1FXdnRRdHZJNVpPM1VRaWNhNnJIUTZiME9DMlVZRVFTd01BN0tIY2RaM3Qw?= =?utf-8?B?cWdQYnlYVElZYVhrMlRLSGN2QlBuMzFyeDAvQnFHdFJpMzlFaWZ1R2Fma2kr?= =?utf-8?B?ZDRpYjBudlh1Q0hPWVR5bUVTM1JleUtGVzllbjA4ZTZIMlpSMDJoMzJncS83?= =?utf-8?B?K3F1amRzQVpvRlp5N0h4TGNqL2dKd01KNUFLRU05UmpySHU5ZTdqaFdOb0k1?= =?utf-8?B?UVZIZ3ZKY1BMeTJIdmRGa1dmK1dETHRkUlU4akhvMHlCc1VtamxVRTB5VitR?= =?utf-8?B?UWQvTmhkMWFyK2pqcDIxREVUT0V6cGNkMjFHOUhyRVNYQlc2clVuVWhSTTRy?= =?utf-8?B?bkpBNk0rWkhLcHR5ZUFXQTB0VzFRYkVHdS80Ni8vemhhdGMwRGlTV1pwT3Rs?= =?utf-8?B?ZndjQkUzVm5LeWVHMmtXTEEzc3cwTTNTZmtRdktWQVhTczVSVHcvQnZ6cXVY?= =?utf-8?B?SEJBMTVTeFFmWWxmbzdoTWhML3p6dVBaT2djUklLTXRiY1pXSm1ianNXTGZB?= =?utf-8?B?NHYwZm9wUW9EelNGajFSb202bjA1LzIrNkMvVUtiZ2hYMmhiT0VhVmt3emRZ?= =?utf-8?B?aXZRWG9QMjNWTWNOZEl4Q1A2WmxaSGtMYS8xTTV3PT0=?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0132;5:ncDGuF4usIircQ3FqMVdxaitMz1txBCIkEl0BH/n7QmFQRJP+JNhJsMrp+98jQ6FYaTv4yfN6b6kVQCMmTGY0Jx9gVtVZP/dReKNR8ABHIizmwxmDHTEjKbWyfcLA9HSuJ1gYBH3Dr0if8bTSl17jA==;24:k3n/qhX2E+Wl5SYY2/AkVu4PbPKk8zOL3YnmLkqGA6mMEwnOC+ISGmskEMn//KmU1qH1Zx6usU3xfnBwlhvpvdM51P1XZlWq9MsgKeOASe0=;7:j0bjpn9MerEPXkX1L70ZlFmFUB+iQucHEf72htQK6mZg2c+zk7hcj9Xe3R3vBsjzNXQD4dR6135iUlobkRZ1058M+EyEXAA+fbKrOfRWPxa+yUFLgOX9gG01jTljQrhr0aXTF+DkDeGDjeYePYjcEcR4szqP8vtebw8fFBqHRZA=;20:Drd03i5YAjcJTMfKgRD4knarXFDfKVyCa6Wndxa1Jw+caClEAPRBT2b0KJ81CZ7eeMuId8iLphP2Q+8MOv6MzwT/ATrHaXBuA4FqoLFElIj/LsM9ciXuz88AQt2VauQQ9V5uK9KIr7X8aVrMUHKDUnStVSzJEmZjj/4muANZS/ebM87tFWe9pnxKZG7w7uOBOlL4n1ev6PMqGXQ4pt+t16Iku0DzCDe+bvdNG99OzBySIrovaBIt9Nh6ru6scm8P X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2016 15:27:09.5591 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR12MB0132 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 30.04.2016 um 21:00 schrieb Muhammad Falak R Wani: > The rcu_assign_pointer() ensures that the initialization of a structure > is carried out before storing a pointer to that structre. It is always > safe to use RCU_INIT_POINTER() to NULL a pointer, instead of > rcu_assign_pointer(). > This results in slightly smaller/faster code. Thanks for the detailed explanation, I was already wondering what the difference is between the two. > > The following semantic patch was used: > > > @@ > @@ > > - rcu_assign_pointer > + RCU_INIT_POINTER > (..., NULL) > > > > Signed-off-by: Muhammad Falak R Wani Reviewed-by: Christian König Regards, Christian. > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > index d81f1f4..4500ff1 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > @@ -198,7 +198,7 @@ void amdgpu_fence_process(struct amdgpu_ring *ring) > > /* There is always exactly one thread signaling this fence slot */ > fence = rcu_dereference_protected(*ptr, 1); > - rcu_assign_pointer(*ptr, NULL); > + RCU_INIT_POINTER(*ptr, NULL); > > BUG_ON(!fence); >