[SCSI] libsas: trim sas_task of slow path infrastructure
The timer and the completion are only used for slow path tasks (smp, and lldd tmfs), yet we incur the allocation space and cpu setup time for every fast path task. Cc: Xiangliang Yu <yuxiangl@marvell.com> Acked-by: Jack Wang <jack_wang@usish.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:

committed by
James Bottomley

parent
a494fd5bd9
commit
f0bf750c2d
@@ -613,10 +613,6 @@ struct sas_task {
|
||||
|
||||
enum sas_protocol task_proto;
|
||||
|
||||
/* Used by the discovery code. */
|
||||
struct timer_list timer;
|
||||
struct completion completion;
|
||||
|
||||
union {
|
||||
struct sas_ata_task ata_task;
|
||||
struct sas_smp_task smp_task;
|
||||
@@ -633,8 +629,15 @@ struct sas_task {
|
||||
|
||||
void *lldd_task; /* for use by LLDDs */
|
||||
void *uldd_task;
|
||||
struct sas_task_slow *slow_task;
|
||||
};
|
||||
|
||||
struct work_struct abort_work;
|
||||
struct sas_task_slow {
|
||||
/* standard/extra infrastructure for slow path commands (SMP and
|
||||
* internal lldd commands
|
||||
*/
|
||||
struct timer_list timer;
|
||||
struct completion completion;
|
||||
};
|
||||
|
||||
#define SAS_TASK_STATE_PENDING 1
|
||||
@@ -644,6 +647,7 @@ struct sas_task {
|
||||
#define SAS_TASK_AT_INITIATOR 16
|
||||
|
||||
extern struct sas_task *sas_alloc_task(gfp_t flags);
|
||||
extern struct sas_task *sas_alloc_slow_task(gfp_t flags);
|
||||
extern void sas_free_task(struct sas_task *task);
|
||||
|
||||
struct sas_domain_function_template {
|
||||
|
Reference in New Issue
Block a user