|
@@ -38,7 +38,7 @@ struct image_type pxe_image_type __image_type ( PROBE_PXE );
|
38
|
38
|
* @v image PXE image
|
39
|
39
|
* @ret rc Return status code
|
40
|
40
|
*/
|
41
|
|
-static int pxe_exec ( struct image *image __unused ) {
|
|
41
|
+static int pxe_exec ( struct image *image ) {
|
42
|
42
|
struct net_device *netdev;
|
43
|
43
|
int rc;
|
44
|
44
|
|
|
@@ -52,6 +52,13 @@ static int pxe_exec ( struct image *image __unused ) {
|
52
|
52
|
break;
|
53
|
53
|
}
|
54
|
54
|
|
|
55
|
+ /* Many things will break if pxe_netdev is NULL */
|
|
56
|
+ if ( ! pxe_netdev ) {
|
|
57
|
+ DBGC ( image, "IMAGE %p could not locate PXE net device\n",
|
|
58
|
+ image );
|
|
59
|
+ return -ENODEV;
|
|
60
|
+ }
|
|
61
|
+
|
55
|
62
|
/* Start PXE NBP */
|
56
|
63
|
rc = pxe_start_nbp();
|
57
|
64
|
|
|
@@ -80,8 +87,8 @@ int pxe_load ( struct image *image ) {
|
80
|
87
|
|
81
|
88
|
/* Verify and prepare segment */
|
82
|
89
|
if ( ( rc = prep_segment ( buffer, filesz, memsz ) ) != 0 ) {
|
83
|
|
- DBG ( "PXE image could not prepare segment: %s\n",
|
84
|
|
- strerror ( rc ) );
|
|
90
|
+ DBGC ( image, "IMAGE %p could not prepare segment: %s\n",
|
|
91
|
+ image, strerror ( rc ) );
|
85
|
92
|
return rc;
|
86
|
93
|
}
|
87
|
94
|
|