From patchwork Fri May 13 17:10:00 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 67795 Delivered-To: patch@linaro.org Received: by 10.140.92.199 with SMTP id b65csp375230qge; Fri, 13 May 2016 10:12:19 -0700 (PDT) X-Received: by 10.176.5.38 with SMTP id 35mr7140410uax.116.1463159539002; Fri, 13 May 2016 10:12:19 -0700 (PDT) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org. [192.237.175.120]) by mx.google.com with ESMTPS id f134si5548146vka.199.2016.05.13.10.12.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 May 2016 10:12:18 -0700 (PDT) Received-SPF: neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) client-ip=192.237.175.120; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@amdcloud.onmicrosoft.com; spf=neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) smtp.mailfrom=xen-devel-bounces@lists.xen.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b1Gby-00068o-8b; Fri, 13 May 2016 17:10:50 +0000 Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b1Gbx-00068Q-0p for xen-devel@lists.xen.org; Fri, 13 May 2016 17:10:49 +0000 Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id 41/EF-07120-89A06375; Fri, 13 May 2016 17:10:48 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1VSa0gUYRTt25ldx2XXxvV1W3yxZIKhqKQJ/Ui KLCIx6LFhP2y2JndlX8ystqGGZmVIYiJrKpZW1qKSpD9SsyRNLRUjSzMLe2qKmGWFj9WkGWe1 +n6de885954PLoEpFsRKgrZaaMZI6VUSKX41xnQ09Io0Wh2e2xsWUzVzE49FezpbFkX7UaJYZ 9SYrMfE2hl7E2a2S63VU+Ys9JTIQ1ICJ3MxGHR0Ib5AZAGCB/c6cL5QkO0IbPnXOMaVkJBBcG uk1SUPEYQnmQLzdm9eg5H5CMqeFK5oPMhYeLtQjPEY5/RVlR9ceCwn90HbyE8Rj4H0h+6uIjG PXcl4KM+fXNEoOM1s6X1M0LtDd+kozmOMBGibmMAEbyA0zs1JBHwRQf1YmuANgZcdbc5+PHzM 7sL4cEDaJXCjthDjQwMZB9d/xAn9fhf49WYcCX091DT6C94QqBuccXqbERT8/oIEwhduLy+KB cKGw+Siw1kMSOFcVonT8l0MNUv9zhwAFb3ZztwJ8HoiRyzgSJherhQLq2Ph67DXZRRY9s+vy/ 75dSUS1aBglmbSaCY0IkzD6JK1FgOl04dGhEeHGWiWpZJpPaVhw46bDA2IO4N13GtCzeM72tE GQqTykm8fjVIr3DSmE6e1FKtNYlL1NNuOfAlCBfIM12i1wp2hk2nrSZ2eu6VVGgiZylPewNNy 1kwZWF2yQPWgUOK57d0dkQI3moy00ke+kxeRvEibalwbsXqRL5Cf0kOOuFAKmZlmDDrL//wk8 iGQykO+zE+R6YyWtU2TXAgRFyJ9KJIPYaH+UsosFFBB16szkqTng+cD3ErIJZ/ZqjNV3Sm1QV 6JudsMOX4hmvRn4X2LxPBs9qspkeNSUVBCZ1ZR8YDb0Kn3hys8D0zLrA/Ld6t2jXW39NWpbY+ k6zfbHXUFe+mNFxhlXat3z1bH5+xPrCmqLzMn87FFd3BTtWvGlkNE/93Wb4FjZ4+ocFZLRYRg DEv9AX6gVV+MAwAA X-Env-Sender: Suravee.Suthikulpanit@amd.com X-Msg-Ref: server-2.tower-21.messagelabs.com!1463159445!247466!2 X-Originating-IP: [157.56.111.91] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 8.34; banners=-,-,- X-VirusChecked: Checked Received: (qmail 55811 invoked from network); 13 May 2016 17:10:47 -0000 Received: from mail-bn1bon0091.outbound.protection.outlook.com (HELO na01-bn1-obe.outbound.protection.outlook.com) (157.56.111.91) by server-2.tower-21.messagelabs.com with AES256-SHA256 encrypted SMTP; 13 May 2016 17:10:47 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=/H8bFPtI2qdp5TMgrYDV0F8ogu8g5Z6U61mgHDGuSKk=; b=ZxvTRBYMY3sgWbva1ogFZ1VIey8es/PNRlEsjJ8MYiS/AW4FXjjXjUniCpDtGfAhQkHM5bTCydYT7eVTbhEcTMiomiIfenBX9T8V4xbSQH9kN1JY0nzlfuW+woLBmT2C0HcWVQ7n/7qvNNlYGZkC/L4/PR4dC33KaCgmwXRBupw= Received: from ssuthiku-cz-dev.amd.com (165.204.77.1) by CY1PR12MB0441.namprd12.prod.outlook.com (10.163.91.19) with Microsoft SMTP Server (TLS) id 15.1.497.12; Fri, 13 May 2016 17:10:36 +0000 From: To: , , , Date: Fri, 13 May 2016 12:10:00 -0500 Message-ID: <1463159401-2015-2-git-send-email-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1463159401-2015-1-git-send-email-suravee.suthikulpanit@amd.com> References: <1463159401-2015-1-git-send-email-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BLUPR0401CA0014.namprd04.prod.outlook.com (10.162.114.152) To CY1PR12MB0441.namprd12.prod.outlook.com (10.163.91.19) X-MS-Office365-Filtering-Correlation-Id: e8924dac-4884-4f75-8cda-08d37b518394 X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0441; 2:HyjZZnwAu9u9J6Bhzj46zYEidI9OzsD2fmDRDPUi5r9nBvPJd9+sLQHUnDyXkDBv+Hj8fn58u/zm/zxvqwuSvrkpxjTa8a/Dclw3drxAnhrfeqzzV6Tr7bgvgwvE9+arn1HuexdcFtkYI9WGjjDSC6XJ8PBQtmwph09ewdudq8BsXbF0PcQhW5VmfyqxW3Us; 3:ZMl6QIlpiUJsijm9VYYR2uYjkZSoI8bMq1Q1eNn4SYiHAJXMWOpuNbxRjoymb0Df13lJZE2xvyB+fj3jduIg+OMTyeGRSE6eKGnXQsmvr6l2sEetSY4YOkhEfuuBHGGI; 25:3Uwr832O9zdOypn+I82f/yhXsrTNKmf6pPjzum6QrJq0/xgJbLi+rvp34RY6uYfV1wjwCLcQs4AYjfzq/BU1ds4YBU8K71Etoi98rX1C5h6Nx/yhjaW2/NFUQg+6ukYclu7lTzg7MWH8B7/HYyBe/VLg9Ttei6aPhWeIvEhMFrcpa8EH7Y+2dpVDGLJLbktx2r4x0wbIJCCxB9ZG0ukKqe0X2nuYW5nNZlwG+nu74DtSozDhaXDYqzpvCCjOYvhp8uQzshvpRZduUGGazPn1D5kMCKahorJjJhyM9ZYKNbdmUi61//oBZyJDFOAVvk4YU3LYPDJGPx3EsKEMqELAkp6Mm/HqK59Hh1wg1fFWJSWYLqwYUPmTK6sRy7yV4XnEUNdgwK08CMVuHL1OaOvTmzGhflNB1iRGUnlCdxwlZos= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0441; X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0441; 20:6ZLAYauvdJ4xbEv55tJGxfBVkTue5gW31cZdbaKK0Ag1QocGQp/hKKlOFxYLBlMxnTWeyLKuupVMT4J+Zv5MBbyJUuxE2NT58a0qNOsK3j5r3TCCkEMHx2d61xgeNrfL+37f7/KduCDTxiFo520bBOVGcrmCFByLpEK8vy7Q2cSOGZFj7Fg7lVOpr5ZhxjDJvtNmTW5jHUa5q0sYp8bNISgFzYVxsPPdqiwHfoMkvizLCRXe/Lfw+BhDwA+NN5C/b3dT+jwelBTrTiUdpoBw7UDHnKyTurzZB1n1T+sGPsnjMez0NhN6azoDsVy9p9LZSshJ0q9MIFmZ3DVudzj/L164QARcdizFRoz1tf5GVHEq+QtTdHeeAsu6HjrpT1Q6f02MpBzXk84LzVXy8klpKjVEazTYN6+z8R3EdMeZM2DpaFqfwRjWTEv68nfQ6qQ3iH6veGriVvF6MchoPrVGarcZRNUVCO54MVl/JW9uwLaby2OBtPuTKqanUd0m09t0; 4:9S94nDFu2uaaiUFyLIIut0y0IoSScrTE8jC0o7l4HVv8n1v09GhyMQU4g0c3XWq/XxTh3VLuKwLxg0lpv0ye9Nz+ChdTHy8yOKlH7HiX+gt9xNymxu4J/o44rW7CH3M9Hq7CU5hh0B45KfNWDzmqYuxcJKK+mcn/AVys1Uqz+1qhv3IwX7B2K5IqQmbbVmFo4RK0pxtWQRASkNC+POLBQciLeopLCgsv8dCryOOMEANZdKdDKZlkP9uoOFrRbScs+6jpeH8qeK75KUXj+DbfodecYxJDseNvQZpyogbNAqTTspmbpbRabs62Y2y2uOwSLTjM6LBwXbF1V74q/O52IGxMwTkevXsLRooq8EFc8Li7WZ/nl+BAsj9oNESZp14aQ6USKNUyyuidvYGEkVOBww== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026); SRVR:CY1PR12MB0441; BCL:0; PCL:0; RULEID:; SRVR:CY1PR12MB0441; X-Forefront-PRVS: 0941B96580 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(5001770100001)(50986999)(76176999)(92566002)(229853001)(33646002)(2950100001)(48376002)(77096005)(2201001)(81166006)(86152002)(5008740100001)(50466002)(86362001)(19580405001)(19580395003)(42186005)(53416004)(2876002)(66066001)(189998001)(47776003)(4326007)(2906002)(50226002)(36756003)(5004730100002)(5003940100001)(3846002)(586003)(6116002)(8676002)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR12MB0441; H:ssuthiku-cz-dev.amd.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR12MB0441; 23:eucsuZkhDIBph+s42XbtKPYY5N3C5KgK8Hg+1EPoV?= =?us-ascii?Q?TWpSC5Fdauug56kHwtUo3NR+XpYXH8Fpo9kz9e+GW8tq4slah0Qjn/21m89i?= =?us-ascii?Q?0xvJXhrS1nzsmhgAKz5cdK/8oKAhyU//jIaycquLwZkFg4QuWf4LxA9r+75s?= =?us-ascii?Q?fMGwgEps5Vg6UiNKQQuS+KtEjiGeFtGBjWp2Hp69Q3iI+vAQY93nQ+hu8yQr?= =?us-ascii?Q?VFDecIuoLurRqCk9iDyCWqJnxmR2t/CdVR6yiAl7v+Lu/zoqaG+l2769dkSA?= =?us-ascii?Q?lriwMEEcw1XuGo2hO+ViwZOCFZPmfX8wLMwGfJKMK3oKRw6ZR0Vi8sggw0sp?= =?us-ascii?Q?C14Ufg1SuMk9KItxcAEwFuO0hx1dEdTERYo6qZpUOl+nIWYttYSwUY/PSdSt?= =?us-ascii?Q?jRMTtXrWFph0bPqqd+D6L6LHPycNckUlCPF5xaVXs4FL9CWL/vy7M6hO5bP4?= =?us-ascii?Q?/dvqJtqlx9D68mtfmmxZ0XM4PK/VjVEaTn5rPo+dV1wh2vSYE2viADISYy//?= =?us-ascii?Q?jqCfl4kYu5GKIiMFaZutKN8R7iU2mDmazNmjWfRO3K/A0xAbexLHp0KoTS5N?= =?us-ascii?Q?bPRCoQ0vkaiqkQyoOxFXtG1IWZ5Q7BML1O3n1P/Ix35oqBV7xZVwH8bJWaKv?= =?us-ascii?Q?H3zhzM23srcdJ5oZixh1zzgU+sbKvbLYMLKWsbVHaXHxl1y44ALHtKo6HaUX?= =?us-ascii?Q?XD76wbGS9MX7XkHZn9y88eavKS3FIAQxI0co7Blp0O0GyE42DLboWlsVsgV1?= =?us-ascii?Q?E+fK+EPQ3w2IwMd59P0iEs0AgJAroSldO4nT8QBwurRbPpCT8g12I143B4dp?= =?us-ascii?Q?YLB80Yi3XDMMFVAfMNwB7sR0tfLdQ4JfzjCJwpx6OeaFBFzkbhq4XqpJCMYt?= =?us-ascii?Q?rmKRXO5A7rBCnWO+xhV8ztFfIoqWR90DoQAUqnXY6kkaxDkkM23OaTiGdjSc?= =?us-ascii?Q?fQ/1ach8MD1oiVjMfw11i1JGMh2iuhuLnTH2wTRL9ACGAM8rXL4n2FbrXgz5?= =?us-ascii?Q?Ks=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0441; 5:LgMBup8gAXUkhoznC0g33N1+FxmGAtrlrY/WXNlKNIAfn1M8l5HPam8sXTGGprSz1GFaUye45/cFU5ZlJfOf/Yiwp0rML8OFAlOmODe+X/U7v5KO7v+zu4Jg6MejeA6KmG4lGioHGOPzq/3jLTktyg==; 24:sL8EQZlo4F3AzFvF7ipsYv9S/0FL8DmR8VsBsJbWZH0XhzqxMuIHtEbMQwwdRTSa3JmGECVx1OiZnT6NCa4XtdWxqTvKAld7vzf9C5HtgJw=; 7:XRlugikUG/ju+lS0LGQTQJjIIoM3Mhrp0i7xNVnIGDH1yjHSNxpa7K3lN+IhYdJoXTfPqJtoG2CIicw7odsBEsxe2oxEM/DaxEklpjWn6BqlQYc+tVKtL1Ypr/vt7gr/xXaBPr2k/dKDSwy18//swXJRsnrA69ZBqQU6Xn7wYTA=; 20:xNzk1eqNpncGEoDIuj0Q/yY0elRp1oE4AVEPO7/MSNSq+Gdkie1ejCfj/RHUgcxIo4Z8rAbqyFvGNw4h5sIJa0kPQtaUlUednuFrjoPexkGbWj1p5MzhRx94mVb9DHxui7miQLhlo0WwN+mPNYjVuTa3rgw3meB1BbQGKdu4CjmHxUVrvD7iGnLwauSyumwJHfzCfXo4bjS6PcT3+awdCitvdmWHPmqyXJMM6bEYImzy6JQ2rDJ4OpnOK/9iEkKV X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2016 17:10:36.0736 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0441 Cc: paul.durrant@citrix.com, Suravee Suthikulpanit Subject: [Xen-devel] [PATCH 1/2] x86/hvm: Add check when register io handler X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" From: Suravee Suthikulpanit At the time of registering HVM I/O handler, the HVM domain might not have been initialized, which means the hvm_domain.io_handler would be NULL. In the hvm_next_io_handler(), this should be checked before returning and referencing the array. Also, the io_handler_count should only be incremented on success. So, this patch adds error handling in hvm_next_io_handler. Signed-off-by: Suravee Suthikulpanit --- xen/arch/x86/hvm/intercept.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/hvm/intercept.c b/xen/arch/x86/hvm/intercept.c index 7096d74..13b81c9 100644 --- a/xen/arch/x86/hvm/intercept.c +++ b/xen/arch/x86/hvm/intercept.c @@ -248,14 +248,18 @@ int hvm_io_intercept(ioreq_t *p) struct hvm_io_handler *hvm_next_io_handler(struct domain *d) { - unsigned int i = d->arch.hvm_domain.io_handler_count++; + unsigned int i = d->arch.hvm_domain.io_handler_count; - if ( i == NR_IO_HANDLERS ) + if ( !d->arch.hvm_domain.io_handler ) + return NULL; + + if ( i == NR_IO_HANDLERS - 1 ) { domain_crash(d); return NULL; } + d->arch.hvm_domain.io_handler_count++; return &d->arch.hvm_domain.io_handler[i]; }