2018-03-09 09:51:45 +01:00
|
|
|
From 5ed5ab09ff7d4fb581aec3a35f2eff24eaa838f9 Mon Sep 17 00:00:00 2001
|
2014-03-05 16:59:07 +01:00
|
|
|
From: Michal Marek <mmarek@suse.cz>
|
|
|
|
Date: Wed, 5 Mar 2014 15:02:44 +0100
|
2018-03-09 09:51:45 +01:00
|
|
|
Subject: [PATCH] modprobe: Implement --allow-unsupported-modules
|
2014-03-05 16:59:07 +01:00
|
|
|
|
|
|
|
References: fate#316971
|
|
|
|
Patch-mainline: never
|
|
|
|
---
|
2019-02-08 02:25:26 +01:00
|
|
|
Makefile.am | 4 +++-
|
|
|
|
libkmod/libkmod-unsupported.c | 9 +++++++++
|
|
|
|
libkmod/libkmod-unsupported.h | 8 ++++++++
|
|
|
|
tools/modprobe.c | 8 +++++++-
|
2015-04-21 18:20:20 +02:00
|
|
|
4 files changed, 27 insertions(+), 2 deletions(-)
|
2014-03-05 16:59:07 +01:00
|
|
|
create mode 100644 libkmod/libkmod-unsupported.c
|
|
|
|
create mode 100644 libkmod/libkmod-unsupported.h
|
|
|
|
|
2019-02-08 02:25:26 +01:00
|
|
|
Index: kmod-26/Makefile.am
|
|
|
|
===================================================================
|
|
|
|
--- kmod-26.orig/Makefile.am
|
|
|
|
+++ kmod-26/Makefile.am
|
|
|
|
@@ -92,7 +92,9 @@ libkmod_libkmod_la_LIBADD = \
|
|
|
|
${liblzma_LIBS} ${zlib_LIBS} ${openssl_LIBS}
|
2014-03-05 16:59:07 +01:00
|
|
|
|
|
|
|
noinst_LTLIBRARIES += libkmod/libkmod-internal.la
|
|
|
|
-libkmod_libkmod_internal_la_SOURCES = $(libkmod_libkmod_la_SOURCES)
|
|
|
|
+libkmod_libkmod_internal_la_SOURCES = $(libkmod_libkmod_la_SOURCES) \
|
|
|
|
+ libkmod/libkmod-unsupported.c \
|
|
|
|
+ libkmod/libkmod-unsupported.h
|
|
|
|
libkmod_libkmod_internal_la_LDFLAGS = $(AM_LDFLAGS) \
|
|
|
|
-Wl,--version-script=$(top_srcdir)/libkmod/libkmod.sym
|
|
|
|
libkmod_libkmod_internal_la_DEPENDENCIES = $(libkmod_libkmod_la_DEPENDENCIES)
|
2019-02-08 02:25:26 +01:00
|
|
|
Index: kmod-26/libkmod/libkmod-unsupported.c
|
|
|
|
===================================================================
|
2014-03-05 16:59:07 +01:00
|
|
|
--- /dev/null
|
2019-02-08 02:25:26 +01:00
|
|
|
+++ kmod-26/libkmod/libkmod-unsupported.c
|
2014-03-05 16:59:07 +01:00
|
|
|
@@ -0,0 +1,9 @@
|
|
|
|
+#include "libkmod-internal.h"
|
|
|
|
+#include "libkmod-unsupported.h"
|
|
|
|
+
|
|
|
|
+void kmod_internal_allow_unsupported(struct kmod_ctx *ctx)
|
|
|
|
+{
|
|
|
|
+ struct kmod_config *config = (struct kmod_config *)kmod_get_config(ctx);
|
|
|
|
+
|
|
|
|
+ config->block_unsupported = 0;
|
|
|
|
+}
|
2019-02-08 02:25:26 +01:00
|
|
|
Index: kmod-26/libkmod/libkmod-unsupported.h
|
|
|
|
===================================================================
|
2014-03-05 16:59:07 +01:00
|
|
|
--- /dev/null
|
2019-02-08 02:25:26 +01:00
|
|
|
+++ kmod-26/libkmod/libkmod-unsupported.h
|
2014-03-05 16:59:07 +01:00
|
|
|
@@ -0,0 +1,8 @@
|
|
|
|
+#pragma once
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * This function implements the --allow-unsupported-modules modprobe
|
|
|
|
+ * option. It is not part of the kmod API and not exported by the shared
|
|
|
|
+ * library
|
|
|
|
+ */
|
|
|
|
+void kmod_internal_allow_unsupported(struct kmod_ctx *ctx);
|
2019-02-08 02:25:26 +01:00
|
|
|
Index: kmod-26/tools/modprobe.c
|
|
|
|
===================================================================
|
|
|
|
--- kmod-26.orig/tools/modprobe.c
|
|
|
|
+++ kmod-26/tools/modprobe.c
|
2014-11-16 21:44:45 +01:00
|
|
|
@@ -38,6 +38,8 @@
|
2014-03-05 16:59:07 +01:00
|
|
|
|
|
|
|
#include "kmod.h"
|
2014-11-16 21:44:45 +01:00
|
|
|
|
2015-04-21 18:20:20 +02:00
|
|
|
+#include "libkmod/libkmod-unsupported.h"
|
2014-11-16 21:44:45 +01:00
|
|
|
+
|
|
|
|
static int log_priority = LOG_CRIT;
|
|
|
|
static int use_syslog = 0;
|
|
|
|
#define LOG(...) log_printf(log_priority, __VA_ARGS__)
|
2019-02-08 02:25:26 +01:00
|
|
|
@@ -755,6 +757,7 @@ static int do_modprobe(int argc, char **
|
|
|
|
const char *dirname = NULL;
|
|
|
|
const char *root = NULL;
|
|
|
|
const char *kversion = NULL;
|
|
|
|
+ int allow_unsupported = 0;
|
|
|
|
int use_all = 0;
|
2014-03-05 16:59:07 +01:00
|
|
|
int do_remove = 0;
|
|
|
|
int do_show_config = 0;
|
2019-02-08 02:25:26 +01:00
|
|
|
@@ -846,7 +849,7 @@ static int do_modprobe(int argc, char **
|
2014-03-05 16:59:07 +01:00
|
|
|
kversion = optarg;
|
|
|
|
break;
|
|
|
|
case 128:
|
|
|
|
- /* --allow-unsupported-modules does nothing for now */
|
|
|
|
+ allow_unsupported = 1;
|
|
|
|
break;
|
|
|
|
case 's':
|
|
|
|
env_modprobe_options_append("-s");
|
2019-02-08 02:25:26 +01:00
|
|
|
@@ -919,6 +922,9 @@ static int do_modprobe(int argc, char **
|
2014-03-05 16:59:07 +01:00
|
|
|
|
|
|
|
log_setup_kmod_log(ctx, verbose);
|
|
|
|
|
|
|
|
+ if (allow_unsupported)
|
|
|
|
+ kmod_internal_allow_unsupported(ctx);
|
|
|
|
+
|
|
|
|
kmod_load_resources(ctx);
|
|
|
|
|
|
|
|
if (do_show_config)
|