From patchwork Mon Jul 2 16:58:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roman Kagan X-Patchwork-Id: 938081 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="TzkvF1IR"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41KDH12Pzhz9s4r for ; Tue, 3 Jul 2018 03:08:29 +1000 (AEST) Received: from localhost ([::1]:34377 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2JO-0005wM-V9 for incoming@patchwork.ozlabs.org; Mon, 02 Jul 2018 13:08:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59338) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2AH-0007lr-5i for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fa2AD-00040c-9H for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:01 -0400 Received: from mail-db5eur01on0103.outbound.protection.outlook.com ([104.47.2.103]:6163 helo=EUR01-DB5-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fa2AC-0003zS-TO for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:58:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gP9QO3cA6DLSG290YmJ/C8r0B7D7AWYJm0+M+7ejm+o=; b=TzkvF1IRcKDzTNNKpa7aqbUhHBKz8YgDb5DlgwrXdUCnr17hkxgDOGfQ0MIBPXPdadNcHtq7Ec/+xtaoO6gTuEwZHkXbeghwYxdOm5O16cg75jl7gkRFOTN6SV1kqUvld8iOWcWyloVn10fMCg++CLOTDLDlhz0tf2nvTHBci5U= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; Received: from rkaganb.sw.ru (185.231.240.5) by DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.906.26; Mon, 2 Jul 2018 16:58:52 +0000 From: Roman Kagan To: qemu-devel@nongnu.org Date: Mon, 2 Jul 2018 19:58:37 +0300 Message-Id: <20180702165842.11423-2-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180702165842.11423-1-rkagan@virtuozzo.com> References: <20180702165842.11423-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [185.231.240.5] X-ClientProxiedBy: VI1PR08CA0234.eurprd08.prod.outlook.com (2603:10a6:802:15::43) To DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f6ccd8f8-888f-4dfc-3ac3-08d5e03d1838 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1974; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 3:nY/C9tL4ePCEL3AKChd/Y+y5/SOZ9nfnojCp/Arwv/YQyAmQvfw31P9iPkUOsBU7+b7nsifOpY4L5ztCYDq9tsG5YIzlWG+IK4OUYwoXcpWCfMV1ADsFTA0DjxL01Q1pf98vS8OYWDs03dYfFeRuu+H9s1G23ylUyty+96QvbSdkvH0CFkAbGgse9DHInZiEhGZIVV4czxsYMjfdC5UV8Ro5vjG3W0V/8cJXGmxeFUQoUSFplq9zBDkzoK0lp6QN; 25:HnnewR1+iNuT0j5JYoMHuxR7GNkOHi68gVzWrX6cuYkFLZ734Knsa6RJD0GDZpGZMpfugfJ718bUJmpgFeLR+dUsaGiUo0q74NA3qqFn+8DM/P/YuxndCrnZBFBBy8hul4quQKOiDzdisyiFk4fP+k+yYIAYL5B6j3qEOqs7nVeE7r9KngBOZF5pB/OTESGcIV/J2DD6SrIbQNkLuXovNOiwMtAuXVxHca+CEliJdzHRPoOVpmXUWYWpr4Lq/4ugEFK4JNal9u2/8X6bF8v4WV/IO8Yft4YCbeDMQec/0bgs9h0caFq1TSCbZ2Yaic7eDLPwc/xSaKraJel/So9W+A==; 31:TYEndU7WIqEI39Qsc7/BUZVpruzUQAs3awmWCCg0nTfdf2K3a4zlxI1CqnuGaoIdX3GjbvSYNXW6kWZRdgvEtmMjy4Q9N3Eyf1puA3leazgLGtjlfbo9C9ZZRn0PKEMFRwpET74HJXzewYMNmoJlUaOOU+XFnEyUuNETd+5Ptda5NwtsaTMRzKfpVq+fMso5DalD04j8Dcn3YuUYf0Bf2AQpMo39CSOD3mTx2h31Bes= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1974: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 20:W7+uypzAp63sWDr//uiL70YbycvsQxXuN+fJL1lvQlfWlR0ugk+q5GGrzbkMVnZDSt+XgPZZHd5C8LgnmdX/YMrlXqlqpUFKv7D2OnUv8ufyplU3Vb1QVHnt5B177KAWPGBaN9UxRk6WRRTROWWz8UI3yx9/KICDKXKGeLv9JqFXV90N1+e3UZKgcj30KcZnOCcMijOC1YkeqiIQZ8kjJBZfSZnD6I/nyCjGyRRfegKftAVQcyuMYnXGqMFJNvg6ZC5CQPHUKgwRbNrKkum4LzX9l5pHGigns4wjg0x/OHAk7c0E/ssADTj7B2gG0qopHOsSOP37+boC2Bfk2MO3s/NIC6B4CKpzyA1gkRa6EPhSkSNOPD4gBxXGWb9JOzuvoZc4rMF9gbJBlzjwZFtNLice6bNFsMGwWMHhqRSN3IuEgJxsTqriM7i2qgh5yD/9d22Ges9En/NsQhdOmjUKVIkQaJOfZqGtUn7dFWIE/3nfBn5uaTsl+dC4+CzMGMEy; 4:144yksG9SQXUOkERkbZhuiGIodGEdB7rwiWso7+mPOzciJgrMJMELOKz288q2BdvVFxVZ4/TLiqdhzgaSqeqfmdIqchUmXNnpaIm2Rq98LJAjhhP75YcUCeaB0SC7mPJY6hUg9D6NNjNJRDMKKVP1OJv+x42q97MmK1cUHVw38xiZg0rgCHfUkOAWZrQpofqM9H4H7q9n2jCAq4uod1bjInQd5Cm3L6BwyGAiVA2brkOnsE8en6EqpFWwwvZoZ1Jg7hsTV8sCUS7AC6Mh2VeSA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(3002001)(93006095)(93001095)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:DB6PR0801MB1974; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1974; X-Forefront-PRVS: 07215D0470 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39850400004)(136003)(396003)(376002)(366004)(346002)(189003)(199004)(7736002)(26005)(53936002)(305945005)(4326008)(50466002)(39060400002)(478600001)(6506007)(386003)(186003)(6512007)(51416003)(6486002)(66066001)(47776003)(25786009)(76176011)(97736004)(2906002)(2351001)(52116002)(16526019)(11346002)(105586002)(36756003)(8936002)(69596002)(53416004)(3846002)(6116002)(106356001)(81156014)(81166006)(446003)(2361001)(7416002)(86362001)(54906003)(2616005)(6666003)(16586007)(956004)(316002)(486006)(48376002)(68736007)(1076002)(50226002)(8676002)(476003)(5660300001)(6916009); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1974; H:rkaganb.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0801MB1974; 23:eQM2ecE3PVN0XQJiWH9RghfVkqaUpQFeRmkaaVF?= 9lxz8e0agFUDgEEdSjCjvdaJP+5Rqp/n3UwTpfNF4wzHCE3iGRU7rkdoyC23QX238WSI/NdHTzT7D+O/E/jAUl391eM4VC5/gx4h5LPqeuUAY2TL9T0PfWZ2CT7lf0caq5/Fl8V22BXtozcIZ392epQJOv9C4AYd2tE6l9VaGLMlEAaqcSwlYbgmnRqPpkLH9cDaviA6JnTFJGR/igNwD1TEHfnlrLimzhUrXxts074TxklylePubAsKo0snnQGZz7kaSxn0iwZ/M3X/7aYl6nHftbJdequfsXLCjFMVBEkV/01RR46sY3BjXc3N60rlh9l2Zc6P7VvJhoVKC71eaJ6LaUeYQcaVOTIOrY0wjz2v2dYXMxs93UKBaiSKcfwXAzdNmPPgbX+BfjG3gJATi9ejK0/lT00pzDoSIxz49ueOFObWt5kaxCA+mbrwtA6F2bZEmR75T1AzKbNujg0/m35waq9ty7AjzeWW+UuZ3aIci8w4BV54EGEwqJLLXAw+o1n/7QRfOSeZyKDi7cyMMnDLp+l6coEoN+5A7xos4DYYIfibN1O6Jxq0hnTYaAhXytYWVIgoP7iGWB4zkqrjzWjz3xFv0PdS5eeLdxkgi/Azr7iO61nQdKmX9NfxDfo8R+CL61A5pUoEBWWLmp8GYspOixytJuiejvIo8H/Y8e3awZfvA1SOp4bXlmXCOCaVxyrb1Ls5CCykV0QeoxBqb9ABqoVejHsta3+Mj+lZezzjYLNeZI6kqU+jMUba1nYInZ1QNuSYqDSzjOJKQQs92JyLVFKP6SJ6BnMfM3JNIpylKxDsk7DieaJi/qfBqsSMMO/MOBG6uEzdqg5behzigrEh/F6IKnZXMl1jk49XDiDSyYleHsPb1y3Wpqhr0Php1tK7K6qwAn4ovhjVmpr7Shcj62Q0kJyB+pEq2RUJYy+tln2byW4SStD4pdF3eD3zNBz3OuBpAqLsujqeb5LQj6E1sSdATIwP3TFdzF8INtqD6a8KJaTlCwD2vKJk2mICPPG8rSkucJtQBOWdjOW2z+T0FlDFV/ay7n8TI5nKZ/h4EIxlDtUXTEnc5t2iVoQGEKyyStIwExoGuJCpaS2os2PoZcSJYN0NsAu7xlWFp1hFheZuDG+Vd4s1RMkGKNhyZeDUWZ5Cjnb1Qi95KCHqnudlGLAUpWSfRZ2Ji5jZZ1/oDESKmO+49iXdabBYgoO2u6txc3RTl2VZVy32Hb926xbqiyp9MBRIRTR6r/Z5+GuAvKoWdi5AyEhDO1XHV2Nz+s5KrRUx7wVOhU21DQnqwfGcc X-Microsoft-Antispam-Message-Info: +48SxdMAQzQ3dPncYJvzkefHqZlP8tU3e1RGNXO90nIGHz4atYL2E7gE+vUeYLCdKzj40OqelxXCBfgnuKNBupLVgAIcyzK6Oex8orvWcIZTJ34/TVNYqk6NfClUjP9LXxmj2NBfPXhBu2cX+CqsqiNrlFRvrr/QBavo7pd7a7BSJqvX49kZaErmJkZzOtqVHCFN6uFtK684T4bfs6Dt1MMXsUoRcxvE+e23rTtNrKBhreb5F2OQGu5mNasJe5td6ZcLj0nlrmWGbZsqmuuAD6cv7VUQo89bLQdZ/hGJxrzLGyspS38Nc3HT+gzsgSPxLJL2kCNbh69klmY0lrTVbMIb5iTAakh51Rn6lH+gNdU= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 6:jY7qW2ugNxlIvemHqxzg2/kwlKRGS6w93eFspO44UDN1j45vd9+6z/MBQNfGo1f++a6NjZ22yQbRkYDVSCZHmMUlW9FBi5q3IJcGfzd+7glUNL9kFG9s6ZJbsDJno89NuNhBAvlWrtuft4Su29W3SoS8asg4i+cb8sVJk7kbHdPPxZcrD42sE5K8pBi/JnEqjSu+xVkQtscwoN3vuVvgsrScg6AJ37JPlWzEOFfFofmFIb+pNk/LZ2kGDiisXJxYIGKNrymGZ3M+byGB71Q4RxjyCoCrQsxIY0eytHlbDPArOYEie/vkcBi8uetaHXGYq75yHskTgFRBc5HAkXm5RnKnkv9o8/Az7snIA6YDPnE1rgcfciT9TjqfuquYQGSFyVeQ17xlZpI/JURrm6ndVvVfaIv5dT/ydLGYcqzPh6+vcq6p+UwMBKusQgFNOAZWwZpyAPFZh7006X60RAlP8g==; 5:icC5XSUZ5D2YsM3V30Y5Q1cmRQvmxCqUaBGX+M1lxF/NUnt8vYvvb/H9MR0aa2D8K+5XaQJLr/mZU1wjIMhcFgr74FkZ/nE7qV+4Ln7C9OxVm1Wh6/Rr9l7BhWemtCLiSD+2BjIKTCclHiLu11qTZM9arLeJxmU9gtYtPebr9e8=; 24:buEhpynjvDOoMF2czYp9HEAuIfKMqVaa5PR0X+0jD5Dg2JtzLq4t+BnXcbh6IL4ldrYZoIqJPBgrAIgqu0gy2zpl66+yyJ/HCp/O90z5ZMQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 7:hBNXv5GE8DomDO1x4P71Xqq0AI0Qi5VIdo2XycND9+rxh2Imf+c9RxgacNpiyIx1ry8rcI3abriabtc4siBu5ZwnI+0XSEoHmvu+8SNWa2nShHUiuAoVBsgWRW8WyTndaJc4re/xVf1On1b4CuBtseSZKbGbXcPYuO9nKyIsdXeBkz43+xmQ5uG7urMXl13u4bZhMNPegBnh+qwl3APZOITS8IQFs1z668AiDqjd74OvMsdKJgzP98Imx2/2Itq5; 20:OtKgoc5XbNar17J+QgekAvNWd2w/Y0hweGhZmZRnYleH6dBjkc8onFbhRLkTWn3Ki40shjF0lKRnYGqnOPPmNy5TT55RBTSWGV7RkMsGJN86dkPCDQjck+vHVX7c7CLYmgbXEyZip11Cv64C7qiX33mJqhhoTrYE/W4lBUTkq/I= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2018 16:58:52.9293 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f6ccd8f8-888f-4dfc-3ac3-08d5e03d1838 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1974 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.2.103 Subject: [Qemu-devel] [PATCH 1/6] hyperv_testdev: refactor for better maintainability X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vijayabhaskar Balakrishna , Eduardo Habkost , "Michael S. Tsirkin" , Konrad Rzeszutek Wilk , Venu Busireddy , Liran Alon , Igor Mammedov , Si-Wei Liu , Paolo Bonzini , Boris Ostrovsky , Karl Heubaum , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Make hyperv_testdev slightly easier to follow and enhance in future. For that, put the hyperv sint routes (wrapped in a helper structure) on a linked list rather than a fixed-size array. Besides, this way HvSintRoute can be treated as an opaque structure, allowing for easier refactoring of the core Hyper-V SynIC code in followup pathches. Signed-off-by: Roman Kagan --- hw/misc/hyperv_testdev.c | 116 +++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 61 deletions(-) diff --git a/hw/misc/hyperv_testdev.c b/hw/misc/hyperv_testdev.c index bf6bbfa8cf..de07d7e8c3 100644 --- a/hw/misc/hyperv_testdev.c +++ b/hw/misc/hyperv_testdev.c @@ -12,6 +12,7 @@ */ #include "qemu/osdep.h" +#include "qemu/queue.h" #include #include "hw/hw.h" #include "hw/qdev.h" @@ -20,12 +21,17 @@ #include "target/i386/hyperv.h" #include "kvm_i386.h" -#define HV_TEST_DEV_MAX_SINT_ROUTES 64 +typedef struct TestSintRoute { + QLIST_ENTRY(TestSintRoute) le; + uint8_t vp_index; + uint8_t sint; + HvSintRoute *sint_route; +} TestSintRoute; struct HypervTestDev { ISADevice parent_obj; MemoryRegion sint_control; - HvSintRoute *sint_route[HV_TEST_DEV_MAX_SINT_ROUTES]; + QLIST_HEAD(, TestSintRoute) sint_routes; }; typedef struct HypervTestDev HypervTestDev; @@ -39,88 +45,76 @@ enum { HV_TEST_DEV_SINT_ROUTE_SET_SINT }; -static int alloc_sint_route_index(HypervTestDev *dev) +static void sint_route_create(HypervTestDev *dev, + uint8_t vp_index, uint8_t sint) { - int i; + TestSintRoute *sint_route; - for (i = 0; i < ARRAY_SIZE(dev->sint_route); i++) { - if (dev->sint_route[i] == NULL) { - return i; - } - } - return -1; -} + sint_route = g_new0(TestSintRoute, 1); + assert(sint_route); -static void free_sint_route_index(HypervTestDev *dev, int i) -{ - assert(i >= 0 && i < ARRAY_SIZE(dev->sint_route)); - dev->sint_route[i] = NULL; + sint_route->vp_index = vp_index; + sint_route->sint = sint; + + sint_route->sint_route = kvm_hv_sint_route_create(vp_index, sint, NULL); + assert(sint_route->sint_route); + + QLIST_INSERT_HEAD(&dev->sint_routes, sint_route, le); } -static int find_sint_route_index(HypervTestDev *dev, uint32_t vp_index, - uint32_t sint) +static TestSintRoute *sint_route_find(HypervTestDev *dev, + uint8_t vp_index, uint8_t sint) { - HvSintRoute *sint_route; - int i; + TestSintRoute *sint_route; - for (i = 0; i < ARRAY_SIZE(dev->sint_route); i++) { - sint_route = dev->sint_route[i]; - if (sint_route && sint_route->vp_index == vp_index && - sint_route->sint == sint) { - return i; + QLIST_FOREACH(sint_route, &dev->sint_routes, le) { + if (sint_route->vp_index == vp_index && sint_route->sint == sint) { + return sint_route; } } - return -1; + assert(false); + return NULL; } -static void hv_synic_test_dev_control(HypervTestDev *dev, uint32_t ctl, - uint32_t vp_index, uint32_t sint) +static void sint_route_destroy(HypervTestDev *dev, + uint8_t vp_index, uint8_t sint) { - int i; - HvSintRoute *sint_route; + TestSintRoute *sint_route; - switch (ctl) { - case HV_TEST_DEV_SINT_ROUTE_CREATE: - i = alloc_sint_route_index(dev); - assert(i >= 0); - sint_route = kvm_hv_sint_route_create(vp_index, sint, NULL); - assert(sint_route); - dev->sint_route[i] = sint_route; - break; - case HV_TEST_DEV_SINT_ROUTE_DESTROY: - i = find_sint_route_index(dev, vp_index, sint); - assert(i >= 0); - sint_route = dev->sint_route[i]; - kvm_hv_sint_route_destroy(sint_route); - free_sint_route_index(dev, i); - break; - case HV_TEST_DEV_SINT_ROUTE_SET_SINT: - i = find_sint_route_index(dev, vp_index, sint); - assert(i >= 0); - sint_route = dev->sint_route[i]; - kvm_hv_sint_route_set_sint(sint_route); - break; - default: - break; - } + sint_route = sint_route_find(dev, vp_index, sint); + QLIST_REMOVE(sint_route, le); + kvm_hv_sint_route_destroy(sint_route->sint_route); + g_free(sint_route); +} + +static void sint_route_set_sint(HypervTestDev *dev, + uint8_t vp_index, uint8_t sint) +{ + TestSintRoute *sint_route; + + sint_route = sint_route_find(dev, vp_index, sint); + + kvm_hv_sint_route_set_sint(sint_route->sint_route); } static void hv_test_dev_control(void *opaque, hwaddr addr, uint64_t data, uint32_t len) { HypervTestDev *dev = HYPERV_TEST_DEV(opaque); - uint8_t ctl; + uint8_t sint = data & 0xFF; + uint8_t vp_index = (data >> 8ULL) & 0xFF; + uint8_t ctl = (data >> 16ULL) & 0xFF; - ctl = (data >> 16ULL) & 0xFF; switch (ctl) { case HV_TEST_DEV_SINT_ROUTE_CREATE: + sint_route_create(dev, vp_index, sint); + break; case HV_TEST_DEV_SINT_ROUTE_DESTROY: - case HV_TEST_DEV_SINT_ROUTE_SET_SINT: { - uint8_t sint = data & 0xFF; - uint8_t vp_index = (data >> 8ULL) & 0xFF; - hv_synic_test_dev_control(dev, ctl, vp_index, sint); + sint_route_destroy(dev, vp_index, sint); + break; + case HV_TEST_DEV_SINT_ROUTE_SET_SINT: + sint_route_set_sint(dev, vp_index, sint); break; - } default: break; } @@ -139,7 +133,7 @@ static void hv_test_dev_realizefn(DeviceState *d, Error **errp) HypervTestDev *dev = HYPERV_TEST_DEV(d); MemoryRegion *io = isa_address_space_io(isa); - memset(dev->sint_route, 0, sizeof(dev->sint_route)); + QLIST_INIT(&dev->sint_routes); memory_region_init_io(&dev->sint_control, OBJECT(dev), &synic_test_sint_ops, dev, "hyperv-testdev-ctl", 4); From patchwork Mon Jul 2 16:58:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roman Kagan X-Patchwork-Id: 938082 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="A5gMZfjZ"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41KDL12YkGz9s4Z for ; Tue, 3 Jul 2018 03:11:05 +1000 (AEST) Received: from localhost ([::1]:34402 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2Lu-0007rD-5x for incoming@patchwork.ozlabs.org; Mon, 02 Jul 2018 13:11:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59388) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2AJ-0007nt-58 for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fa2AF-00042J-B3 for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:03 -0400 Received: from mail-db5eur01on0093.outbound.protection.outlook.com ([104.47.2.93]:14944 helo=EUR01-DB5-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fa2AF-00041L-0b for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:58:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pax2d68xuYZyaTxOSJWnO9DiqXNwqJmRO5b2znuh7c4=; b=A5gMZfjZp3fKayv1Rz2rJQqelMQBQY02AQBtAxDlcuWEWVVzauiu7ytLZXBperMVOYEFyZgDSr598Poz8ZSfnQKh+XNlCjHoL+WeyrfGEpRSam6BHw69keq6SUm65LVdbJcoGXtRxIKYOikPd6v6r6e81udk7njOrCGrstgYwr8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; Received: from rkaganb.sw.ru (185.231.240.5) by DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.906.26; Mon, 2 Jul 2018 16:58:55 +0000 From: Roman Kagan To: qemu-devel@nongnu.org Date: Mon, 2 Jul 2018 19:58:38 +0300 Message-Id: <20180702165842.11423-3-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180702165842.11423-1-rkagan@virtuozzo.com> References: <20180702165842.11423-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [185.231.240.5] X-ClientProxiedBy: VI1PR08CA0234.eurprd08.prod.outlook.com (2603:10a6:802:15::43) To DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ff6ec750-dc5a-40c1-af1d-08d5e03d197b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1974; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 3:ZraJ5NVq1OWpNW/jj+pG3KiY5Rhc/wFByiXKqQWuuO9j64GsV/2f3jKXsERkzrEGqY0+NTTO3mOkr0dvmkVPVxXdu9uchpSmIAR81da4pGwJg0QO44ospsr8x409zW6XUhijUm+h+95ASbVqBCIASRzrihcNPhwzthJT8LXNzu4do/i0IPag6wWGnD6kTFcQhLpfn75wukl3UBSvLrezW91WZcLazHvU0X6X889MY7CwHovBUzwXZFOO8z4H/vB2; 25:De4hdl/2Z+GOJFlcnOB2TgUERf+rxctKZ3EV+RbkvOZcrLD7rRptY3aNgV89L/fAnXEAQ8lU8legYWhbhQ7M2ShnyaypEWKqxXw3h7I08MZNfakzu6d5hQ8d6LJCeJLUTbHDKHmglTfiAZ21CVknl2norDqC7+/f5Ga3a4lbwk1oXX9RS6JW0oojXG33hDfTJNhhyRIeRlXXLyPLBRRgM110BzvSx1tl7TvDlGEqPhVYot0RfjXrhQveWDa9dKzmdaADJe2u3CxdiASQBqF8DTzLulUXUD5AOqyoC6j6XO5vFHjc1rrfRqyfbyFnb/+lKkjRuaVL9SD3M2m52KnTqw==; 31:Tg5wVrJzXucyhTR9iYjXnnvISxRE+VxTBLuxYSHmjmVJ6GeJt64FczyEhkL5otN4O0jzLE4z2kv8z4TH3zvbWYJ/3glTyws2RSExz7CduRpNbacNsQOJN2jGsnE1cxrIsNMgy7dtLesBVo81TxyLrQl/mmf7hGYDGzbJnw1oRgBR/mKCIHBSKbjUt6HmBgIj5vEVdcADiLKmdq0T7e7XIeEySjlXM78dWElJDJ+xfig= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1974: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 20:SKCYOpsi0hncZ9tg5sLm6Rnma+AoEECOAz6GtAchEtb5JtsNQMTBlG7QX+iF2hOU296p24ID57y8dEc6mKc3f5mxsww4gR9uKK2t4Cw4ux4M5oqPG2p3zijjtriqCblzmgq0kzGu20PPpmXiqNPwKnBqYUumAfTbxN5ku+TWOWbSjvGhsFucWrzYfjAxJwc5ROSerfGjSqYE1xiYqII14bL2ni3dSak/MZOBUbrOnc1A9xtqwoFH5ChMRK8f+DuOKsdZFgadxYvL926Zx6/37OyrXsdT6iY2bOwY2otOndsWZZG2CzxsCbRBjF9ZP7MAx5Cv2OzzGNZv85611GIKq0V31jGtaPcoV02+oSA825Uw7a83/FI45pfEw83aw6FR/xhFmzEWnKKdGiQfAujChJ43OK12Rv6sffKDd0bblCyAvF1vkX7s0NXXirhOb+kdK+Ym2TaC6ctpf73+zpVXs3JpojBiqcXgzDNtbbtr0rilj8rlsr7JqVRIvxVeUkYF; 4:zQrC6ByOK45gDUt6GSbAOwbptJDAf9ZbxiLD9CTi/H9L69AIMgxh421cCLI5gaQC2hnoUTLVIZxT1xnOW2Qzq3wMv8EngAEM/k7mqw1EXrLHnj9J0odkYePSUhqo46X0TQZV4ZMe0Xnzc5Uu+9s+Ok+vmEfgvdSoSwjOWkUhbACdzWmAa87pFiUtZp1gM01zsAzvu1EbEf6cYmvWCgiNmJ5CFZX2tQJey109+OXlZeeDPzQ8hWWODdr4y/wI0Dl1gDfqQlO8F7umy3usYvRqBg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(3002001)(93006095)(93001095)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:DB6PR0801MB1974; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1974; X-Forefront-PRVS: 07215D0470 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39850400004)(136003)(396003)(376002)(366004)(346002)(189003)(199004)(14444005)(7736002)(26005)(53936002)(305945005)(4326008)(50466002)(39060400002)(478600001)(6506007)(386003)(186003)(6512007)(51416003)(6486002)(66066001)(47776003)(25786009)(76176011)(97736004)(2906002)(2351001)(52116002)(16526019)(11346002)(105586002)(36756003)(8936002)(69596002)(53416004)(3846002)(6116002)(106356001)(81156014)(81166006)(446003)(2361001)(7416002)(86362001)(54906003)(2616005)(6666003)(16586007)(956004)(316002)(486006)(48376002)(68736007)(1076002)(50226002)(8676002)(476003)(5660300001)(6916009); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1974; H:rkaganb.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0801MB1974; 23:UWSGmUF1KV2mB9CBpducW83JFvkR3KbIYKJLiWb?= mF0+ImMB6gzpBj7JhjlOBsWacsLNY5UMZdpJ8K2Kg9Lmy5/sGvbNrCnmA/UGSlx+3EPRTgaOoKOOqOxeL6NH/xVdBzBFJb3aWQMY9lNMcHMMhVqrJOA2cqym+hkwiJyvrnxuegc7JFfWGOV2evvyx2YcdIrCNVhkwiFAzAL1fsC3OOu/+XzcrqOwBvyH2P71Cxw2YSnG+bA+sVF5e2qnTn7CcJ+G2IacwSdXEm+VcPQDOX3+s8YrKbFPLrZ1wGJiOxGaf4P+dq7EQ9a57m054L9upQ60bpn5kudCsEuAq6xamwI6+s0Ad0dqTZqzztjqgjytXib+x31s2zTOWnZ861beAF1HpZ44HKH6HvQjWybVN0nzOFtqAnytYPsyDg7uHDbHulpxIsqp6OTIdoDY3IB8zgBI4C36WMlfr7yFicHIpVW/QJunV3EqviNv9neU8L3G41b3nLPFHkpehM+OWsWu3bIongYWFQkQPUHFKSS9GbDA6Zvx7Koh0mPEx4beNxmmnN4UR0yk071TR3vDmlrhj+c8/UObmydqACdWuv3QLW04HIbZHeFProoOhP5fVwTiom79fD2Riz2aRpb8aR2CMbfjk6CxdR8BrCKM0Ri5h9Vv9OmvvrBN3B9Jn5XlQ1wvktVPLtAWqHCRFEPKa0bpVKyLuXEAM2VI4YZ/uqbgffEYTh8d1pQfNEahLVKre/mq5dFIACdNygd8pUWVwcLRsjTp4Sz/YYr2gr+U6SxIZ9Mz6cETVmVYW/Nv6aF2Qzjxo9GheGbAEbNzKQjEfSVvirfKQHaVd4tCjUu0mYtGfAXbSWtme2+j7zceaDFJwkFOQZd5isapXXXyMsRoi65PT74B9Mp3Y5gWpy0zeSPZcPz+tOvNTPqivaLfe1q9ipAcbH0Mk72gYMPbivtaMfuyRA2xhBQJxf4cf5shnU/RipR64ItaPQSGgSOXf1mLtiaL/5fH6jZngyqFhdsBzgD5F9rbVGdZSIFRmAx5THBxv0970P3fuImBrIJduDy3zLxoXmSqri5rIIxmIOwxpJZqw6/QP2DvVjcPXmU20wBDFp9ku63YOSDGxbRJkNO0qKgsV85NQ1Q4knelr4cdfBKInLhgH3uvy3nVIvErPFYX/Rp6fw+WwFvkgJZMr7M8UTiiQlHtKBX0H/81gZGPkDWimNTqLtnWwqozUaHMIEWM/yl+snPJO4fEF08jBuMn1RNUce59ATZQDeZV6SIdHv4/aV33IspI2xEjmBENEmpeu7A5uv2V/DZUahCiE5v0cR9fjWCIonlfDP6sEqqAHeOOB6AhG7RykO+kAHMjiVHO+WQ== X-Microsoft-Antispam-Message-Info: YVHvz1C46mJ2ulF16mXr7rSDXo0DjDnnd6r0wwZUapUL4B7C8xc+1kkubFUFwoa74pwrjYJZYpDj/5KsaFsRdO4w0495aK0naPHpDsxob6VEzcHj8FUzPOtI+SBEQ7h2vgh4BmU2q3Ny0CZPcJcrie31E/r0ODGTCkjAZf8aYlenpovAAJLNi9FAuJQI76oTp6eZTgCoQRL7xsc9dOCTNQRqlXQ7vCQu1iU3V3JW7edDrLMjqwyqxQz4gZmgf0bI/9KPYgEFjP6VWOIFtVfVXwZDlbeqqlOf5RlGS14nG1M4233ncj6h4jkeO6Lv1Fow7TjmzOQ7o6NvEf7jGsoynUYi1WAv2sF1O2ye0YuRlf0= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 6:4etf2J4NDRc7ZUKivv90QezEmZgcWuTlgfmqEKgqDGfMwY3AQTsEaeNoEoluv9fqnVqAVNhlu3ekjsyeEF2jHXx6xqcQ5WWi36qISIjiAEsKGO9nalHLM3G3gNv5J8Qi0mx8xfmc+UTjyGuXijGpjiMgOImlCrfM4khDjwKM0Fpbl0JM9L/N6ZcpqYahgTkMPx+Bgc1c0XZL/wHxlvQ8PO09KxKVYt+0SAkfWk69td4LBv3AAr2s+AiIJFJNAlIRzNd5ynB28paj5GTA7b0cb5fIcr3ovwdky6Y8QEwNSfWT/4Avoyi/x8gcjcE7US42BsogSz7hxYn55ekC/Wood2SshlpzC5qQ4Cam8WFzUGPvHOQXnLVpo/AcDElJSMeCn5pxrq1OptB+/tCQnhrnfUdyWTEW9gYB3TrZrYPxbb6mBHZf3jx73TRWbNPLA65QVlv04akdgcqAoDY1urO7Qg==; 5:yUGsas9xfvS9F5Ph0zsg9C1OZyvAtdjSQFzGme4C8dJ8Om3SI2c6c0A0FW8Zww43L/aITBUhjxQzMLt4opO5Kx/LKGv9uWHedPoT6wtZGlt7OyNC348adH59H+LzldwAxOuInTvYCv4PPLgBNfL6Vi8ed6WTFcxn4RN+5mzgDNU=; 24:qoHXujvA6A27ILzzvbBrv//ROQc88A9m0WsMgWedSIC24w5oBqhTjFKnczOZk3CXUdSUx66c6eECf0pyO084YxVLfFbQJkVLYHJETlWzwoM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 7:gIU64Qqno/d8vaZgTk95DmNLqqFONaQLYjsi6DXAzaffB5l8F9h29DuaXMaVKIG/5c0sRrDW/YZ/4thuuumTX2NgsXdiJ0YMOB1XLQ0gNxPMZ+Z1G6Q2O498zxTAQdkAMe18TsuUkBRnKzswNuTIFWhdrBFI74buOu23vNVzL8mf5/1bKZCOBDi/6+Y2+C3JCSfXke7n6Cs7fZsn3gDmLqah+m0vFVgeRMM28toD7787oDQ92nNKiQ6rLHxyMb/7; 20:BNBPoeO7Oqi8sSi7yTv9YITqfYSvCR2mnHalo8QKD5N7JxvM3GN4sB1i7j0FvcQ2kpYFe/naY0j4m0qme9G94EuNHK3g4hi2Zz4EG+fvX1Qn9MdoYyXXWwSzlEwAlOike8ZRjqhVTrnbXe/cX+1Yqo+Eli08GN/mSMzpZPcsT1w= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2018 16:58:55.0501 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ff6ec750-dc5a-40c1-af1d-08d5e03d197b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1974 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.2.93 Subject: [Qemu-devel] [PATCH 2/6] hyperv: cosmetic: g_malloc -> g_new X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vijayabhaskar Balakrishna , Eduardo Habkost , "Michael S. Tsirkin" , Konrad Rzeszutek Wilk , Venu Busireddy , Liran Alon , Igor Mammedov , Si-Wei Liu , Paolo Bonzini , Boris Ostrovsky , Karl Heubaum , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Roman Kagan --- target/i386/hyperv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/hyperv.c b/target/i386/hyperv.c index 3065d765ed..47368b77c0 100644 --- a/target/i386/hyperv.c +++ b/target/i386/hyperv.c @@ -88,7 +88,7 @@ HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, HvSintRoute *sint_route; int r, gsi; - sint_route = g_malloc0(sizeof(*sint_route)); + sint_route = g_new0(HvSintRoute, 1); r = event_notifier_init(&sint_route->sint_set_notifier, false); if (r) { goto err; From patchwork Mon Jul 2 16:58:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roman Kagan X-Patchwork-Id: 938078 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="aeMHmwUt"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41KDBR45x8z9s4Z for ; Tue, 3 Jul 2018 03:04:31 +1000 (AEST) Received: from localhost ([::1]:34346 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2FZ-0002wC-6M for incoming@patchwork.ozlabs.org; Mon, 02 Jul 2018 13:04:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59442) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2AM-0007rM-Kk for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fa2AI-00045X-Ow for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:06 -0400 Received: from mail-eopbgr80097.outbound.protection.outlook.com ([40.107.8.97]:59505 helo=EUR04-VI1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fa2AI-000440-D5 for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5dhf6hfCBJS0hmk+iXlerSBCbX/RlcSkS0vmyMWZLIA=; b=aeMHmwUt/LapKJVVbWVorxZt4LB86ltQUF6F2XF/g794TO4HGixJ0OCiWs3xWvqzxDLi/o0J1Zds0oRNnth2CLdm0BYq6dtA4CevwDPv4+mh3Um2uRfSF6n8zgCndNk5hmCt9KHtEsoDq1BhJjzfh9x/elSK7Ladl0vgHRZpuzo= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; Received: from rkaganb.sw.ru (185.231.240.5) by DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.906.26; Mon, 2 Jul 2018 16:58:57 +0000 From: Roman Kagan To: qemu-devel@nongnu.org Date: Mon, 2 Jul 2018 19:58:39 +0300 Message-Id: <20180702165842.11423-4-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180702165842.11423-1-rkagan@virtuozzo.com> References: <20180702165842.11423-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [185.231.240.5] X-ClientProxiedBy: VI1PR08CA0234.eurprd08.prod.outlook.com (2603:10a6:802:15::43) To DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e6b6d92c-23e9-4130-91b1-08d5e03d1b4a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1974; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 3:4xoYgiOj/yeNdngRqDsWnwHjbuhPJX6hlxevUlNqZ8Bp80IHlpvBA0hf4meRjBGT7JpT5UCVUdzvbeGQXvBhrgdC/ImfE3J4A7mWCltw9Lm8q8y0d9k9sbbdXrjuDn9x7UMdR0qxaorWCP3w6ucjADG7IEl5+bUG4fT8U4HQO7WPshHbnQNsr5KS4sf/hT/pWvb5IgoByy06CbCHPbWH/58AvWukCsIdrk/iFmSMMMm5Y3S0sD55bXDcl6I+1TFE; 25:AtZ1eq1WoQyfohgBCW8ZEBhXlfErOgHU7Gp4S5w6xzt57A5w+tYjiQK1WZYcTE1TCED7GfdNID0LRO5KLz0RIDaWmZDy0BJX/6EQnRrpcVRlFK7PXgWZHPwMXdn+yKXEqw2upUeeHWwSB0JDve9+5eyQfsNSC33zSeXYD9YiqWcIMUAWaAudgq5anpBV3FKyhnJjfp8mRfM5MxsVAedbXWZdsoinjRnTZPO2PDpaHQkg/Yrs025QIf9HXSXXWFIQ/pCfsTlbGpjKaD6/B1Ccvp9mJTZpk/JcbpnyFYorcwZ8N4zuubUgN+bwEz5bvqTp1tabK77yt0USQXPcxb5RKw==; 31:TbF+8ZBLA/j+Wq9Tt80lSZUIIwsls6iLLsZLAlvWDcMBq4uZVvz/o0el7KawRfHXxPV+j1BKWR7izDOovp/SSFHp3vAT8ULvSNQOGzxia4mH0Hu+a0Mxets0Tv6nxUKtRzTzTF+e+fDRHn7uweuS6V6aR127OwNc617o8ZSV6suQg4sUw6MJIT8vFsdj0k+N+JPDnDVvPbGgk7TmtlbZ01vaNbAVQ2sXnVYOzrjIQJY= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1974: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 20:H4IIlTcGP6spVHpENdzHCok/D96NRLLXwiJzaHnZFrQsGfiTMNaJIPTffDVWSwjWUuw1M9BRF68jeZAouT2Vn6L3g0uaztWvvrgYelTDc+aoefsPuxbDxbPdnBVDtMXzc3M7lF5qVADW7HggBYdqN3qtzCb9IDP6Vwtm59xOjdT5vv6sRxJ4ucwIHUU8LuoA0HthLAhzjWy2hkTm6fXTFaVgHGgaSOKjg0of1ByDCQeKAwxAXdASyuYhSi/14zBl69ftOVq8n37H/7u+RqKiMkJVvqU3WbSSZjAF3Rx8aU9mBlFMO0j/yVk7Z1+/OaC2tycZk70GFYplhhVQB8za/0ZFUb/ffWtYZB5DXVMUbp/D/cR69L54oIcbsTBh/k90C4HizgDjtsvodJnuR0tNsyGBtFLpWt3CeVdpns6RcIDBW2fwra1BSzXEoHNniiQUCrdPyRok6WgvrqhKkIZ7tOm3T4Ac6GMg02bX1XD30CtCWzzlEOL7IINgr4g7w51J; 4:rtQKnl5e5+1fSYGQ+MVQps+KjNUoBIWQgfVhqiD0dlIfUqt0y5HmKYFUm16zaYlSd9ORM6t2vHLYV0z6KZz8+jU6wutXOC8CVY1H4c4+XAUBImfZ/qGZAQdQpO7c0PXYb33eQE4Umf+barcnj8mj7DSYfDDtOJXaxLaB70zhGIAl655IJE3M1ekGlEDJPLVV3KVv2gdtPNJeQxlagmmrI5jQ3t/B+jBs7f4IQ9b00nzh9mgEB5OvJr2ZefnlIRdp6tTekgdZFu/TRtUmo/leww== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(3002001)(93006095)(93001095)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:DB6PR0801MB1974; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1974; X-Forefront-PRVS: 07215D0470 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39850400004)(136003)(396003)(376002)(366004)(346002)(189003)(199004)(7736002)(26005)(53936002)(305945005)(4326008)(50466002)(39060400002)(478600001)(6506007)(386003)(186003)(6512007)(51416003)(6486002)(66066001)(47776003)(25786009)(76176011)(97736004)(2906002)(2351001)(52116002)(16526019)(11346002)(105586002)(36756003)(8936002)(69596002)(53416004)(3846002)(6116002)(106356001)(81156014)(81166006)(446003)(2361001)(7416002)(86362001)(54906003)(2616005)(6666003)(16586007)(956004)(316002)(486006)(48376002)(68736007)(1076002)(50226002)(8676002)(476003)(5660300001)(6916009)(575784001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1974; H:rkaganb.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0801MB1974; 23:6eQUNuF0L/8l7FaGUQQyFJg5yrW/gdFcLBeZnnZ?= 7Ar4ZmfEC7muT7gKrialSOMJ9coQXpxHTasTgPCFwKy+JT8fVKGiTLgWWzU+y4kno93TyyjHHja7FFVBX0lVoJ/8HVz6nXQeKE+KlJuf9pgP/apLTXAykyBY2ySM4pH50LREQRtYzQUH/pRBdZAayU8u8c802st4AJ18LLa071mVgRsxgx8IprEj6tckohGha0KZIXc5Mluc2ncSMIXOQhMPy8OROxI3ZEKyUkPwqXk/RBzuoXifLt15SxX1kqWuBIQ/00XCjTxLEdaZsOs7gCJcj5hX4quQ0IAGEk0DthqRs1i+hDtID0UD62uMmKZntAS2XT1yG78KxaN71pbdyeC1RQLYO3gJI372mtoHf9Qzl/kKCfFPaczHJ8Z4hpIk/yGqWcFm9wMCjtEKqku7e3lXhaJOzMC/paar2OxsR260FNhNOY8KdPpE7KOcy/GlAM/dG6gtGgzbGB04aG6lK12ubgA+fV4e2l79qAPWMitOLgO9lQzgxswsIRj+dTc3QXxFN6qSuypNz3Xzb+oj7c25pkn8T04SzpTp/I7ar9Ju6bAe372j9TSm6B9FCKKX0b3sSDcjRBcFCjD80C2RQY/Ir462hcKaXKJ3sdytduXgXHD9zBFkTOpRLKTTxgxrgtZrS9wvphXI3IgYdOkTDmInS0NMf9kCaMI/RKWkJll/HxPlPqWCJgO7QBkirE133yJMykLGhzcB61+mNO4n0BmI6azVESwMfjvg5mgKmrvFpRtreitNFAbFRiNMugPxvekB6NX5KK+TKW79PV3HIXSHWQqw1pgshznNWZ3XWQEv4MKHJ2VqpXHB1pwf3oeEYc7NTL8FZflkk7agSRLt0OgOrrgQOqOF93WEncs5kmOm1aO344zdvHOd+5Q5lGdVW5N2Te9YD2My1lyU3Pnl/T651XaCraBe83AuhbPwDnEJkg6nC7NtiZ6cxlDPNOlEPp28RRd5s9lOkSfhl6129+HyxmW7mBWJKSZzD4kQym0N7tdwbiHsGkD2Mu0ESWCGe3Pr05q0zrnlZ97KheToPPiOCYq0xEqRAbPwfNoQto+WanVQByUdxvPQdEfdvQQRVKQmeSxUuK0jsMWc0kWiYJMoWSH+II5tazWXERVJPxRuyDDbfrvHfJWYK7m85ZTfA153/CtO9jq0gNlp7EqqYpHF6A6r6ywBPKbfic0UkbOEh2D6P1qUvMa/jLbUsCXx80o0TBQeD2P61DuEjhvW70N4OD9+sej451pUuZYxlxJ7mX9iWFAizlJeauKTZOK/eKiVmm6ZB8wTPQ1CK4BtHNQJj3lf11eXP5ywRSXf6A58e1w== X-Microsoft-Antispam-Message-Info: 9gMmLMpwwl1tb5Pi3G61JmHSGG99dgCkBfb+t/AAx5YV3vYw2JHOHYyuNEjVv32QI+OzVGVtG9rVhH8mh1R6ph+cJOahJS0xOHy77/NXLgMVhoSCVo9c1BdS1AOXSa71cJT5nnFJAFireuSb747a1PTllFJViWH7uyN0Ad4khFKDg+d1G9i8mXmXU3Dkr4Why4d2x7T4yxf2WFmWprJ4T8Y5H5LvmfFNh6f7nv6lUzv+Fiksdh5DX3gdlgJqc3xLaBkwp13+SJbKPKC4yf0L0dR8xeeseL/inqk4R6gKLc0HsN2DCgbLD8zQ4HmvhInmAiLHtnwgnfKeJpmMhSWXvRmTLvEoBGtAiJe0yN72y4E= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 6:WnMdUO9/SJFJi7uFX6SZsWkuxT8oxDqYIHVQD7u0W9rLkCR83t5pGf6L2z0IbgHGIo0daUpIZrveaogDYfPqDe9o8LJlB2PK+z3W9RWtJpuMHaAn5GvXZJbLksvPA9RvtsghFhic3uAr4yO3bV/fawEXnzllNo3Fvco/TCQV+KDhWIMkBCpuIvFJ1P2axf2yYVM+yl1MKm9yb19JleAM3zD6KUtHWkP7MgycWoOf3NVwuUiIsYQpHYUZVItpxPNlM6NiTWbXqlOv26n8+3N/phk8+eIkAUoByfmR6OxAbQd0wPMQY4j6Kj576EUfa3xRNJ01AV5imgvRDhC6rjiq4Vh9c/uTrGG/kPAMW5FYLlIO/rrIobMTXLTcY848zLoPzfI9UTUuFAhn4VOsVm57eprB0M2plNWWxVNjE+6yXVa9xzBmd6wZYiaJGI7i4ftzsALw3QELZ4Crv4Oo3fR3dw==; 5:ZVHTYsXtKRBku4QbYDL7oMwFhHYIFLoQhlZ1I2n9W47PXGC2v4MpxoKcBjlC0z1Jb4zOOu6yzHCqmu5SsRq8Jj2DGqUXoFn2p1kb1wRp46CAKTKrjZ1Uo7OQpECMdOxH0WokNEEISArWVaiVXLAB9gQVIZFbLxB/+p2/wd5ZVRo=; 24:53veB2uS+vsSPKwxgljK1qsniJpAiEOVFwOxPVdATOn6td6xI+PkcYMg4vV8CX7MFLt26DwcjaHPsOgMdGGsDBML7DcVpJuEsmjuhfN+bsw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 7:4joBrHZgo5C56qrYIGXwC/1nLX3dVy8ptKgo4+RkjkQOQA+YfJnCkdfld4OThbZ0OigrlWM9gVNoQa8NbaXKEq1GYp++Pl8AlR15Igb09TtvxzObm9iRmsFBg0pZDX8VlRci9SUsqHqWfjdNMED4s9E5ih7keuq5Rwbn3RDMoQ2+Rw9x8wtX531truhMIVgJGsZZN5/JwI9J/cdXMlNk/8LZ9J3p2OOgwtcpFn4UFJbzKHJ+qJmc3iHwDElsPmpK; 20:J7N1ISNIa0Ry3KawoITULjShb82a5jouDu0MbtgR6phbA4RIqieIy3yrOxXZjdpK/LPDkZvrHtTjM+tVdX6Lz915M5nDjffvWlpV0LQyvSRsgCix9Ve/E4eh5iZm+ifri6s9+5IOQCqT7B4rfgHIo+QgiizakLj/hEy3gSfrOBg= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2018 16:58:57.2680 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e6b6d92c-23e9-4130-91b1-08d5e03d1b4a X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1974 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.8.97 Subject: [Qemu-devel] [PATCH 3/6] hyperv: synic: only setup ack notifier if there's a callback X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vijayabhaskar Balakrishna , Eduardo Habkost , "Michael S. Tsirkin" , Konrad Rzeszutek Wilk , Venu Busireddy , Liran Alon , Igor Mammedov , Si-Wei Liu , Paolo Bonzini , Boris Ostrovsky , Karl Heubaum , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" There's no point setting up an sint ack notifier if no callback is specified. Signed-off-by: Roman Kagan --- target/i386/hyperv.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/target/i386/hyperv.c b/target/i386/hyperv.c index 47368b77c0..acdb0ca9df 100644 --- a/target/i386/hyperv.c +++ b/target/i386/hyperv.c @@ -77,15 +77,14 @@ static void kvm_hv_sint_ack_handler(EventNotifier *notifier) HvSintRoute *sint_route = container_of(notifier, HvSintRoute, sint_ack_notifier); event_notifier_test_and_clear(notifier); - if (sint_route->sint_ack_clb) { - sint_route->sint_ack_clb(sint_route); - } + sint_route->sint_ack_clb(sint_route); } HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, HvSintAckClb sint_ack_clb) { HvSintRoute *sint_route; + EventNotifier *ack_notifier; int r, gsi; sint_route = g_new0(HvSintRoute, 1); @@ -94,13 +93,15 @@ HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, goto err; } - r = event_notifier_init(&sint_route->sint_ack_notifier, false); - if (r) { - goto err_sint_set_notifier; - } + ack_notifier = sint_ack_clb ? &sint_route->sint_ack_notifier : NULL; + if (ack_notifier) { + r = event_notifier_init(ack_notifier, false); + if (r) { + goto err_sint_set_notifier; + } - event_notifier_set_handler(&sint_route->sint_ack_notifier, - kvm_hv_sint_ack_handler); + event_notifier_set_handler(ack_notifier, kvm_hv_sint_ack_handler); + } gsi = kvm_irqchip_add_hv_sint_route(kvm_state, vp_index, sint); if (gsi < 0) { @@ -109,7 +110,7 @@ HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, r = kvm_irqchip_add_irqfd_notifier_gsi(kvm_state, &sint_route->sint_set_notifier, - &sint_route->sint_ack_notifier, gsi); + ack_notifier, gsi); if (r) { goto err_irqfd; } @@ -123,8 +124,10 @@ HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, err_irqfd: kvm_irqchip_release_virq(kvm_state, gsi); err_gsi: - event_notifier_set_handler(&sint_route->sint_ack_notifier, NULL); - event_notifier_cleanup(&sint_route->sint_ack_notifier); + if (ack_notifier) { + event_notifier_set_handler(ack_notifier, NULL); + event_notifier_cleanup(ack_notifier); + } err_sint_set_notifier: event_notifier_cleanup(&sint_route->sint_set_notifier); err: @@ -139,8 +142,10 @@ void kvm_hv_sint_route_destroy(HvSintRoute *sint_route) &sint_route->sint_set_notifier, sint_route->gsi); kvm_irqchip_release_virq(kvm_state, sint_route->gsi); - event_notifier_set_handler(&sint_route->sint_ack_notifier, NULL); - event_notifier_cleanup(&sint_route->sint_ack_notifier); + if (sint_route->sint_ack_clb) { + event_notifier_set_handler(&sint_route->sint_ack_notifier, NULL); + event_notifier_cleanup(&sint_route->sint_ack_notifier); + } event_notifier_cleanup(&sint_route->sint_set_notifier); g_free(sint_route); } From patchwork Mon Jul 2 16:58:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roman Kagan X-Patchwork-Id: 938083 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="inM92m8H"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41KDNY3VSyz9s4Z for ; Tue, 3 Jul 2018 03:13:17 +1000 (AEST) Received: from localhost ([::1]:34421 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2O3-0001Qx-3t for incoming@patchwork.ozlabs.org; Mon, 02 Jul 2018 13:13:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59464) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2AO-0007w0-Oh for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fa2AK-00047F-SQ for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:08 -0400 Received: from mail-eopbgr80117.outbound.protection.outlook.com ([40.107.8.117]:8538 helo=EUR04-VI1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fa2AK-000465-GK for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LV5juKlCqKRLJurNvTl9iqwA1kZ2X/IMGmpNHgA+dDA=; b=inM92m8HAfG6ge7RFD/fPC+b/4u61WKTxPeJYtVDxide5+HWKlmzpYRkrIagghsuP9Stxhd1ZNl+tjBbDHqEYBUrYF8ASe1M/YcqwQB2bCC3oGwBivwJsMb2Z+qP3NIS5Z5qtrqbyYzeXWyL4Uxsl0SxD1hTu/W4C23LRLRgwoM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; Received: from rkaganb.sw.ru (185.231.240.5) by DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.906.26; Mon, 2 Jul 2018 16:59:00 +0000 From: Roman Kagan To: qemu-devel@nongnu.org Date: Mon, 2 Jul 2018 19:58:40 +0300 Message-Id: <20180702165842.11423-5-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180702165842.11423-1-rkagan@virtuozzo.com> References: <20180702165842.11423-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [185.231.240.5] X-ClientProxiedBy: VI1PR08CA0234.eurprd08.prod.outlook.com (2603:10a6:802:15::43) To DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 53bde794-5d8e-4937-feb9-08d5e03d1c91 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1974; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 3:RTg1cUawKfvfwepwpOZF7wASmSu9XsyR4FxYHDjRUwB2QqRBq5ZPA0rbKsSSXmI9HtqU1urlK5o5bT9JUIjSTz/WlhCN8oRHX0LwN4Y/8Jbkh/GlL1flvjzSJFzwM+bqIO6JLMPdVEkj+rRmeT6lXGyKzR7eq2KR+oOc2FAlZUey4UEPLXviw8eGnCAvXyu0CV3Yg++c7bTb0+JBz/JnMKKtAzy/V2aisdVEGyRtx8/TNLHNJcGLk47bVJdDGuCM; 25:I3SmFWrLAr22sFZ7X1Iv2GBIaOuz8Hdr7wTxIbsiIuIkngdxR6CFOgVW32RpTKSDPL8EVd8BI/T4MIt4KKd8S/uJ3qmRrUVJ051eaFySC/wp2hCmMGhw85ceOlQx4nn/PU2EjigO6oG5U3fq+/n2CUfsWuf9B5QXHwOb/vaDVKcDmRvNEmM/xzL1bORGVZ9eV4GjTMAjplhIHcTBjd63KqTLO9kY2m2JFnSiiRPC1bjxq9EL6hBW1hpqjqjAqMqjxx2c0dM0ik3pt8hMIE00+HcM8uuTkIByHyAlNfEyADCzV4PKvEMzelxU8ij27o0FwyQeF3+76b3vRlnl6hisfA==; 31:k6pjtxyOmuHgiJ5ZOx3ysKq9D3pY5pS8S/bB/gKlxAxkmKO3xZe8A+hCGEDZKuJAGkvKFOYcEg8qgj/5iOW/rO5hZKDRsHQ1kC5C8W1gxwMqy3b/qS8FThnjAefA1nfjGXIQJqaC2oWbTbn2iJxeqIEdug3/Au5XfDgjxwVnt8CI07jLwpi72vTH2ZNgBnVmxCPjs4tS3nukkw4akszT35wHqSJz9lpZ7aK377uLJcE= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1974: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 20:B5RAvzy71GbO1Cf1zDozAM8xWg2ha9/0JM9HmrzXoweyUqeu8LtIIcGNQLPz4vJOtsDso1D491LDUsHmU2OQ2GUUHndyv8rLFkjKnLah9VOU/D/yij43lgIXuP6iOu6Yak1zrmon/3gVw7IEq9oXpZCpyWjwoWKEz7+6jaEMB+tUgBzOFwFYZcYoL4R0K/zSzH943V6WxHCustPCiF+xLYN6s/hexyCrRDe/T8Shbx0yMwKu4ojvbWqjwRFAOWXv+DCSQ+XAzXEJ3fsG0frT6x1FZi+fwDwUJivYhgCMofgBMAtevU6P5e8DmgWqlYc3Js6sIQUeSoO/fmQgd/UyidCb6J31hjR8Qjk4trp1RG9guHQO69jEbwC9DRfsXRi12rtPJJ0EYmF9ZW/cJdP9gx/saB7KzfEMUVfGoCMVH8WelNtozOsFXEAeE25vvzVzMZN5+8tigyah5bKnBomYM5cCXEmwe9vOI7k9ZtOFHRCKkc8TMZJwN7h1gvony/G9; 4:rodDWSox9uQ9TfeMCSgngBSAVk/K80KzqcBCmMozo5xH8+34C3m5VIR5xNmWGnGYGK3IkFIwUQo6I8U0aElXDbMFzZ4pa2avB7Cjt6FZi//ZTbuEYBp1FZXDY+qdNXgZQxa6aAOW5ysVo1PTc4zXMeIVyq1OzrBPYRR5HNxEsZ4wcWDNH38tnVtB6qDMwxrzUKjzJmmHw7obZ6nC/iVZiNjgg88QH4zDgvJw4B5LF/wOPefoAZAQyik0hGf98l5rgEtiCUQrYIGtQqJqQYR7UQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(3002001)(93006095)(93001095)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:DB6PR0801MB1974; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1974; X-Forefront-PRVS: 07215D0470 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39850400004)(136003)(396003)(376002)(366004)(346002)(189003)(199004)(7736002)(26005)(53936002)(305945005)(4326008)(50466002)(39060400002)(478600001)(6506007)(386003)(186003)(6512007)(51416003)(6486002)(66066001)(47776003)(25786009)(76176011)(97736004)(2906002)(2351001)(52116002)(16526019)(11346002)(105586002)(36756003)(8936002)(69596002)(53416004)(3846002)(6116002)(106356001)(81156014)(81166006)(446003)(2361001)(7416002)(86362001)(54906003)(2616005)(6666003)(16586007)(956004)(316002)(486006)(48376002)(68736007)(1076002)(50226002)(8676002)(476003)(5660300001)(6916009)(575784001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1974; H:rkaganb.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0801MB1974; 23:Q/UBuUThiAUeckYjCCP7ahXRbb4zCpSFtJs9f8/?= Uj2+UFcBGhU9Zoo94krDj28lxX1JH/eVBCYBVzTyInN7SHorJQfoUMSF/R7CPRt+2qXQv2EHA8ApsrRXxwQfxslw6Qn3B3vYpCqJxZB1pM7P/9DWBR0fZtm6RNr/ucjid/oqEJyxGnD54DcTTS+wjTZgqTP3oc+IZvmHuA1I1BetMvhKPJszw9JmBMPC58Ato//5+89OgOnPiXGRWRgqGeLbpDo4enM24CjAdknQxLJiFrMSLDUs22nv/8N/LBLlcjOp5j6gtwmSdjRhKzSt4j/J+pQZt6eYTlzoq++dM8Wy8lqqq/oTZydpOGLzUbUUzEFg8+0SGKnkEFhxmIT4Vy+Uvm6XLZMGfVygwWu132VoHRhzlladcAap50jJmBSqiDBcqAzzU2p4RvAyzdacjUJm41OOzxu+MMokGOMMNwf0v9SKIVM7cE2887PKnYyQlgFFzI/+/K6ccWuru30NmTGoBof/j3dd6iJVoN8CblepeLTkPoKd5E5WtE2rufDobr+FAeO7GewQTefEZlWavWcynCyCxukbEbMXL1AV5jFk6W5p3fxePXdh4ahK22C1ZnCrOA0MRZTRPTGsl0BoKVkR01NtK1uA1XdypRipXAcyW9px3/fyqB4BDXposU2jIYqWjIxGwjp6tTO9b58RtFvVkZWeh55f4Q0XqRqfypT4RJqnZkEkNNa2qzjgTBRycCqUtGCFLe0h/Y+9rGxEn7RF2P7AekZeqO2vsFrPMOQhqmmThzfGiF0Y0n2vVxCYfAUCol63B4MN6oaLQz4kujrjQAeVTykSwsL3SIH+mWbS0GJVWcRAFJcjdbg1dUhEci+db2XlsXPRHJhItLVZlWyDSaY4o+W5TWhdy6KvvPCgxhCmT9TIuXMFiOXY2Cehx24xL96gZYPfgD38IGEoEhOh2C6vCmW98ymJDZ+gHQrXEV8oWZY03TdN5ylnKgmfUpl8gJss1vPA7VsMorF4x5NT7xPdKGVa8FL5RWGrg5Zva3aIwCyh1IiNEqSzK7Q95ucpSbzItkqV6h5J43DA1yaHwKMvHSzsnrnvA8Zhjz15BfUFHGGLyStUZYTNinnf5K87t+UXOfr42pP/RjlRc5dvBA2AJpLjc3EGgRG+LdRaKDsOIfqOLROfXu09HVy399itC5e2aBWEY08PBCYewj0jPolaWRzcVSVX6qSWf077XmFbdiLu1O1egnrbt7D6pJTM1e0JCQ+4dgj6o/Mt7AiSnDVbT0Ydb1d13ktb5BGcn8WM4fXg46oSnianybzqxLSP7lwMU5ecS/mznT+3E1qo10lWE/hc6vH4tb/nkzPrrWw== X-Microsoft-Antispam-Message-Info: aZScy0rg4nmYDqucIaGoI+t31jjlXUoEvQZuEkIGhzXA5LfjDXEV+F879tGKyxdWh1uNpSrUaa3uyhFDz6wRp98mdFo2eFQuH2goEBFaqs31S7pgTOYr0d8++qa+GhCY6czKwt5AiiU3kDwbb/xlCQsY7A/cEi7YqGcm2AaplNOCkVh1MT9wsGuqe2ibqFQaLcjJlYLbfJg6pmNvObYfcCOw/Luq0Fo7tYILtP1PeR/NWyhUsSdjw4cLJjBvVVRXUrBAYGqpV/kWG6AlQbuURx3j36Jy5VdHkR2vhPRlyqiuAkseUxV+xdsiDQ1zBzaP05S4tHbjB0Mx0ItjicmvcpAPL78bRqwOnuFIiDS5TWE= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 6:TGSc7jboDBbuyu0a8XqUjNOyvuWuCbwVrc9uykCKxeyEYdG7WDouUmGuvYnjMQJR4Lwcmaf4kU06lXn3UBEZvlJ45V4Dtw+yIDMe0DQLp66/WbSc1LAmDjbAlsKIsjVaSU1MuPfE9ODk5fSFygbeFawKURVCZElOvmozOcx65fsfd1oEfkaESO0KUcYVGB2ow3pZI2Mu+VCHxYsod34cZAg7yFYJ+KYtu5z4sXh5VtU5E3yIS9Y01x8Vlpu4BX9sNw5mUmIblHjMgKNgrQNkuqNhY3ALNy+50ZA5YdxDbR1RZeJ4XAZTfPE17NuvkB0RnmaN1LOKW7UvWYIRjTHNMPKMVCr17XG/sl9W/kAf9lOlcKR23y4MLHA1s1PQQQuR3+9XXmzuOox8fsNbHamocGSA4vt7lANN/av9yW30k4gztSztgHafsR2RsKnS1qQeHp1ORiwOFeH3Tb7Ua9w0Ww==; 5:PvVE+DmyEcJk7+U3E6ZFDvYOFsHt0n/NSkK08Bml6OdhNHSai9O+yAmzTdcSYOu0/VeFIH7VhfwrVigsoujJbQT8KB76sOis64e0ZkvAJOL7iYypIgbEYscuPx0jdkPndTWB8XINe2XKhAFCjnVxytG5TdEUQbrFbb7Fh+gjBk0=; 24:wwkBZDBKiEV8Nzr/OAUFEvkyYWSou+UthQ3lcLyJkI6dRkcuwcSC95kFo3h62g0MD8CP+Z4oFsgOrX1kMrK6GKksllToFenhtr4i28epLnM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 7:Hsvum3OaWvQYL5c7lrcLWWVJQvnxhVm+3iuO31/6rJQbhSDFM+7bNb4FcFN6HoEiFAT+wPNq3AGZj9US0kE1DBkRdrSCswvoA/tn4zcMX3KnXT07FDcMMz26O6cI5f/GXPBvJVNhvALp4gPeoAaRyJCiiTyXx71i8SqCqPnlKf3eP5Wd1jWIjlfa88Im+LCFS+Mqy9YvTDYZ/OMQTaeY9BOPZr2+BU8LqtALmwXE/4ffSbRiLMCTrnt1D3xQ42oN; 20:YhlFlaX8hP1Kz5Z12cwjvzzTVRVE3XfkhfO3mg2ZOM35WXM9MrR9RWTmM/NrCu+X7anNFZ6HlIZs5PrEzxbsZdWdooqYPrpwTbHnnOlNbtdNCxk13VC5droT4ItYbKqb6mQIh/oA2bxU/HLstoeZv1N+pQAD4x4MLwRA0B52JsA= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2018 16:59:00.2285 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 53bde794-5d8e-4937-feb9-08d5e03d1c91 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1974 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.8.117 Subject: [Qemu-devel] [PATCH 4/6] hyperv: allow passing arbitrary data to sint ack callback X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vijayabhaskar Balakrishna , Eduardo Habkost , "Michael S. Tsirkin" , Konrad Rzeszutek Wilk , Venu Busireddy , Liran Alon , Igor Mammedov , Si-Wei Liu , Paolo Bonzini , Boris Ostrovsky , Karl Heubaum , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Make sint ack callback accept an opaque pointer, that is stored on sint_route at creation time. This allows for more convenient interaction with the callback. Besides, nothing outside hyperv.c should need to know the layout of HvSintRoute fields any more so its declaration can be removed from the header. Signed-off-by: Roman Kagan --- target/i386/hyperv.h | 14 +++----------- hw/misc/hyperv_testdev.c | 2 +- target/i386/hyperv.c | 16 ++++++++++++++-- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/target/i386/hyperv.h b/target/i386/hyperv.h index 00c9b454bb..93f7300dd6 100644 --- a/target/i386/hyperv.h +++ b/target/i386/hyperv.h @@ -19,21 +19,13 @@ #include "qemu/event_notifier.h" typedef struct HvSintRoute HvSintRoute; -typedef void (*HvSintAckClb)(HvSintRoute *sint_route); - -struct HvSintRoute { - uint32_t sint; - uint32_t vp_index; - int gsi; - EventNotifier sint_set_notifier; - EventNotifier sint_ack_notifier; - HvSintAckClb sint_ack_clb; -}; +typedef void (*HvSintAckClb)(void *data); int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit); HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, - HvSintAckClb sint_ack_clb); + HvSintAckClb sint_ack_clb, + void *sint_ack_clb_data); void kvm_hv_sint_route_destroy(HvSintRoute *sint_route); diff --git a/hw/misc/hyperv_testdev.c b/hw/misc/hyperv_testdev.c index de07d7e8c3..50dfa6af64 100644 --- a/hw/misc/hyperv_testdev.c +++ b/hw/misc/hyperv_testdev.c @@ -56,7 +56,7 @@ static void sint_route_create(HypervTestDev *dev, sint_route->vp_index = vp_index; sint_route->sint = sint; - sint_route->sint_route = kvm_hv_sint_route_create(vp_index, sint, NULL); + sint_route->sint_route = kvm_hv_sint_route_create(vp_index, sint, NULL, NULL); assert(sint_route->sint_route); QLIST_INSERT_HEAD(&dev->sint_routes, sint_route, le); diff --git a/target/i386/hyperv.c b/target/i386/hyperv.c index acdb0ca9df..11fd1add2c 100644 --- a/target/i386/hyperv.c +++ b/target/i386/hyperv.c @@ -16,6 +16,16 @@ #include "hyperv.h" #include "hyperv-proto.h" +struct HvSintRoute { + uint32_t sint; + uint32_t vp_index; + int gsi; + EventNotifier sint_set_notifier; + EventNotifier sint_ack_notifier; + HvSintAckClb sint_ack_clb; + void *sint_ack_clb_data; +}; + uint32_t hyperv_vp_index(X86CPU *cpu) { return CPU(cpu)->cpu_index; @@ -77,11 +87,12 @@ static void kvm_hv_sint_ack_handler(EventNotifier *notifier) HvSintRoute *sint_route = container_of(notifier, HvSintRoute, sint_ack_notifier); event_notifier_test_and_clear(notifier); - sint_route->sint_ack_clb(sint_route); + sint_route->sint_ack_clb(sint_route->sint_ack_clb_data); } HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, - HvSintAckClb sint_ack_clb) + HvSintAckClb sint_ack_clb, + void *sint_ack_clb_data) { HvSintRoute *sint_route; EventNotifier *ack_notifier; @@ -116,6 +127,7 @@ HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, } sint_route->gsi = gsi; sint_route->sint_ack_clb = sint_ack_clb; + sint_route->sint_ack_clb_data = sint_ack_clb_data; sint_route->vp_index = vp_index; sint_route->sint = sint; From patchwork Mon Jul 2 16:58:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roman Kagan X-Patchwork-Id: 938084 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="Z5aURR3s"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41KDQh64N6z9s4Z for ; Tue, 3 Jul 2018 03:15:08 +1000 (AEST) Received: from localhost ([::1]:34434 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2Pq-0003oU-Gf for incoming@patchwork.ozlabs.org; Mon, 02 Jul 2018 13:15:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59485) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2AQ-0007xb-Qm for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fa2AM-00048c-VQ for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:10 -0400 Received: from mail-eopbgr80098.outbound.protection.outlook.com ([40.107.8.98]:13312 helo=EUR04-VI1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fa2AM-00047o-IS for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YaMqlj5x28q9zvO9ESgZHi5WvK0p3pWJbDefBw+EBOA=; b=Z5aURR3ssAf6tDAWsPJvEZe7NooPT5ngGsZUg/jrT/la0p+/8wLtx/lNkUmUL5hW3LhRgTLjAn0o6TaP4vxqeGYXnj9GQMRtD6ccXCL4h4t0CF8WV8AJAUcuiU9ynbVUQ/6xIQ/XZB7zTfjv0ZMcmUUMCQTCYTIn6eFkYi9KA6I= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; Received: from rkaganb.sw.ru (185.231.240.5) by DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.906.26; Mon, 2 Jul 2018 16:59:02 +0000 From: Roman Kagan To: qemu-devel@nongnu.org Date: Mon, 2 Jul 2018 19:58:41 +0300 Message-Id: <20180702165842.11423-6-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180702165842.11423-1-rkagan@virtuozzo.com> References: <20180702165842.11423-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [185.231.240.5] X-ClientProxiedBy: VI1PR08CA0234.eurprd08.prod.outlook.com (2603:10a6:802:15::43) To DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2da3e8b3-9686-42d4-7aa0-08d5e03d1dd1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1974; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 3:0gKAkBlfuQHtZ//9C/HjiKdpzfjdUA4SfZAndSJ5eohFQ/OmL+GT/12Cb+aEyjUlaf1zxqLT65QCQtOJY4mh7ucwFHYa6HTUAEoQ2H3NMsSHetMm/XiBPYAqNgoFJTqRgbD3NtsoDjeLVOObLiQXurlfjWY4bfr87v6zgqzx2rHNsBCH8IYDswUCEJ7NZ427d1RSpoL9FO5GcZi2LHJjsm+MWaTP3jwYR67LAKDrIdDa54OOlWEBw4lm8+wgLj+H; 25:Yyz3ebBMdd+2+RW+caqQFYvtrRgXf3aiom7h8vT9mf9Kd5VFVJtsWSED8+W4C1/mf67J1GTOGizexl72jibaS97TDX/SmauYv0UZXXtOHlXaA6TRVwKkkLW9mWS2mOKLuPAGY3gS5WnXsr3/AO0jvw2TgKmJmgxDS/yvnSN7NW6HvhNTafiqBPX7aC86tGkLXFiDUYief7GPYtnnUPJRjUDGXYSKICLytiHBgYWd0Jw/PXh5oeBdViGe2aI6DJo+gvYdytdAU0So11+Pok7rQ7J1Gfm2G/cGP1WMyfposSRillzoGryvK5kAj8HQPtFbMHdFoo0OJKBkUCXhHb6+rA==; 31:X87w0CjR/vzU5CRTFGNoFidY9kwtaKvL0qK+nxL6DAtjNFa0kHggfD4VStzwkYUFoKX9+xEJW0TX4qDu3AzaO/0IVoV3yAakZ3HKkqlYcROxDMVc/JhKJG5StG873597JX6bxDgMEakMqGiSa+aciJx3yibJb1QWeL2BixlYLYWhBYulD7Wv7h5WCt/g3RsTJCzjsa5yZHECOuXeOJtAhCl0fSqBG0QdlUyHh57LxCw= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1974: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 20:SHQp3ds/Rv28rpgUBnmNW9g/51JjKz9smwmh8yP1DgqVy8x+yAEvLTF86DEzCwDiWgFzp67lLgghy7QoTC5NgVMHuFfqC8KGAaMgoB29D7x19TNvQX4Jnaqp9LmR+7buhX9V/0SBneaSg1sNS/Bn1epRuOJybQrIxv9Po4ftPdH5uOiEuwFshpQ1sK9iOSFNq7RPmQDhBUwNT9qKj/v2NgnDapjkNlSsF6FQZFE73X2EEaQX81Xq3zVKo2S+JQ1cHpYO4g4F98Nmm3nmN2EJiR54b085RUY6zp2DIYbuSshFzyoJqF/i16M462c19r5QZE9ldA409e8wnyUKi0EKUCMS1ZJhQiScrukgIJKNsDDxP2oehugUeeQogaDDalUEv6gCEYzGNGITxkosQEd9aSXfBzvpL4pzk0uvJcUv0rv+dYHX4mW4jyCEzl761tdO9HDBS27VPWt+XVKl/e5GaA1ONfrFHndL9r/NkX/Pk4MXNvthMl5iIqOhbDk11T74; 4:qkAf2sV2CRh54zYJ427isISaDuNQDC2k3r5Kp5iY3iAkQshSkRYfExjSYFuBmGu2rrV5vLKpjU1ySNuk1PUPE1lrxmxLFqRZB+C7jYu0q62ssZHSR6Phl6wRD96d/FdjIlHcFKfHvuueHyPfzXwjiNchrsU8EnFD87oUheOvUPUrC7WflwDKAAL+ocfOry5ywlb2mtWbSsvbDR6LCWyr5szugcLzAam1BIHfbmR8HOfzlq9kvRp1LhmzGMky+5+c3aWLTSN1U2DOKWMsjY2A+A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(3002001)(93006095)(93001095)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:DB6PR0801MB1974; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1974; X-Forefront-PRVS: 07215D0470 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6029001)(39850400004)(136003)(396003)(376002)(366004)(346002)(189003)(199004)(7736002)(26005)(53936002)(305945005)(4326008)(50466002)(39060400002)(478600001)(6506007)(386003)(186003)(6512007)(51416003)(6486002)(66066001)(47776003)(25786009)(76176011)(97736004)(2906002)(2351001)(52116002)(16526019)(11346002)(105586002)(36756003)(8936002)(69596002)(53416004)(3846002)(6116002)(106356001)(81156014)(81166006)(446003)(2361001)(7416002)(86362001)(54906003)(2616005)(6666003)(16586007)(956004)(316002)(486006)(48376002)(68736007)(1076002)(50226002)(8676002)(476003)(5660300001)(6916009); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1974; H:rkaganb.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0801MB1974; 23:cYADXBBKlvnf0vdvWig1CHuPc+LuhN6ZDjYW5FS?= L469i6VR40eaed/OZKFfbFuWYE1KZzWy+FjPhG6uhN/sooBwJuc+RvstHNXqLrR4/U9ZQJsyZnOZdhU1VjPrpZcIIsnVP9+aaKIB1djhZNOHccsvZ3gqlHNr+/6KtaTo9PUyuJ16MxPymK4oumUix4O3a3zBfIWslht/MTb2zPg2Y4GgSQ7wrroxl13P/mKG1zsVaTevQG6U078sK77xrpmvIEp9Tz8a/fTWraNIneV8rJsEk9jahp3NkYwNaTPVZrCm8SXe7MS/ib9efCNAeIFi4PLM+y83rKF6uukTiPKvmv7KIRl1s4vQUWLbRhLkn/LDJPGvw9iLNGzlqnlS7oxSLCVLcodxZU2jkpUigM7d91OTqXHP6KlbzoXvY9SdrMAZ1q8rViHTnsxqHij5tUeQYAFEOyzUNJot6JnGKu9P/ibkFrjy0qUCJ0+YLIOz3fvlIRDOaXmNnA5GZ3JKr7qIAcU84pgqwuwfejtr2Ysd+E8CCzEzNknn0KQ0p04eYIgPP8AAZAHlI1snteBQxME0r8goo09zG60H303tqcC60ClMgsbqHdS9rn18GBpGsvIIfalb/7jQOhEju7noCkh1U8Pw0cm59MhM/9xXr3fS1h2szA2Dwhvy7b77LV86vmPzd3v0O58dJYjUWAM1gOQoBhBjougCn4RJ2n8ORo1pZB5HGHL9+P7luFrgvZ12KZ9H8sS11p4Nd9AdN0HRTxKwU60LI0qjjDgXU+xLnse+OSc1akluUNXEeBco2UdOhT22/aoIsxK31n5DEk9nDZIgl/8Vxxkj1QFNWWgPtP/uDiNoX/lkw6EuPr17/IiNw/hUZZN51mBlr+GUIpJMkpVEuBvsA5rLwDlVvxOJDQNtsb8onyR+TVL+zsUXC2r2i7Z6Vzt9V1w0Vml8ueZ81Qoixsp+03mIv0rMK5d7DmZudES9eTpugMvAsngyr1q1kI5jspYNRBYpFHJbSPmvlY0S3Z8r3bbdlDTIV8KzgK/9IVWHxck6LirD8icNv+KHeX33RtK3XqQIHubC3Ld8E6Gg6BSDVCHwoQjh528ijU4Ul4yq7PyUU+rLFFnuBCQ5ZBosVLzTXY+STJ1AjTytczFONk1gMDOyHjECmcQyLejFNEqRq7voBGAa++hZb8lYPuzmWSZM4oZ5F20N/DLRhP2AXQBVBG/ZNoQ5GwvUzaFoSGkrZNNCg7RvHOjQa1+lm6LG9xeZyzj/XCd0w26ab/DGycdR8HnB8k2PBRmlTZHKhKbtSI7mJC5xq8pd31s2IU09bSwPdVkVLKxqxegvphP7G4ABtINlGIsGZ2EaC1oJVOA== X-Microsoft-Antispam-Message-Info: h+1xsNltgPC+3yv4szmDM17Y+7gVcBMI4Zs2dOY0GmJ7f36P/9V8v0OlGHna3LrNPrPX3bizhOifC7mmaeBW2b99Ey2fGCpNNzJt3Aqfnv1kL6KRdqQJVkODp0O05Dk/exoLmwcbfXQCc/te9hQKvMQaVP4j86cye9APuvrbu0jE2OfeCtkqg1QFvzs5XIHiNNO/W3Ni9hXAEJ9WGqxcuQM+51Ja/JmXBdxTL4G5miMOaj+EgDVA0W1mNnu2rTrnxmNX+eVu9qM1gug/TwjsQGybYH/QCoNG96ugj/JkB5Fct6iy2gDmx82s9qoawFotObfgEyZmpsrCHO6rso95HcrjonjGqZCFfyO1f8Qpgv0= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 6:XPGd4Wfczn0taLfKlf+ENSgEydGjAOHqKfvGLcpqaRtSwAr0/oXIo3VKTZNbdHsjRfDTC7Leu8SDZhwGJJrAqPzmFfOL1qf1FrgWY1nVR5siqa4oFrhk2jVMKYhcKvKov4YUsfUaxzRT8gPzazcM2SuR8Q42pxywilaapdu7MAOm7ymgZCRoUmzGacn503PXs+bn7kGYQ6ru60oKVJree7241OUCghLN56jHUInkoYcTT3g3OLNGXevcOXXMGeTVa1+3Rc2K55TgUCJuTP11YLl9cC0zkcg4hSu354ncwM632gE+1p4f8Wm1YsdBRzvK0YSCF/uZ8rhoUqmIOLRe3GYe5CbFPbOd7QT7WUPfGkaJnBrBQJ23MvJ+XVUBiSBlDxfCDDhhrBaTe0VsuukmcKGEDEG1qKZ8Lo7d3JJxW265AQVyJq0aNBknV7qHRAHYJvsQtWCwShzS+Y2UpvL+4Q==; 5:3A81uBiZ/e4RwVASmMX/ryTfB7mYZjGxe4YB161jILuSzjRbZIJdwWHFMO0xYtV5S4R9f9vFGWlwyQbPTsfU2KSwlEX6P1R+F8vyCPNLhIECQ3TNpXqiZeLhJruvVtAFdGYuyX/U2UjOfxuXZGlBzV7GBqi5egBDbgmMPsZySmI=; 24:rQPHg9b8Vz7zbkUt5w7D4KSE4eUPV7+RqLVkMUNbglBDPq5wdC0bF5q3kFG0MuJDNIpWZ4Jolqw+cNmnd1j5gdrVUJr0238/H+IEelgf5hY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 7:Pox0GCgbrw4PIvFVVJKwrt/iB9k1iVSKupWMJDP2sJrdMFHmCx02RE4Yib7oRkDGNrI05ycCWVkqo3zepQiRsUx7ScVsAa/g8BLVTLBOVvg5WWTwB6EH7U3o7viokS/uHgL0yrJvYL0OMI/3+0s4zj/DaKAnatGsXIAxoeYOMxoKU9WZfpFGn9ObDl4BSFySeZ776iGwhGz+UfzjSCbZhHH0kmgoJ7RahP6POWK4udD4kDowwAfXGPkhR6x1mR8T; 20:gnvv+5KGQCc/pGiKlY02IAdpIP/7nOT/Szr/BRr71ubR21H6MSjx+m/BXHHVvzkz3B3QFvf8wVARTDHwGUKNDn/e5WeN6qir9GFeDSYqI3+DS+AVYd8jCwcxtAN7ldfWMU064auql4Ktj51z4ksPSVgJ1K3taR/e3AFweMiLIYs= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2018 16:59:02.3243 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2da3e8b3-9686-42d4-7aa0-08d5e03d1dd1 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1974 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.8.98 Subject: [Qemu-devel] [PATCH 5/6] hyperv: address HvSintRoute by X86CPU pointer X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vijayabhaskar Balakrishna , Eduardo Habkost , "Michael S. Tsirkin" , Konrad Rzeszutek Wilk , Venu Busireddy , Liran Alon , Igor Mammedov , Si-Wei Liu , Paolo Bonzini , Boris Ostrovsky , Karl Heubaum , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Use X86CPU pointer to refer to the respective HvSintRoute instead of vp_index. This is more convenient and also paves the way for future enhancements. Signed-off-by: Roman Kagan --- target/i386/hyperv.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/target/i386/hyperv.c b/target/i386/hyperv.c index 11fd1add2c..0ce8a7aa2f 100644 --- a/target/i386/hyperv.c +++ b/target/i386/hyperv.c @@ -18,7 +18,7 @@ struct HvSintRoute { uint32_t sint; - uint32_t vp_index; + X86CPU *cpu; int gsi; EventNotifier sint_set_notifier; EventNotifier sint_ack_notifier; @@ -97,6 +97,12 @@ HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, HvSintRoute *sint_route; EventNotifier *ack_notifier; int r, gsi; + X86CPU *cpu; + + cpu = hyperv_find_vcpu(vp_index); + if (!cpu) { + return NULL; + } sint_route = g_new0(HvSintRoute, 1); r = event_notifier_init(&sint_route->sint_set_notifier, false); @@ -128,7 +134,7 @@ HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, sint_route->gsi = gsi; sint_route->sint_ack_clb = sint_ack_clb; sint_route->sint_ack_clb_data = sint_ack_clb_data; - sint_route->vp_index = vp_index; + sint_route->cpu = cpu; sint_route->sint = sint; return sint_route; From patchwork Mon Jul 2 16:58:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roman Kagan X-Patchwork-Id: 938079 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="VszyNrqi"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41KDCQ1xNBz9s4Z for ; Tue, 3 Jul 2018 03:05:22 +1000 (AEST) Received: from localhost ([::1]:34354 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2GN-0003YY-Ua for incoming@patchwork.ozlabs.org; Mon, 02 Jul 2018 13:05:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59482) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2AQ-0007xP-NI for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fa2AO-00049W-Rr for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:10 -0400 Received: from mail-db5eur01on070c.outbound.protection.outlook.com ([2a01:111:f400:fe02::70c]:55516 helo=EUR01-DB5-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fa2AO-00048w-I7 for qemu-devel@nongnu.org; Mon, 02 Jul 2018 12:59:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OM3JJuZ1TxousfhSzslfB8Tz3pjfxyoj1jGiDjJqIZE=; b=VszyNrqiRw61Mi2YAshLDeLP3UaUMVZya4j02rXhQt7JyweoPJI7yw0pMl9OVRXnuI3ecigYcbihhXgD98Ro42H5t+mEceAkV3iXZwhhaG113beFEFfXGn1AsCEm6l2yEpkN8fQYQFJOlo+ugMZQPbGYo7glRviwZTbAVi3G4h8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; Received: from rkaganb.sw.ru (185.231.240.5) by DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.906.26; Mon, 2 Jul 2018 16:59:04 +0000 From: Roman Kagan To: qemu-devel@nongnu.org Date: Mon, 2 Jul 2018 19:58:42 +0300 Message-Id: <20180702165842.11423-7-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180702165842.11423-1-rkagan@virtuozzo.com> References: <20180702165842.11423-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [185.231.240.5] X-ClientProxiedBy: VI1PR08CA0234.eurprd08.prod.outlook.com (2603:10a6:802:15::43) To DB6PR0801MB1974.eurprd08.prod.outlook.com (2603:10a6:4:75::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fc8e9057-df31-4096-5cbf-08d5e03d1f19 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1974; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 3:iaXgjrfCmDtzEjbhl++GT4+U1j0xdIWyaBXr0Zu9GFDSkHRMFaFJXKTpND8Ew6E1BOAbAYHG26ELPc1wmbe/xLiHO3QvB0YYFnGtS/ys7LUjYYU5Nd4t3lKjrfL6MVN/DPVmPi+qBSLYhj9fYYYeSAVCjLJ3vtxWJjSq2dDCtOyT9K7Psp23dfPBXOV0IpQXRBsAnRVk11RuYYmN91OMAJz6Xv5Z0M7keOphH5sfiMkG9IwEtDUtrevEHGJemzhT; 25:2yP0NGIdtxiWKp3BigvywsR8KECuVMK2cAkuQX1MjZxGP4HVysBPFK1AVR2V3WNq1i7nWh+mprQoPw66Jr+ZfhafsA35ckZ8XEpBFm8elO1VJRSAlSW7KdZhUppOgcbUcAwwLKWTfhVicez9JZ9wbMocyoEC7GJ9iTlK85GwWrGSNmoQ/I1ah4zMHngcl6bpgr/c6IiFi1H+s5Equ7IoarMFnxSklcUz54zvtGAGMiJWxf8NpijWH5WszVypDm6XIBcXNOY/eOBuUFmqnYbQ46UgEfgQNfpk1klf09z1s4mH64lLm4WqALJ3UULHZuPDVYh60y4vvQfUjGoVCVtmWA==; 31:uXi+v3zhA57RDhqtdpjReQsqm1dMxzPqvCQzeErZbIuwZBdi/HEwGpUwpoDEZi5JhNPkqLbHn1SjK7hfgmMBxufVpiCm/MN8qXb0tgKsnN3s7pMerznluaBoEnBe4+w9coustoaDm+fYupJNRdI6wa1bFfp6rWNbx3r6XSu2kJXaZ/Mtk+2vMgP9E8l1c/gBvvgXE25wQjmwso2g+mfFCbj1sKr+/WZ+VxQ8ldkjo4A= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1974: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 20:gtfjLWXoNatqpqhPV/8i3RIJK43T1995d53gdP8JQeSjCkJ1y6nVFqh0FzXJZVUmCr52eCccneA8dAjjrponjFumGlQ7dtP9Yj9kPK3bH5AlrxKGCUzzfL47sifqyWP1h+2uGezxaFgkjc1zDprzrIRhQeBX+8iEUR7TDT5mPkbHCz6Mg8CJNrMSZAI9m5gurWps0PwVOhtD0kLcM8XBaFdkMZv5uCA8TDHbNqcDftqjxKbIGEjeh7iZROLsDjc6sC68lPdhI8GL2A71hiAUaSHvhUV5WNNYz9DhPaxbdRZAFn+OdAu5seM1j+aksA4QjT8RuRGcTB+vOc9nK3KjF5nCSkczhVjbPF0zIrLVEQLFnlupRRlCVHCkS0IxdDSC2RMdZgeSiIRtDc7Jpv595ZGnMyfupNzGTvoVGldBRwk4tMBfeRA+pAGwe8GAj9JRAabAU5KYjGG/JrrsRgieHiMJcv5Dm9qzaTEtO6oyBWGq6LNdTNZcEiR+UBwxhXow; 4:B3pk4g+SfBYby5VpJqIF5ZLjKA1R+l9r0ITIJvjxKP2MhjfWW/5pkbjiXopJ1Ws0BVdwQmBVFPuf4NvOLwCEYtEK9BailAhSLEJbA2W+ebXLaiWhs8nCjzACL2rLXA9lYnN4vyKgfGLp2gIc89i6H9OMdZoUZRTP09Vvbla21O1mBJTpFSSIqVmuiu+XcevzUzDq13gk6cJHOp81z5NUL2Ay+KsiCjEV/r6YRyxux4W04dobrVrTUf1v4Z7Yo6GUBd8cqjTI/3tbtsTXPnBEOCn9IBIvCvUIEKXbr5glQRgbAp2ghxjZzSdo7dQ/0ExY X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(60795455431006); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(3002001)(93006095)(93001095)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:DB6PR0801MB1974; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1974; X-Forefront-PRVS: 07215D0470 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6029001)(39850400004)(136003)(396003)(376002)(366004)(346002)(189003)(199004)(7736002)(26005)(53936002)(305945005)(4326008)(50466002)(39060400002)(478600001)(6506007)(386003)(186003)(6512007)(51416003)(6486002)(66066001)(47776003)(25786009)(76176011)(97736004)(2906002)(2351001)(52116002)(16526019)(11346002)(105586002)(36756003)(8936002)(69596002)(53416004)(3846002)(6116002)(106356001)(81156014)(81166006)(446003)(2361001)(7416002)(86362001)(54906003)(2616005)(6666003)(16586007)(956004)(316002)(486006)(48376002)(68736007)(1076002)(50226002)(8676002)(476003)(5660300001)(6916009); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1974; H:rkaganb.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0801MB1974; 23:6G2Yj9vBfT0nNLPJB9gFFFNzgfVlOcOBdVCARpD?= EDfCJku50k8tuJ+70ru76u5f/w2TPosLw6qYPq/tBi1zWpw6UckUlC0oVVEqslff45NuLsCNxzNKIx3GbTiox1L3Jk7ijUd76SJ/25TSStjnNLGwmBTy4BTr3nnAgeYdGcngIvm1f42E4oPOHXOI1hoEbV9b8vEKRJM2YcRA26k2zYyzFV+639lcjZjbYsE5a1N28OmqGU5R1XdGO5Us3AwUg+3UV6Jky8Ug+jSc8Lm58/AnjIbFgv3tPoB9RJhj6ODtKc1tKuPkBwDDe5unijKmgdTbKdO4xTdlTYw/jFUWV4zNVxSEZauGkuBNfazCYahA1kHVtK9cqAVTPIIJfwxVcbbO+h42O4dCknKuJgsPEBYcPbyKbS0gVxSIbif98EzTQTKayItzpfeBF37YHd2irA8CKEi2MOc3O5DuAgvna+kfusE64d+jHlrWTrfQoLUBT2XeZi9gO8m2GuH5A7GzMkcQgaRRodmI/G0zq9ZU6Bk1YhGkT380qx+DZ8rwYZJ0rFcHiTf5EIA6IGcCqxE/q3mTiW1VYk7oY1YjGAt1xgFzBub00UphrXLvdTnP0kTIvxUQKwQRFM8Q7n4xh2s7tUpaMLJrlUgwjUCiSxAqnGQtv0M+RKWoaAzUZ3fIlhj24TXNhjdtIysc4L0+Sao7EwYZzs/VgTsVORPzSkIY6MMXQBK+row+9yUvD1Tn3Cn0ihuQXV+CCStY91QT6NFeiFtB81b2iRVH9u85vB9GSoRSZH7Emm7Q5NcedVTewXJARsowgbvW4BlkLvBAwk0GLBC4KgHM8ZDbIAbKYPwlZSRpuKdXmit0KKzwHlj+MXYLVzkJkLDjcGISjJg8xDj6r1WyReA0CuEWNcFjIaYhZlWhKhNn8u8nFGGJSZUNlv9Mf2t3KYD/dmmMboUNkyZ98ZEwZJErEkiFn96CgTKnFFq5G6Zt8tseVjkNn1yWevFXeR0ID528hQGu8s809gmg8GbMVLyvFnRLQk85b/4+6Zp+yoD6qCkr26gDFus+DB36jbS16EURVHklq5i6DS0+2CW8QAjdfyHKhEKLFbUCksL4LQ4F/iJGJu6St7OPWEAAwt0j27Rhr7X44wUze+y0t6N6/WSyYIv3m+HdgKV91OFgzpHW7CduSyv/Je4+HNQ4lQZdvTlqri9nTMtw2ic1J0xcgyPxoT46hYlR6pCdpVPU7rIIPRjY8IJmUHiu0eq8yZ2K3x9FWgb6tZEY1Ex3IxBTODusJOicbQTtHpsdPwghAq+2hmVn/qQWnY3xJ8sMIqIOqs1sGKj+SOaKNnMdlfU2YmaZSuXHMCmIfxRhl9w== X-Microsoft-Antispam-Message-Info: 0WUJ0x1JPyLK3fxhsKPlZ6AgpE9iAfTk00AyJnHgPvfJ0GyjgtEHBrrL28vjYe02jgBG3Zc551oa9+HXwxEPZJ1m4zb+oNzgfhC+tD209uxhqtaVZRhjJbiWBfUQa+a0CwancihtgZ63VtrlQHAT/Ny0aKlcBSzKm8p+BkmtgdY3aWp4a4p4VuGBxZDWKmV2SUhAzEWUeXAwtd8q0KCGjJYJZO5lHoe6LiBbJ1bXT9pExqyqZphhdMHFQfDaKktW8IAT7fw0tMou1iMAf57RE+Wa3ca+dK3CGU5u4T2TEZJU+75NPJFe4JJv1IoQpNcDqFkrU8X1kmLQWEMGOieFjI/AFzkqoA5hJAUFKLfCJUU= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 6:0fRn1afFfnK9ZNs3bG/XJ5jV1+dKmJE0n2lF19O9s85Q81w9nFIUwJaSOTIBfTN4cK+UlhDbU4cdQZyPiYvvQsNoOX2sxXk7xIY/8jPo9D0lVuBQ8taBPYIVpl8++62VzNbVqwBO3nYTHrbBXnseqKX33dKMUO+jssObAmE2B6aXRbMqSq3Vf4dLqJjd2nmfw86is+MoOSAeAwsq7gQWy5LgFFC38KYA8LgzOox6lM9AnvzA1308rpm2EzanDK3kLAaO64+y27qK6+euT1HQjCjAr+pyEas6zP3VWAQ0/J70bqilznTxZGWWGmmlNYugxotGxG2R+WEr8tsric59wZ6iBVLuqGNi1DXzItSuI7ryOQ0kc4nyRd5DUR2lgOz0cfG7MI3B7NlyJT0/pKiqs7R+T/sWIlPt77XTbZPQPDW3i43q1zGe6s7GcNOj8E7hT7Bn6Lb2MZBL0uk7DlRvsg==; 5:MS7iZk5FEtPb2jPqQIW/i0zdv0Q796ZJng4Dc+5QrU+7LwRYvMYcVgaGgkPV3HUWlZNMKii6eqYM07G9PoASdWi6pt40oC2s13hHROFCLRA2JWSmEVOnackezRltnqymSXw/6THUOVMRXTJNkXTPIE0VuBsTWIeo8tpl5jw172Y=; 24:c89zQm7MmJB9b0npGZnhTC1f7cKmpWqFl7o4ESoIwGGOIRPNnhiMp7eKHDM5z8lGztoylPm+YfvMcNxZVTnCgUBcPO3SArRiuiWLgR7ERuY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1974; 7:liqeNQIj1WpUNzx8GAZ0kBeE8s5CccOhy54uAQQuDKwERv7CaOAKPZn/+OEdTYdbOFxZxgsZV6HT51JHVDgxjiQmaCpgYM3L8Sbt/1q/O/zWRYeKYeGZuBv2tN4ShDHaaa/TjcKcsvH++eAaYyORKmook62QtAVIYbZs4jca+QVRK5yD9hARY491uirlKcJVsUKnfMBeiujEdCQbJHrOqeLZTYnXpb3oDWM+zhgNHHFjahGTc5V+mRf/Zzrv9DJ9; 20:pf0ncvu7I5R72XDnaAt6OolXI4YdzL1BQHPDteW0GvpnDwwaXQpJp8fcPsoKvuUutB9Y1igGgA4mxZhbEX64BW13e2aqvrn5Ulnl2uUrhEMB9/JtNFzYR+47rzkHQ+9Nekd/MhxUGAFDJMdiIjaGgB+WlXxT+nkkUFbr8TsfAwc= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2018 16:59:04.4721 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fc8e9057-df31-4096-5cbf-08d5e03d1f19 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1974 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 2a01:111:f400:fe02::70c Subject: [Qemu-devel] [PATCH 6/6] hyperv: make HvSintRoute reference-counted X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vijayabhaskar Balakrishna , Eduardo Habkost , "Michael S. Tsirkin" , Konrad Rzeszutek Wilk , Venu Busireddy , Liran Alon , Igor Mammedov , Si-Wei Liu , Paolo Bonzini , Boris Ostrovsky , Karl Heubaum , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Multiple entities (e.g. VMBus devices) can use the same SINT route. To make their lives easier in maintaining SINT route ownership, make it reference-counted. Adjust the respective API names accordingly. Signed-off-by: Roman Kagan --- target/i386/hyperv.h | 10 +++++----- hw/misc/hyperv_testdev.c | 4 ++-- target/i386/hyperv.c | 25 +++++++++++++++++++++---- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/target/i386/hyperv.h b/target/i386/hyperv.h index 93f7300dd6..af5fc05ea4 100644 --- a/target/i386/hyperv.h +++ b/target/i386/hyperv.h @@ -23,11 +23,11 @@ typedef void (*HvSintAckClb)(void *data); int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit); -HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, - HvSintAckClb sint_ack_clb, - void *sint_ack_clb_data); - -void kvm_hv_sint_route_destroy(HvSintRoute *sint_route); +HvSintRoute *hyperv_sint_route_new(uint32_t vp_index, uint32_t sint, + HvSintAckClb sint_ack_clb, + void *sint_ack_clb_data); +void hyperv_sint_route_ref(HvSintRoute *sint_route); +void hyperv_sint_route_unref(HvSintRoute *sint_route); int kvm_hv_sint_route_set_sint(HvSintRoute *sint_route); diff --git a/hw/misc/hyperv_testdev.c b/hw/misc/hyperv_testdev.c index 50dfa6af64..d29201b5ee 100644 --- a/hw/misc/hyperv_testdev.c +++ b/hw/misc/hyperv_testdev.c @@ -56,7 +56,7 @@ static void sint_route_create(HypervTestDev *dev, sint_route->vp_index = vp_index; sint_route->sint = sint; - sint_route->sint_route = kvm_hv_sint_route_create(vp_index, sint, NULL, NULL); + sint_route->sint_route = hyperv_sint_route_new(vp_index, sint, NULL, NULL); assert(sint_route->sint_route); QLIST_INSERT_HEAD(&dev->sint_routes, sint_route, le); @@ -83,7 +83,7 @@ static void sint_route_destroy(HypervTestDev *dev, sint_route = sint_route_find(dev, vp_index, sint); QLIST_REMOVE(sint_route, le); - kvm_hv_sint_route_destroy(sint_route->sint_route); + hyperv_sint_route_unref(sint_route->sint_route); g_free(sint_route); } diff --git a/target/i386/hyperv.c b/target/i386/hyperv.c index 0ce8a7aa2f..4d8ef6f2da 100644 --- a/target/i386/hyperv.c +++ b/target/i386/hyperv.c @@ -24,6 +24,7 @@ struct HvSintRoute { EventNotifier sint_ack_notifier; HvSintAckClb sint_ack_clb; void *sint_ack_clb_data; + unsigned refcount; }; uint32_t hyperv_vp_index(X86CPU *cpu) @@ -90,9 +91,9 @@ static void kvm_hv_sint_ack_handler(EventNotifier *notifier) sint_route->sint_ack_clb(sint_route->sint_ack_clb_data); } -HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, - HvSintAckClb sint_ack_clb, - void *sint_ack_clb_data) +HvSintRoute *hyperv_sint_route_new(uint32_t vp_index, uint32_t sint, + HvSintAckClb sint_ack_clb, + void *sint_ack_clb_data) { HvSintRoute *sint_route; EventNotifier *ack_notifier; @@ -136,6 +137,7 @@ HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint, sint_route->sint_ack_clb_data = sint_ack_clb_data; sint_route->cpu = cpu; sint_route->sint = sint; + sint_route->refcount = 1; return sint_route; @@ -154,8 +156,23 @@ err: return NULL; } -void kvm_hv_sint_route_destroy(HvSintRoute *sint_route) +void hyperv_sint_route_ref(HvSintRoute *sint_route) { + sint_route->refcount++; +} + +void hyperv_sint_route_unref(HvSintRoute *sint_route) +{ + if (!sint_route) { + return; + } + + assert(sint_route->refcount > 0); + + if (--sint_route->refcount) { + return; + } + kvm_irqchip_remove_irqfd_notifier_gsi(kvm_state, &sint_route->sint_set_notifier, sint_route->gsi);