From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753496AbdK0TXV (ORCPT ); Mon, 27 Nov 2017 14:23:21 -0500 Received: from mail-co1nam03on0072.outbound.protection.outlook.com ([104.47.40.72]:30944 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751537AbdK0TXT (ORCPT ); Mon, 27 Nov 2017 14:23:19 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Harry.Wentland@amd.com; Subject: Re: [PATCH] drm/amd/display: Fix potential NULL pointer dereferences in amdgpu_dm_atomic_commit_tail To: "Gustavo A. R. Silva" , Alex Deucher , =?UTF-8?Q?Christian_K=c3=b6nig?= , David Airlie Cc: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org References: <20171127145700.GA18395@embeddedor.com> From: Harry Wentland Message-ID: <3ff97f37-946a-a795-e57c-6d835e93be21@amd.com> Date: Mon, 27 Nov 2017 14:23:12 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171127145700.GA18395@embeddedor.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.55.250] X-ClientProxiedBy: BN4PR12CA0020.namprd12.prod.outlook.com (10.164.241.30) To MWHPR1201MB2478.namprd12.prod.outlook.com (10.172.95.136) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ec316b21-8d16-478d-697d-08d535cc501b X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603199);SRVR:MWHPR1201MB2478; X-Microsoft-Exchange-Diagnostics: 1;MWHPR1201MB2478;3:RbUX7S7cI57ynIZ7tVbuJUmPA4iRjGVElcRyqMJpgrLgTqkXK2E4TW3k8Nfl1z0fy6WFNfvno5hFoT1A75TbUNpjAGiQLsm32r43eszHCGs6cUkGNk380WvzX5zaNLxV/ayZc8QR8nnu4OiSbZX7xl3EoxGjDjQTJelsmRr7rFrFn64PBTRMVJiqIGuIeDQLjEFNexADMFm622rPD4f/2vIZGqiXVHisQg9SHse+sSyLk3bhJXnPPP/pzLmZhG3y;25:0Ms7hW4jMiLdIlTM37xTMfImeE3oWhuvqb4VbhhAArxITSKBpR+smKbA7VLde/1D1VplbEs4kzeRv/zFZ4DKmh/MWUGPJala7BHWvlOdVI5mrNsMVTAozQd8rNknBL6Rb85+6qHxE6LT/+Djn5+7oZtAIb/YmN8090r0nLm+wn5gq7IumsVDOjhMR2VYRyD2+pt/p3JW+N1l3cBrLYsY5sxU+nGjBvzcSghjoyzFYp837uSU0PZ0wodvythU7zImVdobLTeycrasBqeUdHSkVZ0iSrXsjNntwTxe06nQXSn5FyEBDhvpfXeXK2v443fNzoIIwEiF/3qH+YITWhV16g==;31:PhXMbm+Del1zXPWrj2yBnLlcI9hCbhJZfpD8PKl3QuFZMBDGUYQS5Xr1hKb7nv0vYJ9+gXK0KasRmrSuFVTkHDKBypXL4Sqb3TAXiAFYaCJPmpWknfBUD6YRUvi3JPoKpETk0w6LuzLAXiHRnq3juwKkRCKFfQPdgvcPKT+5hGGDAmiVvtO8cq3EEmBayix8Acn4cMU9cHqCx1/kWBsns95i1dsKtA/Oz6vjcHSYnNI= X-MS-TrafficTypeDiagnostic: MWHPR1201MB2478: X-Microsoft-Exchange-Diagnostics: 1;MWHPR1201MB2478;20:Ur0j1S7W5J1MBxssBXLoQH94hfgfAtTPT1spkLhMdFyqhjlvvudjyR2pFr9Dx5hBB81GTARAzBC0SPN+74qewYzCGbpR9vCTNNVXzZ4NXvQfxJ+inba6h2GlbSV17oeuzv3+rMfm8VFj7XIvmRn7gexWVjRhRthffPPSRJrX2BCnNNTdt57i9J8tFsqz9AHur/hAet/Ol30W66LhJaNag7DFfNOuvR2V475gXh8tPpWmLakcDPEbOWBdhI2aLiL7rsy+UpuUwM/8Gxh9Vb0qKR7vXzVAHSEC0wip8jP92/rX7kIAf3H3z7YZlW1YZvi4tWlXRsLgwRBAJ8NPQKKCUKBKNWZiXExwCitF8dp5J6UAGbiwXkDbgclhkxe7tocYOElhmu8wA9N0UP/BINCixeJsLK375iraGHx5TW83cfdl9ryvaab4GEFpPW4h2UFzPrvFHtd83UWr40Yx3jjXgMZaMX8HFoF97KyKIv6ojp9F6DacWfzh1wYu+N/gHXAh;4:yDKS/H7ibjkpA0a2K2KC024JCNeb2wF1HlF16HSVS/tju2qK58pnnLFM8zDJhtUubivDN1NowUKiEEMedaedGn9duY4xFDo/A1X5JEUf6oG7JzvkH2FwW3EXYdXmL8c+7PLF3XwTwKBa68G0zygDZ5Mtv5seC/WRC6iZerac62aFNjKPwxe7u70a1J0R0GDjOx+jnbCOpuZxNeGh7Z6n7qMi1YyI+Q59jeXS8iT2ovvMQLlV4+KBl+0ooHnbysvHd2YajJ2MWfAkVVzOsxejiyI1QG2bWFYbfSTVI2+1XqVNNpSG2M0AnemerB59+7FKIUEvod+gJ22g5T1oqETg0A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(217544274631240); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(2401047)(8121501046)(5005006)(3231022)(10201501046)(3002001)(93006095)(93001095)(6055026)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(6072148)(201708071742011);SRVR:MWHPR1201MB2478;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:MWHPR1201MB2478; X-Forefront-PRVS: 0504F29D72 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(6049001)(39860400002)(366004)(376002)(346002)(199003)(377424004)(189002)(24454002)(50466002)(31686004)(16526018)(478600001)(58126008)(64126003)(68736007)(189998001)(316002)(65826007)(25786009)(16576012)(5660300001)(966005)(6666003)(2950100002)(76176999)(305945005)(7736002)(53936002)(50986999)(230700001)(54356999)(81166006)(72206003)(31696002)(97736004)(6246003)(36756003)(110136005)(53546010)(4001150100001)(33646002)(6116002)(81156014)(3846002)(86362001)(8936002)(23676004)(52146003)(83506002)(2486003)(77096006)(52116002)(6306002)(2906002)(66066001)(65806001)(65956001)(101416001)(8676002)(47776003)(4326008)(6486002)(105586002)(90366009)(106356001)(229853002);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR1201MB2478;H:[172.29.156.71];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyMDFNQjI0Nzg7MjM6b2FqTmNtMS9JTUVzbkRhUFBQT25iKytr?= =?utf-8?B?RzFTa0dZQzcxT3gybzBseVhoaWs3VVJlNHlMb3JCNzhjZFZhckJqSlIzMHpP?= =?utf-8?B?S3lrRzVubXV4cng3OGduMVRZcXN5OWI1THljR3U2aldsTmxXVVMwTyt1WG43?= =?utf-8?B?VnBkMXliUHlHVURuY3hFdEtpbDY5eTBLQlplRk9XTVQxWXRxWFlRNU93Q0Ey?= =?utf-8?B?U2gyZU8yeEM0U3VLYWpOL0l5UGJySlNabGE0T0NoVUgwYXFwOWdSR2xFb2s4?= =?utf-8?B?L1FMODVlamJjdnMyRnRYOGxkZ3M5N0gyVXl0ZDZZcThjbldPNVJCL05TanBs?= =?utf-8?B?dTQ1ek1QUHR1MmM0ZVlNM0J2NElRL3JDc3FaWjI5N0hlVWN1cWJQd2pxUm1E?= =?utf-8?B?VVdWejZJMGZ2QWN5Zmh2ZEd1anhxelFiS09uNWJScG90cmo4a3A2ekwvc0NJ?= =?utf-8?B?eEF4VXFycWRPL3lWMm1vOWgrVG9nbUJxeE5IdFYydjIrVWc4enIvL3NEMC9O?= =?utf-8?B?RmhyZnorbEVqVXlZdzc4QjNQUTI3NzRNaVJNZHBpUFd4REVZaW1XUDdiM2FL?= =?utf-8?B?NW44WkZBeTNkZS9rUUxBcjg5MUNGTzlGMjBKYzFVdTBRQSszRHZIbzF6T043?= =?utf-8?B?aU5sY0FvZlhpdGhKY3ZTUjVIM0p4dFpCcW5VK09sbzNOa0pjYVRYVWVWMDVh?= =?utf-8?B?Y2tHV0JMZ29PNWhOTGlhNDBUb1FCVnZsSUIzaHBmUEI5SGhrT1pBRzFLSGlv?= =?utf-8?B?QWVVTDFRUDNqYzQ4SUg5c3FyM1lrc3VwOWszaCtZUVQ5RFdPS2ZOZVBuVThC?= =?utf-8?B?dFBnMDFPSiswKzM5V1FiZVo5dWpJVWNXcHNabVl0akVnaFlOc3Nad3VGQ0pS?= =?utf-8?B?YVZXUllib3dJR2dkUUlMMER0UDlZUEpkc003TmE3MXdXNjFNNytkdThQalEw?= =?utf-8?B?cGxCL2tGM0d5SmpiRGM4RERzRWo0T1BxWHd0OU9haHE0OU9qaFdudkljZVV6?= =?utf-8?B?dGNWdFBQS2drNDEvbnhJdWV6c2g0YW1ZS0M0Z1JmYi9USEU5NHNacmtraHNk?= =?utf-8?B?RFVqdGExeUFwd0ZIci9uZTI2YUY4SWRxZVdyRnA2NHVEQUhXSWk3SHFqM3Fn?= =?utf-8?B?RkRGdUUzbzR4WS90clFFMkhHb2Q2NjdwNXJVVkNaZ1QyL0pjZUk1OHdPMHRE?= =?utf-8?B?RnA0dHNGSkpBU0o5dktIRVNodm5EVmJyQ2E2bEdIeC9NMGJHb04wSitzeGo2?= =?utf-8?B?MmtRa3pGUEZhdDBOU1d4Y1JIbkhxM3FsWmtEMUdaT2gvb2RtWVk5Tk8wMzFZ?= =?utf-8?B?NVZUR1UzMGZTdzNBV0doZEpQWGlJeW5ra0t4TTlXZGt2dzdIQmw5T0xZSEJi?= =?utf-8?B?OS9zTjJLMUZ0eEk3M3gvYjVacE5hNXpoWEdRYnBYbFFFR1dpUEphY3pzU1FT?= =?utf-8?B?amFya3RkRXBqZElSWUo5OEtrZEExNE82SHAzR0VoWjlZZlNlcXpSZGU1bjJJ?= =?utf-8?B?eElGd1VqcHM1bFVQSC95VGVhWG1JSTJRTEE4UVFPdWpuNkJzbHBXSVQ3OTdh?= =?utf-8?B?bi84Q3pkdGFSa1R6KzR1c05OQ0pLZGNjNUp1MUpmTUt0MVNSWjJDbUROSlgw?= =?utf-8?B?Y1lpbVczQ1F2VWVoRlo1Tk8vb1ZqRDJTbSsxMFhFLzZNL295UWc4L3lRVWFW?= =?utf-8?B?T1pwSzREckwvbjRqb2dYdzB6eHBqRFZGZTZXRWZFalZzeGh2WU1TMnJwaW8w?= =?utf-8?B?UlhwQ2ZScGY3cmg1ZTIzY1IrMmFVOFkycUdEdGM5RXMvbVVVTENVZkhxTTVq?= =?utf-8?B?QURNNUFINDFqbkI4ZkxHT2FHOUVOaW1iejMzYXNIUnpyNy9qa3lLVTdERzdD?= =?utf-8?B?RllWU2JZS3pMTUYvMmxybnBJQ0Jqdk5INW5qc3E5MnJTUGpSMXpoQUtvTGI0?= =?utf-8?B?TGtyMlNSTXdwOXlCY2FVcmd1OUFRQUJ4cDd4d00yUXh4bzd3VVFIY3E0V0gw?= =?utf-8?B?c0RVdE5STi8zUkRJSDhOVU55WWVqYWtOdzRvdXlseDhzT0pxeDQ3eU5mWHA5?= =?utf-8?B?dUNrUC9HMDFsUVVCSm0xYW1xSGZ0cldXd2dUQ0J6RWNqT0ZFVjBEeXB4NlZm?= =?utf-8?B?WUJYQT09?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR1201MB2478;6:nYEPzxI0GI/kpofZVEbDWp+syq3qRuh+LlmUxM8gGQPpP94gpWnLv5E500f1o8lrjd82rWW+wXMjDJdTqPXFbw39/oobJ+WKY6Vc3f2JQ5zYPv6tHeJh0ACuUTow/KcqpbVr0n4s/9ZZWNIRy+LqjNKBoxpwwChGA6QVPjhqFcFec2HKE/rF1+VP8MSJyO/sWJ2tiaQk5XGKIXO8NBuJvyACV10Bl+RQJ5N3uw1tHYimr5QM3G7JKOyGkGcfs/iKxBhaps1f9u6xEGfsPWj8XyU0twu3NU6XY0p+WYW0gt9uZoSOjwGbxQqgAcrxXIPHlhI09GqDgW1LqufVMoJIw1oikYJehpSUDLV0RKWGmig=;5:4npz71lT1qTnECrpU7qUNRQhImbbLbZxcox3mYltKH9tlJuB5Tul8s7xYvcIz81A7kI+HKR+nBJZiqYdVCqjmzYjJn8oO2fGrx/qe/zI/WeDBWZqumtwDfrskB4TU6iL1ewwT/EHxVs36xSjiZaYEuZKCqFGdJmVZ+akdPEmgW8=;24:1J/LE/oNjXH9pHMXQDTgGN44mPf4gGzGyZRH2bTcDCVzCtESL5HfNvL80uIMtO865dkDkEnxnDjM3eA6HgWg1a9MkT7DS5V7gexmTyPJp7I=;7:UFILaJ7GuCHhopkCFqw0lxGJXT3i1LzRbnDZnpTqgJa7e+xTm7O8ojvOtuxCQxC32f3EfM7MABXOSCSHh/xpHRK6meBq0t9UV2KKIgfvmhbSLVBwf/Nek3N79EFDQ7liIHiw6TCyzmrdJ4itDjVU8qM3Qpyc1jTp+hnMF9PcjXI35HDjkXcmQfH6Avz5UdwsmredM/4XBsHdfi7obt2wcONAECL4Y4JjlewCCjzEKxcwMo9JYAbWhV0aSQRT2LyL SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR1201MB2478;20:2VZBim9h0mZGMq8KEyFyu59KxeV78j7elUC55iuhtv8SUh0e4iTsFHGxxaOzgMLW7lUnJszCZrVePAhXly0qCImdruuIUd4+eRUHlo0MN1lI1z6Xwk+/dmn/vQMvWR+e7y7rliiulV4ZlKuagvcHlIII32VIgp5acE1jfAKEXGeicn/AXo9kww01T1xUJ16IRCBdyxf7hJidU3j9WOvbKRA5bIyBbY91EZilES9thiNlGFYTFzn4qpl8Aap2HqLf X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2017 19:23:16.4804 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ec316b21-8d16-478d-697d-08d535cc501b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1201MB2478 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2017-11-27 09:57 AM, Gustavo A. R. Silva wrote: > dm_new_crtc_state->stream and disconnected_acrtc are being dereferenced > before they are null checked, hence there is a potential null pointer > dereference. > > Fix this by null checking such pointers before they are dereferenced. > > Addresses-Coverity-ID: 1423745 ("Dereference before null check") > Addresses-Coverity-ID: 1423833 ("Dereference before null check") > Fixes: e7b07ceef2a6 ("drm/amd/display: Merge amdgpu_dm_types and amdgpu_dm") > Fixes: 54d765752467 ("drm/amd/display: Unify amdgpu_dm state variable namings.") > Signed-off-by: Gustavo A. R. Silva > --- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index 889ed24..3bdd137 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -4190,6 +4190,9 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state) > > dm_new_crtc_state = to_dm_crtc_state(new_crtc_state); > > + if (!dm_new_crtc_state->stream) > + continue; > + > update_stream_scaling_settings(&dm_new_con_state->base.crtc->mode, > dm_new_con_state, (struct dc_stream_state *)dm_new_crtc_state->stream); > > @@ -4197,9 +4200,6 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state) > WARN_ON(!status); > WARN_ON(!status->plane_count); > > - if (!dm_new_crtc_state->stream) > - continue; > - > /*TODO How it works with MPO ?*/ > if (!dc_commit_planes_to_stream( > dm->dc, > @@ -4332,9 +4332,11 @@ void dm_restore_drm_connector_state(struct drm_device *dev, > return; > > disconnected_acrtc = to_amdgpu_crtc(connector->encoder->crtc); > - acrtc_state = to_dm_crtc_state(disconnected_acrtc->base.state); > + if (!disconnected_acrtc) > + return; > > - if (!disconnected_acrtc || !acrtc_state->stream) > + acrtc_state = to_dm_crtc_state(disconnected_acrtc->base.state); > + if (!acrtc_state->stream) > return; This part is already in https://lists.freedesktop.org/archives/amd-gfx/2017-November/016389.html on its way to be merged. The rest of the patch is Reviewed-by: Harry Wentland Harry > > /* >