dep.sh 541 B

12345678910111213141516171819202122232425262728
  1. #!/bin/sh
  2. set -e
  3. f=/sys/kernel/debug/lkmc_dep
  4. f2=/sys/kernel/debug/lkmc_dep2
  5. insmod /dep.ko
  6. insmod /dep2.ko
  7. # Initial value.
  8. [ "$(cat "$f")" = 0 ]
  9. # Changhing dep2 also changes dep.
  10. printf 1 > "$f2"
  11. [ "$(cat "$f")" = 1 ]
  12. # Changhing dep also changes dep2.
  13. printf 2 > "$f"
  14. [ "$(cat "$f2")" = 2 ]
  15. # sysfs shows us that the module has dependants.
  16. [ "$(cat /sys/module/dep/refcnt)" = 1 ]
  17. [ "$(ls /sys/module/dep/holders)" = dep2 ]
  18. rmmod /dep2.ko
  19. [ "$(cat /sys/module/dep/refcnt)" = 0 ]
  20. [ -z "$(ls /sys/module/dep/holders)" ]
  21. rmmod /dep.ko