Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2195872/?format=api
{ "id": 2195872, "url": "http://patchwork.ozlabs.org/api/patches/2195872/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260212083826.136221-2-jgross@suse.com/", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/projects/28/?format=api", "name": "Linux PCI development", "link_name": "linux-pci", "list_id": "linux-pci.vger.kernel.org", "list_email": "linux-pci@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260212083826.136221-2-jgross@suse.com>", "list_archive_url": null, "date": "2026-02-12T08:38:25", "name": "[1/2] xenbus: add xenbus_device parameter to xenbus_read_driver_state()", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "58f52b17cae5c66aa6ec89a07aef28a9a6ced797", "submitter": { "id": 64874, "url": "http://patchwork.ozlabs.org/api/people/64874/?format=api", "name": "Juergen Gross", "email": "jgross@suse.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260212083826.136221-2-jgross@suse.com/mbox/", "series": [ { "id": 491944, "url": "http://patchwork.ozlabs.org/api/series/491944/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=491944", "date": "2026-02-12T08:38:24", "name": "xen/xenbus: better handle backend crash", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/491944/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2195872/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2195872/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-pci+bounces-47195-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-pci@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256\n header.s=susede1 header.b=Gn6GWT0t;\n\tdkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com\n header.a=rsa-sha256 header.s=susede1 header.b=Gn6GWT0t;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-47195-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com\n header.b=\"Gn6GWT0t\";\n\tdkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com\n header.b=\"Gn6GWT0t\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=195.135.223.130", "smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=suse.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=suse.com", "smtp-out1.suse.de;\n\tnone" ], "Received": [ "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fBTKH2VDkz1xqf\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 12 Feb 2026 19:40:51 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 6BCE8315B624\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 12 Feb 2026 08:38:39 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7D2452C0F89;\n\tThu, 12 Feb 2026 08:38:38 +0000 (UTC)", "from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id C17171D61BC\n\tfor <linux-pci@vger.kernel.org>; Thu, 12 Feb 2026 08:38:36 +0000 (UTC)", "from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby smtp-out1.suse.de (Postfix) with ESMTPS id 1B1C33E6E8;\n\tThu, 12 Feb 2026 08:38:35 +0000 (UTC)", "from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id A551A3EA62;\n\tThu, 12 Feb 2026 08:38:34 +0000 (UTC)", "from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])\n\tby imap1.dmz-prg2.suse.org with ESMTPSA\n\tid +qE3J4qRjWmJMwAAD6G6ig\n\t(envelope-from <jgross@suse.com>); Thu, 12 Feb 2026 08:38:34 +0000" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1770885518; cv=none;\n b=rAG8Md9wxw4OP+hsk+6TdTwgw3LBDmLcJFjDbo9JG4PQOG1imyN0x1JWyRSJqVxcBZv/TAG5SIwuRjn/9UIO0gh3qz2QthE2J5in+B8yZdXMnLIiUKdxZoAaYyDeNbdUGluWG+s9NWmweSgRuiXDaKfjYKHyrNxUn9G5hBw8afY=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1770885518; c=relaxed/simple;\n\tbh=ef3LzpCrcs4QdW7jFhPSXJPb9kTcCbi08cRJaE50Ur4=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=RnKy9A8YdD6mCp3BBiUfHC7MQFgaaFZ4uMbOKAbpEMNKGZtcJHnqDtaSgwfyV+uegfWjKZB+OPPPU+siG79FV71PVYjLESV5YAabGqP5k20XOOKemn1a8zDe4emLICMzNO0v+qbsGVdJdgfaGETqVrMZc0PtB8sETRNxc1Pmj/g=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=suse.com;\n spf=pass smtp.mailfrom=suse.com;\n dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com\n header.b=Gn6GWT0t;\n dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com\n header.b=Gn6GWT0t; arc=none smtp.client-ip=195.135.223.130", "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;\n\tt=1770885515;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n\t mime-version:mime-version:content-type:content-type:\n\t content-transfer-encoding:content-transfer-encoding:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=/ASzH9qE0mBRibU9uWHl4KojtE+mVdpgEGiVGmw5TkI=;\n\tb=Gn6GWT0tpFD4Wj0aIBXIADPNbMyqxnarB7G6+MOUb7r55zoH19ifoS/6oYN98O3iKcRraw\n\t9/gjSCt246xTx4r9GkhCsE063MzrrvxyeGrIY20vFRLxt6LIR4BvoDSJ0VCcO4dLRLaU/Z\n\tkwxe3FAh1YLhI3NjeVZLnZSoQpjmJsc=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;\n\tt=1770885515;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n\t mime-version:mime-version:content-type:content-type:\n\t content-transfer-encoding:content-transfer-encoding:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=/ASzH9qE0mBRibU9uWHl4KojtE+mVdpgEGiVGmw5TkI=;\n\tb=Gn6GWT0tpFD4Wj0aIBXIADPNbMyqxnarB7G6+MOUb7r55zoH19ifoS/6oYN98O3iKcRraw\n\t9/gjSCt246xTx4r9GkhCsE063MzrrvxyeGrIY20vFRLxt6LIR4BvoDSJ0VCcO4dLRLaU/Z\n\tkwxe3FAh1YLhI3NjeVZLnZSoQpjmJsc=" ], "From": "Juergen Gross <jgross@suse.com>", "To": "linux-kernel@vger.kernel.org,\n\tnetdev@vger.kernel.org,\n\tlinux-pci@vger.kernel.org,\n\tlinux-scsi@vger.kernel.org", "Cc": "Juergen Gross <jgross@suse.com>,\n Stefano Stabellini <sstabellini@kernel.org>,\n Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,\n Andrew Lunn <andrew+netdev@lunn.ch>, \"David S. Miller\" <davem@davemloft.net>,\n Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,\n Paolo Abeni <pabeni@redhat.com>, Bjorn Helgaas <bhelgaas@google.com>,\n \"James E.J. Bottomley\" <James.Bottomley@HansenPartnership.com>,\n \"Martin K. Petersen\" <martin.petersen@oracle.com>,\n xen-devel@lists.xenproject.org,\n =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>", "Subject": "[PATCH 1/2] xenbus: add xenbus_device parameter to\n xenbus_read_driver_state()", "Date": "Thu, 12 Feb 2026 09:38:25 +0100", "Message-ID": "<20260212083826.136221-2-jgross@suse.com>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<20260212083826.136221-1-jgross@suse.com>", "References": "<20260212083826.136221-1-jgross@suse.com>", "Precedence": "bulk", "X-Mailing-List": "linux-pci@vger.kernel.org", "List-Id": "<linux-pci.vger.kernel.org>", "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "X-Spamd-Result": "default: False [-5.80 / 50.00];\n\tREPLY(-4.00)[];\n\tBAYES_HAM(-3.00)[100.00%];\n\tSUSPICIOUS_RECIPS(1.50)[];\n\tMID_CONTAINS_FROM(1.00)[];\n\tNEURAL_HAM_LONG(-1.00)[-1.000];\n\tNEURAL_HAM_SHORT(-0.20)[-1.000];\n\tMIME_GOOD(-0.10)[text/plain];\n\tURIBL_BLOCKED(0.00)[invisiblethingslab.com:email,imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email];\n\tDKIM_SIGNED(0.00)[suse.com:s=susede1];\n\tFUZZY_RATELIMITED(0.00)[rspamd.com];\n\tMIME_TRACE(0.00)[0:+];\n\tARC_NA(0.00)[];\n\tRCPT_COUNT_TWELVE(0.00)[17];\n\tTO_MATCH_ENVRCPT_ALL(0.00)[];\n\tFROM_HAS_DN(0.00)[];\n\tRCVD_TLS_ALL(0.00)[];\n\tRCVD_COUNT_TWO(0.00)[2];\n\tFROM_EQ_ENVFROM(0.00)[];\n\tTO_DN_SOME(0.00)[];\n\tTAGGED_RCPT(0.00)[netdev];\n\tR_RATELIMIT(0.00)[to_ip_from(RLsote1drt81dzioaq3931x19g)];\n\tRCVD_VIA_SMTP_AUTH(0.00)[];\n\tDBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo]", "X-Spam-Flag": "NO", "X-Spam-Score": "-5.80", "X-Spam-Level": "" }, "content": "In order to prepare checking the xenbus device status in\nxenbus_read_driver_state(), add the pointer to struct xenbus_device\nas a parameter.\n\nSigned-off-by: Juergen Gross <jgross@suse.com>\nTested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>\n---\n drivers/net/xen-netfront.c | 34 +++++++++++-----------\n drivers/pci/xen-pcifront.c | 8 ++---\n drivers/scsi/xen-scsifront.c | 2 +-\n drivers/xen/xen-pciback/xenbus.c | 10 +++----\n drivers/xen/xenbus/xenbus_client.c | 3 +-\n drivers/xen/xenbus/xenbus_probe.c | 6 ++--\n drivers/xen/xenbus/xenbus_probe_frontend.c | 2 +-\n include/xen/xenbus.h | 3 +-\n 8 files changed, 35 insertions(+), 33 deletions(-)", "diff": "diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c\nindex 0969d5c9f6b7..2c414b77dd0f 100644\n--- a/drivers/net/xen-netfront.c\n+++ b/drivers/net/xen-netfront.c\n@@ -1646,7 +1646,7 @@ static int xennet_xdp_set(struct net_device *dev, struct bpf_prog *prog,\n \n \t/* avoid the race with XDP headroom adjustment */\n \twait_event(module_wq,\n-\t\t xenbus_read_driver_state(np->xbdev->otherend) ==\n+\t\t xenbus_read_driver_state(np->xbdev, np->xbdev->otherend) ==\n \t\t XenbusStateReconfigured);\n \tnp->netfront_xdp_enabled = true;\n \n@@ -1764,9 +1764,9 @@ static struct net_device *xennet_create_dev(struct xenbus_device *dev)\n \tdo {\n \t\txenbus_switch_state(dev, XenbusStateInitialising);\n \t\terr = wait_event_timeout(module_wq,\n-\t\t\t\t xenbus_read_driver_state(dev->otherend) !=\n+\t\t\t\t xenbus_read_driver_state(dev, dev->otherend) !=\n \t\t\t\t XenbusStateClosed &&\n-\t\t\t\t xenbus_read_driver_state(dev->otherend) !=\n+\t\t\t\t xenbus_read_driver_state(dev, dev->otherend) !=\n \t\t\t\t XenbusStateUnknown, XENNET_TIMEOUT);\n \t} while (!err);\n \n@@ -2627,31 +2627,31 @@ static void xennet_bus_close(struct xenbus_device *dev)\n {\n \tint ret;\n \n-\tif (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed)\n+\tif (xenbus_read_driver_state(dev, dev->otherend) == XenbusStateClosed)\n \t\treturn;\n \tdo {\n \t\txenbus_switch_state(dev, XenbusStateClosing);\n \t\tret = wait_event_timeout(module_wq,\n-\t\t\t\t xenbus_read_driver_state(dev->otherend) ==\n-\t\t\t\t XenbusStateClosing ||\n-\t\t\t\t xenbus_read_driver_state(dev->otherend) ==\n-\t\t\t\t XenbusStateClosed ||\n-\t\t\t\t xenbus_read_driver_state(dev->otherend) ==\n-\t\t\t\t XenbusStateUnknown,\n-\t\t\t\t XENNET_TIMEOUT);\n+\t\t\t\txenbus_read_driver_state(dev, dev->otherend) ==\n+\t\t\t\tXenbusStateClosing ||\n+\t\t\t\txenbus_read_driver_state(dev, dev->otherend) ==\n+\t\t\t\tXenbusStateClosed ||\n+\t\t\t\txenbus_read_driver_state(dev, dev->otherend) ==\n+\t\t\t\tXenbusStateUnknown,\n+\t\t\t\tXENNET_TIMEOUT);\n \t} while (!ret);\n \n-\tif (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed)\n+\tif (xenbus_read_driver_state(dev, dev->otherend) == XenbusStateClosed)\n \t\treturn;\n \n \tdo {\n \t\txenbus_switch_state(dev, XenbusStateClosed);\n \t\tret = wait_event_timeout(module_wq,\n-\t\t\t\t xenbus_read_driver_state(dev->otherend) ==\n-\t\t\t\t XenbusStateClosed ||\n-\t\t\t\t xenbus_read_driver_state(dev->otherend) ==\n-\t\t\t\t XenbusStateUnknown,\n-\t\t\t\t XENNET_TIMEOUT);\n+\t\t\t\txenbus_read_driver_state(dev, dev->otherend) ==\n+\t\t\t\tXenbusStateClosed ||\n+\t\t\t\txenbus_read_driver_state(dev, dev->otherend) ==\n+\t\t\t\tXenbusStateUnknown,\n+\t\t\t\tXENNET_TIMEOUT);\n \t} while (!ret);\n }\n \ndiff --git a/drivers/pci/xen-pcifront.c b/drivers/pci/xen-pcifront.c\nindex 11636634ae51..cd22bf984024 100644\n--- a/drivers/pci/xen-pcifront.c\n+++ b/drivers/pci/xen-pcifront.c\n@@ -856,7 +856,7 @@ static void pcifront_try_connect(struct pcifront_device *pdev)\n \tint err;\n \n \t/* Only connect once */\n-\tif (xenbus_read_driver_state(pdev->xdev->nodename) !=\n+\tif (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=\n \t XenbusStateInitialised)\n \t\treturn;\n \n@@ -876,7 +876,7 @@ static int pcifront_try_disconnect(struct pcifront_device *pdev)\n \tenum xenbus_state prev_state;\n \n \n-\tprev_state = xenbus_read_driver_state(pdev->xdev->nodename);\n+\tprev_state = xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename);\n \n \tif (prev_state >= XenbusStateClosing)\n \t\tgoto out;\n@@ -895,7 +895,7 @@ static int pcifront_try_disconnect(struct pcifront_device *pdev)\n \n static void pcifront_attach_devices(struct pcifront_device *pdev)\n {\n-\tif (xenbus_read_driver_state(pdev->xdev->nodename) ==\n+\tif (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) ==\n \t XenbusStateReconfiguring)\n \t\tpcifront_connect(pdev);\n }\n@@ -909,7 +909,7 @@ static int pcifront_detach_devices(struct pcifront_device *pdev)\n \tstruct pci_dev *pci_dev;\n \tchar str[64];\n \n-\tstate = xenbus_read_driver_state(pdev->xdev->nodename);\n+\tstate = xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename);\n \tif (state == XenbusStateInitialised) {\n \t\tdev_dbg(&pdev->xdev->dev, \"Handle skipped connect.\\n\");\n \t\t/* We missed Connected and need to initialize. */\ndiff --git a/drivers/scsi/xen-scsifront.c b/drivers/scsi/xen-scsifront.c\nindex 924025305753..ef74d4da5ab0 100644\n--- a/drivers/scsi/xen-scsifront.c\n+++ b/drivers/scsi/xen-scsifront.c\n@@ -1175,7 +1175,7 @@ static void scsifront_backend_changed(struct xenbus_device *dev,\n \t\t\treturn;\n \t\t}\n \n-\t\tif (xenbus_read_driver_state(dev->nodename) ==\n+\t\tif (xenbus_read_driver_state(dev, dev->nodename) ==\n \t\t XenbusStateInitialised)\n \t\t\tscsifront_do_lun_hotplug(info, VSCSIFRONT_OP_ADD_LUN);\n \ndiff --git a/drivers/xen/xen-pciback/xenbus.c b/drivers/xen/xen-pciback/xenbus.c\nindex b11e401f1b1e..4bd1c7a8957e 100644\n--- a/drivers/xen/xen-pciback/xenbus.c\n+++ b/drivers/xen/xen-pciback/xenbus.c\n@@ -149,12 +149,12 @@ static int xen_pcibk_attach(struct xen_pcibk_device *pdev)\n \n \tmutex_lock(&pdev->dev_lock);\n \t/* Make sure we only do this setup once */\n-\tif (xenbus_read_driver_state(pdev->xdev->nodename) !=\n+\tif (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=\n \t XenbusStateInitialised)\n \t\tgoto out;\n \n \t/* Wait for frontend to state that it has published the configuration */\n-\tif (xenbus_read_driver_state(pdev->xdev->otherend) !=\n+\tif (xenbus_read_driver_state(pdev->xdev, pdev->xdev->otherend) !=\n \t XenbusStateInitialised)\n \t\tgoto out;\n \n@@ -374,7 +374,7 @@ static int xen_pcibk_reconfigure(struct xen_pcibk_device *pdev,\n \tdev_dbg(&pdev->xdev->dev, \"Reconfiguring device ...\\n\");\n \n \tmutex_lock(&pdev->dev_lock);\n-\tif (xenbus_read_driver_state(pdev->xdev->nodename) != state)\n+\tif (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) != state)\n \t\tgoto out;\n \n \terr = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, \"num_devs\", \"%d\",\n@@ -572,7 +572,7 @@ static int xen_pcibk_setup_backend(struct xen_pcibk_device *pdev)\n \t/* It's possible we could get the call to setup twice, so make sure\n \t * we're not already connected.\n \t */\n-\tif (xenbus_read_driver_state(pdev->xdev->nodename) !=\n+\tif (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=\n \t XenbusStateInitWait)\n \t\tgoto out;\n \n@@ -662,7 +662,7 @@ static void xen_pcibk_be_watch(struct xenbus_watch *watch,\n \tstruct xen_pcibk_device *pdev =\n \t container_of(watch, struct xen_pcibk_device, be_watch);\n \n-\tswitch (xenbus_read_driver_state(pdev->xdev->nodename)) {\n+\tswitch (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename)) {\n \tcase XenbusStateInitWait:\n \t\txen_pcibk_setup_backend(pdev);\n \t\tbreak;\ndiff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c\nindex 2dc874fb5506..6ed0cd8e9676 100644\n--- a/drivers/xen/xenbus/xenbus_client.c\n+++ b/drivers/xen/xenbus/xenbus_client.c\n@@ -936,7 +936,8 @@ static int xenbus_unmap_ring_hvm(struct xenbus_device *dev, void *vaddr)\n * Returns: the state of the driver rooted at the given store path, or\n * XenbusStateUnknown if no state can be read.\n */\n-enum xenbus_state xenbus_read_driver_state(const char *path)\n+enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev,\n+\t\t\t\t\t const char *path)\n {\n \tenum xenbus_state result;\n \tint err = xenbus_gather(XBT_NIL, path, \"state\", \"%d\", &result, NULL);\ndiff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c\nindex 9f9011cd7447..2eed06ba5d38 100644\n--- a/drivers/xen/xenbus/xenbus_probe.c\n+++ b/drivers/xen/xenbus/xenbus_probe.c\n@@ -191,7 +191,7 @@ void xenbus_otherend_changed(struct xenbus_watch *watch,\n \t\treturn;\n \t}\n \n-\tstate = xenbus_read_driver_state(dev->otherend);\n+\tstate = xenbus_read_driver_state(dev, dev->otherend);\n \n \tdev_dbg(&dev->dev, \"state is %d, (%s), %s, %s\\n\",\n \t\tstate, xenbus_strstate(state), dev->otherend_watch.node, path);\n@@ -364,7 +364,7 @@ void xenbus_dev_remove(struct device *_dev)\n \t * closed.\n \t */\n \tif (!drv->allow_rebind ||\n-\t xenbus_read_driver_state(dev->nodename) == XenbusStateClosing)\n+\t xenbus_read_driver_state(dev, dev->nodename) == XenbusStateClosing)\n \t\txenbus_switch_state(dev, XenbusStateClosed);\n }\n EXPORT_SYMBOL_GPL(xenbus_dev_remove);\n@@ -514,7 +514,7 @@ int xenbus_probe_node(struct xen_bus_type *bus,\n \tsize_t stringlen;\n \tchar *tmpstring;\n \n-\tenum xenbus_state state = xenbus_read_driver_state(nodename);\n+\tenum xenbus_state state = xenbus_read_driver_state(NULL, nodename);\n \n \tif (state != XenbusStateInitialising) {\n \t\t/* Device is not new, so ignore it. This can happen if a\ndiff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c\nindex f04707d1f667..ca04609730df 100644\n--- a/drivers/xen/xenbus/xenbus_probe_frontend.c\n+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c\n@@ -253,7 +253,7 @@ static int print_device_status(struct device *dev, void *data)\n \t} else if (xendev->state < XenbusStateConnected) {\n \t\tenum xenbus_state rstate = XenbusStateUnknown;\n \t\tif (xendev->otherend)\n-\t\t\trstate = xenbus_read_driver_state(xendev->otherend);\n+\t\t\trstate = xenbus_read_driver_state(xendev, xendev->otherend);\n \t\tpr_warn(\"Timeout connecting to device: %s (local state %d, remote state %d)\\n\",\n \t\t\txendev->nodename, xendev->state, rstate);\n \t}\ndiff --git a/include/xen/xenbus.h b/include/xen/xenbus.h\nindex c94caf852aea..15319da65b7f 100644\n--- a/include/xen/xenbus.h\n+++ b/include/xen/xenbus.h\n@@ -228,7 +228,8 @@ int xenbus_unmap_ring_vfree(struct xenbus_device *dev, void *vaddr);\n int xenbus_alloc_evtchn(struct xenbus_device *dev, evtchn_port_t *port);\n int xenbus_free_evtchn(struct xenbus_device *dev, evtchn_port_t port);\n \n-enum xenbus_state xenbus_read_driver_state(const char *path);\n+enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev,\n+\t\t\t\t\t const char *path);\n \n __printf(3, 4)\n void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt, ...);\n", "prefixes": [ "1/2" ] }