On 2019年08月19日 18:34, Dan Carpenter wrote:
On Fri, Aug 16, 2019 at 10:25:56AM +0800, Zhao Yakui wrote:
diff --git a/drivers/staging/acrn/acrn_dev.c b/drivers/staging/acrn/acrn_dev.c
index 0602125..6868003 100644
--- a/drivers/staging/acrn/acrn_dev.c
+++ b/drivers/staging/acrn/acrn_dev.c
@@ -588,6 +588,41 @@ static const struct file_operations fops = {
#define SUPPORT_HV_API_VERSION_MAJOR 1
#define SUPPORT_HV_API_VERSION_MINOR 0
+static ssize_t
+offline_cpu_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+#ifdef CONFIG_X86
+ u64 cpu, lapicid;
+
+ if (kstrtoull(buf, 0, &cpu) < 0)
+ return -EINVAL;
Thanks for the review.
Make sense.
The error code will be preserved.
Preserve the error code.
ret = kstrtoull(buf, 0, &cpu);
if (ret)
return ret;
+
+ if (cpu_possible(cpu)) {
You can't pass unchecked cpu values to cpu_possible() or it results in
an out of bounds read if cpu is >= than nr_cpu_ids.
OK. It will add the check of "cpu < num_possibles_cpu()" to avoid the
out of bounds.
regards,
dan carpenter
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel