From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752235AbdKZNO0 (ORCPT ); Sun, 26 Nov 2017 08:14:26 -0500 Received: from mail-he1eur01on0054.outbound.protection.outlook.com ([104.47.0.54]:55456 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752145AbdKZNOY (ORCPT ); Sun, 26 Nov 2017 08:14:24 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; From: Peng Fan To: hch@lst.de, m.szyprowski@samsung.com, robin.murphy@arm.com, gregkh@linuxfoundation.org, robh+dt@kernel.org, frowand.list@gmail.com Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, van.freenix@gmail.com, Peng Fan Subject: [RFC 1/2] of: reserved_mem: check return value of_dma_configure Date: Sun, 26 Nov 2017 21:13:45 +0800 Message-Id: <20171126131346.12532-1-peng.fan@nxp.com> X-Mailer: git-send-email 2.14.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [192.158.241.86] X-ClientProxiedBy: HK2PR02CA0182.apcprd02.prod.outlook.com (2603:1096:201:21::18) To VI1PR04MB3230.eurprd04.prod.outlook.com (2603:10a6:802:6::27) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b1767426-1522-43cb-1cc3-08d534cf9aa2 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603199);SRVR:VI1PR04MB3230; X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB3230;3:b6Gq9YPD7Ald3kz7x0i3aJuN/dMaUVY1O4E6Q6e3pqakREwbo7JhGV6DqK9Ya0PMKlK43IFIUw9Ld5PpEWwLWst9VGSZdFiuY7ULf7uovJJWvlSAh/gUOOXMIDJMZf0sN4llGiR8Jb8K5d0HZCNgRzEGcRDqffkPwjACS1pFOOwdyJCnxtONnDsPYMrpUpONe8kYo6c4Feh+2VXDl1lLEH+WsBB6cQT8YWSB01TQ2/JGfLo+ojVFXS3b6txkD/4I;25:7LBzBRrTO14U9D90nqJGte4sJq+bGdLWag1e1WUF9iSbzxGHPwIk/tLfMqTjz23UY+y+C3Tm24uR2xebtECxDYRpVV+rUbRyuQanMBH3+aiQ1WF1+8AlXVBVhhJGPg2vflQTPrjjHoc963z6mNjjWUhZr+fsW6l1TOQRYloG3Y5O65FeEje7PBviphZpV19DcIokUoJeUwKm4x8X9rbSHxbr7vlFniK526cM63O8OnrdbRIUeIZC4P+a1BeXmgLXu6SemktS8ZR0D3mNbP5rv/uRyzLu2Yw20yKpksgMF10+TEmwcxCjLYehrUNMPlzBbNgvEplVZjDZdrttY74SzA==;31:g/dmcFB56LVJr/ivvjmDLrrhgbCA7eXHB3xwl8K5a/ttQfu/t034QDtj2WLMlyULpDYlsZeQXjiwXaiXHl+YizHDOIfdfeBP5lZ4OzmRfmsInKX8M1AogsiZmCtZyewsXu1ypxn5iLhR2e8RA67KAZA3pWB6ajh+lCwZjrefM4EzMIAySV71CJWEV7YQyoOP8jGJbrguN+Sl+GbnrorR+CusqBHOXdFBqauBmCGFESs= X-MS-TrafficTypeDiagnostic: VI1PR04MB3230: X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB3230;20:m/DBzM+S1yEzgMeHKgIOEr7UU/1v/teuQcwmx3kv9N+Aqgaj/nJkGJgqV0zq8MOM/NsYTqD3jrkDMkNxhn9Z7+OVzseKEcFTedYldZfT7lSxgBD2L/KCMU0VyBUPYvpzR0rKzqbqfnAMr8VPkz9tyySSmqgztJABd1Fy6ckd+Nvps5RzPrFuCT6hCPh5wIEw937mdVqFItXECUjyOeMcyrHtDWpD6oVPVzv66TpSyon52REFT8joxR4dC1BGhlk5uUvMks2uopoPx/ukfGHK3A/17F7bGAkYR0MRx7IeCZ73zGw4sVYRBFEPDGRpZOybNB3EUKPUy8Q/X0LavXW/nnIB0nXVqPw1rogmcCHI6ipdtCFgp5WhBCQ+BNri7G9YjIy2m7n7w6NOf4U0UOw7yTSscj7jbqochBwCkBV1Pxv9U2An10ch8GV5uXRjAwd5lEXhe1RbyHy0FCBXtFtyrdhy9713tXw8rEeXPzSCQQ3SWCGI68rwAslEyp6i2gA9;4:wvlv9MqtUgampFQ7hFRoN2lWX27UfZs/PD8ox94EFL7MccKlYGF99e0ECVzlhqFKMkreb8as0YUlmzh3uv5rGpxij6iJQQQ46cRLGcR3LimX2UiQPV4LiDE1+5CxqGQ32Z30b0ce7RfWIJaWjb56jG0brl5URVJSjdtasBBit5FPN2kQpDysqhBwyc5UTQKG4UGLjoRnF/VscEgmL4BHYDM0oXwFIVu9D6Tvqa2i98lFHjtx5t6rDJUQX1mgVQDQR4ndjhuRarwbIF4HuaWbcARDyd+5AswlkwqKeZ44EcZROkcvJ9cy3Dif0tF0j++E X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(2401047)(5005006)(8121501046)(3231022)(10201501046)(3002001)(93006095)(93001095)(6055026)(6041248)(20161123555025)(20161123564025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(201708071742011);SRVR:VI1PR04MB3230;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:VI1PR04MB3230; X-Forefront-PRVS: 0503FF9A3E X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(346002)(376002)(39860400002)(366004)(199003)(189002)(39060400002)(8676002)(16526018)(7416002)(5660300001)(86362001)(101416001)(316002)(50986999)(4326008)(6666003)(52116002)(7736002)(305945005)(97736004)(478600001)(53936002)(47776003)(6506006)(8936002)(50226002)(36756003)(66066001)(189998001)(2906002)(6512007)(51416003)(68736007)(16586007)(48376002)(33646002)(50466002)(81156014)(81166006)(1076002)(6116002)(3846002)(106356001)(105586002)(25786009)(6486002);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR04MB3230;H:linux-u7w5.ap.freescale.net;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR04MB3230;23:E5Uvf1/2GBzAGlnU2XEAbNLil0hQ8UpJWzfd0/UPx?= =?us-ascii?Q?aLbjWCZ8lJ7/nBr/ONJ2J7c9CmI8pGlYOVL9iGX3NhQ4VIEUFER1v++bf2nk?= =?us-ascii?Q?DBC3r2IGirIq75FPPGcxb38aHN4HwmYNJIFCcWT7FruMWYFB9V9rBjVFpfzh?= =?us-ascii?Q?w++9NHKBemfIVUw+To6W734ICMBG9bekQIma0wW+3Ap47f3mOstkZyN6sDoD?= =?us-ascii?Q?TbWb/3ZMpGK+ILsF7gbeDLLaNqon6OaZXI5lmeyRPNqMpvIFl1TVVmIvYWH3?= =?us-ascii?Q?W6PDvxAWbYa7u+/e78CMJvHGthVr+iLqHNwdZu3C5AhcdSIv4R9+sT8HKOdm?= =?us-ascii?Q?AlwOAznoBzoe7C638CJVh+oe1ssW3jRj0ElCIVdCa5DYSWCKj+3zQdILZjx7?= =?us-ascii?Q?sS31jLruPDQt0B2QTjpi2FVlbqpJ0XYvzrRhcErjzcHrGBNGv+m0k0SA0Zfz?= =?us-ascii?Q?AaFr2FohMXgoUVRKgHEOKuhOhGG6pn2qpMXOvdQ72QVvapsIiV2iouEq6Lbq?= =?us-ascii?Q?7NtYfaOIKciI+Ihg13NbyEF8HQEMvu9JuN/wcLBzjVqOtJjjlEKFRuIfPwaX?= =?us-ascii?Q?zoreRdSTF9i3WSH+z5OYK4PEh7wZlgDNYbRRBSSMrb8vkxTxw5Hn6Wk+gvcG?= =?us-ascii?Q?NDbbGgPA+wq93/PUB9j5EdyC8I3OZhloNNbkclE2MFQtPYbfrWeiA5dFy5ML?= =?us-ascii?Q?uLm4ZYkaA7WjffFVMRDtFD3t6CqynNRxtZEHoI8c3oBLnp561py6QSqoeZ6A?= =?us-ascii?Q?BNI+yfBIJaonc3suKvT5nTLdYv/6UxacUoQ9S9A0XYuqeLZJ9TraJ4yVGd4j?= =?us-ascii?Q?df0JhsvLl/mU6YeqkGmYzQfwQur4QyEe74XoDeYLKgQnw+WiNM3K6ow3rZ8X?= =?us-ascii?Q?/4dSO65mWK0F1nFjU0oHxSKGkul3kN/oPOpKny/SP7dx9qmEHFlKE71iHeLQ?= =?us-ascii?Q?5mfOjxJLfl68RNcXYQlSqWUXKcN7uqS8cnVoaICufZGeN4k3mqbn4INpHTyQ?= =?us-ascii?Q?pgndeai9Kbiq/VqbXwFL1hV0NuYnaXdTIKxU/wBz4LqR6aWaByM2PKwq5CnH?= =?us-ascii?Q?eSYXOGcVA5YOkrHdx3M1S8DJvXbvy3LrggTObutRVA0dyjvWj46+9JnDJYYo?= =?us-ascii?Q?CkNxrcBeCY=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB3230;6:W+aHlGYxPbYhnd9alkLJTdFml2yZzWlsWAExFOFMgIxt9+7yOxK2nFnP2Z7crm1XL3oZfXSb+nn18nKp2jzwWGf7kDAPe8lJ5sauTUPrqQhyY7RNRe+iR+ctPgJdOyfwGNC+bC1ZrRxZVsZgjegTNUil/LXowgHAxoQZHKap+JJFBIfmBR/9jhMcQQMGiodRTNv3vofaC7hsH/mLBm4FBqUCD2cvPsdpTtcrtoqxOqVhtdN5sX+3DGdQK3aGzSpIV49BlMwBGBIu5v37LFyoZZUBlkpMJuoiPRky+EwzVJiIWuDqqUklSo1jak9sw1kiiBoegkiYI4kZOPd1JstzgEJuAtrraPKznBkPcgtH7kM=;5:uK8fNiysuSpW8ktW0G0lKyjSC7WCsISQvRqGVxb8FznUD5PlxK8CBdcqZk4rZxMTs00mvX4Y7vRcRlw+WhApUWz7vmbBhNYBYxE6+y/KBihxQmf1p+XfhKVG0zAWWKEVeuIku4cZDiX+oMRDEvExVV1VPguYVatbKqB+vl0d34E=;24:oCYHEwdiUXxZGpz0Wq0YgBBLfXyPyfQrD8CDG2RPJ9DbZsRNMkwzisykd1BxdXafCp0mVDiehY5Pwbz/iUAJvJkJ4+LBBunLdKmg3GVrCXM=;7:1RnqflHU/jc5Q6PuIP48ucnA6bcFCOUO133fmikG+b2cwypA30Qi28oqrVN665ud7EAYS0RkA/sbAnv8j4kTpmvLKVIc3mKZBMj6iQad3zt73RvcPyqDELBCrw5TmRtjn8Wy59Ts4vq1g+gZjFFZ0Pe3ILnNRW0ChLqjZTTQ2/9nFlnAKoFA08TdR9KBneHI3ah5R8rcIL8AmCuMOTH3TOfZy8gdTCtfmSI1M418N0d7hGDXNnmQjQPujxcfE+ry SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2017 13:14:14.4670 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b1767426-1522-43cb-1cc3-08d534cf9aa2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3230 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In commit <7b07cbefb6>("iommu: of: Handle IOMMU lookup failure with deferred probing or error"), there is possibility that of_dma_configure may fail. So in of_reserved_mem_device_init_by_idx, also need to propagate the return value of_dma_configure to caller, when need to use reserved memory for a device which needs iommu. Signed-off-by: Peng Fan --- drivers/of/of_reserved_mem.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c index 22b75c82e377..61523819b50e 100644 --- a/drivers/of/of_reserved_mem.c +++ b/drivers/of/of_reserved_mem.c @@ -357,9 +357,12 @@ int of_reserved_mem_device_init_by_idx(struct device *dev, /* ensure that dma_ops is set for virtual devices * using reserved memory */ - of_dma_configure(dev, np); - - dev_info(dev, "assigned reserved memory node %s\n", rmem->name); + ret = of_dma_configure(dev, np); + if (ret) + of_reserved_mem_device_release(dev); + else + dev_info(dev, "assigned reserved memory node %s\n", + rmem->name); } else { kfree(rd); } -- 2.14.1