usertools: fix device binding module detection
authorPavan Nikhilesh <pbhagavatula@marvell.com>
Sat, 2 Nov 2019 14:23:15 +0000 (19:53 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 26 Nov 2019 23:00:24 +0000 (00:00 +0100)
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 <pvukkisala@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
usertools/dpdk-devbind.py

index 7b5cbc1..b1d1498 100755 (executable)
@@ -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: