summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/drivers/bus/eisa.c4
-rw-r--r--src/drivers/bus/isa.c1
-rw-r--r--src/drivers/bus/isapnp.c4
-rw-r--r--src/drivers/bus/mca.c4
-rw-r--r--src/drivers/linux/linux.c1
-rw-r--r--src/include/ipxe/device.h2
-rw-r--r--src/include/ipxe/eisa.h2
-rw-r--r--src/include/ipxe/isa.h2
-rw-r--r--src/include/ipxe/isapnp.h2
-rw-r--r--src/include/ipxe/mca.h2
-rw-r--r--src/include/ipxe/pci.h1
-rw-r--r--src/usr/ifmgmt.c5
12 files changed, 14 insertions, 16 deletions
diff --git a/src/drivers/bus/eisa.c b/src/drivers/bus/eisa.c
index 22a615860..a4efe2621 100644
--- a/src/drivers/bus/eisa.c
+++ b/src/drivers/bus/eisa.c
@@ -63,8 +63,8 @@ static int eisa_probe ( struct eisa_device *eisa ) {
ISA_PROD_ID ( eisa->prod_id ) )
continue;
eisa->driver = driver;
- eisa->driver_name = id->name;
- DBG ( "...using driver %s\n", eisa->driver_name );
+ eisa->dev.driver_name = id->name;
+ DBG ( "...using driver %s\n", eisa->dev.driver_name );
if ( ( rc = driver->probe ( eisa, id ) ) != 0 ) {
DBG ( "......probe failed\n" );
continue;
diff --git a/src/drivers/bus/isa.c b/src/drivers/bus/isa.c
index e40d382a6..9b562c664 100644
--- a/src/drivers/bus/isa.c
+++ b/src/drivers/bus/isa.c
@@ -114,6 +114,7 @@ static int isabus_probe ( struct root_device *rootdev ) {
/* Add to device hierarchy */
snprintf ( isa->dev.name, sizeof ( isa->dev.name ),
"ISA%04x", isa->ioaddr );
+ isa->dev.driver_name = driver->name;
isa->dev.desc.bus_type = BUS_TYPE_ISA;
isa->dev.desc.vendor = driver->vendor_id;
isa->dev.desc.device = driver->prod_id;
diff --git a/src/drivers/bus/isapnp.c b/src/drivers/bus/isapnp.c
index d8bfcd7c2..f7845d3fa 100644
--- a/src/drivers/bus/isapnp.c
+++ b/src/drivers/bus/isapnp.c
@@ -600,8 +600,8 @@ static int isapnp_probe ( struct isapnp_device *isapnp ) {
ISA_PROD_ID ( isapnp->prod_id ) )
continue;
isapnp->driver = driver;
- isapnp->driver_name = id->name;
- DBG ( "...using driver %s\n", isapnp->driver_name );
+ isapnp->dev.driver_name = id->name;
+ DBG ( "...using driver %s\n", isapnp->dev.driver_name );
if ( ( rc = driver->probe ( isapnp, id ) ) != 0 ) {
DBG ( "......probe failed\n" );
continue;
diff --git a/src/drivers/bus/mca.c b/src/drivers/bus/mca.c
index 055b010df..0405c3b88 100644
--- a/src/drivers/bus/mca.c
+++ b/src/drivers/bus/mca.c
@@ -44,8 +44,8 @@ static int mca_probe ( struct mca_device *mca ) {
if ( id->id != MCA_ID ( mca ) )
continue;
mca->driver = driver;
- mca->driver_name = id->name;
- DBG ( "...using driver %s\n", mca->driver_name );
+ mca->dev.driver_name = id->name;
+ DBG ( "...using driver %s\n", mca->dev.driver_name );
if ( ( rc = driver->probe ( mca, id ) ) != 0 ) {
DBG ( "......probe failed\n" );
continue;
diff --git a/src/drivers/linux/linux.c b/src/drivers/linux/linux.c
index 1f26f5663..83546b27e 100644
--- a/src/drivers/linux/linux.c
+++ b/src/drivers/linux/linux.c
@@ -75,6 +75,7 @@ static int linux_probe(struct root_device *rootdev)
if (driver->probe(device, request) == 0) {
device->driver = driver;
+ device->dev.driver_name = driver->name;
/* Driver handled the device so release ownership */
device = NULL;
} else {
diff --git a/src/include/ipxe/device.h b/src/include/ipxe/device.h
index 635ce59cc..435af6ecf 100644
--- a/src/include/ipxe/device.h
+++ b/src/include/ipxe/device.h
@@ -58,6 +58,8 @@ struct device_description {
struct device {
/** Name */
char name[16];
+ /** Driver name */
+ const char *driver_name;
/** Device description */
struct device_description desc;
/** Devices on the same bus */
diff --git a/src/include/ipxe/eisa.h b/src/include/ipxe/eisa.h
index 1588f8114..22a1ed94e 100644
--- a/src/include/ipxe/eisa.h
+++ b/src/include/ipxe/eisa.h
@@ -54,8 +54,6 @@ struct eisa_device {
* this field.
*/
void *priv;
- /** Driver name */
- const char *driver_name;
};
/** An EISA driver */
diff --git a/src/include/ipxe/isa.h b/src/include/ipxe/isa.h
index 6d8f76161..4e69fc6f7 100644
--- a/src/include/ipxe/isa.h
+++ b/src/include/ipxe/isa.h
@@ -22,8 +22,6 @@ struct isa_device {
* this field.
*/
void *priv;
- /** Driver name */
- const char *driver_name;
};
/*
diff --git a/src/include/ipxe/isapnp.h b/src/include/ipxe/isapnp.h
index f2b0b34ac..47a47025b 100644
--- a/src/include/ipxe/isapnp.h
+++ b/src/include/ipxe/isapnp.h
@@ -198,8 +198,6 @@ struct isapnp_device {
* this field.
*/
void *priv;
- /** Driver name */
- const char *driver_name;
};
/** An ISAPnP driver */
diff --git a/src/include/ipxe/mca.h b/src/include/ipxe/mca.h
index 79543c1a0..d86dab195 100644
--- a/src/include/ipxe/mca.h
+++ b/src/include/ipxe/mca.h
@@ -50,8 +50,6 @@ struct mca_device {
* this field.
*/
void *priv;
- /** Driver name */
- const char *driver_name;
};
#define MCA_ID(mca) ( ( (mca)->pos[1] << 8 ) + (mca)->pos[0] )
diff --git a/src/include/ipxe/pci.h b/src/include/ipxe/pci.h
index 90802a3f1..960454d69 100644
--- a/src/include/ipxe/pci.h
+++ b/src/include/ipxe/pci.h
@@ -410,6 +410,7 @@ static inline void pci_set_driver ( struct pci_device *pci,
struct pci_device_id *id ) {
pci->driver = driver;
pci->id = id;
+ pci->dev.driver_name = id->name;
}
/**
diff --git a/src/usr/ifmgmt.c b/src/usr/ifmgmt.c
index e9fdaad0d..049851596 100644
--- a/src/usr/ifmgmt.c
+++ b/src/usr/ifmgmt.c
@@ -87,9 +87,10 @@ static void ifstat_errors ( struct net_device_stats *stats,
* @v netdev Network device
*/
void ifstat ( struct net_device *netdev ) {
- printf ( "%s: %s on %s (%s)\n"
+ printf ( "%s: %s using %s on %s (%s)\n"
" [Link:%s, TX:%d TXE:%d RX:%d RXE:%d]\n",
- netdev->name, netdev_addr ( netdev ), netdev->dev->name,
+ netdev->name, netdev_addr ( netdev ),
+ netdev->dev->driver_name, netdev->dev->name,
( netdev_is_open ( netdev ) ? "open" : "closed" ),
( netdev_link_ok ( netdev ) ? "up" : "down" ),
netdev->tx_stats.good, netdev->tx_stats.bad,