Print this page
        
*** 324,334 ****
   * init_console_dev() drives the device-tree configuration of the zone
   * console device.  The general strategy is to use the libdevice (devctl)
   * interfaces to instantiate a new zone console node.  We do a lot of
   * sanity checking, and are careful to reuse a console if one exists.
   *
!  * Once the device is in the device tree, we kick devfsadm via di_devlink_init()
   * to ensure that the appropriate symlinks (to the master and slave console
   * devices) are placed in /dev in the global zone.
   */
  static int
  init_console_dev(zlog_t *zlogp)
--- 324,334 ----
   * init_console_dev() drives the device-tree configuration of the zone
   * console device.  The general strategy is to use the libdevice (devctl)
   * interfaces to instantiate a new zone console node.  We do a lot of
   * sanity checking, and are careful to reuse a console if one exists.
   *
!  * Once the device is in the device tree, we kick devfsadm via di_init_devs()
   * to ensure that the appropriate symlinks (to the master and slave console
   * devices) are placed in /dev in the global zone.
   */
  static int
  init_console_dev(zlog_t *zlogp)
*** 418,439 ****
           * 1 sec. and retry a few times. Even if we can't setup the zone's
           * console, we still go ahead and boot the zone.
           */
          (void) snprintf(conspath, sizeof (conspath), "/dev/zcons/%s/%s",
              zone_name, ZCONS_MASTER_NAME);
!         for (i = 0; i < ZCONS_RETRY; i++) {
!                 masterfd = open(conspath, O_RDWR | O_NOCTTY);
!                 if (masterfd >= 0 || errno != ENOENT)
!                         break;
!                 (void) sleep(1);
!         }
!         if (masterfd == -1) {
                  zerror(zlogp, B_TRUE, "ERROR: could not open master side of "
                      "zone console for %s to acquire slave handle", zone_name);
                  master_zcons_failed = B_TRUE;
          }
- 
          (void) snprintf(conspath, sizeof (conspath), "/dev/zcons/%s/%s",
              zone_name, ZCONS_SLAVE_NAME);
          for (i = 0; i < ZCONS_RETRY; i++) {
                  slavefd = open(conspath, O_RDWR | O_NOCTTY);
                  if (slavefd >= 0 || errno != ENOENT)
--- 418,432 ----
           * 1 sec. and retry a few times. Even if we can't setup the zone's
           * console, we still go ahead and boot the zone.
           */
          (void) snprintf(conspath, sizeof (conspath), "/dev/zcons/%s/%s",
              zone_name, ZCONS_MASTER_NAME);
!         if ((masterfd = open(conspath, O_RDWR | O_NOCTTY)) == -1) {
                  zerror(zlogp, B_TRUE, "ERROR: could not open master side of "
                      "zone console for %s to acquire slave handle", zone_name);
                  master_zcons_failed = B_TRUE;
          }
          (void) snprintf(conspath, sizeof (conspath), "/dev/zcons/%s/%s",
              zone_name, ZCONS_SLAVE_NAME);
          for (i = 0; i < ZCONS_RETRY; i++) {
                  slavefd = open(conspath, O_RDWR | O_NOCTTY);
                  if (slavefd >= 0 || errno != ENOENT)