Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

xenbus: add xenbus_device parameter to xenbus_read_driver_state()

In order to prepare checking the xenbus device status in
xenbus_read_driver_state(), add the pointer to struct xenbus_device
as a parameter.

Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: "Martin K. Petersen" <martin.petersen@oracle.com> # SCSI
Acked-by: Jakub Kicinski <kuba@kernel.org>
Acked-by: Bjorn Helgaas <bhelgaas@google.com> # drivers/pci/xen-pcifront.c
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20260218095205.453657-2-jgross@suse.com>

+36 -33
+17 -17
drivers/net/xen-netfront.c
··· 1646 1646 1647 1647 /* avoid the race with XDP headroom adjustment */ 1648 1648 wait_event(module_wq, 1649 - xenbus_read_driver_state(np->xbdev->otherend) == 1649 + xenbus_read_driver_state(np->xbdev, np->xbdev->otherend) == 1650 1650 XenbusStateReconfigured); 1651 1651 np->netfront_xdp_enabled = true; 1652 1652 ··· 1764 1764 do { 1765 1765 xenbus_switch_state(dev, XenbusStateInitialising); 1766 1766 err = wait_event_timeout(module_wq, 1767 - xenbus_read_driver_state(dev->otherend) != 1767 + xenbus_read_driver_state(dev, dev->otherend) != 1768 1768 XenbusStateClosed && 1769 - xenbus_read_driver_state(dev->otherend) != 1769 + xenbus_read_driver_state(dev, dev->otherend) != 1770 1770 XenbusStateUnknown, XENNET_TIMEOUT); 1771 1771 } while (!err); 1772 1772 ··· 2627 2627 { 2628 2628 int ret; 2629 2629 2630 - if (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed) 2630 + if (xenbus_read_driver_state(dev, dev->otherend) == XenbusStateClosed) 2631 2631 return; 2632 2632 do { 2633 2633 xenbus_switch_state(dev, XenbusStateClosing); 2634 2634 ret = wait_event_timeout(module_wq, 2635 - xenbus_read_driver_state(dev->otherend) == 2636 - XenbusStateClosing || 2637 - xenbus_read_driver_state(dev->otherend) == 2638 - XenbusStateClosed || 2639 - xenbus_read_driver_state(dev->otherend) == 2640 - XenbusStateUnknown, 2641 - XENNET_TIMEOUT); 2635 + xenbus_read_driver_state(dev, dev->otherend) == 2636 + XenbusStateClosing || 2637 + xenbus_read_driver_state(dev, dev->otherend) == 2638 + XenbusStateClosed || 2639 + xenbus_read_driver_state(dev, dev->otherend) == 2640 + XenbusStateUnknown, 2641 + XENNET_TIMEOUT); 2642 2642 } while (!ret); 2643 2643 2644 - if (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed) 2644 + if (xenbus_read_driver_state(dev, dev->otherend) == XenbusStateClosed) 2645 2645 return; 2646 2646 2647 2647 do { 2648 2648 xenbus_switch_state(dev, XenbusStateClosed); 2649 2649 ret = wait_event_timeout(module_wq, 2650 - xenbus_read_driver_state(dev->otherend) == 2651 - XenbusStateClosed || 2652 - xenbus_read_driver_state(dev->otherend) == 2653 - XenbusStateUnknown, 2654 - XENNET_TIMEOUT); 2650 + xenbus_read_driver_state(dev, dev->otherend) == 2651 + XenbusStateClosed || 2652 + xenbus_read_driver_state(dev, dev->otherend) == 2653 + XenbusStateUnknown, 2654 + XENNET_TIMEOUT); 2655 2655 } while (!ret); 2656 2656 } 2657 2657
+4 -4
drivers/pci/xen-pcifront.c
··· 856 856 int err; 857 857 858 858 /* Only connect once */ 859 - if (xenbus_read_driver_state(pdev->xdev->nodename) != 859 + if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) != 860 860 XenbusStateInitialised) 861 861 return; 862 862 ··· 876 876 enum xenbus_state prev_state; 877 877 878 878 879 - prev_state = xenbus_read_driver_state(pdev->xdev->nodename); 879 + prev_state = xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename); 880 880 881 881 if (prev_state >= XenbusStateClosing) 882 882 goto out; ··· 895 895 896 896 static void pcifront_attach_devices(struct pcifront_device *pdev) 897 897 { 898 - if (xenbus_read_driver_state(pdev->xdev->nodename) == 898 + if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) == 899 899 XenbusStateReconfiguring) 900 900 pcifront_connect(pdev); 901 901 } ··· 909 909 struct pci_dev *pci_dev; 910 910 char str[64]; 911 911 912 - state = xenbus_read_driver_state(pdev->xdev->nodename); 912 + state = xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename); 913 913 if (state == XenbusStateInitialised) { 914 914 dev_dbg(&pdev->xdev->dev, "Handle skipped connect.\n"); 915 915 /* We missed Connected and need to initialize. */
+1 -1
drivers/scsi/xen-scsifront.c
··· 1175 1175 return; 1176 1176 } 1177 1177 1178 - if (xenbus_read_driver_state(dev->nodename) == 1178 + if (xenbus_read_driver_state(dev, dev->nodename) == 1179 1179 XenbusStateInitialised) 1180 1180 scsifront_do_lun_hotplug(info, VSCSIFRONT_OP_ADD_LUN); 1181 1181
+5 -5
drivers/xen/xen-pciback/xenbus.c
··· 149 149 150 150 mutex_lock(&pdev->dev_lock); 151 151 /* Make sure we only do this setup once */ 152 - if (xenbus_read_driver_state(pdev->xdev->nodename) != 152 + if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) != 153 153 XenbusStateInitialised) 154 154 goto out; 155 155 156 156 /* Wait for frontend to state that it has published the configuration */ 157 - if (xenbus_read_driver_state(pdev->xdev->otherend) != 157 + if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->otherend) != 158 158 XenbusStateInitialised) 159 159 goto out; 160 160 ··· 374 374 dev_dbg(&pdev->xdev->dev, "Reconfiguring device ...\n"); 375 375 376 376 mutex_lock(&pdev->dev_lock); 377 - if (xenbus_read_driver_state(pdev->xdev->nodename) != state) 377 + if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) != state) 378 378 goto out; 379 379 380 380 err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, "num_devs", "%d", ··· 572 572 /* It's possible we could get the call to setup twice, so make sure 573 573 * we're not already connected. 574 574 */ 575 - if (xenbus_read_driver_state(pdev->xdev->nodename) != 575 + if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) != 576 576 XenbusStateInitWait) 577 577 goto out; 578 578 ··· 662 662 struct xen_pcibk_device *pdev = 663 663 container_of(watch, struct xen_pcibk_device, be_watch); 664 664 665 - switch (xenbus_read_driver_state(pdev->xdev->nodename)) { 665 + switch (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename)) { 666 666 case XenbusStateInitWait: 667 667 xen_pcibk_setup_backend(pdev); 668 668 break;
+3 -1
drivers/xen/xenbus/xenbus_client.c
··· 931 931 932 932 /** 933 933 * xenbus_read_driver_state - read state from a store path 934 + * @dev: xenbus device pointer 934 935 * @path: path for driver 935 936 * 936 937 * Returns: the state of the driver rooted at the given store path, or 937 938 * XenbusStateUnknown if no state can be read. 938 939 */ 939 - enum xenbus_state xenbus_read_driver_state(const char *path) 940 + enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev, 941 + const char *path) 940 942 { 941 943 enum xenbus_state result; 942 944 int err = xenbus_gather(XBT_NIL, path, "state", "%d", &result, NULL);
+3 -3
drivers/xen/xenbus/xenbus_probe.c
··· 191 191 return; 192 192 } 193 193 194 - state = xenbus_read_driver_state(dev->otherend); 194 + state = xenbus_read_driver_state(dev, dev->otherend); 195 195 196 196 dev_dbg(&dev->dev, "state is %d, (%s), %s, %s\n", 197 197 state, xenbus_strstate(state), dev->otherend_watch.node, path); ··· 364 364 * closed. 365 365 */ 366 366 if (!drv->allow_rebind || 367 - xenbus_read_driver_state(dev->nodename) == XenbusStateClosing) 367 + xenbus_read_driver_state(dev, dev->nodename) == XenbusStateClosing) 368 368 xenbus_switch_state(dev, XenbusStateClosed); 369 369 } 370 370 EXPORT_SYMBOL_GPL(xenbus_dev_remove); ··· 514 514 size_t stringlen; 515 515 char *tmpstring; 516 516 517 - enum xenbus_state state = xenbus_read_driver_state(nodename); 517 + enum xenbus_state state = xenbus_read_driver_state(NULL, nodename); 518 518 519 519 if (state != XenbusStateInitialising) { 520 520 /* Device is not new, so ignore it. This can happen if a
+1 -1
drivers/xen/xenbus/xenbus_probe_frontend.c
··· 253 253 } else if (xendev->state < XenbusStateConnected) { 254 254 enum xenbus_state rstate = XenbusStateUnknown; 255 255 if (xendev->otherend) 256 - rstate = xenbus_read_driver_state(xendev->otherend); 256 + rstate = xenbus_read_driver_state(xendev, xendev->otherend); 257 257 pr_warn("Timeout connecting to device: %s (local state %d, remote state %d)\n", 258 258 xendev->nodename, xendev->state, rstate); 259 259 }
+2 -1
include/xen/xenbus.h
··· 228 228 int xenbus_alloc_evtchn(struct xenbus_device *dev, evtchn_port_t *port); 229 229 int xenbus_free_evtchn(struct xenbus_device *dev, evtchn_port_t port); 230 230 231 - enum xenbus_state xenbus_read_driver_state(const char *path); 231 + enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev, 232 + const char *path); 232 233 233 234 __printf(3, 4) 234 235 void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt, ...);