From: Shalini Chellathurai Saroja Date: Thu, 3 Dec 2020 17:59:42 +0000 (+0100) Subject: node_device: mdev matrix support X-Git-Tag: v7.0.0-rc1~233 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a0ab006d5a6e62849c277ff9ebcb827dbc090b01;p=thirdparty%2Flibvirt.git node_device: mdev matrix support Allow mdev devices to be created on the matrix device. Signed-off-by: Shalini Chellathurai Saroja Reviewed-by: Bjoern Walk Reviewed-by: Boris Fiuczynski Reviewed-by: Erik Skultety --- diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c index 65c647f5d6..e254b49244 100644 --- a/src/node_device/node_device_driver.c +++ b/src/node_device/node_device_driver.c @@ -662,6 +662,10 @@ nodeDeviceFindAddressByName(const char *name) break; } + case VIR_NODE_DEV_CAP_AP_MATRIX: + addr = g_strdup(caps->data.ap_matrix.addr); + break; + case VIR_NODE_DEV_CAP_SYSTEM: case VIR_NODE_DEV_CAP_USB_DEV: case VIR_NODE_DEV_CAP_USB_INTERFACE: @@ -680,7 +684,6 @@ nodeDeviceFindAddressByName(const char *name) case VIR_NODE_DEV_CAP_VDPA: case VIR_NODE_DEV_CAP_AP_CARD: case VIR_NODE_DEV_CAP_AP_QUEUE: - case VIR_NODE_DEV_CAP_AP_MATRIX: case VIR_NODE_DEV_CAP_LAST: break; } diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index 5782074f40..f10337be1f 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -1235,12 +1235,16 @@ udevProcessAPQueue(struct udev_device *device, static int -udevProcessAPMatrix(virNodeDeviceDefPtr def) +udevProcessAPMatrix(struct udev_device *device, + virNodeDeviceDefPtr def) { /* Both udev_device_get_sysname and udev_device_get_subsystem return * "matrix" for an AP matrix device, so in order to prevent confusion in * naming, let's fallback to hardcoding the name. */ + virNodeDevCapDataPtr data = &def->caps->data; + + data->ap_matrix.addr = g_strdup(udev_device_get_sysname(device)); def->name = g_strdup("ap_matrix"); return 0; @@ -1387,7 +1391,7 @@ udevGetDeviceDetails(struct udev_device *device, case VIR_NODE_DEV_CAP_AP_QUEUE: return udevProcessAPQueue(device, def); case VIR_NODE_DEV_CAP_AP_MATRIX: - return udevProcessAPMatrix(def); + return udevProcessAPMatrix(device, def); case VIR_NODE_DEV_CAP_MDEV_TYPES: case VIR_NODE_DEV_CAP_SYSTEM: case VIR_NODE_DEV_CAP_FC_HOST: