diff --git a/net/sqm-scripts/Makefile b/net/sqm-scripts/Makefile index 25c964bad9..79112227de 100644 --- a/net/sqm-scripts/Makefile +++ b/net/sqm-scripts/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sqm-scripts PKG_VERSION:=8 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_LICENSE:=GPLv2 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) diff --git a/net/sqm-scripts/files/etc/hotplug.d/iface/11-sqm b/net/sqm-scripts/files/etc/hotplug.d/iface/11-sqm old mode 100644 new mode 100755 index 9543acd763..99796021d9 --- a/net/sqm-scripts/files/etc/hotplug.d/iface/11-sqm +++ b/net/sqm-scripts/files/etc/hotplug.d/iface/11-sqm @@ -1,7 +1,3 @@ #!/bin/sh -# teach SQM to re-enable itself when an interface re-appears -logger -t SQM -s "hotplug on interface: ${DEVICE} action: ${ACTION}" - [ "$ACTION" = ifup ] && /usr/lib/sqm/run.sh interface ${DEVICE} - diff --git a/net/sqm-scripts/files/usr/lib/sqm/run.sh b/net/sqm-scripts/files/usr/lib/sqm/run.sh index 8995213d76..968292bcd3 100755 --- a/net/sqm-scripts/files/usr/lib/sqm/run.sh +++ b/net/sqm-scripts/files/usr/lib/sqm/run.sh @@ -23,7 +23,7 @@ case ${1} in ;; interface) START_ON_IF=$2 # only process this interface - logger -t SQM -s "Re/starting sqm on interface ${START_ON_IF}" + logger -t SQM -s "Trying to re-start SQM on interface ${START_ON_IF}" # TODO if $2 is empty just bail... if [ -z ${START_ON_IF} ] ; then @@ -108,6 +108,14 @@ run_simple_qos() { logger -t SQM -s "${0} SQM qdiscs on ${IFACE} removed" return 0 fi + # in case of spurious hotplug events, try double check whether the interface is really up + if [ ! -d /sys/class/net/${IFACE} ] ; + then + echo "${IFACE} does currently not exist, not even trying to start SQM on nothing." > /dev/kmsg + logger -t SQM -s "${IFACE} does currently not exist, not even trying to start SQM on nothing." + return 0 + fi + logger -t SQM -s "${0} Queue Setup Script: ${SCRIPT}" [ -x "$SCRIPT" ] && { $SCRIPT ; touch ${ACTIVE_STATE_FILE_FQN}; } }