--- ipconfig.c.orig 2005-02-02 17:23:35.175853560 -0700 +++ ipconfig.c 2005-02-02 19:10:39.843155672 -0700 @@ -126,6 +126,7 @@ int ic_host_name_set __initdata = 0; /* Host name set by us? */ +u16 ic_mtu = 0; /* Interface MTU */ u32 ic_myaddr = INADDR_NONE; /* My IP address */ u32 ic_netmask = INADDR_NONE; /* Netmask for local subnet */ u32 ic_gateway = INADDR_NONE; /* Gateway IP address */ @@ -322,6 +323,13 @@ printk(KERN_ERR "IP-Config: Unable to set interface broadcast address (%d).\n", err); return -1; } + rtnl_shlock(); + err = dev_set_mtu(ic_dev, ic_mtu); + rtnl_shunlock(); + if (err < 0) { + printk(KERN_ERR "IP-Config: Unable to set interface MTU (%d).\n", err); + return -1; + } return 0; } @@ -609,6 +617,7 @@ 12, /* Host name */ 15, /* Domain name */ 17, /* Boot path */ + 26, /* MTU */ 40, /* NIS domain name */ }; @@ -812,6 +821,9 @@ if (!root_server_path[0]) ic_bootp_string(root_server_path, ext+1, *ext, sizeof(root_server_path)); break; + case 26: /* Interface MTU */ + ic_mtu = (((u16) ext[1]) << 8) | ext[2]; + break; case 40: /* NIS Domain name (_not_ DNS) */ ic_bootp_string(system_utsname.domainname, ext+1, *ext, __NEW_UTS_LEN); break; @@ -1362,8 +1374,9 @@ * Clue in the operator. */ printk("IP-Config: Complete:"); - printk("\n device=%s", ic_dev->name); - printk(", addr=%u.%u.%u.%u", NIPQUAD(ic_myaddr)); + printk("\n device=%s", ic_dev->name); + printk(", mtu=%u", (unsigned int)ic_mtu); + printk(",\n addr=%u.%u.%u.%u", NIPQUAD(ic_myaddr)); printk(", mask=%u.%u.%u.%u", NIPQUAD(ic_netmask)); printk(", gw=%u.%u.%u.%u", NIPQUAD(ic_gateway)); printk(",\n host=%s, domain=%s, nis-domain=%s",