From patchwork Fri Jun 5 18:47:22 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Russell King X-Patchwork-Id: 6557311 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 43B6E9F3D1 for ; Fri, 5 Jun 2015 18:47:39 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 206FE2080F for ; Fri, 5 Jun 2015 18:47:37 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id E7B4D20830 for ; Fri, 5 Jun 2015 18:47:30 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 566046ECCE; Fri, 5 Jun 2015 11:47:30 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from pandora.arm.linux.org.uk (pandora.arm.linux.org.uk [78.32.30.218]) by gabe.freedesktop.org (Postfix) with ESMTP id DB0166ECCE for ; Fri, 5 Jun 2015 11:47:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=arm.linux.org.uk; s=pandora-2014; h=Date:Sender:Message-Id:Content-Type:Content-Transfer-Encoding:MIME-Version:Subject:Cc:To:From; bh=xV0eijTFpRhc8eVYu4BxwNqos6i+P1r89Pp9223e12M=; b=luXc4pYKwJ7cN8fukkmvRqHIVCzQvyI/B8WEr+TUmnsL2dQaG+ArnIy2zUWcXHxeEevQ2VNTvHdWe0XefbMMZq3J56V6PMD0ZEojID5qw3BzhcXpvUWM09a3jrY4zqyXpbDf6OOH/tzJ9MFOr6eq0a6pFiTB2WQeLyKJlHsi414=; Received: from e0022681537dd.dyn.arm.linux.org.uk ([2002:4e20:1eda:1:222:68ff:fe15:37dd]:34474 helo=rmk-PC.arm.linux.org.uk) by pandora.arm.linux.org.uk with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1Z0weJ-00010q-7B; Fri, 05 Jun 2015 19:47:23 +0100 Received: from rmk by rmk-PC.arm.linux.org.uk with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1Z0weI-000584-69; Fri, 05 Jun 2015 19:47:22 +0100 From: Russell King To: David Airlie Subject: [PATCH] drm: fix writing to /sys/class/drm/*/status MIME-Version: 1.0 Content-Disposition: inline Message-Id: Date: Fri, 05 Jun 2015 19:47:22 +0100 Cc: dri-devel@lists.freedesktop.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Writing to a file is supposed to return the number of bytes written. Returning zero unfortunately causes bash to constantly spin trying to write to the sysfs file, to such an extent that even ^c and ^z have no effect. The only way out of that is to kill the shell and log back in. This isn't nice behaviour. Fix it by returning the number of characters written to sysfs files. Signed-off-by: Russell King Reviewed-by: Chris Wilson --- drivers/gpu/drm/drm_sysfs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c index ffc305fc2076..e7e7edeee9fb 100644 --- a/drivers/gpu/drm/drm_sysfs.c +++ b/drivers/gpu/drm/drm_sysfs.c @@ -181,6 +181,8 @@ static ssize_t status_store(struct device *device, old_status = connector->status; + ret = count; + if (sysfs_streq(buf, "detect")) { connector->force = 0; connector->status = connector->funcs->detect(connector, true); @@ -193,7 +195,7 @@ static ssize_t status_store(struct device *device, } else ret = -EINVAL; - if (ret == 0 && connector->force) { + if (ret >= 0 && connector->force) { if (connector->force == DRM_FORCE_ON || connector->force == DRM_FORCE_ON_DIGITAL) connector->status = connector_status_connected;