isci: rework timer api

Prepare the timer api for the arrival of dynamic creation and
destruction events from the core.  It pretended to do this previously
but the core to date only used it in a static init-time only fashion.
This is an interim fix until a cleaner event queue can be developed.

1/ make all locking external to the api (add WARN_ONCE to verify)
2/ add a timer_destroy interface (to be used by the core)
3/ use del_timer_sync() prior to deallocating timer data
4/ delete the "timer_list" indirection, we only have timers allocated
   for the isci_host
5/ fix detection of timer list allocation errors

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Este commit está contenido en:
Dan Williams
2011-03-02 11:49:26 -08:00
padre 150fc6fc72
commit 7c40a80358
Se han modificado 7 ficheros con 105 adiciones y 233 borrados

Ver fichero

@@ -87,7 +87,7 @@ struct isci_host {
union scic_oem_parameters oem_parameters;
int id; /* unique within a given pci device */
struct isci_timer_list timer_list_struct;
struct list_head timers;
void *core_ctrl_memory;
struct dma_pool *dma_pool;
unsigned int dma_pool_alloc_size;