/*
           * Let's assume 32 pkeys on P8 bare metal, if its not defined by device            * tree. We make this exception since skiboot forgot to expose this
           * property on power8.
           */
          if (!firmware_has_feature(FW_FEATURE_LPAR) &&
-            cpu_has_feature(CPU_FTRS_POWER8))
+            early_cpu_has_feature(CPU_FTRS_POWER8))
              pkeys_total = 32;

That's not how cpu_has_feature() works, we'll need to fix that.

cheers


I did a separate patch to handle that which switch the above to

         /*
         * Let's assume 32 pkeys on P8/P9 bare metal, if its not defined by device          * tree. We make this exception since skiboot forgot to expose this
          * property on power8/9.
          */
         if (!firmware_has_feature(FW_FEATURE_LPAR) &&
             (early_cpu_has_feature(CPU_FTR_ARCH_207S) ||
              early_cpu_has_feature(CPU_FTR_ARCH_300)))
             pkeys_total = 32;



We should do a PVR check here i guess.


        ret = of_scan_flat_dt(dt_scan_storage_keys, &pkeys_total);
        if (ret == 0) {

                /*
                 * Let's assume 32 pkeys on P8/P9 bare metal, if its not 
defined by device
                 * tree. We make this exception since skiboot forgot to expose 
this
                 * property on power8/9.
                 */
                if (!firmware_has_feature(FW_FEATURE_LPAR) &&
                    (pvr_version_is(PVR_POWER8) || pvr_version_is(PVR_POWER9)))
                        pkeys_total = 32;
        }


-aneesh

Reply via email to