Akinobu Mita | de1ba09 | 2006-12-08 02:39:42 -0800 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # |
| 3 | # Usage: failmodule <failname> <modulename> [stacktrace-depth] |
| 4 | # |
| 5 | # <failname>: "failslab", "fail_alloc_page", or "fail_make_request" |
| 6 | # |
| 7 | # <modulename>: module name that you want to inject faults. |
| 8 | # |
| 9 | # [stacktrace-depth]: the maximum number of stacktrace walking allowed |
| 10 | # |
| 11 | |
| 12 | STACKTRACE_DEPTH=5 |
| 13 | if [ $# -gt 2 ]; then |
| 14 | STACKTRACE_DEPTH=$3 |
| 15 | fi |
| 16 | |
| 17 | if [ ! -d /debug/$1 ]; then |
| 18 | echo "Fault-injection $1 does not exist" >&2 |
| 19 | exit 1 |
| 20 | fi |
| 21 | if [ ! -d /sys/module/$2 ]; then |
| 22 | echo "Module $2 does not exist" >&2 |
| 23 | exit 1 |
| 24 | fi |
| 25 | |
| 26 | # Disable any fault injection |
| 27 | echo 0 > /debug/$1/stacktrace-depth |
| 28 | |
Don Mullis | 5d0ffa2 | 2006-12-08 02:39:50 -0800 | [diff] [blame] | 29 | echo `cat /sys/module/$2/sections/.text` > /debug/$1/require-start |
| 30 | echo `cat /sys/module/$2/sections/.exit.text` > /debug/$1/require-end |
Akinobu Mita | de1ba09 | 2006-12-08 02:39:42 -0800 | [diff] [blame] | 31 | echo $STACKTRACE_DEPTH > /debug/$1/stacktrace-depth |