diff options
author | Edmund Nadolski <edmund.nadolski@intel.com> | 2011-05-19 11:59:10 +0000 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2011-07-03 04:04:49 -0700 |
commit | 5553ba2be0f3e3741e1a885a33d2b89921f9fd48 (patch) | |
tree | ba29bd7a120cc170b4b6e9f09ee8a4751a3773be /drivers/scsi/isci/port.h | |
parent | 9269e0e898594c65dee6b20d4ed48e33dbbd4eeb (diff) | |
download | op-kernel-dev-5553ba2be0f3e3741e1a885a33d2b89921f9fd48.zip op-kernel-dev-5553ba2be0f3e3741e1a885a33d2b89921f9fd48.tar.gz |
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>
Diffstat (limited to 'drivers/scsi/isci/port.h')
-rw-r--r-- | drivers/scsi/isci/port.h | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/scsi/isci/port.h b/drivers/scsi/isci/port.h index af540e5..9a69128 100644 --- a/drivers/scsi/isci/port.h +++ b/drivers/scsi/isci/port.h @@ -139,10 +139,8 @@ struct scic_sds_port { */ struct scic_sds_controller *owning_controller; - /** - * This field contains the port start/stop timer handle. - */ - void *timer_handle; + /* timer used for port start/stop operations */ + struct sci_timer timer; /** * This field is the pointer to the port task scheduler registers |