Add comment on cpumask not working with a CPU count > 32
[fio.git] / parse.c
diff --git a/parse.c b/parse.c
index 456e3bafb54f91c19c060bf42c1e152e21448467..44c02f60eb1488dba372ea34683bb4a3bba54e70 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -236,7 +236,7 @@ static int __handle_option(struct fio_option *o, const char *ptr, void *data,
        dprint(FD_PARSE, "__handle_option=%s, type=%d, ptr=%s\n", o->name,
                                                        o->type, ptr);
 
-       if (!ptr && o->type != FIO_OPT_STR_SET) {
+       if (!ptr && o->type != FIO_OPT_STR_SET && o->type != FIO_OPT_STR) {
                fprintf(stderr, "Option %s requires an argument\n", o->name);
                return 1;
        }
@@ -487,22 +487,23 @@ static int opt_cmp(const void *p1, const void *p2)
 {
        struct fio_option *o1, *o2;
        char *s1, *s2, *foo;
-       int ret;
+       int prio1, prio2;
 
        s1 = strdup(*((char **) p1));
        s2 = strdup(*((char **) p2));
 
        o1 = get_option(s1, fio_options, &foo);
        o2 = get_option(s2, fio_options, &foo);
-
-       if ((!o1 && o2) || (o1 && !o2))
-               ret = 0;
-       else
-               ret = o2->prio - o1->prio;
+       
+       prio1 = prio2 = 0;
+       if (o1)
+               prio1 = o1->prio;
+       if (o2)
+               prio2 = o2->prio;
 
        free(s1);
        free(s2);
-       return ret;
+       return prio2 - prio1;
 }
 
 void sort_options(char **opts, struct fio_option *options, int num_opts)