use public interface to detect CAS reboots (take 2)
authorMike Wolf <mjw@linux.vnet.ibm.com>
Tue, 15 Jan 2008 20:33:51 +0000 (14:33 -0600)
committerPaul Nasrat <pauln@truemesh.com>
Tue, 15 Apr 2008 06:43:33 +0000 (07:43 +0100)
This is the second pass of this patch.  The fw variable name is changed
to use ibm,client-architecture-support-reboot field which is already present
in the firmware.  Please disregard the previous patch.

The firmware field used to detect CAS reboots (ibm,fw-nbr-reboots) is
really a private field that could change without warning.  A new field
ibm,#reconfig-reboots will be added as a public interface intended to
be used for this detection.  The patch will first check for
ibm,client-architecture-support-reboot if that is not found it will see
if ibm,fw-nbr-reboots is present and will use that instead.

-------

second/yaboot.c

index 5fc1213114d0a651123d1b71cba1eb9b8fb723a6..3d93275018027376cafffb685104a0fbfea586d0 100644 (file)
@@ -1702,7 +1702,8 @@ yaboot_main(void)
      DEBUG_F("/chosen/bootargs = %s\n", bootargs);
      prom_get_chosen("bootpath", bootdevice, BOOTDEVSZ);
      DEBUG_F("/chosen/bootpath = %s\n", bootdevice);
-     prom_get_options("ibm,fw-nbr-reboots",fw_nbr_reboots, FW_NBR_REBOOTSZ);
+     if (prom_get_options("ibm,client-architecture-support-reboot",fw_nbr_reboots, FW_NBR_REBOOTSZ) == -1 )
+        prom_get_options("ibm,fw-nbr-reboots",fw_nbr_reboots, FW_NBR_REBOOTSZ);
      fw_reboot_cnt = simple_strtol(fw_nbr_reboots,&endp,10);
      if (fw_reboot_cnt > 0L)
           prom_get_options("boot-last-label", bootlastlabel, BOOTLASTSZ);