From: Ramesh Thomas Add a flag in accfg context to store commpatibility mode. Absence of /sys/bus/dsa/drivers/idxd indicates compatibility mode. Signed-off-by: Ramesh Thomas --- accfg/lib/libaccfg.c | 4 ++++ accfg/lib/private.h | 1 + 2 files changed, 5 insertions(+) diff --git a/accfg/lib/libaccfg.c b/accfg/lib/libaccfg.c index 450be4f..58ad97f 100644 --- a/accfg/lib/libaccfg.c +++ b/accfg/lib/libaccfg.c @@ -28,6 +28,7 @@ #include "private.h" #define MDEV_POSTFIX "mdev_supported_types" +#define IDXD_DRIVER_BIND_PATH "/sys/bus/dsa/drivers/idxd" const char *accfg_wq_mode_str[] = { [ACCFG_WQ_SHARED] = "shared", @@ -310,6 +311,9 @@ ACCFG_EXPORT int accfg_new(struct accfg_ctx **ctx) c->refcount = 1; log_init(&c->ctx, "libaccfg", "ACCFG_LOG"); c->timeout = 5000; + if (access(IDXD_DRIVER_BIND_PATH, R_OK)) + c->compat = true; + list_head_init(&c->devices); info(c, "ctx %p created\n", c); diff --git a/accfg/lib/private.h b/accfg/lib/private.h index 0fdc5d5..f407643 100644 --- a/accfg/lib/private.h +++ b/accfg/lib/private.h @@ -146,6 +146,7 @@ struct accfg_ctx { struct list_head devices; uint64_t timeout; void *private_data; + bool compat; }; static inline int check_udev(struct udev *udev) -- 2.26.2