aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2012-06-22 02:36:30 -0400
committerJames Bottomley <JBottomley@Parallels.com>2012-07-20 03:58:54 -0400
commitf0bf750c2d25c3a2131ececbff63c7878e0e3765 (patch)
treeba967c5d28945e76bee78feb24ade328d5b0b3a6 /include
parenta494fd5bd98bb35d5a9a274fecb768e14ebf499c (diff)
[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>
Diffstat (limited to 'include')
-rw-r--r--include/scsi/libsas.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
index 29a8cc7831a..ae33706afeb 100644
--- a/include/scsi/libsas.h
+++ b/include/scsi/libsas.h
@@ -613,10 +613,6 @@ struct sas_task {
613 613
614 enum sas_protocol task_proto; 614 enum sas_protocol task_proto;
615 615
616 /* Used by the discovery code. */
617 struct timer_list timer;
618 struct completion completion;
619
620 union { 616 union {
621 struct sas_ata_task ata_task; 617 struct sas_ata_task ata_task;
622 struct sas_smp_task smp_task; 618 struct sas_smp_task smp_task;
@@ -633,8 +629,15 @@ struct sas_task {
633 629
634 void *lldd_task; /* for use by LLDDs */ 630 void *lldd_task; /* for use by LLDDs */
635 void *uldd_task; 631 void *uldd_task;
632 struct sas_task_slow *slow_task;
633};
636 634
637 struct work_struct abort_work; 635struct sas_task_slow {
636 /* standard/extra infrastructure for slow path commands (SMP and
637 * internal lldd commands
638 */
639 struct timer_list timer;
640 struct completion completion;
638}; 641};
639 642
640#define SAS_TASK_STATE_PENDING 1 643#define SAS_TASK_STATE_PENDING 1
@@ -644,6 +647,7 @@ struct sas_task {
644#define SAS_TASK_AT_INITIATOR 16 647#define SAS_TASK_AT_INITIATOR 16
645 648
646extern struct sas_task *sas_alloc_task(gfp_t flags); 649extern struct sas_task *sas_alloc_task(gfp_t flags);
650extern struct sas_task *sas_alloc_slow_task(gfp_t flags);
647extern void sas_free_task(struct sas_task *task); 651extern void sas_free_task(struct sas_task *task);
648 652
649struct sas_domain_function_template { 653struct sas_domain_function_template {