From 4362312431b599bbfd8e384573fdb9d6099cd836 Mon Sep 17 00:00:00 2001 From: Pavan Nikhilesh Date: Sat, 2 Nov 2019 19:53:15 +0530 Subject: [PATCH] usertools: fix device binding module detection Some kernel modules use '-' in their name when registering through `pci_register_driver` and the same name is populated in '/sys/bus/pci/drivers/'. But the kernel always populates modules names replacing '-' with '_' in '/sys/module/'. Example: # ./usertools/dpdk-devbind.py -b octeontx2-nicpf 0002:03:00.0 Error: Driver 'octeontx2-nicpf' is not loaded. # ls /sys/bus/pci/drivers/octeontx2-nicpf bind module new_id remove_id uevent unbind # ls /sys/module/octeontx2_nicpf/ drivers uevent version The patch addresses it by always replacing '-' with '_' when looking in '/sys/module/' Signed-off-by: Phanendra Vukkisala Signed-off-by: Pavan Nikhilesh --- usertools/dpdk-devbind.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/usertools/dpdk-devbind.py b/usertools/dpdk-devbind.py index 7b5cbc12c4..b1d1498768 100755 --- a/usertools/dpdk-devbind.py +++ b/usertools/dpdk-devbind.py @@ -153,6 +153,9 @@ def check_output(args, stderr=None): def module_is_loaded(module): global loaded_modules + if module == 'vfio_pci': + module = 'vfio-pci' + if loaded_modules: return module in loaded_modules @@ -520,7 +523,7 @@ def bind_all(dev_list, driver, force=False): pass # check if we're attempting to bind to a driver that isn't loaded - if not module_is_loaded(driver): + if not module_is_loaded(driver.replace('-','_')): sys.exit("Error: Driver '%s' is not loaded." % driver) try: -- 2.20.1