From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751538AbdKVERk (ORCPT ); Tue, 21 Nov 2017 23:17:40 -0500 Received: from mail-dm3nam03on0059.outbound.protection.outlook.com ([104.47.41.59]:28175 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751409AbdKVERg (ORCPT ); Tue, 21 Nov 2017 23:17:36 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Vijendar.Mukunda@amd.com; Subject: Re: [PATCH] ASoC: amd: Add error checking to probe function To: "Deucher, Alexander" , "Agrawal, Akshu" , "'Guenter Roeck'" , Liam Girdwood Cc: Mark Brown , Jaroslav Kysela , Takashi Iwai , "alsa-devel@alsa-project.org" , "linux-kernel@vger.kernel.org" , Dominik Behr , Daniel Kurtz References: <1511238476-10314-1-git-send-email-linux@roeck-us.net> From: "Mukunda,Vijendar" Message-ID: <832412fe-41bd-c68a-1b43-37b6d3c3eb48@amd.com> Date: Wed, 22 Nov 2017 15:22:43 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Originating-IP: [125.21.194.1] X-ClientProxiedBy: MAXPR0101CA0027.INDPRD01.PROD.OUTLOOK.COM (10.174.62.141) To CY4PR12MB1671.namprd12.prod.outlook.com (10.172.72.143) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5dc9a000-89ec-4e6e-7988-08d5315ff4d3 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603199);SRVR:CY4PR12MB1671; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1671;3:YMXjEWGJFkx3RYtzhUcYi0eNPwRLyPL3JDsvlxzhS6lEEGDa6fVSkgfyWoECfJd9xCarvN4xk8ADqPpvWf0klyeS6VE6nIqFUapGOjc0ID4FFUFrX6gVIWmF3MPmeDk3a2DO7q9lhkyqYRsWg3Lj3rLbZrF9wUM2rTNXCvcw2/wytsUEeeKWvj+9nvEOMa5MVMykvZ0T9CgXeMFrEtH94G6FBu6Z8N8cXI6Xkdf2PBqKIplgyAMdtXbHb+n5hJGh;25:y9ns0VhW4beePPl0RB/a99hwTe2J7vKRSGPzJmu2Br/9YwMeGyimOmIMfhyu+T0Jm/5clmIb6N2JnKf27TAGi792ISbN4udwFdZitCQW1hR1Y25yzhr7uIRLA/GUKLBlIqSSPLBk3CQkUzl3mHGXd/Xi5seUJX6kJP7wCo/s+uFLi4L074RTfagdsBM7r0wT1qzT8QVrArhmiX6x45UfWthYp7k3YPk73TZlUcPlAuS4k8S70RRg9R29xvYE8O+zciNJ9MM9xzZlbos5OAKugw1TPcza9wBNL7BTpqVISaLBcgNGIGFNGS83wL0wnkqBz3jbuj2ROuKasCikmbf5pw==;31:DthSiXis8tZovqEGZQ9Z01fdHdikKnc5UJFCi2uhOwJOT5Xz/Qcl+aFWTk7EzWyM7Btr7dDxuzqVpfeowx544/BkZqAcXlIygw+FuLiOD0CBqvyScPXBlW0Lnk7BhurdiajwzsrKpAVYcDFwHJRILB1JxK12fa2zClr2p5ofWX1lD3vWGFE8jxiHOdJOSDLoH0ufkkPNoBmkq2AFEtQrtLG7zDU3dSOaVc6Uj7v5ses= X-MS-TrafficTypeDiagnostic: CY4PR12MB1671: X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1671;20:txKoXvFDJUkHWxVb5YaBSgzG9QWIIvBj1D66XY+I1UxzfXqjFeAyn8dPoPUQew9D7eQhy3AvPjmOgWgChQyYk9IhkaCeGyJVHhgK8zPhwZmhhwwkYO49Pb+roqKRhJd5zJtQwa06zom1fyfk6Z2qKyTbQxrnsd52nrJEC1Z/XqS9YlKNeZaKItJ83N5G/nf/sCnLAPUkGcQAegLAOmKpautX+aM02vdiQbkJhxu1aUl34110VvMS4OdU77hShkTW9SuzuswGMbQCIgGY8A9UP7weCe13+HVLGcQpAI8q6yVal+4Xdze08iyjblTmS0G/izWKzWRY00+rZl/3IVdSO9bVFBGv/QTeuUD5ZhakACBHgCx89Flx6pUQafYdyS0xxRKK9y5RsTnOuLlg3Onh/Ztln1sXoL0hHfPdnVOUculXzx5Qv+ZbaAUrCVhc3XAQmk8MrcXxEvSC+uLcLs2xN5h8tdcGoEYwBN/e0mcth2fVRowjdn72HLgY3MDGq4e2;4:17jK8WOocmtGOAsWbHUFwxNDDdlT+nt7scJLytt8Nr4ZRgLChEprPFaAcQYTG6xbKFqATiT9mAMTaAwC3UNKXkN7o6zvIqUdkdkSA5PXyEcYiI0960TZaTQdfi1/gfjuGURA1ONzSkkY61EYe2v4cyIRX5Pmq6jnXEjCLRGb4TzAc7HpwzNuhjATUaVKbo7YcmvkDEBDeTwDyxp4TcLpkmTV3nTzGVYpsmjuXaLLLKQP3fPBNUZTNNes7+ZB1AtNNGMQsAMRMDrFFi8iZioK2tavQRx6JTHfPXFZr/NOFv31W9+ITX72c3vgKwwUq8N8tpSytqxTQpnv4jDZ3A1Org== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(3231022)(93006095)(93001095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123558100)(20161123564025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY4PR12MB1671;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY4PR12MB1671; X-Forefront-PRVS: 0499DAF22A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(6049001)(39860400002)(376002)(346002)(189002)(199003)(13464003)(24454002)(50466002)(39060400002)(316002)(54906003)(31686004)(4326008)(53546010)(97736004)(36756003)(6486002)(189998001)(58126008)(3846002)(81166006)(2950100002)(81156014)(230700001)(5660300001)(305945005)(93886005)(8676002)(52146003)(65826007)(8936002)(23676004)(16576012)(67846002)(64126003)(65806001)(83506002)(478600001)(90366009)(76176999)(110136005)(229853002)(6666003)(106356001)(53936002)(101416001)(50986999)(33646002)(105586002)(25786009)(66066001)(7736002)(77096006)(6246003)(72206003)(31696002)(16526018)(68736007)(2906002)(65956001)(6116002)(86362001)(47776003)(54356999)(2486003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1671;H:[10.129.12.246];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxNjcxOzIzOmpadjA1SHBFTHZvN2hTTWF2UlBEVXMyb0NL?= =?utf-8?B?bmZQK20yRW53aWVIeGdxOStjZDhVdW8xRmsxWFNSdXhPMWpobTdBNmlkZTJh?= =?utf-8?B?clhXRTVKL0tOb1lyOGRDYnBLdWZtWmhEVmcrRC9hdGxBa1NYaS96WHc4UlA1?= =?utf-8?B?Z1I2OXJaZ0ZjM0E1alg0d0FnRmdSUFZXM2tMcWVuVi93OUJDam9XZzdHTHFW?= =?utf-8?B?U2xRc2xGZTJNRm5QZlY5V3RWb2xzZ3BJeGhudVRqeUdFak5GZW43WU8wWTBU?= =?utf-8?B?c3dzMTJ4eERKN1JPWlk0eWFablhQeWJPblA5ckorYUw5MFVDUWVUczFWdUY3?= =?utf-8?B?V09BMUN2cHpuLytPMHA5dzFHTzN0bFpua2lxK3lIcUJZYnE3SnpEVExDMVZ5?= =?utf-8?B?ZW4rUHBvNkpzNkpJaUJ2L0JwSFNaQWZYc25GQytJeTdOTWVLWGYwalBOc0Jz?= =?utf-8?B?R3dHb0dyVFVmQWsxMjZiQnU5ai9yTTU2ckQ4YmI2QzNReDh6cnhtaUJKTWdN?= =?utf-8?B?aHMyR2NFZllsd0o1MlRjbmVuUXdRV1c1S2RKLzVZZWFRcHFtbXg1Y1NNK3Uy?= =?utf-8?B?b0VvNTc5dG9YaXFPd1Fxd3orYTFqeHNVMGt5S2l0b0FuWDcySHVaV2N2enda?= =?utf-8?B?S1lseFZJS2l3aW0wajF2eEllZzFwTlZ1aTNRRnZlRHROaGp3Kzd3bGFHWDNj?= =?utf-8?B?ZUlQeE5Oa0ZreFJiS0V2T2ZxUXhPcGVWNDlOZi9HTFBTVUtHQTBaeSswL2NC?= =?utf-8?B?NkFscmJuU0thc1lxZ3g2Wk52eDRsVGFGeUNMWVNlb0c2cVhOOXpBOGJ4QzVx?= =?utf-8?B?dytRb3R5SGFqM0diYUVWWFJCK1ZUb1RDMFFTVkhVNW0ybnJ3dmpGSzh3bm4y?= =?utf-8?B?djE5NkZweis2d0JubWhuUklTSnJpZGJISC82d1lGRlBEZ2xGdE5IR3RLTmJq?= =?utf-8?B?OW5SVGhTYnhTWHZOYnJOZjhtMUFablM2NnE1OHg4QnRiUVRFSGtmc0wzRFM0?= =?utf-8?B?V05SYUpEYW4zdGdXdnpSTWRjMGpYbklhQ3l2VSs5VnN4VDdBT0tnYlp6SDU0?= =?utf-8?B?cVZzVmMxb1pEMU1sTDRCZGRlaGNadXVlWGVpTysva3I4Z1ZZOER2TlFGRXA2?= =?utf-8?B?anlWL3ZBQjFQNnpIRXhnc2JCb1ZPUTdTaFIvRTB4eExZcHBabjVFME5rTktq?= =?utf-8?B?aWxYbDVpNlBBNXZ3cHlIaXdCU2ZxRXdSZlJUcjJESVZ1eGs0Q3MrVis1UFp4?= =?utf-8?B?Y3BhQ0FRS0hScFpjcGZ4eHJSYU9EYW1KMXJsaGJBenRUQzdISDdDSVA1VVFK?= =?utf-8?B?WEg2aWJENkgyVlh6VEJITm1zUFYzRkRKK1VyaXFZbWx0MjJLWDdpaGcvOU5K?= =?utf-8?B?OVpjYkFYTkJqckRNQnhxbHhmdXZQclhZNkNoQVI1a1NBRDd5cEJaUmp2OEEx?= =?utf-8?B?YWgrMUhFTVRwSS9TQ1FkQ0FSeGlvSUtuOW5EMHpROE9NVGZka1JObmdUUzl6?= =?utf-8?B?d3U5d1lYSWV1SkUxN2l1Rm5DSmVTeU5IRzlwRUhTeWtKMFZ6NFJQVUUxMXZz?= =?utf-8?B?eUxCd2ZZelV2UHRNaGpzUTBRMjRHMnVURWdmdUxUWkFydjcxMEdhZzZTTUV6?= =?utf-8?B?WVVJVHlXbkpwQTRBNDIvUk5TUDdSdzZHSjVub0NQeGxSalJRUWIxM3BvZldD?= =?utf-8?B?dzhIT21lQVlFcjVWVmFPUUE2RDd3UnBYcTRlcGpGUllkTnBPTkROMjRNQzJa?= =?utf-8?B?QldCT1EveCsyTWlEbmhBVWJBeWdDYXF6NlkwREFTZnNYRFRFQnRXZVFtR015?= =?utf-8?B?SE9Ed1NTa1BqME15YkhnTmQwSWw2RUlIM3Q3cmFSY29tN2VCQXYrNzlaandV?= =?utf-8?B?enNsdlcvQ3kzTm10RGU4d0hCcE85TXN5Q084dVo1aDFwb2w3cWI4Sy9QRUpE?= =?utf-8?B?WlVrTXd3RGlKbUdxL2lvVkNLb0ROUlRPT3NvMVI2MDZvdXdWMExuc3pLdGNj?= =?utf-8?B?UEJIbzRiUzJac0JPTmVidmsxLzkweGdXdzRibStHWGlGdENDWVBOK2RXeGp4?= =?utf-8?Q?ivlKRM6/7XyTFufFfow3o5wLY?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1671;6:ETiQQWtOFWML5TVJPbXUqxnk1rCIFAbcwrtr4GMRGcaLY99F68WTbAVcAojmDaoW3DIwPsj7gF5N/w6iZXnfqha17PHICG8I5YQVXTiTnZ4NtwpzmtooZsg9IhPNhYrMWrfzKMsN8d+KQJ7/rO3UZGbOVG8uTVq1w8RR4E6OqC6Kv7MO1LjcQnZsMMQR2735dmgjo6hK8TiN6aZIl1kKgeTZ60vID9d0V94BwYDYCj5v7o2mTYfGNq7icYbtr6GnwTdUB1ZZDiAR0u+S5XTzPO+5/Kg0JFpG2m7p9OMo/G95vVCnpqU/W+S7sPxYUkkYGbW/BPQ3desTnD2sWvTk2tt9UsMwY9tln8h3bqCBCtY=;5:5ado6RkJZUNPpGEwDZSrbZBM4JZbSf0o7sjLRW0qYK5low815dOC9T0AmAzfq0ZvXWJCbXJBffGVkiYoozaI6GQC87eVH6iAsDg7Thk5l6wuusDBd9bFUCKXtiJvbUA4/GELiW1iQN6Xq6p9sa2Y5WsUDmZO1TY/DlFJiyOgSJo=;24:dHNbKgLRs24lpJY1F0Tc5KlENrwvcnjzxC83dJF6NEIP6TIaWXv66+vnBmvW93a/tLQe9l4ZE0Z354lS3s1Birmi9fbTmDzdSdYUtpYweBQ=;7:pDSwhgNZTvL/2600r4pfLjGrrfuEb53m29Pnxa1n9KjZBP92lMGd/omN5XZaieHQ3IEj6tdEmu75vajV3nnXxGHQQZHyL5vujttFcpfkj22L8cxHiIK1Wb4jDOW+hSGutohKmqF3u50C9zakDlTRNACUWlSMd9+yhlK6mUHrYUF69Jtg6htnGWcuGDnsFHdIUKaL629uSMq8poZkziaIgpz7DSH6PThM+aegeNbkKp8B4AHVUBuvlg2wzVHtg0Cf SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1671;20:IqlI8bM2UJMBWuBtWcaMtl/xYT5CydtS57wYdp4jc31azerY2CTvBgFrSSwp5YNd8QHY3mNmCvDiLv1nocWRZ3/3vCV6KhPdZsVTC0zHHU+dRMYL1dN88ZIdoAMt3/kTinEt1sZuagZKLqjb/qEfXe08or/ZuEH5QuJ4SumwImhAc4xixXFDFUuvUF4eD8bx09hhQriT3F5WGrAvPtxm9gOCaZUvHYtkWk++iOo3TA0b3GJik+Rb3TyeaaniZnXy X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2017 04:17:30.8353 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5dc9a000-89ec-4e6e-7988-08d5315ff4d3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1671 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tuesday 21 November 2017 08:38 PM, Deucher, Alexander wrote: >> -----Original Message----- >> From: Agrawal, Akshu >> Sent: Tuesday, November 21, 2017 1:15 AM >> To: Deucher, Alexander; 'Guenter Roeck'; Liam Girdwood; Mukunda, >> Vijendar >> Cc: Mark Brown; Jaroslav Kysela; Takashi Iwai; alsa-devel@alsa-project.org; >> linux-kernel@vger.kernel.org; Dominik Behr; Daniel Kurtz >> Subject: Re: [PATCH] ASoC: amd: Add error checking to probe function >> >> >> >> On 11/21/2017 10:17 AM, Deucher, Alexander wrote: >>>> -----Original Message----- >>>> From: Guenter Roeck [mailto:groeck7@gmail.com] On Behalf Of Guenter >>>> Roeck >>>> Sent: Monday, November 20, 2017 11:28 PM >>>> To: Liam Girdwood >>>> Cc: Mark Brown; Jaroslav Kysela; Takashi Iwai; alsa-devel@alsa- >> project.org; >>>> linux-kernel@vger.kernel.org; Guenter Roeck; Deucher, Alexander; >> Dominik >>>> Behr; Daniel Kurtz >>>> Subject: [PATCH] ASoC: amd: Add error checking to probe function >>>> >>>> The acp_audio_dma does not perform sufficient error checking in its >> probe >>>> function. This can result in crashes if a critical error path is >>>> encountered. >>>> >>>> Fixes: 7c31335a03b6a ("ASoC: AMD: add AMD ASoC ACP 2.x DMA driver") >>>> Cc: Alex Deucher >>>> Cc: Dominik Behr >>>> Cc: Daniel Kurtz >>>> Signed-off-by: Guenter Roeck >>>> --- >>>> I didn't add an error check to acp_init() since I was not sure if >>>> its return value is ignored on purpose. >>> Vijendar, Akshu can you comment? >> This is also the case of missing error check. >> acp_init will return error if either sw reset did not happen or clock >> did not get enabled. In both cases we should error out in probe. >> > Can you send out a patch to enable that error checking? > > Thanks, > > Alex > on top of this patch will add more error checks and submit a new patch >>> The patch looks good to me. >>> Reviewed-by: Alex Deucher >>> >>>> sound/soc/amd/acp-pcm-dma.c | 7 +++++++ >>>> 1 file changed, 7 insertions(+) >>>> >>>> diff --git a/sound/soc/amd/acp-pcm-dma.c b/sound/soc/amd/acp-pcm- >>>> dma.c >>>> index 9f521a55d610..b5e41df6bb3a 100644 >>>> --- a/sound/soc/amd/acp-pcm-dma.c >>>> +++ b/sound/soc/amd/acp-pcm-dma.c >>>> @@ -1051,6 +1051,11 @@ static int acp_audio_probe(struct >> platform_device >>>> *pdev) >>>> struct resource *res; >>>> const u32 *pdata = pdev->dev.platform_data; >>>> >>>> + if (!pdata) { >>>> + dev_err(&pdev->dev, "Missing platform data\n"); >>>> + return -ENODEV; >>>> + } >>>> + >>>> audio_drv_data = devm_kzalloc(&pdev->dev, sizeof(struct >>>> audio_drv_data), >>>> GFP_KERNEL); >>>> if (audio_drv_data == NULL) >>>> @@ -1058,6 +1063,8 @@ static int acp_audio_probe(struct >> platform_device >>>> *pdev) >>>> >>>> res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >>>> audio_drv_data->acp_mmio = devm_ioremap_resource(&pdev- >>>>> dev, res); >>>> + if (IS_ERR(audio_drv_data->acp_mmio)) >>>> + return PTR_ERR(audio_drv_data->acp_mmio); >>>> >>>> /* The following members gets populated in device 'open' >>>> * function. Till then interrupts are disabled in 'acp_init' >>>> -- >>>> 2.7.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Mukunda,Vijendar" Subject: Re: [PATCH] ASoC: amd: Add error checking to probe function Date: Wed, 22 Nov 2017 15:22:43 +0530 Message-ID: <832412fe-41bd-c68a-1b43-37b6d3c3eb48@amd.com> References: <1511238476-10314-1-git-send-email-linux@roeck-us.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0064.outbound.protection.outlook.com [104.47.37.64]) by alsa0.perex.cz (Postfix) with ESMTP id D24192671E7 for ; Wed, 22 Nov 2017 05:17:37 +0100 (CET) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: "Deucher, Alexander" , "Agrawal, Akshu" , 'Guenter Roeck' , Liam Girdwood Cc: "alsa-devel@alsa-project.org" , Dominik Behr , "linux-kernel@vger.kernel.org" , Daniel Kurtz , Takashi Iwai , Mark Brown List-Id: alsa-devel@alsa-project.org On Tuesday 21 November 2017 08:38 PM, Deucher, Alexander wrote: >> -----Original Message----- >> From: Agrawal, Akshu >> Sent: Tuesday, November 21, 2017 1:15 AM >> To: Deucher, Alexander; 'Guenter Roeck'; Liam Girdwood; Mukunda, >> Vijendar >> Cc: Mark Brown; Jaroslav Kysela; Takashi Iwai; alsa-devel@alsa-project.org; >> linux-kernel@vger.kernel.org; Dominik Behr; Daniel Kurtz >> Subject: Re: [PATCH] ASoC: amd: Add error checking to probe function >> >> >> >> On 11/21/2017 10:17 AM, Deucher, Alexander wrote: >>>> -----Original Message----- >>>> From: Guenter Roeck [mailto:groeck7@gmail.com] On Behalf Of Guenter >>>> Roeck >>>> Sent: Monday, November 20, 2017 11:28 PM >>>> To: Liam Girdwood >>>> Cc: Mark Brown; Jaroslav Kysela; Takashi Iwai; alsa-devel@alsa- >> project.org; >>>> linux-kernel@vger.kernel.org; Guenter Roeck; Deucher, Alexander; >> Dominik >>>> Behr; Daniel Kurtz >>>> Subject: [PATCH] ASoC: amd: Add error checking to probe function >>>> >>>> The acp_audio_dma does not perform sufficient error checking in its >> probe >>>> function. This can result in crashes if a critical error path is >>>> encountered. >>>> >>>> Fixes: 7c31335a03b6a ("ASoC: AMD: add AMD ASoC ACP 2.x DMA driver") >>>> Cc: Alex Deucher >>>> Cc: Dominik Behr >>>> Cc: Daniel Kurtz >>>> Signed-off-by: Guenter Roeck >>>> --- >>>> I didn't add an error check to acp_init() since I was not sure if >>>> its return value is ignored on purpose. >>> Vijendar, Akshu can you comment? >> This is also the case of missing error check. >> acp_init will return error if either sw reset did not happen or clock >> did not get enabled. In both cases we should error out in probe. >> > Can you send out a patch to enable that error checking? > > Thanks, > > Alex > on top of this patch will add more error checks and submit a new patch >>> The patch looks good to me. >>> Reviewed-by: Alex Deucher >>> >>>> sound/soc/amd/acp-pcm-dma.c | 7 +++++++ >>>> 1 file changed, 7 insertions(+) >>>> >>>> diff --git a/sound/soc/amd/acp-pcm-dma.c b/sound/soc/amd/acp-pcm- >>>> dma.c >>>> index 9f521a55d610..b5e41df6bb3a 100644 >>>> --- a/sound/soc/amd/acp-pcm-dma.c >>>> +++ b/sound/soc/amd/acp-pcm-dma.c >>>> @@ -1051,6 +1051,11 @@ static int acp_audio_probe(struct >> platform_device >>>> *pdev) >>>> struct resource *res; >>>> const u32 *pdata = pdev->dev.platform_data; >>>> >>>> + if (!pdata) { >>>> + dev_err(&pdev->dev, "Missing platform data\n"); >>>> + return -ENODEV; >>>> + } >>>> + >>>> audio_drv_data = devm_kzalloc(&pdev->dev, sizeof(struct >>>> audio_drv_data), >>>> GFP_KERNEL); >>>> if (audio_drv_data == NULL) >>>> @@ -1058,6 +1063,8 @@ static int acp_audio_probe(struct >> platform_device >>>> *pdev) >>>> >>>> res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >>>> audio_drv_data->acp_mmio = devm_ioremap_resource(&pdev- >>>>> dev, res); >>>> + if (IS_ERR(audio_drv_data->acp_mmio)) >>>> + return PTR_ERR(audio_drv_data->acp_mmio); >>>> >>>> /* The following members gets populated in device 'open' >>>> * function. Till then interrupts are disabled in 'acp_init' >>>> -- >>>> 2.7.4