Pull platform-drivers into test branch
[linux-2.6] / Documentation / fault-injection / failmodule.sh
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
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
31 echo $STACKTRACE_DEPTH > /debug/$1/stacktrace-depth