From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751178AbcFPEfU (ORCPT ); Thu, 16 Jun 2016 00:35:20 -0400 Received: from mail-by2on0087.outbound.protection.outlook.com ([207.46.100.87]:29600 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750757AbcFPEfR (ORCPT ); Thu, 16 Jun 2016 00:35:17 -0400 X-Greylist: delayed 907 seconds by postgrey-1.27 at vger.kernel.org; Thu, 16 Jun 2016 00:35:17 EDT Authentication-Results: spf=none (sender IP is 165.204.84.21) smtp.mailfrom=amd.com; gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=permerror action=none header.from=amd.com; From: Wan Zongshun To: Joerg Roedel , CC: , , , "Wan Zongshun" Subject: [PATCH v2] iommu/amd: Add proper error check in two functions Date: Thu, 16 Jun 2016 07:57:04 -0400 Message-ID: <1466078224-3155-1-git-send-email-vincent.wan@amd.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.21;IPV:CAL;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(428002)(199003)(189002)(19580405001)(47776003)(5003600100002)(48376002)(26826002)(19580395003)(87936001)(5001770100001)(229853001)(92566002)(586003)(36756003)(11100500001)(105586002)(6806005)(33646002)(50986999)(189998001)(86362001)(106466001)(50226002)(101416001)(50466002)(53416004)(5008740100001)(2906002)(77096005)(8676002)(8936002)(4326007)(356003)(5003940100001)(246002)(5001870100001);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0718;H:SATLEXCHOV01.amd.com;FPR:;SPF:None;PTR:hybridsmtp.amd.com,hybridsmtp01.amd.com;A:1;MX:1;CAT:NONE;LANG:en;CAT:NONE; X-MS-Office365-Filtering-Correlation-Id: ca2231ad-4a20-4af8-76bf-08d3959d7c68 X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0718;2:JYYG3NHGdijM/l3yV218jSFe3w9SWID1DVGQSNUslI9AsnHnNHZ6TLXQrhps4ETFbLge8FSVorl/PUu3Lf5bFR+gJzHHAyFmAfJj+FSx2DHkHL8jgIWX/H16Vw6Qm97eEs/BNdmufVz/cHptbyiUnnwYa3KrFNh8dLqvx5Bjfd7auJAO5lR89Iw43zXEM0Nz;3:isDO+AQe2fePHPXm4G1Lb3LUI3D3dcYHVNtTNbzu/QvcnPok+u0vdQi1Nzyrdn/AdeDeV2fdSAvOgo1Wz/gjjVLesoCIihuW/N6puLYyxUcB04hLdMSVRp/aVvmLyr9qIXyeetFMuDkwz96z4WGmB4laI/VXfLpFTvRuNpGRimvlIqnadul7Ie7zdenKVjM3oYCokM0Iu73cmzZI2h8orK5riZAZpWbdcTR9PJ9o6SA= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0718; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0718;25:zOSIVkCXiIXubFgzhkWo+rNNYQJA0rgmtEeMWBJKOazRmG7Jm+LwI7C8ePwN8lPILB8Yv1XOlN1ThEI0ENHhVhU/b7p2pLuyAGe7MPLGSYbs2+W5jsmHCyF9PdrIL2FkW6jr4F0BhzNd85wxVisxAd7yuSOLy4OAG5E6KWavkyXhb7Uh1bCphsc4HaFpWL8P671wraQxEs2Ncu6c2iHoi4OgiYSstt0a5t9g+5x6QEwRQwlJMcwdl4Y5SX3eCwJBMUOaPsK6pBfxlwRbi2P/M9b7HT9bNoxtjr24nzzumFfY9nrGmFZJgdP1xYqn4XXII1/LV+Ws8FqOgWil4kjvYy5/zUO4pB2r3sYpMi6goswo88qzeCqHM1Z7/jdPek/bujoS5BuEta6EqYcdUEKCWQO2ube9Ql2NIsTmCINfN8REq1WfTs0R0Jcid3Wqw68NUmD7oFhtLWfUYarjXTuS69yreF8gtztTTWw9Vfo0PHesn+K3TaQEfduB8wXQMkk00JwUPXcLPLhU62ARykamXgP/N84g8iBRuf5MxZJLuxm2yPAw7fbfa52ANemd8kgUrFx+8IP1uBPzli+QB4t7XeUINnq0AgpUm3D66d5Le+kXyedijIu8zSWOch7Rlki8qb9zWIeFUdNnRGt41FaBSg+4wiG7CZmjPOPxITAu1jzFlaeCtz7UA/Q772e+yX0ebK4Pxo+mieTeQZ9RiRK8ljyhtBzraKQ9XWRh4wKjWytMmI8q3kkikOly7quJo3YA X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0718;20:dE4Bc4EXtvxh0pTGKrACJ931qziTPcnoPQ60PAsctcIaIzr0KXAbL7+zl+eZLXAXN4XzRkCebtvnVfZIWJWaF+BP/xWpbqDGhEvV0fAyOAInCF9FjZ6B/I44/5bvxbrYR5q0dg+vN/w6AGtSiKw4tV7m5dZOjNm61qsCaawDfGKwV5F7LqTVtMb6MNaqQwqsHd0HlUxv6yppWvMcW1+fAJnCzAGf3enXuXTZ1UmNGMDKpksTsODQLiRs7PVGKBmeWmC1oyvAaB5rJaqspPihjhupD5Z7f/bGCTe+y5vooMepJjJGAXiquYSN2Ke9rnzmMnoapyL6o7blXOQlN0fDzJLUkdqBDGNK4mrbaSa7DTfdEaHhGmeJPN0P9rQuD2ezE+dVIVB9ut+asHS2tFD/nD15dVpSYCXEe2Uju7ikuaxnjPMqjU+YlKhvjTwHGtRUMF6XDyaVPZ7o0HTXi50YGRDHWMjLr0DPEbbGHRfQY2OTxMxdjib0jeAtR5THOoax X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13021025)(5005006)(8121501046)(13013025)(13023025)(10201501046)(3002001)(6055026);SRVR:SN1PR12MB0718;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0718; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0718;4:qTjaqQMZoaZ8m7X8LQFBNK9hW8xOMQqXOh1NYIjzHebCdadLrfjX62JqYuaBMsaLMp5+ErlVn7bKaTsinZh31xKXK5tYG8wZAm483FC2+JD0qIXjln2qu5E4HtMlNHyxFPnVy8ZyOOAHjy+VgJWypLqi7qjl8FxdDuoD+9Pphy1l9T93EPtoPtXnStO2W/FDNlPzN6v7Otq5y0AE/fXAxMMxJ9mxCtgryyDKFBmTEfk2Y0N1OnZGyyS4rfowug1pII/BbBP6O5o4C20gBC40RPzKnlNv3iW84/F8NWtbwFM4bIlr3hR+xPwHnxUpy6TmZR+OHVH82p/TkMZY/Zi6VB22rf6h71/va2WB88K8taKEQhyTU56icPI/i10y3VvueUzImWbHtZSZGaQZ1Hi8xJTIeoJofZDgBYuYkoW8Dx+INIL3r6i9m1hvKwP3ldtqqhNQgdvrt12/q2IM942gDE0EPS0l7d8UapHegMBStKg= X-Forefront-PRVS: 09752BC779 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN1PR12MB0718;23:Mb9PWkqMOn3+7og3AOS+LN77bKJWjL+PfqlZJEwlZ?= =?us-ascii?Q?1f8CSTepcFe9TrlIRP5qgQsaSw4BQtCNMZWRA++xuRBiCwimCq7YnSuOF+y0?= =?us-ascii?Q?YgKJw8q/8MkD7rAAW/QoTkI1nkY9R1ec7AUxCl0TVIxQB+RnRuiP2hEQbCSW?= =?us-ascii?Q?x7ExEvj8axur8e95jXKvUoPQEyXMylYxh42v3D1TqAKN0urvwW1aNC+WaEG8?= =?us-ascii?Q?WU3bFrvIEz/BH2/2vplSm4wlaqX9dUoUlxuqFLLe4iyghmtgY/aTLghEJrkf?= =?us-ascii?Q?57eJb+pjNGqiG+E8fEu3rvHeggLHJBIL3oSKXMz0YOMKgXhkzeQJLEEOHCK2?= =?us-ascii?Q?UKVcs9hozPyOLENJ/a/lgyZS8s/az0MC2KTLKPpjzylW+A8N4ZEUucUdhzPe?= =?us-ascii?Q?EERSwxmi5y3LLqnx51h3rltW6/4CoNy02/jUZ+A4k28Ltxjtx7iyzD3wBSl0?= =?us-ascii?Q?iDGzUL08G9fkQUiksSljCOAJ9g2OM+uUhv5clh6ho7aY7mhVYYm5A/ufhpZl?= =?us-ascii?Q?t5NwygJA33Wx0hy5DrwiVDqREyhEPaKI0iSTb/JiTix16VdrN18Wx66N2Eud?= =?us-ascii?Q?macwnLwA7ey1UnbIyMPebWxM8F6955kCskiAlXU8f2YN0mGPrZdbb7bxsv0s?= =?us-ascii?Q?b2dAOA+b6Wf+84/5vpVUt+p3zBicKcM3msAqbpqCLZlqF+0cc/04baLy+Oq2?= =?us-ascii?Q?gTI8tIq+/XRC34FDWajY9Ola5DkewqZdrPTFoQaW0BJzwwh/3VyyNJoReNAe?= =?us-ascii?Q?iOlIMbLX9v1RJkAwL/9h7IOAqSwoJBCS4zMa5eLXpt+DLH6rzKrV8MZfx3Nm?= =?us-ascii?Q?swbIFv9KRwGMoS89MElmZaU/sodDjabM8jqFT5f8rCJUBBcx9HhHsIp67PFT?= =?us-ascii?Q?c9l2ryr/BAOLQhzJe0vNrYh2bJwXZ3dc0/WsvpFii0vT1mLdAa4/u3aMhEbY?= =?us-ascii?Q?AxCgtWHq4AJjaFzBxB427uAiZGV1UON4lxMO4jUnfnW1Z+eRoithJ8gsBcFp?= =?us-ascii?Q?A3IoEq8FoFkz3nn83wMYQgyBJKHI1P181FDxlOlMy0ZXRRqYdtbsJKiFQ9VB?= =?us-ascii?Q?GdhvP4=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0718;6:CWZzcbVaoQzukbOe+6EB8pxTB84yPuPZ1Q5o4e65/wy261lS6F5hNv9I2lRVG0+mPg2TSs4rI31GjQjNLmng1ct0f4VHnVInJSZxeUip3itTJc40A3dnjsc4UHui25mmQWi6EJ1PyE/dVsFJ+hJmHBGJPS+n0fAnpUamP/DaqwlYMnfzUsq4oN76gPOVWo2KoX57DGBIV85z1YKhxIzY9+cRu+O4MmMeglzGj398ZfQEMqpEomGp23dBanY7HRbGT49XBCwK4zdYTp4nasFcH9YIUDhCjKUGdVSKA9x4HWH27Sqn2pzHg15V2p2Zzxne;5:UpGJURgO2YOnSL9KXgPsS5parQoW2tSltjobWCw0YI3f4rv40fUeAu7H2T/uniLeu4dwXG2Gv6Fe/exqfBabyg5C9ynTTxA4Huwc4ZvIpxzGSD8m6LQrjijDXUOAUXS5rEMdNLrCUc+Zm+PZjWN3WQ==;24:mDMzIs8fLIWBcqo9kf0RDOINSxGidyVacnfpDUGhAsFDS6NW6/4pxrXTg6AB6Lg+WtDqRV2zdVuc3nm8BKAysPAfGaAHl/wZ6xlPZUYFHJ8=;7:8A4BBrvW9mGG2TeMBoEkC//v7UWWE3tsNhCSRuSirAhh3s05shtkbu9VfQSSKLLV58FwsiFmIvfTlAEmHYyRCrvbasvEyEhw3gd8G3D5U7NV6GVG+UD0Q06hVN2dLhiEMP6kJInO0G7Igqom7oMUYM9QnUF+eLLngdwHD0Aupl1Jtwn61rEUSEWe+4PkzPiYyZtyB099uxyaBWoSrWXo9A== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0718;20:LiZ4/wnXwJnwFCg12BpiyfR9xJtniKKPEYgN92Pu81lSWTOKRStR6fqaQnPDySsyLrT7XK/ebacBeIIXozVR5QLdq4kCDS7u/EJy/6r4PWxaj/i3OdU7HPKv+x0QP8BaLE1z+SNa6w5S+Sm8u2l14Ys/DbH19oT9KwRfy9+wFZF9jv/uedglXmaXvBZbiUfS1gE9Z5Ri8N42f/ca667yPOzeZumb8hq7Pa98g8Y+fv8SNqIQa6NZuxDiHXCQMtie X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2016 04:20:01.6184 (UTC) X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.21];Helo=[SATLEXCHOV01.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0718 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Wan Zongshun This patch is to do the following: 1. Add error check for caller of iommu_device_create. 2. Add error check for caller of iommu_device_link and move 'iommu = amd_iommu_rlookup_table[dev_data->devid]' out of iommuv2 capability condition that make iommu_device_link also use the 'iommu' to make code more clear and no more than 80 characters. Signed-off-by: Wan Zongshun --- Changes from v1: Don't fail the iommu_init_device() function when the iommu_device_link returned an error,just print a warning message. --- drivers/iommu/amd_iommu.c | 11 +++++------ drivers/iommu/amd_iommu_init.c | 2 ++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index 634f636..dbdcaeb 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -476,6 +476,7 @@ out: static int iommu_init_device(struct device *dev) { struct iommu_dev_data *dev_data; + struct amd_iommu *iommu; int devid; if (dev->archdata.iommu) @@ -491,17 +492,15 @@ static int iommu_init_device(struct device *dev) dev_data->alias = get_alias(dev); - if (dev_is_pci(dev) && pci_iommuv2_capable(to_pci_dev(dev))) { - struct amd_iommu *iommu; + iommu = amd_iommu_rlookup_table[dev_data->devid]; - iommu = amd_iommu_rlookup_table[dev_data->devid]; + if (dev_is_pci(dev) && pci_iommuv2_capable(to_pci_dev(dev))) dev_data->iommu_v2 = iommu->is_iommu_v2; - } dev->archdata.iommu = dev_data; - iommu_device_link(amd_iommu_rlookup_table[dev_data->devid]->iommu_dev, - dev); + if (iommu_device_link(iommu->iommu_dev, dev)) + dev_warn(dev, "Creating iommu device link failed in sysfs.\n"); return 0; } diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c index 9e00341..73fa986 100644 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c @@ -1526,6 +1526,8 @@ static int iommu_init_pci(struct amd_iommu *iommu) iommu->iommu_dev = iommu_device_create(&iommu->dev->dev, iommu, amd_iommu_groups, "ivhd%d", iommu->index); + if (IS_ERR(iommu->iommu_dev)) + return PTR_ERR(iommu->iommu_dev); return pci_enable_device(iommu->dev); } -- 1.9.1