Re: [PATCH] When kmodpy is not available call kmod binary directly

Michal Suchánek <[email protected]>
Newsgroups org.infradead.lists.linux-nvme
Message-ID <[email protected]>
On Fri, Mar 21, 2025 at 11:59:10AM +0100, Michal Suchanek wrote:
> kmodpy is an unmaintained project. Python is not really good at
> backwards compatibility. With the upstream project not keeping up with
> python churn using the library is a maintenance burden.
> 
> nvmet does not use the python library in any substantial way, it only
> loads a module once. This can be easily accomplished without any library
> using the modprobe tool directly.

Forgot

Signed-off-by: Michal Suchanek <[email protected]>

> ---
>  nvmet/nvme.py | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/nvmet/nvme.py b/nvmet/nvme.py
> index 59efdb5b7c1b..397f103abcdb 100644
> --- a/nvmet/nvme.py
> +++ b/nvmet/nvme.py
> @@ -256,9 +256,20 @@ class Root(CFSNode):
>              # Try the ctypes library included with the libkmod itself.
>              try:
>                  import kmod
> -                kmod.Kmod().modprobe(modname)
> -            except Exception as e:
> -                pass
> +
> +                try:
> +                    kmod.Kmod().modprobe(modname)
> +                except Exception as e:
> +                    pass
> +            except ImportError:
> +                # Try the binary specified in /proc
> +                try:
> +                    kmod = None
> +                    with open('/proc/sys/kernel/modprobe', 'r') as f:
> +                        kmod = f.read().rstrip()
> +                    os.system(kmod + ' ' + modname)
> +                except Exception as e:
> +                    pass
>  
>      def _list_subsystems(self):
>          self._check_self()
> -- 
> 2.47.1
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.