mirror of
https://github.com/xcat2/xNBA.git
synced 2024-11-21 17:11:46 +00:00
[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>
This commit is contained in:
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;
|
||||
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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 );
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user