ata: fix debounce timings type
sata_deb_timing_{hotplug|long|normal}[] store 'unsigned long' debounce timeouts in ms, while sata_link_debounce() eventually uses those timeouts by calling ata_{deadline|msleep}( which take just 'unsigned int'. Change the debounce timeout table element's type to 'unsigned int' -- all these timeouts happily fit into 'unsigned int'... Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru> Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
This commit is contained in:
Родитель
ca02f22516
Коммит
d14d41cc5a
|
@ -807,7 +807,7 @@ static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
|
|||
static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class,
|
||||
unsigned long deadline)
|
||||
{
|
||||
const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
struct ata_port *ap = link->ap;
|
||||
struct ahci_port_priv *pp = ap->private_data;
|
||||
struct ahci_host_priv *hpriv = ap->host->private_data;
|
||||
|
|
|
@ -88,7 +88,7 @@ MODULE_DEVICE_TABLE(acpi, ahci_qoriq_acpi_match);
|
|||
static int ahci_qoriq_hardreset(struct ata_link *link, unsigned int *class,
|
||||
unsigned long deadline)
|
||||
{
|
||||
const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
void __iomem *port_mmio = ahci_port_base(link->ap);
|
||||
u32 px_cmd, px_is, px_val;
|
||||
struct ata_port *ap = link->ap;
|
||||
|
|
|
@ -350,7 +350,7 @@ static void xgene_ahci_set_phy_cfg(struct xgene_ahci_context *ctx, int channel)
|
|||
static int xgene_ahci_do_hardreset(struct ata_link *link,
|
||||
unsigned long deadline, bool *online)
|
||||
{
|
||||
const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
struct ata_port *ap = link->ap;
|
||||
struct ahci_host_priv *hpriv = ap->host->private_data;
|
||||
struct xgene_ahci_context *ctx = hpriv->plat_data;
|
||||
|
|
|
@ -1587,7 +1587,7 @@ static int ahci_pmp_retry_softreset(struct ata_link *link, unsigned int *class,
|
|||
int ahci_do_hardreset(struct ata_link *link, unsigned int *class,
|
||||
unsigned long deadline, bool *online)
|
||||
{
|
||||
const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
struct ata_port *ap = link->ap;
|
||||
struct ahci_port_priv *pp = ap->private_data;
|
||||
struct ahci_host_priv *hpriv = ap->host->private_data;
|
||||
|
|
|
@ -3782,7 +3782,7 @@ int ata_std_prereset(struct ata_link *link, unsigned long deadline)
|
|||
{
|
||||
struct ata_port *ap = link->ap;
|
||||
struct ata_eh_context *ehc = &link->eh_context;
|
||||
const unsigned long *timing = sata_ehc_deb_timing(ehc);
|
||||
const unsigned int *timing = sata_ehc_deb_timing(ehc);
|
||||
int rc;
|
||||
|
||||
/* if we're about to do hardreset, nothing more to do */
|
||||
|
@ -3824,7 +3824,7 @@ EXPORT_SYMBOL_GPL(ata_std_prereset);
|
|||
int sata_std_hardreset(struct ata_link *link, unsigned int *class,
|
||||
unsigned long deadline)
|
||||
{
|
||||
const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
bool online;
|
||||
int rc;
|
||||
|
||||
|
|
|
@ -19,11 +19,11 @@
|
|||
#include "libata-transport.h"
|
||||
|
||||
/* debounce timing parameters in msecs { interval, duration, timeout } */
|
||||
const unsigned long sata_deb_timing_normal[] = { 5, 100, 2000 };
|
||||
const unsigned int sata_deb_timing_normal[] = { 5, 100, 2000 };
|
||||
EXPORT_SYMBOL_GPL(sata_deb_timing_normal);
|
||||
const unsigned long sata_deb_timing_hotplug[] = { 25, 500, 2000 };
|
||||
const unsigned int sata_deb_timing_hotplug[] = { 25, 500, 2000 };
|
||||
EXPORT_SYMBOL_GPL(sata_deb_timing_hotplug);
|
||||
const unsigned long sata_deb_timing_long[] = { 100, 2000, 5000 };
|
||||
const unsigned int sata_deb_timing_long[] = { 100, 2000, 5000 };
|
||||
EXPORT_SYMBOL_GPL(sata_deb_timing_long);
|
||||
|
||||
/**
|
||||
|
@ -232,11 +232,11 @@ EXPORT_SYMBOL_GPL(ata_tf_from_fis);
|
|||
* RETURNS:
|
||||
* 0 on success, -errno on failure.
|
||||
*/
|
||||
int sata_link_debounce(struct ata_link *link, const unsigned long *params,
|
||||
int sata_link_debounce(struct ata_link *link, const unsigned int *params,
|
||||
unsigned long deadline)
|
||||
{
|
||||
unsigned long interval = params[0];
|
||||
unsigned long duration = params[1];
|
||||
unsigned int interval = params[0];
|
||||
unsigned int duration = params[1];
|
||||
unsigned long last_jiffies, t;
|
||||
u32 last, cur;
|
||||
int rc;
|
||||
|
@ -295,7 +295,7 @@ EXPORT_SYMBOL_GPL(sata_link_debounce);
|
|||
* RETURNS:
|
||||
* 0 on success, -errno on failure.
|
||||
*/
|
||||
int sata_link_resume(struct ata_link *link, const unsigned long *params,
|
||||
int sata_link_resume(struct ata_link *link, const unsigned int *params,
|
||||
unsigned long deadline)
|
||||
{
|
||||
int tries = ATA_LINK_RESUME_TRIES;
|
||||
|
@ -528,7 +528,7 @@ EXPORT_SYMBOL_GPL(sata_set_spd);
|
|||
* RETURNS:
|
||||
* 0 on success, -errno otherwise.
|
||||
*/
|
||||
int sata_link_hardreset(struct ata_link *link, const unsigned long *timing,
|
||||
int sata_link_hardreset(struct ata_link *link, const unsigned int *timing,
|
||||
unsigned long deadline,
|
||||
bool *online, int (*check_ready)(struct ata_link *))
|
||||
{
|
||||
|
|
|
@ -1971,7 +1971,7 @@ int sata_sff_hardreset(struct ata_link *link, unsigned int *class,
|
|||
unsigned long deadline)
|
||||
{
|
||||
struct ata_eh_context *ehc = &link->eh_context;
|
||||
const unsigned long *timing = sata_ehc_deb_timing(ehc);
|
||||
const unsigned int *timing = sata_ehc_deb_timing(ehc);
|
||||
bool online;
|
||||
int rc;
|
||||
|
||||
|
|
|
@ -385,7 +385,7 @@ static int highbank_initialize_phys(struct device *dev, void __iomem *addr)
|
|||
static int ahci_highbank_hardreset(struct ata_link *link, unsigned int *class,
|
||||
unsigned long deadline)
|
||||
{
|
||||
static const unsigned long timing[] = { 5, 100, 500};
|
||||
static const unsigned int timing[] = { 5, 100, 500};
|
||||
struct ata_port *ap = link->ap;
|
||||
struct ahci_port_priv *pp = ap->private_data;
|
||||
struct ahci_host_priv *hpriv = ap->host->private_data;
|
||||
|
|
|
@ -619,7 +619,7 @@ static int inic_hardreset(struct ata_link *link, unsigned int *class,
|
|||
struct ata_port *ap = link->ap;
|
||||
void __iomem *port_base = inic_port_base(ap);
|
||||
void __iomem *idma_ctl = port_base + PORT_IDMA_CTL;
|
||||
const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
int rc;
|
||||
|
||||
/* hammer it into sane state */
|
||||
|
|
|
@ -3633,7 +3633,7 @@ static int mv_hardreset(struct ata_link *link, unsigned int *class,
|
|||
|
||||
/* Workaround for errata FEr SATA#10 (part 2) */
|
||||
do {
|
||||
const unsigned long *timing =
|
||||
const unsigned int *timing =
|
||||
sata_ehc_deb_timing(&link->eh_context);
|
||||
|
||||
rc = sata_link_hardreset(link, timing, deadline + extra,
|
||||
|
|
|
@ -1529,7 +1529,7 @@ static int nv_hardreset(struct ata_link *link, unsigned int *class,
|
|||
sata_link_hardreset(link, sata_deb_timing_hotplug, deadline,
|
||||
NULL, NULL);
|
||||
else {
|
||||
const unsigned long *timing = sata_ehc_deb_timing(ehc);
|
||||
const unsigned int *timing = sata_ehc_deb_timing(ehc);
|
||||
int rc;
|
||||
|
||||
if (!(ehc->i.flags & ATA_EHI_QUIET))
|
||||
|
|
|
@ -1166,11 +1166,11 @@ extern void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *
|
|||
* SATA specific code - drivers/ata/libata-sata.c
|
||||
*/
|
||||
#ifdef CONFIG_SATA_HOST
|
||||
extern const unsigned long sata_deb_timing_normal[];
|
||||
extern const unsigned long sata_deb_timing_hotplug[];
|
||||
extern const unsigned long sata_deb_timing_long[];
|
||||
extern const unsigned int sata_deb_timing_normal[];
|
||||
extern const unsigned int sata_deb_timing_hotplug[];
|
||||
extern const unsigned int sata_deb_timing_long[];
|
||||
|
||||
static inline const unsigned long *
|
||||
static inline const unsigned int *
|
||||
sata_ehc_deb_timing(struct ata_eh_context *ehc)
|
||||
{
|
||||
if (ehc->i.flags & ATA_EHI_HOTPLUGGED)
|
||||
|
@ -1185,14 +1185,14 @@ extern int sata_scr_write(struct ata_link *link, int reg, u32 val);
|
|||
extern int sata_scr_write_flush(struct ata_link *link, int reg, u32 val);
|
||||
extern int sata_set_spd(struct ata_link *link);
|
||||
extern int sata_link_hardreset(struct ata_link *link,
|
||||
const unsigned long *timing, unsigned long deadline,
|
||||
const unsigned int *timing, unsigned long deadline,
|
||||
bool *online, int (*check_ready)(struct ata_link *));
|
||||
extern int sata_link_resume(struct ata_link *link, const unsigned long *params,
|
||||
extern int sata_link_resume(struct ata_link *link, const unsigned int *params,
|
||||
unsigned long deadline);
|
||||
extern int ata_eh_read_sense_success_ncq_log(struct ata_link *link);
|
||||
extern void ata_eh_analyze_ncq_error(struct ata_link *link);
|
||||
#else
|
||||
static inline const unsigned long *
|
||||
static inline const unsigned int *
|
||||
sata_ehc_deb_timing(struct ata_eh_context *ehc)
|
||||
{
|
||||
return NULL;
|
||||
|
@ -1212,7 +1212,7 @@ static inline int sata_scr_write_flush(struct ata_link *link, int reg, u32 val)
|
|||
}
|
||||
static inline int sata_set_spd(struct ata_link *link) { return -EOPNOTSUPP; }
|
||||
static inline int sata_link_hardreset(struct ata_link *link,
|
||||
const unsigned long *timing,
|
||||
const unsigned int *timing,
|
||||
unsigned long deadline,
|
||||
bool *online,
|
||||
int (*check_ready)(struct ata_link *))
|
||||
|
@ -1222,7 +1222,7 @@ static inline int sata_link_hardreset(struct ata_link *link,
|
|||
return -EOPNOTSUPP;
|
||||
}
|
||||
static inline int sata_link_resume(struct ata_link *link,
|
||||
const unsigned long *params,
|
||||
const unsigned int *params,
|
||||
unsigned long deadline)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
|
@ -1234,7 +1234,7 @@ static inline int ata_eh_read_sense_success_ncq_log(struct ata_link *link)
|
|||
static inline void ata_eh_analyze_ncq_error(struct ata_link *link) { }
|
||||
#endif
|
||||
extern int sata_link_debounce(struct ata_link *link,
|
||||
const unsigned long *params, unsigned long deadline);
|
||||
const unsigned int *params, unsigned long deadline);
|
||||
extern int sata_link_scr_lpm(struct ata_link *link, enum ata_lpm_policy policy,
|
||||
bool spm_wakeup);
|
||||
extern int ata_slave_link_init(struct ata_port *ap);
|
||||
|
|
Загрузка…
Ссылка в новой задаче