diff --git a/arch/x86_64/tools/mcoverlay-create-smp-x86.sh.in b/arch/x86_64/tools/mcoverlay-create-smp-x86.sh.in index b337349c..5abee9d2 100644 --- a/arch/x86_64/tools/mcoverlay-create-smp-x86.sh.in +++ b/arch/x86_64/tools/mcoverlay-create-smp-x86.sh.in @@ -43,7 +43,8 @@ error_exit() { ;; esac - exit 1 + # Retun -EINVAL + exit -22 } fi @@ -144,3 +145,5 @@ for cpuid in `find /sys/bus/cpu/devices/* -maxdepth 0 -name "cpu[0123456789]*" - rm -rf /tmp/mcos/mcos0_sys/bus/cpu/devices/$cpuid fi done + +exit 0 diff --git a/arch/x86_64/tools/mcoverlay-destroy-smp-x86.sh.in b/arch/x86_64/tools/mcoverlay-destroy-smp-x86.sh.in index 6d42a37e..e87fc40c 100644 --- a/arch/x86_64/tools/mcoverlay-destroy-smp-x86.sh.in +++ b/arch/x86_64/tools/mcoverlay-destroy-smp-x86.sh.in @@ -8,6 +8,9 @@ if grep mcoverlay /proc/modules &>/dev/null; then if [ -e /tmp/mcos ]; then rm -rf /tmp/mcos; fi if ! rmmod mcoverlay 2>/dev/null; then echo "error: removing mcoverlay" >&2 - exit 1 + # Return -EINVAL + exit -22 fi fi + +exit 0 diff --git a/arch/x86_64/tools/mcreboot-smp-x86.sh.in b/arch/x86_64/tools/mcreboot-smp-x86.sh.in index a0d9fd11..318c9999 100644 --- a/arch/x86_64/tools/mcreboot-smp-x86.sh.in +++ b/arch/x86_64/tools/mcreboot-smp-x86.sh.in @@ -12,6 +12,7 @@ # the same set of resources as it used previously. # Note that the script does not output anything unless an error occurs. +ret=1 prefix="@prefix@" BINDIR="${prefix}/bin" SBINDIR="${prefix}/sbin" @@ -204,7 +205,8 @@ error_exit() { ;; esac - exit 1 + # Propagate exit status if any + exit $ret } ihk_ikc_irq_core=0 @@ -255,7 +257,11 @@ fi # Remove mcoverlay if loaded if [ "$enable_mcoverlay" == "yes" ]; then - . ${SBINDIR}/mcoverlay-destroy.sh + ${SBINDIR}/mcoverlay-destroy.sh + ret=$? + if [ $ret -ne 0 ]; then + error_exit "initial" + fi fi # Stop irqbalance @@ -458,7 +464,11 @@ fi # Overlay /proc, /sys with McKernel specific contents if [ "$enable_mcoverlay" == "yes" ]; then - . ${SBINDIR}/mcoverlay-create.sh + ${SBINDIR}/mcoverlay-create.sh + ret=$? + if [ $ret -ne 0 ]; then + error_exit "os_created" + fi fi # Start irqbalance with CPUs and IRQ for McKernel banned diff --git a/arch/x86_64/tools/mcstop+release-smp-x86.sh.in b/arch/x86_64/tools/mcstop+release-smp-x86.sh.in index 0386687f..c1be836b 100644 --- a/arch/x86_64/tools/mcstop+release-smp-x86.sh.in +++ b/arch/x86_64/tools/mcstop+release-smp-x86.sh.in @@ -100,7 +100,13 @@ if grep mcctrl /proc/modules &>/dev/null; then fi # Remove mcoverlay if loaded -. ${SBINDIR}/mcoverlay-destroy.sh +${SBINDIR}/mcoverlay-destroy.sh +ret=$? +if [ $ret -ne 0 ]; then + echo "error: mcoverlay-destroy.sh" >&2 + exit $ret +fi + # Remove SMP module if grep ihk_smp_@ARCH@ /proc/modules &>/dev/null; then