diff --git a/kernel/perf_counter.c b/kernel/perf_counter.c
index e0d91fdf0c3cfbb417c6fd94d38f2c5700942815..e7f60f8e31edc99a57a57fb4fb0c2353c9093341 100644
--- a/kernel/perf_counter.c
+++ b/kernel/perf_counter.c
@@ -4215,6 +4215,7 @@ static int perf_copy_attr(struct perf_counter_attr __user *uattr,
 			if (val)
 				goto err_size;
 		}
+		size = sizeof(*attr);
 	}
 
 	ret = copy_from_user(attr, uattr, size);