possible to determine what the correct size should be.
                        This option provides an override for these situations.
 
+       carrier_timeout=
+                       [NET] Specifies amount of time (in seconds) that
+                       the kernel should wait for a network carrier. By default
+                       it waits 120 seconds.
+
        ca_keys=        [KEYS] This parameter identifies a specific key(s) on
                        the system trusted keyring to be used for certificate
                        trust validation.
 
 
 /* Define the friendly delay before and after opening net devices */
 #define CONF_POST_OPEN         10      /* After opening: 10 msecs */
-#define CONF_CARRIER_TIMEOUT   120000  /* Wait for carrier timeout */
 
 /* Define the timeout for waiting for a DHCP/BOOTP/RARP reply */
 #define CONF_OPEN_RETRIES      2       /* (Re)open devices twice */
 #define NONE cpu_to_be32(INADDR_NONE)
 #define ANY cpu_to_be32(INADDR_ANY)
 
+/* Wait for carrier timeout default in seconds */
+static unsigned int carrier_timeout = 120;
+
 /*
  * Public IP configuration
  */
 
        /* wait for a carrier on at least one device */
        start = jiffies;
-       next_msg = start + msecs_to_jiffies(CONF_CARRIER_TIMEOUT/12);
+       next_msg = start + msecs_to_jiffies(20000);
        while (time_before(jiffies, start +
-                          msecs_to_jiffies(CONF_CARRIER_TIMEOUT))) {
+                          msecs_to_jiffies(carrier_timeout * 1000))) {
                int wait, elapsed;
 
                for_each_netdev(&init_net, dev)
                        continue;
 
                elapsed = jiffies_to_msecs(jiffies - start);
-               wait = (CONF_CARRIER_TIMEOUT - elapsed + 500)/1000;
+               wait = (carrier_timeout * 1000 - elapsed + 500) / 1000;
                pr_info("Waiting up to %d more seconds for network.\n", wait);
-               next_msg = jiffies + msecs_to_jiffies(CONF_CARRIER_TIMEOUT/12);
+               next_msg = jiffies + msecs_to_jiffies(20000);
        }
 have_carrier:
        rtnl_unlock();
        return 1;
 }
 __setup("dhcpclass=", vendor_class_identifier_setup);
+
+static int __init set_carrier_timeout(char *str)
+{
+       ssize_t ret;
+
+       if (!str)
+               return 0;
+
+       ret = kstrtouint(str, 0, &carrier_timeout);
+       if (ret)
+               return 0;
+
+       return 1;
+}
+__setup("carrier_timeout=", set_carrier_timeout);