--- init/do_mounts.c.0 2003-12-18 11:58:45.000000000 +0900 +++ init/do_mounts.c 2004-01-05 22:55:22.000000000 +0900 @@ -347,8 +347,24 @@ { #ifdef CONFIG_ROOT_NFS if (MAJOR(ROOT_DEV) == UNNAMED_MAJOR) { +#ifdef CONFIG_IP_PNP + extern int ip_auto_config(void); + int retry = 10; + int jiff; + for (; !mount_nfs_root() && retry > 0; retry--) { + printk(KERN_NOTICE "VFS: Trying to IP-Config...\n"); + if (ip_auto_config() < 0) { + jiff = jiffies + 2*HZ; + while (time_before(jiffies, jiff)) + schedule(); + } + } + if (retry > 0) + return; +#else if (mount_nfs_root()) return; +#endif printk(KERN_ERR "VFS: Unable to mount root fs via NFS, trying floppy.\n"); ROOT_DEV = Root_FD0; --- net/ipv4/ipconfig.c.0 2003-12-18 11:58:06.000000000 +0900 +++ net/ipv4/ipconfig.c 2004-01-05 22:26:01.000000000 +0900 @@ -1192,7 +1192,7 @@ * IP Autoconfig dispatcher. */ -static int __init ip_auto_config(void) +int __init ip_auto_config(void) { unsigned long jiff;