Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package accel-config for openSUSE:Factory 
checked in at 2021-04-26 16:39:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/accel-config (Old)
 and      /work/SRC/openSUSE:Factory/.accel-config.new.12324 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "accel-config"

Mon Apr 26 16:39:50 2021 rev:3 rq:888494 version:3.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/accel-config/accel-config.changes        
2021-02-15 23:19:16.551662461 +0100
+++ /work/SRC/openSUSE:Factory/.accel-config.new.12324/accel-config.changes     
2021-04-26 16:40:51.334196892 +0200
@@ -1,0 +2,14 @@
+Mon Apr 26 09:57:42 UTC 2021 - Ferdinand Thiessen <r...@fthiessen.de>
+
+- Update to version 3.1
+  * Improved error messages and return values
+  * Fix incorrect error return value from tool
+  * Allow -1 special value for wq->groupid and fix related error
+    messages
+  * Fix incorrect manpage text for config-wq
+  * Remove reference to non-interface header in interface header
+  * Remove non-interface header from packaging
+  * Use portable data types and fix build issues in 32 bit targets
+- Dropped upstream merged v3.0.1-use-portable-data-types.patch
+
+-------------------------------------------------------------------

Old:
----
  accel-config-v3.0.1.tar.gz
  v3.0.1-use-portable-data-types.patch

New:
----
  accel-config-v3.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ accel-config.spec ++++++
--- /var/tmp/diff_new_pack.pj8lJ3/_old  2021-04-26 16:40:51.738197556 +0200
+++ /var/tmp/diff_new_pack.pj8lJ3/_new  2021-04-26 16:40:51.742197563 +0200
@@ -19,13 +19,12 @@
 %define pkg_libname libaccel-config1
 
 Name:           accel-config
-Version:        3.0.1
+Version:        3.1
 Release:        0
 Summary:        Configure accelerator subsystem devices
 License:        GPL-2.0-only
 URL:            https://github.com/intel/idxd-config
 Source:         
https://github.com/intel/idxd-config/archive/accel-config-v%{version}.tar.gz
-Patch0:         v3.0.1-use-portable-data-types.patch
 BuildRequires:  asciidoc
 BuildRequires:  autoconf
 BuildRequires:  automake
@@ -65,7 +64,6 @@
 
 %prep
 %setup -q -n idxd-config-accel-config-v%{version}
-%autopatch -p1
 
 %build
 echo %{version} > version

++++++ accel-config-v3.0.1.tar.gz -> accel-config-v3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/idxd-config-accel-config-v3.0.1/Documentation/accfg/accel-config-config-wq.txt
 
new/idxd-config-accel-config-v3.1/Documentation/accfg/accel-config-config-wq.txt
--- 
old/idxd-config-accel-config-v3.0.1/Documentation/accfg/accel-config-config-wq.txt
  2021-02-10 07:20:45.000000000 +0100
+++ 
new/idxd-config-accel-config-v3.1/Documentation/accfg/accel-config-config-wq.txt
    2021-03-27 03:17:56.000000000 +0100
@@ -14,7 +14,7 @@
 
 EXAMPLE
 -------
-accel-config config-devie dsa0/wq0.0 --wq-size=16
+accel-config config-wq dsa0/wq0.0 --wq-size=16
 
 OPTIONS
 --------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/accfg/accel-config.c 
new/idxd-config-accel-config-v3.1/accfg/accel-config.c
--- old/idxd-config-accel-config-v3.0.1/accfg/accel-config.c    2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/accfg/accel-config.c      2021-03-27 
03:17:56.000000000 +0100
@@ -7,6 +7,7 @@
 #include <unistd.h>
 #include <sys/stat.h>
 #include <sys/types.h>
+#include <libkmod.h>
 #include <builtin.h>
 #include <accfg/libaccel_config.h>
 #include <ccan/array_size/array_size.h>
@@ -74,9 +75,34 @@
 #endif
 };
 
+static int idxd_kmod_init(struct kmod_ctx **ctx, struct kmod_module **mod)
+{
+       int rc;
+
+       *ctx = kmod_new(NULL, NULL);
+       if (!*ctx)
+               return -ENXIO;
+
+       rc = kmod_module_new_from_name(*ctx, "idxd", mod);
+       if (rc < 0) {
+               kmod_unref(*ctx);
+               return rc;
+       }
+
+       rc = kmod_module_get_initstate(*mod);
+       if (rc < 0) {
+               kmod_module_unref(*mod);
+               kmod_unref(*ctx);
+       }
+
+       return rc;
+}
+
 int main(int argc, const char **argv)
 {
        struct accfg_ctx *ctx;
+       struct kmod_ctx *kmod_ctx;
+       struct kmod_module *mod;
        int rc;
 
        /* Look for flags.. */
@@ -95,12 +121,30 @@
                return 0;
        }
 
+       rc = idxd_kmod_init(&kmod_ctx, &mod);
+       if (rc < 0) {
+               fprintf(stderr, "Failed initializing kernel module\n");
+               goto error_exit;
+       }
+
        rc = accfg_new(&ctx);
-       if (rc)
-               return 0;
-       main_handle_internal_command(argc, argv, ctx, commands,
+       if (rc) {
+               kmod_module_unref(mod);
+               kmod_unref(kmod_ctx);
+               goto error_exit;
+       }
+
+       rc = main_handle_internal_command(argc, argv, ctx, commands,
                                     ARRAY_SIZE(commands));
        accfg_unref(ctx);
-       fprintf(stderr, "Unknown command: '%s'\n", argv[0]);
-       return -EINVAL;
+       kmod_module_unref(mod);
+       kmod_unref(kmod_ctx);
+
+       if (!rc)
+               return EXIT_SUCCESS;
+error_exit:
+       errno = abs(rc);
+       perror("Error");
+
+       return EXIT_FAILURE;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/accfg/config.c 
new/idxd-config-accel-config-v3.1/accfg/config.c
--- old/idxd-config-accel-config-v3.0.1/accfg/config.c  2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/accfg/config.c    2021-03-27 
03:17:56.000000000 +0100
@@ -32,9 +32,9 @@
        char *buf;
 } config;
 
-static unsigned long config_opts_to_flags(void)
+static uint64_t config_opts_to_flags(void)
 {
-       unsigned long flags = 0;
+       uint64_t flags = 0;
        return flags;
 }
 
@@ -47,7 +47,7 @@
 struct wq_set_table {
        char *name;
        int (*set_int_func)(struct accfg_wq *wq, int val);
-       int (*set_long_func)(struct accfg_wq *wq, unsigned long val);
+       int (*set_long_func)(struct accfg_wq *wq, uint64_t val);
        int (*set_str_func)(struct accfg_wq *wq, const char *val);
        bool (*is_writable)(struct accfg_wq *wq, int val);
 };
@@ -259,7 +259,7 @@
 
                                return 0;
                        } else if (wq_table[i].set_long_func) {
-                               unsigned long val = json_object_get_int64(jobj);
+                               uint64_t val = json_object_get_int64(jobj);
 
                                if ((val == 0) && (errno == EINVAL))
                                        return -errno;
@@ -563,7 +563,7 @@
 }
 
 static struct json_object *config_group_to_json(struct accfg_group *group,
-                                               unsigned long flags)
+                                               uint64_t flags)
 {
        struct json_object *jgroup = json_object_new_object();
        struct json_object *jobj = NULL;
@@ -819,7 +819,7 @@
        struct list_filter_arg *lfa = ctx->list;
        struct json_object *jgroup;
        struct json_object *container = lfa->jdevice;
-       unsigned long group_id;
+       uint64_t group_id;
        struct accfg_device *dev = accfg_group_get_device(group);
        int max_groups = accfg_device_get_max_groups(dev);
        struct accfg_json_container *jc = NULL, *iter;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/accfg/config_attr.c 
new/idxd-config-accel-config-v3.1/accfg/config_attr.c
--- old/idxd-config-accel-config-v3.0.1/accfg/config_attr.c     2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/accfg/config_attr.c       2021-03-27 
03:17:56.000000000 +0100
@@ -133,8 +133,9 @@
 static int accel_config_parse_wq_attribs(struct accfg_device *device,
                struct accfg_wq *wq, struct wq_parameters *wq_params)
 {
-       unsigned int max_groups, max_wq_size, max_batch_size;
-       unsigned long max_transfer_size;
+       int max_groups;
+       unsigned int max_wq_size, max_batch_size;
+       uint64_t max_transfer_size;
        int rc = 0;
 
        if (wq_params->mode) {
@@ -158,10 +159,11 @@
                return -EINVAL;
        }
 
-       if (((unsigned int)wq_params->group_id >= max_groups)
-               && (wq_params->group_id != INT_MAX)) {
+       if ((wq_params->group_id >= max_groups) &&
+                       (wq_params->group_id != INT_MAX)) {
                fprintf(stderr,
-                       "valid group_id should be 0 to %d\n", max_groups-1);
+                       "valid group id should be 0 to %d or -1 to dissociate 
the wq from groups\n",
+                       max_groups-1);
                return -EINVAL;
        }
 
@@ -184,7 +186,7 @@
                || wq_params->max_transfer_size > max_transfer_size)
                && (wq_params->max_transfer_size != INT_MAX)) {
                fprintf(stderr,
-                       "valid max-transfer-size should be 1 to %ld\n", 
max_transfer_size);
+                       "valid max-transfer-size should be 1 to %" PRIu64 "\n", 
max_transfer_size);
                return -EINVAL;
        }
 
@@ -260,8 +262,9 @@
        max_groups = accfg_device_get_max_groups(device);
 
        if (engine_params->group_id >= max_groups) {
-               fprintf(stderr, "valid engine_id should be 0 to %d\n",
-                               max_groups - 1);
+               fprintf(stderr,
+                       "valid group id should be 0 to %d or -1 to dissociate 
from groups\n",
+                       max_groups - 1);
                return -EINVAL;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/accfg/enable.c 
new/idxd-config-accel-config-v3.1/accfg/enable.c
--- old/idxd-config-accel-config-v3.0.1/accfg/enable.c  2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/accfg/enable.c    2021-03-27 
03:17:56.000000000 +0100
@@ -81,6 +81,17 @@
        }
 }
 
+static void print_device_cmd_status(struct accfg_device *device)
+{
+       const char *status;
+
+       if (accfg_device_get_cmd_status(device) > 0) {
+               status = accfg_device_get_cmd_status_str(device);
+               if (status)
+                       fprintf(stderr, "device command status: %s\n", status);
+       }
+}
+
 static int device_action(int argc, const char **argv, const char *usage,
                         const struct option *options, enum dev_action action,
                         struct accfg_ctx *ctx)
@@ -89,7 +100,7 @@
                usage,
                NULL
        };
-       int i, rc = 0, success = 0, fail = 0, fail_reason = 0;
+       int i, rc = -EINVAL, success = 0;
        const char *all = "all";
        enum accfg_device_state state;
 
@@ -128,20 +139,18 @@
                                 * matches with the enable/disable
                                 */
                                state = accfg_device_get_state(device);
-                               if (((state == 1) && (action == 
DEV_ACTION_ENABLE))
-                                   ||((state == 0) && (action == 
DEV_ACTION_DISABLE)))
-                                       success++;
-                               else
-                                       fail++;
-                       } else if (!fail) {
-                               const char *status;
-
-                               fail_reason = rc;
+                               if (((state != ACCFG_DEVICE_ENABLED) &&
+                                               (action == DEV_ACTION_ENABLE)) 
||
+                                               ((state != 
ACCFG_DEVICE_DISABLED) &&
+                                                (action == 
DEV_ACTION_DISABLE)))
+                                       rc = ENXIO;
+                       }
+                       if (rc == 0) {
+                               success++;
+                       } else {
                                fprintf(stderr, "failed in %s\n", argv[i]);
 
-                               status = 
accfg_device_get_cmd_status_str(device);
-                               if (status)
-                                       fprintf(stderr, "device cmd err: 
%s.\n", status);
+                               print_device_cmd_status(device);
                        }
                }
 
@@ -150,33 +159,14 @@
                                        argv[i]);
        }
 
-       if (success) {
-               if (action == DEV_ACTION_ENABLE)
-                       fprintf(stderr, "successfully enabled %d device%s\n",
-                                       success, success > 1 ? "s" : "");
-               else
-                       fprintf(stderr, "successfully disabled %d device%s\n",
-                                       success, success > 1 ? "s" : "");
-               return success;
-       }
-
-       if (fail) {
-               if (action == DEV_ACTION_ENABLE)
-                       fprintf(stderr, "failed to enable %d device%s\n", fail,
-                               fail > 1 ? "s" : "");
-               else
-                       fprintf(stderr, "failed to disable %d device%s\n", fail,
-                               fail > 1 ? "s" : "");
+       fprintf(stderr, "%s %d device(s) out of %d\n",
+                       action == DEV_ACTION_ENABLE ? "enabled" : "disabled",
+                               success, argc);
 
-               return fail;
-       }
+       if (success)
+               return 0;
 
-       if (fail_reason) {
-               fprintf(stderr, "failed due to reason %d\n", fail_reason);
-               return fail_reason;
-       }
-
-       return -ENXIO;
+       return rc;
 }
 
 static int action_disable_wq(struct accfg_wq *wq, const char *wq_name)
@@ -236,10 +226,9 @@
                usage,
                NULL
        };
-       unsigned long dev_id, wq_id;
-       int i, rc = 0, success = 0, fail = 0, fail_reason = 0;
+       uint64_t dev_id, wq_id;
+       int i, rc = -EINVAL, success = 0;
        const char *all = "all";
-       enum accfg_wq_state state;
 
        argc = parse_options(argc, argv, options, u, 0);
 
@@ -263,7 +252,8 @@
                char dev_name[MAX_DEV_LEN], wq_name[MAX_DEV_LEN];
                int found = 0;
 
-               if (sscanf(argv[i], "%[^/]/wq%lu.%lu", dev_name, &dev_id, 
&wq_id) != 3) {
+               if (sscanf(argv[i], "%[^/]/wq%" SCNu64 ".%" SCNu64,
+                                       dev_name, &dev_id, &wq_id) != 3) {
                        fprintf(stderr, "'%s' is not a valid wq name\n",
                                argv[i]);
                        return -EINVAL;
@@ -272,9 +262,9 @@
                if (!accfg_device_type_validate(dev_name))
                        return -EINVAL;
 
-               rc = sprintf(wq_name, "wq%lu.%lu", dev_id, wq_id);
+               rc = sprintf(wq_name, "wq%" PRIu64 ".%" PRIu64, dev_id, wq_id);
                if (rc < 0)
-                       return errno;
+                       return rc;
 
                accfg_device_foreach(ctx, device) {
                        if (!util_device_filter(device, dev_name))
@@ -285,24 +275,11 @@
                                found++;
                                rc = wq_action_switch(wq, action, wq_name);
                                if (rc == 0) {
-                                       /*
-                                        * Double check if the state of the
-                                        * wq matches with the enable/disable
-                                        */
-                                       state = accfg_wq_get_state(wq);
-                                       if (((state == 1) && (action == 
WQ_ACTION_ENABLE))
-                                           ||((state == 0) && (action == 
WQ_ACTION_DISABLE)))
-                                               success++;
-                                       else
-                                               fail++;
-                               } else if (!fail) {
-                                       const char *status;
-
-                                       fail_reason = rc;
+                                       success++;
+                               } else {
                                        fprintf(stderr, "failed in %s\n", 
wq_name);
-                                       status = 
accfg_device_get_cmd_status_str(device);
-                                       if (status)
-                                               fprintf(stderr, "device cmd 
err: %s.\n", status);
+
+                                       print_device_cmd_status(device);
                                }
                        }
                }
@@ -311,34 +288,14 @@
                        fprintf(stderr, "no wq matches id: %s\n", wq_name);
        }
 
-       if (success) {
-               if (action == WQ_ACTION_ENABLE)
-                       fprintf(stderr, "successfully enabled %d wq%s\n",
-                                       success,
-                       success > 1 ? "s" : "");
-               else
-                       fprintf(stderr, "successfully disabled %d wq%s\n",
-                                       success,
-                       success > 1 ? "s" : "");
-               return success;
-       }
+       fprintf(stderr, "%s %d wq(s) out of %d\n",
+                       action == WQ_ACTION_ENABLE ? "enabled" : "disabled",
+                               success, argc);
 
-       if (fail) {
-               if (action == WQ_ACTION_ENABLE)
-                       fprintf(stderr, "failed to enable %d wq%s\n",
-                       fail, fail > 1 ? "s" : "");
-               else
-                       fprintf(stderr, "failed to disable %d wq%s\n",
-                       fail, fail > 1 ? "s" : "");
-               return fail;
-       }
+       if (success)
+               return 0;
 
-       if (fail_reason) {
-               fprintf(stderr, "failed due to reason %d\n",
-                       fail_reason);
-               return fail_reason;
-       }
-       return -ENXIO;
+       return rc;
 }
 
 int cmd_disable_device(int argc, const char **argv, void *ctx)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/idxd-config-accel-config-v3.0.1/accfg/lib/Makefile.am 
new/idxd-config-accel-config-v3.1/accfg/lib/Makefile.am
--- old/idxd-config-accel-config-v3.0.1/accfg/lib/Makefile.am   2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/accfg/lib/Makefile.am     2021-03-27 
03:17:56.000000000 +0100
@@ -3,7 +3,7 @@
 %.pc: %.pc.in Makefile
        $(SED_PROCESS)
 
-pkginclude_HEADERS = ../libaccel_config.h ../accfg.h
+pkginclude_HEADERS = ../libaccel_config.h
 lib_LTLIBRARIES = libaccel-config.la
 
 DISTCLEANFILES = config.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/accfg/lib/libaccfg.c 
new/idxd-config-accel-config-v3.1/accfg/lib/libaccfg.c
--- old/idxd-config-accel-config-v3.0.1/accfg/lib/libaccfg.c    2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/accfg/lib/libaccfg.c      2021-03-27 
03:17:56.000000000 +0100
@@ -54,6 +54,7 @@
 };
 
 const char *accfg_device_cmd_status[] = {
+       [0x0]   = "Successful completion",
        [0x1]   = "Invalid command code",
        [0x2]   = "Invalid WQ index",
        [0x3]   = "Internal or platform hardware error",
@@ -109,7 +110,7 @@
        return strtol(buf, NULL, 0);
 }
 
-static unsigned long long accfg_get_param_unsigned_llong(
+static uint64_t accfg_get_param_unsigned_llong(
                struct accfg_ctx *ctx, int dfd, char *name)
 {
        int fd = openat(dfd, name, O_RDONLY);
@@ -317,13 +318,13 @@
 
        env = secure_getenv("ACCFG_TIMEOUT");
        if (env != NULL) {
-               unsigned long tmo;
+               uint64_t tmo;
                char *end;
 
                tmo = strtoul(env, &end, 0);
                if (tmo < ULONG_MAX && !end)
                        c->timeout = tmo;
-               dbg(c, "timeout = %ld\n", tmo);
+               dbg(c, "timeout = %" PRIu64 "\n", tmo);
        }
 
        return 0;
@@ -642,7 +643,7 @@
        struct accfg_ctx *ctx;
        char *path;
        char *wq_base_string;
-       unsigned long device_id, wq_id;
+       uint64_t device_id, wq_id;
        int dfd;
        char *wq_type;
 
@@ -678,7 +679,7 @@
        }
 
        if (sscanf(basename(wq_base_string),
-                               "wq%ld.%ld", &device_id, &wq_id) != 2) {
+                               "wq%" SCNu64 ".%" SCNu64, &device_id, &wq_id) 
!= 2) {
                close(dfd);
                goto err_wq;
        }
@@ -739,7 +740,7 @@
        char *path;
        char *group_base_string;
        int dfd;
-       unsigned long device_id, group_id;
+       uint64_t device_id, group_id;
 
        if (!device)
                return NULL;
@@ -770,7 +771,7 @@
                goto err_group;
        }
        if (sscanf(basename(group_base_string),
-                               "group%ld.%ld", &device_id, &group_id) != 2) {
+                               "group%" SCNu64 ".%" SCNu64, &device_id, 
&group_id) != 2) {
                free(group);
                close(dfd);
                goto err_group;
@@ -828,7 +829,7 @@
        char *path;
        char *engine_base_string;
        int dfd;
-       unsigned long device_id, engine_id;
+       uint64_t device_id, engine_id;
 
        if (!device)
                return NULL;
@@ -861,7 +862,7 @@
                goto err_engine;
        }
        if (sscanf(basename(engine_base_string),
-                       "engine%ld.%ld", &device_id, &engine_id) != 2) {
+                       "engine%" SCNu64 ".%" SCNu64, &device_id, &engine_id) 
!= 2) {
                close(dfd);
                free(path);
                free(engine);
@@ -911,10 +912,26 @@
        return !strncmp(filename_prefix, d->d_name, filename_prefix_len);
 }
 
+static void groups_init(struct accfg_device *device)
+{
+       struct accfg_ctx *ctx = device->ctx;
+
+       if (device->group_init) {
+               dbg(ctx, "group is initialized already\n");
+               return;
+       }
+       device->group_init = 1;
+       set_filename_prefix("group");
+       device_parse(device->ctx, device->device_path, "group",
+                       filter_file_name_prefix,
+                       device, add_group);
+}
+
 static void devices_init(struct accfg_ctx *ctx)
 {
        char **accel_name;
        char *path;
+       struct accfg_device *device;
 
        if (ctx->devices_init) {
                dbg(ctx, "device is initialized already\n");
@@ -933,21 +950,10 @@
                                filter_file_name_prefix, ctx, add_device);
                free(path);
        }
-}
 
-static void groups_init(struct accfg_device *device)
-{
-       struct accfg_ctx *ctx = device->ctx;
-
-       if (device->group_init) {
-               dbg(ctx, "group is intialized already\n");
-               return;
+       accfg_device_foreach(ctx, device) {
+               groups_init(device);
        }
-       device->group_init = 1;
-       set_filename_prefix("group");
-       device_parse(device->ctx, device->device_path, "group",
-                       filter_file_name_prefix,
-                       device, add_group);
 }
 
 static void engines_init(struct accfg_device *device)
@@ -1200,19 +1206,19 @@
        return device->max_batch_size;
 }
 
-ACCFG_EXPORT unsigned long accfg_device_get_max_transfer_size(
+ACCFG_EXPORT uint64_t accfg_device_get_max_transfer_size(
                struct accfg_device *device)
 {
        return device->max_transfer_size;
 }
 
-ACCFG_EXPORT unsigned long accfg_device_get_op_cap(
+ACCFG_EXPORT uint64_t accfg_device_get_op_cap(
                struct accfg_device *device)
 {
        return device->opcap;
 }
 
-ACCFG_EXPORT unsigned long accfg_device_get_gen_cap(struct accfg_device 
*device)
+ACCFG_EXPORT uint64_t accfg_device_get_gen_cap(struct accfg_device *device)
 {
        return device->gencap;
 }
@@ -1252,7 +1258,7 @@
                return -errno;
        read_error = accfg_get_param_str(ctx, dfd, "errors");
        close(dfd);
-       rc = sscanf(read_error, "%lx %lx %lx %lx",
+       rc = sscanf(read_error, "%" SCNx64 " %" SCNx64 " %" SCNx64 " %" SCNx64,
                        &error->val[0], &error->val[1],
                        &error->val[2], &error->val[3]);
        if (rc < 0) {
@@ -1429,6 +1435,7 @@
        char *path;
        int len;
        char buf[SYSFS_ATTR_SIZE], *end_ptr;
+       int rc;
 
        if (!device)
                return -EINVAL;
@@ -1440,20 +1447,16 @@
        if (snprintf(path, len, "%s/cmd_status", device->device_path) >= len) {
                err(ctx, "%s: buffer too small!\n",
                                accfg_device_get_devname(device));
-               return 0;
+               return -ENOMEM;
        }
 
-       if (sysfs_read_attr(ctx, path, buf) < 0)
-               return 0;
+       rc = sysfs_read_attr(ctx, path, buf);
+       if (rc < 0)
+               return rc;
 
        status = strtol(buf, &end_ptr, 0);
-       if ((errno == ERANGE && (status == LONG_MAX || status == LONG_MIN)) ||
-           (errno != 0 && status == 0))
-               return -ERANGE;
-
-       /* Nothing was found */
-       if (end_ptr == buf)
-               return -ENXIO;
+       if (errno == ERANGE || end_ptr == buf)
+               return -EIO;
 
        return (int)status;
 }
@@ -1461,20 +1464,12 @@
 ACCFG_EXPORT const char * accfg_device_get_cmd_status_str(struct accfg_device 
*device)
 {
        int status;
-       const char *stat_str;
 
        status = accfg_device_get_cmd_status(device);
-       if (status < 0)
-               return NULL;
-
-       if (status > ACCFG_CMD_STATUS_MAX)
-               return NULL;
-
-       stat_str = accfg_device_cmd_status[status];
-       if (strlen(stat_str) == 0)
+       if (status < 0 || status >= ACCFG_CMD_STATUS_MAX)
                return NULL;
 
-       return stat_str;
+       return accfg_device_cmd_status[status];
 }
 
 /* Helper function to validate device type in the defined device array based on
@@ -1621,12 +1616,12 @@
        return devpath_to_devname(group->group_path);
 }
 
-ACCFG_EXPORT unsigned long accfg_group_get_size(struct accfg_group *group)
+ACCFG_EXPORT uint64_t accfg_group_get_size(struct accfg_group *group)
 {
        return group->size;
 }
 
-ACCFG_EXPORT unsigned long accfg_group_get_available_size(
+ACCFG_EXPORT uint64_t accfg_group_get_available_size(
                struct accfg_group *group)
 {
        struct accfg_ctx *ctx = accfg_group_get_ctx(group);
@@ -1794,7 +1789,7 @@
        return wq->name;
 }
 
-ACCFG_EXPORT unsigned long accfg_wq_get_size(struct accfg_wq *wq)
+ACCFG_EXPORT uint64_t accfg_wq_get_size(struct accfg_wq *wq)
 {
        return wq->size;
 }
@@ -1804,7 +1799,7 @@
        return wq->max_batch_size;
 }
 
-ACCFG_EXPORT unsigned long accfg_wq_get_max_transfer_size(struct accfg_wq *wq)
+ACCFG_EXPORT uint64_t accfg_wq_get_max_transfer_size(struct accfg_wq *wq)
 {
        return wq->max_transfer_size;
 }
@@ -2091,7 +2086,7 @@
 
 #define accfg_wq_set_long_field(wq, val, field) \
 ACCFG_EXPORT int accfg_wq_set_##field( \
-               struct accfg_wq *wq, unsigned long val) \
+               struct accfg_wq *wq, uint64_t val) \
 { \
        struct accfg_ctx *ctx = accfg_wq_get_ctx(wq); \
        char *path = wq->wq_buf; \
@@ -2100,7 +2095,7 @@
        rc = sprintf(wq->wq_buf, "%s/%s", wq->wq_path, #field); \
        if (rc < 0) \
                return -errno; \
-       if (sprintf(buf, "%ld", val) < 0) { \
+       if (sprintf(buf, "%" PRIu64, val) < 0) { \
                err(ctx, "%s: sprintf to buf failed: %s\n", \
                                accfg_wq_get_devname(wq), \
                                strerror(errno)); \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/accfg/lib/private.h 
new/idxd-config-accel-config-v3.1/accfg/lib/private.h
--- old/idxd-config-accel-config-v3.0.1/accfg/lib/private.h     2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/accfg/lib/private.h       2021-03-27 
03:17:56.000000000 +0100
@@ -51,9 +51,9 @@
        unsigned int token_limit;
        unsigned int cdev_major;
        unsigned int version;
-       unsigned long max_transfer_size;
-       unsigned long opcap;
-       unsigned long gencap;
+       uint64_t max_transfer_size;
+       uint64_t opcap;
+       uint64_t gencap;
        char *pasid_enabled;
 };
 
@@ -124,7 +124,7 @@
        enum accfg_wq_type type;
        char *state;
        unsigned int max_batch_size;
-       unsigned long max_transfer_size;
+       uint64_t max_transfer_size;
 };
 
 #define ACCFG_EXPORT __attribute__ ((visibility("default")))
@@ -144,7 +144,7 @@
         int devices_init;
        int groups_init;
        struct list_head devices;
-        unsigned long timeout;
+       uint64_t timeout;
         void *private_data;
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/idxd-config-accel-config-v3.0.1/accfg/libaccel_config.h 
new/idxd-config-accel-config-v3.1/accfg/libaccel_config.h
--- old/idxd-config-accel-config-v3.0.1/accfg/libaccel_config.h 2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/accfg/libaccel_config.h   2021-03-27 
03:17:56.000000000 +0100
@@ -11,7 +11,6 @@
 #include <errno.h>
 #include <limits.h>
 #include <uuid/uuid.h>
-#include <util/filter.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -102,7 +101,7 @@
        unsigned int priority;
        int block_on_fault;
        unsigned int max_batch_size;
-       unsigned long max_transfer_size;
+       uint64_t max_transfer_size;
        const char *mode;
        const char *type;
        const char *name;
@@ -167,9 +166,9 @@
 int accfg_device_get_numa_node(struct accfg_device *device);
 unsigned int accfg_device_get_ims_size(struct accfg_device *device);
 unsigned int accfg_device_get_max_batch_size(struct accfg_device *device);
-unsigned long accfg_device_get_max_transfer_size(struct accfg_device *device);
-unsigned long accfg_device_get_op_cap(struct accfg_device *device);
-unsigned long accfg_device_get_gen_cap(struct accfg_device *device);
+uint64_t accfg_device_get_max_transfer_size(struct accfg_device *device);
+uint64_t accfg_device_get_op_cap(struct accfg_device *device);
+uint64_t accfg_device_get_gen_cap(struct accfg_device *device);
 unsigned int accfg_device_get_configurable(struct accfg_device *device);
 bool accfg_device_get_pasid_enabled(struct accfg_device  *device);
 bool accfg_device_get_mdev_enabled(struct accfg_device *device);
@@ -213,8 +212,8 @@
                                                int id);
 int accfg_group_get_device_id(struct accfg_group *group);
 const char *accfg_group_get_devname(struct accfg_group *group);
-unsigned long accfg_group_get_size(struct accfg_group *group);
-unsigned long accfg_group_get_available_size(struct accfg_group *group);
+uint64_t accfg_group_get_size(struct accfg_group *group);
+uint64_t accfg_group_get_available_size(struct accfg_group *group);
 struct accfg_device *accfg_group_get_device(struct accfg_group *group);
 struct accfg_ctx *accfg_group_get_ctx(struct accfg_group *group);
 int accfg_group_get_tokens_reserved(struct accfg_group *group);
@@ -247,7 +246,7 @@
                                        int id);
 const char *accfg_wq_get_devname(struct accfg_wq *wq);
 enum accfg_wq_mode accfg_wq_get_mode(struct accfg_wq *wq);
-unsigned long accfg_wq_get_size(struct accfg_wq *wq);
+uint64_t accfg_wq_get_size(struct accfg_wq *wq);
 int accfg_wq_get_group_id(struct accfg_wq *wq);
 int accfg_wq_get_priority(struct accfg_wq *wq);
 unsigned int accfg_wq_get_priv(struct accfg_wq *wq);
@@ -257,7 +256,7 @@
 const char *accfg_wq_get_type_name(struct accfg_wq *wq);
 enum accfg_wq_type accfg_wq_get_type(struct accfg_wq *wq);
 unsigned int accfg_wq_get_max_batch_size(struct accfg_wq *wq);
-unsigned long accfg_wq_get_max_transfer_size(struct accfg_wq *wq);
+uint64_t accfg_wq_get_max_transfer_size(struct accfg_wq *wq);
 int accfg_wq_get_threshold(struct accfg_wq *wq);
 int accfg_wq_get_clients(struct accfg_wq *wq);
 int accfg_wq_is_enabled(struct accfg_wq *wq);
@@ -267,7 +266,7 @@
 int accfg_wq_set_threshold(struct accfg_wq *wq, int val);
 int accfg_wq_set_block_on_fault(struct accfg_wq *wq, int val);
 int accfg_wq_set_max_batch_size(struct accfg_wq *wq, int val);
-int accfg_wq_set_max_transfer_size(struct accfg_wq *wq, unsigned long val);
+int accfg_wq_set_max_transfer_size(struct accfg_wq *wq, uint64_t val);
 int accfg_wq_set_str_mode(struct accfg_wq *wq, const char* val);
 int accfg_wq_set_mode(struct accfg_wq *wq, enum accfg_wq_mode mode);
 int accfg_wq_set_str_type(struct accfg_wq *wq, const char* val);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/accfg/list.c 
new/idxd-config-accel-config-v3.1/accfg/list.c
--- old/idxd-config-accel-config-v3.0.1/accfg/list.c    2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/accfg/list.c      2021-03-27 
03:17:56.000000000 +0100
@@ -25,9 +25,9 @@
        bool save_conf;
 } list;
 
-static unsigned long listopts_to_flags(void)
+static uint64_t listopts_to_flags(void)
 {
-       unsigned long flags = 0;
+       uint64_t flags = 0;
 
        if (list.idle)
                flags |= UTIL_JSON_IDLE;
@@ -50,7 +50,7 @@
 } while (0)
 
 static struct json_object *group_to_json(struct accfg_group *group,
-               unsigned long flags)
+               uint64_t flags)
 {
        struct json_object *jgroup = json_object_new_object();
        struct json_object *jobj = NULL;
@@ -249,7 +249,7 @@
 static bool filter_group(struct accfg_group *group,
                         struct util_filter_ctx *ctx)
 {
-       unsigned long group_id;
+       uint64_t group_id;
        struct list_filter_arg *lfa = ctx->list;
        struct json_object *jgroup;
        struct json_object *container = lfa->jdevice;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/ccan/endian/endian.h 
new/idxd-config-accel-config-v3.1/ccan/endian/endian.h
--- old/idxd-config-accel-config-v3.0.1/ccan/endian/endian.h    2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/ccan/endian/endian.h      2021-03-27 
03:17:56.000000000 +0100
@@ -95,7 +95,7 @@
  * Example:
  *     // Output contains "1024 is 1125899906842624 as eight bytes reversed"
  *     printf("1024 is %llu as eight bytes reversed\n",
- *             (unsigned long long)bswap_64(1024));
+ *             (uint64_t long)bswap_64(1024));
  */
 static inline uint64_t bswap_64(uint64_t val)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/git-version 
new/idxd-config-accel-config-v3.1/git-version
--- old/idxd-config-accel-config-v3.0.1/git-version     2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/git-version       2021-03-27 
03:17:56.000000000 +0100
@@ -19,7 +19,7 @@
        fi
 }
 
-DEF_VER=3.0.1
+DEF_VER=3.1
 
 LF='
 '
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/test/common 
new/idxd-config-accel-config-v3.1/test/common
--- old/idxd-config-accel-config-v3.0.1/test/common     2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/test/common       2021-03-27 
03:17:56.000000000 +0100
@@ -99,7 +99,14 @@
 #
 _cleanup()
 {
-       modprobe -r idxd
+       lsmod | grep -q "idxd_mdev" && {
+               modprobe -r idxd_mdev
+               sleep 1
+       }
+       lsmod | grep -q "idxd" && {
+               modprobe -r idxd
+               sleep 1
+       }
        modprobe idxd
 }
 
@@ -158,4 +165,4 @@
                echo "UNKNOWN"
                ;;
        esac
-}
\ No newline at end of file
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/test/dsa.c 
new/idxd-config-accel-config-v3.1/test/dsa.c
--- old/idxd-config-accel-config-v3.0.1/test/dsa.c      2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/test/dsa.c        2021-03-27 
03:17:56.000000000 +0100
@@ -367,7 +367,7 @@
        int ret = 0;
 
        while (retry_count < 3) {
-               if (!enqcmd(hw, ctx->wq_reg))
+               if (!enqcmd(ctx->wq_reg, hw))
                        break;
 
                info("retry\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/test/dsa.h 
new/idxd-config-accel-config-v3.1/test/dsa.h
--- old/idxd-config-accel-config-v3.0.1/test/dsa.h      2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/test/dsa.h        2021-03-27 
03:17:56.000000000 +0100
@@ -4,6 +4,7 @@
 #define __TEST_DSA_H__
 #include <accfg/libaccel_config.h>
 #include <linux/idxd.h>
+#include "accfg_test.h"
 
 #define MAX_PATH_LENGTH 1024
 
@@ -144,24 +145,6 @@
        va_end(args);
 }
 
-static inline unsigned char enqcmd(struct dsa_hw_desc *desc,
-                       volatile void *reg)
-{
-       unsigned char retry;
-
-       asm volatile(".byte 0xf2, 0x0f, 0x38, 0xf8, 0x02\t\n"
-                       "setz %0\t\n"
-                       : "=r"(retry) : "a" (reg), "d" (desc));
-       return retry;
-}
-
-static inline void movdir64b(struct dsa_hw_desc *desc,
-                       volatile void *reg)
-{
-       asm volatile(".byte 0x66, 0x0f, 0x38, 0xf8, 0x02\t\n"
-               : : "a" (reg), "d" (desc));
-}
-
 /* Dump DSA hardware descriptor to log */
 static inline void dump_desc(struct dsa_hw_desc *hw)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/test/prep.c 
new/idxd-config-accel-config-v3.1/test/prep.c
--- old/idxd-config-accel-config-v3.0.1/test/prep.c     2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/test/prep.c       2021-03-27 
03:17:56.000000000 +0100
@@ -24,7 +24,7 @@
 
        /* use MOVDIR64B for DWQ */
        if (ctx->dedicated)
-               movdir64b(hw, ctx->wq_reg);
+               movdir64b(ctx->wq_reg, hw);
        else /* use ENQCMD for SWQ */
                if (dsa_enqcmd(ctx, hw))
                        usleep(10000);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/util/bitmap.c 
new/idxd-config-accel-config-v3.1/util/bitmap.c
--- old/idxd-config-accel-config-v3.0.1/util/bitmap.c   2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/util/bitmap.c     2021-03-27 
03:17:56.000000000 +0100
@@ -22,17 +22,17 @@
 #include <ccan/minmax/minmax.h>
 #include <ccan/short_types/short_types.h>
 
-unsigned long *bitmap_alloc(unsigned long nbits)
+uint64_t *bitmap_alloc(uint64_t nbits)
 {
-       return calloc(BITS_TO_LONGS(nbits), sizeof(unsigned long));
+       return calloc(BITS_TO_LONGS(nbits), sizeof(uint64_t));
 }
 
-void bitmap_set(unsigned long *map, unsigned int start, int len)
+void bitmap_set(uint64_t *map, unsigned int start, int len)
 {
-       unsigned long *p = map + BIT_WORD(start);
+       uint64_t *p = map + BIT_WORD(start);
        const unsigned int size = start + len;
        int bits_to_set = BITS_PER_LONG - (start % BITS_PER_LONG);
-       unsigned long mask_to_set = BITMAP_FIRST_WORD_MASK(start);
+       uint64_t mask_to_set = BITMAP_FIRST_WORD_MASK(start);
 
        while (len - bits_to_set >= 0) {
                *p |= mask_to_set;
@@ -47,12 +47,12 @@
        }
 }
 
-void bitmap_clear(unsigned long *map, unsigned int start, int len)
+void bitmap_clear(uint64_t *map, unsigned int start, int len)
 {
-       unsigned long *p = map + BIT_WORD(start);
+       uint64_t *p = map + BIT_WORD(start);
        const unsigned int size = start + len;
        int bits_to_clear = BITS_PER_LONG - (start % BITS_PER_LONG);
-       unsigned long mask_to_clear = BITMAP_FIRST_WORD_MASK(start);
+       uint64_t mask_to_clear = BITMAP_FIRST_WORD_MASK(start);
 
        while (len - bits_to_clear >= 0) {
                *p &= ~mask_to_clear;
@@ -72,7 +72,7 @@
  * @nr: bit number to test
  * @addr: Address to start counting from
  */
-int test_bit(unsigned int nr, const volatile unsigned long *addr)
+int test_bit(unsigned int nr, const volatile uint64_t *addr)
 {
        return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
 }
@@ -82,10 +82,10 @@
  * find_next_zero_bit.  The difference is the "invert" argument, which
  * is XORed with each fetched word before searching it for one bits.
  */
-static unsigned long _find_next_bit(const unsigned long *addr,
-               unsigned long nbits, unsigned long start, unsigned long invert)
+static uint64_t _find_next_bit(const uint64_t *addr,
+               uint64_t nbits, uint64_t start, uint64_t invert)
 {
-       unsigned long tmp;
+       uint64_t tmp;
 
        if (!nbits || start >= nbits)
                return nbits;
@@ -110,19 +110,19 @@
 /*
  * Find the next set bit in a memory region.
  */
-unsigned long find_next_bit(const unsigned long *addr, unsigned long size,
-                           unsigned long offset)
+uint64_t find_next_bit(const uint64_t *addr, uint64_t size,
+                           uint64_t offset)
 {
        return _find_next_bit(addr, size, offset, 0UL);
 }
 
-unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size,
-                                unsigned long offset)
+uint64_t find_next_zero_bit(const uint64_t *addr, uint64_t size,
+                                uint64_t offset)
 {
        return _find_next_bit(addr, size, offset, ~0UL);
 }
 
-int bitmap_full(const unsigned long *src, unsigned int nbits)
+int bitmap_full(const uint64_t *src, unsigned int nbits)
 {
        if (small_const_nbits(nbits))
                return ! (~(*src) & BITMAP_LAST_WORD_MASK(nbits));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/util/bitmap.h 
new/idxd-config-accel-config-v3.1/util/bitmap.h
--- old/idxd-config-accel-config-v3.0.1/util/bitmap.h   2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/util/bitmap.h     2021-03-27 
03:17:56.000000000 +0100
@@ -21,15 +21,15 @@
 #define small_const_nbits(nbits) \
        (__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG)
 
-unsigned long *bitmap_alloc(unsigned long nbits);
-void bitmap_set(unsigned long *map, unsigned int start, int len);
-void bitmap_clear(unsigned long *map, unsigned int start, int len);
-int test_bit(unsigned int nr, const volatile unsigned long *addr);
-unsigned long find_next_bit(const unsigned long *addr, unsigned long size,
-                           unsigned long offset);
-unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size,
-                                unsigned long offset);
-int bitmap_full(const unsigned long *src, unsigned int nbits);
+uint64_t *bitmap_alloc(uint64_t nbits);
+void bitmap_set(uint64_t *map, unsigned int start, int len);
+void bitmap_clear(uint64_t *map, unsigned int start, int len);
+int test_bit(unsigned int nr, const volatile uint64_t *addr);
+uint64_t find_next_bit(const uint64_t *addr, uint64_t size,
+                           uint64_t offset);
+uint64_t find_next_zero_bit(const uint64_t *addr, uint64_t size,
+                                uint64_t offset);
+int bitmap_full(const uint64_t *src, unsigned int nbits);
 
 
 #endif /* _ACCFG_BITMAP_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/util/filter.h 
new/idxd-config-accel-config-v3.1/util/filter.h
--- old/idxd-config-accel-config-v3.0.1/util/filter.h   2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/util/filter.h     2021-03-27 
03:17:56.000000000 +0100
@@ -62,7 +62,7 @@
        /* linked list node for each list_filter_arg */
        struct list_node list;
        /* flags to indicate command options */
-       unsigned long flags;
+       uint64_t flags;
        /* track device number during walk-through */
        int dev_num;
        /* track group_num during walk-through */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/util/json.c 
new/idxd-config-accel-config-v3.1/util/json.c
--- old/idxd-config-accel-config-v3.0.1/util/json.c     2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/util/json.c       2021-03-27 
03:17:56.000000000 +0100
@@ -27,7 +27,7 @@
 static int display_size(struct json_object *jobj, struct printbuf *pbuf,
                        int level, int flags)
 {
-       unsigned long long bytes = json_object_get_int64(jobj);
+       uint64_t bytes = json_object_get_int64(jobj);
        static char buf[128];
        int c;
 
@@ -43,7 +43,7 @@
         */
 
        if (bytes < 5000 * 1024)
-               snprintf(buf, sizeof(buf), "%lld", bytes);
+               snprintf(buf, sizeof(buf), "%" PRIu64, bytes);
        else {
                /* IEC */
                if (bytes < 2 * 1024LL * 1024LL * 1024LL) {
@@ -78,14 +78,14 @@
 static int display_hex(struct json_object *jobj, struct printbuf *pbuf,
                       int level, int flags)
 {
-       unsigned long long val = json_object_get_int64(jobj);
+       uint64_t val = json_object_get_int64(jobj);
        static char buf[32];
-       snprintf(buf, sizeof(buf), "\"%#llx\"", val);
+       snprintf(buf, sizeof(buf), "\"%#" PRIx64 "\"", val);
        return printbuf_memappend(pbuf, buf, strlen(buf));
 }
 
-struct json_object *util_json_object_size(unsigned long long size,
-                                         unsigned long flags)
+struct json_object *util_json_object_size(uint64_t size,
+                                         uint64_t flags)
 {
        struct json_object *jobj = json_object_new_int64(size);
 
@@ -94,8 +94,8 @@
        return jobj;
 }
 
-struct json_object *util_json_object_hex(unsigned long long val,
-                                        unsigned long flags)
+struct json_object *util_json_object_hex(uint64_t val,
+                                        uint64_t flags)
 {
        struct json_object *jobj = json_object_new_int64(val);
 
@@ -106,7 +106,7 @@
 
 /* API used to output json object display to console */
 void util_display_json_array(FILE * f_out, struct json_object *jarray,
-                            unsigned long flags)
+                            uint64_t flags)
 {
        int len = json_object_array_length(jarray);
        int jflag = JSON_C_TO_STRING_PRETTY;
@@ -125,7 +125,7 @@
 
 /* API used to output json object display to specified file */
 void __util_display_json_array(FILE * fd, struct json_object *jarray,
-                            unsigned long flags)
+                            uint64_t flags)
 {
        int len = json_object_array_length(jarray);
        int jflag = JSON_C_TO_STRING_PRETTY;
@@ -143,15 +143,15 @@
 }
 
 struct json_object *util_device_to_json(struct accfg_device *device,
-                                       unsigned long flags)
+                                       uint64_t flags)
 {
        struct json_object *jdevice = json_object_new_object();
        struct json_object *jobj;
        struct accfg_error *error;
        enum accfg_device_state dev_state;
        int int_val;
-       unsigned long ulong_val;
-       unsigned long long ullong_val;
+       uint64_t ulong_val;
+       uint64_t ullong_val;
        bool new_bool;
        struct accfg_device_mdev *mdev;
        struct json_object *json_uuid;
@@ -386,11 +386,11 @@
 }
 
 struct json_object *util_wq_to_json(struct accfg_wq *wq,
-                                   unsigned long flags)
+                                   uint64_t flags)
 {
        struct json_object *jaccfg = json_object_new_object();
        struct json_object *jobj = NULL;
-       unsigned long size = ULLONG_MAX;
+       uint64_t size = ULLONG_MAX;
        enum accfg_wq_mode wq_mode;
        enum accfg_wq_state wq_state;
        int int_val;
@@ -501,7 +501,7 @@
 }
 
 struct json_object *util_engine_to_json(struct accfg_engine *engine,
-                                       unsigned long flags)
+                                       uint64_t flags)
 {
        struct json_object *jaccfg = json_object_new_object();
        struct json_object *jobj = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/util/json.h 
new/idxd-config-accel-config-v3.1/util/json.h
--- old/idxd-config-accel-config-v3.0.1/util/json.h     2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/util/json.h       2021-03-27 
03:17:56.000000000 +0100
@@ -17,17 +17,17 @@
 
 struct json_object;
 void util_display_json_array(FILE *f_out, struct json_object *jarray,
-               unsigned long flags);
+               uint64_t flags);
 void __util_display_json_array(FILE *fd, struct json_object *jarray,
-                unsigned long flags);
+               uint64_t flags);
 struct json_object *util_device_to_json(struct accfg_device *device,
-               unsigned long flags);
+               uint64_t flags);
 struct json_object *util_wq_to_json(struct accfg_wq *accfg_wq,
-               unsigned long flags);
+               uint64_t flags);
 struct json_object *util_engine_to_json(struct accfg_engine *accfg_engine,
-                unsigned long flags);
-struct json_object *util_json_object_size(unsigned long long size,
-               unsigned long flags);
-struct json_object *util_json_object_hex(unsigned long long val,
-               unsigned long flags);
+               uint64_t flags);
+struct json_object *util_json_object_size(uint64_t size,
+               uint64_t flags);
+struct json_object *util_json_object_hex(uint64_t val,
+               uint64_t flags);
 #endif /* __ACCFG_JSON_H__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/util/main.c 
new/idxd-config-accel-config-v3.1/util/main.c
--- old/idxd-config-accel-config-v3.0.1/util/main.c     2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/util/main.c       2021-03-27 
03:17:56.000000000 +0100
@@ -81,44 +81,7 @@
        return handled;
 }
 
-static int run_builtin(struct cmd_struct *p, int argc, const char **argv,
-               void *ctx)
-{
-       int status;
-       struct stat st;
-
-       status = p->fn(argc, argv, ctx);
-
-       if (status)
-               return status & 0xff;
-
-       /* Somebody closed stdout? */
-       if (fstat(fileno(stdout), &st))
-               return 0;
-       /* Ignore write errors for pipes and sockets.. */
-       if (S_ISFIFO(st.st_mode) || S_ISSOCK(st.st_mode))
-               return 0;
-
-       status = 1;
-       /* Check for ENOSPC and EIO errors.. */
-       if (fflush(stdout)) {
-               fprintf(stderr, "write failure on standard output: %s", 
strerror(errno));
-               goto out;
-       }
-       if (ferror(stdout)) {
-               fprintf(stderr, "unknown write failure on standard output");
-               goto out;
-       }
-       if (fclose(stdout)) {
-               fprintf(stderr, "close failed on standard output: %s", 
strerror(errno));
-               goto out;
-       }
-       status = 0;
-out:
-       return status;
-}
-
-void main_handle_internal_command(int argc, const char **argv, void *ctx,
+int main_handle_internal_command(int argc, const char **argv, void *ctx,
                struct cmd_struct *cmds, int num_cmds)
 {
        const char *cmd = argv[0];
@@ -134,6 +97,10 @@
                struct cmd_struct *p = cmds+i;
                if (strcmp(p->cmd, cmd))
                        continue;
-               exit(run_builtin(p, argc, argv, ctx));
+               return p->fn(argc, argv, ctx);
        }
+
+       fprintf(stderr, "Unknown command: '%s'\n", argv[0]);
+
+       return -EINVAL;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/util/main.h 
new/idxd-config-accel-config-v3.1/util/main.h
--- old/idxd-config-accel-config-v3.0.1/util/main.h     2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/util/main.h       2021-03-27 
03:17:56.000000000 +0100
@@ -19,7 +19,7 @@
 struct cmd_struct;
 int main_handle_options(const char ***argv, int *argc, const char *usage_msg,
                struct cmd_struct *cmds, int num_cmds);
-void main_handle_internal_command(int argc, const char **argv, void *ctx,
+int main_handle_internal_command(int argc, const char **argv, void *ctx,
                struct cmd_struct *cmds, int num_cmds);
 int help_show_man_page(const char *cmd, const char *util_name,
                const char *viewer);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/util/size.c 
new/idxd-config-accel-config-v3.1/util/size.c
--- old/idxd-config-accel-config-v3.0.1/util/size.c     2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/util/size.c       2021-03-27 
03:17:56.000000000 +0100
@@ -5,9 +5,9 @@
 #include <limits.h>
 #include <util/size.h>
 
-unsigned long long __parse_size64(const char *str, unsigned long long *units)
+uint64_t __parse_size64(const char *str, uint64_t *units)
 {
-       unsigned long long val, check;
+       uint64_t val, check;
        char *end;
 
        val = strtoull(str, &end, 0);
@@ -54,7 +54,7 @@
        return val;
 }
 
-unsigned long long parse_size64(const char *str)
+uint64_t parse_size64(const char *str)
 {
        return __parse_size64(str, NULL);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/idxd-config-accel-config-v3.0.1/util/size.h 
new/idxd-config-accel-config-v3.1/util/size.h
--- old/idxd-config-accel-config-v3.0.1/util/size.h     2021-02-10 
07:20:45.000000000 +0100
+++ new/idxd-config-accel-config-v3.1/util/size.h       2021-03-27 
03:17:56.000000000 +0100
@@ -4,6 +4,8 @@
 #ifndef _ACCFG_SIZE_H_
 #define _ACCFG_SIZE_H_
 
+#include <stdint.h>
+
 #define SZ_1K     0x00000400
 #define SZ_4K     0x00001000
 #define SZ_1M     0x00100000
@@ -14,12 +16,12 @@
 #define SZ_1G     0x40000000
 #define SZ_1T 0x10000000000ULL
 
-unsigned long long parse_size64(const char *str);
-unsigned long long __parse_size64(const char *str, unsigned long long *units);
+uint64_t parse_size64(const char *str);
+uint64_t __parse_size64(const char *str, uint64_t *units);
 
-#define ALIGN(x, a) ((((unsigned long long) x) + (a - 1)) & ~(a - 1))
-#define ALIGN_DOWN(x, a) (((((unsigned long long) x) + a) & ~(a - 1)) - a)
-#define BITS_PER_LONG (sizeof(unsigned long) * 8)
+#define ALIGN(x, a) ((((uint64_t) x) + (a - 1)) & ~(a - 1))
+#define ALIGN_DOWN(x, a) (((((uint64_t) x) + a) & ~(a - 1)) - a)
+#define BITS_PER_LONG (sizeof(uint64_t) * 8)
 #define HPAGE_SIZE (2 << 20)
 
 #endif /* _ACCFG_SIZE_H_ */

Reply via email to