| To: | davem@xxxxxxxxxxxxx |
|---|---|
| Subject: | [PATCH] ipconfig.c: fix "dhcp server takes precedence over bootp header one" |
| From: | Maxime Bizon <mbizon@xxxxxxxxxx> |
| Date: | Tue, 18 Oct 2005 19:05:19 +0200 |
| Cc: | netdev@xxxxxxxxxxx |
| Sender: | netdev-bounce@xxxxxxxxxxx |
Hello,
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
DHCPOFFER.
The following patch fixes the problem.
Signed-off-by: Maxime Bizon <mbizon@xxxxxxxxxx>
--- linux-2.6.13.4/net/ipv4/ipconfig.c.orig 2005-10-18 18:11:54.000000000
+0200
+++ linux-2.6.13.4/net/ipv4/ipconfig.c 2005-10-18 18:22:18.000000000 +0200
@@ -959,13 +959,6 @@
printk(" by server %u.%u.%u.%u\n",
NIPQUAD(ic_servaddr));
#endif
- /* 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;
break;
case DHCPACK:
@@ -982,6 +975,14 @@
goto drop_unlock;
};
+ /* 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;
}
--
Maxime
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Networ Problems (NETDEV WATCHDOG: eth2: transmit timed out), Christoph Anton Mitterer |
|---|---|
| Next by Date: | [PATCH] ipconfig.c: fix dhcp timeout leading to bad requested address., Maxime Bizon |
| Previous by Thread: | Networ Problems (NETDEV WATCHDOG: eth2: transmit timed out), Christoph Anton Mitterer |
| Next by Thread: | [PATCH] ipconfig.c: fix dhcp timeout leading to bad requested address., Maxime Bizon |
| Indexes: | [Date] [Thread] [Top] [All Lists] |