diff options
author | Gwendal Grignou <gwendal@google.com> | 2013-10-25 16:28:57 -0700 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2013-10-27 07:43:25 -0400 |
commit | 3e85c3ecbc520751324a191d23bb94873ed01b10 (patch) | |
tree | 458092e84f141b9a2ed4e46aac214db42815d62e /drivers/ata | |
parent | 8b789d89813fae01908ecc825c9dfc0ec90647ad (diff) | |
download | linux-3e85c3ecbc520751324a191d23bb94873ed01b10.tar.bz2 |
libata: Fix display of sata speed
6.0 Gbps link speed was not decoded properly:
speed was reported at 3.0 Gbps only.
Tested: On a machine where libata reports 6.0 Gbps in
/var/log/messages:
ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
Before:
cat /sys/class/ata_link/link1/sata_spd
3.0 Gbps
After:
cat /sys/class/ata_link/link1/sata_spd
6.0 Gbps
Signed-off-by: Gwendal Grignou <gwendal@google.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/libata-transport.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/ata/libata-transport.c b/drivers/ata/libata-transport.c index 150a917f0c3c..e37413228228 100644 --- a/drivers/ata/libata-transport.c +++ b/drivers/ata/libata-transport.c @@ -321,25 +321,25 @@ int ata_tport_add(struct device *parent, /* * ATA link attributes */ +static int noop(int x) { return x; } - -#define ata_link_show_linkspeed(field) \ +#define ata_link_show_linkspeed(field, format) \ static ssize_t \ show_ata_link_##field(struct device *dev, \ struct device_attribute *attr, char *buf) \ { \ struct ata_link *link = transport_class_to_link(dev); \ \ - return sprintf(buf,"%s\n", sata_spd_string(fls(link->field))); \ + return sprintf(buf, "%s\n", sata_spd_string(format(link->field))); \ } -#define ata_link_linkspeed_attr(field) \ - ata_link_show_linkspeed(field) \ +#define ata_link_linkspeed_attr(field, format) \ + ata_link_show_linkspeed(field, format) \ static DEVICE_ATTR(field, S_IRUGO, show_ata_link_##field, NULL) -ata_link_linkspeed_attr(hw_sata_spd_limit); -ata_link_linkspeed_attr(sata_spd_limit); -ata_link_linkspeed_attr(sata_spd); +ata_link_linkspeed_attr(hw_sata_spd_limit, fls); +ata_link_linkspeed_attr(sata_spd_limit, fls); +ata_link_linkspeed_attr(sata_spd, noop); static DECLARE_TRANSPORT_CLASS(ata_link_class, |