scsi: isci: Convert timers to use timer_setup()

In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly.

Cc: Intel SCU Linux support <intel-linux-scu@intel.com>
Cc: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: linux-scsi@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
This commit is contained in:
Kees Cook 2017-09-01 23:21:24 -07:00
parent 7932589f47
commit b0a2dc6615
5 changed files with 16 additions and 18 deletions

View File

@ -958,9 +958,9 @@ static enum sci_status sci_controller_start_next_phy(struct isci_host *ihost)
return status;
}
static void phy_startup_timeout(unsigned long data)
static void phy_startup_timeout(struct timer_list *t)
{
struct sci_timer *tmr = (struct sci_timer *)data;
struct sci_timer *tmr = from_timer(tmr, t, timer);
struct isci_host *ihost = container_of(tmr, typeof(*ihost), phy_timer);
unsigned long flags;
enum sci_status status;
@ -1592,9 +1592,9 @@ static const struct sci_base_state sci_controller_state_table[] = {
[SCIC_FAILED] = {}
};
static void controller_timeout(unsigned long data)
static void controller_timeout(struct timer_list *t)
{
struct sci_timer *tmr = (struct sci_timer *)data;
struct sci_timer *tmr = from_timer(tmr, t, timer);
struct isci_host *ihost = container_of(tmr, typeof(*ihost), timer);
struct sci_base_state_machine *sm = &ihost->sm;
unsigned long flags;
@ -1737,9 +1737,9 @@ static u8 max_spin_up(struct isci_host *ihost)
MAX_CONCURRENT_DEVICE_SPIN_UP_COUNT);
}
static void power_control_timeout(unsigned long data)
static void power_control_timeout(struct timer_list *t)
{
struct sci_timer *tmr = (struct sci_timer *)data;
struct sci_timer *tmr = from_timer(tmr, t, timer);
struct isci_host *ihost = container_of(tmr, typeof(*ihost), power_control.timer);
struct isci_phy *iphy;
unsigned long flags;

View File

@ -498,12 +498,10 @@ struct sci_timer {
};
static inline
void sci_init_timer(struct sci_timer *tmr, void (*fn)(unsigned long))
void sci_init_timer(struct sci_timer *tmr, void (*fn)(struct timer_list *t))
{
tmr->timer.function = fn;
tmr->timer.data = (unsigned long) tmr;
tmr->cancel = 0;
init_timer(&tmr->timer);
timer_setup(&tmr->timer, fn, 0);
}
static inline void sci_mod_timer(struct sci_timer *tmr, unsigned long msec)

View File

@ -315,9 +315,9 @@ sci_phy_link_layer_initialization(struct isci_phy *iphy,
return SCI_SUCCESS;
}
static void phy_sata_timeout(unsigned long data)
static void phy_sata_timeout(struct timer_list *t)
{
struct sci_timer *tmr = (struct sci_timer *)data;
struct sci_timer *tmr = from_timer(tmr, t, timer);
struct isci_phy *iphy = container_of(tmr, typeof(*iphy), sata_timer);
struct isci_host *ihost = iphy->owning_port->owning_controller;
unsigned long flags;

View File

@ -769,9 +769,9 @@ bool sci_port_link_detected(struct isci_port *iport, struct isci_phy *iphy)
return true;
}
static void port_timeout(unsigned long data)
static void port_timeout(struct timer_list *t)
{
struct sci_timer *tmr = (struct sci_timer *)data;
struct sci_timer *tmr = from_timer(tmr, t, timer);
struct isci_port *iport = container_of(tmr, typeof(*iport), timer);
struct isci_host *ihost = iport->owning_controller;
unsigned long flags;

View File

@ -319,10 +319,10 @@ sci_mpc_agent_validate_phy_configuration(struct isci_host *ihost,
return sci_port_configuration_agent_validate_ports(ihost, port_agent);
}
static void mpc_agent_timeout(unsigned long data)
static void mpc_agent_timeout(struct timer_list *t)
{
u8 index;
struct sci_timer *tmr = (struct sci_timer *)data;
struct sci_timer *tmr = from_timer(tmr, t, timer);
struct sci_port_configuration_agent *port_agent;
struct isci_host *ihost;
unsigned long flags;
@ -654,10 +654,10 @@ static void sci_apc_agent_link_down(
}
/* configure the phys into ports when the timer fires */
static void apc_agent_timeout(unsigned long data)
static void apc_agent_timeout(struct timer_list *t)
{
u32 index;
struct sci_timer *tmr = (struct sci_timer *)data;
struct sci_timer *tmr = from_timer(tmr, t, timer);
struct sci_port_configuration_agent *port_agent;
struct isci_host *ihost;
unsigned long flags;