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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 23 Mar 2011 14:21:03 +0200
From:	"Michael S. Tsirkin" <mst@...hat.com>
To:	stable@...nel.org
Cc:	Jesse Barnes <jbarnes@...tuousgeek.org>,
	Michal Schmidt <mschmidt@...hat.com>,
	Tejun Heo <tj@...nel.org>,
	Christoph Lameter <cl@...ux-foundation.org>,
	linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH stable] PCI: return correct value when writing to the "reset"
 attribute

commit 447c5dd7338638f526e9bcf7dcf69b4da5835c7d
Author: Michal Schmidt <mschmidt@...hat.com>
Date:   Tue May 11 11:44:54 2010 +0200

A successful write() to the "reset" sysfs attribute should return the
number of bytes written, not 0. Otherwise userspace (bash) retries the
write over and over again.

Acked-by: Michael S. Tsirkin <mst@...hat.com>
Acked-by: Greg Kroah-Hartman <gregkh@...e.de>
Signed-off-by: Michal Schmidt <mschmidt@...hat.com>
Signed-off-by: Jesse Barnes <jbarnes@...tuousgeek.org>

Applies without changes to all of 2.6.32,2.6.33,2.6.34

This bug is starting to bite userspace, it seems that the right thing to
do is to fix the bug in stable kernels.

Signed-off-by: Michael S. Tsirkin <mst@...hat.com>

---
 drivers/pci/pci-sysfs.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 3a3b911..e44682c 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -939,7 +939,12 @@ static ssize_t reset_store(struct device *dev,
 
 	if (val != 1)
 		return -EINVAL;
-	return pci_reset_function(pdev);
+
+	result = pci_reset_function(pdev);
+	if (result < 0)
+		return result;
+
+	return count;
 }
 
 static struct device_attribute reset_attr = __ATTR(reset, 0200, NULL, reset_store);
-- 
1.7.3.2.91.g446ac
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ