Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/815477/?format=api
{ "id": 815477, "url": "http://patchwork.ozlabs.org/api/patches/815477/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170919115055.19278-3-jgross@suse.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170919115055.19278-3-jgross@suse.com>", "list_archive_url": null, "date": "2017-09-19T11:50:55", "name": "[2/2] xen: dont try setting max grants multiple times", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "ec0d6d0ff65be1652b02aadd01de5898ad0e5566", "submitter": { "id": 64874, "url": "http://patchwork.ozlabs.org/api/people/64874/?format=api", "name": "Jürgen Groß", "email": "jgross@suse.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170919115055.19278-3-jgross@suse.com/mbox/", "series": [ { "id": 3854, "url": "http://patchwork.ozlabs.org/api/series/3854/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=3854", "date": "2017-09-19T11:50:55", "name": "xen: fix gnttab handling with old dom0 kernels", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/3854/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/815477/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/815477/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xxLnc0XhZz9s7m\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 19 Sep 2017 21:51:48 +1000 (AEST)", "from localhost ([::1]:41947 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1duH46-0002DW-4Q\n\tfor incoming@patchwork.ozlabs.org; Tue, 19 Sep 2017 07:51:46 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:36329)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <jgross@suse.com>) id 1duH3U-0002CJ-EK\n\tfor qemu-devel@nongnu.org; Tue, 19 Sep 2017 07:51:09 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <jgross@suse.com>) id 1duH3R-0006Bz-QM\n\tfor qemu-devel@nongnu.org; Tue, 19 Sep 2017 07:51:08 -0400", "from mx2.suse.de ([195.135.220.15]:47678 helo=mx1.suse.de)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <jgross@suse.com>) id 1duH3R-0006AR-Jc\n\tfor qemu-devel@nongnu.org; Tue, 19 Sep 2017 07:51:05 -0400", "from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254])\n\tby mx1.suse.de (Postfix) with ESMTP id 593295CBC1;\n\tTue, 19 Sep 2017 11:51:03 +0000 (UTC)" ], "X-Virus-Scanned": "by amavisd-new at test-mx.suse.de", "From": "Juergen Gross <jgross@suse.com>", "To": "qemu-devel@nongnu.org,\n\txen-devel@lists.xenproject.org", "Date": "Tue, 19 Sep 2017 13:50:55 +0200", "Message-Id": "<20170919115055.19278-3-jgross@suse.com>", "X-Mailer": "git-send-email 2.12.3", "In-Reply-To": "<20170919115055.19278-1-jgross@suse.com>", "References": "<20170919115055.19278-1-jgross@suse.com>", "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no\n\ttimestamps) [generic] [fuzzy]", "X-Received-From": "195.135.220.15", "Subject": "[Qemu-devel] [PATCH 2/2] xen: dont try setting max grants multiple\n\ttimes", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "<qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "anthony.perard@citrix.com, Juergen Gross <jgross@suse.com>,\n\tsstabellini@kernel.org, kraxel@redhat.com", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "Trying to call xengnttab_set_max_grants() with the same file handle\nmight fail on some kernels, as this operation is allowed only once.\n\nThis is a problem for the qdisk backend as blk_connect() can be\ncalled multiple times for a domain, e.g. in case grub-xen is being\nused to boot it.\n\nSo instead of letting the generic backend code open the gnttab device\ndo it in blk_connect() and close it again in blk_disconnect.\n\nSigned-off-by: Juergen Gross <jgross@suse.com>\n---\n hw/block/xen_disk.c | 12 +++++++++++-\n 1 file changed, 11 insertions(+), 1 deletion(-)", "diff": "diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c\nindex 6632746250..7cff8863cb 100644\n--- a/hw/block/xen_disk.c\n+++ b/hw/block/xen_disk.c\n@@ -1220,6 +1220,12 @@ static int blk_connect(struct XenDevice *xendev)\n /* Add on the number needed for the ring pages */\n max_grants += blkdev->nr_ring_ref;\n \n+ blkdev->xendev.gnttabdev = xengnttab_open(NULL, 0);\n+ if (blkdev->xendev.gnttabdev == NULL) {\n+ xen_pv_printf(xendev, 0, \"xengnttab_open failed: %s\\n\",\n+ strerror(errno));\n+ return -1;\n+ }\n if (xengnttab_set_max_grants(blkdev->xendev.gnttabdev, max_grants)) {\n xen_pv_printf(xendev, 0, \"xengnttab_set_max_grants failed: %s\\n\",\n strerror(errno));\n@@ -1327,6 +1333,11 @@ static void blk_disconnect(struct XenDevice *xendev)\n }\n blkdev->feature_persistent = false;\n }\n+\n+ if (blkdev->xendev.gnttabdev) {\n+ xengnttab_close(blkdev->xendev.gnttabdev);\n+ blkdev->xendev.gnttabdev = NULL;\n+ }\n }\n \n static int blk_free(struct XenDevice *xendev)\n@@ -1363,7 +1374,6 @@ static void blk_event(struct XenDevice *xendev)\n \n struct XenDevOps xen_blkdev_ops = {\n .size = sizeof(struct XenBlkDev),\n- .flags = DEVOPS_FLAG_NEED_GNTDEV,\n .alloc = blk_alloc,\n .init = blk_init,\n .initialise = blk_connect,\n", "prefixes": [ "2/2" ] }