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>
                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,