|
@@ -509,6 +509,7 @@ static ssize_t reload_store(struct device *dev,
|
|
const char *buf, size_t size)
|
|
const char *buf, size_t size)
|
|
{
|
|
{
|
|
enum ucode_state tmp_ret = UCODE_OK;
|
|
enum ucode_state tmp_ret = UCODE_OK;
|
|
|
|
+ bool do_callback = false;
|
|
unsigned long val;
|
|
unsigned long val;
|
|
ssize_t ret = 0;
|
|
ssize_t ret = 0;
|
|
int cpu;
|
|
int cpu;
|
|
@@ -531,10 +532,13 @@ static ssize_t reload_store(struct device *dev,
|
|
if (!ret)
|
|
if (!ret)
|
|
ret = -EINVAL;
|
|
ret = -EINVAL;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if (tmp_ret == UCODE_UPDATED)
|
|
|
|
+ do_callback = true;
|
|
}
|
|
}
|
|
|
|
|
|
- if (!ret && tmp_ret == UCODE_UPDATED)
|
|
|
|
- perf_check_microcode();
|
|
|
|
|
|
+ if (!ret && do_callback)
|
|
|
|
+ microcode_check();
|
|
|
|
|
|
mutex_unlock(µcode_mutex);
|
|
mutex_unlock(µcode_mutex);
|
|
put_online_cpus();
|
|
put_online_cpus();
|