dahdi_handle_device, dahdi_span_config: Check for auto_assign_spans only when ACTION...
authorShaun Ruffell <sruffell@digium.com>
Sat, 21 Dec 2013 06:17:01 +0000 (00:17 -0600)
committerShaun Ruffell <sruffell@digium.com>
Wed, 8 Jan 2014 23:56:52 +0000 (17:56 -0600)
When dahdi.ko is unloaded, it may be possible for the driver to be removed from
the kernel before the udev scripts are run.  When this happens, you'll see
messages like the following which are not accurate:

    'dahdi_handle_device'[24567]: Old driver (no auto_assign_spans parameter). Skip /devices/pci0000:00/0000:00:1e.0/0000:11:01.0/pci:0000:11:01.0

Now instead you will see:

    'dahdi_handle_device'[28008]: remove: /devices/pci0000:00/0000:00:1e.0/0000:11:01.0/pci:0000:11:01.0

Also, all the udev events will be logged in the system log even when they are
ignored because of legacy auto span assignment. This will help show what is
going on during the transition period to full udev configuration of spans.

Signed-off-by: Shaun Ruffell <sruffell@digium.com>
Acked-by: Oron Peled <oron.peled@xorcom.com>

dahdi_handle_device
dahdi_span_config

index 6f60f5b..d475511 100755 (executable)
@@ -35,16 +35,6 @@ if [ "$DAHDI_UDEV_DISABLE_DEVICES" = 'yes' ]; then
        exit 0
 fi
 
-# Check if we can safely do our job
-if [ ! -f /sys/module/dahdi/parameters/auto_assign_spans ]; then
-       echo "Old driver (no auto_assign_spans parameter). Skip $DEVPATH" | $LOGGER
-       exit 0
-fi
-if [ `cat /sys/module/dahdi/parameters/auto_assign_spans` -eq 1 ]; then
-       echo "auto_assign_spans=1. Skip $DEVPATH" | $LOGGER
-       exit 0
-fi
-
 # Can we pass a different value so we can use
 # alternate (testing) configuration?
 # Meanwhile, make it hard-coded.
@@ -54,6 +44,19 @@ export DAHDICONFDIR
 case "$ACTION" in
 add)
        echo "$ACTION: $DEVPATH" | $LOGGER
+
+       # Check if we can safely do our job
+       if [ ! -f /sys/module/dahdi/parameters/auto_assign_spans ]; then
+               if [ -f /sys/module/dahdi ]; then
+                       $LOGGER "Old driver (no auto_assign_spans parameter). Skip $DEVPATH"
+                       exit 0
+               fi
+       fi
+       if [ `cat /sys/module/dahdi/parameters/auto_assign_spans` -eq 1 ]; then
+               echo "auto_assign_spans=1. Skip $DEVPATH" | $LOGGER
+               exit 0
+       fi
+
        # Can have alternate dahdi configuration directory for debugging
        # export DAHDICONFDIR="/tmp/xortel/dahdi"
 
index 614c6a6..bde20fb 100755 (executable)
@@ -25,17 +25,6 @@ set -e
 
 #echo >&2 "$0($ACTION): DEBUG($# args): '$*'"
 
-# Old driver. These scripts probably won't work anyway.
-if [ ! -f /sys/module/dahdi/parameters/auto_assign_spans ]; then
-       $LOGGER "Old driver (no auto_assign_spans parameter). Skip $DEVPATH"
-       exit 0
-fi
-
-if [ $(cat /sys/module/dahdi/parameters/auto_assign_spans) -eq 1 ]; then
-       $LOGGER "auto_assign_spans=1. Skip $DEVPATH"
-       exit 0
-fi
-
 # Do we have a configuration?
 if [ -f /etc/dahdi/init.conf ]; then
        . /etc/dahdi/init.conf
@@ -94,6 +83,20 @@ configure_span() {
 case "$ACTION" in
 add)
        echo "$ACTION: $DEVPATH" | $LOGGER
+
+       # Old driver. These scripts probably won't work anyway.
+       if [ ! -f /sys/module/dahdi/parameters/auto_assign_spans ]; then
+               if [ -f /sys/module/dahdi ]; then
+                       $LOGGER "Old driver (no auto_assign_spans parameter). Skip $DEVPATH"
+                       exit 0
+               fi
+       fi
+
+       if [ $(cat /sys/module/dahdi/parameters/auto_assign_spans) -eq 1 ]; then
+               $LOGGER "auto_assign_spans=1. Skip $DEVPATH"
+               exit 0
+       fi
+
        # Can have alternate dahdi configuration directory for debugging
        # export DAHDICONFDIR="/tmp/xortel/dahdi"