home *** CD-ROM | disk | FTP | other *** search
- #!/bin/bash
- #
- # Deconfigures a ccw interface.
- # $Id: hwdown-ccw 1415 2006-02-16 09:16:36Z hare $
- #
- # Currently handles ctc, qeth, and dasd devices.
- # lcs and escon support untested.
- #
-
- SCRIPTNAME=${0##*/}
- CONFIG=$1
- HWDESC=$2
-
- # Read in common functions
- . ./scripts/functions
- test -r ./config && . ./config
-
-
- if test -z "$SYSFS"; then
- message "sysfs not mounted, aborting."
- exit 1
- fi
-
- # Set defaults
- if [ -z "$HWD_DEVICEPATH" ]; then
- HWD_DEVICEPATH=${SYSFS}/bus/ccwgroup/devices/${HWD_BUSID}
- fi
-
- if [ ! -d "$HWD_DEVICEPATH" ]; then
- message "No hardware devicepath given, cannot configure"
- exit 1
- fi
-
- # Check whether it is a group device
- if test -d $HWD_DEVICEPATH/group_device; then
- HWD_DEVICEPATH=$HWD_DEVICEPATH/group_device
- fi
-
- # Deconfigure interface
- message_n "Deconfigure device $HWD_BUSID: "
-
- read _online < $HWD_DEVICEPATH/online
- # Device configured, set it offline
- if [ $_online -ne 0 ]; then
- echo "0" > $HWD_DEVICEPATH/online
- debug "Setting device $HWD_BUSID offline"
- fi
-
- # Re-read for failures
- read _online < $HWD_DEVICEPATH/online
- if [ $_online -ne 0 ]; then
- message "failed."
- else
- # Check whether we need to ungroup it
- if test -w $HWD_DEVICEPATH/ungroup ; then
- # We cannot use hotplug events here as the
- # devices are already gone from sysfs
- echo "1" > $HWD_DEVICEPATH/ungroup
- debug "Device group $HWD_BUSID deconfigured"
- fi
-
- # Check whether we need to reset DIAG access
- if test -w $HWD_DEVICEPATH/use_diag ; then
- echo "0" > $HWD_DEVICEPATH/use_diag
- debug "Reset DIAG access for $HWD_BUSID"
- fi
- message "ok."
- fi
-