|
@@ -273,20 +273,6 @@ static inline void uv_clear_nmi(int cpu)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-/* Print non-responding cpus */
|
|
|
|
-static void uv_nmi_nr_cpus_pr(char *fmt)
|
|
|
|
-{
|
|
|
|
- static char cpu_list[1024];
|
|
|
|
- int len = sizeof(cpu_list);
|
|
|
|
- int c = cpumask_weight(uv_nmi_cpu_mask);
|
|
|
|
- int n = cpulist_scnprintf(cpu_list, len, uv_nmi_cpu_mask);
|
|
|
|
-
|
|
|
|
- if (n >= len-1)
|
|
|
|
- strcpy(&cpu_list[len - 6], "...\n");
|
|
|
|
-
|
|
|
|
- printk(fmt, c, cpu_list);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/* Ping non-responding cpus attemping to force them into the NMI handler */
|
|
/* Ping non-responding cpus attemping to force them into the NMI handler */
|
|
static void uv_nmi_nr_cpus_ping(void)
|
|
static void uv_nmi_nr_cpus_ping(void)
|
|
{
|
|
{
|
|
@@ -371,16 +357,19 @@ static void uv_nmi_wait(int master)
|
|
break;
|
|
break;
|
|
|
|
|
|
/* if not all made it in, send IPI NMI to them */
|
|
/* if not all made it in, send IPI NMI to them */
|
|
- uv_nmi_nr_cpus_pr(KERN_ALERT
|
|
|
|
- "UV: Sending NMI IPI to %d non-responding CPUs: %s\n");
|
|
|
|
|
|
+ pr_alert("UV: Sending NMI IPI to %d non-responding CPUs: %*pbl\n",
|
|
|
|
+ cpumask_weight(uv_nmi_cpu_mask),
|
|
|
|
+ cpumask_pr_args(uv_nmi_cpu_mask));
|
|
|
|
+
|
|
uv_nmi_nr_cpus_ping();
|
|
uv_nmi_nr_cpus_ping();
|
|
|
|
|
|
/* if all cpus are in, then done */
|
|
/* if all cpus are in, then done */
|
|
if (!uv_nmi_wait_cpus(0))
|
|
if (!uv_nmi_wait_cpus(0))
|
|
break;
|
|
break;
|
|
|
|
|
|
- uv_nmi_nr_cpus_pr(KERN_ALERT
|
|
|
|
- "UV: %d CPUs not in NMI loop: %s\n");
|
|
|
|
|
|
+ pr_alert("UV: %d CPUs not in NMI loop: %*pbl\n",
|
|
|
|
+ cpumask_weight(uv_nmi_cpu_mask),
|
|
|
|
+ cpumask_pr_args(uv_nmi_cpu_mask));
|
|
} while (0);
|
|
} while (0);
|
|
|
|
|
|
pr_alert("UV: %d of %d CPUs in NMI\n",
|
|
pr_alert("UV: %d of %d CPUs in NMI\n",
|