It is always called with "__versions" as argument, so remove the
argument and rename function accordingly.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/175 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Keep changed ELF data only around as long as necessary. Otherwise it
can happen that subsequent module operations lead to unintuitive
results.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/175 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Wed, 9 Oct 2024 15:26:25 +0000 (16:26 +0100)]
testsuite: fix gcc/libasan.so load order
Currently we silence the ordering warning from libasan, via the
environment: ASAN_OPTIONS=verify_asan_link_order=0...
Instead we should be LD_PRELOAD-ing the library, since otherwise we
might end with miss-matched symbols - one coming from libasan, with the
counter part from the system library.
Plus LD_PRELOAD is the only way to make the clang sanitizers work...
That I have found. Although that's coming with a later patch.
Emil Velikov [Tue, 15 Oct 2024 12:52:07 +0000 (13:52 +0100)]
ci: disable sanitizers for ubuntu 22.04
It seems that the meson shipped with Ubuntu 22.04 is too old (buggy?) to
set the ASAN_OPTIONS and similar variables. Which means that we don't
have an easy way to detect if the sanitizers are enabled in the upcoming
test wrapper script.
The alternative is to grab newer meson, either via pip or otherwise.
Although considering we have decent coverage via the other distributions
it doesn't seem worth the hassle.
Emil Velikov [Wed, 9 Oct 2024 16:28:32 +0000 (17:28 +0100)]
ci: re-run the test verbosely when on failure
This will provide us the test log, without having to fiddle with upload
actions. Which is particularly funky since:
- v4 requires distinct names
- symbols like : (as in our container name) are not supported
Emil Velikov [Wed, 9 Oct 2024 15:26:25 +0000 (16:26 +0100)]
meson: remove no longer used HAVE_DECL___GLIBC__
Earlier commit removed the final user, drop the autotools define yet
forgot the meson one.
Fixes: 0766f541 ("build: check for __xstat declarations") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/179 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Add missing newline for better formatting and to stay in sync with other
options.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/182 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Fri, 11 Oct 2024 15:21:42 +0000 (16:21 +0100)]
man/insmod: minor cosmetic changes
Namely: drop the ellipsis from the man page, to align with --help.
Properly bold modprobe, without the leading space... A reminder from the
xml days.
Reference: https://lore.kernel.org/linux-modules/ZvknyLKvQeBo16n9@meinfjell.helgefjelltest.de Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/177 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Fri, 11 Oct 2024 15:19:24 +0000 (16:19 +0100)]
man: remove erroneous " in BUGS section
A silly copy/paste mistake by yours truly (-:
Fixes: ecedc689 ("man: add BUGS section with basic information") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/177 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Wed, 9 Oct 2024 15:26:25 +0000 (16:26 +0100)]
tools/depmod: avoid casting symbol_free() function type
With clang 17, -fsanitize=function is enabled alongside any other
sanitizers. Which flags undefined behaviour, since the function type
(argument type really) is not compatible.
Emil Velikov [Wed, 9 Oct 2024 15:26:25 +0000 (16:26 +0100)]
libkmod: used unsigned type for INDEX_CHILDMAX and co
Currently the define is an signed int of 128, which we store in a char
triggering a clang warning. This is expected since the sign of char is
platform specific.
Convert the macro to unsigned and the respective variables to unsigned
char, alongside the documentation comment.
With that done, adjust the first/last checks so we don't get
tautological-compare warnings from clang.
Emil Velikov [Wed, 9 Oct 2024 15:26:25 +0000 (16:26 +0100)]
tools/insmod: use single control variable
Currently we're returning success, if any of the pre libkmod checks
fail. That's because err is our local variable, while r is the (exit)
resutlt. In practise we don't need the distinction, so just drop the
former.
Reported by clang.
Fixes: ca8f04e8 ("tools/insmod: add syslog and verbose options") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/180
[ add blank lines, remove extra braces ] Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Thu, 3 Oct 2024 16:22:43 +0000 (17:22 +0100)]
meson: set ENABLE_{LOGGING,DEBUG} only as needed
With the introduction of the meson build, both ENABLE_LOGGING and
ENABLE_DEBUG have always been set - 1 or 0. Whereas the code relies on
them being set or unset.
Adjust the build accordingly.
Fixes: 370141c1 ("meson: introduce meson, covering libkmod.so") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/173 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Mon, 30 Sep 2024 20:35:18 +0000 (21:35 +0100)]
shared: introduce umul{32,64}_overflow() helpers
We'll use them to implement the size_t variant.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/169
[ Fixup commit message for renamed functions ] Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Thu, 3 Oct 2024 16:02:45 +0000 (17:02 +0100)]
ci: directly use archlinux:multilib-devel container
There was some recent snafu which meant the container wasn't available.
With that resolved, we can drop our hack and use the correct container
directly.
Emil Velikov [Thu, 3 Oct 2024 16:02:45 +0000 (17:02 +0100)]
libkmod: silence autological compare warning
Clang will detect that the enum cannot be zero, thus triggering a
warning. Since this is an external (public API) function, the end-user
can provide any input so we want to keep the check.
Note: include the pragmas in a if defined(__clang__) guard, otherwise
we'll trigger -Wunknown_pragma which will become an error in CI and
developer builds.
Emil Velikov [Thu, 3 Oct 2024 16:02:45 +0000 (17:02 +0100)]
tools/lsmod: initialize use_syslog
Initialize the variable, otherwise we'll get (random) stack value if the
user hasn't provided --syslog. Reported by scan-build.
Fixes: 6313d40d ("tools/lsmod: add basic opts like rmmod") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/172 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Thu, 3 Oct 2024 16:02:45 +0000 (17:02 +0100)]
tools/rmmod: initialize use_syslog
Initialize the variable, otherwise we'll get (random) stack value if the
user hasn't provided --syslog. Reported by scan-build.
Fixes: 24fe68dc ("tools/rmmod: make opt variables non-global") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/172 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Thu, 3 Oct 2024 16:02:45 +0000 (17:02 +0100)]
tools/insmod: initialize use_syslog
Initialize the variable, otherwise we'll get (random) stack value if the
user hasn't provided --syslog. Reported by scan-build.
Fixes: ca8f04e8 ("tools/insmod: add syslog and verbose options") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/172 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Thu, 3 Oct 2024 16:02:45 +0000 (17:02 +0100)]
shared: add missing stddef.h include
Required for size_t, reported by clang-tidy.
Fixes: 38943b20 ("shared: use size_t for strbuf") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/172 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Thu, 3 Oct 2024 15:46:00 +0000 (16:46 +0100)]
man: list short/long opt on same line
With earlier commit, I attempted to keep them on separate lines for
somewhat dubious reasons. In practise that didn't work and they stayed
on the same line, while also dropping the separating comma.
Looking back, it would be better to fix the vim manpager mode issues
rather than mask it. Mea culpa
Reference: https://lore.kernel.org/linux-modules/ZvknyLKvQeBo16n9@meinfjell.helgefjelltest.de Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/164 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
If value of "first" is negative, then a broken index can trigger a stack
based buffer overflow, because child_count could become larger than
INDEX_CHILDMAX.
Before kmod_module_new_from_path creates a module with kmod_module_new,
it checks with kmod_pool_get_module if a module with given name already
exists.
This check can be removed, because kmod_module_new does the same. If the
module already existed, the same checks are performed as in current code
for the "if (m != NULL)" case. If it did not exist yet, m->path is NULL
and the first if-block is entered.
And since kmod_module_new takes care of incrementing the reference
counter, the explicit call of kmod_module_ref can be removed from
kmod_module_new_from_path as well.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/168 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
It is meant as a backing buffer for scratch buffer. Do not use it
directly when constructing strings.
Co-authored-by: Lucas De Marchi <lucas.de.marchi@gmail.com> Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Link: https://github.com/kmod-project/kmod/pull/166 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Accessing the backing "alias" char buffer directly works only as long as
all symbols are smaller than 1024, because otherwise the scratch buffer
allocates memory and the addresses do not match anymore.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/152 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
The strbuf functions may fail, so handle errors. Make especially sure
that push and pop operations stay in sync.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/152 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
The unsigned int data type might be too small on 64 bit systems and
when encountering huge and illegal index files.
Since lengths are retrieved from strbuf structs, this also keeps
the data type lengths in sync.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/152 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
The code does not support 65535 or more modules. Since this value is
probably never reached, add a proper check after array building and
do not rely solely on an assert later in code path.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/158 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
depmod: Support modules.order with duplicate lines
If the same line exists multiple times in modules.order, consider only
the first, since this is the earliest position requested.
This also makes sure that index iterator never turns positive or would
ever trigger a signed integer overflow.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/158 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
The current code iterates through modules.order twice. First, it
figures out how many lines exist. Then it iterates again to make
sure that the first line has the lowest sort index, then ascending.
Negative values make sure that the previously assigned positive
values will be larger, i.e. modules in modules.order take precedence,
then modules found in file system which were not listed in
modules.order.
This can be simplified by setting the initial sort index value to
the lowest possible value needed, i.e. -depmod->modules.count.
With this value, it is possible to iterate only once.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/158 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/158 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
No need to clear newly allocated memory if source is copied into
destination directly.
Simplify code by using memdup from shared.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/158 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/158 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Sat, 28 Sep 2024 13:12:26 +0000 (14:12 +0100)]
ci: enable sanitizers in the meson build
... to prevent a range of issues creeping in.
Currently ASAN reports an ordering issue that we need to explicitly
disable. Thus the sanitizers are only enabled in CI and not for all
developer builds (aka build-dev.ini).
Seemingly musl lacks the sanitizers, so we don't enable it on Alpine.
testsuite: Fix test-weakdep with autoconf defaults
If ./configure is run without any further options, then /usr/etc
is used as SYSCONFDIR, which breaks test-weakdep, because the
/etc path is hardcoded in it.
Use SYSCONFDIR to reflect the actual rootfs setup.
If a file name does not end with ".ko", there is no need to call fstat.
Since common use cases are like "modinfo modname", the string check
should come first to save a tiny amount of system time.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/154 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/156 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Fix memory leak on error path introduced with read_u32 error checks.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/153 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
On 32 bit systems it is possible to trigger an out of boundary write
with excessively huge ELF files.
The calculation of required memory for char pointer vector and strings
might overflow, leading to an allocation which is too small. Subsequent
memcpy leads to an out of boundary write.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/149 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/148 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/148 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Sun, 8 Sep 2024 10:38:13 +0000 (11:38 +0100)]
ci: add clang-format action
To keep the style consistent.
Closes: https://github.com/kmod-project/kmod/issues/88 Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/118 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
ASAN incorrectly reports this as unaligned access if compiler
optimizes code. Since ASAN support is valued higher than this
kind of optimization, just copy these few bytes into a stack
variable and avoid false positives in tests.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/147 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
If an excessively large root directory is supplied, subsequent
operations might process unexpected parts in file system.
Inform user that supplied directory paths are too long and stop
program execution.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/72 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Remove arbitrary limits due to file sizes (INTPR_MAX check). Reduce
amount of system calls by up to 90 % utilizing stream functions.
Also make sure that no TOCTOU could ever happen by not iterating
through the file twice: First to figure out amount of strings, then
parsing them. If the file changes in between, this can lead to
memory corruption.
Even though more memory allocations might occur due to strbuf usage,
performance generally increased by heavy reduction of system calls.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/136 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
The modinfo command can show information about builtin modules. Make
sure that it functions correctly.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/136 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Thu, 19 Sep 2024 14:50:21 +0000 (15:50 +0100)]
testsuite: sort modnames only, if available
In some tests we expect zero modules to be loaded. In those cases, skip
the sorting - qsort is annotated as non-null(1,2) so we shouldn't
provide null as expected/loaded modules.
Emil Velikov [Sun, 22 Sep 2024 11:52:42 +0000 (12:52 +0100)]
ci: add SPDX copyright/license identifiers
To make it clear and explicit on the topic. Inspired by me reusing some
of those for usbutils and reuse-tool [1] flagging the lack of proper
attribution.
Emil Velikov [Wed, 18 Sep 2024 16:32:31 +0000 (17:32 +0100)]
libkmod: remove __secure_getenv handling
The build-time checking for __secure_getenv was dropped earlier, yet I
forgot to remove the actual users :facepalm:
Fixes: 9dc54a3 ("build: stop checking for __secure_getenv") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/139 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Wed, 18 Sep 2024 15:49:08 +0000 (16:49 +0100)]
tools/insmod: add --force longopt and document it
As of the initial import to git, the option was silently ignored.
Shortly afterwards, functionality was reinstated lacking a longopt and
any documentation.
As per insmod(8) for most use-cases you'd want to use modprobe(8).
Although since the option is available and we have an equivalent in
rmmod(8) having it documented and consistent triumphs.
Emil Velikov [Wed, 18 Sep 2024 15:49:08 +0000 (16:49 +0100)]
tools/insmod: remove unused -p -s shortopts
These have been around since the import to git, doing nothing. There are
no users that I can see, the manual page does not list them and the
shell completions (fish and bash lack any for insmod, zsh has one) don't
suggest it either.
Emil Velikov [Wed, 18 Sep 2024 15:49:08 +0000 (16:49 +0100)]
tools/rmmod: tweak --force help message
Drop the kernel configuration details - the CONFIG toggle name is more
useful (since you can see it in /proc/config.*) and generally the part
is better suited for the manual page.
Move DANGEROUS at the front, so it's obvious from the start
Emil Velikov [Wed, 18 Sep 2024 15:49:08 +0000 (16:49 +0100)]
tools/rmmod: remove unused -w shortopt
The (long)option and handling was removed some 10 years ago, yet the
shortopt remained... oops
Fixes: a4bd144 ("Remove "rmmod -w" documentation and getopt entry") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/138 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Wed, 18 Sep 2024 15:49:08 +0000 (16:49 +0100)]
tools: add kmod_version() helper
Add a trivial helper that prints the version + features combo. I will be
adding another instance of those, so I'm aiming to keep the boilerplate
code to a minimum.
Apply same logic as in delete_module.c, i.e. pass a reference to a
pointer instead of the pointer value, otherwise we cannot update
the linked list and added entries are lost.
Spotted with ASAN while running testsuite.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/141 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
If an index file with INDEX_NODE_CHILDS flag contains illegal first
and last markers for children, it is possible to trigger an out of
boundary write.
Make sure that first value is not larger than last value while reading
index files.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/126 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Emil Velikov [Tue, 17 Sep 2024 09:49:38 +0000 (10:49 +0100)]
shared: remove no longer used NOFAIL() macro
Closes: https://github.com/kmod-project/kmod/issues/60 Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Link: https://github.com/kmod-project/kmod/pull/135 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>