Browse Source

staging:iio: Fix error handling in generic_buffer example

read() does not return -EAGAIN
read() returns -1 and the errno value needs to be checked for -EAGAIN

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Peter Meerwald 10 năm trước cách đây
mục cha
commit
97b603a4e9
1 tập tin đã thay đổi với 6 bổ sung3 xóa
  1. 6 3
      drivers/staging/iio/Documentation/generic_buffer.c

+ 6 - 3
drivers/staging/iio/Documentation/generic_buffer.c

@@ -305,9 +305,12 @@ int main(int argc, char **argv)
 		read_size = read(fp,
 				 data,
 				 toread*scan_size);
-		if (read_size == -EAGAIN) {
-			printf("nothing available\n");
-			continue;
+		if (read_size < 0) {
+			if (errno == -EAGAIN) {
+				printf("nothing available\n");
+				continue;
+			} else
+				break;
 		}
 		for (i = 0; i < read_size/scan_size; i++)
 			process_scan(data + scan_size*i,