mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 19:32:19 +00:00
util: simplify virPCIFile() and its callers
There is no need for a temporary variable in this function, and ever since we switched to glib for memory allocation, there is no possibility it can return NULL, so callers don't need to check for it. Signed-off-by: Laine Stump <laine@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
06e318c328
commit
862f7e5c73
@ -219,10 +219,7 @@ virPCIDriverDir(const char *driver)
|
||||
static char *
|
||||
virPCIFile(const char *device, const char *file)
|
||||
{
|
||||
char *buffer;
|
||||
|
||||
buffer = g_strdup_printf(PCI_SYSFS "devices/%s/%s", device, file);
|
||||
return buffer;
|
||||
return g_strdup_printf(PCI_SYSFS "devices/%s/%s", device, file);
|
||||
}
|
||||
|
||||
|
||||
@ -240,9 +237,9 @@ virPCIDeviceGetDriverPathAndName(virPCIDevicePtr dev, char **path, char **name)
|
||||
g_autofree char *drvlink = NULL;
|
||||
|
||||
*path = *name = NULL;
|
||||
|
||||
/* drvlink = "/sys/bus/pci/dddd:bb:ss.ff/driver" */
|
||||
if (!(drvlink = virPCIFile(dev->name, "driver")))
|
||||
goto cleanup;
|
||||
drvlink = virPCIFile(dev->name, "driver");
|
||||
|
||||
if (!virFileExists(drvlink)) {
|
||||
ret = 0;
|
||||
@ -376,8 +373,7 @@ virPCIDeviceReadClass(virPCIDevicePtr dev, uint16_t *device_class)
|
||||
g_autofree char *id_str = NULL;
|
||||
unsigned int value;
|
||||
|
||||
if (!(path = virPCIFile(dev->name, "class")))
|
||||
return -1;
|
||||
path = virPCIFile(dev->name, "class");
|
||||
|
||||
/* class string is '0xNNNNNN\n' ... i.e. 9 bytes */
|
||||
if (virFileReadAll(path, 9, &id_str) < 0)
|
||||
@ -1054,8 +1050,7 @@ virPCIDeviceUnbind(virPCIDevicePtr dev)
|
||||
/* The device is not bound to any driver */
|
||||
return 0;
|
||||
|
||||
if (!(path = virPCIFile(dev->name, "driver/unbind")))
|
||||
return -1;
|
||||
path = virPCIFile(dev->name, "driver/unbind");
|
||||
|
||||
if (virFileExists(path)) {
|
||||
if (virFileWriteStr(path, dev->name, 0) < 0) {
|
||||
@ -1111,8 +1106,7 @@ virPCIDeviceBindWithDriverOverride(virPCIDevicePtr dev,
|
||||
{
|
||||
g_autofree char *path = NULL;
|
||||
|
||||
if (!(path = virPCIFile(dev->name, "driver_override")))
|
||||
return -1;
|
||||
path = virPCIFile(dev->name, "driver_override");
|
||||
|
||||
if (virFileWriteStr(path, driverName, 0) < 0) {
|
||||
virReportSystemError(errno,
|
||||
@ -1159,10 +1153,11 @@ virPCIDeviceBindToStub(virPCIDevicePtr dev)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!(stubDriverPath = virPCIDriverDir(stubDriverName)) ||
|
||||
!(driverLink = virPCIFile(dev->name, "driver")))
|
||||
if (!(stubDriverPath = virPCIDriverDir(stubDriverName)))
|
||||
return -1;
|
||||
|
||||
driverLink = virPCIFile(dev->name, "driver");
|
||||
|
||||
if (virFileExists(driverLink)) {
|
||||
if (virFileLinkPointsTo(driverLink, stubDriverPath)) {
|
||||
/* The device is already bound to the correct driver */
|
||||
@ -1259,8 +1254,7 @@ virPCIDeviceReadID(virPCIDevicePtr dev, const char *id_name)
|
||||
g_autofree char *path = NULL;
|
||||
char *id_str;
|
||||
|
||||
if (!(path = virPCIFile(dev->name, id_name)))
|
||||
return NULL;
|
||||
path = virPCIFile(dev->name, id_name);
|
||||
|
||||
/* ID string is '0xNNNN\n' ... i.e. 7 bytes */
|
||||
if (virFileReadAll(path, 7, &id_str) < 0)
|
||||
@ -1924,8 +1918,8 @@ virPCIDeviceAddressGetIOMMUGroupNum(virPCIDeviceAddressPtr addr)
|
||||
devName = g_strdup_printf(VIR_PCI_DEVICE_ADDRESS_FMT, addr->domain, addr->bus,
|
||||
addr->slot, addr->function);
|
||||
|
||||
if (!(devPath = virPCIFile(devName, "iommu_group")))
|
||||
return -1;
|
||||
devPath = virPCIFile(devName, "iommu_group");
|
||||
|
||||
if (virFileIsLink(devPath) != 1)
|
||||
return -2;
|
||||
if (virFileResolveLink(devPath, &groupPath) < 0) {
|
||||
@ -1973,8 +1967,8 @@ virPCIDeviceGetIOMMUGroupDev(virPCIDevicePtr dev)
|
||||
g_autofree char *groupPath = NULL;
|
||||
g_autofree char *groupFile = NULL;
|
||||
|
||||
if (!(devPath = virPCIFile(dev->name, "iommu_group")))
|
||||
return NULL;
|
||||
devPath = virPCIFile(dev->name, "iommu_group");
|
||||
|
||||
if (virFileIsLink(devPath) != 1) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Invalid device %s iommu_group file %s is not a symlink"),
|
||||
|
Loading…
x
Reference in New Issue
Block a user