mirror of https://github.com/ipxe/ipxe.git
[linux] Give tap devices a name and bus type
Give tap devices a meaningful name, and avoid segmentation faults when attempting to retrieve ${net0/bustype} by assigning a new bus type for tap devices. Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/14/head
parent
3e975ecf3f
commit
ae0124cd40
|
@ -216,6 +216,9 @@ static int tap_probe(struct linux_device *device, struct linux_device_request *r
|
||||||
}
|
}
|
||||||
|
|
||||||
nic->interface = if_setting->value;
|
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;
|
if_setting->applied = 1;
|
||||||
|
|
||||||
/* Apply rest of the settings */
|
/* Apply rest of the settings */
|
||||||
|
|
|
@ -54,6 +54,9 @@ struct device_description {
|
||||||
/** ISA bus type */
|
/** ISA bus type */
|
||||||
#define BUS_TYPE_ISA 5
|
#define BUS_TYPE_ISA 5
|
||||||
|
|
||||||
|
/** TAP bus type */
|
||||||
|
#define BUS_TYPE_TAP 6
|
||||||
|
|
||||||
/** A hardware device */
|
/** A hardware device */
|
||||||
struct device {
|
struct device {
|
||||||
/** Name */
|
/** Name */
|
||||||
|
|
|
@ -120,6 +120,7 @@ static int netdev_fetch_bustype ( struct net_device *netdev, void *data,
|
||||||
[BUS_TYPE_EISA] = "EISA",
|
[BUS_TYPE_EISA] = "EISA",
|
||||||
[BUS_TYPE_MCA] = "MCA",
|
[BUS_TYPE_MCA] = "MCA",
|
||||||
[BUS_TYPE_ISA] = "ISA",
|
[BUS_TYPE_ISA] = "ISA",
|
||||||
|
[BUS_TYPE_TAP] = "TAP",
|
||||||
};
|
};
|
||||||
struct device_description *desc = &netdev->dev->desc;
|
struct device_description *desc = &netdev->dev->desc;
|
||||||
const char *bustype;
|
const char *bustype;
|
||||||
|
@ -127,7 +128,7 @@ static int netdev_fetch_bustype ( struct net_device *netdev, void *data,
|
||||||
assert ( desc->bus_type < ( sizeof ( bustypes ) /
|
assert ( desc->bus_type < ( sizeof ( bustypes ) /
|
||||||
sizeof ( bustypes[0] ) ) );
|
sizeof ( bustypes[0] ) ) );
|
||||||
bustype = bustypes[desc->bus_type];
|
bustype = bustypes[desc->bus_type];
|
||||||
assert ( bustypes != NULL );
|
assert ( bustype != NULL );
|
||||||
strncpy ( data, bustype, len );
|
strncpy ( data, bustype, len );
|
||||||
return strlen ( bustype );
|
return strlen ( bustype );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue