[libvirt] [PATCH 08/19] util: new function virPCIDeviceRebind()
Laine Stump
laine at laine.org
Fri Mar 17 14:02:04 UTC 2017
On 03/17/2017 09:32 AM, Michal Privoznik wrote:
> On 03/10/2017 09:35 PM, Laine Stump wrote:
>> This function unbinds a device from its driver, then immediately
>> rebinds it to its driver again.
>> ---
>> src/libvirt_private.syms | 1 +
>> src/util/virpci.c | 25 +++++++++++++++++++++++++
>> src/util/virpci.h | 1 +
>> 3 files changed, 27 insertions(+)
>>
>> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
>> index b44a6ee..ef027cc 100644
>> --- a/src/libvirt_private.syms
>> +++ b/src/libvirt_private.syms
>> @@ -2217,6 +2217,7 @@ virPCIDeviceListSteal;
>> virPCIDeviceListStealIndex;
>> virPCIDeviceNew;
>> virPCIDeviceReattach;
>> +virPCIDeviceRebind;
>> virPCIDeviceReset;
>> virPCIDeviceSetManaged;
>> virPCIDeviceSetRemoveSlot;
>> diff --git a/src/util/virpci.c b/src/util/virpci.c
>> index 9878398..a007eea 100644
>> --- a/src/util/virpci.c
>> +++ b/src/util/virpci.c
>> @@ -1101,6 +1101,31 @@ virPCIDeviceUnbind(virPCIDevicePtr dev)
>> return ret;
>> }
>>
>> +
>> +/**
>> + * virPCIDeviceRebind:
>> + * @dev: virPCIDevice object describing the device to rebind
>> + *
>> + * unbind a device from its driver, then immediately rebind it.
>> + *
>> + * Returns 0 on success, -1 on failure
>> + */
>> +int virPCIDeviceRebind(virPCIDevicePtr dev)
>> +{
>> + if (virPCIDeviceUnbind(dev) < 0)
>> + return -1;
>> +
>> + if (virFileWriteStr(PCI_SYSFS "drivers_probe", dev->name, 0) < 0) {
>> + virReportSystemError(errno,
>> + _("Failed to trigger a probe for PCI
>> device '%s'"),
>> + dev->name);
>> + return -1;
>> + }
>> +
>> + return 0;
>> +}
>> +
>
> This is the same code as in virPCIDeviceBindWithDriverOverride(). ACK if
> you replace it with call to this function.
Ah, okay. It took me a second to parse your request - at first I was
thinking "No, it's not the same as virPCIDeviceBindWithDriverOverride()
- there's extra stuff in that function!". Then I realized you meant I
should replace those lines in ....WithDriverOverride() with a call to
this new function. Sure, that makes sense.
>
> Michal
>
More information about the libvir-list
mailing list