[arch-commits] Commit in tlp/trunk (2 files)
Maxime Gauduin
alucryd at archlinux.org
Fri Aug 7 06:41:35 UTC 2015
Date: Friday, August 7, 2015 @ 08:41:35
Author: alucryd
Revision: 138043
upgpkg: tlp 0.8-1
Deleted:
tlp/trunk/fix-udev-event-processing-for-AC-BAT.patch
tlp/trunk/fix-udev-event-processing-for-USB.patch
--------------------------------------------+
fix-udev-event-processing-for-AC-BAT.patch | 134 ------------
fix-udev-event-processing-for-USB.patch | 284 ---------------------------
2 files changed, 418 deletions(-)
Deleted: fix-udev-event-processing-for-AC-BAT.patch
===================================================================
--- fix-udev-event-processing-for-AC-BAT.patch 2015-08-07 06:40:17 UTC (rev 138042)
+++ fix-udev-event-processing-for-AC-BAT.patch 2015-08-07 06:41:35 UTC (rev 138043)
@@ -1,134 +0,0 @@
-From d8092a1c3ee2183e086312269d0224bf5ffded5e Mon Sep 17 00:00:00 2001
-From: Thomas Koch <linrunner at gmx.net>
-Date: Mon, 13 Jul 2015 22:05:32 +0200
-Subject: [PATCH 1/2] Issues #147, #149: fix udev event processing for AC/BAT
- switching
-
-Background: systemd-udevd version 221 now kills forked processes
-when the main process (called by RUN=) terminates and stdout/
-stderr have been closed. First occurred on Arch Linux.
-
-Consequences:
-TLP's technique to fork udev event processing in a subshell fails
-and the code applying the settings is aborted prematurely.
-
-In case of tlp-usb-udev removing the subshell is not an option,
-because it would remove the ability to concurrently populate
-the subdevices tree and thus incapacitate the driver blacklisting
-feature.
-
-Solution:
-- Remove subshell forking for AC/BAT switching in tlp
-- Do not close stdout/stdin in tlp-usb-udev subshell to prevent
- being killed by udev post-processing
-- Reduce wait for subdevices populating in tlp-usb-udev
----
- tlp | 11 +++--------
- tlp-usb-udev | 62 ++++++++++++++++++++++++++++++++----------------------------
- 2 files changed, 36 insertions(+), 37 deletions(-)
-
-diff --git a/tlp b/tlp
-index 9f41611..c7c9f12 100755
---- a/tlp
-+++ b/tlp
-@@ -139,14 +139,9 @@ case "$mode" in
-
- auto) # set mode depending on state (called by udev rule)
- check_root
-- ( # run in a detached subshell to avoid blocking udev,
-- # close stdout/stderr
-- exec 1> /dev/null 2>/dev/null
--
-- apply_common_settings $pwrmode
-- [ "$pwrmode" = "1" ] && poweroff_drivebay 0
-- set_radio_device_states $pwrmode
-- ) &
-+ apply_common_settings $pwrmode
-+ [ "$pwrmode" = "1" ] && poweroff_drivebay 0
-+ set_radio_device_states $pwrmode
- ;;
-
- start) # set mode depending on state (interactive mode)
-diff --git a/tlp-usb-udev b/tlp-usb-udev
-index c31a686..f3b8546 100755
---- a/tlp-usb-udev
-+++ b/tlp-usb-udev
-@@ -71,22 +71,9 @@ usbdev=/sys$1
- if [ -f $usbdev/power/autosuspend ] || [ -f $usbdev/power/autosuspend_delay_ms ]; then
- # device is autosuspendable
-
-- ( # run remainder in a detached subshell to avoid blocking udev,
-- # close stdout/stderr
-- exec 1> /dev/null 2>/dev/null
--
-- # initialize driver blacklist from settings
-- drv_bl=${USB_DRIVER_BLACKLIST:-$DEFAULT_USB_DRIVER_BLACKLIST}
--
-- # add wwan driver blacklist if enabled
-- USB_BLACKLIST_WWAN=${USB_BLACKLIST_WWAN:-1} # default is exclude
--
-- if [ $USB_BLACKLIST_WWAN = "1" ]; then
-- drv_bl="$drv_bl $USB_WWAN_DRIVERS"
-- fi
--
-- # wait for subdevices to populate via parallel udev events (not handled here)
-- sleep 2.0
-+ ( # run remainder in a detached subshell to allow udev to populate
-+ # subdevices in parallel; do *not* close stdin/stdout to avoid
-+ # being "sanitized" (killed) by udev post-processing
-
- # apply autosuspend
- ctrlf="control"
-@@ -105,19 +92,36 @@ if [ -f $usbdev/power/autosuspend ] || [ -f $usbdev/power/autosuspend_delay_ms ]
- control="on"
- exc="_dev_black"
- else
-- # check subdevices for blacklisted drivers
-- for subdev in $usbdev/*:*; do
-- # get driver name from subdev uevent file
-- drv=$(sed -rn 's/^DRIVER=(.*)/\1/p' $subdev/uevent)
--
-- # check against driver blacklist
-- if wordinlist "$drv" "$drv_bl"; then
-- # driver is blacklisted
-- control="on"
-- exc="_drv_black"
-- break
-- fi
-- done
-+ # initialize driver blacklist from settings
-+ drv_bl=${USB_DRIVER_BLACKLIST:-$DEFAULT_USB_DRIVER_BLACKLIST}
-+
-+ # add wwan driver blacklist if enabled
-+ USB_BLACKLIST_WWAN=${USB_BLACKLIST_WWAN:-1} # default is exclude
-+ if [ $USB_BLACKLIST_WWAN = "1" ]; then
-+ drv_bl="$drv_bl $USB_WWAN_DRIVERS"
-+ fi
-+
-+ if [ -n "$drv_bl" ]; then
-+ # proceed only when driver blacklist is not empty
-+
-+ # wait for subdevices to populate via parallel udev events
-+ # (not handled here)
-+ sleep 0.5
-+
-+ # check subdevices for blacklisted drivers
-+ for subdev in $usbdev/*:*; do
-+ # get driver name from subdev uevent file
-+ drv=$(sed -rn 's/^DRIVER=(.*)/\1/p' $subdev/uevent)
-+
-+ # check against driver blacklist
-+ if wordinlist "$drv" "$drv_bl"; then
-+ # driver is blacklisted
-+ control="on"
-+ exc="_drv_black"
-+ break
-+ fi
-+ done
-+ fi
- fi
-
- if [ -f $usbdev/power/control ]; then
---
-1.9.1
-
Deleted: fix-udev-event-processing-for-USB.patch
===================================================================
--- fix-udev-event-processing-for-USB.patch 2015-08-07 06:40:17 UTC (rev 138042)
+++ fix-udev-event-processing-for-USB.patch 2015-08-07 06:41:35 UTC (rev 138043)
@@ -1,284 +0,0 @@
-From 9694c03ee7522b8fc4a73aec20e51159b4ea0fdb Mon Sep 17 00:00:00 2001
-From: Thomas Koch <linrunner at gmx.net>
-Date: Mon, 13 Jul 2015 21:46:00 +0200
-Subject: [PATCH 2/2] Issues #147, 149: fix udev event processing for USB
- hotplugging
-
-Rationale: USB_DRIVER_BLACKLIST code detecting drivers by iterating
-subdevices is broken since systemd-udevd v221 (and higher).
-
-Solution: revert implementation to version 0.6 code
-- Remove detached subshell
-- Detect usbhid via subdevices' bInterfaceClass = 03
-- Detect wwan devices via idVendor static blacklist
-- Remove USB_DRIVER_BLACKLIST feature
----
- default | 5 ---
- tlp-functions | 36 ++++++++--------
- tlp-stat | 3 +-
- tlp-usb-udev | 132 +++++++++++++++++++++++++++++-----------------------------
- 4 files changed, 83 insertions(+), 93 deletions(-)
-
-diff --git a/default b/default
-index fe0d134..b19ce4a 100644
---- a/default
-+++ b/default
-@@ -172,11 +172,6 @@ USB_AUTOSUSPEND=1
- # Note: input devices (usbhid) are excluded automatically (see below)
- #USB_BLACKLIST="1111:2222 3333:4444"
-
--# Exclude devices assigned to the listed drivers from USB autosuspend.
--# Default is "usbhid" (input devices); use "" to disable the feature
--# completely. Separate multiple drivers with spaces.
--USB_DRIVER_BLACKLIST="usbhid"
--
- # WWAN devices are excluded from USB autosuspend:
- # 0=do not exclude / 1=exclude
- USB_BLACKLIST_WWAN=1
-diff --git a/tlp-functions b/tlp-functions
-index 8a1a9c4..e52ed51 100755
---- a/tlp-functions
-+++ b/tlp-functions
-@@ -53,7 +53,7 @@ readonly CPU_TURBO_PSTATE=$INTEL_PSTATED/no_turbo
- readonly USBD=/sys/bus/usb/devices
- readonly USB_TIMEOUT=2
- readonly USB_TIMEOUT_MS=2000
--readonly USB_WWAN_DRIVERS="cdc_acm cdc_wdm cdc_ether hso qcserial sierra"
-+readonly USB_WWAN_VENDORS="0bdb 05c6 1199"
- readonly USB_DONE=usb_done
-
- readonly DOCKGLOB="/sys/devices/platform/dock.?"
-@@ -1487,16 +1487,6 @@ set_usb_suspend () { # activate usb autosuspend for all devices except input and
- if [ "$USB_AUTOSUSPEND" = "1" ]; then
- # autosuspend is configured
-
-- # initialize driver blacklist from settings
-- drv_bl=${USB_DRIVER_BLACKLIST:-$DEFAULT_USB_DRIVER_BLACKLIST}
--
-- # add wwan driver blacklist if enabled
-- USB_BLACKLIST_WWAN=${USB_BLACKLIST_WWAN:-1} # default is exclude
--
-- if [ $USB_BLACKLIST_WWAN = "1" ]; then
-- drv_bl="$drv_bl $USB_WWAN_DRIVERS"
-- fi
--
- # iterate devices
- devices=$(ls $USBD 2> /dev/null | grep -v ':')
-
-@@ -1518,19 +1508,27 @@ set_usb_suspend () { # activate usb autosuspend for all devices except input and
- control="on"
- exc="_dev_black"
- else
-- # check subdevices for blacklisted drivers
-+ # check for hid subdevices
- for subdev in $USBD/$usbdev/*:*; do
-- # get driver name from subdev uevent file
-- drv=$(sed -rn 's/^DRIVER=(.*)/\1/p' $subdev/uevent)
--
-- # check against driver blacklist
-- if wordinlist "$drv" "$drv_bl"; then
-- # driver is blacklisted
-+ if [ -d $subdev ] && [ "$(cat $subdev/bInterfaceClass)" = "03" ]; then
- control="on"
-- exc="_drv_black"
-+ exc="_hid_black"
- break
- fi
- done
-+
-+ if [ -z "$exc" ]; then
-+ # check for wwan vendor ids
-+ USB_BLACKLIST_WWAN=${USB_BLACKLIST_WWAN:-1} # default is exclude
-+
-+ if [ $USB_BLACKLIST_WWAN = "1" ]; then
-+ vendor="$(cat $USBD/$usbdev/idVendor)"
-+ if wordinlist "$vendor" "$USB_WWAN_VENDORS"; then
-+ control="on"
-+ exc="_wwan_black"
-+ fi
-+ fi
-+ fi
- fi
- fi
-
-diff --git a/tlp-stat b/tlp-stat
-index 5a179f3..f958df2 100755
---- a/tlp-stat
-+++ b/tlp-stat
-@@ -872,9 +872,8 @@ if [ "$show_usb" = "1" ] || [ "$show_all" = "1" ]; then
- fi
- echo "device whitelist = ${USB_WHITELIST:=(not configured)}"
- echo "device blacklist = ${USB_BLACKLIST:=(not configured)}"
-- echo "driver blacklist = ${USB_DRIVER_BLACKLIST:=(not configured)}"
- if [ "$USB_BLACKLIST_WWAN" = "1" ]; then
-- echo "wwan blacklist = enabled ($USB_WWAN_DRIVERS)"
-+ echo "wwan blacklist = enabled"
- else
- echo "wwan blacklist = disabled"
- fi
-diff --git a/tlp-usb-udev b/tlp-usb-udev
-index f3b8546..917fc5c 100755
---- a/tlp-usb-udev
-+++ b/tlp-usb-udev
-@@ -13,8 +13,7 @@ readonly LOGGER=logger
- readonly USBD=/sys/bus/usb/devices
- readonly USB_TIMEOUT=2
- readonly USB_TIMEOUT_MS=2000
--readonly USB_WWAN_DRIVERS="cdc_acm cdc_wdm cdc_ether hso qcserial sierra"
--readonly DEFAULT_USB_DRIVER_BLACKLIST="usbhid"
-+readonly USB_WWAN_VENDORS="0bdb 05c6 1199"
-
- readonly RUNDIR=/var/run/tlp
- readonly USB_DONE=usb_done
-@@ -71,84 +70,83 @@ usbdev=/sys$1
- if [ -f $usbdev/power/autosuspend ] || [ -f $usbdev/power/autosuspend_delay_ms ]; then
- # device is autosuspendable
-
-- ( # run remainder in a detached subshell to allow udev to populate
-- # subdevices in parallel; do *not* close stdin/stdout to avoid
-- # being "sanitized" (killed) by udev post-processing
--
-- # apply autosuspend
-- ctrlf="control"
-- autof="autosuspend_delay_ms"
-- usbid="$(cat $usbdev/idVendor):$(cat $usbdev/idProduct)"
-- busdev="Bus $(cat $usbdev/busnum) Dev $(cat $usbdev/devnum)"
-+ # apply autosuspend
-+ ctrlf="control"
-+ autof="autosuspend_delay_ms"
-+ usbid="$(cat $usbdev/idVendor):$(cat $usbdev/idProduct)"
-+ busdev="Bus $(cat $usbdev/busnum) Dev $(cat $usbdev/devnum)"
-+ control="auto"
-+ exc=""
-+ chg=0
-+
-+ if wordinlist "$usbid" "$USB_WHITELIST"; then
-+ # device is in whitelist -- whitelist always wins
- control="auto"
-- exc=""
--
-- if wordinlist "$usbid" "$USB_WHITELIST"; then
-- # device is in whitelist -- whitelist always wins
-- control="auto"
-- exc="_dev_white"
-- elif wordinlist "$usbid" "$USB_BLACKLIST"; then
-- # device is in blacklist
-- control="on"
-- exc="_dev_black"
-- else
-- # initialize driver blacklist from settings
-- drv_bl=${USB_DRIVER_BLACKLIST:-$DEFAULT_USB_DRIVER_BLACKLIST}
-+ exc="_dev_white"
-+ elif wordinlist "$usbid" "$USB_BLACKLIST"; then
-+ # device is in blacklist
-+ control="on"
-+ exc="_dev_black"
-+ else
-+ # wait for subdevices to populate
-+ sleep 0.5
-+
-+ # check for hid subdevices
-+ for subdev in $usbdev/*:*; do
-+ if [ -d $subdev ] && [ "$(cat $subdev/bInterfaceClass)" = "03" ]; then
-+ control="on"
-+ exc="_hid_black"
-+ break
-+ fi
-+ done
-
-- # add wwan driver blacklist if enabled
-+ if [ -z "$exc" ]; then
-+ # check for wwan vendor ids
- USB_BLACKLIST_WWAN=${USB_BLACKLIST_WWAN:-1} # default is exclude
-- if [ $USB_BLACKLIST_WWAN = "1" ]; then
-- drv_bl="$drv_bl $USB_WWAN_DRIVERS"
-- fi
-
-- if [ -n "$drv_bl" ]; then
-- # proceed only when driver blacklist is not empty
--
-- # wait for subdevices to populate via parallel udev events
-- # (not handled here)
-- sleep 0.5
--
-- # check subdevices for blacklisted drivers
-- for subdev in $usbdev/*:*; do
-- # get driver name from subdev uevent file
-- drv=$(sed -rn 's/^DRIVER=(.*)/\1/p' $subdev/uevent)
--
-- # check against driver blacklist
-- if wordinlist "$drv" "$drv_bl"; then
-- # driver is blacklisted
-- control="on"
-- exc="_drv_black"
-- break
-- fi
-- done
-+ if [ $USB_BLACKLIST_WWAN = "1" ]; then
-+ vendor="$(cat $usbdev/idVendor)"
-+ if wordinlist "$vendor" "$USB_WWAN_VENDORS"; then
-+ control="on"
-+ exc="_wwan_black"
-+ fi
- fi
- fi
-+ fi
-
-- if [ -f $usbdev/power/control ]; then
-+ if [ -f $usbdev/power/control ]; then
-+ if [ "$(cat $usbdev/power/control)" != "$control" ]; then
-+ # Write actual changes only
- echo "$control" > $usbdev/power/control
-- else
-- # level is deprecated
-+ chg=1
-+ fi
-+ else
-+ # level is deprecated
-+ if [ "$(cat $usbdev/power/level)" != "$control" ]; then
-+ # Write actual changes only
- echo "$control" > $usbdev/power/level
-- ctrlf="level"
-+ chg=1
- fi
-+ ctrlf="level"
-+ fi
-
-- if [ "$X_TLP_USB_SET_AUTOSUSPEND_DELAY" = "1" ]; then
-- # set autosuspend_delay
-- if [ -f $usbdev/power/autosuspend_delay_ms ]; then
-- echo $USB_TIMEOUT_MS > $usbdev/power/autosuspend_delay_ms
-- else
-- # autosuspend is deprecated
-- echo $USB_TIMEOUT > $usbdev/power/autosuspend
-- autof="autosuspend"
-- fi
-- echo_debug "usb" "udev_usb.$control$exc: $busdev ID $usbid $usbdev [$ctrlf $autof]"
-+ if [ "$X_TLP_USB_SET_AUTOSUSPEND_DELAY" = "1" ]; then
-+ # set autosuspend_delay
-+ if [ -f $usbdev/power/autosuspend_delay_ms ]; then
-+ echo $USB_TIMEOUT_MS > $usbdev/power/autosuspend_delay_ms
- else
-- # default: do not change autosuspend_delay, i.e. keep kernel default setting
-- echo_debug "usb" "udev_usb.$control$exc: $busdev ID $usbid $usbdev [$ctrlf]"
-+ # autosuspend is deprecated
-+ echo $USB_TIMEOUT > $usbdev/power/autosuspend
-+ autof="autosuspend"
- fi
--
-- exit 0
-- ) &
-+ echo_debug "usb" "udev_usb.$control$exc: $busdev ID $usbid $usbdev [$ctrlf $autof]"
-+ elif [ $chg -eq 1 ]; then
-+ # default: change control but not autosuspend_delay, i.e. keep kernel default setting
-+ echo_debug "usb" "udev_usb.$control$exc: $busdev ID $usbid $usbdev [$ctrlf]"
-+ else
-+ # we didn't change anything actually
-+ echo_debug "usb" "udev_usb.$control$exc: $busdev ID $usbid $usbdev"
-+ fi
- fi
-
- exit 0
---
-1.9.1
-
More information about the arch-commits
mailing list