diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index fc68b26d58f98c34989a5437b3d1e6add7d0ba04..8f5af32d64517156fd938e82f591a0f26e153498 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -81,7 +81,7 @@ static int write_output(struct perf_record *rec, void *buf, size_t size)
 	struct perf_data_file *file = &rec->file;
 
 	while (size) {
-		int ret = write(file->fd, buf, size);
+		ssize_t ret = write(file->fd, buf, size);
 
 		if (ret < 0) {
 			pr_err("failed to write perf data, error: %m\n");