[SCSI] libsas: perform sas-transport resets in shost->workq context
Extend the sas transport class to allow transport users to attach extra data to a sas_phy (->hostdata). Use this area in libsas to move resets to workq context in preparation for scheduling ata device resets through libata-eh. 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
b52df4174d
commit
0b3e09da13
@@ -75,7 +75,8 @@ struct sas_phy {
|
||||
/* for the list of phys belonging to a port */
|
||||
struct list_head port_siblings;
|
||||
|
||||
struct work_struct reset_work;
|
||||
/* available to the lldd */
|
||||
void *hostdata;
|
||||
};
|
||||
|
||||
#define dev_to_phy(d) \
|
||||
@@ -169,6 +170,8 @@ struct sas_function_template {
|
||||
int (*get_bay_identifier)(struct sas_rphy *);
|
||||
int (*phy_reset)(struct sas_phy *, int);
|
||||
int (*phy_enable)(struct sas_phy *, int);
|
||||
int (*phy_setup)(struct sas_phy *);
|
||||
void (*phy_release)(struct sas_phy *);
|
||||
int (*set_phy_speed)(struct sas_phy *, struct sas_phy_linkrates *);
|
||||
int (*smp_handler)(struct Scsi_Host *, struct sas_rphy *, struct request *);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user