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
This commit is contained in:
Родитель
8b789d8981
Коммит
3e85c3ecbc
|
@ -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,
|
||||
|
|
Загрузка…
Ссылка в новой задаче