drm_lib.sh: Be more precise in detecting the i915 /sys path
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 3 Jul 2013 07:10:28 +0000 (08:10 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 3 Jul 2013 07:17:18 +0000 (08:17 +0100)
We need to be careful in case other devices grow an error file in the
future. The first step here is just to check the minor that corresponds
with the debugfs path found for the device

tests/drm_lib.sh

index 529cc6b..5ca815b 100755 (executable)
@@ -13,9 +13,9 @@ if [ -d /sys/kernel/debug/dri ] ; then
 fi
 
 i915_dfs_path=x
-for dir in `ls $debugfs_path` ; do
-       if [ -f $debugfs_path/$dir/i915_error_state ] ; then
-               i915_dfs_path=$debugfs_path/$dir
+for minor in `seq 0 16`; do
+       if [ -f $debugfs_path/$minor/i915_error_state ] ; then
+               i915_dfs_path=$debugfs_path/$minor
                break
        fi
 done
@@ -29,15 +29,11 @@ if [ `cat $i915_dfs_path/clients | wc -l` -gt "2" ] ; then
        die "ERROR: other drm clients running"
 fi
 
+i915_sfs_path=
 if [ -d /sys/class/drm ] ; then
     sysfs_path=/sys/class/drm
-fi
-
-i915_sfs_path=
-for dir in `ls $sysfs_path` ; do
-    if [ -f $sysfs_path/$dir/error ] ; then
-       i915_sfs_path=$sysfs_path/$dir
-       break
+    if [ -f $sysfs_path/card$minor/error ] ; then
+           i915_sfs_path="$sysfs_path/card$minor"
     fi
-done
+fi
 # sysfs may not exist as the 'error' is a new interface in 3.11