{
        unsigned long long ns;
 
+       if (!irtl)
+               return 0;
+
        ns = irtl_ns_units[(irtl >> 10) & 0x3];
 
        return div64_u64((irtl & 0x3FF) * ns, 1000);
 static void bxt_idle_state_table_update(void)
 {
        unsigned long long msr;
+       unsigned int usec;
 
        rdmsrl(MSR_PKGC6_IRTL, msr);
-       if (msr) {
-               unsigned int usec = irtl_2_usec(msr);
-
+       usec = irtl_2_usec(msr);
+       if (usec) {
                bxt_cstates[2].exit_latency = usec;
                bxt_cstates[2].target_residency = usec;
        }
 
        rdmsrl(MSR_PKGC7_IRTL, msr);
-       if (msr) {
-               unsigned int usec = irtl_2_usec(msr);
-
+       usec = irtl_2_usec(msr);
+       if (usec) {
                bxt_cstates[3].exit_latency = usec;
                bxt_cstates[3].target_residency = usec;
        }
 
        rdmsrl(MSR_PKGC8_IRTL, msr);
-       if (msr) {
-               unsigned int usec = irtl_2_usec(msr);
-
+       usec = irtl_2_usec(msr);
+       if (usec) {
                bxt_cstates[4].exit_latency = usec;
                bxt_cstates[4].target_residency = usec;
        }
 
        rdmsrl(MSR_PKGC9_IRTL, msr);
-       if (msr) {
-               unsigned int usec = irtl_2_usec(msr);
-
+       usec = irtl_2_usec(msr);
+       if (usec) {
                bxt_cstates[5].exit_latency = usec;
                bxt_cstates[5].target_residency = usec;
        }
 
        rdmsrl(MSR_PKGC10_IRTL, msr);
-       if (msr) {
-               unsigned int usec = irtl_2_usec(msr);
-
+       usec = irtl_2_usec(msr);
+       if (usec) {
                bxt_cstates[6].exit_latency = usec;
                bxt_cstates[6].target_residency = usec;
        }