arc-patches/iosched-trampoline.sh
AuxXxilium 7a95ae32a6 iosched: fix for SA6400
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2024-01-22 19:32:51 +01:00

20 lines
916 B
Bash
Executable File

#!/usr/bin/sh
# This script is saved to /sbin/modprobe which is a so called UMH (user-mode-helper) for kmod (kernel/kmod.c)
# The kmod subsystem in the kernel is used to load modules from kernel. We exploit it a bit to load RP as soon as
# possible (which turns out to be via init/main.c => load_default_modules => load_default_elevator_module
# When the kernel is booted with "elevator=elevator" it will attempt to load a module "elevator-iosched"... and the rest
# should be obvious from the code below. DO NOT print anything here (kernel doesn't attach STDOUT)
for arg in "$@"; do
if [ "${arg}" = "elevator-iosched" ] || [ "${arg}" = "elevator=elevator" ]; then
insmod /usr/lib/modules/rp.ko
rm /usr/lib/modules/rp.ko
rm /usr/sbin/modprobe
ln -sf /usr/bin/kmod /usr/sbin/modprobe
exit 0
else
rm /usr/sbin/modprobe
ln -sf /usr/bin/kmod /usr/sbin/modprobe
exit 0
fi
done
exit 1