isci: replace isci_timer list with proper embedded timers
authorEdmund Nadolski <edmund.nadolski@intel.com>
Thu, 19 May 2011 11:59:10 +0000 (11:59 +0000)
committerDan Williams <dan.j.williams@intel.com>
Sun, 3 Jul 2011 11:04:49 +0000 (04:04 -0700)
commit5553ba2be0f3e3741e1a885a33d2b89921f9fd48
treeba29bd7a120cc170b4b6e9f09ee8a4751a3773be
parent9269e0e898594c65dee6b20d4ed48e33dbbd4eeb
isci: replace isci_timer list with proper embedded timers

Rather than preallocating a list of timers and doling them out at runtime,
embed a struct timerlist in each object that needs one.  A struct sci_timer
interface is introduced to manage the timer cancellation semantics which
currently need to guarantee the timer is cancelled while holding
spin_lock(ihost->scic_lock).  Since the timeout functions also need to acquire
the lock it currently prevents the driver from using del_timer_sync() for
runtime cancellations.

del_timer_sync() is used however before the objects go out of scope.

Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/scsi/isci/host.c
drivers/scsi/isci/isci.h
drivers/scsi/isci/port.c
drivers/scsi/isci/port.h