lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 14 Jun 2017 15:20:17 -0700 From: "Luis R. Rodriguez" <mcgrof@...nel.org> To: gregkh@...uxfoundation.org Cc: mfuzzey@...keon.com, ebiederm@...ssion.com, dmitry.torokhov@...il.com, wagi@...om.org, dwmw2@...radead.org, jewalt@...innovations.com, rafal@...ecki.pl, arend.vanspriel@...adcom.com, rjw@...ysocki.net, yi1.li@...ux.intel.com, atull@...nel.org, moritz.fischer@...us.com, pmladek@...e.com, johannes.berg@...el.com, emmanuel.grumbach@...el.com, luciano.coelho@...el.com, kvalo@...eaurora.org, luto@...nel.org, torvalds@...ux-foundation.org, keescook@...omium.org, takahiro.akashi@...aro.org, dhowells@...hat.com, pjones@...hat.com, hdegoede@...hat.com, alan@...ux.intel.com, tytso@....edu, mtk.manpages@...il.com, paul.gortmaker@...driver.com, mtosatti@...hat.com, mawilcox@...rosoft.com, linux-api@...r.kernel.org, linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org, "Luis R. Rodriguez" <mcgrof@...nel.org> Subject: [PATCH 4/4] firmware: send -EINTR on signal abort on fallback mechanism Right now we send -EAGAIN to a syfs write which got interrupted. Userspace can't tell what happened though, send -EINTR if we were killed due to a signal so userspace can tell things apart. This is only applicable to the fallback mechanism. Reported-by: Martin Fuzzey <mfuzzey@...keon.com> Signed-off-by: Luis R. Rodriguez <mcgrof@...nel.org> --- drivers/base/firmware_class.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index 70fc42e5e0da..da043cb16e2f 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -1089,9 +1089,12 @@ static int _request_firmware_load(struct firmware_priv *fw_priv, mutex_unlock(&fw_lock); } - if (fw_state_is_aborted(&buf->fw_st)) - retval = -EAGAIN; - else if (buf->is_paged_buf && !buf->data) + if (fw_state_is_aborted(&buf->fw_st)) { + if (retval == -ERESTARTSYS) + retval = -EINTR; + else + retval = -EAGAIN; + } else if (buf->is_paged_buf && !buf->data) retval = -ENOMEM; device_del(f_dev); -- 2.11.0
Powered by blists - more mailing lists