diff options
| author | Michael Brown | 2008-10-31 02:51:26 +0100 |
|---|---|---|
| committer | Michael Brown | 2008-10-31 02:51:26 +0100 |
| commit | 467c4f77c369da937f9f7f799fc905fba166d94c (patch) | |
| tree | c9beae06ffb5ec9839f48857bcdfc53ee7347eae /src/usr | |
| parent | [settings] Add the notion of a "tag magic" to numbered settings (diff) | |
| download | ipxe-467c4f77c369da937f9f7f799fc905fba166d94c.tar.gz ipxe-467c4f77c369da937f9f7f799fc905fba166d94c.tar.xz ipxe-467c4f77c369da937f9f7f799fc905fba166d94c.zip | |
[hacks] Improve the guess_boot_netdev() logic
This function is a major kludge, but can be made slightly more
accurate by ignoring net devices that aren't open. Eventually it
needs to be removed entirely.
Diffstat (limited to 'src/usr')
| -rw-r--r-- | src/usr/aoeboot.c | 7 | ||||
| -rw-r--r-- | src/usr/iscsiboot.c | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/src/usr/aoeboot.c b/src/usr/aoeboot.c index 08d21c4ec..e977b10fe 100644 --- a/src/usr/aoeboot.c +++ b/src/usr/aoeboot.c @@ -16,11 +16,12 @@ * @ret netdev Boot network device */ static struct net_device * guess_boot_netdev ( void ) { - struct net_device *boot_netdev; + struct net_device *netdev; /* Just use the first network device */ - for_each_netdev ( boot_netdev ) { - return boot_netdev; + for_each_netdev ( netdev ) { + if ( netdev->state & NETDEV_OPEN ) + return netdev; } return NULL; diff --git a/src/usr/iscsiboot.c b/src/usr/iscsiboot.c index e0098fd2c..cdf7790bb 100644 --- a/src/usr/iscsiboot.c +++ b/src/usr/iscsiboot.c @@ -26,11 +26,12 @@ struct setting keep_san_setting __setting = { * @ret netdev Boot network device */ static struct net_device * guess_boot_netdev ( void ) { - struct net_device *boot_netdev; + struct net_device *netdev; /* Just use the first network device */ - for_each_netdev ( boot_netdev ) { - return boot_netdev; + for_each_netdev ( netdev ) { + if ( netdev->state & NETDEV_OPEN ) + return netdev; } return NULL; |
