>From dd87b5d7e022c82efb068c8f2af84919111e2947 Mon Sep 17 00:00:00 2001 From: Damien Zammit Date: Fri, 2 Nov 2018 06:42:28 -0400 Subject: [PATCH libpciaccess] Add fallback mechanism from hurd to x86 access method when unavailable --- src/hurd_pci.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/hurd_pci.c b/src/hurd_pci.c index abdcb0e..eefb618 100644 --- a/src/hurd_pci.c +++ b/src/hurd_pci.c @@ -460,14 +460,17 @@ pci_system_hurd_create(void) pci_sys->methods = &hurd_pci_methods; pci_server_port = file_name_lookup(_SERVERS_BUS_PCI, 0, 0); - if (pci_server_port == MACH_PORT_NULL) - return errno; + if (!pci_server_port) { + /* Fall back to x86 access method */ + return pci_system_x86_create(); + } /* The server gives us the number of available devices for us */ err = pci_get_ndevs (pci_server_port, &ndevs); if (err) { mach_port_deallocate (mach_task_self (), pci_server_port); - return err; + /* Fall back to x86 access method */ + return pci_system_x86_create(); } mach_port_deallocate (mach_task_self (), pci_server_port); @@ -484,7 +487,7 @@ pci_system_hurd_create(void) err = enum_devices(_SERVERS_BUS_PCI, &device, -1, -1, -1, -1, LEVEL_DOMAIN); if (err) - return err; + return pci_system_x86_create(); return 0; } -- 2.17.1