Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760240AbYC1NCA (ORCPT ); Fri, 28 Mar 2008 09:02:00 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1758590AbYC1Mzt (ORCPT ); Fri, 28 Mar 2008 08:55:49 -0400 Received: from SpacedOut.fries.net ([67.64.210.234]:34541 "EHLO SpacedOut.fries.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758574AbYC1Mzq (ORCPT ); Fri, 28 Mar 2008 08:55:46 -0400 Date: Fri, 28 Mar 2008 07:26:21 -0500 From: David Fries To: linux-kernel@vger.kernel.org Cc: Evgeniy Polyakov Subject: [PATCH 15/35] W1: w1_slave_read_id from bin_attribute to device_attribute Message-ID: <20080328122621.GP3613@spacedout.fries.net> References: <200803272343.m2RNhDac017650@SpacedOut.fries.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="8G1nIWD3RY794FAy" Content-Disposition: inline In-Reply-To: <200803272343.m2RNhDac017650@SpacedOut.fries.net> User-Agent: Mutt/1.5.4i X-Greylist: Sender is SPF-compliant, not delayed by milter-greylist-3.0 (SpacedOut.fries.net [127.0.0.1]); Fri, 28 Mar 2008 07:26:22 -0500 (CDT) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3362 Lines: 113 --8G1nIWD3RY794FAy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable w1.c 1.16 Switching w1_slave_read_id from being a bin_attribute to a device_attribute. It only has to return 8 bytes per read and lets = kobject handle the buffering. That simplifies the logic in w1_slave_read_id. Signed-off-by: David Fries --- drivers/w1/w1.c | 35 ++++++++++------------------------- 1 files changed, 10 insertions(+), 25 deletions(-) diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c index dbd9930..32cfb6a 100644 --- a/drivers/w1/w1.c +++ b/drivers/w1/w1.c @@ -104,35 +104,20 @@ static ssize_t w1_slave_read_name(struct device *dev,= struct device_attribute *a return sprintf(buf, "%s\n", sl->name); } =20 -static ssize_t w1_slave_read_id(struct kobject *kobj, - struct bin_attribute *bin_attr, - char *buf, loff_t off, size_t count) +static ssize_t w1_slave_read_id(struct device *dev, + struct device_attribute *attr, char *buf) { - struct w1_slave *sl =3D kobj_to_w1_slave(kobj); - - if (off >=3D 8) { - count =3D 0; - } else { - if (off + count > 8) - count =3D 8 - off; - - memcpy(buf, (u8 *)&sl->reg_num+off, count); - } + struct w1_slave *sl =3D dev_to_w1_slave(dev); + ssize_t count=3Dsizeof(sl->reg_num); =20 + memcpy(buf, (u8 *)&sl->reg_num, count); return count; } =20 static struct device_attribute w1_slave_attr_name =3D __ATTR(name, S_IRUGO, w1_slave_read_name, NULL); - -static struct bin_attribute w1_slave_attr_bin_id =3D { - .attr =3D { - .name =3D "id", - .mode =3D S_IRUGO, - }, - .size =3D 8, - .read =3D w1_slave_read_id, -}; +static struct device_attribute w1_slave_attr_id =3D + __ATTR(id, S_IRUGO, w1_slave_read_id, NULL); =20 /* Default family */ =20 @@ -612,7 +597,7 @@ static int __w1_attach_slave_device(struct w1_slave *sl) } =20 /* Create "id" entry */ - err =3D sysfs_create_bin_file(&sl->dev.kobj, &w1_slave_attr_bin_id); + err =3D device_create_file(&sl->dev, &w1_slave_attr_id); if (err < 0) { dev_err(&sl->dev, "sysfs file creation for [%s] failed. err=3D%d\n", @@ -634,7 +619,7 @@ static int __w1_attach_slave_device(struct w1_slave *sl) return 0; =20 out_rem2: - sysfs_remove_bin_file(&sl->dev.kobj, &w1_slave_attr_bin_id); + device_remove_file(&sl->dev, &w1_slave_attr_id); out_rem1: device_remove_file(&sl->dev, &w1_slave_attr_name); out_unreg: @@ -716,7 +701,7 @@ void w1_slave_detach(struct w1_slave *sl) msg.type =3D W1_SLAVE_REMOVE; w1_netlink_send(sl->master, &msg); =20 - sysfs_remove_bin_file(&sl->dev.kobj, &w1_slave_attr_bin_id); + device_remove_file(&sl->dev, &w1_slave_attr_id); device_remove_file(&sl->dev, &w1_slave_attr_name); device_unregister(&sl->dev); =20 --=20 1.4.4.4 --8G1nIWD3RY794FAy Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFH7OPtAI852cse6PARAt5dAJ9zAFz+57LBhx26wUMVssJ6KgW3iwCgjLW6 NcIfoe5x/99GhE+vpubr5cQ= =ueam -----END PGP SIGNATURE----- --8G1nIWD3RY794FAy-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/