x86 pci configurator should not fail device teardown if device is gone
This is to track upstreaming the following issue from illumos-joyent:
OS-7968 pci configurator should not fail device teardown if device is gone
For details, rationale and testing notes, please refer to the original SmartOS issue:
Updated by Rob Johnston 10 months ago
If a hotpluggable PCIe device is removed, the PCIe hotplug controller ("pciehpc") will unprobe the slot, which eventually kicks off a pcicfg_unconfigure, which does a pcicfg_teardown_device for the child devinfo nodes on the slot. To disable the device, the teardown routine calls pcicfg_config_setup, which determines whether there is a device at the specified address. If there is no device, the teardown fails. For a hotpluggable slot, we do not want to fail in this case, as the absence of a device is possible and not an error.
The teardown routine should be changed to return success if the device is absent.