// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later /* * Load kernel modules needed for opal-prd * * Copyright 2015 IBM Corp. */ #include #include #include #include #include #include "module.h" #include "opal-prd.h" int insert_module(const char *module) { int status; pid_t pid; pid = fork(); if (!pid) { execlp("modprobe", "modprobe", module, NULL); err(EXIT_FAILURE, "Failed to run modprobe"); } pid = waitpid(pid, &status, 0); if (pid < 0) { pr_log(LOG_ERR, "KMOD: waitpid failed for " "modprobe process: %m"); return -1; } if (!WIFEXITED(status)) { pr_log(LOG_WARNING, "KMOD: modprobe %s: process didn't " "exit cleanly", module); return -1; } if (WEXITSTATUS(status) != 0) { pr_log(LOG_WARNING, "KMOD: modprobe %s failed, status %d", module, WEXITSTATUS(status)); return -1; } return 0; }