I was unable to use nfs root with a dhcp server that does not fill the
"saddr" field in the bootp header (kernel then tries RPC on 0.0.0.0).
The ipconfig code states that the dhcp server_id takes precedence over
bootp header, but I think the check is misplaced as it is done only for
The following patch fixes the problem.
Signed-off-by: Maxime Bizon <mbizon@xxxxxxxxxx>
--- linux-126.96.36.199/net/ipv4/ipconfig.c.orig 2005-10-18 18:11:54.000000000
+++ linux-188.8.131.52/net/ipv4/ipconfig.c 2005-10-18 18:22:18.000000000 +0200
@@ -959,13 +959,6 @@
printk(" by server %u.%u.%u.%u\n",
- /* The DHCP indicated server address takes
- * precedence over the bootp header one if
- * they are different.
- if ((server_id != INADDR_NONE) &&
- (b->server_ip != server_id))
- b->server_ip = ic_servaddr;
@@ -982,6 +975,14 @@
+ /* The DHCP indicated server address takes
+ * precedence over the bootp header one if
+ * they are different.
+ if ((server_id != INADDR_NONE) &&
+ (b->server_ip != server_id))
+ b->server_ip = ic_servaddr;
ic_dhcp_msgtype = mt;