|
@@ -373,26 +373,23 @@ static int collect_cpu_info(int cpu)
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
-struct apply_microcode_ctx {
|
|
|
|
- enum ucode_state err;
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
static void apply_microcode_local(void *arg)
|
|
static void apply_microcode_local(void *arg)
|
|
{
|
|
{
|
|
- struct apply_microcode_ctx *ctx = arg;
|
|
|
|
|
|
+ enum ucode_state *err = arg;
|
|
|
|
|
|
- ctx->err = microcode_ops->apply_microcode(smp_processor_id());
|
|
|
|
|
|
+ *err = microcode_ops->apply_microcode(smp_processor_id());
|
|
}
|
|
}
|
|
|
|
|
|
static int apply_microcode_on_target(int cpu)
|
|
static int apply_microcode_on_target(int cpu)
|
|
{
|
|
{
|
|
- struct apply_microcode_ctx ctx = { .err = 0 };
|
|
|
|
|
|
+ enum ucode_state err;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
- ret = smp_call_function_single(cpu, apply_microcode_local, &ctx, 1);
|
|
|
|
- if (!ret)
|
|
|
|
- ret = ctx.err;
|
|
|
|
-
|
|
|
|
|
|
+ ret = smp_call_function_single(cpu, apply_microcode_local, &err, 1);
|
|
|
|
+ if (!ret) {
|
|
|
|
+ if (err == UCODE_ERROR)
|
|
|
|
+ ret = 1;
|
|
|
|
+ }
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|