diff --git a/src/drivers/linux/tap.c b/src/drivers/linux/tap.c index 53bb16a3..99937d74 100644 --- a/src/drivers/linux/tap.c +++ b/src/drivers/linux/tap.c @@ -216,6 +216,9 @@ static int tap_probe(struct linux_device *device, struct linux_device_request *r } nic->interface = if_setting->value; + snprintf ( device->dev.name, sizeof ( device->dev.name ), "%s", + nic->interface ); + device->dev.desc.bus_type = BUS_TYPE_TAP; if_setting->applied = 1; /* Apply rest of the settings */ diff --git a/src/include/ipxe/device.h b/src/include/ipxe/device.h index 435af6ec..c59697c0 100644 --- a/src/include/ipxe/device.h +++ b/src/include/ipxe/device.h @@ -54,6 +54,9 @@ struct device_description { /** ISA bus type */ #define BUS_TYPE_ISA 5 +/** TAP bus type */ +#define BUS_TYPE_TAP 6 + /** A hardware device */ struct device { /** Name */ diff --git a/src/net/netdev_settings.c b/src/net/netdev_settings.c index 52e8007d..994e0506 100644 --- a/src/net/netdev_settings.c +++ b/src/net/netdev_settings.c @@ -120,6 +120,7 @@ static int netdev_fetch_bustype ( struct net_device *netdev, void *data, [BUS_TYPE_EISA] = "EISA", [BUS_TYPE_MCA] = "MCA", [BUS_TYPE_ISA] = "ISA", + [BUS_TYPE_TAP] = "TAP", }; struct device_description *desc = &netdev->dev->desc; const char *bustype; @@ -127,7 +128,7 @@ static int netdev_fetch_bustype ( struct net_device *netdev, void *data, assert ( desc->bus_type < ( sizeof ( bustypes ) / sizeof ( bustypes[0] ) ) ); bustype = bustypes[desc->bus_type]; - assert ( bustypes != NULL ); + assert ( bustype != NULL ); strncpy ( data, bustype, len ); return strlen ( bustype ); }