From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753373AbdH2Lhh (ORCPT ); Tue, 29 Aug 2017 07:37:37 -0400 Received: from gateway34.websitewelcome.com ([192.185.150.107]:17792 "EHLO gateway34.websitewelcome.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751250AbdH2Lhg (ORCPT ); Tue, 29 Aug 2017 07:37:36 -0400 X-Greylist: delayed 1304 seconds by postgrey-1.27 at vger.kernel.org; Tue, 29 Aug 2017 07:37:36 EDT From: Guy Shapiro To: srinivas.kandagatla@linaro.org Cc: vladimir_zapolskiy@mentor.com, linux-kernel@vger.kernel.org, Guy Shapiro , linux-api@vger.kernel.org Subject: [PATCH] nvmem: core: return EFBIG on out-of-range write Date: Tue, 29 Aug 2017 14:14:04 +0300 Message-Id: <1504005245-9878-1-git-send-email-guy.shapiro@mobi-wize.com> X-Mailer: git-send-email 2.1.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator3269.hostgator.com X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - mobi-wize.com X-BWhitelist: no X-Source-IP: 213.57.90.22 X-Exim-ID: 1dmeUo-003HMj-9V X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: (coyote.mobiwize) [213.57.90.22]:33066 X-Source-Auth: guy.shapiro@mobi-wize.com X-Email-Count: 2 X-Source-Cap: bW9iaXdpemU7bW9iaXdpemU7Z2F0b3IzMjY5Lmhvc3RnYXRvci5jb20= X-Local-Domain: yes Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When writing data that exceeds the nvmem size to a nvmem sysfs file using the sh redirection operator >, the shell hangs, trying to write the out-of-range bytes endlessly. Fix the problem by returning EFBIG described in man 2 write. Similar change was done for binary sysfs files on commit 0936896056365349afa867c16e9f9100a6707cbf Signed-off-by: Guy Shapiro Cc: linux-api@vger.kernel.org --- drivers/nvmem/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 4c49285..ae6cadd 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -135,7 +135,7 @@ static ssize_t bin_attr_nvmem_write(struct file *filp, struct kobject *kobj, /* Stop the user from writing */ if (pos >= nvmem->size) - return 0; + return -EFBIG; if (count < nvmem->word_size) return -EINVAL; -- 2.1.4