From: Henrique de Moraes Holschuh Date: Thu, 9 Oct 2008 21:15:29 +0000 (-0300) Subject: rfkill: use killable locks instead of interruptible X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=cf4b4aab552f5f658ed400dd0cd41f9ac8aac7c1;p=openwrt%2Fstaging%2Fblogic.git rfkill: use killable locks instead of interruptible Apparently, many applications don't expect to get EAGAIN from fd read/write operations, since POSIX doesn't mandate it. Use mutex_lock_killable instead of mutex_lock_interruptible, which won't cause issues. Signed-off-by: Henrique de Moraes Holschuh Cc: Ivo van Doorn Signed-off-by: John W. Linville --- diff --git a/net/rfkill/rfkill.c b/net/rfkill/rfkill.c index f949a482b007..08be968f578d 100644 --- a/net/rfkill/rfkill.c +++ b/net/rfkill/rfkill.c @@ -431,8 +431,9 @@ static ssize_t rfkill_state_store(struct device *dev, state != RFKILL_STATE_SOFT_BLOCKED) return -EINVAL; - if (mutex_lock_interruptible(&rfkill->mutex)) - return -ERESTARTSYS; + error = mutex_lock_killable(&rfkill->mutex); + if (error) + return error; error = rfkill_toggle_radio(rfkill, state, 0); mutex_unlock(&rfkill->mutex); @@ -472,7 +473,7 @@ static ssize_t rfkill_claim_store(struct device *dev, * Take the global lock to make sure the kernel is not in * the middle of rfkill_switch_all */ - error = mutex_lock_interruptible(&rfkill_global_mutex); + error = mutex_lock_killable(&rfkill_global_mutex); if (error) return error;