From 5553ba2be0f3e3741e1a885a33d2b89921f9fd48 Mon Sep 17 00:00:00 2001 From: Edmund Nadolski Date: Thu, 19 May 2011 11:59:10 +0000 Subject: 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 Signed-off-by: Dan Williams --- drivers/scsi/isci/port.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'drivers/scsi/isci/port.h') diff --git a/drivers/scsi/isci/port.h b/drivers/scsi/isci/port.h index af540e5c03a..9a6912855fc 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 -- cgit v1.2.3-70-g09d2